:root{--bg:#f5f4f1;--surface:#fff;--sunk:#efede9;--line:#e4e1dc;--line-strong:#cfcac2;--line-hover:#b9b3aa;--line-input:#928c83;--ink:#1c1a17;--ink-2:#4a4641;--muted:#6b665f;--accent:#2b59c3;--accent-ink:#1f469e;--accent-soft:#e9eef9;--accent-line:#d5def3;--focus-ring:#2b59c338;--selection:#2b59c32e;--warn:#9a4a12;--warn-soft:#f8ebe1;--warn-line:#efd5c4;--danger:#9b2c12;--danger-soft:#f9e0d8;--ok:#2c6a3d;--ok-soft:#e4f0e7;--panel:#1d1b18;--panel-2:#262320;--panel-3:#2e2a26;--panel-line:#3a3631;--panel-line-hover:#4b4640;--panel-ink:#f4f2ee;--panel-ink-2:#b8b2a9;--panel-ink-3:#9a948b;--panel-accent:#9db6f3;--panel-accent-hover:#c3d3fb;--panel-warn:#f3c27a;--panel-ok:#a6dcb4;--panel-danger:#f4a58c;--wood:#b98a5e;--wood-edge:#7a5534;--stage:#211e1b;--stage-edge:#8f877b;--font-body:var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:var(--font-geist-mono), ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--text-tag:.6875rem;--text-kicker:.75rem;--text-hint:.8125rem;--text-small:.875rem;--text-ui:.9375rem;--text-body:1rem;--text-lead:1.0625rem;--text-h3:1.125rem;--text-h4:1.25rem;--text-h2:clamp(1.45rem, 1.2rem + .9vw, 1.85rem);--text-h1:clamp(2.1rem, 1.4rem + 2.6vw, 3.25rem);--text-display:clamp(2.5rem, 1.4rem + 3.8vw, 4.25rem);--text-result:clamp(2.75rem, 2rem + 2.4vw, 4rem);--leading-tight:1.15;--leading-snug:1.45;--leading-body:1.6;--leading-prose:1.7;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-14:56px;--gutter:clamp(16px, 4vw, 40px);--tap:44px;--radius-xs:6px;--radius-sm:8px;--radius-md:10px;--radius:12px;--radius-lg:18px;--radius-pill:999px;--shadow-raised:0 1px 2px #1c1a171f, 0 0 0 1px #1c1a170a;--shadow-card:0 1px 0 #1c1a1708, 0 18px 40px -24px #1c1a1738;--shadow-hover:0 12px 24px -16px #1c1a1740;--shadow-float:0 12px 32px -12px #1c1a178c;--ease:cubic-bezier(.16, 1, .3, 1);--dur-fast:.15s;--dur-base:.25s;--dur-slow:.45s;--check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='8' r='6.7'/%3E%3Cpath d='M5.2 8.3l1.9 1.9 3.7-4.2'/%3E%3C/svg%3E");--chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%236b665f' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--wrap:1200px;--measure:68ch;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:var(--space-4)}body{background:var(--bg);min-height:100dvh;color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:var(--leading-body);-webkit-font-smoothing:antialiased;flex-direction:column;margin:0;display:flex}::selection{background:var(--selection)}p,li,dd,figcaption{text-wrap:pretty}main{flex:1 0 auto}img,svg{max-width:100%}a{color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--accent-ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.skip{position:absolute;left:-9999px}.skip:focus{left:var(--space-4);top:var(--space-3);z-index:20;min-height:var(--tap);padding:0 var(--space-4);border-radius:var(--radius-pill);background:var(--surface);box-shadow:var(--shadow-hover);align-items:center;font-weight:500;display:inline-flex}.wrap{width:100%;max-width:var(--wrap);padding-inline:var(--gutter);margin-inline:auto}h1,h2,h3{color:var(--ink);text-wrap:balance;font-weight:600}h1{font-size:var(--text-h1);letter-spacing:-.035em;margin:0 0 var(--space-3);line-height:1.04}h2{font-size:var(--text-h2);line-height:var(--leading-tight);letter-spacing:-.025em;margin:0 0 var(--space-3)}h3{font-size:var(--text-h3);letter-spacing:-.012em;margin:var(--space-6) 0 var(--space-2);line-height:1.3}.fieldset>legend,.index-group h3,.result-sub,.footer-head,.tool-cat{font-family:var(--mono);font-size:var(--text-kicker);letter-spacing:.08em;text-transform:uppercase;font-weight:500;line-height:1.2}.site-header{border-bottom:1px solid var(--line)}.header-inner{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-6);padding-block:var(--space-3);flex-wrap:wrap;display:flex}.brand{align-items:center;gap:var(--space-2);color:var(--ink);text-decoration:none;display:inline-flex}.brand-region{border:1px solid var(--line-strong);border-radius:var(--radius-pill);font-family:var(--mono);font-size:var(--text-kicker);letter-spacing:.08em;color:var(--ink-2);padding:2px 6px;font-weight:500}.logo{font-size:var(--text-h3);letter-spacing:-.02em;color:var(--ink);align-items:center;gap:9px;font-weight:600;display:inline-flex}.logo svg{color:var(--accent)}.logo b{color:var(--accent);font-weight:600}.site-header nav{margin-left:auto}.site-header nav ul{flex-wrap:wrap;gap:2px;margin:0 -10px 0 0;padding:0;list-style:none;display:flex}.site-header nav a{border-radius:var(--radius-pill);min-height:36px;color:var(--ink-2);font-size:var(--text-ui);transition:background-color var(--dur-fast), color var(--dur-fast);align-items:center;padding:0 10px;font-weight:500;text-decoration:none;display:flex}.site-header nav a:hover{background:var(--sunk);color:var(--ink)}.lang-switch{min-height:34px;padding:0 var(--space-3);border:1px solid var(--line);border-radius:var(--radius-pill);color:var(--ink-2);font-size:var(--text-small);transition:background-color var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast);align-items:center;font-weight:500;text-decoration:none;display:inline-flex}.lang-switch:hover{border-color:var(--line-strong);background:var(--sunk);color:var(--ink)}html:not([data-lang=es]) .nf-es,html[data-lang=es] .nf-en{display:none}.site-footer{background:var(--panel);color:var(--panel-ink-2);font-size:var(--text-ui);margin-top:clamp(72px,9vw,112px)}.site-footer a{color:var(--panel-ink);text-decoration:none}.site-footer a:hover{text-decoration:underline}.site-footer :focus-visible{outline-color:var(--panel-accent)}.footer-grid{gap:var(--space-8);padding-block:var(--space-12) var(--space-8);grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));display:grid}.footer-grid ul{margin:0;padding:0;list-style:none;display:grid}.footer-grid li a{padding-block:var(--space-1);display:inline-block}.footer-brand{font-size:var(--text-h3);letter-spacing:-.02em;color:var(--panel-ink);margin:0 0 var(--space-3);font-weight:600}.footer-head{color:var(--panel-ink-2);margin:0 0 var(--space-4)}.site-footer .footer-head a{color:inherit}.footer-note{margin:0 0 var(--space-3);max-width:52ch}.footer-base{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-6);padding-block:var(--space-5) var(--space-8);background:linear-gradient(var(--panel-line), var(--panel-line)) no-repeat top center / calc(100% - 2 * var(--gutter)) 1px;color:var(--panel-ink-3);font-size:var(--text-small);flex-wrap:wrap;display:flex}.footer-regions{align-items:center;gap:0 var(--space-4);flex-wrap:wrap;display:flex}.site-footer .footer-regions a{padding-block:var(--space-1);color:var(--panel-ink-3);display:inline-block}.site-footer .footer-regions a[aria-current]{color:var(--panel-ink)}.page{padding-block:var(--space-5) 0}.crumbs ol{gap:0 var(--space-2);margin:0 0 var(--space-4);font-size:var(--text-small);color:var(--muted);flex-wrap:wrap;padding:0;list-style:none;display:flex}.crumbs li+li:before{content:"/";margin-right:var(--space-2);color:var(--line-strong)}.crumbs a{padding-block:var(--space-1);color:var(--muted);text-decoration:none;display:inline-block}.crumbs [aria-current]{padding-block:var(--space-1);display:inline-block}.crumbs a:hover{color:var(--ink);text-decoration:underline}.page-head{max-width:780px;margin-bottom:var(--space-6)}.lede{font-size:var(--text-lead);line-height:var(--leading-body);color:var(--ink-2);max-width:var(--measure)}.lede p{margin:0 0 var(--space-2)}.answer{color:var(--ink);font-weight:500}.home-intro .answer{max-width:46ch;margin:0 0 var(--space-3);font-size:var(--text-lead);line-height:var(--leading-body)}.updated{margin:var(--space-2) 0 0;font-family:var(--mono);font-size:var(--text-hint);letter-spacing:-.01em;color:var(--muted)}.updated:before{content:"";vertical-align:-2px;background-color:var(--ok);width:13px;height:13px;-webkit-mask:var(--check) no-repeat center / contain;-webkit-mask:var(--check) no-repeat center / contain;mask:var(--check) no-repeat center / contain;margin-right:6px;display:inline-block}.calc-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-2);box-shadow:var(--shadow-card)}.calc{gap:var(--space-2);grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);display:grid}.calc-inputs{gap:var(--space-5);min-width:0;padding:var(--space-5) var(--space-5) var(--space-6);align-content:start;display:grid}.calc-rail{display:none}.calc-results{gap:var(--space-4);min-width:0;padding:var(--space-5) var(--space-5) var(--space-6);border-radius:var(--radius-md);background:var(--panel);color:var(--panel-ink);scroll-margin-top:var(--space-3);flex-direction:column;display:flex}.calc-results>*{order:2}.calc-results>.result-primary,.calc-results>.result-empty{order:0}.calc-results>.scene,.calc-results>.drawing{order:1}.calc-results a{color:var(--panel-accent)}.calc-results a:hover{color:var(--panel-accent-hover)}.calc-results :focus-visible{outline-color:var(--panel-accent)}.field{align-content:start;gap:6px;min-width:0;display:grid}.field label,.label-like{font-size:var(--text-small);color:var(--ink-2);font-weight:500;line-height:1.35}.field-row{border:1px solid var(--line-input);border-radius:var(--radius-sm);background:var(--surface);min-height:46px;transition:border-color var(--dur-fast), box-shadow var(--dur-fast);align-items:stretch;display:flex;overflow:hidden}.field-row:hover{border-color:var(--muted)}.field-row:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 0 4px var(--focus-ring)}.field-row input{min-width:0;padding:0 var(--space-3);font-family:var(--font-body);font-size:var(--text-lead);letter-spacing:-.005em;font-variant-numeric:tabular-nums;color:var(--ink);background:0 0;border:0;flex:1;font-weight:500}.field-row input:focus{outline:none}.field-row input[aria-invalid=true]{background:var(--warn-soft)}.field-row:has(input[aria-invalid=true]){border-color:var(--warn);background:var(--warn-soft)}.field-row select,.suffix{border:0;border-left:1px solid var(--line);padding:0 var(--space-3);background-color:var(--sunk);font-family:var(--font-body);font-size:var(--text-small);color:var(--ink-2);flex:none;align-items:center;font-weight:500;display:flex}.field-row select{appearance:none;background-image:var(--chevron);cursor:pointer;transition:background-color var(--dur-fast), color var(--dur-fast);background-position:right 10px center;background-repeat:no-repeat;background-size:10px 6px;padding-right:28px}.field-row select:hover{color:var(--ink)}.field-row select:focus-visible{background-color:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent);color:var(--accent-ink);outline:none}.select-full{width:100%;min-height:46px;padding:0 34px 0 var(--space-3);border:1px solid var(--line-input);border-radius:var(--radius-sm);appearance:none;background:var(--surface) var(--chevron) no-repeat right 12px center / 10px 6px;font-family:var(--font-body);font-size:var(--text-ui);color:var(--ink);cursor:pointer;transition:border-color var(--dur-fast), box-shadow var(--dur-fast);font-weight:500}.select-full:hover{border-color:var(--muted)}.select-full:focus-visible{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 0 4px var(--focus-ring);outline:none}.hint{font-size:var(--text-hint);line-height:var(--leading-snug);color:var(--muted);margin:0}.field-error{font-size:var(--text-hint);color:var(--warn);margin:0;font-weight:500;line-height:1.4}.field-grid{gap:var(--space-4) var(--space-3);grid-template-columns:repeat(auto-fit,minmax(min(100%,136px),1fr));align-items:start;display:grid}.fieldset{gap:var(--space-4);min-width:0;padding:var(--space-5) 0 0;border:0;border-top:1px solid var(--line);margin:0;display:grid}.fieldset>legend{float:left;width:100%;color:var(--muted);margin:0 0 2px;padding:0}.segmented{border-radius:var(--radius-md);background:var(--sunk);gap:2px;width:fit-content;padding:3px;display:inline-flex}.segmented button{border-radius:var(--radius-sm);min-height:36px;font:inherit;font-size:var(--text-small);color:var(--ink-2);cursor:pointer;transition:background-color var(--dur-fast), color var(--dur-fast), transform var(--dur-fast) var(--ease);background:0 0;border:0;justify-content:center;align-items:center;padding:0 14px;font-weight:500;display:inline-flex}.segmented button:hover{color:var(--ink)}.segmented button:active{transform:scale(.98)}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-raised)}.chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.chips button{border:1px solid var(--line-strong);border-radius:var(--radius-pill);min-height:32px;padding:0 var(--space-3);background:var(--surface);font:inherit;font-size:var(--text-small);color:var(--ink-2);cursor:pointer;transition:border-color var(--dur-fast), background-color var(--dur-fast), color var(--dur-fast), transform var(--dur-fast) var(--ease);align-items:center;font-weight:500;line-height:1.3;display:inline-flex}.chips button:hover{border-color:var(--line-hover);color:var(--ink)}.chips button:active{transform:scale(.97)}.chips button[aria-pressed=true]{border-color:var(--panel);background:var(--panel);color:var(--panel-ink)}.linklike{font:inherit;color:var(--accent);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.seg{border:0;min-width:0;margin:0;padding:0}.seg legend{margin-bottom:6px;padding:0}.seg-row{border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--sunk);padding:3px;display:flex}.seg-option{flex:1 1 0;min-width:0;position:relative}.seg-option input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.seg-option span{border-radius:var(--radius-xs);min-height:38px;font-size:var(--text-ui);color:var(--ink-2);text-align:center;transition:background-color var(--dur-fast), color var(--dur-fast), box-shadow var(--dur-fast);justify-content:center;align-items:center;padding:0 10px;font-weight:500;display:flex}.seg-option input:hover+span{color:var(--ink)}.seg-option input:checked+span{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-raised)}.seg-option input:focus-visible+span{outline:2px solid var(--accent);outline-offset:1px}.result-empty{padding:var(--space-1) 0;font-size:var(--text-ui);color:var(--panel-ink-2);line-height:1.5}.result-primary{gap:6px;display:grid}.result-number{font-size:var(--text-result);letter-spacing:-.045em;font-variant-numeric:tabular-nums;color:var(--panel-ink);flex-wrap:wrap;align-items:baseline;gap:0 10px;font-weight:600;line-height:1;display:flex}.result-number .num{animation:num-in var(--dur-slow) var(--ease);display:inline-block}.result-unit{font-family:var(--font-body);font-size:var(--text-body);letter-spacing:-.01em;color:var(--panel-ink-2);font-weight:500}.result-caption{font-size:var(--text-small);color:var(--panel-ink-2);margin:0;line-height:1.5}@keyframes num-in{0%{opacity:.25;transform:translateY(.18em)}to{opacity:1;transform:none}}.result-rows{border-top:1px solid var(--panel-line);margin:0;display:grid}.result-rows>div{justify-content:space-between;align-items:baseline;gap:2px var(--space-4);border-bottom:1px solid var(--panel-line);flex-wrap:wrap;padding:10px 0;display:flex}.result-rows dt{font-size:var(--text-ui);color:var(--panel-ink-2)}.result-rows dd{text-align:right;font-size:var(--text-ui);letter-spacing:-.005em;font-variant-numeric:tabular-nums;color:var(--panel-ink);margin:0 0 0 auto;font-weight:600}.result-sub{color:var(--panel-ink-2);margin:6px 0 -6px}.result-note{padding:10px var(--space-3);border:1px solid var(--panel-line);border-radius:var(--radius-sm);background:var(--panel-2);font-size:var(--text-small);color:var(--panel-ink-2);margin:0;line-height:1.5}.result-note.warn{color:var(--panel-warn);background:#f3c27a14;border-color:#f3c27a4d}.risk{border-radius:var(--radius-pill);font-family:var(--mono);font-size:var(--text-kicker);letter-spacing:.06em;text-transform:uppercase;padding:6px 10px;font-weight:600;line-height:1;display:inline-block}.risk.low{color:var(--panel-ok);background:#7cc49124}.risk.moderate{color:var(--panel-warn);background:#f3c27a24}.risk.high{color:var(--panel-danger);background:#f08c6e29}.actions{gap:var(--space-2);flex-wrap:wrap;margin-top:2px;display:flex}.actions button{border:1px solid var(--panel-line);border-radius:var(--radius-sm);background:var(--panel-2);min-height:38px;font:inherit;font-size:var(--text-small);color:var(--panel-ink);cursor:pointer;transition:background-color var(--dur-fast), border-color var(--dur-fast), transform var(--dur-fast) var(--ease);padding:0 14px;font-weight:500}.actions button:hover{border-color:var(--panel-line-hover);background:var(--panel-3)}.actions button:active{transform:scale(.98)}.actions button.quiet{color:var(--panel-ink-2);text-underline-offset:3px;background:0 0;border-color:#0000;text-decoration:underline}.actions button.quiet:hover{color:var(--panel-ink)}.scene{gap:var(--space-2);margin:0;display:grid}.scene-frame{aspect-ratio:16/10;border-radius:var(--radius-md);background:var(--stage);position:relative;overflow:hidden}.scene-frame:after{content:"";z-index:1;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 1px var(--panel-line);background:radial-gradient(120% 95% at 50% 42%,#0000 58%,#211e1be6 100%);position:absolute;inset:0}.scene-stage{touch-action:pan-y;position:absolute;inset:0}.scene[data-status=ready] .scene-stage{cursor:grab}.scene-canvas[data-drag]{cursor:grabbing}.scene-canvas{opacity:0;width:100%;height:100%;transition:opacity .6s var(--ease);display:block;position:absolute;inset:0}.scene[data-status=ready] .scene-canvas{opacity:1}.scene-overlay{z-index:2;pointer-events:none;position:absolute;inset:0;overflow:hidden}.scene-tag{padding:var(--space-1) 7px;border-radius:var(--radius-xs);font-family:var(--mono);font-size:var(--text-tag);white-space:nowrap;color:var(--panel-ink);will-change:transform;background:#1d1b18d6;border:1px solid #f4f2ee29;font-weight:500;line-height:1;transition:opacity .3s;position:absolute;top:0;left:0}.scene-placeholder{background-image:linear-gradient(#f4f2ee0f 1px,#0000 1px),linear-gradient(90deg,#f4f2ee0f 1px,#0000 1px);background-position:50%;background-size:28px 28px;place-items:center;display:grid;position:absolute;inset:0}.scene-sketch{fill:#9db6f30d;width:min(46%,240px);height:auto;stroke:var(--panel-accent);stroke-width:1.25px;stroke-linejoin:round;opacity:.4}.scene-sketch .hidden-edge{fill:none;stroke-dasharray:4 4;opacity:.6}.scene[data-status=loading] .scene-placeholder{animation:1.8s ease-in-out infinite pulse}.scene[data-status=failed] .scene-placeholder{opacity:.5}@keyframes pulse{0%,to{opacity:.45}50%{opacity:1}}.scene-caption{justify-content:space-between;gap:var(--space-3);font-size:var(--text-hint);color:var(--panel-ink-2);line-height:1.45;display:flex}.scene-hint{font-family:var(--mono);font-size:var(--text-kicker);color:var(--panel-ink-3);flex:none}.drawing{gap:var(--space-2);margin:0;display:grid}.drawing-frame{padding-top:var(--space-6);border-radius:var(--radius-md);background:var(--stage);box-shadow:inset 0 0 0 1px var(--panel-line);position:relative;overflow:hidden}.drawing-frame svg{width:100%;height:auto;display:block}.d-ground{fill:var(--panel-3)}.d-ground-edge{fill:none;stroke:var(--stage-edge);stroke-width:2px}.d-panel polygon{fill:#9db6f324;stroke:var(--panel-accent);stroke-width:1.5px;stroke-linejoin:round}.d-panel line{stroke:var(--panel-accent);stroke-width:1px;opacity:.45}.d-post{fill:var(--wood);stroke:var(--wood-edge);stroke-width:1px}.d-line{fill:none;stroke:var(--panel-accent);stroke-width:1.5px;stroke-linejoin:round}.d-fill{fill:#9db6f324;stroke:var(--panel-accent);stroke-width:1.5px;stroke-linejoin:round}.d-wood{fill:var(--wood);stroke:var(--wood-edge);stroke-width:1px}.d-dim{fill:none;stroke:var(--panel-ink-2);stroke-width:1px;stroke-dasharray:3 3}.d-house{fill:#c4bdb273}.d-deck{fill:#b98a5e1f;stroke:var(--wood-edge);stroke-width:1.5px}.d-share{fill:#9db6f338;stroke:var(--panel-accent);stroke-width:1.5px;stroke-dasharray:5 3}.d-joist{fill:var(--wood);opacity:.85}.d-beam{fill:var(--wood-edge)}.d-footing{fill:#c4bdb24d;stroke:var(--panel-ink-2);stroke-width:1px;stroke-dasharray:3 2}.d-slab{fill:#c4bdb21a;stroke:var(--panel-ink-2);stroke-width:1.5px}.d-sheet{fill:#9db6f314;stroke:var(--panel-accent);stroke-width:1.5px}.d-wire{fill:none;stroke:#9db6f366;stroke-width:.75px}.d-lap{fill:#f3c27a59}.d-fastener{fill:var(--panel-ink);stroke:var(--panel);stroke-width:1px}.drawing-labels{pointer-events:none;position:absolute;inset:24px 0 0}.drawing-tag{border-radius:var(--radius-xs);font-family:var(--mono);font-size:var(--text-tag);white-space:nowrap;color:var(--panel-ink);background:#1d1b18db;border:1px solid #f4f2ee29;padding:3px 6px;font-weight:500;line-height:1;position:absolute}.drawing-caption{font-size:var(--text-hint);color:var(--panel-ink-2);line-height:1.45}.home-head{align-items:end;gap:var(--space-3) var(--space-12);padding-block:clamp(28px, 5vw, 56px) var(--space-6);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.home-head h1{max-width:11ch;font-size:var(--text-display);letter-spacing:-.045em;margin:0;line-height:.98}.home-intro .lede{max-width:46ch;margin:0}.calc-tabs{gap:var(--space-1);padding:0 0 var(--space-2);scrollbar-width:none;display:flex;overflow-x:auto}.calc-tabs::-webkit-scrollbar{display:none}.calc-tab{align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-4) 0 var(--space-3);border-radius:var(--radius-md);font:inherit;font-size:var(--text-ui);color:var(--ink-2);cursor:pointer;transition:background-color var(--dur-fast), color var(--dur-fast), transform var(--dur-fast) var(--ease);background:0 0;border:0;flex:none;font-weight:500;display:inline-flex}.calc-tab svg{color:var(--muted);transition:color var(--dur-fast);flex:none}.calc-tab:hover{background:var(--sunk);color:var(--ink)}.calc-tab:active{transform:scale(.98)}.calc-tab[aria-selected=true]{background:var(--panel);color:var(--panel-ink)}.calc-tab[aria-selected=true] svg{color:var(--panel-accent)}.calc-panel.is-new{animation:panel-in var(--dur-slow) var(--ease)}@keyframes panel-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.calc-foot{padding:var(--space-3) var(--space-3) var(--space-1);font-size:var(--text-small);color:var(--muted);margin:0}.home-section{gap:var(--space-5) var(--space-14);grid-template-columns:minmax(0,1fr) minmax(0,2.2fr);margin-top:clamp(64px,8vw,104px);display:grid}.home-section-head h2{margin:0 0 var(--space-2)}.home-section-head p{max-width:34ch;color:var(--muted);margin:0}.home-section-head .home-aside{margin-top:var(--space-3);font-size:var(--text-ui)}.index-groups{gap:var(--space-10) var(--space-8);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.index-group h3{margin:0 0 var(--space-3);color:var(--muted)}.index-group ul,.guide-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.index-link{gap:2px var(--space-3);padding:var(--space-3) 2px;border-bottom:1px solid var(--line);color:var(--ink);grid-template-columns:minmax(0,1fr) auto;text-decoration:none;display:grid}.index-link:after{content:"→";color:var(--muted);transition:transform var(--dur-base) var(--ease), color var(--dur-fast);grid-area:1/2/span 2;align-self:center}@media (hover:hover){.index-link:hover .index-name{color:var(--accent)}.index-link:hover:after{color:var(--accent);transform:translate(3px)}}.index-name{letter-spacing:-.01em;transition:color var(--dur-fast);font-weight:600}.index-blurb{font-size:var(--text-small);color:var(--muted);grid-column:1}.method-list{counter-reset:step;border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.method-list li{counter-increment:step;column-gap:var(--space-4);padding:var(--space-5) 0;border-bottom:1px solid var(--line);grid-template-columns:56px minmax(0,1fr);display:grid}.method-list li:before{content:counter(step, decimal-leading-zero);font-family:var(--mono);font-size:var(--text-small);color:var(--muted);grid-row:1/span 2;line-height:1.9}.method-list h3{margin:0 0 var(--space-1);font-size:var(--text-lead)}.method-list p{max-width:62ch;color:var(--ink-2);margin:0}.related{margin-top:var(--space-14)}.related h2{font-size:var(--text-h4)}.tool-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));max-width:960px;margin:0;padding:0;list-style:none;display:grid}.tool-card{gap:var(--space-1) var(--space-3);height:100%;padding:var(--space-4) var(--space-5);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);transition:border-color var(--dur-fast), transform var(--dur-base) var(--ease), box-shadow var(--dur-base) var(--ease);grid-template-columns:minmax(0,1fr) auto;text-decoration:none;display:grid}.tool-card>span{grid-column:1}.tool-card:after{content:"→";color:var(--muted);transition:transform var(--dur-base) var(--ease), color var(--dur-fast);grid-area:1/2/span 3;align-self:center}@media (hover:hover){.tool-card:hover{border-color:var(--line-strong);color:var(--ink);box-shadow:var(--shadow-hover);transform:translateY(-2px)}.tool-card:hover:after{color:var(--accent);transform:translate(3px)}}.tool-card:active{transform:scale(.99)}.tool-cat{color:var(--muted)}.tool-name{font-size:var(--text-lead);letter-spacing:-.015em;font-weight:600}.tool-blurb{font-size:var(--text-small);color:var(--muted)}.ad{max-width:820px;min-height:120px;margin:var(--space-10) auto}.ad-label{margin-bottom:var(--space-1);font-size:var(--text-kicker);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:block}.ad-placeholder{max-width:820px;height:120px;margin:var(--space-10) auto;border:2px dashed var(--line-strong);border-radius:var(--radius);color:var(--muted);place-items:center;font-size:.85rem;display:grid}.prose{max-width:720px;margin:var(--space-14) 0 0;font-size:var(--text-lead);line-height:1.7}.prose-section{margin:0 0 var(--space-12)}.prose p,.prose li{max-width:var(--measure)}.prose ul,.prose ol{padding-left:1.3em}.prose li{margin:6px 0}.prose table{border-collapse:collapse;width:100%;font-size:var(--text-ui);font-variant-numeric:tabular-nums;line-height:1.5}.table-wrap{margin:var(--space-4) 0 var(--space-5);border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(to right, var(--surface) 30%, #fff0) left center / 32px 100% no-repeat local, linear-gradient(to left, var(--surface) 30%, #fff0) right center / 32px 100% no-repeat local, radial-gradient(farthest-side at 0 50%, #1c1a1724, transparent) left center / 12px 100% no-repeat scroll, radial-gradient(farthest-side at 100% 50%, #1c1a1724, transparent) right center / 12px 100% no-repeat scroll, var(--surface);overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:10px 14px}.prose th{background:var(--sunk);font-size:var(--text-small);white-space:nowrap;font-weight:600}.prose tr:last-child td{border-bottom:0}.formula{margin:var(--space-4) 0 var(--space-5);padding:var(--space-4);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--radius-sm);background:var(--surface);font-family:var(--mono);font-size:var(--text-ui);white-space:pre-wrap;line-height:1.6;overflow-x:auto}.callout{margin:var(--space-5) 0;padding:var(--space-4) var(--space-5);border:1px solid var(--accent-line);border-radius:var(--radius);background:var(--accent-soft)}.callout.warn{border-color:var(--warn-line);background:var(--warn-soft)}.callout p{margin:0 0 6px}.callout p:last-child{margin:0}.callout-title{font-weight:600}.faq{border-top:1px solid var(--line)}.faq details{border-bottom:1px solid var(--line)}.faq details[open]{padding-bottom:var(--space-4)}.faq summary{justify-content:space-between;gap:var(--space-4);padding:var(--space-4) 0;cursor:pointer;transition:color var(--dur-fast);font-weight:600;list-style:none;display:flex}@media (hover:hover){.faq summary:hover,.faq summary:hover:after{color:var(--accent)}}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";font-family:var(--mono);font-size:var(--text-h4);color:var(--muted);transition:transform var(--dur-base) var(--ease), color var(--dur-fast);flex:none;font-weight:400;line-height:1.2}.faq details[open] summary:after{transform:rotate(45deg)}.faq-a{color:var(--ink-2);margin-top:-6px}.faq-a p{margin:0 0 var(--space-2)}.sources{font-size:var(--text-ui);padding-left:1.3em}.sources li{margin:6px 0}.source-date{color:var(--muted)}.small{font-size:var(--text-small);color:var(--muted)}.figure{margin:var(--space-4) 0 var(--space-5)}@media (max-width:960px){.home-section{grid-template-columns:minmax(0,1fr)}}@media (max-width:860px){.calc-inputs :is(input,select,button){scroll-margin-bottom:96px}.home-head{grid-template-columns:minmax(0,1fr);align-items:start}.calc{flex-direction:column;display:flex}.calc-rail{z-index:5;height:0;display:block;position:sticky;bottom:0}.calc-live{left:4px;right:4px;bottom:calc(var(--space-3) + env(safe-area-inset-bottom,0px));align-items:baseline;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-float);font:inherit;text-align:left;color:var(--panel-ink);cursor:pointer;visibility:hidden;opacity:0;pointer-events:none;transition:opacity var(--dur-base) var(--ease), transform .35s var(--ease), visibility 0s linear .35s;border:0;display:flex;position:absolute;transform:translateY(12px)}.calc-live[data-show]{visibility:visible;opacity:1;pointer-events:auto;transition:opacity var(--dur-base) var(--ease), transform .35s var(--ease), visibility 0s;transform:none}.calc-live:focus-visible{outline-color:var(--panel-accent)}.calc-live-num{font-size:var(--text-h4);letter-spacing:-.03em;font-weight:600;line-height:1}.calc-live-unit{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-small);color:var(--panel-ink-2);overflow:hidden}.calc-live-go{font-size:var(--text-hint);color:var(--panel-accent);flex:none;margin-left:auto;font-weight:500}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}}@media (max-width:640px){.index-groups{grid-template-columns:minmax(0,1fr)}}@media (max-width:560px){.header-inner{padding-block:10px 6px}.site-header nav{order:1;width:100%}.site-header nav ul{margin:0 -10px}.site-header nav a{font-size:var(--text-small)}.home-head{padding-block:var(--space-5) var(--space-4);gap:10px}.home-intro .lede,.page-head .lede{font-size:var(--text-body)}.calc-tabs{grid-template-columns:repeat(var(--tab-count,5), minmax(0, 1fr));display:grid;overflow:visible}.calc-tab{justify-content:center;gap:var(--space-1);min-height:60px;padding:var(--space-2) 2px;font-size:var(--text-kicker);text-align:center;flex-direction:column;line-height:1.1}}@media (max-width:480px){.formula{padding:var(--space-3) var(--space-3);font-size:var(--text-hint)}.calc-card{border-radius:14px;padding:6px}.calc-inputs{padding:var(--space-4) var(--space-3) var(--space-5)}.calc-results{padding:var(--space-4);border-radius:var(--radius-sm)}.method-list li{grid-template-columns:40px minmax(0,1fr)}}@media (pointer:coarse){.chips button,.segmented button,.seg-option span,.actions button,.forecast-go{min-height:var(--tap)}.brand,.site-header nav a,.lang-switch{position:relative}.brand:after,.site-header nav a:after,.lang-switch:after{content:"";position:absolute;inset:-5px -2px}.brand:after{inset:-8px -4px -6px}}@media print{.site-header nav,.lang-switch,.site-footer,.ad,.ad-placeholder,.actions,.related,.crumbs,.prose,.scene,.calc-rail,.calc-tabs,.calc-foot,.home-section{display:none!important}body{background:#fff;font-size:12pt;display:block}.calc-card{box-shadow:none;border:1px solid #999}.calc{grid-template-columns:1fr 1fr;display:grid}.calc-results{--panel:#fff;--panel-2:#fff;--panel-line:#ccc;--panel-ink:#000;--panel-ink-2:#333;--panel-warn:#7a3a10;--panel-accent:#1f469e;--stage:#fff;--panel-3:#eee;color:#000;background:#fff}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.forecast{gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);display:grid}.forecast>p{margin:0}.forecast-title{color:var(--ink);font-weight:600}.forecast-go,.forecast-use{border:1px solid var(--line-strong);border-radius:var(--radius-pill);padding:var(--space-2) 14px;background:var(--surface);font:inherit;font-size:var(--text-small);color:var(--accent-ink);cursor:pointer;justify-self:start;font-weight:500}.forecast-use{white-space:nowrap;padding:3px 9px}.forecast-go:hover,.forecast-use:hover{border-color:var(--line-hover);background:var(--accent-soft)}.forecast-go:disabled{cursor:progress;opacity:.6}.forecast-error{color:var(--warn)}.forecast-table{border:1px solid var(--line);border-radius:var(--radius-sm);overflow-x:auto}.forecast table{border-collapse:collapse;width:100%;font-size:var(--text-small);font-variant-numeric:tabular-nums}.forecast th,.forecast td{padding:6px var(--space-2);border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.forecast thead th{background:var(--sunk);font-weight:600}.forecast tbody tr:last-child>*{border-bottom:0}.forecast .risk{font-size:var(--text-kicker);letter-spacing:.04em;margin-left:4px;padding:3px 6px}@media (max-width:520px){.forecast{padding:14px var(--space-3)}.forecast .risk{width:max-content;margin:var(--space-1) 0 0;display:block}}.forecast .risk.low{background:var(--ok-soft);color:var(--ok)}.forecast .risk.moderate{background:var(--warn-soft);color:var(--warn)}.forecast .risk.high{background:var(--danger-soft);color:var(--danger)}.project-strip{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-6);margin-bottom:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;display:flex}.project-strip-main{align-items:baseline;gap:var(--space-1) var(--space-3);flex-wrap:wrap;min-width:0;display:flex}.project-strip-kicker{font-family:var(--mono);font-size:var(--text-kicker);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:500}.project-strip-text{font-size:var(--text-ui);color:var(--ink);margin:0;font-weight:500}.project-strip-clear{padding:var(--space-1) 0;font:inherit;font-size:var(--text-small);color:var(--muted);text-underline-offset:3px;cursor:pointer;transition:color var(--dur-fast);background:0 0;border:0;text-decoration:underline}.project-strip-clear:hover{color:var(--ink)}.project-strip-steps{min-width:0;max-width:100%}.project-strip-steps ul{margin:0 calc(-1 * var(--space-1));padding:var(--space-1);scrollbar-width:none;gap:6px;list-style:none;display:flex;overflow-x:auto}.project-strip-steps ul::-webkit-scrollbar{display:none}.project-strip-steps a{min-height:32px;padding:0 var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:var(--surface);font-size:var(--text-small);color:var(--ink-2);white-space:nowrap;transition:border-color var(--dur-fast), background-color var(--dur-fast), color var(--dur-fast);align-items:center;font-weight:500;text-decoration:none;display:inline-flex}.project-strip-steps a:hover{border-color:var(--line-hover);background:var(--sunk);color:var(--ink)}@media (pointer:coarse){.project-strip-steps a,.project-strip-clear{min-height:var(--tap)}}@media print{.project-strip{display:none!important}}.project-strip-steps a.project-strip-list{border-color:var(--panel);background:var(--panel);color:var(--panel-ink)}.project-strip-steps a.project-strip-list:hover{border-color:var(--panel-2);background:var(--panel-2);color:var(--panel-ink)}.list-group{gap:var(--space-2);display:grid}.list-group-head{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-2);display:flex}.list-group-head .result-sub{margin:0}.list-group-head a{min-height:24px;font-size:var(--text-hint);text-underline-offset:3px;flex:none;align-items:center;margin:-4px -6px;padding:0 6px;display:inline-flex}@media (pointer:coarse){.list-group-head a{min-height:var(--tap);margin:-10px -8px;padding:0 8px}}.list-why{font-size:var(--text-hint);line-height:var(--leading-snug);color:var(--panel-ink-2);margin-top:2px;display:block}.list-group .result-rows>div{flex-wrap:nowrap;align-items:flex-start}.list-group .result-rows dt{min-width:0;color:var(--panel-ink);flex:auto}.list-group .result-rows dd{flex:none;min-width:2.5em;padding-top:1px}@media print{.list-group-head a{display:none}}
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:optional;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:optional;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:optional;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:optional;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:optional;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_1dd7ff03-module__CPCEgW__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_1dd7ff03-module__CPCEgW__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.31988l_ccedte.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.0r6juujl39pe6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_fa933ac5-module__c-shoG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_fa933ac5-module__c-shoG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
