:root{--paper:#f4f1e9;--card:#fffdf8;--ink:#223332;--muted:#6d7770;--line:#dbdfd4;--accent:#b75b35;--accent-soft:#f4e3d6;--teal:#397d78;--good:#236a55;--bad:#9c4430;--serif:Georgia,'Times New Roman',serif;--sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.5}button,input,select{font:inherit}button,a,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}a{color:inherit}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #397d78;outline-offset:4px}button{color:inherit}button,select,input{border-radius:8px}button{border:0;background:none}svg{max-width:100%;height:auto}h1,h2,h3,p{margin-top:0}h1,h2{font-weight:500}h1{font-family:var(--serif);font-size:clamp(40px,5vw,70px);line-height:1.07;letter-spacing:-2px}h2{font-family:var(--serif);font-size:clamp(27px,3vw,39px);line-height:1.17;letter-spacing:-.8px}h3{font-size:16px}small,.small{font-size:12px}.muted{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;text-transform:uppercase;color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:absolute;top:-70px;padding:12px;background:white;z-index:10}.skip:focus{top:0}.topbar{height:80px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 5vw;border-bottom:1px solid var(--line);background:var(--paper)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;text-align:left}.brand-mark{background:var(--ink);color:var(--paper);width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-size:24px}.brand-name{font-size:12px;letter-spacing:1.4px;font-weight:750;line-height:1.45}.brand-sub{display:block;font-size:10px;letter-spacing:1.6px;color:var(--muted);font-weight:400}.top-actions{display:flex;align-items:center;gap:12px}.top-actions button{font-size:13px;padding:9px 12px}.top-actions button:hover,.quiet:hover{background:#e9e9df}.outline{border:1px solid var(--line);padding:11px 17px;background:transparent}.primary{background:var(--ink);color:white;padding:12px 22px;font-size:14px;font-weight:600}.primary:hover{background:#354b48}.secondary{border:1px solid var(--line);background:var(--card);padding:11px 18px;font-size:13px}.secondary:hover{border-color:var(--accent)}.quiet{padding:10px 13px;font-size:13px;color:var(--muted)}.text-link{padding:0;text-decoration:underline;text-underline-offset:4px;color:var(--muted);font-size:12px}.pill{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);padding:5px 11px;border-radius:30px;font-size:11px;white-space:nowrap}.pill i{height:6px;width:6px;border-radius:100%;background:var(--teal)}
.home{max-width:1240px;padding:56px 5vw 30px;margin:auto}.hero{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:60px;margin-bottom:52px}.hero h1{margin:16px 0 22px}.hero .lede{max-width:480px;font-size:16px;color:#68746d;line-height:1.7}.hero-art{position:relative;background:#ebece2;border:1px solid #dde0d3;border-radius:50% 50% 10px 10px;padding:28px 18px 14px;overflow:hidden}.hero-art .art-caption{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1.3px;margin:0 16px 10px;color:#68776e}.hero-art:before{content:'';position:absolute;inset:0;background-image:radial-gradient(#bec8b6 .7px,transparent .7px);background-size:16px 16px;opacity:.4;pointer-events:none}.hero-art svg{position:relative}.hero-actions{display:flex;gap:12px;margin-top:27px;flex-wrap:wrap}.sectionline{display:flex;justify-content:space-between;align-items:end;margin:0 0 17px;gap:20px}.chapter-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.chapter-card{display:flex;flex-direction:column;position:relative;align-items:stretch;min-height:275px;padding:23px;text-align:left;border:1px solid var(--line);background:var(--card);border-radius:12px;transition:transform .15s,box-shadow .15s}.chapter-card:hover{transform:translateY(-4px);box-shadow:0 10px 25px #253d2e0d;border-color:var(--chapter-color)}.chapter-number{font-family:var(--serif);font-size:26px;color:var(--chapter-color);display:flex;justify-content:space-between;align-items:center}.chapter-verb{margin:18px 0 3px;font-family:var(--serif);font-size:30px;line-height:1.1}.chapter-card h3{font-weight:500;font-size:13px;margin:0 0 12px}.chapter-card p{font-size:12px;color:var(--muted);margin-bottom:18px}.chapter-card .card-foot{margin-top:auto;font-size:11px;display:flex;justify-content:space-between;color:var(--muted)}.progress-track{height:3px;background:#e6e9df;margin-top:12px;overflow:hidden;border-radius:6px}.progress-track span{display:block;height:100%;background:var(--chapter-color,var(--accent))}.home-note{display:flex;justify-content:space-between;gap:22px;border-top:1px solid var(--line);margin-top:32px;padding-top:20px;font-size:12px;color:var(--muted)}
.workspace{display:grid;grid-template-columns:238px minmax(0,1fr);max-width:1600px;margin:auto;min-height:calc(100vh - 80px)}.sidebar{padding:33px 22px 30px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.back{padding:8px 2px;font-size:12px;text-align:left;color:var(--muted);margin-bottom:20px}.sidechapter{padding:13px 12px;border-radius:9px;display:flex;gap:12px;text-align:left;width:100%;align-items:start}.sidechapter:hover{background:#eaece3}.sidechapter.active{background:var(--ink);color:var(--paper)}.sidechapter .num{font-family:var(--serif);font-size:24px;line-height:1.1;opacity:.65}.sidechapter b{font-size:13px;font-weight:500}.sidechapter small{display:block;opacity:.6;font-size:10px;margin-top:3px}.sidebar-note{margin-top:auto;padding-top:50px;font-size:11px;color:var(--muted)}.sidebar-note b{display:block;font-size:12px;font-weight:500;color:var(--ink);margin-bottom:6px}.bench{padding:34px clamp(25px,5vw,85px) 38px;max-width:1100px;min-width:0;width:100%;margin:auto}.bench-top{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:22px}.experiment-label{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--accent);font-weight:700}.step-pips{display:flex;gap:4px;flex-wrap:wrap;max-width:55%}.pip{height:7px;min-width:7px;width:14px;border-radius:2px;background:#dce0d5;padding:0}.pip.done{background:var(--teal)}.pip.review{background:#c49a65}.pip.current{outline:2px solid var(--ink);outline-offset:2px}.task-heading{margin-bottom:14px}.task-heading:focus{outline:none}.prompt{font-size:16px;line-height:1.65;max-width:760px;color:#53655b;margin-bottom:23px}.experiment{border:1px solid var(--line);background:var(--card);border-radius:14px;padding:24px;box-shadow:0 3px 0 #e8e9df;margin-bottom:18px;min-height:100px}.experiment .lab-title{font-size:10px;letter-spacing:1.7px;text-transform:uppercase;color:var(--muted);display:flex;justify-content:space-between;margin-bottom:10px}.rule-graph{display:block;max-height:240px;margin:0 auto;width:100%}.rule-node{fill:var(--card);stroke:#a8b8aa;stroke-width:1.5}.rule-node.current{fill:var(--accent);stroke:var(--accent)}.node-text{fill:var(--ink);font-family:var(--sans);font-size:14px;font-weight:500}.node-text.current{fill:white}.rule-edge{stroke:#9cae9f;stroke-width:1.5;fill:none}.rule-edge.active{stroke:var(--accent);stroke-width:2.5}.table-wrap{overflow:auto;max-width:100%}table{border-collapse:collapse;font-size:13px;min-width:100%;text-align:center}th{color:var(--muted);font-size:10px;letter-spacing:.6px;text-transform:uppercase;font-weight:600}td,th{border-bottom:1px solid #e6e9df;padding:10px 12px;white-space:nowrap}tr:last-child td{border-bottom:0}details{font-size:12px;color:var(--muted);margin-top:10px}summary{cursor:pointer;padding:6px 0}details p{margin-top:10px;line-height:1.7}.choices{display:grid;gap:10px}.choice{border:1px solid var(--line);border-radius:9px;padding:14px 16px;display:flex;align-items:center;gap:13px;text-align:left;line-height:1.4;font-size:14px;background:var(--card)}.choice:hover{background:#f0f1e8}.choice.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:#f5eee4}.choice .key{display:grid;place-items:center;flex-shrink:0;border:1px solid #cdd4c9;border-radius:5px;width:24px;height:24px;font-size:11px;color:var(--muted)}.choice.selected .key{background:var(--accent);color:white;border-color:var(--accent)}.select-grid{display:flex;gap:10px;flex-wrap:wrap}.select-item{padding:11px 18px;border:1px solid var(--line);border-radius:8px;min-width:60px;background:var(--card);font-size:14px}.select-item:hover{border-color:var(--accent)}.select-item.selected{background:var(--ink);border-color:var(--ink);color:white}.trace-path{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:17px 0 21px}.trace-start,.trace-slot{min-width:50px;height:47px;display:grid;place-items:center;padding:0 10px;font-family:ui-monospace,monospace;font-size:14px}.trace-start{background:#e9eee4;border-radius:8px}.trace-slot{border:1px dashed #bfc9ba;border-radius:8px;background:#fafaf5}.trace-slot.filled{border-style:solid;border-color:var(--accent);color:var(--accent);background:#f6eade}.trace-arrow{color:#b3bcb1}.trace-unit{position:relative}.trace-unit small{position:absolute;top:-17px;left:0;width:100%;text-align:center;font-size:9px;color:var(--accent)}.state-buttons{display:flex;gap:8px;flex-wrap:wrap}.state-buttons button{padding:10px 16px;background:#e9eee4;border:1px solid #d7dfd0;min-width:46px}.state-buttons button:hover{background:#dbe4d5}.fields{display:grid;gap:12px}.field-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,.65fr);gap:18px;align-items:center;font-size:13px}.field-row label{line-height:1.55}.field-row select,.mapping-select{width:100%;padding:10px 12px;background:var(--card);border:1px solid #cbd4c5;color:var(--ink);font-size:13px}.vector{display:flex;justify-content:center;gap:12px;padding:14px 0;flex-wrap:wrap}.vector-cell{text-align:center;min-width:65px}.vector-cell b{display:grid;place-items:center;min-width:60px;height:58px;padding:8px 15px;background:#eaf0e5;border-radius:8px;font-family:var(--serif);font-size:27px;font-weight:500}.vector-cell small{display:block;margin-top:6px;font-size:10px;color:var(--muted)}.vector-cell .rule{max-width:100px;line-height:1.3}.counter{display:inline-block;height:13px;width:13px;background:#b87a48;border-radius:50%;margin:3px}.counter-group{text-align:center;padding:8px 22px;max-width:210px}.counter-group b{display:block;font-size:13px}.mapping-layout{display:grid;grid-template-columns:1fr 1.15fr;gap:20px;align-items:center}.mapping-list{display:grid;gap:8px}.mapping-row{display:flex;gap:10px;align-items:center;font-size:13px}.mapping-row label{min-width:30px;font-weight:600}.mapping-row select{min-width:80px}.wire-matrix{width:auto;margin:15px auto;min-width:0}.wire-matrix th,.wire-matrix td{padding:5px;border:0}.wire-matrix button{width:43px;height:43px;border:1px solid #d6ddcf;background:#eff2e9;border-radius:7px}.wire-matrix button.selected{background:var(--teal);color:white;border-color:var(--teal)}.wire-matrix button.fixed{opacity:.65}.wire-matrix .dash{font-size:12px;color:#aaa}.lab-controls{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:14px 0}.lab-controls select{padding:8px;border:1px solid var(--line);background:white}.lab-readout{font-family:var(--serif);font-size:42px;text-align:center;color:var(--accent);margin:12px 0 4px}.lab-history{text-align:center;font-family:ui-monospace,monospace;color:var(--muted);font-size:12px;overflow-wrap:anywhere;margin:8px 0 15px}.lab-footer{display:flex;justify-content:space-between;gap:10px;margin:10px 0 0;font-size:11px;color:var(--muted)}.probe-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:28px}.blackbox{background:#253935;border-radius:12px;padding:24px;color:var(--paper);text-align:center;position:relative}.blackbox:before,.blackbox:after{content:'+';position:absolute;top:9px;color:#6e8177;font-size:12px}.blackbox:before{left:12px}.blackbox:after{right:12px}.blackbox .lab-readout{color:#d5bc8b;font-size:68px}.blackbox .eyebrow{color:#b6c8b9;font-size:9px}.blackbox button{background:#3b5147;border:1px solid #5c6f62;color:white;padding:9px 22px}.observed-dot{color:var(--good);font-size:10px;margin-left:5px}.protocol{max-height:190px;overflow:auto;border-top:1px solid var(--line);margin-top:16px}.protocol:empty{display:none}.grid-plane{max-width:410px;display:grid;grid-template-columns:repeat(var(--n),1fr);gap:7px;padding:12px 24px 28px 45px;margin:auto;position:relative}.point{border:1px solid #cbd4c7;border-radius:6px;aspect-ratio:1;background:#f1f3eb;position:relative;font-family:ui-monospace,monospace;font-size:11px;min-height:35px}.point:hover{background:#dce8d6}.point.selected{background:var(--accent);color:white;border-color:var(--accent)}.point.start:after{content:'start';position:absolute;bottom:0;left:0;width:100%;font-family:var(--sans);font-size:8px}.axis-label{text-align:center;font-size:11px;color:var(--muted)}.trace-record{display:flex;gap:6px;flex-wrap:wrap;padding:10px 0}.trace-record span{padding:7px 11px;border:1px solid #d4ddce;border-radius:5px;font-family:ui-monospace,monospace}.plot{display:block;max-height:230px;margin:auto}.plot-label{font-family:var(--sans);fill:#6f7e70;font-size:10px}.plotline{fill:none;stroke-width:2.5}.plot-tabs{display:flex;gap:8px;justify-content:center;margin-bottom:10px}.plot-tabs button{border:1px solid var(--line);padding:8px 15px;font-size:12px}.plot-tabs button.selected{background:var(--ink);color:white}.pulse-cells{display:flex;gap:16px;justify-content:center;align-items:center;margin:20px 0}.pulse-lamp{width:55px;height:55px;border:1px solid #aebbab;background:#e1e8da;border-radius:12px;display:grid;place-items:center;font-size:11px;transition:background .2s}.pulse-lamp.on{background:#d7a44a;border-color:#b48538;color:#44321d}.answer-zone{padding:7px 0}.task-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:20px}.task-actions .later{margin-left:auto}.feedback{border-radius:10px;padding:19px 21px;margin-top:18px;border:1px solid #cbdcd0;background:#eaf1e8;line-height:1.65;font-size:14px}.feedback.bad{border-color:#dfc5b6;background:#f5e9df}.feedback h3{margin:0 0 7px;font-size:14px;font-weight:600}.feedback p{margin:0}.feedback .terms{margin-top:15px;display:flex;gap:7px;flex-wrap:wrap}.term-chip{border:1px solid #cad6c5;border-radius:20px;background:#f7faf2;padding:5px 10px;font-size:11px}.discovery{padding-top:14px;border-top:1px solid #cfdbca;margin-top:14px}.discovery strong{font-weight:600}.hint{margin-top:13px;padding:13px 17px;border-left:3px solid #b9ae80;background:#ecead9;font-size:13px;color:#5e5f4c}.source-line{display:flex;align-items:start;justify-content:space-between;gap:20px;margin:24px 0 0;font-size:10px;color:var(--muted)}.source-line button{text-align:left;font-size:10px;padding:0}.completion{padding:35px 0}.completion h1{font-size:50px;margin-top:15px}.completion .stats{display:flex;gap:30px;margin:30px 0}.stat strong{font-family:var(--serif);font-size:36px;display:block;font-weight:500}.stat span{font-size:12px;color:var(--muted)}.completion .terms{display:flex;gap:9px;flex-wrap:wrap;margin:25px 0}.done-mark{display:grid;place-items:center;background:#e1ebdf;color:var(--teal);border-radius:50%;width:60px;height:60px;font-size:30px}
dialog{border:1px solid var(--line);border-radius:15px;box-shadow:0 25px 100px #14231b33;padding:0;color:var(--ink);background:var(--paper);max-height:86vh;width:min(620px,calc(100% - 30px));margin:auto}dialog::backdrop{background:#15251f66;backdrop-filter:blur(3px)}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:24px 26px 15px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--paper);z-index:1}.drawer-header h2{margin:0;font-size:29px}.drawer-body{padding:23px 26px 30px}.close{font-size:25px;padding:0 7px;color:var(--muted)}.search{width:100%;padding:12px 15px;border:1px solid #cbd4c6;background:var(--card);margin-bottom:20px}.gloss-entry{border-bottom:1px solid var(--line);padding:17px 0}.gloss-entry h3{display:flex;justify-content:space-between;gap:10px;margin:0 0 8px;font-size:16px}.gloss-entry h3 span{font-size:9px;font-weight:500;text-transform:uppercase;letter-spacing:1px;align-self:center;color:var(--teal)}.gloss-entry p{font-size:13px;line-height:1.7;margin-bottom:9px}.gloss-entry .example{color:var(--muted);font-size:12px}.drawer-actions{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0}.chapter-jump{display:flex;width:100%;text-align:left;align-items:center;gap:12px;padding:11px;border-bottom:1px solid var(--line);border-radius:0;font-size:13px}.chapter-jump span:first-child{color:var(--muted);font-size:11px;width:22px}.chapter-jump .status{margin-left:auto;font-size:10px;color:var(--teal)}.notice{font-size:12px;line-height:1.7;color:var(--muted);padding:12px 0}.danger{color:#8f4131;border:1px solid #d8bfb1;padding:10px 15px}.mobile-chapter{display:none}.graph-legend{font-size:10px;color:var(--muted);text-align:center;margin-top:4px}.done-arrow{color:var(--teal)}
@media(min-width:1500px){.bench{max-width:1060px}.home{max-width:1320px}}
@media(max-width:1000px){.hero{gap:30px}.chapter-card{padding:18px}.workspace{grid-template-columns:190px 1fr}.sidebar{padding:27px 14px}.bench{padding:28px}.chapter-grid{gap:11px}.chapter-verb{font-size:27px}.topbar{padding:0 28px}.home{padding-left:28px;padding-right:28px}}
@media(max-width:760px){.topbar{height:68px;padding:0 18px;gap:8px}.brand-name{font-size:10px}.brand-sub{font-size:8px}.brand-mark{width:32px;height:32px;font-size:22px}.top-actions{gap:0}.top-actions button{padding:8px;font-size:12px}.top-actions .pill{display:none}.hero{grid-template-columns:1fr;margin-bottom:30px}.hero-art{display:none}.home{padding:34px 20px 25px}.hero h1{font-size:45px}.hero .lede{font-size:14px}.chapter-grid{grid-template-columns:repeat(2,1fr);gap:12px}.chapter-card{min-height:250px}.sectionline{align-items:start}.sectionline .small{max-width:160px;text-align:right;font-size:10px}.home-note{flex-direction:column;gap:12px}.workspace{display:block;min-height:calc(100vh - 68px)}.sidebar{display:none}.bench{padding:23px 19px 30px}.bench-top{flex-wrap:wrap;gap:14px;margin-bottom:23px}.mobile-chapter{display:block;margin-bottom:20px;font-size:11px;color:var(--muted);padding:0}.prompt{font-size:14px}.experiment{padding:18px 14px;border-radius:11px}.task-heading{font-size:30px}.probe-layout{grid-template-columns:1fr;gap:19px}.blackbox{padding:14px}.blackbox .lab-readout{font-size:47px;margin:4px 0}.mapping-layout{grid-template-columns:1fr}.mapping-layout .rule-graph{max-height:190px}.rule-graph{max-height:220px}.field-row{grid-template-columns:1.1fr 1fr;gap:12px}.field-row select{padding:10px 6px;font-size:12px}.choice{font-size:13px;padding:12px}.trace-path{gap:5px}.trace-slot,.trace-start{min-width:40px;padding:0 5px;font-size:12px}.trace-arrow{font-size:11px}.source-line{flex-direction:column;gap:8px}.task-actions .later{margin-left:0}.feedback{padding:17px;font-size:13px}.vector{gap:8px}.vector-cell{min-width:45px}.vector-cell b{min-width:42px;height:46px;font-size:22px;padding:5px}.vector-cell .rule{max-width:66px;font-size:8px}.grid-plane{padding:10px;gap:6px}.point{font-size:10px}.drawer-body{padding:20px}.drawer-header{padding:20px}.completion h1{font-size:41px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
