:root{--paper:#f7f6f2;--ink:#20211f;--muted:#666860;--line:#d4d5cc;--soft:#eceee6;--blue:#255bd5;--orange:#d1531f;--green:#1f8f5f;--warn:#bf4b26;--grid:#e3e4dc;--serif:Georgia,'Times New Roman',serif;--sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color-scheme:light}
@media(prefers-color-scheme:dark){:root{--paper:#1b1c1a;--ink:#ecebe5;--muted:#a3a59b;--line:#3a3b37;--soft:#262723;--blue:#4f7fe8;--orange:#d4703f;--green:#2f9f79;--warn:#e07a48;--grid:#2e2f2b;color-scheme:dark}}
*{box-sizing:border-box}html{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans);min-height:100%}
a{color:var(--blue);text-underline-offset:3px}button,input{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:transparent;padding:.42rem .8rem;color:var(--ink);border-radius:3px}button:hover,button:focus-visible{background:var(--soft);border-color:var(--ink)}button.primary{background:var(--ink);color:var(--paper)}button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
kbd{font:12px ui-monospace,Menlo,monospace;border:1px solid var(--line);padding:1px 5px;border-radius:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
header{position:sticky;top:0;z-index:10;background:var(--paper);border-bottom:1px solid var(--line);height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 3vw;gap:20px}
header .brand{font-size:13px;font-weight:750;letter-spacing:.04em;color:var(--ink);text-decoration:none}header .brand span{color:var(--muted);font-weight:500}
header nav{display:flex;gap:16px;align-items:center;font-size:13px}header nav a{text-decoration:none;color:var(--muted)}
#progress{position:fixed;left:0;top:58px;height:2px;background:var(--blue);z-index:12;width:0;transition:width .25s}
#toc{position:fixed;top:60px;right:0;z-index:11;background:var(--paper);border:1px solid var(--line);border-top:0;max-height:calc(100vh - 60px);overflow:auto;min-width:260px;padding:10px 0}#toc ol{margin:0;padding:0;list-style:none}#toc a{display:block;padding:8px 20px;text-decoration:none;color:var(--muted);font-size:13px}#toc a.active,#toc a:hover{color:var(--blue);background:var(--soft)}#toc a span{display:inline-block;min-width:28px;color:var(--muted);font-variant-numeric:tabular-nums}
main{max-width:1320px;margin:auto}
.slide{display:none;padding:48px clamp(22px,5vw,80px) 96px;min-height:calc(100vh - 60px)}.slide.current{display:block;animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin:0 0 22px}
h1{font:clamp(56px,8vw,120px)/.95 var(--serif);letter-spacing:-.05em;margin:0 0 30px;max-width:900px}
h2{font:clamp(28px,3.3vw,48px)/1.1 var(--serif);letter-spacing:-.03em;margin:0 0 26px;max-width:920px}
p{max-width:780px;margin:0 0 16px}.lead{font-size:clamp(18px,1.8vw,24px);line-height:1.5;max-width:860px}
.muted{color:var(--muted)}.small,figcaption,.hint{font-size:13px;color:var(--muted);line-height:1.5}.hint{margin-top:34px}
.result{color:var(--green);font-weight:650}.caution{color:var(--warn)}
.byline{display:flex;gap:40px;flex-wrap:wrap;margin:26px 0 0}.byline strong{display:block;font-size:17px}.byline span{font-size:13px;color:var(--muted)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:26px 0}.stats.two{grid-template-columns:1fr 1fr}.stat strong{display:block;font:40px/1.1 var(--serif);letter-spacing:-.03em}.stat span{display:block;font-size:12px;color:var(--muted);margin-top:8px;max-width:220px}
.knobs{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:8px}.knobs a{display:block;text-decoration:none;color:var(--ink);border:1px solid var(--line);padding:18px;border-radius:4px;font-size:13px;line-height:1.5;color:var(--muted)}.knobs a:hover{border-color:var(--ink)}.knobs a span{display:block;color:var(--blue);font-size:11px;letter-spacing:.1em;margin-bottom:8px}.knobs a strong{display:block;color:var(--ink);font-size:15px;margin-bottom:4px}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:start}.wide-left{grid-template-columns:1.35fr 1fr}
.figure{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;margin:0}.figure svg{width:100%;height:auto;display:block}
.row{display:flex;gap:14px;align-items:center;margin:12px 0 6px;flex-wrap:wrap}
.controls{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:end;margin:18px 0 10px}.control{display:grid;gap:8px;min-width:150px;flex:1}.control label{font-size:12px;color:var(--muted);display:flex;justify-content:space-between;gap:16px}.control output{font-variant-numeric:tabular-nums;color:var(--ink)}
input[type=range]{width:100%;accent-color:var(--blue);margin:0}
.control.seg-control{flex:0 0 auto;min-width:0}.seg{display:flex}.seg button{border-radius:0;flex:0 0 auto;white-space:nowrap;padding:.42rem .7rem}.seg button:first-child{border-radius:3px 0 0 3px}.seg button:last-child{border-radius:0 3px 3px 0}
.formula{font:clamp(17px,1.8vw,22px)/1.55 var(--serif);padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:18px 0;overflow:auto;font-variant-numeric:tabular-nums}.formula sub,.formula sup{font-size:.7em}
.checks{counter-reset:check;padding:0;list-style:none;margin:0}.checks li{counter-increment:check;border-top:1px solid var(--line);padding:16px 0 16px 40px;position:relative;font-size:15px;max-width:820px}.checks li:before{content:counter(check,decimal-leading-zero);position:absolute;left:0;color:var(--blue);font-size:13px;top:19px}.checks strong{display:block;margin-bottom:5px}.checks.big li{font-size:18px;padding:22px 0 22px 52px;max-width:960px}.checks.big li:before{top:26px;font-size:15px}
.bullets{padding-left:20px;margin:0;max-width:820px}.bullets li{margin-bottom:12px;font-size:15px;line-height:1.55}
.table-wrap{overflow:auto;margin:0 0 16px}table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.5}th{text-align:left;font-weight:650;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:12px 12px}td{border-bottom:1px solid var(--line);padding:12px;vertical-align:top}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}td.good{color:var(--green)}td.bad{color:var(--warn)}table.compact td{padding:9px 10px}
.verdict{border-left:3px solid var(--blue);padding-left:20px}.verdict.good{border-color:var(--green)}.verdict.warn{border-color:var(--warn)}.tag{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:12px}.tag.measured{color:var(--green)}.tag.critique{color:var(--warn)}
.linkrow{display:flex;gap:24px;flex-wrap:wrap;font-size:14px;margin-top:36px}
.deck-controls{position:fixed;bottom:0;left:0;right:0;height:58px;background:var(--paper);border-top:1px solid var(--line);z-index:15;display:flex;align-items:center;justify-content:center;gap:24px}.deck-controls span{font-size:12px;min-width:64px;text-align:center;font-variant-numeric:tabular-nums;color:var(--muted)}
#tooltip{position:fixed;z-index:20;pointer-events:none;background:var(--ink);color:var(--paper);font-size:12px;line-height:1.4;padding:6px 9px;border-radius:3px;max-width:240px;box-shadow:0 2px 10px #0003}
svg text{font-family:var(--sans)}.axis{stroke:var(--line)}.gridline{stroke:var(--grid)}.lbl{font-size:11px;fill:var(--muted)}.val{font-size:12px;fill:var(--ink)}.ttl{font-size:12px;fill:var(--ink);font-weight:600}
.bar,.cell{cursor:default}.bar:hover,.cell:hover{stroke:var(--ink);stroke-width:1.5}
@media(max-width:860px){.split,.wide-left{grid-template-columns:1fr;gap:20px}.stats{grid-template-columns:1fr 1fr;gap:14px}.stat strong{font-size:30px}.knobs{grid-template-columns:1fr 1fr}header nav a{display:none}.slide{padding:30px 18px 90px;min-height:0}h1{font-size:60px}h2{font-size:30px}body{font-size:15px}.checks.big li{font-size:16px;padding-left:40px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media print{header,.deck-controls,.controls,#toc,#progress,#tooltip{display:none!important}.slide{display:block!important;min-height:0;padding:24px 0;break-after:page}body{background:white;color:black;font-size:11pt}a{color:inherit}}
