:root{--bg-edge: #0a0716;--bg-mid: #180f38;--bg-center: #2c1f5c;--bg: radial-gradient(ellipse 140% 100% at 50% 45%, transparent 45%, rgba(0, 0, 0, .32) 100%), radial-gradient(ellipse 120% 90% at 50% 28%, var(--bg-center) 0%, var(--bg-mid) 55%, var(--bg-edge) 100%);--surface: #241a4a;--surface-strong: #3a2c6e;--border: #4a3a80;--border-strong: #6a56ad;--text: #f8f6fb;--text-dim: #cabfe8;--text-faint: #a498c9;--gold: #d4af37;--gold-bright: #e8c65a;--danger: #ef4444;--danger-text: #f87171;--danger-strong: #b91c1c;--success: #22c55e}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg-edge);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased}button,input{font-family:inherit}.glow{box-shadow:0 0 0 2px var(--glow-color),0 0 16px 2px var(--glow-color)}@keyframes pulse-scale{0%,to{transform:scale(1)}50%{transform:scale(1.035)}}.glow-pulse{box-shadow:0 0 0 2px var(--glow-color),0 0 26px 6px var(--glow-color);animation:pulse-scale 2s ease-in-out infinite}.gold-pulse{animation:pulse-scale 2.4s ease-in-out infinite}.text-glow{text-shadow:0 0 18px rgba(248,246,251,.4)}.text-glow-gold{text-shadow:0 0 22px rgba(212,175,55,.6),0 0 44px rgba(212,175,55,.3)}@keyframes timer-critical{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.timer-critical{animation:timer-critical 1s ease-in-out infinite;color:var(--danger)!important;text-shadow:0 0 18px rgba(239,68,68,.65)}.timer-ring{border-radius:50%;box-shadow:0 0 0 3px var(--gold),0 0 20px 4px #d4af3773;animation:pulse-scale 2.2s ease-in-out infinite}@keyframes timer-ring-critical-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.timer-ring-critical{box-shadow:0 0 0 3px var(--danger),0 0 26px 6px #ef444499;animation:timer-ring-critical-pulse .9s ease-in-out infinite}@keyframes screen-fade-in{0%{opacity:0}to{opacity:1}}.screen-fade-in{opacity:1;animation:screen-fade-in .28s ease-out backwards}@keyframes gm-intro-fade{0%{opacity:0;transform:translate3d(0,-6px,0)}12%{opacity:1;transform:translateZ(0)}75%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-4px,0)}}.gm-intro-fade{animation:gm-intro-fade 4.5s ease-in-out forwards}@keyframes enter-pop{0%{opacity:0;transform:translateZ(0) scale(.94)}to{opacity:1;transform:translateZ(0) scale(1)}}.enter-pop{opacity:1;transform:none;animation:enter-pop .42s cubic-bezier(.22,1,.36,1) backwards}@keyframes enter-rise{0%{opacity:0;transform:translate3d(0,14px,0) scale(.97)}to{opacity:1;transform:translateZ(0) scale(1)}}.enter-rise{opacity:1;transform:none;animation:enter-rise .36s cubic-bezier(.22,1,.36,1) backwards;animation-delay:calc(var(--i, 0) * 60ms)}@keyframes correct-pop{0%{opacity:0;transform:scale(.85)}55%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}.correct-pop{animation:correct-pop .48s cubic-bezier(.34,1.56,.64,1) backwards}@keyframes confetti-fall{0%{transform:translate3d(0,-10vh,0) rotate(0);opacity:0}8%{opacity:1}92%{opacity:1}to{transform:translate3d(var(--drift, 0px),110vh,0) rotate(var(--spin, 540deg));opacity:0}}.confetti-piece{position:fixed;top:0;left:0;width:var(--w, .6rem);height:var(--h, 1rem);border-radius:2px;animation-name:confetti-fall;animation-timing-function:linear;animation-duration:var(--duration, 5s);animation-delay:var(--delay, 0s);animation-iteration-count:var(--iterations, 2);animation-fill-mode:both;pointer-events:none;z-index:0;will-change:transform,opacity}@keyframes firework-particle{0%{transform:translateZ(0) scale(1);opacity:1}to{transform:translate3d(var(--fx, 0px),var(--fy, 0px),0) scale(.35);opacity:0}}.firework-particle{position:fixed;width:.5rem;height:.5rem;border-radius:50%;animation:firework-particle .9s ease-out 1 forwards;animation-delay:var(--delay, 0s);pointer-events:none;z-index:0;will-change:transform,opacity}@media (prefers-reduced-motion: reduce){.confetti-piece,.firework-particle{display:none}.screen-fade-in,.enter-pop,.enter-rise,.correct-pop,.glow-pulse,.gold-pulse,.timer-ring,.timer-critical,.timer-ring-critical{animation:none}}
