/* ===== Bynamo Engineering — interactive site ===== */
*{box-sizing:border-box}
:root{--hh:82px;--gold:#c7a66d;--ink:#101b27;--navy:#091824;--paper:#f3f2ed}
html{scroll-behavior:smooth;scroll-padding-top:var(--hh)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif;overflow-x:hidden}
a{color:inherit;text-decoration:none}
.wrap{width:min(1160px,calc(100% - 64px));margin:auto}

/* top bar + header */
.topline{background:#07131e;color:#aeb9c3;font-size:10px;letter-spacing:.15em}
.top-inner{height:34px;display:flex;align-items:center;justify-content:space-between}
.header{background:#0a1723ee;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;border-bottom:1px solid #ffffff17;position:sticky;top:0;z-index:50}
.nav{height:var(--hh);display:flex;align-items:center;justify-content:space-between}
.progress{position:absolute;left:0;bottom:-1px;height:2px;width:100%;pointer-events:none}
.progress i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#8a744f,var(--gold),#f0dcb4);transform:scaleX(0);transform-origin:0 50%}
.brand{display:flex;align-items:center;gap:12px;font:800 17px Manrope,sans-serif;letter-spacing:.11em}
.brand-sub{display:block;font:600 8px "DM Sans",sans-serif;letter-spacing:.34em;color:#aab5bf;margin-top:4px}
.brand-mark{width:30px;height:30px;display:flex;align-items:flex-end;gap:3px;transform:skew(-22deg)}
.brand-mark i{display:block;width:7px;background:var(--gold);transform-origin:bottom;transition:transform .35s cubic-bezier(.3,1.6,.5,1)}
.brand-mark i:nth-child(1){height:15px}.brand-mark i:nth-child(2){height:23px}.brand-mark i:nth-child(3){height:19px}
.brand:hover .brand-mark i:nth-child(1){transform:scaleY(1.5)}.brand:hover .brand-mark i:nth-child(2){transform:scaleY(.7)}.brand:hover .brand-mark i:nth-child(3){transform:scaleY(1.25)}
.nav-links{display:flex;align-items:center;gap:34px;font-size:12px;color:#d2d8dd}
.nav-links a{position:relative}
.nav-links a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.nav-links a:not(.nav-cta):hover::after,.nav-links a.active::after{transform:scaleX(1)}
.nav-links a:hover,.nav-links a.active{color:#d8b77b}
.nav-cta{border:1px solid #7d6c4f;padding:13px 17px;color:#e6d4b2!important;transition:background .3s,color .3s}
.nav-cta:hover{background:var(--gold);color:#111b24!important}
.nav-cta span,.btn span{margin-left:14px;display:inline-block;transition:transform .3s}
.nav-cta:hover span,.btn:hover span{transform:translate(3px,-3px)}
.menu-toggle{display:none;background:none;border:0}

/* ===== reveal system ===== */
.js .rv{opacity:0;transform:translateY(36px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--d,0)*.09s)}
.js .rv.in{opacity:1;transform:none}
.ln{display:block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}
.li{display:inline-block}
.js .li{transform:translateY(112%);transition:transform 1.05s cubic-bezier(.16,1,.3,1)}
.js .reveal-lines.in .li,.js .in .li,.js .li.in{transform:none}
.js .reveal-lines .ln:nth-child(2) .li{transition-delay:.1s}
.js .reveal-lines .ln:nth-child(3) .li{transition-delay:.2s}
.js .ex-text h2 .ln:nth-child(2) .li,.js .hz-intro h2 .ln:nth-child(2) .li{transition-delay:.1s}

/* ===== typography ===== */
.eyebrow{font-size:10px;font-weight:700;letter-spacing:.2em;color:#b6a078;display:flex;align-items:center;gap:12px}
.eyebrow-line{height:1px;width:28px;background:var(--gold)}
.eyebrow.dark{color:#8a744f}
.hero h1,.section h2,.explode h2,.hz h2{font:600 clamp(43px,5.4vw,72px)/1.1 Manrope,sans-serif;letter-spacing:-.055em;margin:28px 0 22px}
.hero h1 em,.section h2 em,.explode h2 em,.hz h2 em{font-style:normal;color:#c7a66d}

/* ===== HERO ===== */
.hero{position:relative;overflow:hidden;min-height:max(680px,calc(100vh - 116px));background:radial-gradient(ellipse at 75% 40%,#10283a 0%,#091824 60%);color:#fff;display:flex;align-items:center}
.hero-field{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero-content{position:relative;z-index:2;padding-top:70px;padding-bottom:70px;pointer-events:none}
.hero-content a,.hero-content .btn{pointer-events:auto}
.hero-content>*{max-width:560px}
.hero-copy{max-width:480px;color:#b6c0c8;font-size:15px;line-height:1.85}
.hero-actions{display:flex;align-items:center;gap:30px;margin-top:36px}
.btn{display:inline-flex;align-items:center;justify-content:center;border:0;padding:17px 22px;font:700 12px "DM Sans";cursor:pointer;will-change:transform}
.btn-gold{background:var(--gold);color:#111b24;transition:background .3s,box-shadow .3s}
.btn-gold:hover{background:#d9bb85;box-shadow:0 10px 40px #c7a66d55}
.text-link{font-size:12px;color:#e1e5e8}
.text-link span{margin-left:12px;color:var(--gold);display:inline-block;transition:transform .3s}
.text-link:hover span{transform:translateX(6px)}
.hero-foot{display:flex;justify-content:space-between;margin-top:80px;color:#82909b;font-size:9px;letter-spacing:.15em}
.hero-foot b{color:var(--gold)}
.hero-art{position:absolute;right:2%;top:0;bottom:0;width:52%;z-index:1}
.art-glow{position:absolute;width:min(520px,80%);aspect-ratio:1;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,#c49c5b3a,#c49c5b00 70%);pointer-events:none;animation:glow 6s ease-in-out infinite}
@keyframes glow{50%{opacity:.6;transform:translate(-50%,-50%) scale(1.12)}}
.blueprint-label{position:absolute;color:#8395a1;font-size:8px;letter-spacing:.2em;pointer-events:none}
.label-a{top:50px;right:12%}.label-b{bottom:34px;right:0}
.stage-hint{position:absolute;left:50%;bottom:34px;transform:translateX(-50%);display:flex;align-items:center;gap:10px;font-size:8px;letter-spacing:.2em;color:#9fb0bb;white-space:nowrap;pointer-events:none}
.stage-hint .dot{width:6px;height:6px;border-radius:50%;background:#65d79b;box-shadow:0 0 0 0 #65d79b88;animation:ping 2s infinite}
@keyframes ping{70%{box-shadow:0 0 0 9px #65d79b00}100%{box-shadow:0 0 0 0 #65d79b00}}
.scroll-cue{position:absolute;left:50%;bottom:16px;z-index:3;display:flex;flex-direction:column;align-items:center;gap:8px;font-size:8px;letter-spacing:.3em;color:#7f8e99;transform:translateX(-50%)}
.scroll-cue i{width:1px;height:34px;background:linear-gradient(var(--gold),transparent);animation:cue 2s infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ===== 3D stage + cabinet ===== */
.cab-stage{position:absolute;inset:0;perspective:1500px;perspective-origin:50% 42%;cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.cab-stage.dragging{cursor:grabbing}
.cab-rot,.cab,.cab *,.oz,.oz *{transform-style:preserve-3d}
.cab-rot{position:absolute;left:50%;top:50%;width:0;height:0;will-change:transform}
.cab{position:absolute;left:-120px;top:-170px;width:240px;height:340px}
.sw,.ly{position:absolute;pointer-events:none}
.sw{left:0;top:0;width:240px;height:340px}
.ly{left:18px;top:18px;width:204px;height:304px}
.f{position:absolute;overflow:hidden;opacity:var(--op,1);transition:opacity .45s}
.f::after{content:"";position:absolute;inset:0;background:#030a12;opacity:var(--sh,0);pointer-events:none}
.shell{background:linear-gradient(135deg,#e6e9e7,#aab5b5 42%,#d3d8d4 68%,#8c999c);border:1px solid #f4f4f1}
.shell.in-back{background:linear-gradient(160deg,#9aa6a8,#6c7b80)}
.plate{background:
  radial-gradient(circle,#0003 1.2px,transparent 1.6px) 0 0/17px 17px,
  linear-gradient(160deg,#d6ae6c,#b98b4b);border:1px solid #e8c88f}
.door-front{backface-visibility:hidden;-webkit-backface-visibility:hidden;background:linear-gradient(115deg,#e6e8e7,#aeb8b8 35%,#d6d9d5 70%,#8d9a9d);border:1px solid #f5f5f2;box-shadow:inset 8px 0 15px #fff8,inset -10px 0 20px #28323b55;color:#24313a;padding:25px 22px}
.door-back{backface-visibility:hidden;-webkit-backface-visibility:hidden;background:linear-gradient(160deg,#9aa6a8,#76858a);border:1px solid #dfe4e2}
.door{position:absolute;left:0;top:0;width:240px;height:340px;transform-origin:0 50%}
.panel-brand{font:800 13px Manrope;letter-spacing:.14em}
.panel-brand small{display:block;font:600 7px "DM Sans";letter-spacing:.2em;color:#66747a;margin-top:4px}
.screen-wrap{margin:30px auto 20px;width:172px;height:122px;background:#142b34;border:7px solid #66757a;box-shadow:0 0 0 1px #fff,0 0 22px #5cba9155;position:relative}
.screen-wrap canvas{display:block;width:158px;height:108px}
.knobs{display:flex;gap:15px;justify-content:center;align-items:center}
.knobs i{width:15px;height:15px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#75848a 60%,#344149);border:1px solid #526168}
.knobs i:nth-child(2){background:radial-gradient(circle at 35% 30%,#fff,#b58d54 60%,#5b4327)}
.knobs i.lamp{background:#58d392;box-shadow:0 0 10px #58d392;border-color:#2a7a55;animation:lamp 2.4s infinite}
.knobs i.lamp.amber{background:#e8b04c;box-shadow:0 0 10px #e8b04c;border-color:#8a6420;animation-delay:.8s}
@keyframes lamp{50%{opacity:.45}}
.vents{margin:22px auto 0;width:112px;height:30px;background:repeating-linear-gradient(0deg,#758287 0 2px,#c7cecb 2px 5px)}
.bx{position:absolute}
.bf{position:absolute;overflow:hidden;opacity:var(--op,1);transition:opacity .45s;backface-visibility:hidden}
.bf::after{content:"";position:absolute;inset:0;background:#030a12;opacity:var(--sh,0);pointer-events:none}
.bx.brk .bf{background:#2b363e}
.bx.brk .bf.front{background:linear-gradient(90deg,#313d45,#212b32)}
.bx.brk .lever{position:absolute;left:50%;top:7px;width:9px;height:16px;margin-left:-4.5px;background:#eef0ee;border-radius:2px;box-shadow:0 2px 0 #9ca6a6}
.bx.brk.on .lever{top:22px}
.bx.brk .lbl{position:absolute;left:3px;right:3px;bottom:5px;height:9px;background:#d5b378;border-radius:1px}
.bx.brk.g .lbl{background:#68bf97}
.bx.ctc .bf{background:#3a4650}
.bx.ctc .bf.front{background:linear-gradient(180deg,#46535e 0 18%,#3a4650 18% 78%,#2e3841 78%)}
.bx.ctc .coil{position:absolute;left:8px;right:8px;top:24px;height:18px;background:var(--gold);opacity:.85}
.bx.ctc .scr{position:absolute;top:5px;width:8px;height:8px;border-radius:50%;background:#9aa4a6;border:1px solid #1c252c}
.bx.plc .bf{background:#1d2a33}
.bx.plc .bf.front{background:linear-gradient(180deg,#26353f,#17222a)}
.bx.plc .led{position:absolute;top:9px;width:6px;height:6px;border-radius:50%;background:#58d392;box-shadow:0 0 8px #58d392;animation:lamp 1.6s infinite}
.bx.plc .led.a{background:#e8b04c;box-shadow:0 0 8px #e8b04c;animation-delay:.5s}
.bx.plc .plc-t{position:absolute;left:8px;bottom:9px;font:700 7px "DM Sans";letter-spacing:.2em;color:#9fb1ba}
.bx.plc .slot{position:absolute;right:9px;top:26px;width:34px;height:20px;background:repeating-linear-gradient(0deg,#0b1319 0 2px,#2c3b45 2px 4px)}
.bx.trm .bf{background:#c8cdcc}
.bx.trm .bf.front{background:linear-gradient(180deg,#e0b36a 0 30%,#bfc6c6 30%)}
.bx.dct .bf{background:#8f9ca1}
.bx.dct .bf.front{background:repeating-linear-gradient(90deg,#7a888d 0 3px,#a6b2b5 3px 9px)}
.bx.rail .bf{background:#cfd5d6}
.bx.handle .bf{background:linear-gradient(90deg,#2d3943,#4b5a65)}
.cab-shadow{position:absolute;left:-150px;top:190px;width:300px;height:300px;border-radius:50%;background:radial-gradient(#0009,#0000 65%);transform:rotateX(90deg) translateZ(-20px)}

.floor{position:absolute;left:50%;width:340px;height:80px;margin-left:-170px;margin-top:-20px;border-radius:50%;background:radial-gradient(#000b,#0000 68%);pointer-events:none;transform-origin:50% 0}
.slice.steel::after{content:"";position:absolute;inset:0;background:#030a12;opacity:var(--sh,0)}
.bx.ozb .bf{background:linear-gradient(110deg,#e3e5e1,#a6b0ad 60%,#697b7a)}
.bx.ozb .bf.top{background:linear-gradient(135deg,#46535a,#2c383f)}
.bx.ozb .bf.bottom{background:#2c383f}
/* ozone unit */
.oz{position:absolute;left:-110px;top:-165px;width:220px;height:330px}
.cyl{position:absolute;width:0}
.slice{position:absolute;top:0}
.glass{background:linear-gradient(90deg,rgba(150,225,255,.34),rgba(255,255,255,.04) 45%,rgba(150,225,255,.3))}
.glass.dim{background:linear-gradient(90deg,rgba(150,225,255,.2),rgba(255,255,255,.02) 45%,rgba(150,225,255,.18))}
.core{background:linear-gradient(90deg,#4cc4f2,#e9fbff 50%,#4cc4f2);box-shadow:0 0 16px #5ad1ff,0 0 38px #5ad1ff66;animation:core 3s ease-in-out infinite}
@keyframes core{50%{filter:brightness(1.35) saturate(1.2)}}
.steel{background:linear-gradient(90deg,#8e9ba0,#e8ecea 45%,#8e9ba0)}
.cap{position:absolute;border-radius:50%;background:radial-gradient(circle at 40% 35%,#eef1ef,#8f9ca1);opacity:var(--op,1)}
.bubble-plane{position:absolute;top:0;overflow:visible}
.bub{position:absolute;bottom:0;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#a8e6ff 50%,#5ad1ff00 72%);opacity:0;animation:rise var(--t,3.2s) linear infinite;animation-delay:var(--dl,0s)}
@keyframes rise{0%{transform:translateY(0) scale(.5);opacity:0}12%{opacity:.95}100%{transform:translateY(calc(var(--h,170px)*-1)) scale(1.1);opacity:0}}
.oz-disp{background:#0f2d36;border:5px solid #6a797d;box-shadow:0 0 0 1px #fff,0 0 20px #7bd59d44;color:#a6e0c0;display:flex;align-items:center;gap:10px;padding:8px 10px;position:absolute;left:20px;top:22px;width:118px;height:62px}
.oz-disp span{font:700 26px Manrope;color:var(--gold)}
.oz-disp small{font-size:5.5px;line-height:1.5;letter-spacing:.12em}
.oz-grill{position:absolute;left:20px;bottom:16px;width:118px;height:20px;background:repeating-linear-gradient(0deg,#68777b 0 2px,#d5d9d5 2px 4px)}
.oz-led{position:absolute;right:22px;bottom:20px;width:9px;height:9px;border-radius:50%;background:#7bd59d;box-shadow:0 0 12px #7bd59d;animation:lamp 2s infinite}
.oz-knob{position:absolute;right:22px;top:28px;width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#b58d54 60%,#5b4327);border:1px solid #5a4528}
.oz-knob::after{content:"";position:absolute;left:50%;top:4px;width:2px;height:11px;margin-left:-1px;background:#2b1f10;transform-origin:1px 13px;animation:knob 6s ease-in-out infinite}
@keyframes knob{0%,100%{transform:rotate(-40deg)}50%{transform:rotate(55deg)}}

/* ===== MARQUEE ===== */
.marquee{background:var(--gold);color:#101b27;overflow:hidden;padding:20px 0;border-top:1px solid #0001}
.marquee-row{display:flex;white-space:nowrap}
.marquee-track{display:flex;align-items:center;gap:34px;padding-right:34px;font:800 clamp(18px,2.4vw,28px) Manrope;letter-spacing:.06em;will-change:transform}
.marquee-track b{font-size:.6em;color:#101b27a0}

/* ===== ABOUT ===== */
.section{padding:110px 0}
.section h2{font-size:clamp(40px,4.5vw,58px);color:#0c1a26;margin-top:24px}
.intro{position:relative;overflow:hidden;padding:140px 0 120px}
.scrub{font:600 clamp(26px,3.7vw,50px)/1.28 Manrope,sans-serif;letter-spacing:-.035em;max-width:1040px;margin:34px 0 14px;color:#0c1a26}
.scrub .w{opacity:.14;transition:opacity .25s}
.scrub .w.on{opacity:1}
.under-link{display:inline-block;margin-top:26px;padding-bottom:9px;border-bottom:1px solid #b79b6d;font-size:12px;font-weight:700}
.under-link span{margin-left:18px;color:#997c4c;display:inline-block;transition:transform .3s}
.under-link:hover span{transform:translate(4px,-4px)}
.intro-orb{position:absolute;right:-140px;top:60px;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#d8b77b55,#c7a66d11 50%,transparent 70%);pointer-events:none}

/* ===== EXPLODED VIEW ===== */
.explode{position:relative;height:520vh;background:radial-gradient(ellipse at 70% 50%,#10283a,#091824 65%);color:#fff}
.ex-pin{position:sticky;top:var(--hh);height:calc(100vh - var(--hh));display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:center;padding-left:max(32px,calc((100vw - 1160px)/2));overflow:hidden}
.ex-text{position:relative;z-index:2;padding-right:20px}
.explode h2{font-size:clamp(36px,4.2vw,56px);margin:20px 0 26px}
.steps{list-style:none;margin:0;padding:0}
.step{display:flex;gap:18px;padding:13px 0;border-top:1px solid #ffffff1f;opacity:.38;transition:opacity .4s}
.step-n{font-size:10px;letter-spacing:.15em;color:var(--gold);padding-top:4px;min-width:20px}
.step h3{font:600 16px Manrope;margin:0}
.step p{font-size:12px;line-height:1.75;color:#aab5bd;max-width:340px;margin:0;max-height:0;overflow:hidden;opacity:0;transition:max-height .5s,opacity .5s,margin .5s}
.step.on{opacity:1}
.step.on p{max-height:90px;opacity:1;margin-top:8px}
.ex-bar{margin-top:20px;height:2px;background:#ffffff1c}
.ex-bar i{display:block;height:100%;background:var(--gold);transform:scaleX(0);transform-origin:left}
.ex-art{position:relative;height:100%}

/* ===== SOLUTIONS ===== */
.solutions{background:#0b1925;color:#fff}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:50px}
.section-head h2{color:#fff}
.section-head>p{max-width:300px;color:#aab5bd;margin-bottom:12px;font-size:14px;line-height:1.9}
.solution-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.solution-card{background:#122431;border:1px solid #ffffff17;position:relative;overflow:hidden;transition:border-color .3s,transform .9s cubic-bezier(.2,.7,.2,1),opacity .9s}
.solution-card.in:hover{border-color:#c7a66d66}
.spot::before{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),#c7a66d1f,transparent 60%);opacity:0;transition:opacity .3s;pointer-events:none;z-index:3}
.spot:hover::before{opacity:1}
.card-visual{height:360px;position:relative;overflow:hidden}
.card-visual .cab-stage{cursor:grab}
.control-visual{background:radial-gradient(ellipse at 50% 70%,#58636a,#263641 55%,#172833)}
.ozone-visual{background:radial-gradient(ellipse at 50% 70%,#536d69,#263c3c 55%,#172a30)}
.visual-tag,.drag-tag{position:absolute;bottom:20px;font-size:8px;letter-spacing:.17em;color:#d4dce0;z-index:2;pointer-events:none}
.visual-tag{left:22px}.drag-tag{right:22px;color:#c7a66d}
.card-content{padding:28px 30px 32px;position:relative}
.card-number{font-size:9px;letter-spacing:.16em;color:var(--gold)}
.card-content h3{font:600 22px Manrope;margin:12px 0}
.card-content p{font-size:13px;line-height:1.8;color:#a9b6bf;max-width:440px;min-height:70px}
.card-link{display:inline-block;margin-top:16px;color:#d8bd8e;font-size:11px;font-weight:700}
.card-link span{margin-left:15px;display:inline-block;transition:transform .3s}
.card-link:hover span{transform:translate(4px,-4px)}

/* ===== APPROACH — horizontal scroll ===== */
.hz{position:relative;height:420vh;background:#12232f;color:#fff}
.hz-pin{position:sticky;top:var(--hh);height:calc(100vh - var(--hh));overflow:hidden}
.hz-track{display:flex;height:100%;will-change:transform}
.hz-panel{flex:0 0 100vw;height:100%;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding:0 max(32px,calc((100vw - 1160px)/2))}
.hz-intro{grid-template-columns:1fr}
.hz h2{font-size:clamp(38px,5vw,68px);margin-bottom:34px}
.hz-hint{display:flex;align-items:center;gap:14px;font-size:10px;letter-spacing:.2em;color:#8a9aa5}
.hz-hint i{width:60px;height:1px;background:var(--gold);position:relative;overflow:hidden}
.hz-hint i::after{content:"";position:absolute;inset:0;background:#fff;animation:slide 1.6s infinite}
@keyframes slide{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.hz-n{font:700 clamp(90px,14vw,190px)/1 Manrope;letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1px #c7a66d99;display:block}
.hz-copy h3{font:600 clamp(26px,3.2vw,42px)/1.15 Manrope;letter-spacing:-.04em;margin:6px 0 16px}
.hz-copy p{font-size:15px;line-height:1.85;color:#aab5bd;max-width:380px}
.hz-svg{width:100%;max-height:60vh;filter:drop-shadow(0 0 12px #c7a66d33)}
.hz-svg path,.hz-svg circle{stroke-dasharray:1;stroke-dashoffset:var(--dash,1)}
.hz-dots{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);display:flex;gap:10px}
.hz-dots i{width:26px;height:2px;background:#ffffff30;transition:background .3s,width .3s}
.hz-dots i.on{background:var(--gold);width:44px}

/* ===== CONTACT ===== */
.contact{background:var(--paper)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px}
.contact-copy{color:#63717b;max-width:350px;line-height:1.8;font-size:14px}
.contact-details{display:grid;gap:20px;margin-top:50px}
.contact-details a{font-size:13px;font-weight:600;transition:color .3s,transform .3s}
.contact-details a:hover{color:#8a744f;transform:translateX(6px)}
.contact-details span{display:block;font-size:9px;letter-spacing:.18em;color:#947b53;margin-bottom:7px}
.enquiry-form{background:#fff;padding:35px 38px;box-shadow:0 18px 55px #18263218;position:relative;border-top:2px solid var(--gold)}
.form-title{font-size:10px;letter-spacing:.18em;font-weight:700;margin-bottom:28px}
.form-title span{color:#b79b6d}
.enquiry-form label{display:block;font-size:10px;font-weight:700;color:#46535b;margin:18px 0;transition:color .3s}
.enquiry-form label:focus-within{color:#8a744f}
.enquiry-form input,.enquiry-form select,.enquiry-form textarea{display:block;width:100%;margin-top:9px;border:0;border-bottom:1px solid #d9dddc;padding:12px 0;font:13px "DM Sans";color:#152431;background:transparent;outline:none;border-radius:0;transition:border-color .3s,box-shadow .3s}
.enquiry-form input:focus,.enquiry-form select:focus,.enquiry-form textarea:focus{border-color:#b79b6d;box-shadow:0 1px 0 #b79b6d}
.enquiry-form textarea{resize:vertical}
.btn-dark{background:#0b1a26;color:#fff;width:100%;margin-top:8px;transition:background .3s}
.btn-dark:hover{background:#17324a}
.form-note{font-size:10px;color:#8a969d;text-align:center}
.form-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* ===== FOOTER ===== */
.footer{background:#07131e;color:#dce2e5;padding:45px 0 20px}
.footer-main{display:flex;align-items:center;justify-content:space-between;padding-bottom:42px}
.footer-main p{font-size:11px;line-height:1.7;color:#95a2aa}
.footer-brand{color:#fff}
.back-top{font-size:9px;letter-spacing:.16em;color:var(--gold)}
.footer-bottom{border-top:1px solid #ffffff20;padding-top:18px;display:flex;justify-content:space-between;color:#7f8d96;font-size:9px;letter-spacing:.1em}

/* ===== RESPONSIVE ===== */
@media(max-width:900px){
  :root{--hh:70px}
  .wrap{width:min(100% - 40px,600px)}
  .top-inner span:last-child{display:none}
  .menu-toggle{display:grid;gap:6px;padding:10px}
  .menu-toggle span{width:23px;height:1px;background:#fff}
  .nav-links{display:none;position:absolute;top:var(--hh);left:0;right:0;background:#0a1723;padding:24px 24px 30px;flex-direction:column;align-items:stretch;gap:22px}
  .nav-links.open{display:flex}
  .nav-cta{text-align:center}
  .hero{display:block;min-height:0}
  .hero-content{padding-top:60px;padding-bottom:0}
  .hero-foot{margin-top:40px}
  .hero-art{position:relative;right:auto;width:100%;height:440px}
  .scroll-cue{display:none}
  .label-a{top:10px;right:6%}.label-b{display:none}
  .section{padding:75px 0}
  .intro{padding:90px 0}
  .section-head{display:block}
  .section-head>p{margin-top:25px}
  .solution-grid{grid-template-columns:1fr}
  .card-content p{min-height:0}
  .contact-grid{grid-template-columns:1fr;gap:45px}
  .enquiry-form{padding:28px 24px}
  .footer-main{align-items:flex-start;gap:25px;flex-wrap:wrap}
  .footer-main p{order:3;width:100%;margin:0}
  .footer-bottom{gap:15px;flex-wrap:wrap}
  /* exploded view stacks */
  .explode{height:600vh}
  .ex-pin{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);padding:0 20px;align-items:start}
  .ex-text{padding:20px 0 0}
  .explode h2{margin:12px 0 10px;font-size:30px}
  .step{display:none}
  .step.on,.step.pre{display:flex;border-top:1px solid #ffffff1f}
  .step.pre{opacity:.6}
  .step p{max-height:90px;opacity:1;margin-top:8px}
  .ex-bar{margin-top:10px}
  /* approach */
  .hz{height:460vh}
  .hz-panel{grid-template-columns:1fr;grid-template-rows:auto auto;align-content:center;gap:10px;padding:0 24px}
  .hz-intro{grid-template-rows:auto}
  .hz-n{font-size:90px}
  .hz-svg{max-height:30vh;order:-1}
  .hz-copy p{font-size:14px}
}
@media(max-width:420px){.stage-hint{letter-spacing:.12em}}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .rv,.js .li{transition:none;transform:none;opacity:1}
  .art-glow,.scroll-cue i,.bub,.core{animation:none}
}


/* ===== photo-textured 3D (v4) ===== */
.ly2,.sl{position:absolute;left:0;top:0}
.ly2{pointer-events:none}
.sl>.f{backface-visibility:hidden;-webkit-backface-visibility:hidden}
.paint{background-image:url(assets/paint.jpg),linear-gradient(135deg,#eceeeb,#cdd3d0 55%,#e2e5e1);background-size:120px 120px,100% 100%;background-blend-mode:multiply}
.blk{background:linear-gradient(90deg,#14171a,#30373c 50%,#0f1215)}
.unit{background:linear-gradient(90deg,#d7dbdc,#b9c0c2)}
.photo{background-color:#d6d9d7;background-repeat:no-repeat}
.sheen::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(105deg,transparent calc(var(--hx,50%) - 15%),rgba(255,255,255,.2) var(--hx,50%),transparent calc(var(--hx,50%) + 15%))}
.door-inner{background-image:url(assets/paint.jpg),linear-gradient(160deg,#dfe2df,#bcc3c1);background-size:120px 120px,100% 100%;background-blend-mode:multiply}
.door-inner::before{content:"";position:absolute;inset:6.5%;border:5px solid #15181b;border-radius:5px;box-shadow:inset 0 0 0 2px #ffffff55,0 0 0 2px #0002}
.door-inner::after{z-index:3}
.pslice{position:absolute;top:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;background-color:#8c979c;opacity:var(--op,1);transition:opacity .45s}
.pslice::after{content:"";position:absolute;inset:0;background:#030a12;opacity:var(--sh,0);pointer-events:none}
.pslice.flg{background:linear-gradient(90deg,#aaa699,#f3f0e7 42%,#bdb9ad)}
.disc{position:absolute;border-radius:50%;background:radial-gradient(circle at 40% 35%,#f6f3ea,#aaa699)}
.gl{position:absolute;width:15%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;mix-blend-mode:screen;animation:lamp 2.6s ease-in-out infinite}
.gl-r{background:radial-gradient(circle,#ff3a2a66,#ff3a2a00 68%)}
.gl-g{width:10%;background:radial-gradient(circle,#3dff8a88,#3dff8a00 70%)}

/* workshop gallery */
.work{background:#f3f2ed;padding:110px 0 120px}
.work .section-head h2{color:#0c1a26}
.work .section-head>p{color:#5b6670}
.work-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}
.shot{margin:0;perspective:1000px;cursor:zoom-in}
.shot .tilt{position:relative;overflow:hidden;background:#0b1925;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s;box-shadow:0 18px 40px -24px #0b192588}
.shot:hover .tilt{box-shadow:0 30px 60px -26px #0b1925aa}
.shot img{display:block;width:100%;height:100%;object-fit:cover;transform:translate(var(--ix,0),var(--iy,0)) scale(1.08);transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.shot.s-p{grid-column:span 4}.shot.s-p .tilt{aspect-ratio:3/4}
.shot.s-l{grid-column:span 6}.shot.s-l .tilt{aspect-ratio:3/2}
.shot figcaption{margin-top:12px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#6b6f6a}
.lightbox{position:fixed;inset:0;z-index:100;background:#050d14ee;display:none;align-items:center;justify-content:center;flex-direction:column;gap:14px;cursor:zoom-out;padding:30px}
.lightbox.open{display:flex}
.lightbox img{max-width:min(92vw,1100px);max-height:80vh;object-fit:contain;box-shadow:0 30px 80px #000a}
.lightbox p{margin:0;color:#c9d1d6;font-size:11px;letter-spacing:.16em;text-transform:uppercase}
.lightbox button{position:absolute;top:18px;right:24px;background:none;border:0;color:#fff;font-size:34px;cursor:pointer}
@media(max-width:700px){.shot.s-p,.shot.s-l{grid-column:span 12}.work{padding:80px 0}}
