:root{--color-paper: #f4fafc;--color-paper-grid: #dfeaf1;--color-panel: #ffffff;--color-ink: #102a43;--color-ink-soft: rgba(16, 42, 67, .66);--color-ink-faint: rgba(16, 42, 67, .38);--color-blue: #2576d2;--color-blue-deep: #164a86;--color-cyan: #25d0d2;--color-coral: #ff765d;--font-display: "Chakra Petch", "Segoe UI", sans-serif;--font-body: "Manrope", "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--radius: 2px;--sheet-border: 1.5px solid var(--color-ink);--shadow-sheet: 0 18px 40px -24px rgba(16, 42, 67, .45);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:linear-gradient(var(--color-paper-grid) 1px,transparent 1px) 0 0 / 100% 32px,linear-gradient(90deg,var(--color-paper-grid) 1px,transparent 1px) 0 0 / 32px 100%,var(--color-paper);color:var(--color-ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased}button{font-family:inherit}:focus-visible{outline:2.5px solid var(--color-blue);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.app-shell{min-height:100%;display:flex;flex-direction:column}.instrument-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 20px;border-bottom:var(--sheet-border);background:var(--color-panel);font-family:var(--font-mono);font-size:13px;letter-spacing:.02em;position:sticky;top:0;z-index:10}.instrument-strip__brand{font-family:var(--font-display);font-weight:600;font-size:15px;letter-spacing:.04em;color:var(--color-ink);white-space:nowrap}.instrument-strip__meta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:flex-end}.instrument-strip__stat{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1}.instrument-strip__stat-label{font-size:9px;letter-spacing:.14em;color:var(--color-ink-faint);text-transform:uppercase}.instrument-strip__stat-value{font-size:15px;color:var(--color-blue-deep);font-weight:600}.stage{flex:1;display:flex;align-items:center;justify-content:center;padding:28px 16px 56px}.sheet{position:relative;width:min(720px,100%);background:var(--color-panel);border:var(--sheet-border);border-radius:var(--radius);box-shadow:var(--shadow-sheet);padding:40px clamp(20px,5vw,48px) 24px}.sheet:before,.sheet:after,.sheet .sheet__mark-tl,.sheet .sheet__mark-tr{content:"";position:absolute;width:16px;height:16px;border:1.5px solid var(--color-blue)}.sheet:before{top:-1.5px;left:-1.5px;border-right:none;border-bottom:none}.sheet:after{bottom:-1.5px;right:-1.5px;border-left:none;border-top:none}.sheet__mark-tl{top:-1.5px;right:-1.5px;border-left:none;border-bottom:none}.sheet__mark-tr{bottom:-1.5px;left:-1.5px;border-right:none;border-top:none}.sheet__eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--color-blue);margin:0 0 6px}.sheet__title{font-family:var(--font-display);font-size:clamp(24px,4vw,32px);font-weight:600;margin:0 0 12px;color:var(--color-ink)}.sheet__lede{font-size:16px;line-height:1.55;color:var(--color-ink-soft);margin:0 0 24px}.title-block{margin-top:32px;border-top:1px solid var(--color-paper-grid);padding-top:10px;display:grid;grid-template-columns:repeat(4,auto);gap:4px 24px;font-family:var(--font-mono);font-size:10px;color:var(--color-ink-faint);letter-spacing:.06em}.title-block__cell{display:flex;flex-direction:column;gap:2px}.title-block__cell span:first-child{text-transform:uppercase;font-size:8.5px;letter-spacing:.14em}.title-block__cell span:last-child{color:var(--color-ink);font-size:11px}.btn{font-family:var(--font-display);font-size:15px;font-weight:600;letter-spacing:.02em;border-radius:var(--radius);border:1.5px solid var(--color-ink);padding:13px 26px;cursor:pointer;background:var(--color-ink);color:var(--color-paper);transition:transform .12s ease,background .12s ease,opacity .12s ease}.btn:hover:not(:disabled){background:var(--color-blue-deep);border-color:var(--color-blue-deep)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--ghost{background:transparent;color:var(--color-ink)}.btn--ghost:hover:not(:disabled){background:var(--color-paper-grid)}.btn--accent{background:var(--color-blue);border-color:var(--color-blue)}.btn--accent:hover:not(:disabled){background:var(--color-blue-deep);border-color:var(--color-blue-deep)}.join-hero{text-align:center}.join-hero__mark{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11px;color:var(--color-blue);letter-spacing:.16em;text-transform:uppercase;margin-bottom:18px}.join-hero__mark:before,.join-hero__mark:after{content:"";width:28px;height:1px;background:var(--color-blue)}.join-hero__enter{margin-top:8px;width:100%}.join-hero__error{margin-top:14px;font-family:var(--font-mono);font-size:13px;color:var(--color-coral)}.arena{display:flex;flex-direction:column;align-items:center;gap:20px}.arena__count{font-family:var(--font-mono);font-size:13px;color:var(--color-ink-soft)}.topology{position:relative;width:100%;aspect-ratio:1.6 / 1;max-height:320px}.topology__node{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:4px}.topology__node-dot{width:10px;height:10px;border-radius:50%;background:var(--color-blue);border:1.5px solid var(--color-ink)}.topology__node--self .topology__node-dot{background:var(--color-coral)}.topology__node-label{font-family:var(--font-mono);font-size:10px;color:var(--color-ink-soft);white-space:nowrap}.topology__hub{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:50%;border:1.5px dashed var(--color-blue);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;color:var(--color-blue);text-align:center;background:var(--color-paper)}.topology__lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.topology__empty{font-family:var(--font-mono);font-size:12px;color:var(--color-ink-faint);text-align:center;padding:40px 0}.roster-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;justify-content:center;max-height:96px;overflow-y:auto}.roster-chip{font-family:var(--font-mono);font-size:11px;padding:4px 10px;border:1px solid var(--color-paper-grid);border-radius:999px;color:var(--color-ink-soft)}.roster-chip--self{border-color:var(--color-coral);color:var(--color-coral);font-weight:600}.countdown{text-align:center}.countdown__number{font-family:var(--font-display);font-size:clamp(64px,18vw,120px);font-weight:700;color:var(--color-blue);line-height:1;font-variant-numeric:tabular-nums}.question__difficulty{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:4px 10px;border:1px solid currentColor;border-radius:999px;margin-bottom:14px}.question__difficulty--easy{color:var(--color-blue)}.question__difficulty--medium{color:var(--color-blue-deep)}.question__difficulty--hard{color:var(--color-coral)}.question__prompt{font-family:var(--font-display);font-size:clamp(19px,3vw,24px);font-weight:600;line-height:1.35;margin:0 0 20px}.timer-bar{height:6px;border-radius:999px;background:var(--color-paper-grid);overflow:hidden;margin-bottom:22px;border:1px solid var(--color-ink-faint)}.timer-bar__fill{height:100%;background:var(--color-blue);transition:width .24s linear,background .24s ease}.timer-bar__fill--urgent{background:var(--color-coral)}.option-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}@media (max-width: 520px){.option-grid{grid-template-columns:1fr}}.option-button{text-align:left;padding:16px 18px;border-radius:var(--radius);border:1.5px solid var(--color-ink);background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:15px;font-weight:500;line-height:1.4;cursor:pointer;display:flex;gap:10px;align-items:flex-start;transition:border-color .12s ease,background .12s ease,transform .12s ease}.option-button__key{font-family:var(--font-mono);font-size:11px;color:var(--color-ink-faint);border:1px solid var(--color-ink-faint);border-radius:4px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.option-button:hover:not(:disabled){border-color:var(--color-blue);background:#eef6fc}.option-button:disabled{cursor:default}.option-button--selected{border-color:var(--color-blue);background:#e4f1fb}.option-button--selected .option-button__key{border-color:var(--color-blue);color:var(--color-blue)}.option-button--correct{border-color:var(--color-cyan);background:#e3fbfb}.option-button--incorrect{border-color:var(--color-coral);background:#ffece7}.answer-status{font-family:var(--font-mono);font-size:12px;color:var(--color-ink-soft);min-height:18px;margin-bottom:8px}.hint-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:6px}.hint-text{font-size:13px;color:var(--color-blue-deep);background:#eef6fc;border:1px dashed var(--color-blue);border-radius:var(--radius);padding:10px 14px;flex:1;min-width:200px}.result-banner{display:flex;align-items:center;gap:12px;padding:16px 18px;border-radius:var(--radius);border:1.5px solid var(--color-ink);margin-bottom:18px}.result-banner--correct{border-color:var(--color-cyan);background:#e3fbfb}.result-banner--incorrect{border-color:var(--color-coral);background:#ffece7}.result-banner__points{font-family:var(--font-mono);font-size:22px;font-weight:600;margin-left:auto}.leaderboard{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-direction:column;gap:8px}.leaderboard__row{display:grid;grid-template-columns:32px 1fr auto auto;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--color-paper-grid);border-radius:var(--radius);font-family:var(--font-mono);font-size:13px}.leaderboard__row--winner{border-color:var(--color-blue);background:#eef6fc}.leaderboard__rank{color:var(--color-ink-faint)}.leaderboard__name{font-family:var(--font-body);font-weight:600;color:var(--color-ink)}.leaderboard__delta{color:var(--color-ink-soft)}.leaderboard__total{color:var(--color-blue-deep);font-weight:600}.winner-banner{text-align:center;font-family:var(--font-display);font-size:15px;color:var(--color-ink-soft);margin-bottom:4px}.winner-banner strong{color:var(--color-blue);font-size:20px}.progress-note{font-family:var(--font-mono);font-size:11px;color:var(--color-ink-faint);text-align:right;margin-bottom:6px}
