:root{--ink:#17233d;--muted:#596782;--blue:#3455e8;--blue-light:#eaf0ff;--line:#dce3ef;--bg:#f5f7fb;--green:#167355;--amber:#966007;--red:#b3414b;--radius:16px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);font-size:16px;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}a{color:var(--blue)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #e3a02c;outline-offset:4px}button:disabled{opacity:.42;cursor:default}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(30px,3.5vw,46px);line-height:1.12;letter-spacing:-1.7px;margin-bottom:14px;font-weight:720}h2{font-size:25px;line-height:1.25;letter-spacing:-.5px;margin-bottom:14px}h3{font-size:17px;line-height:1.4}p{line-height:1.65}code,pre,.mono{font-family:"SFMono-Regular",Consolas,monospace}.sidebar{position:fixed;inset:0 auto 0 0;width:252px;padding:32px 20px;background:#111c32;color:#fff;display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:12px;color:white;text-decoration:none;font-size:29px;font-weight:700;letter-spacing:-1px}.brand-mark{background:#5272ff;width:43px;height:45px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:27px}.brand-mark span{font-size:14px;align-self:flex-start;margin-top:6px}.brand-sub{display:block;font-size:10px;letter-spacing:2.5px;margin-top:6px;color:#a9b8d3;font-weight:600}.sidebar-label{text-transform:uppercase;color:#9daecc;font-size:11px;letter-spacing:1.8px;margin:46px 12px 20px}.sidebar nav{display:grid;gap:7px}.nav-link{display:flex;gap:12px;padding:13px 12px;border-radius:9px;text-decoration:none;color:#b7c5de;align-items:center;min-height:50px;font-size:14px}.nav-link.active{background:#2b3e6a;color:#fff}.nav-link:hover{background:#21314e}.nav-num{font-size:12px;color:#9daecc;font-family:monospace}.sidebar-bottom{margin-top:auto;padding:34px 12px 0}.model-label{font-size:11px;letter-spacing:1.7px;text-transform:uppercase;color:#9daecc;display:block;margin-bottom:8px}.sidebar-bottom strong{font-size:17px}.sidebar-bottom p{font-size:13px;color:#9daecc;margin:8px 0 22px}.sidebar-bottom a{font-size:13px;color:#bdcaff;display:block;margin-top:12px;text-decoration:none}.sidebar-bottom a span{font-size:10px;margin-left:8px}.offline{color:#91a5c6;font-size:12px;border-top:1px solid #34405a;margin-top:26px;padding-top:20px}.workspace{margin-left:252px}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 38px;color:var(--muted);font-size:12px;letter-spacing:1.3px;background:#fff}.top-tag{letter-spacing:0;background:#f0f3f9;padding:7px 11px;border-radius:5px}main{max-width:1430px;margin:0 auto;padding:40px 38px 24px;min-height:calc(100vh - 130px)}.eyebrow{color:var(--blue);font-weight:700;font-size:12px;letter-spacing:2px;margin-bottom:12px;text-transform:uppercase}.intro{max-width:720px;color:var(--muted);font-size:16px;margin-bottom:26px}.page-head{display:flex;gap:24px;align-items:flex-start;justify-content:space-between}.badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.9px;white-space:nowrap;font-weight:650;background:var(--blue-light);color:#294bc2;padding:7px 9px;border-radius:5px}.badge.green{background:#e3f3eb;color:var(--green)}.badge.amber{background:#fff2d7;color:var(--amber)}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px}.canvas{background-color:#eef2fb;background-image:radial-gradient(#cfd7e8 .7px,transparent .7px);background-size:18px 18px;border:1px solid #d8e0f0;border-radius:var(--radius);padding:26px}.canvas-head{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:28px}.pipeline{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin:0 0 26px}.phase{background:white;color:var(--ink);position:relative;text-align:left;border:1px solid #ccd6e9;border-radius:12px;padding:19px 16px;min-width:0;box-shadow:0 3px 8px #203c5c04}.phase:not(:last-child):after{content:'→';position:absolute;right:-20px;top:40%;color:#798cab;pointer-events:none}.phase.selected{border:2px solid var(--blue);padding:18px 15px;box-shadow:0 0 0 4px #3455e80b}.phase-letter{display:flex;align-items:center;justify-content:center;background:#edf1fc;color:var(--blue);border-radius:8px;width:32px;height:32px;font-size:15px;font-weight:700;margin-bottom:17px}.phase.selected .phase-letter{background:var(--blue);color:white}.phase strong{display:block;font-size:20px;letter-spacing:-.5px;margin-bottom:8px}.phase small{font-size:12px;color:var(--muted);display:block;line-height:1.5}.pipeline-context{display:flex;justify-content:space-between;font-size:12px;color:#5a6e92;gap:12px}.detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(265px,.8fr);gap:22px;margin-top:24px}.section-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:15px}.phase-title{display:flex;justify-content:space-between;gap:16px;margin-bottom:18px}.phase-title h2{max-width:450px}.prose{color:var(--muted);font-size:16px}.flow-list{display:grid;gap:15px;margin:26px 0}.flow-item{display:grid;grid-template-columns:28px 1fr;gap:12px;align-items:center}.flow-dot{border:1px solid #b6c5e4;background:#f1f5ff;border-radius:50%;width:26px;height:26px;display:grid;place-items:center;font-size:11px;color:var(--blue)}.flow-item small{display:block;color:var(--muted);font-size:11px;letter-spacing:1px;margin-bottom:5px}.flow-item strong{font-size:14px;font-weight:600}.note{font-size:14px;line-height:1.6;color:#596782;padding:15px 16px;border-left:3px solid #bac9ed;background:#f7f9ff;margin:18px 0 0}.note.amber{background:#fff9eb;border-color:#e1b453;color:#795616}.params{display:grid;grid-template-columns:1fr 1fr;gap:20px}.param small{display:block;font-size:12px;color:var(--muted);margin-bottom:8px}.param strong{font-size:16px}.divider{height:1px;background:var(--line);margin:23px 0}.button{border:1px solid #cdd6e8;border-radius:8px;background:#fff;padding:10px 15px;color:var(--ink);font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;min-height:42px}.button:hover{background:#eef2fd}.button.primary{background:var(--blue);color:white;border-color:var(--blue)}.button.primary:hover{background:#2342c7}.button.ghost{background:transparent}.buttons{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.step-controls{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-top:24px}.step-counter{font-size:13px;color:var(--muted)}.code-panel{border-radius:12px;background:#142139;color:#dce6fb;overflow:hidden;margin-top:20px}.code-header{padding:13px 18px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #324158;font-size:12px;overflow-wrap:anywhere}.code-header a{color:#c6d5ff;white-space:nowrap}.code-panel pre{margin:0;padding:20px;font-size:12px;line-height:1.85;max-height:400px;overflow:auto;tab-size:4}.code-line{display:block;white-space:pre}.line-no{display:inline-block;min-width:34px;color:#92a3c1;user-select:none}.code-desc{font-size:13px;color:var(--muted);margin:12px 0 0}.tabs{display:flex;gap:5px;flex-wrap:wrap;padding:5px;background:#e9edf5;border-radius:10px;width:fit-content;margin:20px 0 24px}.tab{background:transparent;border:0;padding:10px 17px;color:#566783;font-size:14px;border-radius:7px}.tab.active{background:white;color:var(--blue);box-shadow:0 2px 5px #2233530b}.game-layout{display:grid;grid-template-columns:1fr 1.05fr;gap:24px}.game-board{display:grid;gap:8px;justify-content:center;padding:14px 0 18px}.word-row{display:flex;gap:7px}.tile{width:48px;height:50px;display:flex;align-items:center;justify-content:center;border:1.5px solid #c3cfe4;background:white;border-radius:5px;font-size:23px;font-weight:700;color:#334663}.tile.correct{background:#287e61;border-color:#287e61;color:#fff}.tile.present{background:#b58724;border-color:#b58724;color:#fff}.tile.absent{background:#68768d;border-color:#68768d;color:#fff}.tile.invalid{background:#fff1f2;border-color:#d7949a;color:#a82e3e}.legend{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.legend span:before{content:'';display:inline-block;width:9px;height:9px;border-radius:2px;background:#68768d;margin-right:5px}.legend .green:before{background:#287e61}.legend .yellow:before{background:#b58724}.terminal{background:#f4f6fb;border:1px solid var(--line);border-radius:9px;padding:18px;font-family:monospace;font-size:13px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;color:#31476c}.input-row{display:flex;gap:8px;margin:12px 0}.input-row input{width:100%;min-width:0;border:1px solid #bcc9df;border-radius:7px;padding:11px 12px;text-transform:uppercase;background:#fff;color:var(--ink)}.status{padding:15px 17px;border-radius:9px;margin:18px 0;background:var(--blue-light);color:#29469b;font-size:14px;line-height:1.6}.status.error{background:#fff0f1;color:#9d3544}.status.success{background:#e7f5ee;color:#186246}.candidate-list{display:flex;flex-wrap:wrap;gap:7px}.candidate{padding:6px 9px;border:1px solid #d3dfef;border-radius:5px;color:#405777;font-family:monospace;font-size:12px}.mini-label{font-size:12px;color:var(--muted);display:block;margin-bottom:8px}.schema{margin:10px 0}.schema summary,details summary{cursor:pointer;font-size:14px;color:var(--blue);line-height:1.6}.policy-path{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin:32px 0}.path-node{min-width:0;border:1px solid #cdd8eb;border-radius:10px;padding:17px 12px;background:#fff;position:relative;opacity:.54}.path-node.active{opacity:1;border-color:var(--blue);box-shadow:0 0 0 3px #3455e813}.path-node.passed{opacity:1;background:#edf3ff}.path-node:not(:last-child):after{content:'→';position:absolute;right:-16px;top:40%;color:#6c7fa0}.path-node small{font-size:11px;letter-spacing:1px;color:var(--blue);display:block;margin-bottom:12px}.path-node strong{font-size:14px;line-height:1.4;display:block}.branch-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0}.branch-card{padding:20px;background:#f5f8ff;border-radius:12px;border:1px solid #d3deef}.branch-card.rejected{background:#fdf6f6;border-color:#ecd6d8}.branch-card pre{font-size:13px;line-height:1.7;white-space:pre-wrap}.reward{font-size:30px;font-weight:700;letter-spacing:-1px;color:var(--blue)}.branch-card.rejected .reward{color:#a54953}.math{font-family:monospace;font-size:15px;line-height:1.9;padding:18px;border:1px solid #cdd9ee;border-radius:8px;background:#f4f7ff;overflow-wrap:anywhere}.slider-row{margin:22px 0}.slider-row label{font-size:14px;display:flex;justify-content:space-between;gap:16px;margin-bottom:12px}.slider-row output{font-family:monospace;color:var(--blue);font-weight:700}.slider-row input{width:100%;accent-color:var(--blue);cursor:pointer}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:24px}.metric{padding:20px;border:1px solid var(--line);border-radius:12px;background:#fff}.metric small{color:var(--muted);font-size:12px;display:block;margin-bottom:10px}.metric strong{font-size:32px;font-weight:650;letter-spacing:-1px}.bar-track{height:10px;background:#e6ebf6;border-radius:5px;overflow:hidden;margin:13px 0}.bar-fill{height:100%;background:var(--blue);border-radius:5px;transition:width .25s}.token-line{display:flex;flex-wrap:wrap;gap:7px;margin:20px 0}.token{padding:10px;background:#eaf0ff;border:1px solid #c3d1ff;border-radius:6px;font-family:monospace;font-size:14px}.token.selected{background:var(--blue);color:white;border-color:var(--blue)}.token.muted{background:#f2f3f5;border-color:#dcdfe5;color:#78859a}.matrix-row{display:flex;align-items:center;justify-content:center;gap:18px;margin:26px 0;flex-wrap:wrap}.matrix{display:grid;grid-template-columns:repeat(3,1fr);border:2px solid #acbcde;border-top:none;border-bottom:none;padding:8px;gap:5px}.matrix-cell{padding:10px 8px;font-family:monospace;font-size:13px;min-width:48px;text-align:center;border-radius:4px;background:#edf2ff}.matrix-label{text-align:center;font-size:12px;color:var(--muted);margin-top:12px}.call-stack{display:flex;gap:8px;flex-wrap:wrap;margin:26px 0}.call-step{border:1px solid #ced8e9;border-radius:7px;background:#fff;padding:12px 14px;font-size:13px;color:#586b8a}.call-step.active{background:var(--blue);border-color:var(--blue);color:#fff}.split{display:grid;grid-template-columns:1fr 1fr;gap:24px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;padding:13px 11px;border-bottom:1px solid var(--line);line-height:1.5}th{color:#536786;font-size:12px;background:#f7f9fc;font-weight:600}td strong{font-weight:650}.chart-row{display:grid;grid-template-columns:110px 1fr 52px;gap:14px;align-items:center;margin:17px 0;font-size:13px}.chart-bar{height:24px;background:#edf1f8;border-radius:5px;overflow:hidden}.chart-bar span{height:100%;display:block;background:#6480ea;border-radius:5px}.chart-row:last-child .chart-bar span{background:var(--blue)}.source-list{list-style:none;padding:0;margin:0}.source-list li{padding:15px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.6}.source-list small{color:var(--muted);display:block;margin-top:4px;font-size:12px;overflow-wrap:anywhere}.source-list a{text-decoration:none}.qa-list{padding-left:20px;font-size:14px;color:var(--muted);line-height:1.8}.footer-link{font-size:14px}footer{max-width:1430px;margin:0 auto;padding:18px 38px 28px;color:var(--muted);font-size:12px;display:flex;gap:14px;justify-content:space-between;line-height:1.6}.skip{position:fixed;left:270px;top:-100px;background:white;padding:12px;z-index:20}.skip:focus{top:8px}.hint{font-size:13px;color:var(--muted);line-height:1.7}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.wide{grid-column:1/-1}.margin-top{margin-top:24px}.empty-space{height:6px}button small{pointer-events:none}@media(min-width:1500px){main{padding-top:52px}.pipeline .phase{padding:24px}.pipeline .phase.selected{padding:23px}.phase strong{font-size:23px}}@media(max-width:1150px){.sidebar{width:220px;padding:28px 14px}.workspace{margin-left:220px}main{padding:30px 26px}.topbar{padding:0 26px}.detail-grid{grid-template-columns:1.2fr 1fr;gap:16px}.card{padding:22px}.pipeline{gap:19px}.phase:not(:last-child):after{right:-17px}.phase{padding:15px 11px}.phase.selected{padding:14px 10px}.phase strong{font-size:18px}.phase small{font-size:11px}.game-layout,.split{gap:18px}.policy-path{gap:14px}.path-node:not(:last-child):after{right:-14px}}@media(max-width:900px){.sidebar{position:static;width:auto;padding:20px;display:block}.brand{font-size:24px}.brand-mark{height:38px;width:36px;font-size:22px}.sidebar-label,.sidebar-bottom{display:none}.sidebar nav{display:flex;overflow-x:auto;gap:8px;margin-top:19px;padding-bottom:4px}.nav-link{flex:none;padding:9px 12px;min-height:40px;font-size:13px}.nav-num{display:none}.workspace{margin-left:0}.topbar{height:50px}.detail-grid{grid-template-columns:1.2fr 1fr}.skip{left:10px}.policy-path{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(max-width:640px){main{padding:26px 18px 14px}h1{font-size:34px;letter-spacing:-1.2px}.intro{font-size:15px}.topbar{padding:0 18px;font-size:10px;letter-spacing:.5px}.top-tag{font-size:10px}.pipeline{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:20px}.phase:not(:last-child):after{display:none}.phase{padding:15px}.phase.selected{padding:14px}.phase-letter{margin-bottom:12px}.phase small{font-size:12px}.canvas{padding:20px}.canvas-head{font-size:10px;margin-bottom:20px}.pipeline-context{font-size:11px}.detail-grid,.game-layout,.split{grid-template-columns:1fr}.card{padding:22px}.page-head{gap:8px}.page-head>.badge{display:none}.policy-path{grid-template-columns:1fr;gap:10px;margin:20px 0}.path-node{padding:13px 15px;display:flex;gap:16px;align-items:center}.path-node small{margin:0}.path-node:not(:last-child):after{display:none}.branch-grid{gap:10px}.branch-card{padding:15px}.tabs{width:100%}.tab{padding:10px 13px;flex:1}.metric strong{font-size:28px}.matrix-row{gap:10px}.matrix-cell{min-width:38px;padding:8px 5px;font-size:12px}.chart-row{grid-template-columns:94px 1fr 45px;gap:10px}.code-header{font-size:10px}.step-controls{flex-wrap:wrap}footer{padding:18px;display:block}footer a{display:block;margin-top:6px}.sidebar nav{margin-top:14px}.note{font-size:13px}.tile{width:45px;height:47px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.phase-title{align-items:flex-start}.sidebar{overflow-y:auto}
/* Keep long source lines inside their own scrolling panel, including on phones. */
.card,.canvas,.detail-grid>*,.split>*,details{min-width:0}
.code-panel{max-width:100%}
.code-header>span{min-width:0}
.sidebar,.sidebar nav{scrollbar-width:thin;scrollbar-color:#53678c #111c32}
.sidebar nav::-webkit-scrollbar{height:4px}
.sidebar nav::-webkit-scrollbar-track{background:#111c32}
.sidebar nav::-webkit-scrollbar-thumb{background:#53678c;border-radius:4px}
@media(max-width:640px){.intro{font-size:16px}}
/* Notebook lessons and measured game trajectories. */
.notebook-scope{margin-top:16px}.package-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin:20px 0}.package-card{border:1px solid var(--line,#dde4ec);border-radius:10px;padding:14px;background:#f7f9fc}.package-card summary{display:flex;justify-content:space-between;gap:12px;cursor:pointer}.package-card summary span{font-size:11px;color:#65758b}.package-card code{display:block;font-size:11px;margin-top:16px;line-height:1.8}.package-card p{font-size:13px;line-height:1.6;color:#526276}.cell-pipeline{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.cell-pipeline button{border:1px solid #dbe3ee;background:#f6f8fc;border-radius:7px;padding:9px 11px;color:#385370;font:inherit;font-size:11px;text-align:left;cursor:pointer}.cell-pipeline button span{display:inline-grid;place-items:center;width:19px;height:19px;margin-right:7px;background:#e1eaff;color:#225bc4;border-radius:50%;font-weight:800}.cell-pipeline button:hover{border-color:#3166da;background:#edf3ff}.notebook-layout{display:grid;grid-template-columns:minmax(0,1fr) 275px;gap:22px;align-items:start}.notebook-cells,.notebook-aside{min-width:0}.notebook-aside{position:sticky;top:20px}.notebook-cell{background:#fff;border:1px solid #dce4ee;border-radius:12px;padding:25px;margin-bottom:28px;scroll-margin-top:20px;position:relative}.notebook-cell header{display:flex;align-items:center;gap:14px}.notebook-cell h3{margin:4px 0 0}.notebook-cell .section-label{font-size:10px;line-height:1.7}.cell-number{font:700 20px ui-monospace,monospace;color:#8ca0b8;border-right:1px solid #e0e7ef;padding-right:14px}.nb-input,.nb-output{border:1px solid #dce5f0;border-radius:8px;overflow:hidden;min-width:0}.nb-input{background:#111e32;color:#e1eaf8}.nb-prompt{font:600 11px ui-monospace,monospace;padding:10px 16px;display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #2a3950;color:#93baff}.nb-prompt span{font:600 9px system-ui;letter-spacing:.07em;align-self:center}.nb-input pre,.nb-output pre{margin:0;padding:16px;overflow:auto;font:12px/1.9 ui-monospace,SFMono-Regular,Consolas,monospace;tab-size:4}.nb-output{margin-top:10px;background:#f2f7f5;color:#25483e;border-color:#dbe8e1}.nb-output .nb-prompt{color:#507f69;border-color:#dbe8e1}.nb-output pre{white-space:pre-wrap;overflow-wrap:anywhere}.cell-note{font-size:12px;line-height:1.7;color:#617088;margin:14px 0 0}.cell-connector{position:absolute;bottom:-23px;left:24px;font-size:8px;font-weight:700;letter-spacing:.13em;color:#8091a8}.parameter-list details{padding:14px 0;border-bottom:1px solid #e5eaf1;font-size:12px}.parameter-list summary{cursor:pointer;font-weight:650;color:#2b4566;line-height:1.6}.parameter-list p{line-height:1.7;color:#68788c}.notebook-aside .button{font-size:11px;white-space:normal}.evidence-controls>.tabs{margin:14px 0}.checkpoint-grid{display:grid;grid-template-columns:repeat(var(--checkpoints),minmax(0,1fr));gap:8px;margin-top:22px}.checkpoint{min-width:0;text-align:left;font:inherit;padding:14px 11px;border:1px solid #dbe3ee;border-radius:9px;background:#f8fafd;cursor:pointer;color:#52667e}.checkpoint strong{display:block;font-size:11px;white-space:nowrap}.checkpoint>span{display:block;font-weight:750;font-size:23px;color:#284362;margin:10px 0}.checkpoint small{font-size:9px;font-weight:450;line-height:1.6}.checkpoint.active{background:#edf3ff;border-color:#2d67d8;box-shadow:inset 0 3px #2d67d8}.checkpoint.active strong{color:#225bd0}.compact{font-size:10px}.results-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:22px;align-items:start}.results-layout>*{min-width:0}.trajectory-chart{width:100%;height:auto;display:block;overflow:visible;margin:15px 0 5px}.grid-line{stroke:#e5eaf2;stroke-width:1}.axis-label{fill:#738097;font:11px system-ui}.selected-guide{stroke:#93b6f5;stroke-width:1;stroke-dasharray:3 5}.context-series polyline{stroke:#b7c2d1;stroke-width:1.6;opacity:.48;fill:none}.selected-series polyline{stroke:#2464db;stroke-width:3;fill:none;stroke-linejoin:round}.selected-series circle{fill:#2464db;stroke:white;stroke-width:2}.point-label{fill:#205dc9;font:700 12px system-ui;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}.missing-point{fill:#64748b;font:14px system-ui}.game-legend{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.legend-game{border:1px solid transparent;background:#f4f6fa;color:#607187;border-radius:6px;font:10px/1.5 system-ui;padding:6px 8px;cursor:pointer;text-align:left}.legend-game span{margin-right:6px}.legend-game.active{color:#1d56ba;background:#edf3ff;border-color:#7ea5eb;font-weight:700}.result-inspector h2{font-size:46px;letter-spacing:-.04em;margin:18px 0 0;color:#235cc6}.result-inspector h2 small{display:block;font-size:12px;letter-spacing:0;font-weight:500;color:#697b92;margin-top:5px}.result-inspector .section-label{line-height:1.8}.result-change{font-size:11px;color:#6b7a8d;line-height:1.7;margin:12px 0 20px}.inspection-metrics{display:grid;gap:13px;font-size:12px;margin-bottom:20px}.inspection-metrics>div{display:flex;justify-content:space-between;gap:10px}.inspection-metrics span{color:#708097}.inspection-metrics strong{color:#263d5b}.result-inspector .note{font-size:11px}.heatmap{width:100%;border-collapse:separate;border-spacing:5px;font-size:12px}.heatmap caption{text-align:left;font-size:11px;padding:8px 4px;color:#78869a}.heatmap th{background:none;min-width:88px;padding:4px}.heatmap th:first-child{min-width:160px;position:sticky;left:0;background:white;z-index:1}.heatmap th button{background:transparent;border:none;font:600 11px/1.5 system-ui;text-align:left;color:#5e7088;cursor:pointer;padding:6px 3px;width:100%}.heatmap thead th button{text-align:center}.heatmap thead small{display:block;font-weight:400;font-size:9px}.heatmap td{padding:0;border:0}.heat-cell{width:100%;display:block;border:1px solid transparent;border-radius:5px;background:rgba(49,106,210,var(--heat));color:#244266;min-height:48px;padding:7px;font:inherit;cursor:pointer}.heat-cell strong{display:block;font-size:12px}.heat-cell small{display:block;font-size:9px;margin-top:3px;opacity:.7}.heatmap .selected-game th button,.heatmap th button[aria-pressed="true"]{color:#205dcc}.heatmap .selected-game .heat-cell{box-shadow:inset 0 0 0 1px #779ee2}.heat-cell[aria-pressed="true"]{outline:2px solid #205dcc;outline-offset:1px}.heat-cell.unavailable{background:repeating-linear-gradient(135deg,#f2f4f7,#f2f4f7 5px,#e7ebf1 5px,#e7ebf1 6px);color:#8591a2}.heat-cell:hover,.checkpoint:hover,.legend-game:hover{border-color:#739be4}.heatmap .selected-column{border-top:2px solid #c5d7f7}.heatmap-wrap{overflow:auto;max-width:100%;padding:3px}.heatmap-wrap:focus-visible{outline:2px solid #3166da;outline-offset:3px}
@media(min-width:1550px){.notebook-layout{grid-template-columns:minmax(0,1fr) 310px}.results-layout{grid-template-columns:minmax(0,1fr) 310px}}
@media(max-width:1200px){.notebook-layout,.results-layout{grid-template-columns:minmax(0,1fr)}.notebook-aside{position:static;display:grid;grid-template-columns:1fr 1fr;gap:16px}.notebook-aside>.margin-top{margin-top:0}.checkpoint-grid{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.result-inspector .inspection-metrics{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}.result-inspector h2{font-size:36px}}
@media(max-width:640px){.notebook-cell{padding:18px 14px}.notebook-aside{display:block}.notebook-aside>.margin-top{margin-top:16px}.nb-prompt{padding:10px 12px;font-size:10px}.nb-prompt span{font-size:8px}.nb-input pre,.nb-output pre{font-size:10px;padding:12px}.cell-pipeline{gap:6px}.cell-pipeline button{font-size:10px;width:100%}.package-grid{grid-template-columns:1fr}.checkpoint-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.results-layout .card{padding:18px 14px}.results-layout .phase-title{align-items:flex-start}.results-layout .phase-title h2{font-size:22px}.result-inspector .inspection-metrics{grid-template-columns:1fr}.heatmap th:first-child{min-width:123px;max-width:140px}.heatmap th button{font-size:10px}.legend-game{font-size:9px}.game-legend{gap:4px}.heatmap{border-spacing:3px}.trajectory-chart{min-height:155px}.result-inspector .section-label{font-size:10px}}
.trajectory-viewport{overflow:auto;max-width:100%}.trajectory-chart .axis-label{font-size:14px}.trajectory-chart .point-label{font-size:16px}.trajectory-viewport:focus-visible{outline:2px solid #3166da;outline-offset:3px}
@media(max-width:640px){.trajectory-chart{min-width:620px}.trajectory-viewport:after{content:'Scroll horizontally to follow all checkpoints →';display:block;font-size:10px;color:#738097;position:sticky;left:0;padding:6px 0}}
/* Annotated notebook code: source text is unchanged; explanations are offline. */
.syntax-keyword{color:#c6a8ff}.syntax-string{color:#b3ddb1}.syntax-number{color:#fac394}.syntax-comment{color:#94a6be;font-style:italic}.syntax-api{color:#86d9ef}.syntax-parameter{color:#ffcf9f}.syntax-variable{color:#c8c9ff}.syntax-project{color:#edb5e9}.syntax-builtin{color:#99ddd0}
.code-term{display:inline;padding:0;margin:0;border:0;border-radius:2px;background:transparent;font:inherit;line-height:inherit;text-align:inherit;vertical-align:baseline;white-space:pre;text-decoration:underline;text-decoration-style:dotted;text-decoration-thickness:1px;text-underline-offset:4px;cursor:help}.code-term:hover,.code-term[aria-expanded="true"]{background:#294565;text-decoration-style:solid}.code-term:focus-visible{outline:2px solid #a9d9ff;outline-offset:2px;background:#294565}.code-reading-key{display:flex;gap:8px 18px;flex-wrap:wrap;align-items:center;margin:22px 0 0;background:#1a2940;border-radius:9px;padding:14px 18px}.code-reading-key>span{font:600 11px ui-monospace,monospace;text-decoration:underline dotted;text-underline-offset:4px}.code-reading-key p{margin:0;flex-basis:100%;font-size:11px;line-height:1.7;color:#bdc9db}
.code-help-popup{position:fixed;z-index:1000;width:min(360px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain;background:#fff;border:1px solid #c3d2e6;border-top:3px solid #326cce;border-radius:12px;box-shadow:0 12px 42px #0b1d3e30;padding:16px 18px;color:#273d59;font:13px/1.65 system-ui,sans-serif;box-sizing:border-box}.code-help-popup[hidden]{display:none}.code-help-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.code-help-kind{background:#172740;border-radius:4px;padding:3px 7px;font:600 10px/1.5 system-ui,sans-serif;letter-spacing:.035em}.code-help-close{border:0;border-radius:5px;background:#eef2f7;color:#596d88;font:22px/1 system-ui,sans-serif;width:28px;height:28px;cursor:pointer;flex-shrink:0}.code-help-popup h3{font:650 17px/1.5 ui-monospace,monospace;margin:10px 0 2px;overflow-wrap:anywhere;letter-spacing:-.025em}.code-help-origin{font-size:10px;color:#728197;overflow-wrap:anywhere}.code-help-popup p{margin:12px 0 0}.code-help-usage{margin-top:14px;padding:11px 12px;border-radius:7px;background:#f2f6fc}.code-help-usage strong{font-size:9px;letter-spacing:.08em;color:#6480a4}.code-help-usage p{margin:5px 0 0;font-size:12px}.code-help-hint{border-top:1px solid #e4eaf3;margin-top:12px;padding-top:10px;font-size:10px;color:#78869b}.code-help-popup[data-pinned="true"]{border-top-color:#7257bf}
@media(max-width:640px){.code-help-popup{padding:12px 14px;font-size:12px}.code-help-popup h3{font-size:15px}.code-reading-key{gap:10px 14px;padding:13px}.code-help-close{min-width:32px;min-height:32px}}
/* Worked data rows and the path from an instance to an update. */
.data-pipeline{margin-top:20px}.data-step-copy{margin-top:26px;max-width:850px}.data-step-copy h2{font-size:22px}.data-step-copy p{margin-bottom:0}.example-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:28px;margin-top:26px}.example-layout>div{min-width:0}.example-board .word-row{justify-content:flex-start;margin:0 0 14px}.example-board .tile{width:44px;height:44px;font-size:22px}.example-board .hint{font-size:12px}.example-messages{display:grid;gap:10px}.example-message{background:#f1f4f9;border:1px solid var(--line);border-radius:10px;padding:16px}.example-message.assistant{background:#eef3ff;border-color:#d8e1fb}.example-message .mini-label{font-size:10px;letter-spacing:1px}.example-message pre,.example-reply{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;margin:10px 0 0}.example-layout .branch-card+.branch-card{margin-top:12px}.example-reply mark{background:#ffe8b3;color:#704705;border-radius:3px;padding:2px 3px}.training-row{margin-top:26px;border-top:1px solid var(--line);padding-top:20px}.training-row .hint{margin-top:16px}.training-row pre{background:#142139;color:#dce6fb;border-radius:10px;padding:20px;max-height:450px;overflow:auto;font-size:12px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.supervision-strip{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0 12px}.supervision-strip span{background:#eaf0ff;color:#294bc2;padding:7px 9px;border-bottom:3px solid #6e87df;font-size:12px;border-radius:4px}.branch-future{margin-bottom:20px}.future-outcome{margin:0 12px;padding:18px;border-left:2px dashed #bdcce7;background:#f6f8fc;border-radius:0 0 10px 10px;font-size:13px}.future-outcome p{margin:8px 0}.future-hidden{margin:12px}.update-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.update-input{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}.adapter-flow{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.adapter-flow span{border:1px solid var(--line);border-radius:9px;padding:14px;font-size:12px;color:var(--muted)}.adapter-flow strong{display:block;margin-top:7px;font-size:14px;color:var(--ink)}.adapter-flow span:last-child{background:#eaf0ff;border-color:#bdcdf9}.update-explanation .math{overflow-wrap:anywhere}.update-lesson .phase-title h2{max-width:none}
@media(max-width:1050px){.example-layout{grid-template-columns:minmax(0,1fr)}.update-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.data-pipeline .step-counter{display:none}.example-message{padding:13px}.update-steps{gap:8px}.update-steps .path-node{padding:12px}.update-lesson .phase-title,.card:has(.example-layout)>.phase-title{flex-wrap:wrap}.example-layout{gap:22px}.data-step-copy h2{font-size:20px}}
/* Keep the growing game transcript readable without pushing the action form away. */
.game-input .terminal{max-height:320px;overflow:auto}
