/* IPU BUILDINGS MASTER v40 — CINEMATIC IMMERSIVE EXPERIENCE */
:root{--v40-ink:#07131d;--v40-gold:#d7b66a;--v40-cream:#f4efe6;--v40-ease:cubic-bezier(.22,.8,.2,1)}

/* Cinematic scroll story inspired by modern interactive property sites */
.v40-story{position:relative;height:390vh;background:#07131d;margin:0;isolation:isolate}
.v40-stage{position:sticky;top:0;height:100vh;overflow:hidden;background:#061019;color:#fff}
.v40-scene{position:absolute;inset:0;opacity:0;visibility:hidden;transform:scale(1.025);transition:opacity .72s var(--v40-ease),transform 1.15s var(--v40-ease),visibility 0s linear .72s;overflow:hidden}
.v40-scene.is-active{opacity:1;visibility:visible;transform:scale(1);transition-delay:0s}
.v40-scene>img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.08);transition:transform 4.5s ease-out;filter:saturate(.93) contrast(1.02)}
.v40-scene.is-active>img{transform:scale(1.015)}
.v40-wash{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,13,20,.75) 0%,rgba(4,13,20,.28) 48%,rgba(4,13,20,.08) 72%),linear-gradient(0deg,rgba(4,13,20,.5),transparent 42%)}
.v40-wash-deep{background:linear-gradient(90deg,rgba(4,13,20,.84),rgba(4,13,20,.32) 58%,rgba(4,13,20,.12)),linear-gradient(0deg,rgba(4,13,20,.5),transparent 45%)}
.v40-wash-soft{background:linear-gradient(270deg,rgba(4,13,20,.80),rgba(4,13,20,.25) 58%,rgba(4,13,20,.06)),linear-gradient(0deg,rgba(4,13,20,.36),transparent 40%)}
.v40-copy{position:absolute;z-index:3;max-width:min(680px,52vw);bottom:11vh}.v40-copy-left{left:max(6vw,48px)}.v40-copy-right{right:max(6vw,48px);text-align:right}
.v40-kicker{display:inline-flex;align-items:center;gap:10px;font-size:11px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:#f1d99f;margin-bottom:18px}.v40-kicker:before{content:"";width:34px;height:1px;background:currentColor}
.v40-copy h2{font-family:Georgia,'Times New Roman',serif;font-size:clamp(48px,6vw,96px);line-height:.93;letter-spacing:-.055em;margin:0;color:#fff;max-width:890px}.v40-copy h2 em{display:block;font-weight:400;color:#f0dfb6}.v40-copy p{max-width:580px;margin:24px 0 0;font-size:clamp(14px,1.25vw,19px);line-height:1.65;color:rgba(255,255,255,.78)}.v40-copy-right p{margin-left:auto}
.v40-link{display:inline-flex;align-items:center;gap:14px;margin-top:28px;color:#fff;font-size:12px;font-weight:900;letter-spacing:.13em;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.42);padding:0 0 9px}.v40-link b{font-size:18px;transition:transform .25s ease}.v40-link:hover b{transform:translate(4px,-3px)}.v40-link-gold{color:#f2d490;border-bottom-color:#d7b66a}
.v40-story-top{position:absolute;z-index:10;top:28px;left:max(4vw,28px);right:max(4vw,28px);display:flex;justify-content:space-between;align-items:center;font-size:10px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.72);pointer-events:none}.v40-story-top b{font-size:12px;color:#fff}
.v40-story-progress{position:absolute;z-index:10;left:0;right:0;top:0;height:3px;background:rgba(255,255,255,.08)}.v40-story-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,#a87d32,#ead08b);box-shadow:0 0 20px rgba(215,182,106,.55)}
.v40-dots{position:absolute;z-index:12;right:max(3vw,22px);top:50%;transform:translateY(-50%);display:grid;gap:14px}.v40-dots button{width:9px;height:9px;border:1px solid rgba(255,255,255,.62);background:rgba(255,255,255,.12);border-radius:50%;padding:0;cursor:pointer;transition:.25s}.v40-dots button.is-active{height:32px;border-radius:999px;background:#e1c379;border-color:#e1c379}
.v40-scroll-cue{position:absolute;z-index:4;right:max(5vw,42px);bottom:8vh;display:flex;align-items:center;gap:10px;font-size:9px;letter-spacing:.18em;color:rgba(255,255,255,.7)}.v40-scroll-cue span{width:38px;height:38px;border:1px solid rgba(255,255,255,.35);border-radius:50%;position:relative}.v40-scroll-cue span:after{content:"↓";position:absolute;inset:0;display:grid;place-items:center;font-size:16px;animation:v40Float 1.7s ease-in-out infinite}@keyframes v40Float{50%{transform:translateY(4px)}}
.v40-metrics{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}.v40-metrics span{min-width:130px;padding:13px 15px;border:1px solid rgba(255,255,255,.18);border-radius:14px;background:rgba(4,14,22,.30);backdrop-filter:blur(12px);font-size:11px;color:rgba(255,255,255,.72)}.v40-metrics b{display:block;font-family:Georgia,serif;font-size:25px;color:#fff;margin-bottom:2px}
.v40-side-note{position:absolute;right:max(5vw,42px);bottom:11vh;z-index:3;text-align:right;color:rgba(255,255,255,.52);font-size:9px;line-height:2;letter-spacing:.16em}
.v40-plan-scene{background:radial-gradient(circle at 67% 45%,#233646 0,#0d1d29 34%,#050d13 72%)}.v40-plan-orbit{position:absolute;z-index:1;right:3vw;top:7vh;width:min(62vw,980px);height:86vh;display:grid;place-items:center;perspective:1400px}.v40-plan-orbit:before{content:"";position:absolute;width:78%;aspect-ratio:1;border-radius:50%;border:1px solid rgba(215,182,106,.18);box-shadow:0 0 0 38px rgba(215,182,106,.025),0 0 0 78px rgba(215,182,106,.018)}.v40-plan-orbit img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 45px 48px rgba(0,0,0,.5));transform:rotateX(2deg) rotateY(-3deg) scale(.9);transition:transform 1.6s var(--v40-ease)}.v40-scene.is-active .v40-plan-orbit img{transform:rotateX(0) rotateY(0) scale(1)}
.v40-copy-dark{max-width:520px;background:linear-gradient(90deg,rgba(4,13,20,.86),rgba(4,13,20,.3) 76%,transparent);padding:34px 60px 34px 0;border-radius:0 30px 30px 0}

/* v39.4 layout polish included in v40 */
.v37-snapshot-shell{overflow:hidden!important}.v37-type-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px;padding:14px;background:#f3f7f8}.v37-type-card{border:1px solid rgba(7,31,48,.11)!important;border-radius:20px;overflow:hidden;background:#fff!important;box-shadow:0 12px 38px rgba(7,31,48,.06)}.v37-type-img{aspect-ratio:1.45/1!important;background:linear-gradient(145deg,#eef3f5,#e4ebee)!important;overflow:hidden}.v37-type-img img{object-fit:contain!important;padding:8px;transform:none!important}.v37-type-card:hover .v37-type-img img{transform:scale(1.015)!important}.v37-type-body{padding:18px 20px 21px!important}
.sticky-contact{left:auto!important;right:18px!important;transform:none!important;bottom:18px!important;max-width:calc(100vw - 36px);box-shadow:0 18px 50px rgba(0,0,0,.22)!important}.sticky-contact a,.sticky-contact button{height:42px!important}.sticky-contact .sticky-install[hidden]{display:none!important}
.v38-suite,.v37-snapshot,.section{scroll-margin-top:88px}

@media(max-width:980px){.v40-story{height:auto;background:#07131d}.v40-stage{position:relative;height:auto;overflow:visible}.v40-story-top,.v40-story-progress,.v40-dots{display:none}.v40-scene{position:relative;visibility:visible;opacity:1;transform:none;height:78vh;min-height:560px;border-bottom:1px solid rgba(255,255,255,.08)}.v40-scene>img{transform:none}.v40-copy{max-width:82vw;bottom:8vh}.v40-copy-left{left:26px}.v40-copy-right{right:26px;text-align:left}.v40-copy-right p{margin-left:0}.v40-copy h2{font-size:clamp(42px,10vw,72px)}.v40-side-note{display:none}.v40-plan-orbit{right:-10vw;width:95vw;height:72vh;opacity:.84}.v40-copy-dark{background:linear-gradient(90deg,rgba(4,13,20,.92),rgba(4,13,20,.55),transparent);padding-right:30px}.v37-type-grid{grid-template-columns:1fr 1fr!important}.sticky-contact{right:12px!important;bottom:12px!important}}
@media(max-width:640px){.v40-scene{height:72vh;min-height:520px}.v40-copy{max-width:calc(100vw - 42px);left:21px!important;right:auto!important;bottom:7vh}.v40-copy h2{font-size:43px}.v40-copy p{font-size:14px}.v40-scroll-cue{display:none}.v40-plan-orbit{right:-18vw;width:118vw;top:2vh;height:66vh}.v40-metrics{gap:6px}.v40-metrics span{min-width:100px;padding:10px}.v37-type-grid{grid-template-columns:1fr!important;padding:9px}.v37-type-card{display:grid!important;grid-template-columns:44% 56%!important}.v37-type-img{aspect-ratio:auto!important;min-height:190px}.v37-type-body{padding:15px!important}}
@media(prefers-reduced-motion:reduce){.v40-scene,.v40-scene>img,.v40-plan-orbit img,.v40-scroll-cue span:after{transition:none!important;animation:none!important}}
