.wh-root{--accent:var(--gamesaro-theme-color);--accent-rgb:var(--gamesaro-accent-rgb);--ink:var(--color-gamesaro-text);--ink-2:var(--color-gamesaro-text-secondary);--deep:rgb(var(--gamesaro-deep-bg-rgb)/1);position:fixed;inset:0;z-index:90;display:grid;place-items:center;overflow:hidden;background:var(--deep);color:var(--ink);transform-origin:50% 55%}.wh-root:after,.wh-root:before{content:"";position:absolute;left:50%;top:55%;translate:-50% -50%;border-radius:50%;pointer-events:none}.wh-root:before{width:min(150vmin,1100px);aspect-ratio:1;background:radial-gradient(circle,rgb(var(--accent-rgb)/.22) 0,rgb(var(--accent-rgb)/.07) 38%,transparent 68%);animation:wh-bloom .9s cubic-bezier(.16,1,.3,1) both}.wh-root:after{width:min(52vmin,380px);aspect-ratio:1;background:radial-gradient(circle,rgb(var(--accent-rgb)/.3) 0,transparent 62%);filter:blur(6px);animation:wh-bloom .9s cubic-bezier(.16,1,.3,1) 80ms both,wh-breathe 3.2s ease-in-out 1s infinite}@keyframes wh-bloom{0%{opacity:0;scale:.72}to{opacity:1;scale:1}}@keyframes wh-breathe{0%,to{opacity:1}50%{opacity:.72}}.wh-stage{position:relative;display:flex;flex-direction:column;align-items:center;gap:clamp(20px,4vmin,34px);padding:24px;text-align:center}.wh-pieces{display:flex;align-items:flex-end;justify-content:center;gap:clamp(14px,3.5vmin,32px);list-style:none;margin:0;padding:0}.wh-piece{position:relative;width:clamp(56px,13vmin,104px);aspect-ratio:1;animation:wh-place .76s cubic-bezier(.22,1.35,.36,1) both}.wh-piece:first-child{animation-delay:.12s}.wh-piece:nth-child(2){animation-delay:.26s}.wh-piece:nth-child(3){animation-delay:.4s}.wh-piece img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;filter:drop-shadow(0 10px 22px rgb(var(--accent-rgb)/.34));opacity:0;animation:wh-ink .42s ease-out forwards;animation-delay:inherit}.wh-piece:after{content:"";position:absolute;left:50%;bottom:-14%;translate:-50% 0;width:78%;height:14%;border-radius:50%;background:radial-gradient(ellipse,rgb(var(--accent-rgb)/.4) 0,transparent 70%);filter:blur(4px);animation:wh-shadow .76s cubic-bezier(.22,1.35,.36,1) both;animation-delay:inherit}@keyframes wh-place{0%{opacity:0;translate:0 -46px;scale:.86;rotate:-7deg}62%{opacity:1;translate:0 6px;scale:1.04;rotate:2deg}to{opacity:1;translate:0 0;scale:1;rotate:0deg}}@keyframes wh-shadow{0%{opacity:0;scale:.4 1}62%{opacity:1;scale:1.12 1}to{opacity:.8;scale:1 1}}@keyframes wh-ink{to{opacity:1}}.wh-greeting,.wh-status,.wh-tagline{margin:0;animation:wh-rise .62s cubic-bezier(.16,1,.3,1) both}.wh-greeting{font-size:clamp(22px,5.2vmin,40px);font-weight:800;letter-spacing:-.01em;animation-delay:.56s}.wh-status{font-size:clamp(14px,2.4vmin,17px);font-weight:600;color:var(--accent);animation-delay:.66s}.wh-tagline{font-size:clamp(12px,2vmin,15px);line-height:1.7;color:var(--ink-2);max-width:34ch;animation-delay:.74s}@keyframes wh-rise{0%{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}.wh-thread{position:relative;width:clamp(120px,26vmin,190px);height:2px;border-radius:2px;overflow:hidden;background:rgb(var(--accent-rgb)/.16);animation:wh-rise .62s cubic-bezier(.16,1,.3,1) .82s both}.wh-thread:before{content:"";position:absolute;inset:0;width:42%;border-radius:inherit;background:linear-gradient(90deg,transparent,var(--accent),transparent);animation:wh-travel 1.25s ease-in-out infinite}@keyframes wh-travel{0%{translate:-110% 0}to{translate:260% 0}}.wh-slow{display:flex;flex-direction:column;align-items:center;gap:12px;animation:wh-rise .42s ease-out both}.wh-slow p{margin:0;font-size:13px;color:var(--ink-2)}.wh-root .wh-enter{min-height:44px;padding:0 22px;border:0;border-radius:999px;background:var(--accent);color:var(--gamesaro-accent-contrast);font-size:14px;font-weight:700;cursor:pointer}.wh-root[data-leaving=true]{animation:wh-handoff .38s cubic-bezier(.7,0,.84,0) forwards;pointer-events:none}@keyframes wh-handoff{to{opacity:0;scale:1.09;filter:blur(3px)}}@media (prefers-reduced-motion:reduce){.wh-greeting,.wh-piece,.wh-piece img,.wh-piece:after,.wh-root,.wh-root:after,.wh-root:before,.wh-slow,.wh-status,.wh-tagline,.wh-thread,.wh-thread:before{animation:wh-appear .2s ease-out both}.wh-root[data-leaving=true]{animation:wh-vanish .2s ease-out forwards}}@keyframes wh-appear{0%{opacity:0}to{opacity:1}}@keyframes wh-vanish{to{opacity:0}}