:root{--cream-50:#fefcf7;--cream-100:#fbf7ee;--cream-200:#f4ecdb;--cream-300:#eadcc2;--ink-900:#1c1814;--ink-800:#2a241e;--stone-500:#736a50;--stone-400:#9c9277;--forest-700:#1f3a2e;--forest-600:#2c5340;--forest-500:#3a6b52;--clay-600:#b05538;--clay-500:#c26849;--clay-200:#e5c5b8;--gold-700:#8a6d34;--gold-500:#b8975a;--green-ok:#2c5340;--red-bad:#b0402e;--display:"Cormorant Garamond", Georgia, "Times New Roman", serif;--text:"Source Serif 4", Georgia, serif;--shadow:0 1px 2px #1c18140f, 0 8px 30px #1c18140f}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--cream-100);color:var(--ink-900);font-family:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.6}h1,h2,h3{font-family:var(--display);letter-spacing:-.01em;margin:0;font-weight:600;line-height:1.1}button{font-family:var(--text);cursor:pointer}a{color:var(--forest-600)}.app{flex-direction:column;min-height:100%;display:flex}.topbar{background:var(--forest-700);color:var(--cream-50);z-index:20;border-bottom:1px solid #0003;position:sticky;top:0}.topbar .in{justify-content:space-between;align-items:center;gap:14px;max-width:900px;margin:0 auto;padding:12px 22px;display:flex}.brand{color:inherit;align-items:center;gap:12px;text-decoration:none;display:flex}.brand .mark{flex:none;width:30px;height:30px}.brand .name{font-family:var(--display);letter-spacing:.01em;font-size:21px;font-weight:600;line-height:1}.brand .sub{font-family:var(--text);letter-spacing:.22em;text-transform:uppercase;color:var(--forest-500);filter:brightness(1.7);margin-top:3px;font-size:10.5px}.topbar .meta{color:#fefcf7b8;font-variant-numeric:tabular-nums;font-size:12.5px}main.wrap{width:100%;max-width:900px;margin:0 auto;padding:34px 22px 80px}.hero-h1{font-size:clamp(30px,5vw,46px)}.hero-lede{color:var(--stone-500);max-width:60ch;margin:12px 0 6px;font-size:19px}.eyebrow{font-family:var(--text);letter-spacing:.18em;text-transform:uppercase;color:var(--clay-600);font-size:12px;font-weight:600}.grid{gap:16px;display:grid}.modes{grid-template-columns:repeat(2,1fr);margin-top:26px}@media (width<=640px){.modes{grid-template-columns:1fr}}.card{background:var(--cream-50);border:1px solid var(--cream-300);box-shadow:var(--shadow);border-radius:14px;padding:22px}.mode-card{text-align:left;flex-direction:column;gap:6px;transition:transform .15s,border-color .15s;display:flex}.mode-card:hover{border-color:var(--forest-600);transform:translateY(-3px)}.mode-card .t{font-family:var(--display);color:var(--ink-900);font-size:23px}.mode-card .d{color:var(--stone-500);font-size:14.5px}.mode-card .tag{font-family:var(--text);letter-spacing:.1em;text-transform:uppercase;color:var(--gold-700);font-size:11px;font-weight:600}.btn{border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:.5em;padding:12px 22px;font-size:16px;font-weight:600;text-decoration:none;transition:background .15s,transform .12s,border-color .15s;display:inline-flex}.btn-primary{background:var(--forest-700);color:var(--cream-50)}.btn-primary:hover{background:var(--forest-600);transform:translateY(-1px)}.btn-ghost{border-color:var(--cream-300);color:var(--ink-800);background:0 0}.btn-ghost:hover{border-color:var(--forest-600)}.btn-clay{background:var(--clay-600);color:var(--cream-50)}.btn-clay:hover{background:var(--clay-500)}.btn:disabled{opacity:.5;cursor:not-allowed}.exam-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.qcount{letter-spacing:.08em;text-transform:uppercase;color:var(--stone-500);font-size:13px}.qcat{color:var(--gold-700);font-size:12.5px;font-weight:600}.timer{font-variant-numeric:tabular-nums;background:var(--cream-200);color:var(--forest-700);border-radius:8px;padding:6px 12px;font-size:18px;font-weight:700}.timer.warn{color:var(--clay-600);background:#f6e3c7}.timer.crit{color:var(--red-bad);background:#f3d2c7;animation:1s infinite pulse}@keyframes pulse{50%{opacity:.55}}@media (prefers-reduced-motion:reduce){*{animation:none!important}}.qtext{font-family:var(--text);color:var(--ink-900);margin:6px 0 22px;font-size:20px;line-height:1.5}.choices{flex-direction:column;gap:11px;display:flex}.choice{text-align:left;background:var(--cream-50);border:1.5px solid var(--cream-300);width:100%;color:var(--ink-900);border-radius:12px;align-items:flex-start;gap:13px;padding:15px 17px;font-size:16.5px;transition:border-color .12s,background .12s;display:flex}.choice:hover{border-color:var(--forest-500)}.choice.sel{border-color:var(--forest-700);background:#eff3ec}.choice .key{background:var(--cream-200);width:26px;height:26px;color:var(--forest-700);border-radius:7px;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid}.choice.sel .key{background:var(--forest-700);color:var(--cream-50)}.choice.correct{border-color:var(--green-ok);background:#e7efe8}.choice.correct .key{background:var(--green-ok);color:var(--cream-50)}.choice.wrong{border-color:var(--red-bad);background:#f5e6e2}.choice.wrong .key{background:var(--red-bad);color:var(--cream-50)}.explain{background:var(--cream-200);border:1px solid var(--cream-300);font-family:var(--text);color:var(--ink-800);border-radius:12px;margin-top:16px;padding:15px 17px;font-size:15.5px;line-height:1.55}.explain .lbl{letter-spacing:.14em;text-transform:uppercase;color:var(--gold-700);margin-bottom:6px;font-size:11px;font-weight:700;display:block}.explain b{color:var(--ink-900)}.exam-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:26px;display:flex}.flagbtn{border:1px solid var(--cream-300);color:var(--stone-500);background:0 0;border-radius:9px;padding:9px 14px;font-size:14px}.flagbtn.on{border-color:var(--gold-500);color:var(--clay-600);background:#f6e3c7;font-weight:600}.nav-grid{grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:8px;margin-top:10px;display:grid}.nav-cell{aspect-ratio:1;border:1.5px solid var(--cream-300);background:var(--cream-50);color:var(--stone-500);font-variant-numeric:tabular-nums;border-radius:8px;font-size:13px;font-weight:600}.nav-cell.answered{background:var(--forest-700);border-color:var(--forest-700);color:var(--cream-50)}.nav-cell.flagged{border-color:var(--gold-500);box-shadow:inset 0 0 0 2px var(--gold-500)}.nav-cell.cur{outline:3px solid var(--clay-600);outline-offset:1px}.legend{color:var(--stone-500);flex-wrap:wrap;gap:16px;margin-top:12px;font-size:12.5px;display:flex}.legend .k{vertical-align:-2px;border-radius:4px;width:13px;height:13px;margin-right:5px;display:inline-block}.scorebig{font-family:var(--display);font-size:64px;line-height:1}.pass{color:var(--green-ok)}.fail{color:var(--red-bad)}.pill{letter-spacing:.1em;text-transform:uppercase;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:700;display:inline-block}.pill.pass{color:var(--green-ok);background:#e7efe8}.pill.fail{color:var(--red-bad);background:#f5e6e2}.bar-row{grid-template-columns:1fr;gap:4px;margin:12px 0;display:grid}.bar-label{justify-content:space-between;font-size:14px;display:flex}.bar-label .weak{color:var(--clay-600);font-weight:600}.bar-track{background:var(--cream-300);border-radius:999px;height:9px;overflow:hidden}.bar-fill{background:var(--forest-600);border-radius:999px;height:100%}.bar-fill.low{background:var(--clay-600)}.filters{flex-wrap:wrap;gap:8px;margin:18px 0 4px;display:flex}.filters button{border:1px solid var(--cream-300);background:var(--cream-50);color:var(--stone-500);border-radius:999px;padding:7px 15px;font-size:13.5px}.filters button.on{background:var(--forest-700);color:var(--cream-50);border-color:var(--forest-700)}.rev-item{border:1px solid var(--cream-300);background:var(--cream-50);border-radius:12px;margin:12px 0;padding:16px 18px}.rev-item .q{font-family:var(--text);margin-bottom:10px;font-size:16.5px}.rev-choice{border-radius:8px;margin:5px 0;padding:8px 12px;font-size:15px}.rev-choice.correct{color:var(--green-ok);background:#e7efe8}.rev-choice.chosen-wrong{color:var(--red-bad);background:#f5e6e2}.muted{color:var(--stone-500)}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.stat{font-variant-numeric:tabular-nums}select,input[type=range]{font-family:var(--text);border:1px solid var(--cream-300);background:var(--cream-50);color:var(--ink-900);border-radius:9px;padding:9px 12px;font-size:15px}label.fld{color:var(--stone-500);flex-direction:column;gap:5px;font-size:13px;display:flex}.disclaimer{color:var(--stone-400);max-width:62ch;margin-top:30px;font-size:12.5px}.toggle{color:var(--ink-800);align-items:center;gap:8px;font-size:14px;display:inline-flex}
