.game{position:relative;width:100vw;height:100vh;min-height:560px;overflow:hidden;isolation:isolate;color:#fff}
.game:before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(rgba(31,8,51,.16),rgba(31,8,51,.34));pointer-events:none}
.game:after{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(circle at 52% 53%,rgba(216,77,149,.28),transparent 44%);pointer-events:none}
.game-screen{display:none;position:absolute;inset:0;z-index:2}
.game-screen.is-active{display:block}
.center-panel{position:absolute;left:50%;top:50%;width:min(92vw,1200px);transform:translate(-50%,-50%);text-align:center}
.idle-header{position:absolute;z-index:3;top:3.2vh;left:50%;width:min(94vw,1250px);transform:translateX(-50%);text-align:center}
.idle-title{margin:0;font-size:clamp(52px,6.7vw,90px);line-height:1.15;text-transform:uppercase}
.idle-header p{margin:clamp(14px,2vh,24px) 0 0;font-size:clamp(8px,.82vw,25px);line-height:1.7}
.idle-card{position:absolute;z-index:3;left:50%;top:55%;display:block;width:min(29vw,560px);max-height:39vh;object-fit:contain;filter:drop-shadow(0 28px 24px rgba(17,2,29,.58));transform:translate(-50%,-50%)}
.card-bounce{animation:idle-card-bounce 2.5s ease-in-out infinite}
.idle-cta{position:absolute;z-index:3;left:50%;bottom:5.3vh;transform:translateX(-50%);width:94vw;margin:0;text-align:center;font-size:clamp(20px,2.15vw,42px);line-height:1.55}
.eyebrow{margin:0 0 clamp(18px,3vh,34px);color:var(--yellow);font-size:clamp(10px,1vw,17px);letter-spacing:.16em;line-height:1.7}
.challenge-title{margin:0;font-size:clamp(46px,7vw,125px);line-height:1.18}
.challenge-copy{margin:clamp(24px,4vh,48px) 0 0;font-size:clamp(12px,1.2vw,21px);line-height:2}.challenge-copy strong{color:var(--yellow)}
.prize-copy{margin:clamp(18px,3vh,34px) 0 0;color:rgba(255,255,255,.9);font-size:clamp(9px,.82vw,15px);line-height:1.9}
.status-box,.instruction-box{display:inline-flex;align-items:center;justify-content:center;gap:clamp(14px,2vw,28px);margin-top:clamp(30px,6vh,70px);padding:clamp(16px,2.2vh,24px) clamp(22px,3vw,42px);border:3px solid rgba(255,255,255,.28);background:rgba(38,10,61,.78);box-shadow:0 8px 0 rgba(23,4,39,.65),inset 0 0 25px rgba(216,77,149,.12);font-size:clamp(8px,.82vw,14px);line-height:1.8}
.status-dot{width:12px;height:12px;background:var(--yellow);box-shadow:0 0 16px var(--yellow);animation:status-pulse 1.4s steps(2,end) infinite}
.player-name{margin:0;color:#fff;font-size:clamp(34px,5.7vw,96px);line-height:1.35;overflow-wrap:anywhere}.player-company{margin:clamp(18px,3vh,36px) 0 0;color:var(--yellow);font-size:clamp(12px,1.4vw,24px);line-height:1.7}
.instruction-box{color:#fff;border-color:rgba(255,84,101,.5);font-size:clamp(10px,1.05vw,18px)}.instruction-box p{margin:0}.instruction-box strong{color:#ff5465}
.red-button-icon,.red-button-mini{flex:0 0 auto;display:inline-block;border-radius:50%;background:radial-gradient(circle at 38% 32%,#ff8994 0 12%,#ef3146 30%,#a90820 72%);box-shadow:inset 0 -8px 0 rgba(74,0,12,.42),0 7px 0 #57000d,0 0 24px rgba(255,49,70,.45)}
.red-button-icon{width:clamp(44px,5vw,76px);height:clamp(44px,5vw,76px)}.red-button-mini{width:18px;height:18px;box-shadow:inset 0 -3px 0 rgba(74,0,12,.42),0 3px 0 #57000d}
.countdown-screen{background:rgba(22,4,39,.18)}.countdown{position:absolute;inset:0;display:grid;place-items:center;font-size:clamp(150px,26vw,430px);color:#fff}.countdown.is-pop{animation:countdown-pop .82s cubic-bezier(.2,.9,.2,1) both}.countdown.is-go{color:var(--green);font-size:clamp(90px,18vw,280px)}
.timer-wrap{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.timer-company{margin:0 0 clamp(30px,6vh,78px);color:var(--yellow);font-size:clamp(12px,1.35vw,24px);line-height:1.6}.live-timer{margin:0;font-size:clamp(96px,18vw,310px);letter-spacing:.03em;font-variant-numeric:tabular-nums;white-space:nowrap}.live-timer.is-near{animation:timer-pulse .46s ease-in-out infinite}.live-timer.is-over{color:#ff6373}.timer-hint{display:flex;align-items:center;gap:14px;margin:clamp(38px,7vh,90px) 0 0;font-size:clamp(9px,.95vw,16px);color:rgba(255,255,255,.84)}
.result{position:absolute;z-index:3;left:50%;top:50%;width:min(94vw,1200px);transform:translate(-50%,-50%);text-align:center}.result-label{margin:0 0 clamp(18px,3vh,32px);color:var(--yellow);font-size:clamp(9px,.9vw,15px);letter-spacing:.15em}.result-time{margin:0;font-size:clamp(82px,14vw,235px);letter-spacing:.04em;font-variant-numeric:tabular-nums}.result-difference{margin:clamp(20px,3.5vh,40px) 0 0;font-size:clamp(10px,1.05vw,19px);line-height:1.7}.result-title{margin:clamp(26px,4vh,50px) 0 16px;color:var(--yellow);font-size:clamp(20px,2.5vw,44px);line-height:1.45}.result-note{margin:0;color:rgba(255,255,255,.82);font-size:clamp(7px,.72vw,13px);line-height:1.8}.result-next{display:inline-flex;align-items:center;gap:15px;margin-top:clamp(38px,7vh,80px);padding:14px 20px;border:2px solid rgba(255,255,255,.2);background:rgba(38,10,61,.66);font-size:clamp(8px,.8vw,14px);line-height:1.8;animation:soft-pulse 1.5s ease-in-out infinite}
.confetti-layer{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none}.confetti-piece{position:absolute;top:-8vh;background:var(--piece-color,#fff);box-shadow:4px 0 0 rgba(0,0,0,.15);animation:confetti-fall var(--fall-time,2.5s) linear var(--delay,0s) forwards}.screen-flash{position:absolute;inset:0;z-index:20;pointer-events:none;background:#fff;opacity:0}.screen-flash.is-active{animation:flash .22s ease-out}.game.is-shaking{animation:screen-shake .18s linear}.connection-indicator{position:absolute;right:12px;bottom:12px;z-index:30;width:9px;height:9px;border-radius:50%;background:#ffb347;opacity:.75}.connection-indicator.is-online{background:#55e36b}.connection-indicator.is-offline{background:#ff5b70}
@keyframes idle-card-bounce{0%,100%{transform:translate(-50%,calc(-50% - 10px)) rotate(-1deg)}50%{transform:translate(-50%,calc(-50% + 18px)) rotate(1deg)}}
@keyframes status-pulse{0%,45%{opacity:1}46%,100%{opacity:.28}}
@keyframes countdown-pop{0%{transform:scale(.45);opacity:0}20%{transform:scale(1.05);opacity:1}76%{transform:scale(1);opacity:1}100%{transform:scale(1.25);opacity:0}}
@keyframes timer-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.025)}}
@keyframes confetti-fall{0%{transform:translate3d(0,-5vh,0) rotate(0);opacity:1}100%{transform:translate3d(var(--drift,0),112vh,0) rotate(var(--spin,720deg));opacity:.95}}
@keyframes flash{0%{opacity:0}25%{opacity:.85}100%{opacity:0}}@keyframes screen-shake{0%,100%{transform:translate(0)}25%{transform:translate(-5px,2px)}50%{transform:translate(4px,-2px)}75%{transform:translate(-2px,1px)}}@keyframes soft-pulse{0%,100%{opacity:.58}50%{opacity:1}}
@media(max-aspect-ratio:4/3){.idle-title{font-size:clamp(44px,9vw,90px)}.idle-card{width:min(48vw,520px)}.idle-cta{font-size:clamp(16px,3.2vw,32px)}.live-timer{font-size:clamp(86px,21vw,220px)}}
@media(max-height:700px){.center-panel,.result{top:51%}.result-next{margin-top:25px}.idle-layout{padding-top:3vh;padding-bottom:3vh}}
@media(prefers-reduced-motion:reduce){.card-bounce,.status-dot,.live-timer.is-near,.result-next{animation:none}}
