
:root{color-scheme:light;--paper:#f4f0e6;--ink:#242c29;--muted:#52615a;--line:#c8cbbd;--accent:#b64228;--panel:#e6e9dd}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--paper);color:var(--ink);font-family:Georgia,serif;font-size:18px;line-height:1.7}.dark{color-scheme:dark;--paper:#1e2926;--ink:#f1edde;--muted:#c5cec0;--line:#58665d;--accent:#ff9b79;--panel:#2b3931}a{color:inherit;text-underline-offset:.2em}a:hover{color:var(--accent)}button,select,input{font:inherit}button,.button{background:var(--ink);color:var(--paper);border:1px solid var(--ink);padding:.6rem 1rem;cursor:pointer;text-decoration:none;display:inline-block}button:hover,.button:hover{background:var(--accent);color:var(--paper)}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}header{max-width:1320px;margin:auto;padding:24px 4%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font:14px/1.5 system-ui}.brand{font-weight:800;letter-spacing:.13em;text-decoration:none}.brand span{margin-left:20px;font-weight:400;letter-spacing:0}nav{display:flex;align-items:center;gap:22px}.notice{text-align:center;background:var(--panel);padding:7px;font:12px/1.5 system-ui;letter-spacing:.08em}.hero{max-width:1320px;margin:auto;padding:85px 4%;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:40px}.hero h1{font-size:clamp(64px,7.5vw,112px);line-height:.96;font-weight:400;letter-spacing:-.06em;margin:28px 0}.hero em{color:var(--accent);font-weight:400}.lead{font-size:25px;max-width:500px;line-height:1.4}.hero img{width:100%;height:auto}.eyebrow{font:11px/1.6 system-ui;letter-spacing:.17em;font-weight:650;color:var(--muted)}.hero .button{margin-top:20px}.intro,#contents{max-width:1216px;margin:0 auto 75px;padding:30px 0;border-top:1px solid var(--line)}.triad{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.triad b{font:11px system-ui;color:var(--accent);letter-spacing:.12em}.triad h2{font-size:25px;font-weight:400}.triad p{font-size:17px;color:var(--muted)}#contents>h2{font-weight:400;font-size:48px;margin:15px 0 30px}.cards{display:grid;grid-template-columns:1fr 1fr;gap:25px}.card{display:block;padding:30px;border:1px solid var(--line);text-decoration:none;background:var(--panel)}.card h3{font-size:32px;line-height:1.25;font-weight:400;margin:20px 0}.card p{font-size:17px}.card>span:last-child{font:13px system-ui}.prose{max-width:740px;margin:0 auto 80px}.prose h1{font-size:54px;line-height:1.1;font-weight:400;letter-spacing:-.035em}.prose h2{font-weight:400;font-size:31px;line-height:1.25;margin-top:65px}.prose p{margin:1.15em 0}.chapter-head{max-width:1216px;margin:50px auto 40px}.chapter-head>a{font:13px system-ui}.reading{max-width:1216px;margin:auto;display:grid;grid-template-columns:230px minmax(0,740px);gap:70px}.reading .prose{width:100%;min-width:0}.toc{font:12px/1.6 system-ui;align-self:start;position:sticky;top:30px}.toc a{display:block;margin:12px 0;text-decoration:none;color:var(--muted)}.toc b{letter-spacing:.12em}.lab{border:1px solid var(--line);background:var(--panel);padding:28px;margin:40px 0;font:16px/1.6 system-ui}.lab h3{font:29px/1.2 Georgia}.lab label{display:block;margin:12px 0}.controls{display:grid;grid-template-columns:1fr 1fr;gap:12px}select{display:block;width:100%;padding:8px;background:var(--paper);color:var(--ink);border:1px solid var(--line)}.result{font:27px/1.4 Georgia!important;color:var(--accent)}input[type=range]{width:100%;accent-color:var(--accent)}input[type=number]{width:90px}pre{overflow:auto;padding:20px;background:var(--ink);color:var(--paper);font:13px/1.65 monospace;white-space:pre}details{margin-top:24px}summary{cursor:pointer;font:14px/1.6 system-ui}.chapter-nav{border-top:1px solid var(--line);padding-top:24px;justify-content:space-between;font:14px system-ui}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:16px}td{padding:8px;border-bottom:1px solid var(--line)}footer{padding:35px 4%;border-top:1px solid var(--line);font:12px/1.8 system-ui;text-align:center}.skip{position:absolute;top:-100px}.skip:focus{top:10px;left:10px;z-index:4;background:var(--paper);padding:15px}#about{border-top:1px solid var(--line)}@media(max-width:1280px){.intro,#contents,.chapter-head,.reading{margin-left:5%;margin-right:5%}.reading{gap:35px}}@media(max-width:800px){header{align-items:start}.brand span{display:none}nav{gap:12px;font-size:12px}.hero{grid-template-columns:1fr;padding-top:45px}.hero img{max-width:500px}.triad,.cards{grid-template-columns:1fr}.reading{display:block}.toc{position:static;border-bottom:1px solid var(--line);padding-bottom:20px}.toc a{display:inline-block;margin:8px 12px 8px 0}.prose{padding:0 6%}.reading .prose{padding:0}.prose h1{font-size:40px}.controls{grid-template-columns:1fr}.lab{padding:20px}#contents>h2{font-size:37px}}@media print{header,.notice,.toc,button,.chapter-nav,footer{display:none}.reading{display:block;margin:0}.prose{max-width:none;margin:0}.lab{break-inside:avoid}.hero{display:block}body{font-size:12pt;background:white;color:black}a{text-decoration:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.diagram{max-width:100%;height:auto}figure{margin:40px 0}figcaption{font:13px/1.6 system-ui;color:var(--muted)}
.tape{display:flex;gap:6px;margin:25px 0 42px;overflow:visible}.tape-cell{position:relative;display:inline-grid;place-items:center;flex:1;min-width:25px;height:48px;border:1px solid var(--muted);font:24px monospace;background:var(--paper)}.tape-cell.current{outline:3px solid var(--accent);outline-offset:1px}.tape-cell small{position:absolute;top:52px;font:10px system-ui;color:var(--accent)}.tape-buttons{display:flex;gap:8px;flex-wrap:wrap}button:disabled{opacity:.45;cursor:default}
.memory-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.memory-grid section{background:var(--paper);padding:12px}.memory-grid ol{padding-left:25px}.memory-grid h4{margin:0;font:22px Georgia}.prose code{font-size:.85em}ul{padding-left:1.4em}@media(max-width:600px){.memory-grid{grid-template-columns:1fr}}
textarea{display:block;width:100%;max-width:100%;padding:10px;font:16px/1.5 monospace;background:var(--paper);color:var(--ink);border:1px solid var(--line);resize:vertical}.lab .result{overflow-wrap:anywhere;white-space:pre-wrap}
