:root{--display:Avenir Next, Nunito, ui-rounded, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--body:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-family:var(--body);color:#102743;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 12% 10%,#078f8c2e,#0000 32%),radial-gradient(circle at 88% 16%,#e74d3f29,#0000 30%),#f8f0d7}*{box-sizing:border-box}html{overscroll-behavior:none;min-height:100%}body{min-width:320px;min-height:100svh;margin:0;overflow-x:hidden}button,input,select,textarea{font:inherit}button{-webkit-user-select:none;user-select:none}#root{min-height:100svh}.game-shell{place-items:center;min-height:100svh;padding:clamp(10px,2vw,22px);display:grid}.game-board{background:linear-gradient(180deg, #fffaec33, #fffaeceb), var(--arena-image) center / cover no-repeat;border:4px solid #101d34;border-radius:24px;grid-template-rows:auto 1fr auto;width:min(1180px,100%);min-height:min(760px,100svh - 24px);display:grid;overflow:hidden;box-shadow:0 24px 60px #101d3438,inset 0 0 0 1px #ffffffa6}.topbar,.control-dock{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffcf0db;justify-content:space-between;align-items:center;gap:18px;padding:18px clamp(18px,3vw,34px);display:flex}.topbar{border-bottom:1px solid #101d341f}.top-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.brand{color:#101d34;text-align:left;align-items:center;gap:12px;display:flex}.brand-mark{aspect-ratio:1;width:54px;font-family:var(--display);background:#fbc949;border:3px solid #101d34;border-radius:16px;flex:none;place-items:center;font-size:30px;font-weight:900;display:grid;box-shadow:0 5px #d39825}.brand h1,.brand p,.player-banner h2,.player-banner p{margin:0}.brand h1{color:#101d34;font-family:var(--display);font-size:clamp(28px,4vw,54px);font-weight:900;line-height:.9}.brand p{color:#37445e;margin-top:5px;font-weight:800}.status-strip{color:#fffdf4;background:#102743;border:3px solid #101d34;border-radius:18px;grid-template-columns:1fr 1.15fr 1fr;min-width:min(410px,40vw);display:grid;overflow:hidden;box-shadow:0 6px #101d343d}.status-strip>div{place-items:center;gap:2px;padding:12px 16px;display:grid;position:relative}.status-strip>div+div{border-left:1px solid #ffffff29}.status-strip span,.segmented legend,.operation-label{color:#5f6e86;letter-spacing:0;text-transform:uppercase;font-size:12px;font-weight:900;line-height:1}.status-strip span{color:#9ed8d6}.status-strip strong{font-size:clamp(22px,3vw,34px);line-height:1}.status-strip .timer{background:#07162b}.timer-meter{background:#fff3;border-radius:999px;height:5px;position:absolute;bottom:7px;left:10px;right:10px;overflow:hidden}.timer-meter i{border-radius:inherit;background:#fbc949;height:100%;transition:width .22s linear;display:block}.arena{grid-template-columns:minmax(210px,.78fr) minmax(320px,1.28fr) minmax(210px,.78fr);align-items:stretch;gap:clamp(12px,2vw,24px);min-height:0;padding:clamp(16px,2.4vw,32px);display:grid}.player-panel{align-content:space-between;gap:16px;display:grid}.player-banner{color:#fffdf4;border:3px solid #101d34e0;border-radius:18px;align-items:center;gap:12px;padding:12px;display:flex;box-shadow:0 6px #101d3438}.player-panel.teal .player-banner,.player-panel.teal .answer-grid button{background:#078f8c}.player-panel.coral .player-banner,.player-panel.coral .answer-grid button{background:#e74d3f}.solo-goal{align-content:start}.solo-stats,.turn-score-list{gap:10px;display:grid}.turn-score-list>div{background:#fffdf4db;border:3px solid #101d34b3;border-radius:16px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:76px;padding:12px;display:grid;box-shadow:0 5px #101d3429}.turn-score-list>div.active-turn{border-color:#fbc949;box-shadow:0 5px #101d3429,0 0 0 3px #fbc9496b}.turn-score-list span{font-size:28px}.turn-score-list strong{color:#102743;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:16px;overflow:hidden}.turn-score-list b{color:#078f8c;font-family:var(--display);font-size:23px}.turn-score-list em{color:#5f6e86;font-size:13px;font-style:normal;font-weight:900}.solo-stats div{background:#fffdf4db;border:3px solid #101d34c7;border-radius:18px;justify-content:space-between;align-items:center;gap:12px;min-height:82px;padding:14px;display:flex;box-shadow:0 6px #101d342e}.solo-stats span{color:#5f6e86;text-transform:uppercase;font-size:12px;font-weight:900;line-height:1}.solo-stats strong{color:#102743;font-family:var(--display);font-size:clamp(36px,5vw,58px);line-height:.9}.avatar{aspect-ratio:1;background:#101d34;border:3px solid #fff7dc;border-radius:50%;flex:none;place-items:center;width:52px;font-size:28px;font-weight:900;display:grid}.player-banner h2{color:#fffdf4;font-size:clamp(22px,3vw,33px);line-height:1}.player-banner p{margin-top:4px;font-weight:900}.answer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.answer-grid button,.start-button,.segmented button{color:#102743;min-height:48px;font:inherit;letter-spacing:0;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:0;font-weight:900}.answer-grid button{color:#fffdf4;border:3px solid #101d34db;border-radius:18px;place-items:center;min-height:clamp(72px,10vw,118px);font-size:clamp(34px,6vw,68px);line-height:1;transition:transform .12s,box-shadow .12s,filter .12s;display:grid;position:relative;box-shadow:0 7px #101d3447,inset 0 2px #ffffff42}.answer-grid button>span:last-child{line-height:1}.answer-grid button:disabled{cursor:not-allowed;filter:saturate(.8)brightness(.92)}.answer-grid button.answer-wrong{filter:brightness(.76)saturate(1.3);animation:.36s both answer-miss}.answer-grid button.answer-revealed{filter:brightness(1.16)saturate(1.18);box-shadow:0 7px #101d3447,0 0 0 5px #fbc949,inset 0 2px #ffffff4d}.cpu-player .answer-grid button{filter:saturate(.75)brightness(.9)}.keycap{color:#fffdf4;background:#1027437a;border:2px solid #fffdf4d6;border-radius:8px;place-items:center;min-width:30px;height:28px;font-size:14px;font-weight:900;line-height:1;display:grid;position:absolute;top:9px;left:9px}.answer-grid button:active{transform:translateY(5px);box-shadow:0 2px #101d3447,inset 0 2px #ffffff2e}.answer-grid button:focus-visible,.start-button:focus-visible,.segmented button:focus-visible{outline-offset:3px;outline:4px solid #fbc949}.center-stage{align-content:center;gap:clamp(16px,3vw,30px);min-width:0;display:grid}.rope-wrap{background:linear-gradient(#9fdcf1 0 63%,#7abe61 63% 100%);border:4px solid #102743;border-radius:22px;align-items:center;min-height:286px;display:grid;position:relative;overflow:hidden;box-shadow:0 8px #101d3438}.tug-ground{background:repeating-linear-gradient(135deg,#1f64342e 0 10px,#0000 10px 24px);height:34%;position:absolute;bottom:0;left:0;right:0}.tug-travel{z-index:2;transform-origin:bottom;width:min(96%,520px);transition:transform .26s cubic-bezier(.16,1,.3,1);position:absolute;bottom:-8px;left:50%;translate:-50%}.tug-competitors{transform-origin:bottom;width:100%;max-width:none;height:auto;display:block}.rope-wrap.is-moving .tug-competitors{animation:.88s ease-in-out infinite alternate tug-strain}.rope-wrap.is-moving .tug-ground{animation:2.4s linear infinite ground-drift}.race-track{background:#313b4b;border:4px solid #102743;border-radius:22px;min-height:266px;padding:16px 18px 16px 42px;position:relative;overflow:hidden;box-shadow:0 8px #101d3438}.race-track:before{content:"";opacity:.34;background:repeating-linear-gradient(0deg,#0000 0 32px,#f7efdc 32px 40px,#0000 40px 74px);position:absolute;inset:0}.race-lane{z-index:1;border:2px solid #ffffff47;height:110px;position:relative}.lane-two{margin-top:12px}.lane-label{color:#fffdf4;font-size:12px;font-weight:900;position:absolute;top:50%;left:-34px;translate:0 -50%}.finish-line{z-index:2;background:conic-gradient(#102743 25%, #fffdf4 0 50%, #102743 0 75%, #fffdf4 0) 0 / 10px 10px;border:2px solid #fffdf4;width:20px;position:absolute;top:10px;bottom:10px;right:20px}.race-traveler{transition:left .26s cubic-bezier(.16,1,.3,1);position:absolute;top:0;translate:-50%}.race-runner{background-repeat:no-repeat;background-size:340px;width:120px;height:132px;margin-top:-10px;display:block}.runner-one{background-position:-25px -4px}.runner-two{background-position:-202px -4px}.race-car{background-repeat:no-repeat;background-size:350px;width:124px;height:90px;margin-top:10px;display:block}.race-track.is-moving .race-runner{animation:.36s ease-in-out infinite runner-stride}.race-track.is-moving .race-car{animation:.3s ease-in-out infinite alternate car-suspension}.race-track.is-moving:before{animation:.85s linear infinite track-rush}.race-car-one{background-position:-15px -48px}.race-car-two{background-position:-211px -48px}.car-track{background:#252c38}.car-track:before{opacity:.55;background:repeating-linear-gradient(0deg,#0000 0 46px,#fbc949 46px 53px,#0000 53px 116px)}.impact-correct.race-theme .race-traveler,.impact-win.race-theme .race-traveler,.impact-correct.car-theme .race-traveler,.impact-win.car-theme .race-traveler{animation:.42s both turbo-hop}.impact-correct .rope-wrap,.impact-win .rope-wrap{animation:.42s both happy-pop}.impact-correct .tug-travel,.impact-win .tug-travel{animation:.42s both tug-heave}.handoff-card{color:#102743;text-align:center;background:#fffdf4;border:4px solid #102743;border-radius:22px;justify-self:center;justify-items:center;gap:9px;width:min(100%,500px);padding:20px;display:grid;box-shadow:0 8px #101d3442}.handoff-face{font-size:42px}.handoff-card>span:not(.handoff-face){color:#078f8c;text-transform:uppercase;font-size:13px;font-weight:900}.handoff-card strong{font-family:var(--display);font-size:clamp(28px,4vw,44px);line-height:1}.handoff-card p{color:#4b5870;max-width:390px;margin:0;font-weight:800}.handoff-card button{color:#102743;min-height:48px;font:inherit;cursor:pointer;background:#fbc949;border:3px solid #102743;border-radius:10px;margin-top:5px;padding:0 24px;font-weight:900;box-shadow:0 5px #d39825}.impact-wrong .question-card,.impact-timeout .question-card{animation:.32s both shake-card}.rope{background:repeating-linear-gradient(135deg,#ad6f34 0 14px,#e2aa61 14px 24px,#8c5129 24px 34px);border:3px solid #5b351c;border-radius:999px;height:28px;box-shadow:inset 0 5px #fff3,0 10px 16px #4c2f1a40}.track{z-index:4;background:#fffdf4e0;border:4px solid #102743;border-radius:999px;grid-template-columns:1fr 1fr;height:35px;display:grid;position:absolute;bottom:9px;left:8%;right:8%;overflow:hidden;box-shadow:0 6px #101d342e}.track-fill.one{background:linear-gradient(90deg,#078f8c,#078f8c40)}.track-fill.two{background:linear-gradient(90deg,#e74d3f40,#e74d3f)}.marker{z-index:5;color:#fffdf4;background:#102743;border:4px solid #fff7dc;border-radius:22px 22px 28px 28px;place-items:center;width:78px;height:92px;transition:left .26s cubic-bezier(.16,1,.3,1);display:grid;position:absolute;top:12px;translate:-50%;box-shadow:0 8px #101d3442,inset 0 0 0 4px #1d3a5c}.marker:after{content:"";background:#102743;border-bottom:4px solid #fff7dc;border-right:4px solid #fff7dc;width:28px;height:28px;position:absolute;bottom:-24px;rotate:45deg}.marker span{z-index:1;font-size:26px;font-weight:900;position:relative}.math-burst{pointer-events:none;z-index:4;color:#102743;width:180px;height:126px;position:absolute;top:4px;left:50%;translate:-50%}.math-burst.one{color:#078f8c;left:34%}.math-burst.two{color:#e74d3f;left:66%}.math-burst strong,.math-burst span{background:#fbc949;border:3px solid #102743;border-radius:999px;place-items:center;animation:.76s ease-out both burst-out;display:grid;position:absolute;box-shadow:0 4px #101d3433}.math-burst strong{color:#102743;white-space:nowrap;min-width:96px;min-height:42px;padding:0 10px;font-size:17px;top:28px;left:42px}.math-burst span{width:34px;height:34px;font-weight:900}.math-burst span:nth-child(2){--burst-x:-48px;--burst-y:-16px;top:48px;left:4px}.math-burst span:nth-child(3){--burst-x:-28px;--burst-y:-44px;top:0;left:34px}.math-burst span:nth-child(4){--burst-x:28px;--burst-y:-42px;top:0;right:34px}.math-burst span:nth-child(5){--burst-x:48px;--burst-y:-14px;top:48px;right:4px}.math-burst span:nth-child(6){--burst-x:-26px;--burst-y:38px;bottom:4px;left:40px}.math-burst span:nth-child(7){--burst-x:26px;--burst-y:38px;bottom:4px;right:40px}.question-card{color:#fffdf4;background:#102743;border:4px solid #102743;border-radius:24px;justify-self:center;justify-items:center;gap:10px;width:min(100%,500px);padding:clamp(14px,2vw,24px);display:grid;box-shadow:0 8px #101d3442}.question-card strong{font-family:var(--display);text-align:center;white-space:nowrap;font-size:clamp(42px,6vw,72px);line-height:.98}.operation-label{color:#fbc949}.feedback{color:#102743;text-align:center;min-height:34px;font-size:clamp(18px,2.4vw,27px);font-weight:900}.key-hint{color:#37445e;text-align:center;max-width:540px;margin:-18px auto 0;font-size:14px;font-weight:900;line-height:1.25}.feedback.correct{color:#057a76}.feedback.wrong{color:#c43d32}.feedback.timeout,.feedback.win{color:#102743}.control-dock{border-top:1px solid #101d341f;flex-wrap:wrap}.profile-setup{flex:100%;grid-template-columns:repeat(2,minmax(260px,1fr));gap:10px;display:grid}.profile-card{background:#fffdf4a8;border:2px solid #101d3429;border-radius:14px;grid-template-columns:minmax(140px,.7fr) 1fr;align-items:end;gap:10px;padding:10px;display:grid}.profile-card label{gap:6px;min-width:0;display:grid}.profile-card span{color:#5f6e86;text-transform:uppercase;font-size:11px;font-weight:900;line-height:1}.profile-card input{color:#102743;background:#fffdf4f2;border:2px solid #101d3457;border-radius:10px;outline:0;width:100%;min-height:40px;padding:0 10px;font-weight:900;box-shadow:0 3px #101d341f}.profile-card input:focus-visible{outline-offset:2px;border-color:#102743;outline:4px solid #fbc949}.face-row{flex-wrap:wrap;gap:6px;display:flex}.face-row button{aspect-ratio:1;cursor:pointer;background:#fffdf4;border:2px solid #101d343d;border-radius:50%;place-items:center;width:38px;font-size:20px;display:grid;box-shadow:0 3px #101d341f}.locked-face{aspect-ratio:1;background:#fffdf4;border:2px solid #101d343d;border-radius:50%;place-items:center;width:46px;font-size:25px;display:grid;box-shadow:0 3px #101d341f}.face-row button.selected{background:#fbc949;border-color:#102743;transform:translateY(-1px)}.profile-card:has(:disabled){opacity:.62}.segmented{border:0;gap:8px;min-width:min(100%,235px);margin:0;padding:0;display:grid}.segmented div{flex-wrap:wrap;gap:8px;display:flex}.segmented button{background:#fffdf4eb;border:2px solid #101d3457;border-radius:10px;min-height:42px;padding:0 15px;box-shadow:0 3px #101d3424}.toggle-button{color:#102743;cursor:pointer;background:#fffdf4eb;border:2px solid #101d344d;border-radius:10px;min-height:38px;padding:0 12px;font-weight:900;box-shadow:0 3px #101d3424}.toggle-button.active{background:#fbc949;border-color:#102743}.test-button{color:#fffdf4;background:#102743}.toggle-button:focus-visible,.face-row button:focus-visible,.profile-card input:focus-visible{outline-offset:3px;outline:4px solid #fbc949}.segmented button.selected{color:#fffdf4;background:#078f8c;border-color:#102743}.segmented:disabled{opacity:.58}.segmented:disabled button{cursor:not-allowed}.scoreboard{gap:8px;min-width:min(100%,200px);display:grid}.scoreboard-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.scoreboard-head>span{color:#5f6e86;text-transform:uppercase;font-size:12px;font-weight:900;line-height:1}.scoreboard-head .toggle-button{min-height:30px;padding:0 10px;font-size:12px}.scoreboard-head .toggle-button:disabled{cursor:not-allowed;opacity:.5}.scoreboard-stats{grid-template-columns:1fr 1fr;gap:8px;display:grid}.scoreboard-stats div{background:#fffdf4db;border:2px solid #101d343d;border-radius:12px;place-items:center;gap:4px;padding:8px 10px;display:grid;box-shadow:0 3px #101d341f}.scoreboard-stats span{color:#5f6e86;text-transform:uppercase;font-size:11px;font-weight:900;line-height:1}.scoreboard-stats strong{color:#102743;font-family:var(--display);font-size:clamp(20px,2.6vw,28px);line-height:1}.start-button{color:#102743;background:#fbc949;border:3px solid #102743;border-radius:18px;min-width:180px;min-height:72px;padding:0 30px;font-size:clamp(27px,4vw,46px);transition:transform .12s,box-shadow .12s;box-shadow:0 7px #c68521,inset 0 2px #fff6}.start-button:active{transform:translateY(5px);box-shadow:0 2px #c68521,inset 0 2px #ffffff3d}@media (width<=900px){.topbar{flex-direction:column;align-items:stretch}.top-actions{justify-content:stretch}.toggle-button{flex:1 1 0}.status-strip{width:100%;min-width:0}.arena{grid-template-rows:auto auto auto;grid-template-columns:1fr;gap:16px}.player-panel{align-content:start}.player-panel .answer-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.player-panel.coral:not(.solo-goal):not(.turn-score-panel){transform:rotate(180deg)}.answer-grid button{min-height:76px}.key-hint{margin-top:-4px}.center-stage{gap:12px}.rope-wrap{min-height:250px}.race-track{min-height:236px}.control-dock{align-items:stretch}.profile-setup{grid-template-columns:1fr}.segmented,.start-button{flex:100%}}@media (width<=680px){.brand p,.key-hint{display:none}.top-actions{grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.toggle-button{min-width:0;padding:0 6px;font-size:12px}.player-panel .answer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.game-shell{padding:0}.game-board{border-width:0;border-radius:0;min-height:100svh}.topbar,.control-dock,.arena{padding:12px}.brand-mark{border-radius:13px;width:44px}.status-strip>div{padding:10px 6px}.status-strip strong{font-size:22px}.player-banner{border-radius:14px;padding:9px}.avatar{width:42px;font-size:23px}.answer-grid{gap:9px}.answer-grid button{border-radius:14px;min-height:64px;font-size:34px}.keycap{border-radius:7px;min-width:25px;height:23px;font-size:12px}.rope{height:22px}.marker{border-radius:18px 18px 24px 24px;width:62px;height:76px}.question-card{border-radius:18px}.question-card strong{font-size:40px}.profile-card{grid-template-columns:1fr}.face-row button{width:34px;font-size:18px}.locked-face{width:40px;font-size:22px}.segmented div{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.segmented button{padding:0 8px;font-size:14px}}@keyframes happy-pop{0%{transform:scale(1)}45%{transform:scale(1.035)}to{transform:scale(1)}}@keyframes turbo-hop{45%{transform:translateY(-9px)rotate(-2deg)}}@keyframes tug-heave{45%{transform:translate(-8px)scale(1.025)}}@keyframes tug-strain{0%{transform:translateY(0)rotate(-.35deg)scaleX(1)}55%{transform:translateY(1px)rotate(.3deg)scaleX(1.008)}to{transform:translateY(-2px)rotate(-.2deg)scaleX(.996)}}@keyframes ground-drift{to{background-position:48px 0}}@keyframes runner-stride{0%,to{transform:translateY(0)rotate(-1.5deg)}45%{transform:translateY(-5px)rotate(1deg)}70%{transform:translateY(1px)rotate(-.5deg)}}@keyframes car-suspension{0%{transform:translateY(0)rotate(-.35deg)}to{transform:translateY(-2px)rotate(.35deg)}}@keyframes track-rush{to{background-position:-90px 0}}@keyframes shake-card{0%,to{transform:translate(0)}25%{transform:translate(-8px)}50%{transform:translate(7px)}75%{transform:translate(-4px)}}@keyframes answer-miss{0%,to{transform:translate(0)}30%{transform:translate(-5px)rotate(-1deg)}65%{transform:translate(5px)rotate(1deg)}}@keyframes burst-out{0%{opacity:0;transform:translateY(12px)scale(.7)rotate(-5deg)}18%{opacity:1}to{opacity:0;transform:translate(var(--burst-x,0), var(--burst-y,-24px)) scale(1.05) rotate(8deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
