@font-face{font-family:"Source Sans 3";src:url(/fonts/source-sans-3.woff2)format("woff2");font-weight:300 900;font-style:normal;font-display:swap}:root{--navy:#000a33;--navy-2:#071037;--navy-3:#121c47;--coral:#e97770;--coral-hover:#f98780;--coral-active:#d96760;--ink:#6e737a;--muted:#989ba0;--line:#e6e6e6;--surface:#fff;--bg:#fafafa;--gold:#ffe484;--teal:#6fd3c0;--blue:#8fb3ff;--radius:18px;--font:"Source Sans 3", "Source Sans Pro", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{min-height:100%;font-family:var(--font);background:var(--navy);color:#fff;-webkit-font-smoothing:antialiased;margin:0}body,#app{min-height:100vh}button,input,select{font:inherit}a{color:var(--coral)}h1,h2,h3{margin:0 0 .4em;font-weight:700;line-height:1.1}p{margin:0 0 1em}.muted{color:var(--muted)}.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.center{text-align:center;place-items:center;min-height:100vh;padding:2rem;display:grid}.stack{flex-direction:column;gap:1rem;display:flex}.row{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.spacer{flex:1}.card{background:var(--surface);color:var(--navy);border-radius:var(--radius);padding:1.5rem;box-shadow:0 18px 60px #00000047}.btn{cursor:pointer;background:var(--navy-3);color:#fff;border:0;border-radius:999px;padding:.8rem 1.4rem;font-weight:600;transition:transform 80ms,background .15s}.btn:hover{background:#1b2757}.btn:active{transform:translateY(1px)}.btn:focus-visible,input:focus-visible,.answer:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.btn-primary{background:var(--coral);color:var(--navy)}.btn-primary:hover{background:var(--coral-hover)}.btn-primary:active{background:var(--coral-active)}.btn-ghost{color:#fff;background:0 0;border:1px solid #ffffff40}.btn-ghost:hover{background:#ffffff14}.btn:disabled{opacity:.45;cursor:not-allowed}input[type=text],input[type=number]{border:1px solid var(--line);color:var(--navy);background:#fff;border-radius:12px;width:100%;padding:.75rem 1rem}label{font-weight:600}.small{font-size:.85rem}.brand{letter-spacing:.02em;align-items:center;gap:.7rem;font-weight:700;display:flex}.brand-mark{background:var(--coral);width:34px;height:34px;color:var(--navy);border-radius:10px;place-items:center;font-size:1.1rem;display:grid}.landing{background:radial-gradient(1200px 600px at 80% -10%, #e9777047, transparent 60%), radial-gradient(900px 500px at 10% 110%, #8fb3ff2e, transparent 60%), var(--navy);place-items:center;min-height:100vh;padding:2rem 1rem;display:grid}.landing-inner{gap:1.5rem;width:min(960px,100%);display:grid}.landing h1{letter-spacing:-.02em;font-size:clamp(2.4rem,6vw,4.2rem)}.landing .lead{color:#ffffffc7;max-width:46ch;font-size:clamp(1rem,2vw,1.25rem)}.landing-grid{grid-template-columns:1.4fr 1fr;gap:1.25rem;display:grid}@media (max-width:760px){.landing-grid{grid-template-columns:1fr}}.join-card{border-radius:var(--radius);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff0f;border:1px solid #ffffff1f;padding:1.5rem}.join-card h2{font-size:1.25rem}.code-input{letter-spacing:.35em;text-transform:uppercase;text-align:center;font-size:1.6rem;font-weight:700}.teacher{background:radial-gradient(900px 500px at 50% -20%, #8fb3ff29, transparent 60%), var(--navy);flex-direction:column;min-height:100vh;display:flex}.teacher-bar{border-bottom:1px solid #ffffff1a;align-items:center;gap:1rem;padding:.9rem 1.4rem;display:flex}.teacher-main{flex-direction:column;flex:1;gap:1.2rem;padding:1.4rem clamp(1rem,3vw,2.5rem) 2rem;display:flex}.teacher-controls{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.pill{white-space:nowrap;background:#ffffff1a;border-radius:999px;padding:.35rem .8rem;font-size:.9rem;font-weight:600}.pill-live{background:var(--coral);color:var(--navy)}.question-text{max-width:70ch;font-size:clamp(1.5rem,3.4vw,2.6rem);font-weight:600;line-height:1.25}.figure-wrap{justify-content:center;align-items:center;width:100%;display:flex}.figure{object-fit:contain;background:#fff;border-radius:12px;max-width:100%;max-height:min(38vh,420px);margin:0 auto;display:block}.choices{grid-template-columns:1fr 1fr;gap:.9rem;margin-top:auto;display:grid}@media (max-width:760px){.choices{grid-template-columns:1fr}}.choice{min-height:88px;color:var(--navy);border-radius:16px;align-items:center;gap:1rem;padding:1rem 1.2rem;font-size:clamp(1rem,2vw,1.35rem);font-weight:600;transition:opacity .2s,transform .2s;display:flex;position:relative}.choice-text{flex:1}.choice-0{background:var(--coral)}.choice-1{background:var(--gold)}.choice-2{background:var(--teal)}.choice-3{background:var(--blue)}.choice.is-dim{opacity:.28}.choice.is-correct{outline-offset:3px;outline:5px solid #fff;transform:scale(1.01)}.choice-badge{opacity:.65;width:1.6rem;font-size:1.1rem;font-weight:700}.shape{background:currentColor;flex:none;width:1.5em;height:1.5em;display:inline-block}.shape-triangle{clip-path:polygon(50% 0%,100% 100%,0% 100%)}.shape-diamond{clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%)}.shape-circle{border-radius:50%}.shape-square{border-radius:12%}.timer{background:#ffffff24;border-radius:999px;height:10px;overflow:hidden}.timer-fill{background:var(--coral);height:100%;transition:width .12s linear}.count-bars{gap:.35rem;margin-top:.6rem;display:grid}.count-bar{grid-template-columns:2rem 1fr 2.5rem;align-items:center;gap:.6rem;font-weight:600;display:grid}.count-track{background:#ffffff24;border-radius:999px;height:12px;overflow:hidden}.count-fill{background:#ffffffa6;height:100%}.correct-note{color:var(--teal);font-size:1.1rem;font-weight:700}.qr{width:210px;height:210px;image-rendering:pixelated;background:#fff;border-radius:12px;padding:8px}.code-big{letter-spacing:.25em;color:var(--gold);font-size:clamp(2.2rem,6vw,3.6rem);font-weight:700}.lobby-grid{grid-template-columns:auto 1fr;align-items:start;gap:2rem;display:grid}@media (max-width:760px){.lobby-grid{grid-template-columns:1fr}}.player-chips{flex-wrap:wrap;gap:.5rem;display:flex}.chip{background:#ffffff1a;border-radius:999px;padding:.4rem .8rem;font-weight:600}.leaderboard{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.leaderboard li{background:#ffffff14;border-radius:12px;grid-template-columns:2.4rem 1fr auto;align-items:center;gap:.8rem;padding:.6rem .9rem;font-size:1.05rem;display:grid}.leaderboard .rank{color:var(--gold);font-weight:700}.leaderboard .points{font-variant-numeric:tabular-nums;font-weight:700}.podium{justify-content:center;align-items:flex-end;gap:1.2rem;min-height:240px;margin:1rem 0 1.5rem;display:flex}.podium-place{text-align:center;flex:1;max-width:220px}.podium-name{overflow-wrap:anywhere;margin-bottom:.4rem;font-size:1.1rem;font-weight:700}.podium-block{background:#ffffff1f;border-radius:14px 14px 0 0;padding:1rem .5rem;font-weight:700}.podium-place.first .podium-block{background:var(--gold);color:var(--navy);height:150px}.podium-place.second .podium-block{background:var(--blue);color:var(--navy);height:110px}.podium-place.third .podium-block{background:var(--teal);color:var(--navy);height:80px}.student{background:radial-gradient(700px 400px at 50% 0%, #e9777038, transparent 60%), var(--navy);flex-direction:column;gap:.9rem;min-height:100vh;padding:1rem;display:flex}.student-top{align-items:center;gap:.6rem;display:flex}.student-main{flex-direction:column;flex:1;gap:.8rem;display:flex}.answer-grid{flex:1;grid-template-columns:1fr 1fr;gap:.9rem;min-height:52vh;display:grid}@media (orientation:landscape){.answer-grid{min-height:40vh}}.answer{cursor:pointer;min-height:44px;color:var(--navy);-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:0;border-radius:22px;justify-content:center;align-items:center;gap:.6rem;transition:transform .1s,opacity .2s,box-shadow .2s;display:flex;position:relative}.answer:active{transform:scale(.985)}.answer .shape{width:2.2rem;height:2.2rem}.answer .letter{font-size:2rem;font-weight:700}.answer-0{background:var(--coral)}.answer-1{background:var(--gold)}.answer-2{background:var(--teal)}.answer-3{background:var(--blue)}.answer.is-selected{box-shadow:inset 0 0 0 6px #fff}.answer.is-locked{opacity:.55}.answer:disabled{cursor:default}.result{border-radius:var(--radius);text-align:center;padding:1.4rem;font-size:1.4rem;font-weight:700}.result.good{background:var(--teal);color:var(--navy)}.result.bad{background:var(--coral);color:var(--navy)}.big-rank{color:var(--gold);font-size:clamp(3rem,14vw,6rem);font-weight:700;line-height:1}.prof{background:var(--bg);min-height:100vh;color:var(--navy);padding:2rem clamp(1rem,4vw,3rem)}.prof h1{font-size:1.6rem}.prof table{border-collapse:collapse;background:#fff;border-radius:12px;width:100%;overflow:hidden}.prof th,.prof td{text-align:left;border-bottom:1px solid var(--line);padding:.6rem .8rem;font-size:.95rem}.prof th{background:#f0f2f7;font-weight:700}.prof tr:hover td{background:#fafbff}.prof .session-row{cursor:pointer}.prof .detail{margin-top:2rem}.badge{color:#17624f;background:#e8f7f1;border-radius:999px;padding:.15rem .55rem;font-size:.8rem;font-weight:700;display:inline-block}.badge.no{color:#8c2b25;background:#fdecea}.error{color:#8c2b25;background:#fdecea;border-radius:12px;padding:.8rem 1rem;font-weight:600}.notice{color:var(--gold);background:#ffe48424;border:1px solid #ffe48466;border-radius:12px;padding:.7rem 1rem;font-weight:600}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.chapter-groups{gap:1rem;display:grid}.chapter-group h3{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);align-items:baseline;gap:.6rem;margin:0 0 .4rem;font-size:.85rem;font-weight:700;display:flex}.chapter-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.45rem;display:grid}.chapter-group .chapter-list{max-height:none;padding-right:0;overflow:visible}.chapter-item{background:#ffffff0f;border:1px solid #ffffff1a;border-radius:10px;align-items:center;gap:.55rem;padding:.55rem .75rem;font-weight:500;display:flex}.chapter-item.is-selected{background:#ff7a5914;border-color:#ff7a598c}.chapter-pick{cursor:pointer;flex:1;align-items:center;gap:.65rem;min-width:0;font-weight:500;display:flex}.chapter-pick span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chapter-item input[type=checkbox]{width:auto;accent-color:var(--coral);flex:none}.chapter-item .small{white-space:nowrap}.chapter-count{flex:none;align-items:center;gap:.3rem;display:flex}.chapter-count input{width:4.4rem;padding:.4rem .5rem}.field{align-items:center;gap:.5rem;font-weight:600;display:flex}.field input{width:6rem}
