/* EKO2 CLIMATE LAB · 3D klimato studija – UI. Uses design tokens from app.css (ARCH.md). */
.lab{--lab-h:clamp(500px,70vh,780px);position:relative;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;font-family:inherit;-webkit-tap-highlight-color:transparent}
.lab *{box-sizing:border-box}
.lab button{font:inherit;color:inherit;cursor:pointer}
.lab button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* top: scene tabs + switchers */
.lab-top{display:grid;gap:10px;padding:12px 16px;background:var(--surface);border-bottom:1px solid var(--line)}
.lab-tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;margin:0 -4px;padding:0 4px}
.lab-tabs::-webkit-scrollbar{display:none}
.lab-tab{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:8px 14px 9px;border:1px solid transparent;border-radius:var(--radius-s);background:transparent;text-align:left;position:relative}
.lab-tab b{font-size:14px;font-weight:600;color:var(--ink-2)}
.lab-tab small{font-size:11.5px;color:var(--muted)}
.lab-tab:hover{background:var(--bg)}
.lab-tab.is-on{background:var(--bg);border-color:var(--line)}
.lab-tab.is-on b{color:var(--ink)}
.lab-tab.is-on::after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:2px;border-radius:2px;background:var(--orange)}
.lab-ctrl{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.lab .seg{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;border-radius:var(--radius-s);background:#ECE9E2}
.lab .seg[hidden]{display:none}
.lab .seg button{border:0;background:transparent;padding:7px 12px;border-radius:8px;font-size:13px;font-weight:500;color:var(--ink-2);white-space:nowrap}
.lab .seg button:hover{color:var(--ink)}
.lab .seg button.is-on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgb(15 18 21 / .1)}

/* stage */
.lab-body{position:relative}
.lab-stage{position:relative;height:var(--lab-h);overflow:hidden;background:var(--bg)}
.lab-cv{display:block;width:100%;height:100%;touch-action:none;outline:none}
.lab-load{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:14px}
.lab-lay{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.lab-hs,.lab-tag{position:absolute;left:0;top:0;will-change:transform;white-space:nowrap}
.lab-hs{pointer-events:auto;translate:-9px -50%;display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 3px;min-height:24px;border:1px solid var(--line);border-radius:999px;background:rgb(255 255 255 / .93);font-size:12px;font-weight:500;color:var(--ink);box-shadow:0 1px 2px rgb(15 18 21 / .08),0 4px 12px rgb(15 18 21 / .06);transition:border-color .15s,background .15s}
.lab-hs i{width:14px;height:14px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 3px rgb(29 95 209 / .16);flex:0 0 auto}
.lab-hs:hover{border-color:var(--blue)}
.lab-hs.is-sel{border-color:var(--orange);background:#fff}
.lab-hs.is-sel i{background:var(--orange);box-shadow:0 0 0 3px rgb(244 89 11 / .2)}
.lab:not(.lab--rm) .lab-hs i{animation:labPulse 2.6s ease-in-out infinite}
@keyframes labPulse{50%{box-shadow:0 0 0 6px rgb(29 95 209 / .06)}}
.lab-tag{translate:-50% -50%;padding:3px 8px;border-radius:6px;border:1px solid var(--line);background:rgb(255 255 255 / .86);font-size:11.5px;font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums}
.lab-tag.t-heat{color:var(--heat);border-color:rgb(229 72 43 / .35)}
.lab-tag.t-cool{color:var(--cool);border-color:rgb(30 136 229 / .35)}
.lab-tag.t-warm{color:#B5603F;border-color:rgb(181 96 63 / .3)}
.lab-tag.t-muted{color:var(--muted);font-weight:500}
.lab-tag.t-sel{color:var(--orange);border-color:rgb(244 89 11 / .4)}
.lab-tag.lab-room{background:transparent;border:0;padding:0;font-size:10.5px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}

/* tools */
.lab-tools{position:absolute;top:12px;left:12px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;z-index:3;max-width:calc(100% - 24px)}
.lab-xray{display:inline-flex;align-items:center;gap:10px;padding:12px 18px;border:0;border-radius:12px;background:var(--char);color:#fff !important;font-size:13px;font-weight:600;letter-spacing:.08em;box-shadow:var(--shadow)}
.lab-xray i{width:14px;height:14px;border:2px solid currentColor;border-radius:3px;position:relative}
.lab-xray i::after{content:"";position:absolute;inset:2px;border-radius:1px;background:currentColor;opacity:.35}
.lab-xray.is-on{background:var(--orange)}
.lab-xray.is-on i::after{opacity:1}
.lab-tools2{display:flex;flex-wrap:wrap;gap:6px}
.lab-btn{padding:7px 11px;border:1px solid var(--line);border-radius:var(--radius-s);background:rgb(255 255 255 / .94);font-size:13px;font-weight:500;color:var(--ink-2)}
.lab-btn.is-on{border-color:var(--ink-2);color:var(--ink)}
.lab-tools2 .seg{background:rgb(236 233 226 / .94)}
.lab-layers{position:absolute;top:12px;right:12px;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;max-width:46%;z-index:3}
.lab-ll{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-right:2px}
.lab-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:rgb(255 255 255 / .94);font-size:12.5px;font-weight:500;color:var(--muted)}
.lab-chip i{width:9px;height:9px;border-radius:50%;border:2px solid var(--c);background:transparent}
.lab-chip.is-on{color:var(--ink)}
.lab-chip.is-on i{background:var(--c)}
.lab-chip:disabled{opacity:.38;cursor:default}
.lab-chip--heat{--c:var(--heat)}.lab-chip--cool{--c:var(--cool)}.lab-chip--vent{--c:var(--air)}.lab-chip--dhw{--c:#C2410C}.lab-chip--com{--c:var(--ink-2)}

/* refrigerant cycle */
.lab-cycle{position:absolute;right:12px;bottom:12px;width:220px;padding:8px 12px 10px;border:1px solid var(--line);border-radius:12px;background:rgb(255 255 255 / .95);z-index:3;box-shadow:var(--shadow)}
.lab-cycle[hidden]{display:none}
.lab-cyc-h{display:flex;width:100%;justify-content:space-between;align-items:center;border:0;background:none;padding:2px 0;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.lab-cyc-h i{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px)}
.lab-cyc-h[aria-expanded="true"] i{transform:rotate(-135deg) translateY(-1px)}
.lab-cycle svg{display:block;width:100%;height:auto;margin-top:4px;overflow:visible}
.lab-cycle path{fill:none;stroke-width:2.5}
.lab-cycle .cy-lo{stroke:var(--cool)}.lab-cycle .cy-hi{stroke:var(--heat)}
.lab-cycle .cy-n{cursor:pointer}
.lab-cycle .cy-n circle{fill:#fff;stroke-width:2}
.lab-cycle .cy-lo circle{stroke:var(--cool)}.lab-cycle .cy-hi circle{stroke:var(--heat)}
.lab-cycle .cy-n text{font-size:11px;font-weight:600;text-anchor:middle;fill:var(--ink)}
.lab-cycle .cy-t{font-size:10px;font-weight:500;text-anchor:middle;fill:var(--ink-2)}
.lab-cycle .cy-dot{fill:var(--orange)}
.lab-cyc-d{margin:6px 0 0;font-size:12px;line-height:1.45;color:var(--ink-2)}

/* caption – "what does it really do" */
.lab-cap{position:absolute;left:12px;bottom:12px;max-width:min(470px,calc(100% - 290px));padding:12px 14px 11px;border:1px solid var(--line);border-left:3px solid var(--orange);border-radius:12px;background:rgb(255 255 255 / .95);z-index:3;box-shadow:var(--shadow)}
.lab-cap-h{display:block;font-size:11px;font-weight:600;letter-spacing:.09em;color:var(--ink)}
.lab-cap-t{margin:6px 0 6px;font-size:14px;line-height:1.5;color:var(--ink-2)}
.lab-cap-n{display:block;font-size:12px;color:var(--muted)}

/* info panel (side panel on desktop, bottom sheet on narrow) */
.lab-panel{position:absolute;top:12px;right:12px;bottom:12px;width:min(390px,44%);overflow:auto;overscroll-behavior:contain;padding:20px 20px 18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:0 2px 6px rgb(15 18 21 / .06),0 18px 48px rgb(15 18 21 / .12);z-index:6}
.lab-panel[hidden]{display:none}
.lab--panel .lab-cycle{display:none}
.lab--panel .lab-layers{right:calc(min(390px,44%) + 24px);max-width:calc(56% - 48px)}
.lab-grip{display:none}
.lab-x{position:absolute;top:10px;right:10px;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:var(--surface);font-size:18px;line-height:1;color:var(--ink-2)}
.lab-pb .eyebrow{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 40px 4px 0}
.lab-pb h3{margin:0 40px 10px 0;font-size:20px;font-weight:600;line-height:1.25}
.lab-pb h4{margin:16px 0 4px;font-size:11.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.lab-pb p{margin:0;font-size:14px;line-height:1.55;color:var(--ink-2)}
.lab-pb ul{margin:0;padding-left:18px;font-size:14px;line-height:1.55;color:var(--ink-2)}
.lab-fams{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.lab-fam{border:1px solid var(--line);border-radius:8px;background:var(--bg);padding:5px 9px;font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--ink)}
.lab-fam:hover{border-color:var(--blue);color:var(--blue)}
.lab-pn{margin-top:16px !important;font-size:12.5px !important;color:var(--muted) !important}
.lab-pcta{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.lab-ctl{margin:4px 0 6px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--bg)}
.lab-ctl-h{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.lab-ctl-r{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.lab-ctl small{display:block;margin-top:8px;font-size:12px;color:var(--muted)}
.lab-pow{min-width:96px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:13px;font-weight:600;color:var(--muted)}
.lab-pow.is-on{border-color:var(--blue);color:var(--blue);background:var(--blue-2)}
.lab-stp{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:var(--surface)}
.lab-stp button{width:38px;height:36px;border:0;background:none;font-size:18px}
.lab-stp button:disabled{opacity:.35}
.lab-stp b{min-width:64px;text-align:center;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}

/* footer CTAs */
.lab-foot{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;background:var(--surface);border-top:1px solid var(--line)}
.lab-foot-n{margin-left:auto;font-size:13px;color:var(--muted)}

/* compact (embedded on product pages) */
.lab--compact{--lab-h:420px}
.lab--compact .lab-tabs,.lab--compact .lab-sys{display:none}
.lab--compact .lab-cap{max-width:min(420px,calc(100% - 24px))}

/* narrow / phone */
.lab.is-narrow{--lab-h:min(62vh,560px);border-radius:var(--radius-s)}
.is-narrow .lab-top{padding:10px 12px;gap:8px}
.is-narrow .lab-tab{padding:7px 11px 8px}
.is-narrow .lab-tab small{display:none}
.is-narrow .lab .seg button,.is-narrow .seg button{padding:7px 10px;font-size:12.5px}
.is-narrow .lab-ctrl{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.is-narrow .lab-ctrl::-webkit-scrollbar{display:none}
.is-narrow .lab-ctrl .seg{flex-wrap:nowrap;flex:0 0 auto}
.is-narrow .lab-tools{top:10px;left:10px;gap:6px}
.is-narrow .lab-xray{padding:10px 14px;font-size:12px}
.is-narrow .lab-btn{padding:6px 9px;font-size:12px}
.is-narrow .lab-layers{top:auto;bottom:10px;left:10px;right:10px;max-width:none;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.is-narrow .lab-layers::-webkit-scrollbar{display:none}
.is-narrow .lab-chip{flex:0 0 auto}
.is-narrow .lab-ll{display:none}
.is-narrow .lab-cycle{top:auto;bottom:52px;right:10px;width:auto;max-width:230px;padding:6px 10px}
.is-narrow .lab-cycle .lab-cyc-h{gap:8px}
.is-narrow .lab-cap{position:static;max-width:none;border:0;border-top:1px solid var(--line);border-left:3px solid var(--orange);border-radius:0;box-shadow:none;padding:12px 14px}
.is-narrow .lab-cap-t{font-size:13.5px}
.is-narrow .lab-hs{font-size:11px;padding:2px 8px 2px 2px;min-height:22px}
.is-narrow .lab-hs i{width:12px;height:12px}
.is-narrow .lab-room{display:none}
.is-narrow .lab-panel{top:auto;left:6px;right:6px;bottom:6px;width:auto;max-height:68%;padding:22px 16px 16px;border-radius:18px 18px 12px 12px}
.is-narrow .lab-panel.is-full{max-height:calc(100% - 12px)}
.is-narrow .lab-grip{display:block;position:absolute;top:0;left:50%;width:80px;height:20px;transform:translateX(-50%);cursor:grab;touch-action:none}
.is-narrow .lab-grip::before{content:"";position:absolute;top:8px;left:20px;right:20px;height:4px;border-radius:2px;background:var(--silver)}
.is-narrow.lab--panel .lab-layers{right:10px;max-width:none;visibility:hidden}
.is-narrow .lab-foot{padding:10px 12px;gap:8px}
.is-narrow .lab-foot .btn{flex:1 1 auto;justify-content:center}
.is-narrow .lab-foot-n{display:none}
@media (max-width:760px){.lab-tab small{display:none}}
@media (prefers-reduced-motion:reduce){.lab-hs i{animation:none!important}.lab *{transition:none!important}}

/* ===== scene "install" – installation timeline ===== */
.lab--install .lab-cap,.lab--install .lab-tools,.lab--install .lab-layers,.lab--install .lab-cycle{display:none!important}
.lab--install .lab-stage{background:linear-gradient(180deg,#FBFAF7 0%,var(--bg) 70%)}
.ins{position:absolute;inset:0;pointer-events:none;z-index:4;font-variant-numeric:tabular-nums}
.ins>*{pointer-events:auto}
.ins-card,.ins-side,.ins-bar,.ins-pass{background:rgb(255 255 255 / .94);border:1px solid var(--line);box-shadow:0 1px 2px rgb(15 18 21 / .05),0 12px 32px rgb(15 18 21 / .08);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.ins-card{position:absolute;top:16px;left:16px;width:min(410px,38%);padding:16px 18px 15px;border-radius:16px}
.ins-k{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:8px}
.ins-n{font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.ins-who{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;background:var(--bg);border:1px solid var(--line);font-size:11.5px;font-weight:500;color:var(--ink-2)}
.ins-who::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--blue)}
.ins-who.is-spec{border-color:rgb(244 89 11 / .35);color:#B4410A;background:#FFF5EF}
.ins-who.is-spec::before{background:var(--orange)}
.ins-h{margin:0 0 6px;font-size:20px;font-weight:600;line-height:1.25;color:var(--ink)}
.ins-t{margin:0;font-size:14px;line-height:1.55;color:var(--ink-2)}
.ins-card.is-in .ins-h,.ins-card.is-in .ins-t,.ins-mt.is-in>*{animation:insIn .55s cubic-bezier(.2,.7,.2,1) both}
.ins-card.is-in .ins-t,.ins-mt.is-in .ins-t{animation-delay:.06s}
@keyframes insIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
/* step list */
.ins-side{position:absolute;top:16px;right:16px;width:250px;max-height:calc(100% - 104px);overflow:auto;overscroll-behavior:contain;padding:12px 8px 8px;border-radius:16px;scrollbar-width:thin}
.ins-lh{padding:0 10px 6px;font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.ins-list{list-style:none;margin:0;padding:0;position:relative}
.ins-list button{position:relative;display:flex;align-items:center;gap:10px;width:100%;padding:7px 10px;border:0;border-radius:10px;background:none;text-align:left;font-size:13px;line-height:1.3;color:var(--ink-2);overflow:hidden}
.ins-list button:hover{background:var(--bg)}
.ins-li-n{flex:0 0 22px;height:22px;display:grid;place-items:center;border-radius:50%;border:1.5px solid var(--silver);font-size:11px;font-weight:600;color:var(--muted)}
.ins-list .is-done .ins-li-n{border-color:var(--ink-2);background:var(--ink-2);color:#fff}
.ins-list .is-on{background:var(--bg);color:var(--ink);font-weight:600}
.ins-list .is-on .ins-li-n{border-color:var(--orange);background:var(--orange);color:#fff}
.ins-list button i{position:absolute;left:10px;right:10px;bottom:2px;height:2px;border-radius:2px;background:var(--orange);transform-origin:left;transform:scaleX(0);opacity:0}
.ins-list .is-on i{opacity:1;transform:scaleX(var(--k,0))}
.is-last .ins-side{opacity:0;pointer-events:none;transition:opacity .3s}
/* control bar */
.ins-bar{position:absolute;left:16px;right:16px;bottom:16px;display:flex;align-items:center;gap:6px;padding:6px 16px 6px 6px;border-radius:999px}
.ins-b{flex:0 0 auto;width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--ink)}
.ins-b:hover{background:var(--bg)}
.ins-b svg,.ins-play svg{width:20px;height:20px;fill:currentColor}
.ins-bar .ins-play{width:44px;height:44px;background:var(--ink);color:#fff}
.ins-bar .ins-play:hover{background:#000}
.ins-scrub{position:relative;flex:1 1 auto;height:36px;margin:0 8px;cursor:pointer;touch-action:none;outline-offset:4px}
.ins-track{position:absolute;left:0;right:0;top:50%;height:4px;margin-top:-2px}
.ins-track span{position:absolute;top:0;height:4px;padding:0 1.5px}
.ins-track span::before{content:"";position:absolute;inset:0 1.5px;border-radius:2px;background:#E4E0D8}
.ins-track i{position:absolute;inset:0 1.5px;border-radius:2px;background:var(--orange);transform-origin:left;transform:scaleX(0)}
.ins-head{position:absolute;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:#fff;border:2px solid var(--orange);box-shadow:0 1px 4px rgb(15 18 21 / .2);pointer-events:none}
.ins-cnt{flex:0 0 auto;min-width:44px;text-align:right;font-size:13px;font-weight:600;color:var(--ink-2)}
.ins-lt{display:none;width:auto;padding:0 12px;border-radius:999px;border:1px solid var(--line)!important;font-size:12.5px;font-weight:600}
/* 3D tags */
.lab-tag.ins-tag{padding:4px 9px;border-radius:999px;background:rgb(255 255 255 / .92);box-shadow:0 1px 2px rgb(15 18 21 / .06),0 4px 14px rgb(15 18 21 / .06);font-weight:600}
.lab-tag.t-blue{color:var(--blue);border-color:rgb(29 95 209 / .3)}
.lab-tag.ins-gauge{padding:7px 12px 7px 7px;border-radius:14px;white-space:nowrap;border-color:rgb(244 89 11 / .35)}
.ins-g{display:flex;align-items:center;gap:9px}
.ins-g svg{width:36px;height:36px;flex:0 0 auto}
.ins-g svg circle:first-child{fill:#fff;stroke:var(--ink-2);stroke-width:2}
.ins-g svg path{fill:none;stroke:#D9D4CB;stroke-width:3;stroke-linecap:round}
.ins-g svg line{stroke:var(--orange);stroke-width:2.4;stroke-linecap:round}
.ins-g .ins-g-c{fill:var(--ink)}
.ins-g-n{transform-origin:20px 20px;transform:rotate(-115deg);animation:insGauge 3.2s ease-in-out infinite}
@keyframes insGauge{0%{transform:rotate(-115deg)}55%,100%{transform:rotate(-20deg)}}
.ins-g>span{display:flex;flex-direction:column;line-height:1.25}
.ins-g b{font-size:12.5px;color:var(--ink)}
.ins-g small{font-size:11.5px;font-weight:500;color:#B4410A}
/* equipment passport card (step 10) */
.ins-pass{position:absolute;right:24px;top:50%;width:min(320px,calc(100% - 48px));padding:18px 18px 16px;border-radius:18px;z-index:5;transform:translateY(-50%);box-shadow:0 2px 6px rgb(15 18 21 / .06),0 24px 60px rgb(15 18 21 / .16)}
.ins-pass[hidden]{display:none}
.ins-pass.is-in{animation:insPass .7s cubic-bezier(.2,.7,.2,1) both}
@keyframes insPass{from{opacity:0;transform:translateY(calc(-50% + 18px)) scale(.98)}to{opacity:1;transform:translateY(-50%)}}
.ins-pk{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.ins-logo{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;letter-spacing:.12em;color:var(--ink)}
.ins-logo::before{content:"";width:10px;height:10px;border-radius:3px;background:var(--orange)}
.ins-ex{padding:2px 8px;border-radius:999px;background:var(--bg);border:1px solid var(--line);font-size:11px;color:var(--muted)}
.ins-pass h4{margin:0 0 10px;font-size:18px;font-weight:600}
.ins-pass dl{margin:0;display:grid;gap:0}
.ins-pass dl div{display:grid;grid-template-columns:1fr 1.25fr;gap:10px;padding:7px 0;border-top:1px solid var(--line)}
.ins-pass dt{font-size:12px;color:var(--muted)}
.ins-pass dd{margin:0;font-size:12.5px;font-weight:500;color:var(--ink)}
.ins-pass p{margin:10px 0 12px;font-size:12.5px;color:var(--ink-2)}
.ins-pcta{display:inline-flex;padding:9px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:13px;font-weight:600;color:var(--ink)}
.ins-pcta:hover{border-color:var(--orange);color:#B4410A}
.lab:not(.is-narrow) .is-last~.ins-pass,.lab:not(.is-narrow) .ins-pass{right:24px}
/* compact / hero embed */
.lab--compact.lab--install .lab-top,.lab--compact.lab--install .lab-foot{display:none}
.lab--compact.lab--install{border:0;border-radius:var(--radius)}
.ins--mini{z-index:4}
.ins-mini{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"p t" "d d";align-items:center;gap:10px 14px;padding:40px 20px 16px;background:linear-gradient(0deg,rgb(246 244 239 / .97) 0%,rgb(246 244 239 / .9) 55%,rgb(246 244 239 / 0) 100%);pointer-events:auto}
.ins-mini .ins-play{grid-area:p;width:46px;height:46px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--ink);color:#fff;box-shadow:0 6px 18px rgb(15 18 21 / .18)}
.ins-mt{grid-area:t;min-width:0}
.ins-mt .ins-n{display:block;margin-bottom:2px}
.ins-mt .ins-h{margin:0;font-size:17px}
.ins-mt .ins-t{margin-top:2px;font-size:13.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:640px}
.ins-dots{grid-area:d;display:flex;gap:2px;flex-wrap:wrap}
.ins-dots button{display:grid;place-items:center;height:22px;padding:0 3px;border:0;background:none}
.ins-dots i{display:block;width:8px;height:6px;border-radius:3px;background:#D6D1C7;transition:width .3s}
.ins-dots .is-done i{background:var(--ink-2)}
.ins-dots .is-on i{width:30px;background:linear-gradient(90deg,var(--orange) calc(var(--k,0) * 100%),#D6D1C7 0)}
.lab--compact .ins-pass{top:16px;right:16px;transform:none;width:min(290px,calc(100% - 32px));padding:14px 14px 12px}
.lab--compact .ins-pass.is-in{animation-name:insPassC}
@keyframes insPassC{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.lab--compact .ins-pass p{display:none}
/* narrow / phone */
.is-narrow .ins:not(.ins--mini){position:static;display:flex;flex-direction:column}
.is-narrow .ins-bar{order:1;position:static;border-radius:0;border:0;border-top:1px solid var(--line);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;padding:8px 10px 8px 6px;gap:2px}
.is-narrow .ins-card{order:2;position:static;width:auto;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none;padding:12px 16px 14px;-webkit-backdrop-filter:none;backdrop-filter:none}
.is-narrow .ins-h{font-size:17px}
.is-narrow .ins-t{font-size:13.5px}
.is-narrow .ins-side{order:3;display:none;position:static;width:auto;max-height:none;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none;padding:8px 6px}
.is-narrow .ins.is-list .ins-side{display:block}
.is-narrow .is-last .ins-side{opacity:1;pointer-events:auto}
.is-narrow .ins-lt{display:inline-flex;height:34px;align-items:center;margin-left:4px}
.is-narrow .ins-b{width:36px;height:36px}
.is-narrow .ins-bar .ins-play{width:40px;height:40px}
.is-narrow .ins-scrub{margin:0 6px}
.is-narrow .ins-cnt{min-width:36px;font-size:12px}
.is-narrow .ins-pass{top:auto;left:10px;right:10px;bottom:10px;width:auto;transform:none;padding:14px}
.is-narrow .ins-pass.is-in{animation-name:insPassC}
.is-narrow .ins-pass p{display:none}
.is-narrow .ins-pass dl div{padding:5px 0}
.is-narrow .lab-tag.ins-tag{font-size:10.5px;padding:3px 7px}
.is-narrow .ins-g svg{width:28px;height:28px}
.is-narrow .ins-g b{font-size:11px}.is-narrow .ins-g small{font-size:10.5px}
.is-narrow .ins-mini{padding:34px 14px 10px;gap:8px 12px}
.is-narrow .ins-mini .ins-play{width:42px;height:42px}
.is-narrow .ins-mt .ins-h{font-size:15px}
.is-narrow .ins-mt .ins-t{font-size:12.5px}
@media (prefers-reduced-motion:reduce){.ins-g-n{animation:none;transform:rotate(-40deg)}.ins-card.is-in .ins-h,.ins-card.is-in .ins-t,.ins-mt.is-in>*,.ins-pass.is-in{animation:none!important}}
.is-narrow .ins-cnt{display:none}
.is-narrow .ins-lt{padding:0 10px;font-size:12px;margin-left:2px}
@media (max-width:360px){.is-narrow .ins-prev,.is-narrow .ins-next{width:30px}}

/* ===== house heating experience (house + air-water | geothermal) ===== */
.lab--heat .lab-tools,.lab--heat .lab-layers,.lab--heat .lab-floors{display:none!important}
.ht{position:absolute;top:12px;left:12px;z-index:4;display:flex;flex-wrap:wrap;align-items:center;gap:8px;max-width:calc(100% - 24px)}
.ht-tour{display:inline-flex;align-items:center;gap:10px;padding:11px 18px 11px 14px;border:0;border-radius:999px;background:var(--ink);color:#fff!important;font-size:13.5px;font-weight:600;box-shadow:0 6px 18px rgb(15 18 21 / .18)}
.ht-tour i{width:18px;height:18px;border-radius:50%;background:var(--orange);position:relative;box-shadow:0 0 0 4px rgb(244 89 11 / .25)}
.ht-tour i::after{content:"";position:absolute;left:7px;top:5px;border-left:6px solid #fff;border-top:4px solid transparent;border-bottom:4px solid transparent}
.ht-tour.is-on i::after{left:6px;top:6px;width:6px;height:6px;border:0;background:#fff;border-radius:1px}
.lab:not(.lab--rm) .ht-tour:not(.is-on) i{animation:labPulse 2.6s ease-in-out infinite}
.ht-t{display:inline-flex;align-items:center;gap:10px;padding:7px 14px;border:1px solid var(--line);border-radius:999px;background:rgb(255 255 255 / .94);font-size:12.5px;color:var(--ink-2);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.ht-t span{font-weight:600}
.ht-t b{min-width:52px;font-size:14px;font-weight:600;color:var(--cool);font-variant-numeric:tabular-nums}
.ht-t small{font-size:11px;color:var(--muted)}
.ht-t input{-webkit-appearance:none;appearance:none;width:150px;height:4px;border-radius:2px;background:linear-gradient(90deg,var(--cool) 0%,#9BC7EE var(--p,50%),#E4E0D8 var(--p,50%));outline:none;cursor:pointer}
.ht-t input::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid var(--cool);box-shadow:0 1px 4px rgb(15 18 21 / .25)}
.ht-t input::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--cool)}
.ht .seg{background:rgb(236 233 226 / .94)}
.lab-cap.is-tour{border-left-color:var(--orange)}
.lab-cap .ht-ct{display:block;margin-bottom:3px;font-size:16px;font-weight:600;color:var(--ink)}
.ht-dots{display:flex;gap:4px;margin-top:9px}
.ht-dots i{width:8px;height:5px;border-radius:3px;background:#DAD5CC;transition:width .3s}
.ht-dots .is-done{background:var(--ink-2)}
.ht-dots .is-on{width:26px;background:var(--orange)}
.lab.is-night .lab-stage{background:#161B22}
.lab.is-night .lab-room{color:#C9CDD2}
.lab--compact .ht{display:none}
.is-narrow .ht{top:8px;left:8px;gap:6px}
.is-narrow .ht-tour{padding:9px 14px 9px 11px;font-size:12.5px}
.is-narrow .ht-t{padding:5px 10px;gap:6px}.is-narrow .ht-t input{width:96px}.is-narrow .ht-t small,.is-narrow .ht-t span{display:none}
.is-narrow.lab--heat .lab-cycle{display:none}
.lab.is-tour .lab-hs{display:none}
.is-narrow.lab--heat .lab-hs{padding:3px}.is-narrow.lab--heat .lab-hs span{display:none}
.lab .btn-primary{color:#fff}.lab .btn-primary:hover{color:#fff}.lab .btn-ghost{color:var(--ink)}
