@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,700&family=Manrope:wght@500;600;700;800&display=swap";:root{--bg: #e7e9ef;--surface: #eef0f5;--panel: #f4f6fa;--panel-border: #c9ced9;--ink: #111c38;--muted: #6f788d;--accent: #f0a61f;--accent-soft: #f7b645;--button: #8b95ad;--button-hover: #76829e;--correct: #0f8a4a;--incorrect: #b03a3a;--shadow: 0 20px 40px rgba(17, 28, 56, .08)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:Manrope,Avenir Next,Segoe UI,sans-serif;color:var(--ink);background:radial-gradient(circle at 15% 8%,#f0a61f29,#f0a61f00 38%),radial-gradient(circle at 80% 15%,#111c381a,#111c3800 42%),linear-gradient(180deg,#e5e8ef,#dde2ec)}button,input{font:inherit}.app-shell{min-height:100vh;padding:clamp(1.2rem,3vw,2.25rem);display:grid;place-items:center}.setup-card{width:min(100%,980px);background:color-mix(in srgb,var(--surface) 92%,white 8%);border:1px solid var(--panel-border);border-radius:36px;padding:clamp(1.25rem,3vw,2.25rem);box-shadow:var(--shadow);text-align:center}.brand-icon{width:clamp(84px,12vw,100px);height:clamp(84px,12vw,100px);margin:0 auto;border-radius:22px;display:grid;place-items:center;font-size:clamp(2rem,5vw,2.35rem);background:linear-gradient(165deg,#f2af2e,#e89e0f);color:#0a1b47}.brand-title{margin:clamp(1rem,2vw,1.5rem) 0 0;font-family:Fraunces,Iowan Old Style,serif;font-size:clamp(2.9rem,8vw,6.2rem);font-weight:700;line-height:.92;letter-spacing:-.02em}.brand-title span{display:block;margin-top:.32em;color:var(--accent)}.brand-subtitle{margin:clamp(.75rem,2vw,1.4rem) auto 0;color:var(--muted);font-size:clamp(1rem,2.2vw,1.08rem);max-width:40ch}.setup-form{margin:clamp(1.45rem,3.5vw,2.2rem) auto 0;width:min(100%,760px);display:grid;gap:1.05rem}.name-input-wrap{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1rem;border:2px solid var(--panel-border);border-radius:18px;padding:.9rem 1rem;background:color-mix(in srgb,var(--panel) 90%,white 10%)}.name-tag{color:var(--accent);font-weight:800;font-size:1.8rem;letter-spacing:.02em}.name-input-wrap input{width:100%;border:0;outline:0;background:transparent;color:var(--ink);font-size:clamp(1.05rem,2.2vw,1.25rem)}.name-input-wrap input::-moz-placeholder{color:#7b8498}.name-input-wrap input::placeholder{color:#7b8498}.versus-label{margin:.05rem 0;font-size:clamp(1.25rem,3vw,2rem);font-weight:800;letter-spacing:.07em;color:#757f95}.primary-btn{margin-top:.2rem;border:0;border-radius:18px;padding:1rem 1.35rem;font-size:clamp(1rem,2vw,1.2rem);font-weight:800;color:#f3f5fa;background:var(--button);cursor:pointer;transition:transform .16s ease,background-color .16s ease}.primary-btn:hover{background:var(--button-hover);transform:translateY(-1px)}.primary-btn:active{transform:translateY(0)}.battle-shell{align-items:start}.battle-page{width:min(1180px,100%);display:grid;gap:1rem}.battle-header{border:1px solid var(--panel-border);background:color-mix(in srgb,var(--surface) 92%,white 8%);border-radius:24px;padding:.9rem 1rem;box-shadow:var(--shadow)}.battle-header-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.round-chip{display:inline-flex;align-items:center;padding:.35rem .72rem;border-radius:999px;font-size:.82rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#1c2850;background:color-mix(in srgb,var(--accent) 22%,white 78%)}.home-btn{border:1px solid #b8c0d1;border-radius:999px;padding:.35rem .75rem;font-size:.82rem;font-weight:800;color:#3d4a67;background:#eef1f7;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.home-btn:hover{background:#e2e8f3;border-color:#a9b4c9}.home-btn:focus-visible{outline:2px solid #7e8aa5;outline-offset:2px}.score-row{margin-top:.7rem;display:flex;align-items:center;justify-content:center;gap:.75rem;flex-wrap:wrap}.score-card{min-width:168px;display:grid;justify-items:center;gap:.1rem;border:1px solid var(--panel-border);border-radius:16px;padding:.65rem .95rem;background:var(--panel)}.score-card span{font-size:.93rem;color:var(--muted);font-weight:700}.score-card strong{font-size:1.62rem;line-height:1}.score-time{margin-top:.15rem;font-size:.8rem;font-style:normal;font-weight:700;color:#66738d}.score-divider{font-weight:800;color:#727d95;letter-spacing:.06em}.battle-grid{--duel-col-size: 1fr;--desmos-col-size: 1fr;--resizer-size: 14px;display:grid;gap:0;grid-template-columns:minmax(0,var(--duel-col-size)) var(--resizer-size) minmax(0,var(--desmos-col-size));align-items:stretch}.battle-grid-resizer{position:relative;border:0;background:transparent;cursor:col-resize;touch-action:none;outline:none}.battle-grid-resizer:before{content:"";position:absolute;inset-block:12px;left:50%;width:4px;border-radius:999px;transform:translate(-50%);background:#d2d7e2;transition:background-color .15s ease}.battle-grid-resizer:hover:before,.battle-grid-resizer:focus-visible:before,.battle-grid-resizing .battle-grid-resizer:before{background:#8d97ae}.battle-grid-resizer:focus-visible{box-shadow:0 0 0 3px #8d97ae59;border-radius:999px}.battle-grid-resizing{cursor:col-resize}.battle-grid-resizing *{-webkit-user-select:none;-moz-user-select:none;user-select:none}.duel-panel,.desmos-panel{border:1px solid var(--panel-border);background:color-mix(in srgb,var(--surface) 92%,white 8%);border-radius:24px;padding:1rem;box-shadow:var(--shadow)}.sat-calc-panel{padding:0;overflow:hidden;background:#fff}.sat-calc-bar{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.5rem .75rem;border-bottom:1px solid #d4d8e1;background:#f3f4f7}.sat-calc-bar strong{color:#1a1a1b;font-size:1.02rem;font-weight:700}.sat-calc-controls{display:flex;align-items:center;gap:.55rem}.sat-calc-tabs{display:inline-flex;border:1px solid #c8cddd;border-radius:10px;overflow:hidden}.sat-calc-tab{padding:.34rem .72rem;font-size:.84rem;font-weight:700;color:#505a73;background:#eef1f7}.sat-calc-tab-active{color:#fff;background:#0f1118}.sat-calc-min-btn{border:1px solid #bcc3d4;border-radius:9px;padding:.28rem .6rem;font-size:.76rem;font-weight:700;color:#384766;background:#edf1f8;cursor:pointer;transition:background-color .14s ease,border-color .14s ease}.sat-calc-min-btn:hover{background:#e4eaf5;border-color:#aeb8cc}.sat-calc-min-btn:focus-visible{outline:2px solid #7f8dab;outline-offset:2px}.sat-calc-min-note{margin:0;padding:.58rem .8rem;border-bottom:1px solid #d6dbe7;color:#4f5d79;font-size:.82rem;font-weight:700}.sat-calc-canvas{margin-top:0;border:0;border-radius:0;height:clamp(520px,72vh,790px)}.sat-calc-canvas-minimized{height:0!important;min-height:0;border:0}.handoff-card,.question-card,.result-card,.final-card{display:grid;gap:.9rem}.exam-question-card{gap:0;padding:0;overflow:hidden;border-radius:20px;border:1px solid #cfd3de;background:#fff}.exam-toolbar{display:flex;align-items:center;gap:.75rem;min-height:56px;padding:0 .9rem;border-bottom:1px solid #d8dde7;background:#f2f3f5}.exam-number-cell{width:46px;height:40px;border-radius:2px;display:grid;place-items:center;background:#0f1116;color:#fff;font-size:1.2rem;font-weight:800}.exam-toolbar-item{color:#1f2330;font-size:.92rem;font-weight:700}.exam-timer-item{border-radius:999px;padding:.22rem .56rem;background:#dfe5f2;color:#22355f}.exam-toolbar-spacer{flex:1}.exam-question-body{padding:1.2rem;background:#fff;display:grid;gap:1rem}.exam-player-tag{margin:0;color:#5f6b86;font-size:.88rem;font-weight:700}.sat-style-prompt{color:#191e2a;font-size:clamp(1.75rem,2.7vw,2.6rem)!important;font-family:Fraunces,Iowan Old Style,serif!important;line-height:1.22!important}.handoff-card h2,.question-card h2,.result-card h2,.final-card h2{margin:0;font-family:Fraunces,Iowan Old Style,serif;font-size:clamp(1.5rem,2.8vw,2.2rem);line-height:1.1}.question-prompt{line-height:1.2!important}.question-prompt .mjx-chtml,.choice-btn .mjx-chtml,.result-question .mjx-chtml{font-size:1em}.handoff-card p,.result-card p,.final-card p{margin:0;color:var(--muted)}.question-meta{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.question-meta span{font-size:.84rem;font-weight:700;color:#5f6c86;background:#dbe2ef;border-radius:999px;padding:.26rem .6rem}.choice-grid{display:grid;gap:.6rem}.choice-btn{width:100%;border:2px solid #222937;border-radius:16px;background:#fff;color:#111825;padding:.85rem .9rem;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.85rem;text-align:left;cursor:pointer;transition:border-color .14s ease,transform .14s ease,background-color .14s ease}.choice-btn:hover{border-color:#0f1625;transform:translateY(-1px)}.choice-badge{width:2.2rem;height:2.2rem;border-radius:999px;display:grid;place-items:center;border:2px solid #20293b;color:#182134;font-size:1.15rem;font-weight:800}.choice-content{font-size:1.02rem}.choice-btn-active{border-color:#0c1322;background:#eef2f9}.exam-submit-btn{margin-top:.2rem;border-radius:14px;background:#838fa8}.exam-submit-btn:hover{background:#6f7e9e}.exam-numeric-wrap{color:#2f3952}.exam-numeric-wrap input{border:2px solid #222937;background:#fff;color:#111825}.numeric-input-wrap{display:grid;gap:.45rem;font-size:.92rem;font-weight:700;color:#4f5f80}.numeric-input-wrap input{width:100%;border:2px solid var(--panel-border);border-radius:14px;padding:.75rem .8rem;background:var(--panel);color:var(--ink);outline:none}.numeric-input-wrap input:focus{border-color:#8f9ebb}.privacy-note{margin:0;color:#616c84;font-size:.87rem}.result-question{font-weight:700;color:#314061!important}.result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.result-player-card{border:1px solid var(--panel-border);border-radius:14px;background:var(--panel);padding:.75rem}.result-player-card h3{margin:0;font-size:1rem}.result-player-card p{margin-top:.4rem;font-size:.92rem}.result-player-card span{color:#4e5d80;font-weight:700}.solution-panel{border:1px solid #b9c0cf;border-radius:16px;background:#eef1f7;padding:.9rem 1rem}.solution-panel h3{margin:0;font-size:1.05rem;font-weight:800;color:#1f2c4f}.solution-steps{margin:.7rem 0 0;padding-left:1.2rem;color:#334468;display:grid;gap:.34rem}.solution-steps li{line-height:1.42}.solution-answer{margin:.85rem 0 0;padding-top:.72rem;border-top:1px solid #c8cedd;color:#17284a!important;font-weight:800}.solution-answer span{color:#2f4067;font-weight:800}.rationale-panel{border:1px solid #bcc5d8;border-radius:16px;background:#f8faff;padding:.9rem 1rem;display:grid;gap:.55rem}.rationale-panel h3{margin:0;font-size:1.05rem;font-weight:800;color:#1f2c4f}.rationale-panel p{margin:0;color:#2f4067!important;line-height:1.42}.choice-rationale-grid{margin-top:.35rem;display:grid;gap:.55rem;grid-template-columns:repeat(2,minmax(0,1fr))}.choice-rationale-card{border:1px solid #ccd4e4;border-radius:12px;padding:.65rem .72rem;background:#fff;display:grid;gap:.35rem}.choice-rationale-card-correct{border-color:#9ec6b1;background:#f4fbf7}.choice-rationale-card h4{margin:0;font-size:.88rem;color:#213357}.choice-rationale-card p{margin:0;font-size:.86rem;color:#394a6e!important;line-height:1.35}.speed-note{margin:0;padding:.65rem .85rem;border:1px solid #bdc7dc;border-radius:12px;background:#e8edf9;color:#23345d!important;font-weight:700}.speed-note strong{color:#122451}.correct{color:var(--correct)!important;font-weight:800}.incorrect{color:var(--incorrect)!important;font-weight:800}.winner-line{font-weight:800;color:#273967!important}.final-scores{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.final-scores>div{border:1px solid var(--panel-border);border-radius:14px;background:var(--panel);padding:.75rem;display:grid;justify-items:center}.final-scores span{font-size:.92rem;color:var(--muted);font-weight:700}.final-scores strong{margin-top:.15rem;font-size:1.7rem;line-height:1}.final-time{margin-top:.2rem;font-size:.8rem;font-style:normal;font-weight:700;color:#5d6e8f}.final-actions{display:grid}.mode-select-card{display:grid;gap:1rem}.mode-select-grid{margin:.75rem auto 0;width:min(100%,640px);display:grid;gap:.8rem}.mode-select-btn{margin-top:0}.online-entry-card{text-align:left}.online-entry-top{margin-bottom:.5rem;display:flex;align-items:center;justify-content:space-between;gap:.65rem}.online-divider{margin:.2rem 0;text-align:center;color:#6f7b93;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.online-status-note,.online-error-note{margin:0;font-size:.9rem;font-weight:700}.online-status-note{color:#2e416a}.online-error-note{color:#a03232}.online-lobby-card{display:grid;gap:.85rem;text-align:left}.online-party-code{margin:0;font-family:Fraunces,Iowan Old Style,serif;font-size:clamp(1.4rem,4vw,2.1rem)}.online-player-grid{margin-top:.25rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.online-player-card{background:#fff}.online-player-card-empty{border-style:dashed;background:color-mix(in srgb,var(--panel) 86%,white 14%)}.online-lobby-actions{margin-top:.2rem;display:grid;gap:.65rem}.online-status-chip{display:inline-flex;align-items:center;justify-content:center;width:-moz-fit-content;width:fit-content;border:1px solid #bbc4d8;border-radius:999px;padding:.35rem .72rem;background:#e8edf8;color:#24365d;font-size:.84rem;font-weight:800}.online-status-chip-error{border-color:#d8b0b0;background:#f8eaea;color:#7a2727}.online-header-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.online-feedback-block{margin-top:.1rem;display:grid;gap:.25rem}.desmos-canvas{margin-top:.75rem;height:clamp(360px,62vh,620px);width:100%;border:1px solid var(--panel-border);border-radius:14px;overflow:hidden;background:#fff}.sat-calc-panel .desmos-canvas{margin-top:0;border:0;border-radius:0;height:clamp(520px,72vh,790px)}.exam-question-card .numeric-input-wrap input{border:2px solid #222937;background:#fff;color:#111825}.fade-up{animation:fade-up .36s ease}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 1024px){.battle-grid{gap:.85rem;grid-template-columns:1fr}.battle-grid-resizer{display:none}.desmos-canvas{height:clamp(320px,46vh,520px)}.sat-calc-canvas{height:clamp(360px,54vh,560px)}.exam-toolbar{flex-wrap:wrap;padding:.55rem .7rem}.exam-toolbar-spacer{display:none}}@media (max-width: 680px){.app-shell{padding:.7rem}.setup-card{border-radius:28px}.name-tag{font-size:1.45rem}.result-grid,.final-scores,.choice-rationale-grid{grid-template-columns:1fr}.score-card{min-width:138px}.online-player-grid{grid-template-columns:1fr}.online-header-actions{justify-content:flex-start}.duel-panel,.desmos-panel{border-radius:18px;padding:.8rem}.exam-question-body{padding:.88rem}.exam-number-cell{width:40px;height:34px;font-size:1.02rem}.choice-badge{width:2rem;height:2rem;font-size:1rem}}
