:root{--bg: #f7f5ef;--paper: #fffdf7;--ink: #171713;--muted: #6f6b5f;--soft: #e7e1d3;--line: #d8d0bd;--accent: #216e62;--accent-2: #8f3d2e;--good: #d9ead3;--warn: #f6e4b8;--bad: #f3c4bc;--mono: "Spline Sans Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--body: "Hanken Grotesk", ui-sans-serif, system-ui, sans-serif;--display: "Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;color:var(--ink);background:var(--bg);font-family:var(--body)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.app{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr);background:linear-gradient(90deg,rgba(33,110,98,.05) 1px,transparent 1px),var(--bg);background-size:56px 56px,auto}.rail{position:sticky;top:0;height:100vh;padding:28px 22px;border-right:1px solid var(--line);background:#f7f5efdb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);display:grid;grid-template-rows:auto 1fr auto;gap:28px}.wordmark{display:inline-flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none}.wordmark span{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:12px}.wordmark strong{font-family:var(--display);font-size:22px;letter-spacing:0}.rail nav{display:grid;align-content:start;gap:6px}.rail nav a{color:var(--muted);text-decoration:none;font-size:15px;padding:7px 0}.rail nav a:hover{color:var(--ink)}.rail-status{display:grid;gap:10px}.rail-status button,.top-button,.run-button,.actions button,.footer a{border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink);padding:9px 13px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;cursor:pointer}.rail-status svg,.run-button svg,.actions svg,.footer svg{width:16px;height:16px}.status{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-family:var(--mono);font-size:11px}.status span{width:8px;height:8px;border-radius:50%;background:#c7b36a}.status[data-state=ok] span{background:#3f8f5f}.status[data-state=bad] span{background:#b84c3d}.article{width:min(980px,calc(100vw - 248px));margin:0 auto;padding:64px 40px 48px}.intro,.reading-section,.lab-section{scroll-margin-top:40px}.intro{padding:34px 0 46px;border-bottom:1px solid var(--line)}.eyebrow{display:block;color:var(--accent);font-family:var(--mono);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:0}h1,h2,h3,p{letter-spacing:0}h1{max-width:860px;margin:12px 0 22px;font-family:var(--display);font-size:72px;line-height:.98}.lead{max-width:720px;margin:0;color:var(--muted);font-size:21px;line-height:1.55}.plain-note{max-width:760px;margin-top:28px;padding:16px 0 0;border-top:1px solid var(--line);display:flex;gap:10px;color:var(--muted);line-height:1.5}.plain-note svg{width:20px;height:20px;flex:none;color:var(--accent)}.terms{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;padding:32px 0;border-bottom:1px solid var(--line)}.term,.mini-method,.metric-explainer{min-width:0}.term div,.mini-method div,.metric-explainer div,.control-header div,.hash-line div{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--soft);color:var(--accent);margin-bottom:12px}.term svg,.mini-method svg,.metric-explainer svg,.control-header svg,.hash-line svg{width:17px;height:17px}.term strong,.mini-method strong,.metric-explainer strong{display:block;font-size:18px}.term p,.mini-method p,.metric-explainer p{margin:6px 0 0;color:var(--muted);line-height:1.48}.reading-section{padding:46px 0;border-bottom:1px solid var(--line)}.reading-section h2,.lab-copy h2{max-width:760px;margin:8px 0 18px;font-family:var(--display);font-size:44px;line-height:1.05}.section-body{max-width:760px;color:var(--muted);font-size:18px;line-height:1.65}.section-body p{margin:0 0 16px}.section-body strong{color:var(--ink)}.method-explainer,.metric-explainers,.standard-list{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:28px;color:var(--ink)}.flow-list{margin:26px 0 0;padding:0;list-style:none;counter-reset:flow}.flow-list li{counter-increment:flow;display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;padding:13px 0;border-top:1px solid var(--line);color:var(--ink)}.flow-list li:before{content:counter(flow);width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--soft);color:var(--accent);font-family:var(--mono);font-size:12px}.standard-list{gap:22px 34px}.standard-item{display:grid;grid-template-columns:42px minmax(0,1fr);gap:14px;padding-top:18px;border-top:1px solid var(--line)}.standard-item>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:11px}.standard-item strong{display:block;color:var(--ink);font-size:18px}.standard-item p{margin:6px 0 0;color:var(--muted);line-height:1.54}.utility-note{margin-top:26px;padding-top:16px;border-top:1px solid var(--line);display:flex;gap:12px;color:var(--muted);line-height:1.55}.utility-note svg{width:20px;height:20px;flex:none;color:var(--accent-2)}.lab-section{padding:48px 0;border-bottom:1px solid var(--line)}.lab-copy{max-width:780px;margin-bottom:28px}.lab-copy p{max-width:680px;margin:0;color:var(--muted);font-size:18px;line-height:1.58}.backend-line{margin-top:20px;padding:14px 0 0;border-top:1px solid var(--line);display:flex;gap:10px;align-items:flex-start;color:var(--muted)}.backend-line svg{width:18px;height:18px;margin-top:2px;color:var(--accent)}.backend-line strong,.backend-line span{display:block}.backend-line strong{color:var(--ink)}.backend-line[data-state=bad] svg{color:var(--accent-2)}.lab-grid{display:grid;grid-template-columns:minmax(280px,.42fr) minmax(0,1fr);gap:36px;align-items:start}.controls,.artifact{min-width:0}.control-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}.control-header div{margin:0}.control-header h3{margin:0;font-family:var(--display);font-size:24px}.control-group{margin-bottom:22px}.control-group>span,.slider span,.metric span,.hash-line span{display:block;color:var(--muted);font-family:var(--mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0;margin-bottom:8px}.dataset-list,.method-list{display:grid;gap:8px}.dataset-list button,.method-list button{border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--ink);text-align:left;padding:12px;cursor:pointer}.dataset-list button[data-active=true],.method-list button[data-active=true]{border-color:var(--accent);background:#edf4ef}.dataset-list strong,.dataset-list small{display:block}.dataset-list small{margin-top:3px;color:var(--muted);font-family:var(--mono);font-size:11px;line-height:1.3}.context-line{margin:10px 0 0;color:var(--muted);font-size:14px;line-height:1.45}.method-list{grid-template-columns:1fr 1fr}.method-list button{display:flex;gap:8px;align-items:center;justify-content:center;font-weight:700}.method-list svg{width:16px;height:16px}.slider{display:block;margin-bottom:18px}.slider div{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.slider strong{font-family:var(--mono);color:var(--accent)}input[type=range]{width:100%;accent-color:var(--accent)}.slider em{display:block;color:var(--muted);font-size:13px;font-style:normal;line-height:1.4}.run-button{width:100%;margin-top:4px;background:var(--ink);color:var(--paper);border-color:var(--ink)}.run-button:disabled{opacity:.65;cursor:default}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error{margin-top:12px;color:var(--accent-2);font-family:var(--mono);font-size:12px}.pending,.result{border:1px solid var(--line);border-radius:18px;padding:20px;background:var(--paper)}.pending pre{margin:0;padding:16px;border-radius:12px;background:#1d211e;color:#e9f4dc;overflow-x:auto;font-family:var(--mono);font-size:13px}.pending p{color:var(--muted);line-height:1.5}.result-summary{margin:0 0 18px;color:var(--muted);line-height:1.58}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:10px}.metric{border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--bg)}.metric[data-tone=good]{background:var(--good)}.metric[data-tone=warn]{background:var(--warn)}.metric strong{display:block;font-family:var(--display);font-size:28px}.result-meaning{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.result-meaning>span,.meaning-check span{display:block;color:var(--muted);font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:0;text-transform:uppercase;margin-bottom:7px}.result-meaning>strong{display:block;font-family:var(--display);font-size:26px}.result-meaning>p{margin:6px 0 0;color:var(--muted);line-height:1.55}.meaning-checks{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}.meaning-check{padding-top:12px;border-top:1px solid var(--line)}.meaning-check strong{display:block;color:var(--ink);font-family:var(--display);font-size:22px}.meaning-check[data-state=pass] strong{color:var(--accent)}.meaning-check[data-state=review] strong{color:var(--accent-2)}.meaning-check p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.43}.features-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.features h3{margin:0 0 10px;font-family:var(--display);font-size:20px}.feature-row{display:grid;grid-template-columns:22px minmax(0,1fr) 68px 34px;gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--line);font-size:13px}.feature-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feature-row i{height:7px;border-radius:999px;background:var(--soft);overflow:hidden}.feature-row b{display:block;height:100%;background:var(--accent)}.feature-row em{color:var(--muted);font-family:var(--mono);font-style:normal;text-align:right}.hashes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.hash-line{min-width:0;border-top:1px solid var(--line);padding-top:12px}.hash-line div{margin-bottom:6px}.hash-line code{display:block;overflow-wrap:anywhere}code{font-family:var(--mono);font-size:12px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.actions code{flex:1;min-width:220px;padding:9px 0;color:var(--muted);overflow-x:auto}.metric-explainers{max-width:880px}.footer{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:34px 0 10px}.footer span{color:var(--muted);margin-right:auto}@media(max-width:980px){.app{display:block}.rail{position:static;height:auto;border-right:none;border-bottom:1px solid var(--line);grid-template-columns:1fr;padding:18px 22px}.rail nav{display:flex;gap:14px;overflow-x:auto}.rail-status{grid-template-columns:auto auto;justify-content:start}.article{width:min(100%,880px);padding:44px 22px}h1{font-size:54px}.terms,.method-explainer,.standard-list,.lab-grid,.metric-explainers{grid-template-columns:1fr}.metric-grid,.features-grid,.hashes,.meaning-checks{grid-template-columns:1fr 1fr}}@media(max-width:620px){.rail-status{grid-template-columns:1fr}.rail-status button{width:100%}.article{padding:34px 16px}h1{font-size:42px}.lead{font-size:18px}.reading-section h2,.lab-copy h2{font-size:34px}.terms,.metric-grid,.features-grid,.hashes,.meaning-checks,.method-list{grid-template-columns:1fr}.feature-row{grid-template-columns:22px minmax(0,1fr) 34px}.feature-row i{grid-column:2 / -1;width:100%}.footer{align-items:stretch}.footer a{width:100%}}
