:root{--ink:#060606;--paper:#0a0a0a;--surface:#121212;--surface-up:#181818;--line:#232323;--line-soft:#1a1a1a;--hi-vis:#f97316;--hi-vis-dim:#f973168c;--hi-vis-faint:#f973161f;--text:#f5f5f5;--text-dim:#9a9a9a;--text-faint:#5c5c5c;--good:#4ade80;--bad:#f87171;--font-display:"Anton", "Arial Narrow", sans-serif;--font-body:"Archivo", system-ui, sans-serif;--font-mono:"Space Mono", ui-monospace, monospace;--tab-h:64px}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--ink)}body{font-family:var(--font-body);color:var(--text);background:radial-gradient(ellipse 90% 40% at 50% 0%, #f9731612 0%, transparent 70%), var(--ink);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}::selection{background:var(--hi-vis);color:#0a0a0a}input,button{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none}.field{background-image:linear-gradient(#f9731609 1px,#0000 1px),linear-gradient(90deg,#f9731609 1px,#0000 1px),radial-gradient(circle,#ffffff09 1px,#0000 1px);background-size:88px 88px,88px 88px,22px 22px;justify-content:center;min-height:100dvh;display:flex}.sheet{background:var(--paper);border-left:1px solid var(--line-soft);border-right:1px solid var(--line-soft);flex-direction:column;width:100%;max-width:460px;min-height:100dvh;display:flex;position:relative;box-shadow:0 0 80px #000000d9}.sheet:after{content:"";pointer-events:none;z-index:50;opacity:.25;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.content{padding:0 20px calc(var(--tab-h) + 32px + env(safe-area-inset-bottom,0px));flex:1}.titleblock{z-index:40;padding-top:env(safe-area-inset-top,0px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#0a0a0aeb;position:sticky;top:0}.titleblock-hazard{background-image:repeating-linear-gradient(-45deg, var(--hi-vis) 0, var(--hi-vis) 10px, #0a0a0a 10px, #0a0a0a 20px);height:4px}.titleblock-row{align-items:stretch;padding:0;display:flex}.titleblock-brand{border-right:1px solid var(--line);flex-direction:column;flex:1;justify-content:center;min-width:0;padding:12px 16px 10px;display:flex}.titleblock-kicker{font-family:var(--font-mono);letter-spacing:.28em;text-transform:uppercase;color:var(--hi-vis);font-size:9px}.titleblock-name{font-family:var(--font-display);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;font-size:22px;line-height:1.05;overflow:hidden}.titleblock-meta{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-faint);text-align:right;white-space:nowrap;flex-direction:column;justify-content:center;gap:3px;padding:10px 16px;font-size:9px;display:flex}.titleblock-meta strong{color:var(--text-dim);font-weight:400}.screen{animation:.34s cubic-bezier(.16,1,.3,1) both screen-in}@keyframes screen-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.backbar{justify-content:space-between;align-items:center;padding:16px 0 4px;display:flex}.backbtn{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim);align-items:center;gap:8px;padding:8px 10px 8px 0;font-size:11px;transition:color .15s;display:inline-flex}.backbtn:hover{color:var(--hi-vis)}.backbtn svg{width:14px;height:14px}.dwgno{font-family:var(--font-mono);letter-spacing:.22em;color:var(--text-faint);text-transform:uppercase;font-size:10px}.screen-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.015em;margin:10px 0 2px;font-size:34px;line-height:1}.screen-sub{color:var(--text-dim);margin-bottom:20px;font-size:13px;line-height:1.5}.section-label{font-family:var(--font-mono);letter-spacing:.26em;text-transform:uppercase;color:var(--text-faint);align-items:center;gap:10px;margin:26px 0 12px;font-size:10px;display:flex}.section-label:after{content:"";background:repeating-linear-gradient(90deg, var(--line) 0, var(--line) 6px, transparent 6px, transparent 11px);flex:1;height:1px}.section-label .tick{color:var(--hi-vis)}.cards{flex-direction:column;gap:10px;display:flex}.fitting-card{text-align:left;background:linear-gradient(180deg, #ffffff06, transparent 30%), var(--surface);border:1px solid var(--line);align-items:center;gap:16px;width:100%;padding:18px 16px;transition:transform .16s cubic-bezier(.16,1,.3,1),border-color .16s,background-color .16s;display:flex;position:relative;overflow:hidden}.fitting-card:before{content:"";background:var(--hi-vis);transform-origin:0;height:2px;transition:transform .3s cubic-bezier(.16,1,.3,1);position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.fitting-card:hover:before,.fitting-card:active:before{transform:scaleX(1)}.fitting-card:hover{border-color:#2e2e2e}.fitting-card:active{transform:scale(.985)}.fitting-card .art{border:1px solid var(--line-soft);background-color:#0c0c0c;background-image:linear-gradient(#f973160d 1px,#0000 1px),linear-gradient(90deg,#f973160d 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:18px 18px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;flex:0 0 92px;place-items:center;height:72px;display:grid}.fitting-card .art svg{width:84px;height:64px;overflow:visible}.fitting-card .label{flex:1;min-width:0}.fitting-card .idx{font-family:var(--font-mono);letter-spacing:.24em;color:var(--hi-vis);font-size:9px}.fitting-card .name{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;margin:3px 0 4px;font-size:19px}.fitting-card .desc{color:var(--text-dim);font-size:12px;line-height:1.45}.fitting-card .chev{color:var(--text-faint);flex:none;transition:color .15s,transform .15s}.fitting-card:hover .chev{color:var(--hi-vis);transform:translate(2px)}.fitting-card.soon{opacity:.55}.fitting-card.soon .name{color:var(--text-dim)}.fitting-card.soon:active{transform:none}.soon-badge{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink);background:var(--text-faint);padding:3px 7px;font-size:8px;position:absolute;top:0;right:0}.inputs{flex-direction:column;gap:12px;display:flex}.input-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.dim-input{position:relative}.dim-input label{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--text-dim);margin-bottom:6px;font-size:9px;transition:color .15s;display:block}.dim-input.hot label{color:var(--hi-vis)}.dim-input.hot input{border-left-color:var(--hi-vis)}.dim-input input{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--line);width:100%;font-family:var(--font-mono);letter-spacing:.01em;color:var(--text);border-radius:0;outline:none;padding:13px 38px 13px 14px;font-size:17px;font-weight:700;transition:border-color .15s,background-color .15s}.dim-input input::placeholder{color:#3d3d3d;font-weight:400}.dim-input input:focus{border-color:var(--hi-vis);border-left-color:var(--hi-vis);background:#141210}.dim-input:focus-within label{color:var(--hi-vis)}.dim-input .unit{font-family:var(--font-mono);color:var(--text-faint);pointer-events:none;font-size:13px;position:absolute;bottom:13px;right:13px}.dim-input.invalid input{border-color:var(--bad);border-left-color:var(--bad)}.dim-input .parsed{font-family:var(--font-mono);color:var(--text-faint);pointer-events:none;font-size:10px;position:absolute;bottom:15px;right:34px}.angle-chips{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.angle-chip{font-family:var(--font-mono);background:var(--surface);border:1px solid var(--line);color:var(--text-dim);padding:11px 4px;font-size:13px;font-weight:700;transition:all .15s}.angle-chip:hover{color:var(--text);border-color:#333}.angle-chip.on{background:var(--hi-vis);border-color:var(--hi-vis);color:#0a0a0a}.hero-result{border:1px solid var(--line);border-top:2px solid var(--hi-vis);background:linear-gradient(180deg, #f973160f, transparent 45%), var(--surface);margin-top:22px;padding:18px 18px 16px;position:relative}.hero-result .hr-label{font-family:var(--font-mono);letter-spacing:.26em;text-transform:uppercase;color:var(--hi-vis);font-size:10px}.hero-result .hr-value{font-family:var(--font-mono);letter-spacing:-.01em;color:var(--text);font-variant-numeric:tabular-nums;margin-top:4px;font-size:clamp(38px,11vw,52px);font-weight:700;line-height:1.05;animation:.25s cubic-bezier(.16,1,.3,1) value-in}.hero-result .hr-decimal{font-family:var(--font-mono);color:var(--text-faint);margin-top:2px;font-size:12px}@keyframes value-in{0%{opacity:.2;transform:translateY(5px)}to{opacity:1;transform:none}}.result-rows{border:1px solid var(--line);border-top:none}.result-row{border-bottom:1px solid var(--line-soft);background:var(--paper);justify-content:space-between;align-items:baseline;gap:12px;padding:12px 18px;display:flex}.result-row:last-child{border-bottom:none}.result-row .rr-label{color:var(--text-dim);font-size:12.5px}.result-row .rr-label small{color:var(--text-faint);margin-top:1px;font-size:10.5px;display:block}.result-row .rr-value{font-family:var(--font-mono);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:16px;font-weight:700}.result-row .rr-value.accent{color:var(--hi-vis)}.warn{color:#fca5a5;background:#f871710f;border:1px solid #f8717159;align-items:flex-start;gap:10px;margin-top:22px;padding:14px 16px;font-size:12.5px;line-height:1.5;display:flex}.warn strong{color:#f87171}.warn .w-icon{color:var(--bad);flex:none;margin-top:1px}.hint{color:var(--text-faint);margin-top:18px;font-size:12.5px;line-height:1.55}.hint strong{color:var(--text-dim);font-weight:600}.actions{gap:8px;margin-top:14px;display:flex}.action-btn{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;border:1px solid var(--line);color:var(--text-dim);background:var(--surface);flex:1;justify-content:center;align-items:center;gap:8px;padding:13px 10px;font-size:11px;font-weight:700;transition:all .15s;display:inline-flex}.action-btn:hover{color:var(--text);border-color:#333}.action-btn.primary{background:var(--hi-vis);border-color:var(--hi-vis);color:#0a0a0a}.action-btn.primary:hover{background:#fb8c3c}.action-btn svg{width:13px;height:13px}.action-btn.copied{color:var(--good);border-color:#4ade8066}.dwg-panel{border:1px solid var(--line);background-color:#0b0b0b;background-image:linear-gradient(#f973160b 1px,#0000 1px),linear-gradient(90deg,#f973160b 1px,#0000 1px),radial-gradient(circle,#ffffff09 1px,#0000 1px),none;background-position:0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat;background-size:64px 64px,64px 64px,16px 16px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;margin-top:22px;position:relative}.dwg-corner{border-color:var(--hi-vis-dim);border-style:solid;border-width:0;width:10px;height:10px;position:absolute}.dwg-corner.tl{border-top-width:1px;border-left-width:1px;top:6px;left:6px}.dwg-corner.tr{border-top-width:1px;border-right-width:1px;top:6px;right:6px}.dwg-corner.bl{border-bottom-width:1px;border-left-width:1px;bottom:6px;left:6px}.dwg-corner.br{border-bottom-width:1px;border-right-width:1px;bottom:6px;right:6px}.dwg-tag{font-family:var(--font-mono);letter-spacing:.24em;text-transform:uppercase;color:var(--text-faint);font-size:9px;position:absolute;top:10px;left:14px}.dwg-tag b{color:var(--hi-vis);font-weight:400}.dwg-panel svg{width:100%;height:auto;margin-top:15px;display:block}.dwg-empty{height:230px;font-family:var(--font-mono);letter-spacing:.24em;text-transform:uppercase;color:var(--text-faint);place-items:center;font-size:10px;display:grid}.dim-hot{filter:drop-shadow(0 0 5px #f97316e6)}.dim-hot text{fill:#fff!important}.dim-hot line,.dim-hot path:not([fill]){stroke-width:1.8px}.dim-cold{opacity:.3;transition:opacity .15s}.duct-path{stroke-dasharray:1200;stroke-dashoffset:0;animation:.9s cubic-bezier(.4,0,.2,1) duct-draw}@keyframes duct-draw{0%{stroke-dashoffset:1200px}to{stroke-dashoffset:0}}.cl-dash{stroke-dasharray:7 4 1.5 4}.dim-fade{animation:.5s .35s both dim-in}@keyframes dim-in{0%{opacity:0}to{opacity:1}}.tabbar{z-index:45;-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);width:100%;max-width:460px;padding-bottom:env(safe-area-inset-bottom,0px);background:linear-gradient(#ffffff09,#0000 30%),#0d0d0df2;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0}.tab{color:var(--text-faint);flex-direction:column;align-items:center;gap:4px;padding:11px 0 9px;transition:color .18s;display:flex;position:relative}.tab svg{width:21px;height:21px}.tab .tab-label{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;font-size:8.5px}.tab:before{content:"";background:var(--hi-vis);height:2px;transition:transform .25s cubic-bezier(.16,1,.3,1);position:absolute;top:-1px;left:22%;right:22%;transform:scaleX(0)}.tab.on{color:var(--hi-vis)}.tab.on:before{transform:scaleX(1)}.tab:active{color:var(--text)}.seg-rows{border:1px solid var(--line)}.seg-row{text-align:left;border-bottom:1px solid var(--line-soft);background:var(--surface);justify-content:space-between;align-items:center;width:100%;padding:15px 16px;transition:background-color .15s;display:flex}.seg-row:last-child{border-bottom:none}.seg-row:hover{background:var(--surface-up)}.seg-row .sr-name{font-size:14px;font-weight:600}.seg-row .sr-name small{color:var(--text-faint);margin-top:2px;font-size:11.5px;font-weight:400;display:block}.seg-row .sr-check{border:1px solid var(--line);color:#0000;place-items:center;width:18px;height:18px;transition:all .15s;display:grid}.seg-row.on .sr-check{background:var(--hi-vis);border-color:var(--hi-vis);color:#0a0a0a}.seg-row .sr-check svg{width:11px;height:11px}.recent-item{text-align:left;background:var(--surface);border:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;width:100%;margin-bottom:8px;padding:13px 14px;transition:border-color .15s;display:flex}.recent-item:hover{border-color:#333}.recent-item .ri-title{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--hi-vis);font-size:10px}.recent-item .ri-summary{font-family:var(--font-mono);margin-top:4px;font-size:13px}.recent-item .ri-ts{font-family:var(--font-mono);color:var(--text-faint);white-space:nowrap;font-size:9px}.footer-note{border-top:1px solid var(--line-soft);font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-faint);margin-top:34px;padding-top:14px;font-size:9px;line-height:2}.conv-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:1fr 1fr;gap:1px;margin-top:14px;display:grid}.conv-cell{background:var(--surface);padding:13px 14px}.conv-cell .cc-label{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--text-faint);font-size:9px}.conv-cell .cc-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;margin-top:4px;font-size:17px;font-weight:700}.conv-cell .cc-err{font-size:10px;font-family:var(--font-mono);color:var(--text-faint);margin-top:2px}@media (prefers-reduced-motion:reduce){.screen,.duct-path,.dim-fade,.hero-result .hr-value{animation:none!important}}@media print{body{background:#fff}.field{background:0 0}.sheet{box-shadow:none;border:none;max-width:100%}.tabbar,.titleblock,.backbar,.actions,.inputs,.angle-chips,.section-label{display:none!important}}
