@font-face{font-family:Krona One;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/krona-one-latin-400-normal-lxbkZ9Cr.woff2)format("woff2"),url(/assets/krona-one-latin-400-normal-Bq1MwVf6.woff)format("woff")}@font-face{font-family:Bai Jamjuree;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/bai-jamjuree-latin-400-normal-C8Ab1JOR.woff2)format("woff2"),url(/assets/bai-jamjuree-latin-400-normal-D7asZ9Ds.woff)format("woff")}@font-face{font-family:Bai Jamjuree;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/bai-jamjuree-latin-600-normal-CgeOh7Cx.woff2)format("woff2"),url(/assets/bai-jamjuree-latin-600-normal-D119NnP2.woff)format("woff")}@font-face{font-family:Lekton;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lekton-latin-400-normal-QUPlN0EW.woff2)format("woff2"),url(/assets/lekton-latin-400-normal-Dt8icbTt.woff)format("woff")}@font-face{font-family:Lekton;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/lekton-latin-700-normal-DZ0PLKfV.woff2)format("woff2"),url(/assets/lekton-latin-700-normal-Cv1fX5cj.woff)format("woff")}@font-face{font-family:Krona Fallback;src:local(Verdana),local(Verdana-Regular);size-adjust:128.1%;ascent-override:77.4%;descent-override:20.2%;line-gap-override:0%}@font-face{font-family:Bai Fallback;font-weight:100 549;src:local(Arial),local(ArialMT);size-adjust:101.5%;ascent-override:98.5%;descent-override:24.6%;line-gap-override:0%}@font-face{font-family:Bai Fallback;font-weight:550 900;src:local(Arial Bold),local(Arial-BoldMT);size-adjust:98.7%;ascent-override:101.3%;descent-override:25.3%;line-gap-override:0%}@font-face{font-family:Lekton Fallback;src:local(Courier New),local(CourierNewPSMT);size-adjust:83.33%;ascent-override:90%;descent-override:30%;line-gap-override:0%}:root{--pine:#f3e7d2;--pine-2:#efe0c6;--pine-seam:#7a52281f;--paper:#fdf8ee;--paper-2:#f8efdd;--ink:#2b241f;--ink-soft:#5b4c40;--line:#dcc9a9;--line-strong:#8f7350;--rafter:#8d5a2b;--rafter-soft:#c9a57a;--rafter-ink:#774a1f;--meter-ok:#1f5a28;--meter-bad:#9b1b14;--meter-warn:#7a4300;--foam-a:#45444b;--foam-b:#343339;--foam-c:#57565e;--foam-d:#232227;--bezel:#2e2d33;--meter:#f7edcf;--meter-hi:#fffaea;--meter-edge:#e3d1a1;--meter-ink:#2b2014;--meter-soft:#5e4a2c;--needle:#c4650f;--lamp:#d1342b;--rec:#a8201a;--rec-hover:#8a1712;--rec-ink:#fff;--link:#8a3412;--ok:#2c6833;--bad:#a8201a;--warn:#8a5000;--focus:#c4650f;--band:#efe3c9;--band-alt:#e8d9ba;--bar-sabine:#2e2d33;--shadow:0 1px 0 #fff9 inset, 0 10px 24px -14px #3c260e73;--display:"Krona One", "Krona Fallback", Verdana, sans-serif;--text:"Bai Jamjuree", "Bai Fallback", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"Lekton", "Lekton Fallback", "Courier New", monospace;--wrap:1180px;--gutter:16px;--radius:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--pine:#1d1822;--pine-2:#211b27;--pine-seam:#f0a8500f;--paper:#2a2231;--paper-2:#322939;--ink:#f2e8d8;--ink-soft:#cfbfac;--line:#4a3e54;--line-strong:#8a7894;--rafter:#a7743f;--rafter-soft:#6e5132;--rafter-ink:#c8935a;--meter-ok:#174019;--meter-bad:#6f120c;--meter-warn:#5a3300;--foam-a:#1d1b21;--foam-b:#16141a;--foam-c:#26242b;--foam-d:#0f0e12;--bezel:#111014;--meter:#ecc06e;--meter-hi:#f8dc9a;--meter-edge:#d3a04f;--meter-ink:#241405;--meter-soft:#3a2a10;--needle:#241405;--lamp:#ff5d4f;--rec:#c4372c;--rec-hover:#d6463a;--rec-ink:#fff;--link:#f3b65f;--ok:#93d39d;--bad:#ff8f80;--warn:#f3b65f;--focus:#f3b65f;--band:#2f2737;--band-alt:#362d3f;--bar-sabine:#cfbfac;--shadow:0 0 0 1px #ffffff05 inset, 0 12px 28px -14px #000000b3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--pine:#1d1822;--pine-2:#211b27;--pine-seam:#f0a8500f;--paper:#2a2231;--paper-2:#322939;--ink:#f2e8d8;--ink-soft:#cfbfac;--line:#4a3e54;--line-strong:#8a7894;--rafter:#a7743f;--rafter-soft:#6e5132;--rafter-ink:#c8935a;--meter-ok:#174019;--meter-bad:#6f120c;--meter-warn:#5a3300;--foam-a:#1d1b21;--foam-b:#16141a;--foam-c:#26242b;--foam-d:#0f0e12;--bezel:#111014;--meter:#ecc06e;--meter-hi:#f8dc9a;--meter-edge:#d3a04f;--meter-ink:#241405;--meter-soft:#3a2a10;--needle:#241405;--lamp:#ff5d4f;--rec:#c4372c;--rec-hover:#d6463a;--rec-ink:#fff;--link:#f3b65f;--ok:#93d39d;--bad:#ff8f80;--warn:#f3b65f;--focus:#f3b65f;--band:#2f2737;--band-alt:#362d3f;--bar-sabine:#cfbfac;--shadow:0 0 0 1px #ffffff05 inset, 0 12px 28px -14px #000000b3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100vh;font-family:var(--text);color:var(--ink);background-color:var(--pine);background-image:repeating-linear-gradient(103deg, transparent 0 138px, var(--pine-seam) 138px 140px), repeating-linear-gradient(103deg, var(--pine) 0 140px, var(--pine-2) 140px 280px);margin:0;font-size:1.0625rem;line-height:1.6;overflow-x:hidden}img,svg{max-width:100%;display:block}a{color:var(--link);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}h1,h2,h3{margin:0 0 .5em;line-height:1.2}h1,h2{font-family:var(--display);letter-spacing:-.01em;font-weight:400}h3{font-size:1.1rem;font-weight:600}p{margin:0 0 1em}.wrap{width:100%;max-width:var(--wrap);padding:0 var(--gutter);margin:0 auto}.mono,.dim{font-family:var(--mono)}.dim{color:var(--ink-soft)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.offscreen{position:fixed;top:0;left:-9999px}.skip-link{z-index:20;background:var(--rec);color:var(--rec-ink);border-radius:6px;padding:10px 14px;font-weight:600;position:absolute;top:-60px;left:8px}.skip-link:focus{top:8px}.icon{flex:none;width:1.15em;height:1.15em}.masthead{background:var(--paper);border-bottom:1px solid var(--line)}.masthead__bar{align-items:center;gap:16px;min-height:68px;display:flex}.brand{color:var(--ink);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand__mark{flex:none;width:40px;height:40px}.brand__name{font-family:var(--display);letter-spacing:-.02em;white-space:nowrap;font-size:1.08rem;line-height:1}.mk-bg{fill:var(--bezel)}.mk-roof{fill:none;stroke:#f3e2c2;stroke-width:3.6px;stroke-linecap:round;stroke-linejoin:round}.mk-boards{fill:none;stroke:#b98a55;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.mk-wave{fill:none;stroke:#ff6a4f;stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round}.masthead__tag{color:var(--ink-soft);margin:0;font-size:.92rem;line-height:1.3}.theme-toggle{border:1px solid var(--line-strong);background:var(--paper-2);min-width:88px;min-height:40px;color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;align-items:center;margin-left:auto;padding:6px 12px;font-size:.9rem;display:inline-flex}.theme-toggle:hover{border-color:var(--rafter)}.tt{align-items:center;gap:6px;display:none}:root:not([data-theme]) .tt--system,:root[data-theme=light] .tt--light,:root[data-theme=dark] .tt--dark{display:inline-flex}.site-nav{background:var(--bezel);color:#efe2c8}.site-nav ul{scrollbar-width:none;gap:4px;margin:0;padding:6px 0;list-style:none;display:flex;overflow-x:auto}.site-nav ul::-webkit-scrollbar{display:none}.site-nav a{color:#efe2c8;white-space:nowrap;border-radius:6px;align-items:center;gap:8px;min-height:40px;padding:6px 12px;font-size:.94rem;font-weight:600;text-decoration:none;display:inline-flex}.site-nav a:hover{background:#ffffff12}.jack{background:#111013;border-radius:50%;flex:none;width:12px;height:12px;box-shadow:0 0 0 2px #77757e,inset 0 1px 2px #000000e6}.site-nav a[aria-current=page]{color:#fff;background:#ffffff1a}.site-nav a[aria-current=page] .jack{background:radial-gradient(circle at 40% 35%,#ffb3a8,#ff3b2e 55%,#9e130c);box-shadow:0 0 0 2px #77757e,0 0 10px 2px #ff4632a6}.hero{padding-top:6px;padding-bottom:8px;position:relative}.gable{width:100%;height:54px;margin-bottom:10px}.gable__fill{fill:var(--paper-2);opacity:.55}.gable__boards{fill:none;stroke:var(--rafter-soft);stroke-width:1.5px;vector-effect:non-scaling-stroke}.gable__rafter,.gable__king,.gable__tie{fill:none;stroke:var(--rafter);stroke-width:5px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.gable__king,.gable__tie{stroke-width:2.5px}.kicker{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--rafter-ink);margin:0 0 6px;font-size:.95rem;font-weight:700}.hero h1{margin-bottom:.3em;font-size:clamp(1.5rem,1.1rem + 2vw,2.35rem)}.lead{max-width:62ch;color:var(--ink-soft);margin-bottom:.6em;font-size:1.08rem}.foam{background:conic-gradient(from 45deg, var(--foam-b) 0 25%, var(--foam-d) 0 50%, var(--foam-a) 0 75%, var(--foam-c) 0) 0 0 / 16px 16px;height:16px}.foam--section{border-radius:3px;margin:34px 0 30px}.tool{padding-top:8px}.tool-card{grid-template-columns:minmax(0,1fr);align-items:start;gap:18px;display:grid}@media (width>=900px){.tool-card{grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:24px}}.calc{background:var(--paper);border:1px solid var(--line);border-top:4px solid var(--rafter);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 18px 16px}.calc__title{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 10px;font-size:.86rem;font-weight:700}.calc__title:not(:first-child){border-top:1px dashed var(--line);margin-top:20px;padding-top:14px}.field{border:0;min-width:0;margin:0 0 14px;padding:0}.field>label,.field>legend,.label{margin:0 0 5px;padding:0;font-size:.95rem;font-weight:600;display:block}.row{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:10px;display:grid}.row--2{grid-template-columns:repeat(2,minmax(0,1fr))}.input{border:1px solid var(--line-strong);background:var(--paper-2);width:100%;min-height:44px;color:var(--ink);font:inherit;border-radius:6px;padding:8px 10px;font-size:1rem}.input--num,input.input[inputmode=decimal],input.input[inputmode=numeric]{font-family:var(--mono);font-size:1.15rem}select.input{padding-right:8px}.input:hover{border-color:var(--rafter)}.input[aria-invalid=true]{border-color:var(--bad);box-shadow:0 0 0 1px var(--bad)}.hint{color:var(--ink-soft);margin:5px 0 0;font-size:.86rem;line-height:1.45}.field-error{color:var(--bad);min-height:0;margin:4px 0 0;font-size:.88rem;font-weight:600;line-height:1.4}.field-error:empty{display:none}.unit-label{font-family:var(--mono);color:var(--ink-soft);font-weight:400}.seg{border:1px solid var(--line-strong);background:var(--paper-2);border-radius:7px;flex-wrap:wrap;gap:2px;padding:2px;display:inline-flex}.seg input{opacity:0;width:1px;height:1px;margin:0;position:absolute}.seg label{min-width:48px;min-height:38px;font-family:var(--mono);cursor:pointer;color:var(--ink-soft);border-radius:5px;justify-content:center;align-items:center;padding:4px 12px;font-size:1rem;font-weight:700;display:inline-flex}.seg input:checked+label{background:var(--bezel);color:#f7ead0;box-shadow:inset 0 -2px 0 var(--needle)}:root[data-theme=dark] .seg input:checked+label{box-shadow:inset 0 -2px #f3b65f}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .seg input:checked+label{box-shadow:inset 0 -2px #f3b65f}}.seg input:focus-visible+label{outline:3px solid var(--focus);outline-offset:1px}.switches{flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:14px;display:flex}.switches .label{margin:0}.actions{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.btn{border:1px solid var(--line-strong);background:var(--paper-2);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border-radius:7px;justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--rafter);background:var(--paper)}.btn--rec{background:var(--rec);border-color:var(--rec);color:var(--rec-ink)}.btn--rec:before{content:"";background:#ffd9d3;border-radius:50%;width:9px;height:9px;box-shadow:0 0 6px 1px #ffbeb4e6}.btn--rec:hover{background:var(--rec-hover);border-color:var(--rec-hover);color:var(--rec-ink)}.btn--quiet{background:0 0}.icon-btn{border:1px solid var(--line-strong);background:var(--paper-2);width:44px;height:44px;color:var(--ink);cursor:pointer;border-radius:7px;flex:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{border-color:var(--bad);color:var(--bad)}.linkish{color:var(--link);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline;display:inline}.result-wrap{min-width:0}.face{border:10px solid var(--bezel);background:radial-gradient(120% 90% at 50% 0%, var(--meter-hi) 0%, var(--meter) 55%, var(--meter-edge) 100%);color:var(--meter-ink);box-shadow:inset 0 3px 10px #3c280a40, var(--shadow);border-radius:16px;padding:10px 18px 14px;position:relative}.face:after{content:"";pointer-events:none;background:linear-gradient(#ffffff47,#fff0);border-radius:6px 6px 50% 50%/6px 6px 18px 18px;height:40%;position:absolute;inset:0 0 auto}.meter{aspect-ratio:320/196;width:100%;max-width:330px;height:auto;margin:0 auto 4px}.m-arc,.m-tick{fill:none;stroke:var(--meter-ink);stroke-width:2px}.m-zone{fill:none;stroke:var(--lamp);stroke-width:7px;opacity:.85}.m-mark{stroke:var(--needle);stroke-width:5px;stroke-linecap:round}.m-num{font-family:var(--mono);fill:var(--meter-ink);text-anchor:middle;font-size:14px;font-weight:700}.m-unit{font-family:var(--display);fill:var(--meter-ink);text-anchor:middle;font-size:20px}.m-caption{font-family:var(--mono);letter-spacing:.18em;fill:var(--meter-soft);text-anchor:middle;font-size:12px;font-weight:700}.m-needle path{stroke:var(--needle);stroke-width:3px;stroke-linecap:round}.m-pivot{fill:var(--bezel)}.m-base{stroke:var(--meter-edge);stroke-width:2px}.readouts{z-index:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;margin:0;display:grid;position:relative}.readout{border-top:1px solid color-mix(in srgb, var(--meter-ink) 25%, transparent);min-width:0;padding-top:8px}.readout dt{letter-spacing:.08em;text-transform:uppercase;color:var(--meter-soft);font-size:.78rem;font-weight:600;line-height:1.3}.readout dd{margin:2px 0 0}.readout__value{font-family:var(--mono);overflow-wrap:anywhere;font-size:1.65rem;font-weight:700;line-height:1.15;display:block}.readout--lead .readout__value{font-size:2.1rem}.readout__unit{font-size:.6em;font-weight:400}.readout__sub{color:var(--meter-soft);margin-top:2px;font-size:.86rem;line-height:1.35;display:block}.readout--ok .readout__value{color:var(--meter-ok)}.readout--bad .readout__value{color:var(--meter-bad)}.readout--warn .readout__value{color:var(--meter-warn)}.face__foot{z-index:1;border-top:1px dashed color-mix(in srgb, var(--meter-ink) 30%, transparent);color:var(--meter-soft);margin:12px 0 0;padding-top:8px;font-size:.84rem;line-height:1.4;position:relative}.is-stale{opacity:.45;transition:opacity .15s}.detail{gap:18px;margin-top:18px;display:grid}@media (width>=1000px){.detail--two{grid-template-columns:repeat(2,minmax(0,1fr))}.detail--two .panel--chart,.detail--two .panel--list,.detail--two .panel--plan{grid-column:1/-1}}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;padding:16px 18px}.panel__title{margin-bottom:10px;font-size:1rem}.panel__note{color:var(--ink-soft);margin:10px 0 0;font-size:.9rem}.panel p:last-child{margin-bottom:0}.chart{width:100%;height:auto}.chart-scroll{margin:0 -4px;padding:0 4px;overflow-x:auto}@media (width<=720px){.chart-scroll .chart{min-width:600px}.chart-scroll--plan .plan{min-width:460px}}.table-wrap--gap{margin-top:14px}.chart--modes{aspect-ratio:720/228}.chart--reverb{aspect-ratio:720/218}.chart--comb{aspect-ratio:720/210}.c-band{fill:var(--band)}.c-band--alt{fill:var(--band-alt)}.c-band--falls{fill:color-mix(in srgb, var(--lamp) 22%, var(--band))}.c-bandlabel,.c-ticklabel,.c-ylabel,.c-axislabel,.c-yunit,.c-count,.c-gaplabel,.c-fslabel,.c-targetlabel,.c-rowlabel{font-family:var(--mono);fill:var(--ink-soft);text-anchor:middle;font-size:16px}.chart--modes text{font-size:13px}.c-count{fill:var(--ink);font-weight:700}.c-count--falls{fill:var(--bad)}.c-ylabel,.c-yunit,.c-rowlabel,.c-axislabel,.c-targetlabel{text-anchor:end}.c-fslabel{text-anchor:start}.c-targetlabel{fill:var(--needle);font-weight:700}:root[data-theme=dark] .c-targetlabel{fill:#f3b65f}.c-rowlabel{font-family:var(--text);fill:var(--ink);font-size:17px;font-weight:600}.c-axis,.c-tick{stroke:var(--ink);stroke-width:1.5px}.c-grid{stroke:var(--line);stroke-width:1px}.c-grid--zero{stroke:var(--line-strong)}.c-grid--v{stroke-dasharray:2 4}.c-stem{fill:none;stroke-linecap:butt}.c-stem--axial{stroke:var(--ink);stroke-width:3px}.c-stem--tangential{stroke:var(--rafter);stroke-width:2.2px}.c-stem--oblique{stroke:var(--needle);stroke-width:1.5px;opacity:.85}:root[data-theme=dark] .c-stem--oblique,:root[data-theme=dark] .c-ring{stroke:#f3b65f}:root[data-theme=dark] .c-ring--bad{stroke:var(--bad)}.c-ring{fill:none;stroke:var(--needle);stroke-width:2px}.c-ring--bad{stroke:var(--bad);stroke-width:2.5px}.c-schroeder{stroke:var(--lamp);stroke-width:2px;stroke-dasharray:6 4}.c-fslabel{fill:var(--bad);font-weight:700}.c-gap{fill:none;stroke:var(--ink);stroke-width:1.5px}.c-gaplabel{fill:var(--ink);font-size:12px}.c-bar--sabine{fill:var(--bar-sabine)}.c-bar--eyring{fill:var(--rafter)}.c-target{stroke:var(--needle);stroke-width:2.5px;stroke-dasharray:8 5}:root[data-theme=dark] .c-target{stroke:#f3b65f}.c-curve{fill:none;stroke:var(--ink);stroke-width:2px;stroke-linejoin:round}.c-firstnotch{stroke:var(--lamp);stroke-width:1.5px;stroke-dasharray:5 4}.c-row{stroke:var(--line-strong);stroke-width:1.5px}.c-notch{fill:var(--rafter)}.c-notch--first{fill:var(--lamp)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .c-stem--oblique,:root:not([data-theme=light]) .c-ring,:root:not([data-theme=light]) .c-target{stroke:#f3b65f}:root:not([data-theme=light]) .c-ring--bad{stroke:var(--bad)}:root:not([data-theme=light]) .c-targetlabel{fill:#f3b65f}}.legend{color:var(--ink-soft);flex-wrap:wrap;gap:6px 16px;margin:10px 0 0;padding:0;font-size:.86rem;list-style:none;display:flex}.legend li{align-items:center;gap:6px;display:inline-flex}.lg{flex:none;width:14px;height:14px;display:inline-block}.lg--axial{background:var(--ink);width:4px}.lg--tangential{background:var(--rafter);width:3px;height:11px}.lg--oblique{background:var(--needle);width:2px;height:8px}.lg--ring{border:2px solid var(--bad);border-radius:50%}.lg--close{border:2px solid var(--needle);border-radius:50%}.lg--falls{background:color-mix(in srgb, var(--lamp) 30%, var(--band))}.lg--fs{border-top:2px dashed var(--lamp);height:2px}.lg--sabine{background:var(--bar-sabine)}.lg--eyring{background:var(--rafter)}.lg--target{border-top:3px dashed var(--needle);height:2px}.lg--spk{background:var(--bezel);border-radius:2px}.lg--ear{background:var(--rec);border-radius:50%}.lg--point{border:3px solid var(--needle);border-radius:50%}.lg--ceil{border:2px solid var(--rafter);transform:rotate(45deg)scale(.75)}.table-wrap{max-width:100%;overflow-x:auto}.table-scroll{border:1px solid var(--line);border-radius:8px;max-height:420px;overflow:auto}.data-table{border-collapse:collapse;width:100%;font-size:.95rem}.data-table caption{text-align:left;color:var(--ink-soft);padding:0 0 8px;font-size:.9rem;font-weight:600}.table-scroll .data-table caption{padding:8px 10px}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:7px 10px}.data-table thead th{letter-spacing:.02em;color:var(--ink-soft);background:var(--paper-2);z-index:1;font-size:.84rem;position:sticky;top:0}.data-table tbody th{font-family:var(--mono);white-space:nowrap;font-weight:700}.data-table td{font-family:var(--mono)}.data-table--coeffs tbody th,.data-table--compact tbody th,.data-table--refl tbody th{font-family:var(--text);white-space:normal;font-weight:600}.data-table--bands{min-width:680px}.data-table--refl{min-width:600px}.data-table--coeffs{min-width:640px}.data-table--modes tbody th{font-size:1.05rem}.mode--axial th{box-shadow:inset 4px 0 0 var(--ink)}.mode--tangential th{box-shadow:inset 3px 0 0 var(--rafter)}.mode--oblique th{box-shadow:inset 2px 0 0 var(--needle)}.tag{border:1px solid var(--line-strong);font-family:var(--text);color:var(--ink-soft);white-space:nowrap;border-radius:999px;margin:0 4px 2px 0;padding:1px 7px;font-size:.78rem;font-weight:600;display:inline-block}.tag--double{border-color:var(--bad);color:var(--bad)}.tag--ok{border-color:var(--ok);color:var(--ok)}.tag--bad{border-color:var(--bad);color:var(--bad)}.checks{gap:10px;margin:0;padding:0;list-style:none;display:grid}.checks strong{display:block}.verdict{vertical-align:1px;border:1px solid;border-radius:999px;align-items:center;gap:6px;margin-right:6px;padding:1px 9px 1px 7px;font-size:.85rem;font-weight:700;display:inline-flex}.verdict__lamp{background:currentColor;border-radius:50%;width:8px;height:8px}.verdict--ok{color:var(--ok)}.verdict--bad{color:var(--bad)}.verdict--warn{color:var(--warn)}.ratio-line{font-size:1.02rem}.surfaces{margin:0;padding-left:1.1em;font-size:.95rem}.filters{flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 10px;display:flex}[data-show=axial] .mode:not(.mode--axial),[data-show=tangential] .mode:not(.mode--tangential),[data-show=oblique] .mode:not(.mode--oblique){display:none}.surface-grid{gap:0;display:grid}.patches{gap:10px;margin:0 0 10px;padding:0;list-style:none;display:grid}.patch{border:1px dashed var(--line-strong);background:var(--paper-2);border-radius:8px;padding:10px 10px 0}.patch__row{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.patch__row .field{margin-bottom:10px}.field--grow{flex:140px}.field--area{flex:0 92px}.patch__row .icon-btn{margin-bottom:10px}.custom{border:1px solid var(--line);border-radius:8px;margin:0 0 12px;padding:8px 10px 10px}.custom legend{padding:0 4px;font-size:.86rem;font-weight:600}.custom__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.custom__cell span{font-family:var(--mono);color:var(--ink-soft);font-size:.85rem;display:block}.input--coef{min-height:40px;padding:6px 8px}.plan,.tri{width:100%;height:auto;max-height:70vh;margin:0 auto}.tri{max-width:300px;max-height:none;margin-bottom:6px}.p-room{fill:var(--band);stroke:var(--ink);stroke-width:3px}.p-front{stroke:var(--rafter);stroke-width:8px}.p-wall,.p-name,.p-label,.p-scaletext,.t-label{font-family:var(--mono);fill:var(--ink);text-anchor:middle;font-size:14px;font-weight:700}.p-wall{letter-spacing:.16em;fill:var(--rafter-ink)}.p-label--left{text-anchor:end}.t-label--start,.p-label--right,.p-scaletext{text-anchor:start}.p-direct{fill:none;stroke:var(--line-strong);stroke-width:1.5px;stroke-dasharray:4 4}.p-ray{fill:none;stroke:var(--needle);stroke-width:1.6px}.p-ray.is-right{stroke:var(--rafter)}.p-point{fill:var(--paper);stroke:var(--needle);stroke-width:3px}.p-point.is-right{stroke:var(--rafter)}.p-ceil{fill:var(--paper);stroke:var(--rafter);stroke-width:2px}.p-spk{fill:var(--bezel);stroke:var(--paper);stroke-width:1.5px}.p-ear{fill:var(--rec);stroke:var(--paper);stroke-width:2px}.p-scale{stroke:var(--ink);stroke-width:3px}.t-side{fill:none;stroke:var(--rafter);stroke-width:2.5px}.t-base,.t-depth{stroke:var(--line-strong);stroke-width:1.5px;stroke-dasharray:4 4}.t-axis{stroke:var(--needle);stroke-width:2px;stroke-dasharray:3 3}.face--tri{gap:6px;display:grid}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .p-ray,:root:not([data-theme=light]) .p-point{stroke:#f3b65f}}:root[data-theme=dark] .p-ray,:root[data-theme=dark] .p-point{stroke:#f3b65f}.content>*{max-width:76ch}.content>.callout{max-width:80ch}.content h2,.section-head h2{font-size:clamp(1.2rem,1rem + .9vw,1.55rem)}.content h3{margin-top:1.4em}.content ul,.content ol{padding-left:1.2em}.content li{margin-bottom:.35em}.formula{font-family:var(--mono);background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--rafter);border-radius:6px;padding:8px 12px;font-size:1.08rem;overflow-x:auto}.section{margin-top:40px}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 20px;margin-bottom:14px;display:flex}.section-head h2{margin:0}.section-head p{color:var(--ink-soft);margin:0}.sources{margin-top:36px}.sources h2{font-size:1.2rem}.sources ul{padding-left:1.2em;font-size:.95rem}.sources li{margin-bottom:.5em}.sources .table-wrap{margin:12px 0 16px}.toolgrid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.toolgrid a{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);height:100%;color:var(--ink);box-shadow:var(--shadow);padding:16px 16px 14px;text-decoration:none;display:block}.toolgrid a:hover{border-color:var(--rafter)}.toolgrid h3{margin:10px 0 4px}.toolgrid p{color:var(--ink-soft);margin:0;font-size:.95rem}.glyph{background:var(--bezel);color:#f6d38f;border-radius:8px;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.glyph .icon{width:22px;height:22px}.recs{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.rec{border:1px solid var(--line);border-left:6px solid var(--rafter);border-radius:var(--radius);background:var(--paper);box-shadow:var(--shadow);flex-direction:column;align-items:flex-start;padding:18px;display:flex;position:relative}.rec__label{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--rafter-ink);font-size:.86rem;font-weight:700}.rec h3{margin:4px 0 6px;font-size:1.25rem}.rec p{flex:1}.callout{border:1px solid var(--line);border-left:6px solid var(--needle);border-radius:var(--radius);background:var(--paper);gap:12px;margin:20px 0;padding:14px 16px;display:flex}.callout__lamp{background:radial-gradient(circle at 40% 35%,#ffd27a,#e08a1c 60%,#8a4b05);border-radius:50%;flex:none;width:12px;height:12px;margin-top:7px}.callout p{margin:0 0 .5em}.callout p:last-child{margin:0}.callout strong:first-child{display:block}.faq{gap:10px;max-width:80ch;display:grid}.faq details{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}.faq summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:10px 16px;font-weight:600;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary .icon{transition:transform .2s}.faq details[open] summary .icon{transform:rotate(180deg)}.faq details>div{padding:0 16px 12px}.site-footer{background:var(--bezel);color:#e8dcc6;margin-top:56px}.site-footer a{color:#f6cf86}.footer-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:28px;padding:30px 0 22px;display:grid}.footer-col h2{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#c9bba3;margin-bottom:10px;font-size:.9rem;font-weight:700}.footer-col ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.footer-col li a{min-height:24px;display:inline-block}.footer-col .desc{color:#c9bba3;font-size:.86rem;line-height:1.4;display:block}.footer-about p{color:#d6c9b2;margin-top:12px;font-size:.92rem}.brand--footer{color:#f3e7d2}.footer-bottom{border-top:1px solid #ffffff1f;flex-wrap:wrap;justify-content:space-between;gap:10px;padding:14px 0 26px;font-size:.9rem;display:flex}.footer-bottom p{margin:0}.footer-bottom ul{gap:18px;margin:0;padding:0;list-style:none;display:flex}.toast-region{z-index:30;pointer-events:none;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{background:var(--bezel);color:#f7ead0;opacity:0;border-radius:8px;padding:10px 16px;font-weight:600;transition:opacity .2s,transform .2s;transform:translateY(8px);box-shadow:0 8px 24px #0000004d}.toast.is-visible{opacity:1;transform:none}.lost .lead{margin-bottom:4px}.lost+.section{margin-top:16px}@media (width<=720px){.masthead__tag{display:none}.brand__name{font-size:1rem}.readouts{gap:10px 12px}.readout__value{font-size:1.35rem}.readout--lead .readout__value{font-size:1.7rem}.face{border-width:8px;padding:8px 12px 12px}.calc,.panel{padding:14px}.gable{height:40px}.row{gap:8px}}@media (width<=340px){.readouts{grid-template-columns:minmax(0,1fr)}}@media (width>=721px){:root{--gutter:24px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{body{color:#000;background:#fff}.masthead,.site-nav,.site-footer,.skip-link,.calc,.no-print,.sources,.section,.content,.callout,.hero .gable,.foam{display:none!important}.tool-card{display:block}.panel,.face{box-shadow:none;break-inside:avoid}.plan{max-height:none}}
