:root{color-scheme:light;--bg:#faf5ea;--paper:#fffdf7;--ink:#302c27;--muted:#675e52;--line:#cfbfaa;--orange:#a63d20;--blue:#145f76;--soft:#eee4d2;--mint:#dce9dc;--load:#cadfe8;--multiply:#eac19d;--shadow:#d1b691}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#211f1b;--paper:#2c2923;--ink:#f9efdc;--muted:#c9bca7;--line:#766851;--orange:#ffb28d;--blue:#8dd7e9;--soft:#393328;--mint:#304636;--load:#244854;--multiply:#633e26;--shadow:#584732}}
html[data-theme=dark]{color-scheme:dark;--bg:#211f1b;--paper:#2c2923;--ink:#f9efdc;--muted:#c9bca7;--line:#766851;--orange:#ffb28d;--blue:#8dd7e9;--soft:#393328;--mint:#304636;--load:#244854;--multiply:#633e26;--shadow:#584732}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:1.5rem}body{margin:0;background:var(--bg);color:var(--ink);font:1.13rem/1.78 Georgia,serif}a{color:var(--blue);text-underline-offset:.18em}button,select,input{font:inherit}button,select{min-height:44px;padding:.55rem .9rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:4px}button{cursor:pointer;font:600 .9rem/1.3 "Trebuchet MS",sans-serif}button:disabled{opacity:.45;cursor:default}button:not(:disabled):hover{border-color:var(--orange)}:focus-visible{outline:3px solid var(--orange);outline-offset:4px}code{font:.9em ui-monospace,monospace}pre{overflow:auto;max-width:100%;padding:1.3rem;background:#282e2b;color:#f2efd9;font:.91rem/1.7 ui-monospace,monospace;border-radius:3px;border-left:5px solid #d19e63}p{margin:1.15rem 0}h1,h2,h3{font-family:"Avenir Next","Trebuchet MS",sans-serif}h2{font-size:2rem;line-height:1.22;letter-spacing:-.035em;margin:3.5rem 0 1rem;text-wrap:balance}h3{font-size:1.24rem;line-height:1.35}.meta,.eyebrow,.caption,.tag{font:.8rem/1.6 ui-monospace,monospace;color:var(--muted)}.top{max-width:76rem;margin:auto;padding:1.2rem 1.5rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;font:.85rem/1.5 ui-monospace,monospace}.skip{position:absolute;top:-8rem;left:1rem;background:var(--paper);padding:1rem;z-index:20}.skip:focus{top:1rem}.cover{max-width:76rem;margin:1rem auto 2.5rem;padding:2.5rem 2rem 0;border-top:10px solid var(--orange);display:grid;grid-template-columns:1.35fr 1fr;gap:1.5rem 3rem;align-items:center}.cover .eyebrow{grid-column:1/-1;letter-spacing:.12em;text-transform:uppercase;margin:0}.cover h1{font-size:clamp(3rem,6.7vw,5.6rem);font-weight:850;line-height:.98;letter-spacing:-.065em;margin:.4rem 0 1.4rem;text-wrap:balance}.dek{font-size:1.35rem;line-height:1.6}.cover-board{background:var(--soft);padding:1.5rem;border:1px solid var(--line);border-radius:50% 50% 6px 6px;box-shadow:8px 8px 0 var(--shadow);transform:rotate(2deg)}.cover-board svg{width:100%;height:auto;display:block}.cover-board text{fill:var(--ink);font:13px ui-monospace,monospace}.cover-board .wire{stroke:var(--blue);stroke-width:2;fill:none}.cover-board .card{fill:var(--paper);stroke:var(--line)}.cover-board .slot{fill:var(--multiply);stroke:var(--orange)}.cover-board figcaption{font:.8rem/1.5 ui-monospace,monospace;text-align:center;color:var(--muted)}.arc{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:2rem;font:.9rem/1.5 "Trebuchet MS",sans-serif}.arc>div{padding:1rem;border-right:1px solid var(--line)}.arc>div:last-child{border-right:0}.arc .current{background:var(--mint)}.arc b{display:block}.arc span{font:.75rem ui-monospace,monospace;color:var(--muted)}main{max-width:51rem;margin:auto;padding:0 1.5rem 4rem}.opening{font-size:1.26rem}.section-no{display:block;font:.75rem ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--orange);margin-bottom:.7rem}aside,.formula{padding:1rem 1.2rem;background:var(--soft);margin:1.5rem 0;border-left:4px solid var(--orange)}.formula{font:1rem/1.8 ui-monospace,monospace;overflow:auto;background:var(--paper);border:1px solid var(--line)}.matrix-group{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.matrix-card{padding:1rem;background:var(--paper);border:1px solid var(--line);border-radius:0 18px 18px 18px}.matrix-card strong{font:700 .9rem "Trebuchet MS",sans-serif}.matrix-card table{font:1rem/1.5 ui-monospace,monospace;margin:.8rem 0}.matrix-card td{text-align:center;border:0;padding:.35rem}.matrix-card .focus-row{background:var(--mint)}.matrix-card .focus-col{background:var(--multiply)}.matrix-card p{font:.85rem/1.55 "Trebuchet MS",sans-serif;margin:.5rem 0 0}.scroll{overflow:auto}table{width:100%;border-collapse:collapse;margin:1.3rem 0;font:1rem/1.6 "Trebuchet MS",sans-serif}th,td{text-align:left;padding:.7rem;border-bottom:1px solid var(--line);vertical-align:top}th{font-weight:700}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin:1.5rem 0}.steps>div{padding:.8rem;background:var(--paper);border:1px solid var(--line);border-top:5px solid var(--orange);font:.9rem/1.6 ui-monospace,monospace}.steps strong{display:block;font-size:1.6rem}.prediction{font-size:1.2rem;color:var(--orange);font-style:italic}.lab{margin:2rem -3rem;padding:1.5rem;border:2px solid var(--ink);background:var(--paper);box-shadow:7px 7px 0 var(--shadow);border-radius:8px}.lab h3{font-size:1.5rem;margin:.2rem 0 .8rem}.lab p{font:1rem/1.6 "Trebuchet MS",sans-serif}.parameters{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;border-top:1px solid var(--line);padding-top:1rem}.parameters label{display:block;font:600 .9rem/1.5 "Trebuchet MS",sans-serif}.parameters select{margin-top:.5rem;width:100%}input[type=range]{width:100%;min-height:44px;accent-color:var(--orange)}.controls{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.controls button:last-child{margin-left:auto}.readout{padding:1rem;background:var(--soft);border-left:4px solid var(--blue);min-height:7rem}.readout strong{font:.9rem ui-monospace,monospace}.readout p{margin:.5rem 0 0}.warp-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin:1rem 0}.warp{padding:.85rem;border:1px solid var(--line);border-left:5px solid var(--line);border-radius:4px;background:var(--bg)}.warp[data-status=ready]{border-left-color:var(--blue)}.warp[data-status=waiting]{border-left-color:var(--orange);background:var(--soft)}.warp[data-status=done]{background:var(--mint);border-left-color:var(--blue)}.warp .warp-title{font:700 .9rem/1.4 "Trebuchet MS",sans-serif}.warp .status{display:block;min-height:2.8em;font:.8rem/1.4 "Trebuchet MS",sans-serif;margin:.4rem 0}.warp .acc{font:1.1rem/1.6 ui-monospace,monospace}.warp small{display:block;font:.75rem/1.5 ui-monospace,monospace;color:var(--muted)}.timeline{overflow:auto;max-width:100%;border:1px solid var(--line);background:var(--bg);padding:.5rem}.timeline svg{display:block;max-width:none}.timeline text{font:11px ui-monospace,monospace;fill:var(--ink)}.timeline .grid-cell{fill:var(--paper);stroke:var(--line);stroke-width:.5}.timeline .event-A,.timeline .event-B{fill:var(--load);stroke:var(--blue)}.timeline .event-M{fill:var(--multiply);stroke:var(--orange)}.timeline .cursor{fill:none;stroke:var(--ink);stroke-width:2}.timeline .idle-mark{stroke:var(--orange);stroke-width:2}.timeline .event-label{font-weight:bold}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin:1.1rem 0}.stats>div{border-top:3px solid var(--orange);padding:.7rem .2rem;font:.8rem/1.4 "Trebuchet MS",sans-serif}.stats b{display:block;font:700 2rem/1.2 "Trebuchet MS",sans-serif}.lab table{font-size:.9rem}.lab .selected{background:var(--mint)}details{border-top:1px solid var(--line);margin:1.8rem 0}summary{padding:1rem 0;cursor:pointer;font:600 1rem/1.5 "Trebuchet MS",sans-serif;color:var(--blue)}.contents{background:var(--paper);padding:0 1rem}.contents ol{font:1rem/1.65 "Trebuchet MS",sans-serif;padding-left:1.2rem}.contents li{padding:.3rem 0}.bridge{border:2px solid var(--orange);padding:1.3rem;background:var(--paper);margin:2rem 0}.bridge h3{margin:0 0 .5rem}.bridge p{margin:.7rem 0}.sources{margin-top:3rem;border-top:2px solid var(--ink);padding-top:1rem;font:1rem/1.6 "Trebuchet MS",sans-serif}.sources li{margin:.8rem 0;overflow-wrap:anywhere}.ref{font:.75rem ui-monospace,monospace}footer{padding-top:2rem;color:var(--muted);font:.85rem/1.7 ui-monospace,monospace}
@media(max-width:1000px){.lab{margin:2rem 0}.cover{gap:1.5rem;padding:1.5rem 1.5rem 0}.cover h1{font-size:3.8rem}}
@media(max-width:650px){body{font-size:1.0625rem}.top{padding:1rem;align-items:flex-start}.cover{display:block;padding:1.5rem 1rem 0;margin-top:.5rem}.cover .eyebrow{margin-bottom:1.3rem}.cover h1{font-size:3.15rem}.dek{font-size:1.22rem}.cover-board{max-width:26rem;margin:1.8rem auto;padding:1.1rem;transform:none;box-shadow:4px 4px 0 var(--shadow)}.arc{display:grid;margin-top:2rem;grid-template-columns:1fr}.arc>div{border-right:0;border-bottom:1px solid var(--line);padding:.7rem 1rem}.arc>div:last-child{border-bottom:0}.arc b{display:inline}.arc span{display:block;margin-top:.2rem}main{padding:0 1rem 3rem}h2{font-size:1.8rem}.matrix-group,.parameters{grid-template-columns:1fr}.steps{grid-template-columns:1fr 1fr}.lab{padding:.9rem;box-shadow:3px 3px 0 var(--shadow)}.warp-grid{grid-template-columns:1fr}.controls button:last-child{margin-left:0}.stats b{font-size:1.6rem}.lab table th,.lab table td{padding:.55rem .3rem}.opening{font-size:1.18rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
