.duct-page{--paper:#f4f3ef;--blue:#2146c7;background:var(--paper);color:#19212b}.duct-intro{padding:38px 0 30px;display:flex;align-items:end;justify-content:space-between;gap:24px}.duct-intro h1{font-size:clamp(48px,7vw,88px);letter-spacing:-.065em;line-height:1;margin:16px 0 0;font-weight:500}.duct-intro h1 span{color:var(--blue)}.duct-intro p{max-width:310px;font-size:17px;line-height:1.5;margin:0 0 4px}.duct-breadcrumb{font:12px var(--font-mono);color:#606771}.duct-breadcrumb a{color:inherit}.instrument{border:1px solid #b8bec4;background:#fafbf9;display:grid;grid-template-columns:minmax(0,1fr) 302px;box-shadow:0 16px 35px #17253408}.scene-panel{position:relative;min-width:0;border-right:1px solid #b8bec4;display:flex;flex-direction:column}.scene-title{padding:22px 25px;display:flex;justify-content:space-between;align-items:center;gap:14px;font:11px var(--font-mono);letter-spacing:.08em;color:#526071}.scene-title strong{color:#19212b;font-weight:500}.scene-wrap{position:relative;flex:1;min-height:390px;overflow:hidden;background:radial-gradient(ellipse at 50% 45%,#fff 0,#f6f7f4 55%,#e9edec 100%)}#duct-canvas{display:block;width:100%;height:100%;position:absolute;inset:0;touch-action:pan-y;cursor:grab}#duct-canvas:active{cursor:grabbing}#duct-canvas:focus-visible{outline:3px solid var(--blue);outline-offset:-4px}.scene-readout{position:absolute;left:26px;top:20px;pointer-events:none}.scene-readout small{display:block;font:10px var(--font-mono);letter-spacing:.09em;color:#687582}.scene-readout strong{display:block;font:500 40px var(--font-mono);letter-spacing:-.05em;margin-top:2px}.scene-readout span{font-size:13px;color:#65717c}.scene-caption{position:absolute;bottom:19px;left:26px;right:24px;display:flex;justify-content:space-between;gap:15px;align-items:end;color:#667380;font:10px/1.5 var(--font-mono);pointer-events:none}.scene-caption b{font-weight:400;max-width:190px}.scene-controls{display:flex;gap:7px;flex-wrap:wrap;padding:14px 23px;border-top:1px solid #d3d7d9;background:#f7f8f5}.instrument button{border:1px solid #b8bec4;background:transparent;color:inherit;padding:9px 12px;font:12px var(--font-mono);cursor:pointer}.instrument button:hover{border-color:var(--blue);color:var(--blue);background:#2146c708}.instrument button[aria-pressed=true]{background:#233fbd;color:#fff;border-color:#233fbd}.instrument button:focus-visible,.instrument input:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.scene-controls #share{margin-left:auto}.control-panel{padding:25px 23px 22px;display:flex;flex-direction:column;gap:25px;background:#fff}.control-label{font:11px var(--font-mono);text-transform:uppercase;letter-spacing:.07em;display:flex;justify-content:space-between;align-items:center;color:#647080}.shape-switch{display:grid;grid-template-columns:1fr 1fr;margin-top:10px}.shape-switch button+button{border-left:0}.value-entry{display:flex;align-items:baseline;margin:8px 0 10px;gap:8px}.value-entry input{border:0;border-bottom:1px solid #c8cdd0;background:transparent;width:100%;min-width:0;font:400 34px var(--font-mono);letter-spacing:-.04em;padding:0 0 3px;color:#18222e;border-radius:0}.value-entry span{font:11px var(--font-mono);color:#69747d;white-space:nowrap}input[type=range]{width:100%;height:18px;accent-color:var(--blue);cursor:ew-resize;margin:0}.range-ends{display:flex;justify-content:space-between;font:10px var(--font-mono);color:#859099;margin-top:3px}.dimensions{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:18px}.dimensions .control-label{font-size:10px;letter-spacing:.04em;color:#77818b}.dimensions .value-entry{margin:8px 0 12px}.dimensions .value-entry input{font-size:28px}.dimension-round{grid-column:1/-1}.control-panel [hidden]{display:none!important}.control-panel .fit-button{width:100%;background:#eaf0ff;border-color:#ced8f8;color:#2146c7;line-height:1.5;margin-top:20px}.fit-note{font:11px/1.5 var(--font-mono);color:#647080;margin:8px 0 0}.metrics{display:grid;grid-template-columns:repeat(3,1fr);margin-top:0;border:1px solid #b8bec4;border-top:0;background:#fff}.metric{padding:25px 28px;border-right:1px solid #d5dadd}.metric:last-child{border:0}.metric-label{font:10px var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:#62707c}.metric-value{font:400 clamp(25px,3vw,38px) var(--font-mono);letter-spacing:-.055em;margin:9px 0 3px}.metric-value small{font-size:12px;letter-spacing:0;color:#687582}.metric-note{font-size:12px;color:#687582;margin:0}.under-instrument{display:flex;justify-content:space-between;gap:20px;margin:13px 0 45px;font:11px/1.5 var(--font-mono);color:#63717c}.under-instrument p{margin:0}.duct-details{display:grid;grid-template-columns:1fr 1.45fr;gap:65px;padding:38px 0 55px;border-top:1px solid #bdc4c7}.duct-details h2{font-size:32px;letter-spacing:-.035em;line-height:1.15;margin:0 0 15px}.duct-details p{font-size:15px;line-height:1.7;color:#53616c;max-width:530px}.duct-details details{border-bottom:1px solid #cbd0d2;padding:16px 0}.duct-details summary{font-size:15px;cursor:pointer}.duct-details details p{font-size:13px;margin-top:12px}.settings-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:16px 0}.settings-row label{font:12px var(--font-mono)}.settings-row input{display:block;width:100%;padding:9px;margin-top:6px;background:#fff;border:1px solid #bec7cc;font:16px var(--font-mono)}#duct-status{min-height:18px;color:#284abe;max-width:560px}#duct-error:empty{display:none}#duct-error{color:#9d3e20;font-size:13px;min-height:0;margin:0}.duct-cta{font:12px var(--font-mono);color:var(--blue)}.print-title{display:none}@media(max-width:900px){.instrument{grid-template-columns:minmax(0,1fr) 250px}.control-panel{padding:20px 17px}.scene-wrap{min-height:390px}.scene-readout strong{font-size:32px}.duct-intro p{max-width:260px;font-size:15px}}@media(max-width:680px){.duct-intro{padding:25px 0;align-items:start;flex-direction:column;gap:18px}.duct-intro h1{font-size:60px}.duct-intro p{max-width:360px}.instrument{grid-template-columns:1fr}.scene-panel{border-right:0;border-bottom:1px solid #b8bec4}.scene-wrap{height:330px;min-height:330px}.scene-title{padding:17px}.scene-readout{left:18px;top:12px}.scene-caption{left:18px;right:18px}.scene-controls{padding:12px;gap:5px}.instrument button{font-size:11px;padding:9px}.control-panel{display:grid;grid-template-columns:1fr 1fr;gap:23px 20px;padding:22px 18px}.shape-field{grid-column:1/-1}.control-panel .size-field{grid-column:1/-1}.shape-switch{max-width:100%}.control-panel .air-field{grid-column:1/-1}.dimensions{gap:25px}.metrics{grid-template-columns:1fr}.metric{padding:16px 19px;display:grid;grid-template-columns:1fr auto;align-items:center;border-right:0;border-bottom:1px solid #d5dadd}.metric-value{margin:0}.metric-note{grid-column:1/-1;margin-top:5px}.under-instrument{flex-direction:column;gap:6px;margin-bottom:30px}.duct-details{grid-template-columns:1fr;gap:14px;padding:28px 0}.scene-controls #share{margin-left:auto}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}@media print{.site-header,.site-footer,.scene-controls,.duct-details,.under-instrument{display:none}.duct-intro{padding:20px 0}.instrument{box-shadow:none}.control-panel{gap:15px}.scene-wrap{min-height:320px}.metrics{break-inside:avoid}.wrap{max-width:none!important}.duct-page{background:white}.print-title{display:block}}

@media(max-width:680px){.scene-controls{gap:4px;padding:10px}.scene-controls button{padding:8px 7px;font-size:10px}.scene-controls #share{margin-left:auto}.scene-title{font-size:9px;letter-spacing:.03em}.scene-caption{font-size:9px}.scene-readout strong{font-size:28px}}
