@font-face{font-family:Manrope;src:url('/fonts/manrope-latin.woff2') format('woff2');font-weight:200 800;font-display:swap}
@font-face{font-family:Manrope;src:url('/fonts/manrope-latin-ext.woff2') format('woff2');font-weight:200 800;font-display:swap;unicode-range:U+0100-024F}
:root{color-scheme:light;--paper:#f3f6fa;--surface:#fff;--ink:#1b3046;--muted:#536b80;--line:#d6e1eb;--accent:#225f9d;--tint:#eaf1f8;--coral:#b84e37;--good:#13705d;--shadow:0 12px 36px #27486608}
[data-theme=dark]{color-scheme:dark;--paper:#0d1926;--surface:#142537;--ink:#e3edf8;--muted:#a3b7cb;--line:#31495f;--accent:#94c6ff;--tint:#20364a;--coral:#ffae94;--good:#7ed7bf;--shadow:none}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.7 Manrope,system-ui,sans-serif}a{color:var(--accent);text-underline-offset:4px}button,input,select,textarea{font:inherit}button,select,a{touch-action:manipulation}button,.button{min-height:44px;border-radius:9px;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:9px 16px;cursor:pointer;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}button:hover,.button:hover{border-color:var(--accent);background:var(--tint)}button:disabled{cursor:wait;opacity:.6}.primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.primary:hover{background:var(--ink);color:var(--surface)}:focus-visible{outline:3px solid var(--coral);outline-offset:4px}input,select,textarea{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:10px;max-width:100%}label{display:grid;gap:6px;font-size:13px;font-weight:700}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(30px,4vw,52px);line-height:1.15;letter-spacing:-.045em;margin-bottom:20px}h2{font-size:24px;line-height:1.35;letter-spacing:-.025em}h3{font-size:17px;line-height:1.4}p{margin-bottom:18px}.muted,small{color:var(--muted)}small{font-size:12px}.eyebrow{color:var(--accent);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.16em;margin-bottom:12px}.wordmark{font-size:24px;font-weight:800;text-decoration:none;letter-spacing:-1.5px;color:var(--ink)}.wordmark span{font-weight:400}.wordmark b{color:var(--coral)}.topbar{min-height:76px;border-bottom:1px solid var(--line);background:var(--surface);display:flex;align-items:center;justify-content:space-between;padding:16px 32px;gap:16px}.topbar nav,.actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.topbar nav a{text-decoration:none;font-size:13px;font-weight:700;padding:6px 0}.topbar nav a[aria-current=page]{border-bottom:2px solid var(--accent)}.shell{display:grid;grid-template-columns:245px minmax(0,1fr);max-width:1600px;margin:0 auto;min-height:calc(100vh - 76px)}.rail{border-right:1px solid var(--line);padding:32px 24px;display:flex;flex-direction:column;gap:22px}.rail nav{display:grid;gap:8px}.rail a{display:flex;gap:12px;align-items:center;padding:10px;text-decoration:none;border-radius:8px;color:var(--muted);font-size:13px}.rail a[aria-current=page],.rail a:hover{background:var(--tint);color:var(--ink)}.rail a span{font-size:11px;color:var(--accent);font-weight:800}.rail-bottom{margin-top:auto}.workspace{padding:42px clamp(22px,4vw,60px);min-width:0}.page-head{max-width:760px;margin-bottom:30px}.lede{font-size:17px;color:var(--muted);max-width:680px}.hero{display:grid;grid-template-columns:1.25fr 1fr;gap:35px;align-items:center;padding:8px 0 30px}.hero .lede{max-width:540px}.hero-art{width:100%;max-width:410px;justify-self:center}.hero-art .wash{opacity:.5}.panel{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:26px;box-shadow:var(--shadow);min-width:0}.panel p:last-child{margin-bottom:0}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:26px 0 18px}.section-head h2{margin:0}.module-card{position:relative;padding:24px;display:flex;flex-direction:column;gap:12px}.module-card h3{margin:0;font-size:20px}.module-card p{font-size:14px;color:var(--muted);margin-bottom:4px}.module-card .actions{margin-top:auto}.module-num{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--accent)}.badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;background:var(--tint);border-radius:20px;padding:3px 10px;color:var(--accent)}.lesson-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:20px;align-items:start}.lesson-reading{font-size:16px}.evidence{border-left:3px solid var(--coral);padding:4px 0 4px 20px;margin:24px 0}.evidence .eyebrow{color:var(--coral)}pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.85 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--ink)}.code-panel{background:var(--tint);border:1px solid var(--line);border-radius:12px;padding:22px}.code-panel .eyebrow{margin-bottom:16px}.lesson-nav{border-top:1px solid var(--line);margin-top:30px;padding-top:22px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.choices{display:grid;gap:12px;margin:22px 0}.choice{justify-content:start;text-align:left;font-weight:500;padding:15px 18px;line-height:1.6}.choice[aria-pressed=true]{border:2px solid var(--accent);background:var(--tint);padding:14px 17px}.choice-letter{font:12px ui-monospace,monospace;color:var(--accent);margin-right:10px}.confidence{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}.confidence button{font-size:12px}.confidence [aria-pressed=true]{border-color:var(--accent);background:var(--tint)}.feedback{margin-top:24px;border-left:3px solid var(--accent);padding:16px 20px;background:var(--tint)}.feedback h3{margin-bottom:10px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:24px 0}.metric{background:var(--surface);border:1px solid var(--line);padding:18px;border-radius:12px}.metric strong{display:block;font-size:29px;letter-spacing:-1px}.metric span{color:var(--muted);font-size:12px}.progress{height:5px;background:var(--line);border-radius:4px;overflow:hidden}.progress span{display:block;height:100%;background:var(--accent)}.filters{display:flex;gap:14px;flex-wrap:wrap;align-items:end;margin:24px 0}.filters input{min-width:210px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--tint)}td button{min-height:36px;padding:4px 10px}tr:last-child td{border-bottom:0}.chart-row{display:grid;grid-template-columns:minmax(130px,1fr) 2fr 70px;gap:14px;align-items:center;font-size:12px;margin:18px 0}.chart-row .progress{height:10px}.timeline{display:grid;gap:12px;max-height:560px;overflow:auto}.timeline article{border-bottom:1px solid var(--line);padding:14px 0}.timeline p{margin-bottom:6px}.empty{text-align:center;padding:44px 20px;color:var(--muted)}footer{padding:26px 0;color:var(--muted);font-size:11px}.status{font-size:11px;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--ink);padding:28px;width:min(520px,calc(100vw - 30px));max-height:85vh;overflow:auto}dialog::backdrop{background:#10223488;backdrop-filter:blur(3px)}dialog form{display:grid;gap:16px}dialog h2{margin:12px 0}.dialog-close{float:right;margin-bottom:12px}textarea{width:100%;min-height:110px}.notice{padding:12px 18px;border:1px solid var(--line);border-radius:10px;background:var(--tint);font-size:13px;margin:18px 0}.error{color:var(--coral)}.skip{position:fixed;top:-90px;left:20px;z-index:100;background:var(--surface);padding:12px}.skip:focus{top:12px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0)}.storage-feedback{padding:16px;background:var(--tint)}.storage-feedback[hidden]{display:none}#toast{position:fixed;bottom:24px;right:24px;max-width:min(430px,90vw);background:var(--ink);color:var(--surface);border-radius:12px;padding:15px 20px;z-index:30}#toast:empty{display:none}.diagram{width:100%;height:auto;display:block}.diagram text{font-family:Manrope,system-ui,sans-serif;fill:var(--ink);font-size:13px}.diagram .node{fill:var(--surface);stroke:var(--accent);stroke-width:2}.diagram .edge{stroke:var(--accent);stroke-width:2;fill:none}.diagram .accent{fill:var(--coral);stroke:var(--coral)}.lab-control{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.step-count{font-size:12px;color:var(--muted)}
@media(min-width:1100px){.rail{position:sticky;top:0;height:calc(100vh - 76px);overflow:auto}}@media(max-width:1000px){.shell{grid-template-columns:190px minmax(0,1fr)}.rail{padding:26px 14px}.hero{grid-template-columns:1fr}.hero-art{display:none}.lesson-grid{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.topbar{padding:14px 18px;flex-wrap:wrap}.topbar nav{gap:14px}.shell{display:block}.rail{border-right:0;border-bottom:1px solid var(--line);padding:12px 18px;gap:8px}.rail .eyebrow,.rail-bottom,.rail .module-links{display:none}.rail nav{display:flex;flex-wrap:wrap;gap:4px}.rail a{padding:6px 10px;font-size:12px}.workspace{padding:28px 18px}.grid{grid-template-columns:1fr}.panel{padding:20px}.hero{padding:0;gap:10px}.metrics{gap:8px}.metric{padding:14px}.metric strong{font-size:25px}.chart-row{grid-template-columns:110px 1fr 48px}.filters>*{flex:1}.filters input{min-width:0;width:100%}h1{font-size:34px}.lesson-grid{gap:16px}.topbar .wordmark{font-size:22px}.section-head{align-items:start}.section-head h2{font-size:21px}}@media(prefers-reduced-motion:no-preference){.workspace{animation:arrive .25s ease-out}@keyframes arrive{from{opacity:.6;transform:translateY(5px)}to{opacity:1;transform:none}}}

.diagram-wrap{overflow-x:auto}.diagram-wrap .diagram{min-width:640px}

.data-details{margin-top:20px}.data-details summary{cursor:pointer;font-size:13px;font-weight:700}.data-details .table-wrap{margin-top:14px}

.console-game-line{display:block;margin-top:9px}.console-game-report{margin-top:24px}.console-game-report details{margin-top:20px}.console-game-report summary{cursor:pointer;font-weight:700;font-size:13px}
