@import"https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,600;0,9..144,800;1,9..144,400&family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;1,6..72,400&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{--paper: #efe6d2;--paper-2: #e7dcc3;--paper-3: #ddd0b2;--ink: #221c15;--ink-soft: #5b4f40;--ink-faint: #8d7f6a;--copper: #b4552d;--copper-dark: #8a3d1d;--copper-light: #d98a5a;--oxblood: #7c2420;--blue: #2b4a6f;--green: #4d6b3a;--enamel: #1c1914;--enamel-2: #2a251d;--brass: #c9a55c;--brass-dark: #8f7134;--cream: #f3e9cf;--grid: rgba(77, 107, 58, .16);--grid-strong: rgba(77, 107, 58, .32);--rule: #3a3026;--f-display: "Fraunces", "Georgia", serif;--f-body: "Newsreader", "Georgia", serif;--f-mono: "IBM Plex Mono", ui-monospace, monospace;--radius: 3px;--shadow: 0 1px 0 rgba(255, 255, 255, .5) inset, 0 10px 30px -18px rgba(40, 25, 10, .45)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;color:var(--ink);font-family:var(--f-body);font-size:18px;line-height:1.55;background-color:var(--paper);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.35  0 0 0 0 0.25  0 0 0 0 0.12  0 0 0 .09 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"),radial-gradient(ellipse at 20% 0%,rgba(255,250,235,.7),transparent 60%),radial-gradient(ellipse at 100% 100%,rgba(150,110,60,.18),transparent 55%);background-attachment:fixed;min-height:100vh}img,svg{display:block;max-width:100%}a{color:inherit}h1,h2,h3,h4{font-family:var(--f-display);font-weight:600;line-height:1.1;margin:0;letter-spacing:-.01em}p{margin:0 0 1em}button,input,select{font:inherit;color:inherit}::selection{background:var(--copper);color:var(--cream)}.masthead{border-bottom:3px double var(--rule);background:linear-gradient(to bottom,rgba(255,250,235,.55),transparent)}.masthead-inner{max-width:1280px;margin:0 auto;padding:14px 22px 10px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none}.brand-mark{width:42px;height:42px;flex:none}.brand-title{font-family:var(--f-display);font-weight:800;font-size:1.35rem;letter-spacing:.02em;line-height:1;font-variation-settings:"opsz" 144}.brand-sub{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);margin-top:4px}.mast-meta{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);text-align:right}.mast-meta a{text-decoration:none;border-bottom:1px solid var(--copper);padding-bottom:1px}.mast-meta a:hover{color:var(--copper)}@media(max-width:640px){.mast-meta .hide-sm{display:none}.brand-title{font-size:1.1rem}}.ticker{border-top:1px solid var(--rule);font-family:var(--f-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;overflow-x:auto;white-space:nowrap;scrollbar-width:none}.ticker::-webkit-scrollbar{display:none}.ticker-inner{max-width:1280px;margin:0 auto;padding:7px 22px;display:flex;gap:6px}.ticker a{text-decoration:none;padding:3px 8px;border:1px solid transparent;border-radius:2px;color:var(--ink-soft)}.ticker a:hover{color:var(--ink);border-color:var(--ink-faint)}.ticker a.active{background:var(--ink);color:var(--cream)}main{max-width:1280px;margin:0 auto;padding:26px 22px 60px}.footer{border-top:3px double var(--rule);margin-top:40px}.footer-inner{max-width:1280px;margin:0 auto;padding:22px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center;padding:10px 0 34px;border-bottom:1px solid var(--rule)}.hero-kicker{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--copper-dark);margin-bottom:14px;display:flex;align-items:center;gap:10px}.hero-kicker:before{content:"";width:34px;height:1px;background:var(--copper)}.hero h1{font-size:clamp(2.6rem,6.4vw,5.2rem);font-weight:800;line-height:.95;letter-spacing:-.025em;font-variation-settings:"opsz" 144}.hero h1 em{font-style:italic;font-weight:400;color:var(--copper)}.hero p.lede{font-size:1.18rem;margin-top:20px;max-width:34em;color:var(--ink-soft)}.hero-fig{position:relative;border:1px solid var(--rule);padding:10px;background:var(--paper-2);box-shadow:var(--shadow);transform:rotate(.6deg)}.hero-fig img,.hero-fig svg{width:100%;height:auto}.hero-fig img{filter:contrast(1.05) sepia(.15);mix-blend-mode:multiply}.hero-fig figcaption{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);padding-top:8px;display:flex;justify-content:space-between}.hero-stats{display:flex;gap:26px;margin-top:26px;flex-wrap:wrap}.hero-stats div{border-left:2px solid var(--copper);padding-left:10px}.hero-stats b{display:block;font-family:var(--f-display);font-size:1.8rem;line-height:1}.hero-stats span{font-family:var(--f-mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft)}@media(max-width:860px){.hero{grid-template-columns:1fr}.hero-fig{transform:none}}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:38px 0 18px;border-bottom:1px solid var(--rule);padding-bottom:8px}.section-head h2{font-size:1.7rem}.section-head span{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:0;border-top:1px solid var(--rule);border-left:1px solid var(--rule)}.cat-card{position:relative;display:flex;flex-direction:column;padding:0;text-decoration:none;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);transition:background .25s;min-height:230px;overflow:hidden}.cat-card:hover{background:#fffaeb99}.cat-fig{height:160px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--rule);background:#faf4e4b8;overflow:hidden}.cat-fig>:first-child{width:100%;height:100%;transition:transform .35s cubic-bezier(.2,.8,.2,1)}.cat-card:hover .cat-fig>:first-child{transform:scale(1.025)}.cat-fig svg{width:100%;height:auto}.cat-fig>svg{height:100%}.cat-fig>div{align-content:center}.cat-body{display:flex;flex-direction:column;gap:8px;padding:16px 18px 18px;flex:1}.cat-foot{margin-top:auto;display:grid;justify-content:end}.cat-tag{font-family:var(--f-mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;border:1px solid var(--ink-faint);padding:2px 6px;border-radius:2px;color:var(--ink-soft);white-space:nowrap}.cat-card h3{font-size:1.28rem}.cat-card p{font-size:.96rem;color:var(--ink-soft);margin:0}.essay{display:grid;grid-template-columns:repeat(2,1fr);gap:30px;margin-top:10px}.essay h3{font-size:1.15rem;margin-bottom:8px}.essay p{font-size:1rem;color:var(--ink-soft)}.essay .drop:first-letter{font-family:var(--f-display);font-size:3.2em;float:left;line-height:.8;padding:6px 8px 0 0;color:var(--copper);font-weight:800}@media(max-width:860px){.essay{grid-template-columns:1fr}}.calc-head{display:grid;grid-template-columns:1fr;gap:6px 22px;align-items:end;padding-bottom:18px;border-bottom:1px solid var(--rule);margin-bottom:22px}.calc-head h1{font-size:clamp(1.7rem,4.2vw,2.9rem);font-weight:800;letter-spacing:-.02em}.calc-head .lede{margin:0;color:var(--ink-soft);font-size:1.06rem;max-width:50em}@media(max-width:600px){.calc-head{grid-template-columns:1fr}}.calc-grid{display:grid;gap:22px;grid-template-columns:minmax(300px,380px) minmax(0,1fr);grid-template-areas:"controls diagram" "controls results" "controls charts";align-items:start}.area-controls{grid-area:controls;position:sticky;top:14px;scrollbar-width:thin}.area-diagram{grid-area:diagram}.area-results{grid-area:results}.area-charts{grid-area:charts;display:grid;gap:22px}@media(max-width:900px){.calc-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"diagram" "results" "controls" "charts"}.area-controls{position:static}}.panel{background:#faf4e4b8;border:1px solid var(--rule);border-radius:var(--radius);padding:18px;position:relative;box-shadow:var(--shadow)}.panel:before,.panel:after{content:"";position:absolute;width:10px;height:10px;border-color:var(--copper);border-style:solid}.panel:before{top:-5px;left:-5px;border-width:1px 0 0 1px}.panel:after{bottom:-5px;right:-5px;border-width:0 1px 1px 0}.panel-title{font-family:var(--f-mono);font-weight:500;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:14px;display:flex;align-items:center;gap:10px}.panel-title:after{content:"";flex:1;height:1px;background:repeating-linear-gradient(to right,var(--ink-faint) 0 3px,transparent 3px 6px)}.fig{margin:0}.fig svg{width:100%;height:auto}.fig figcaption{font-family:var(--f-body);font-style:italic;font-size:.92rem;color:var(--ink-soft);margin-top:10px;border-top:1px solid var(--paper-3);padding-top:8px}.fig figcaption b{font-style:normal;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--copper-dark);margin-right:6px;font-weight:500}.ctl{padding:10px 0 14px;border-bottom:1px dashed var(--paper-3)}.ctl:last-child{border-bottom:0}.ctl-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}.ctl-label{font-size:.98rem;line-height:1.2}.ctl-label .tex{color:var(--copper-dark);margin-left:4px}.ctl-note{display:block;font-size:.78rem;color:var(--ink-faint);font-style:italic;margin-top:2px}.ctl-val{display:inline-flex;align-items:baseline;gap:4px;background:var(--enamel);color:var(--cream);padding:3px 8px;border-radius:2px;box-shadow:inset 0 1px 3px #0009;flex:none}.ctl-val input{width:5.6ch;background:transparent;border:0;font-family:var(--f-mono);font-size:.92rem;color:#f6d9a8;text-align:right;outline:none;padding:0}.ctl-val input:focus{color:#fff}.ctl-val .unit{font-family:var(--f-mono);font-size:.72rem;color:var(--brass)}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:34px;background:transparent;cursor:pointer;touch-action:pan-y;margin:0}input[type=range]:focus{outline:none}input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:repeating-linear-gradient(to right,var(--ink-faint) 0 1px,transparent 1px 10%) 0 0 / 100% 100% no-repeat,linear-gradient(to right,var(--copper) 0 var(--fill, 50%),var(--paper-3) var(--fill, 50%));box-shadow:inset 0 1px 2px #00000059}input[type=range]::-moz-range-track{height:6px;border-radius:3px;background:var(--paper-3);box-shadow:inset 0 1px 2px #00000059}input[type=range]::-moz-range-progress{height:6px;border-radius:3px;background:var(--copper)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:28px;height:28px;margin-top:-11px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#6b4a33,#2d1d12 60%,#1a100a);border:2px solid var(--brass-dark);box-shadow:0 2px 4px #00000073,inset 0 1px 1px #ffffff40}input[type=range]::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#6b4a33,#2d1d12 60%,#1a100a);border:2px solid var(--brass-dark);box-shadow:0 2px 4px #00000073}input[type=range]:focus-visible::-webkit-slider-thumb{outline:2px solid var(--copper);outline-offset:2px}.seg{display:flex;flex-wrap:wrap;overflow:hidden}.seg button{flex:1 1 auto;border:0;background:transparent;padding:8px 10px;font-family:var(--f-mono);font-size:.74rem;letter-spacing:.06em;cursor:pointer;border:1px solid var(--rule);border-radius:4px;min-height:38px;margin:1px}.seg button:hover{background:var(--paper-2)}.seg button.on{background:var(--ink);color:var(--cream)}.btn{display:block;width:100%;border:1px solid var(--copper-dark);border-radius:var(--radius);background:var(--copper);color:var(--cream);padding:10px 12px;font-family:var(--f-mono);font-size:.78rem;letter-spacing:.04em;cursor:pointer;box-shadow:var(--shadow)}.btn:hover{background:var(--copper-dark)}.btn:active{transform:translateY(1px)}.plate{position:relative;border-radius:6px;padding:18px 22px 16px;background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 40%),repeating-linear-gradient(90deg,rgba(255,255,255,.015) 0 2px,transparent 2px 4px),var(--enamel);color:var(--cream);border:3px solid var(--brass-dark);outline:1px solid var(--brass);outline-offset:-8px;box-shadow:0 14px 30px -16px #000000b3,inset 0 0 30px #0009}.plate .screw{position:absolute;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#f0d79a,var(--brass-dark) 70%);box-shadow:0 1px 1px #0009}.plate .screw:after{content:"";position:absolute;left:2px;right:2px;top:5px;height:2px;background:#3c280ab3;transform:rotate(var(--r, 30deg))}.plate .s1{top:6px;left:6px}.plate .s2{top:6px;right:6px;--r: -20deg}.plate .s3{bottom:6px;left:6px;--r: 70deg}.plate .s4{bottom:6px;right:6px;--r: 10deg}.plate-title{text-align:center;font-family:var(--f-display);font-weight:600;letter-spacing:.3em;text-transform:uppercase;font-size:.76rem;color:var(--brass);margin-bottom:12px}.plate-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1px;background:#c9a55c40;border:1px solid rgba(201,165,92,.25)}.plate-note{padding-top:10px}.ro{background:var(--enamel);padding:9px 11px;display:flex;flex-direction:column;gap:2px;min-width:0}.ro-l{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:#b9a988;display:flex;gap:6px;align-items:baseline}.ro-l .tex{color:var(--brass);letter-spacing:0;text-transform:none;font-size:1.1em}.ro-v{font-family:var(--f-mono);font-size:1.12rem;font-weight:500;color:var(--cream);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ro.accent .ro-v{color:#ffb27a;font-size:1.3rem}.ro.warn .ro-v{color:#ff7a6a}.ro.good .ro-v{color:#b7e08a}.chart-panel h3{font-family:var(--f-mono);font-weight:500;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:10px}.plot{width:100%;height:auto;touch-action:pan-y;user-select:none;-webkit-user-select:none}.plot text{font-family:var(--f-mono);font-size:11px;fill:var(--ink-soft)}.plot .ax-label{font-size:11.5px;fill:var(--ink);letter-spacing:.04em}.plot .grid-major{stroke:var(--grid-strong);stroke-width:1}.plot .grid-minor{stroke:var(--grid);stroke-width:.7}.plot .frame{fill:#fffcf08c;stroke:var(--rule);stroke-width:1.2}.legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:8px;font-family:var(--f-mono);font-size:.72rem;color:var(--ink-soft)}.legend i{display:inline-block;width:22px;height:0;border-top:2.5px solid;vertical-align:middle;margin-right:6px}.legend i.dash{border-top-style:dashed}.explain{margin-top:44px;border-top:3px double var(--rule);padding-top:26px;display:grid;grid-template-columns:220px minmax(0,1fr);gap:30px}.explain-side h2{font-size:1.9rem;font-style:italic;font-weight:400}.explain-side p{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-top:10px}.explain-body{max-width:46em;columns:1}.explain-body h3{font-size:1.25rem;margin:26px 0 10px}.explain-body h3:first-child{margin-top:0}.explain-body p,.explain-body li{font-size:1.04rem}.explain-body ul,.explain-body ol{padding-left:1.2em;margin:0 0 1em}.explain-body li{margin-bottom:.4em}.explain-body .tex-block{margin:14px 0 18px;padding:14px 16px;background:#fffaeb99;border-left:3px solid var(--copper);overflow-x:auto;overflow-y:hidden}.explain-body .aside{border:1px solid var(--rule);padding:12px 16px;font-size:.96rem;background:var(--paper-2);margin:16px 0}.explain-body .aside b{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--oxblood);display:block;margin-bottom:4px;font-weight:500}@media(max-width:800px){.explain{grid-template-columns:1fr;gap:12px}}.pager{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:40px;border:1px solid var(--rule)}.pager a{text-decoration:none;padding:16px 18px;display:flex;flex-direction:column;gap:4px}.pager a+a{border-left:1px solid var(--rule);text-align:right}.pager a:hover{background:#fffaeb99}.pager small{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--copper-dark)}.pager span{font-family:var(--f-display);font-size:1.08rem}.tex .katex{font-size:1.05em}.tex-block .katex-display{margin:0}.table-wrap{overflow-x:auto}table.ref{width:100%;border-collapse:collapse;font-family:var(--f-mono);font-size:.8rem}table.ref th{text-align:right;font-weight:500;font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);padding:6px 8px;border-bottom:2px solid var(--rule)}table.ref td{text-align:right;padding:5px 8px;border-bottom:1px solid var(--paper-3)}table.ref th:first-child,table.ref td:first-child{text-align:left}table.ref tr.hl td{background:var(--ink);color:var(--cream)}table.ref tr{cursor:pointer}table.ref tr:hover td{background:var(--paper-2)}table.ref tr.hl:hover td{background:var(--ink)}.svg-ink{stroke:var(--ink)}.anim-needle{transition:transform .45s cubic-bezier(.3,1.4,.5,1)}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.reveal{animation:rise .7s cubic-bezier(.2,.8,.2,1) both}.reveal-1{animation-delay:.05s}.reveal-2{animation-delay:.15s}.reveal-3{animation-delay:.25s}.reveal-4{animation-delay:.35s}@media(prefers-reduced-motion:reduce){.reveal{animation:none}.anim-needle{transition:none}}@keyframes flow{to{stroke-dashoffset:-32}}.flow{animation:flow 2s linear infinite}@media(prefers-reduced-motion:reduce){.flow{animation:none}}
