:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#070b14;--color-panel:#101827;--color-elevated:#172238;--color-inset:#0b1120;--color-scrim:#070b14b8;--color-border:#223050;--color-border-strong:#35486e;--color-border-accent:#55d9f580;--color-text:#e9effa;--color-text-secondary:#a9b9d8;--color-text-muted:#8296b8;--color-accent:#55d9f5;--color-accent-soft:#93e9fb;--color-accent-ink:#04121b;--color-jev:#b68aff;--color-jev-soft:#d6c2ff;--color-jev-deep:#7c5cff;--color-jev-ink:#160a2b;--color-success:#6ee7b7;--color-warning:#f5b942;--color-warning-soft:#ffd27a;--color-danger:#ff7a7a;--font-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:ui-monospace, "SFMono-Regular", "JetBrains Mono", Menlo, Consolas, monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-md:1.0625rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:1.875rem;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.6;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--tracking-label:.08em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-pill:999px;--shadow-sm:0 1px 2px #0006, 0 10px 28px #00000038;--shadow-md:0 2px 8px #00000073, 0 22px 48px #0000004d;--ring-accent:0 0 0 3px #55d9f559;--duration-fast:.12s;--duration-base:.2s;--ease-out:cubic-bezier(.22, 1, .36, 1)}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{min-height:100vh;color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;background-image:radial-gradient(circle at 14% -8%,#55d9f517,#0000 42%),radial-gradient(circle at 88% 2%,#b68aff12,#0000 38%),radial-gradient(#e9effa0d 1px,#0000 1.5px);background-repeat:no-repeat,no-repeat,repeat;background-size:auto,auto,28px 28px}.surface{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-panel)}.surface--panel{box-shadow:var(--shadow-sm)}.surface--elevated{background:var(--color-elevated);border-color:var(--color-border-strong)}.surface--inset{background:var(--color-inset);border-color:var(--color-border)}.surface--interactive{transition:border-color var(--duration-fast) ease, background-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease}.surface--interactive:hover{border-color:var(--color-border-accent)}.surface--interactive:focus-visible{box-shadow:var(--ring-accent);outline:none}.ui-button{justify-content:center;align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--weight-semibold);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--duration-fast) ease, background-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;border:1px solid #0000;padding:12px 22px;line-height:1;display:inline-flex}.ui-button:focus-visible{outline:3px solid var(--color-accent-soft);outline-offset:2px}.ui-button--primary{color:var(--color-accent-ink);background:linear-gradient(135deg, var(--color-accent), var(--color-accent-soft))}.ui-button--primary:hover{box-shadow:0 10px 26px #55d9f540}.ui-button--ghost{color:var(--color-text-secondary);background:var(--color-elevated);border-color:var(--color-border-strong)}.ui-button--ghost:hover{color:var(--color-text);border-color:var(--color-border-accent)}.t-label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-muted)}.t-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.kbd{min-width:1.4em;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary);background:var(--color-inset);border:1px solid var(--color-border);border-radius:var(--radius-sm);border-bottom-width:2px;justify-content:center;align-items:center;padding:1px 5px;line-height:1.4;display:inline-flex}.app-shell{max-width:1080px;padding:var(--space-8) var(--space-5) var(--space-10);gap:var(--space-5);flex-direction:column;margin:0 auto;display:flex}.topbar{justify-content:space-between;align-items:center;gap:var(--space-4) var(--space-5);flex-wrap:wrap;display:flex}.brand{align-items:center;gap:var(--space-3);display:flex}.brand-mark{color:var(--color-accent);text-shadow:0 0 14px #55d9f580;font-size:30px;line-height:1}.brand-title{font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase;margin:0}.brand-sub{font-size:var(--text-sm);color:var(--color-text-secondary);margin:2px 0 0}.scoreboard{gap:var(--space-2);flex-wrap:wrap;display:flex}.score-item{min-width:96px;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-elevated);flex-direction:column;gap:2px;display:flex}.score-item--player{border-color:#55d9f566}.score-item--vendor{border-color:#b68aff66}.score-label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-muted)}.score-value{font-family:var(--font-mono);font-size:var(--text-xl);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums}.score-value--player{color:var(--color-accent)}.score-value--vendor{color:var(--color-jev)}.score-value--best{font-size:var(--text-md);color:var(--color-warning)}.score-attribution{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;color:var(--color-text-muted)}.play-area{gap:var(--space-5);flex-direction:column;display:flex}.panel{padding:var(--space-6);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.round-panel,.control-panel{gap:var(--space-4);flex-direction:column;display:flex}.round-meta{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.badge{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-secondary);background:var(--color-inset);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:4px 10px}.badge--ambiguous{color:var(--color-warning);border-color:#f5b94280}.message{max-width:68ch;font-size:clamp(1.15rem,1.05rem + .8vw,1.55rem);line-height:var(--leading-relaxed);letter-spacing:.005em;color:var(--color-text);margin:0}.countdown{gap:var(--space-2);flex-direction:column;display:flex}.countdown-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.countdown-label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-muted)}.countdown-seconds{font-family:var(--font-mono);font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-accent);font-variant-numeric:tabular-nums}.timer-track{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-inset);height:8px;overflow:hidden}.timer-fill{border-radius:var(--radius-pill);background:linear-gradient(90deg, var(--color-accent), var(--color-accent-soft));height:100%;transition:width .1s linear}.countdown--urgent .timer-fill{background:linear-gradient(90deg, var(--color-warning), var(--color-warning-soft))}.countdown--urgent .countdown-seconds{color:var(--color-warning)}.countdown--expired .timer-fill{background:var(--color-danger);width:0!important}.countdown--expired .countdown-seconds{color:var(--color-danger)}.section-title{margin:0 0 var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:.02em;color:var(--color-text-secondary)}.department-grid{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.dept-button{align-items:flex-start;gap:var(--space-1);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-elevated);color:var(--color-text);cursor:pointer;font:inherit;text-align:left;transition:border-color var(--duration-fast) ease, background-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;flex-direction:column;display:flex;position:relative}.dept-button:hover:not(:disabled){border-color:var(--color-border-accent);background:var(--color-panel);box-shadow:var(--shadow-sm)}.dept-button:active:not(:disabled){border-color:var(--color-accent)}.dept-button:disabled{cursor:default;opacity:.6}.dept-button.is-correct{opacity:1;border-color:var(--color-success);box-shadow:0 0 0 1px #6ee7b74d}.dept-button.is-wrong{opacity:1;border-color:var(--color-danger);box-shadow:0 0 0 1px #ff7a7a47}.dept-button.is-typesafe{opacity:1;box-shadow:inset 3px 0 0 var(--color-jev)}.dept-button.is-correct.is-typesafe{box-shadow:0 0 0 1px #6ee7b74d, inset 3px 0 0 var(--color-jev)}.dept-button:focus-visible:not(:disabled){border-color:var(--color-accent);box-shadow:var(--ring-accent);outline:none}.dept-code{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-label);color:var(--color-accent)}.dept-name{font-size:var(--text-base);font-weight:var(--weight-semibold)}.dept-marker{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.03em}.dept-marker--correct{color:var(--color-success)}.dept-marker--wrong{color:var(--color-danger)}.dept-marker--typesafe{color:var(--color-jev)}.resolving{margin:var(--space-3) 0 0;font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:.03em;color:var(--color-accent)}.resolving:focus-visible{border-radius:var(--radius-sm);box-shadow:var(--ring-accent);outline:none}.resolving:after{content:"";animation:1.2s steps(4,end) infinite dots}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.reveal{gap:var(--space-5);animation:rise var(--duration-base) var(--ease-out);flex-direction:column;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.reveal-grid{gap:var(--space-3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.reveal-card{gap:var(--space-1);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-elevated);flex-direction:column;display:flex}.reveal-card--vendor{border-color:#b68aff59}.reveal-label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-muted)}.reveal-value{font-size:var(--text-md);font-weight:var(--weight-semibold)}.reveal-value--good{color:var(--color-success)}.reveal-value--bad{color:var(--color-danger)}.reveal-value--vendor{color:var(--color-jev)}.reveal-value--muted{font-weight:var(--weight-medium);color:var(--color-text-secondary)}.banner{padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-inset);color:var(--color-text-secondary);font-size:var(--text-base);margin:0}.banner--unavailable{color:var(--color-warning);background:#f5b94214;border-color:#f5b94266}.bars{gap:var(--space-2);flex-direction:column;display:flex}.bar-row{align-items:center;gap:var(--space-3);grid-template-columns:120px 1fr 64px;display:grid}.bar-label{font-size:var(--text-sm);color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.bar-row--argmax .bar-label{color:var(--color-jev);font-weight:var(--weight-semibold)}.bar-track{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-inset);height:10px;overflow:hidden}.bar-fill{border-radius:var(--radius-pill);background:linear-gradient(90deg, var(--color-jev-deep), var(--color-jev));height:100%;display:block}.bar-row--argmax .bar-fill{background:linear-gradient(90deg, var(--color-jev), var(--color-jev-soft))}.bar-value{font-family:var(--font-mono);font-size:var(--text-xs);text-align:right;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.model-details{margin-top:var(--space-3);font-size:var(--text-xs);color:var(--color-text-secondary)}.model-details>summary{cursor:pointer;width:fit-content;color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:var(--tracking-label);text-transform:uppercase}.model-details>summary:hover{color:var(--color-text-secondary)}.model-version{margin:var(--space-2) 0 0;font-family:var(--font-mono);color:var(--color-text-secondary);overflow-wrap:anywhere}.points{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.points-chip{font-family:var(--font-mono);font-size:var(--text-xs);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-inset);color:var(--color-text-secondary);padding:6px 10px}.points-chip--earned{color:var(--color-success);border-color:#6ee7b759}.points-chip--zero{color:var(--color-text-muted)}.points-total{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-warning);align-self:center}.actions{justify-content:flex-end;gap:var(--space-3);display:flex}.complete{align-items:center;gap:var(--space-5);text-align:center;flex-direction:column;display:flex}.complete-title{font-size:var(--text-2xl);font-weight:var(--weight-semibold);margin:0}.complete-grid{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));width:100%;display:grid}.loading{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-secondary)}.footnote{font-size:var(--text-xs);line-height:var(--leading-normal);color:var(--color-text-muted);text-align:center;margin:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:720px){.app-shell{padding:var(--space-5) var(--space-3) var(--space-8)}.department-grid,.reveal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bar-row{gap:var(--space-2);grid-template-columns:88px 1fr 52px}.score-item{min-width:76px;padding:var(--space-2) var(--space-3)}.score-value{font-size:var(--text-lg)}.message{max-width:none}}@media (max-width:420px){.department-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
