*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;background:transparent;font-family:Segoe UI,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}.hidden{display:none!important}.progress{position:fixed;top:var(--progress-y, 2%);left:var(--progress-x, 6%);width:var(--progress-w, 88%);transform:none;z-index:10}.progress-label{color:#fafafa;text-shadow:0 1px 3px rgba(0,0,0,.9);font-size:var(--progress-font-label, 13px);font-weight:500;margin-bottom:6px;text-align:center;letter-spacing:.01em}.progress-track{height:var(--progress-bar-h, 8px);background:#0000008c;border-radius:4px;overflow:hidden;border:1px solid rgba(255,255,255,.12)}.progress-fill{height:100%;width:0%;background:#fafafa;transition:width .5s cubic-bezier(.4,0,.2,1);border-radius:4px}.progress-amount{margin-top:5px;text-align:center;color:#ffffffd9;font-size:var(--progress-font-amount, 12px);font-weight:500;font-variant-numeric:tabular-nums;text-shadow:0 1px 3px rgba(0,0,0,.9)}#alerts{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:20}.overlay-view--donations #alerts,.overlay-view--wishlist #alerts{display:flex;align-items:center;justify-content:center}.alert-stack{display:flex;flex-direction:column;align-items:center;width:100%;gap:clamp(10px,1.5vh,18px);transform:translateY(12px);opacity:0;animation:alert-in .35s cubic-bezier(.22,1,.36,1) forwards}.alert-top-gif{display:flex;justify-content:center;width:100%}.alert-top-gif img{display:block;max-width:min(320px,52vw);max-height:min(220px,30vh);width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 8px 24px rgba(0,0,0,.45))}.overlay-view--progress #alerts,.overlay-view--donations .progress,.overlay-view--wishlist .progress{display:none!important}.alert{position:absolute;left:var(--alert-x, 6%);top:var(--alert-y, 72%);width:var(--alert-w, 55%);min-height:var(--alert-h, 12vh);height:auto;box-sizing:border-box;min-width:0;max-width:100%;padding:clamp(10px,1.5vh,20px) clamp(16px,2.2vw,28px);border-radius:30px;background:#060608f5;border:1px solid rgba(168,85,247,.68);color:#fafafa;box-shadow:0 0 30px #a855f761,inset 0 0 0 1px #a855f71f;display:flex;gap:clamp(8px,1vh,14px);align-items:center;overflow:visible}.overlay-view--donations .alert,.overlay-view--wishlist .alert{position:relative;left:auto;top:auto;width:100%;max-width:none}.alert--donation{gap:clamp(14px,2vw,28px);align-items:stretch}.alert--wishlist{border-color:#ec4899ad;box-shadow:0 0 30px #ec489952,inset 0 0 0 1px #ec48991f}.alert--donation .alert-icon{flex-shrink:0;width:clamp(64px,14%,112px);aspect-ratio:1;align-self:center;border-radius:18px;overflow:hidden}.alert--donation .alert-icon img{width:100%;height:100%;display:block;object-fit:cover}.alert--donation .alert-body{display:flex;flex-direction:column;justify-content:center;gap:clamp(3px,.55vh,8px);min-width:0;overflow:visible}.alert--donation .alert-kicker{flex:0 0 auto;font-size:clamp(12px,1.35vw,var(--alert-font-message, 20px));font-weight:600;color:#b45cff;line-height:1.2}.alert--wishlist .alert-kicker,.alert--wishlist .alert-amount{color:#ec4899}.alert--donation .alert-main{flex:0 0 auto;display:flex;flex-wrap:nowrap;align-items:baseline;gap:clamp(8px,1.4vw,18px);max-width:100%}.alert--donation .alert-donor{flex:0 1 auto;min-width:0;font-size:clamp(18px,1.9vw,var(--alert-font-title, 28px));font-weight:800;color:#fff;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.alert--donation .alert-amount{flex:0 0 auto;font-size:clamp(18px,1.9vw,var(--alert-font-amount, 28px));font-weight:800;color:#a855f7;font-variant-numeric:tabular-nums;white-space:nowrap}.alert--donation .alert-message{flex:0 0 auto;min-width:0;font-size:clamp(12px,1.35vw,var(--alert-font-message, 20px));line-height:1.35;color:#ffffffdb;white-space:normal;overflow-wrap:anywhere;word-break:normal;overflow:visible}.alert-message--wishlist-title,.alert-message--voice{color:#ffffffb8}.alert-stack--virtual-gift{gap:clamp(14px,2vh,22px);max-width:min(420px,92vw)}.alert-virtual-gift-visual{display:flex;align-items:center;justify-content:center;width:100%;padding:4px 8px 0}.alert-virtual-gift-visual img{display:block;width:auto;height:auto;max-width:min(220px,52vw);max-height:min(220px,30vh);object-fit:contain;filter:drop-shadow(0 10px 28px rgba(0,0,0,.55))}.alert-virtual-gift-fallback{padding:20px 28px;border-radius:20px;background:#060608eb;border:1px solid rgba(168,85,247,.5);font-size:clamp(22px,4vw,32px);font-weight:700;color:#fafafa;text-align:center}.alert--virtual-gift-card{width:100%;min-height:0;padding:clamp(16px,2.2vh,24px) clamp(20px,3vw,32px);border-radius:28px;background:#060608f5;border:1px solid rgba(168,85,247,.68);box-shadow:0 0 30px #a855f761,inset 0 0 0 1px #a855f71f;display:block;gap:0}.alert-virtual-gift-body{display:flex;flex-direction:column;align-items:center;text-align:center;gap:clamp(8px,1.2vh,14px);min-width:0}.alert-virtual-gift-donor{font-size:clamp(20px,2.4vw,32px);font-weight:800;line-height:1.15;color:#fff;letter-spacing:-.02em;overflow-wrap:anywhere}.alert-virtual-gift-message{font-size:clamp(14px,1.6vw,22px);line-height:1.4;color:#ffffffdb;overflow-wrap:anywhere}.alert-virtual-gift-amount{font-size:clamp(13px,1.4vw,18px);font-weight:700;color:#a855f7;font-variant-numeric:tabular-nums}.alert-body{flex:1;min-width:0;overflow:visible}@keyframes alert-in{to{opacity:1;transform:translateY(0)}}@keyframes alert-out{to{opacity:0;transform:translateY(-8px)}}.alert.leaving,.alert-stack.leaving{animation:alert-out .3s ease forwards}.birthday-salute{position:absolute;width:110px;height:110px;transform:translate(-50%,-50%);pointer-events:none;z-index:25}.birthday-salute__flash{position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:radial-gradient(circle,#fffef5 0%,#fde68a 35%,#f472b680 70%,transparent 100%);animation:salute-flash .55s ease-out forwards}.birthday-salute__particle{position:absolute;left:50%;top:50%;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;border-radius:50%;opacity:0;animation:salute-burst 1.25s ease-out var(--delay, 0s) forwards;box-shadow:0 0 6px currentColor}.birthday-salute__particle--spark{width:4px;height:10px;margin:-5px 0 0 -2px;border-radius:2px}@keyframes salute-flash{0%{opacity:0;transform:scale(.2)}25%{opacity:1;transform:scale(1.4)}to{opacity:0;transform:scale(2.2)}}@keyframes salute-burst{0%{opacity:1;transform:translate(-50%,-50%) scale(.4)}70%{opacity:.85}to{opacity:0;transform:translate(-50%,-50%) translate(var(--tx),var(--ty)) scale(.5)}}
