:root{color-scheme:light;--brand:#c8102e;--brand-strong:#a50b25;--brand-bright:#e0344b;  /* !! on white 4.41:1 — FAILS AA. FILL/RING ONLY.
                                  Never set text in --brand-bright.          */--brand-soft:#ffe0e3;--brand-tint:#fff1f2;--brand-grad:linear-gradient(135deg,#a50b25,#c8102e 55%,#e0344b);--brand-ring:rgba(200,16,46,.28);--bg:#f6f3f3;--surface:#ffffff;--surface-raised:#ffffff;--surface-sunken:#f1eded;--ink:#0f172a;--ink-soft:#475569;
  /* !! WAS #64748b, annotated "5.74:1 AA". That number was never true: measured,
        slate-500 is 4.76:1 on --surface and 4.31:1 on --bg — i.e. it FAILED AA
        against the app's own page background, which is the surface the answer-key
        panel paints itself with (AnswerKeyPanel.tsx). Every muted label, note and
        provenance quote in the question bank was below the floor.
        #586374 is the same hue, darkened until it clears AA on all three light
        surfaces with margin. Measured, not guessed:
          --surface #ffffff 6.08:1 | --bg #f6f3f3 5.51:1 | --sunken #f1eded 5.24:1
        Still a full step lighter than --ink-soft, so the three-tier ramp survives. */--ink-mute:#586374;--rule:rgba(15,23,42,.10);--rule-strong:rgba(15,23,42,.18);--select:#0e7490;--select-ink:#ffffff;--select-surface:#ecfeff;--select-ring:rgba(14,116,144,.32);--flag:#7c3aed;--flag-surface:#f5f3ff;--caution:#d97706;--caution-ink:#b45309;--caution-surface:#fef3c7;--critical:#e11d48;--critical-ink:#be123c;--critical-surface:#ffe4e6;--correct:#059669;--correct-ink:#047857;--correct-surface:#d1fae5;--incorrect:var(--caution);--incorrect-ink:var(--caution-ink);--incorrect-surface:var(--caution-surface);--partial:var(--caution);--partial-ink:var(--caution-ink);--partial-surface:var(--caution-surface);--locked-surface:#f1eded;--locked-rule:rgba(15,23,42,.14);--locked-ink:var(--ink-mute);--fee-accent:var(--caution);--fee-ink:var(--caution-ink);--fee-surface:var(--locked-surface);--state-notstarted:var(--ink-mute);--state-inprogress:var(--select);--state-answered:var(--ink);--state-flagged:var(--flag);--state-submitted:var(--correct-ink);--state-autosubmit:var(--caution-ink);--state-offline:var(--critical);--state-extended:var(--flag);--state-absent:var(--ink-mute);--state-denied:var(--caution-ink);--time-calm:var(--ink-mute);--time-caution:var(--caution-ink);--time-critical:var(--critical);--focus:var(--brand);--focus-offset:2px;--radius-control:.75rem;--radius-card:1rem;--radius-panel:1.5rem;--radius-chip:9999px;--radius-row:0;--shadow-lift:0 -1px 0 0 var(--rule),0 -8px 24px -12px rgba(15,23,42,.14);--shadow-overlay:0 24px 64px -16px rgba(15,23,42,.28);--shadow-card:0 6px 24px -8px rgba(15,23,42,.10);--scrim:rgba(15,23,42,.55);--dur-fast:120ms;--dur-base:180ms;--dur-slow:260ms;--ease-out:cubic-bezier(.2,.8,.2,1);--ease-in:cubic-bezier(.4,0,1,1);--tap-min:44px;--tap-option:56px;--measure:62ch;--z-sheet:40;--z-dialog:50;--z-toast:60}:root[data-theme=dark]{color-scheme:dark;--brand:#f25e74;--brand-strong:#e0344b;--brand-bright:#fa9aa7;--brand-soft:#3d1219;--brand-tint:#2a0f14;--brand-grad:linear-gradient(135deg,#a50b25,#c8102e 55%,#e0344b);--brand-ring:rgba(242,94,116,.40);--bg:#131011;--surface:#1b1719;--surface-raised:#241f21;--surface-sunken:#0d0b0c;--ink:#f2eced;--ink-soft:#b9b0b2;
  /* !! WAS #8d8386, annotated "4.84:1 AA" — true on --surface, and that was the
        trap: the annotation only checked ONE of the three surfaces this token
        lands on. On --surface-raised (#241f21) it measures 4.43:1 and FAILS.
        Dark mode was broken in the same place as light, one surface over.
        #9c9497, measured on all three:
          --surface #1b1719 6.00:1 | --bg #131011 6.39:1 | --raised #241f21 5.49:1 */--ink-mute:#9c9497;--rule:rgba(242,236,237,.12);--rule-strong:rgba(242,236,237,.22);--select:#22d3ee;--select-ink:#131011;--select-surface:#0d3a45;--select-ring:rgba(34,211,238,.38);--flag:#a78bfa;--flag-surface:#2a2140;--caution:#fbbf24;--caution-ink:#fbbf24;--caution-surface:#3a2a0c;--critical:#fb7185;--critical-ink:#fb7185;--critical-surface:#3d1620;--correct:#34d399;--correct-ink:#34d399;--correct-surface:#0d3327;--incorrect:var(--caution);--incorrect-ink:var(--caution-ink);--incorrect-surface:var(--caution-surface);--partial:var(--caution);--partial-ink:var(--caution-ink);--partial-surface:var(--caution-surface);--locked-surface:#201c1e;--locked-rule:rgba(242,236,237,.16);--locked-ink:var(--ink-mute);--fee-accent:var(--caution);--fee-ink:var(--caution-ink);--fee-surface:var(--locked-surface);--state-notstarted:var(--ink-mute);--state-inprogress:var(--select);--state-answered:var(--ink);--state-flagged:var(--flag);--state-submitted:var(--correct-ink);--state-autosubmit:var(--caution-ink);--state-offline:var(--critical);--state-extended:var(--flag);--state-absent:var(--ink-mute);--state-denied:var(--caution-ink);--time-calm:var(--ink-mute);--time-caution:var(--caution-ink);--time-critical:var(--critical);--focus:var(--brand);--shadow-lift:0 -1px 0 0 var(--rule),0 -8px 24px -12px rgba(0,0,0,.6);--shadow-overlay:0 24px 64px -16px rgba(0,0,0,.75);--shadow-card:0 6px 24px -8px rgba(0,0,0,.5);--scrim:rgba(0,0,0,.68)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-surface=runner]){color-scheme:dark;--brand:#f25e74;--brand-strong:#e0344b;--brand-bright:#fa9aa7;--brand-soft:#3d1219;--brand-tint:#2a0f14;--brand-ring:rgba(242,94,116,.40);--bg:#131011;--surface:#1b1719;--surface-raised:#241f21;--surface-sunken:#0d0b0c;--ink:#f2eced;--ink-soft:#b9b0b2;--ink-mute:#9c9497;--rule:rgba(242,236,237,.12);--rule-strong:rgba(242,236,237,.22);--select:#22d3ee;--select-ink:#131011;--select-surface:#0d3a45;--select-ring:rgba(34,211,238,.38);--flag:#a78bfa;--flag-surface:#2a2140;--caution:#fbbf24;--caution-ink:#fbbf24;--caution-surface:#3a2a0c;--critical:#fb7185;--critical-ink:#fb7185;--critical-surface:#3d1620;--correct:#34d399;--correct-ink:#34d399;--correct-surface:#0d3327;--locked-surface:#201c1e;--locked-rule:rgba(242,236,237,.16);--scrim:rgba(0,0,0,.68);--shadow-lift:0 -1px 0 0 var(--rule),0 -8px 24px -12px rgba(0,0,0,.6);--shadow-overlay:0 24px 64px -16px rgba(0,0,0,.75);--shadow-card:0 6px 24px -8px rgba(0,0,0,.5)}}:root[data-surface=runner]{color-scheme:light;--brand:var(--ink);--brand-strong:var(--ink);--brand-bright:var(--ink);--brand-grad:var(--ink);--brand-soft:var(--surface-sunken);--brand-tint:var(--surface-sunken);--brand-ring:var(--select-ring);--focus:var(--select);--shadow-card:none}@theme inline{--font-sans:var(--font-outfit),ui-sans-serif,system-ui,sans-serif;--font-mono:var(--font-jetbrains),ui-monospace,"SF Mono",monospace;--color-bg:var(--bg);--color-surface:var(--surface);--color-surface-raised:var(--surface-raised);--color-surface-sunken:var(--surface-sunken);--color-ink:var(--ink);--color-ink-soft:var(--ink-soft);--color-ink-mute:var(--ink-mute);--color-rule:var(--rule);--color-rule-strong:var(--rule-strong);--color-brand:var(--brand);--color-brand-strong:var(--brand-strong);--color-brand-bright:var(--brand-bright);--color-brand-soft:var(--brand-soft);--color-brand-tint:var(--brand-tint);--color-select:var(--select);--color-select-ink:var(--select-ink);--color-select-surface:var(--select-surface);--color-flag:var(--flag);--color-flag-surface:var(--flag-surface);--color-caution:var(--caution);--color-caution-ink:var(--caution-ink);--color-caution-surface:var(--caution-surface);--color-critical:var(--critical);--color-critical-ink:var(--critical-ink);--color-critical-surface:var(--critical-surface);--color-correct:var(--correct);--color-correct-ink:var(--correct-ink);--color-correct-surface:var(--correct-surface);--color-locked-surface:var(--locked-surface);--color-locked-rule:var(--locked-rule);--radius-control:var(--radius-control);--radius-card:var(--radius-card);--radius-panel:var(--radius-panel);--shadow-card:var(--shadow-card);--shadow-lift:var(--shadow-lift);--shadow-overlay:var(--shadow-overlay)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}:focus-visible{outline:2px solid var(--focus);outline-offset:var(--focus-offset);border-radius:2px}:focus:not(:focus-visible){outline:none}.logo-dark,:root[data-theme=dark] .logo-light{display:none}:root[data-theme=dark] .logo-dark{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-surface=runner]) .logo-light{display:none}:root:not([data-theme=light]):not([data-surface=runner]) .logo-dark{display:block}}.door-card{transition:border-color .12s ease,background-color .12s ease}@media (hover:hover){.door-card:hover{border-color:var(--ink-soft);background:var(--bg)}}.tabular{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.student-text{color:var(--select);letter-spacing:-.02em}.eyebrow,.student-text{font-family:var(--font-mono)}.eyebrow{font-size:11px;line-height:1.2;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{@page{margin:14mm}.no-print,button,nav{display:none!important}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}body{background:#fff;color:#000}.review-question{break-inside:avoid;page-break-inside:avoid}.why-panel{page-break-before:avoid;break-before:avoid}details{display:block}details>summary{list-style:none}details:not([open])>:not(summary){display:revert!important}a[href^="/"]:after{content:""}}