@font-face{font-family:Inter;src:url('/assets/inter.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--night:#05090f;--navy:#062759;--ink:#f1f3f4;--muted:#b4c0cb;--paper:#edf0f0;color-scheme:dark}
*{box-sizing:border-box}html{scroll-padding-top:90px}body{margin:0;background:var(--night);color:var(--ink);font-family:Inter,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}a,button,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #7ba8e2;outline-offset:6px}.skip{position:fixed;left:20px;top:-100px;z-index:100;background:white;color:var(--navy);padding:15px}.skip:focus{top:12px}[hidden]{display:none!important}
#nav{position:fixed;inset:0 0 auto;height:88px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;z-index:30;color:white;transition:color .25s,background .25s;pointer-events:none}#nav>a,#nav>nav,#nav>details{pointer-events:auto}.brand{display:block;width:194px;line-height:0}.brand svg{width:100%;height:auto}#nav>nav{display:flex;gap:36px;font-size:13px;transition:opacity .3s,transform .3s}#nav.nav-away>nav{opacity:0;transform:translateY(-12px);pointer-events:none}#nav.nav-away:focus-within>nav{opacity:1;transform:none;pointer-events:auto}#nav.on-light{color:#092344;background:#edf0f0f2}#nav.scrolled:not(.on-light){background:#05090fe8}.button{display:inline-flex;align-items:center;justify-content:center;gap:30px;min-height:52px;padding:15px 29px;background:#edf0f0;border:1px solid #edf0f0;color:#0c1929;border-radius:40px;font-size:13px;font-weight:500;line-height:1.2;transition:background .2s,color .2s}.button:hover{background:#163c67;color:#fff;border-color:#163c67}.button span{font-size:18px}#nav>.button{min-height:44px;font-size:12px;padding:12px 23px}#nav.on-light>.button{background:#092344;border-color:#092344;color:white}.home-menu{display:none}
h1,h2,h3,p{margin:0}h1,h2{font-weight:450;letter-spacing:-.055em;line-height:1.03}h2{font-size:clamp(42px,5.3vw,76px)}.eyebrow{font-size:10px;font-weight:500;letter-spacing:.16em;line-height:1.6;margin-bottom:24px;color:var(--muted)}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;padding:12px 0;border-bottom:1px solid currentColor;font-size:13px;line-height:1.5}.text-link:hover{opacity:.7}
/* A single bounded sticky stage owns both 3D and text. No page-wide fixed copy. */
.cinematic{position:relative;height:410svh;background:#05090f;isolation:isolate}.cinematic-stage{position:sticky;top:0;height:100svh;min-height:580px;overflow:hidden}.world{position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 55% 40%,#13263d,#05090f 70%)}.world canvas{width:100%;height:100%;display:block}.world-vignette{position:absolute;inset:0;background:linear-gradient(#02070e30,transparent 28%,transparent 78%,#02070e55)}.scene-copy{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;visibility:hidden}.scene-copy a{pointer-events:auto}.hero{opacity:1;visibility:visible}.hero-copy{position:absolute;top:18%;left:5%;right:5%;text-align:center}.hero .eyebrow{font-size:9px;margin-bottom:19px}.hero h1{font-size:clamp(42px,5vw,70px);text-transform:uppercase;line-height:1.02;letter-spacing:-.045em}.lede{font-size:16px;color:#bdcad7;line-height:1.65;margin:20px auto 0;max-width:530px}.hero-cta{position:absolute;bottom:9%;left:0;right:0;width:max-content;margin:auto;min-width:235px}.scroll-cue{position:absolute;bottom:29px;left:5%;font-size:8px;letter-spacing:.18em;display:flex;gap:18px;align-items:center;color:#c0cad3}.scroll-cue span{font-size:18px}.copy{position:absolute;left:5%;right:5%;text-align:center}.about-copy{top:17%}.about-copy h2{text-transform:uppercase;font-size:clamp(36px,4.4vw,62px)}.about-copy p:not(.eyebrow){font-size:15px;color:#b4c3d2;line-height:1.65;margin:22px auto 0;max-width:490px}.gallery-copy{top:70%}.gallery-copy h2{text-transform:uppercase;font-size:clamp(36px,4.1vw,58px)}.gallery-copy .button{margin-top:25px;min-width:230px}.image-note{position:absolute;left:5%;bottom:25px;font-size:9px;color:#aab9c9}.preview-controls{position:absolute;bottom:23px;right:5%;z-index:5;display:flex;gap:14px}.preview-controls button{background:none;border:0;border-bottom:1px solid #8191a766;padding:9px 0;color:#c2cbd4;font-size:10px;cursor:pointer;min-height:36px}.preview-controls button:hover{color:white}.preview-controls output{display:none}.preview-controls button:disabled{opacity:.65;cursor:default}
/* Content follows the stage; no layer can persist into these sections. */
.light-section{background:var(--paper);color:#112030;--muted:#53616d;color-scheme:light}.promise{min-height:760px;padding:125px 6%;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.promise h2{font-size:clamp(56px,7vw,100px);line-height:.99}.section-intro{max-width:530px;font-size:17px;line-height:1.7;color:#56636e;margin:30px auto 0}.promise-points{display:flex;gap:40px;margin-top:50px;font-size:12px;color:#334c60}.promise-points span{border-top:1px solid #a8b2b9;padding-top:18px;min-width:140px}.people{position:relative;min-height:760px;height:105svh;max-height:1000px;overflow:hidden;background:#0c1722}.people>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:65% 35%;filter:saturate(.55)}.people-shade{position:absolute;inset:0;background:linear-gradient(90deg,#030b15e8 0%,#030b15a8 36%,#030b1520 75%),linear-gradient(0deg,#030b15aa,transparent 35%)}.people-copy{position:relative;padding:110px 6%;max-width:680px}.people-copy h2{font-size:clamp(48px,5.5vw,78px)}.people-copy>p:not(.eyebrow){font-size:16px;line-height:1.7;color:#c3ced8;max-width:380px;margin:28px 0}.people-copy .button{margin-top:8px}.photo-note{position:absolute;bottom:25px;left:6%;right:6%;font-size:10px;line-height:1.6;color:#d1dae3}
.industries{padding:115px 6% 120px}.section-heading{display:flex;justify-content:space-between;gap:40px;align-items:start;margin-bottom:70px}.section-heading>.eyebrow{padding-top:10px}.section-heading h2{width:53%;font-size:clamp(43px,4.8vw,68px)}.service-layout{display:grid;grid-template-columns:1fr 1fr;gap:7%}.service-visual{position:relative;margin:0;min-height:485px}.service-image{position:absolute;inset:0 0 35px;overflow:hidden;clip-path:inset(0 100% 0 0);transition:clip-path .8s cubic-bezier(.65,0,.2,1);z-index:1}.service-image.active{clip-path:inset(0 0 0 0);z-index:2}.service-image img{width:100%;height:100%;object-fit:cover;transform:scale(1.12) translateX(-5%);transition:transform .9s cubic-bezier(.65,0,.2,1);filter:saturate(.65)}.service-image.active img{transform:scale(1) translateX(0)}.service-visual figcaption{position:absolute;bottom:0;color:#526372;font-size:10px}.industry-list{border-top:1px solid #b0bbc2}.industry{display:flex;align-items:start;gap:20px;padding:28px 0;border-bottom:1px solid #b0bbc2;color:#53616d}.industry>span{font-size:10px;line-height:2.5}.industry h3{font-size:clamp(21px,2.05vw,29px);font-weight:450;letter-spacing:-.04em;line-height:1.2}.industry p{font-size:13px;line-height:1.7;max-width:300px;margin-top:12px;color:#53616d}.industry b{margin-left:auto;font-size:22px;font-weight:400}.industry.active,.industry:hover,.industry:focus-visible{color:#082850}.all-services{margin-top:26px}
.trust{display:grid;grid-template-columns:1.2fr 1fr;gap:12%;padding:120px 6%;background:#071624}.trust h2{font-size:clamp(40px,4.6vw,66px)}.trust .text-link{margin-top:34px}.trust-detail>p{font-size:17px;color:#c2ceda;line-height:1.7;max-width:430px}.trust-detail .licence-note{font-size:11px;margin:18px 0 45px;color:#a4b6c7}.trust-detail .eyebrow{font-size:9px;color:#a4b6c7}.trust-detail ul{list-style:none;display:flex;flex-wrap:wrap;gap:18px 30px;margin:22px 0;padding:0;font-size:18px;letter-spacing:-.04em}.home-faq{padding:120px 6%;display:grid;grid-template-columns:1fr 1.15fr;gap:10%}.home-faq h2{font-size:clamp(40px,4.2vw,60px);margin-bottom:30px}.faq-list details{border-top:1px solid #b0bbc2}.faq-list details:last-child{border-bottom:1px solid #b0bbc2}.faq-list summary{display:flex;justify-content:space-between;gap:24px;cursor:pointer;list-style:none;font-size:18px;line-height:1.5;padding:26px 0;letter-spacing:-.03em}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{font-size:24px;transition:transform .3s}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details>div{padding:0 25px 26px 0;animation:answer-in .35s ease both}.faq-list p{font-size:14px;line-height:1.8;color:#53616d}.faq-list .text-link{margin-top:15px}@keyframes answer-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.contact{text-align:center;padding:120px 6% 100px;background:radial-gradient(ellipse at 50% 100%,#143350,#05090f 75%)}.contact h2{font-size:clamp(48px,6.8vw,94px)}.contact>.button{margin-top:40px;min-width:240px}.contact-email{display:block;margin-top:30px;font-size:12px;color:#b7c7d6}.content-footer{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:60px;padding:60px 6% 110px;background:#05090f;border-top:1px solid #344151;font-size:12px;line-height:1.8;color:#b4c0cb}.content-footer strong{font-size:11px;letter-spacing:.12em;color:#e2e9f0}.content-footer p{margin-top:15px;max-width:300px}.content-footer nav,.content-footer>div:last-child{display:flex;flex-direction:column;gap:13px}.content-footer small{font-size:9px;margin-top:15px}.home .contact-dock{transition:opacity .25s,transform .25s}.home.in-cinematic .contact-dock{opacity:0;visibility:hidden;transform:translateY(15px)}
/* Readable default before WebGL loads, and with JS disabled or reduced motion. */
.no-webgl .cinematic,.reduced-motion .cinematic{height:auto}.no-webgl .cinematic-stage,.reduced-motion .cinematic-stage{position:relative;height:auto;overflow:visible}.no-webgl .world,.reduced-motion .world{height:100svh;min-height:680px}.no-webgl .world{background:url('/assets/hero-poster-clean.webp') center/cover}.no-webgl canvas{display:none}.no-webgl .scene-copy,.reduced-motion .scene-copy{position:relative;opacity:1!important;visibility:visible!important;transform:none!important}.no-webgl .hero,.reduced-motion .hero{height:100svh;min-height:680px}.no-webgl .about,.reduced-motion .about{padding:100px 6%;background:#081624}.no-webgl .gallery,.reduced-motion .gallery{padding:100px 6%;background:linear-gradient(#05090f77,#05090fcc),url('/assets/resort.webp') center/cover}.no-webgl .copy,.reduced-motion .copy{position:relative;inset:auto}.no-webgl .preview-controls,.reduced-motion .preview-controls{position:absolute;top:610px;bottom:auto}.no-webgl .image-note,.reduced-motion .image-note{position:relative;margin-top:45px;left:auto;text-align:center}
@media(max-width:760px){#nav{height:76px;padding:0 6%}.brand{width:148px}#nav>nav{display:none}#nav>.button{font-size:11px;padding:11px 17px;min-height:42px;margin-left:auto;margin-right:12px}.home-menu{display:block;position:relative}.home-menu summary{cursor:pointer;font-size:11px;list-style:none;padding:13px 0}.home-menu nav{position:absolute;right:0;top:45px;display:flex;flex-direction:column;gap:0;width:210px;background:#081624;color:white;border:1px solid #3c4b5e;padding:10px}.home-menu nav a{padding:14px;font-size:13px}.cinematic{height:360svh}.cinematic-stage{min-height:600px}.hero-copy{top:17%;left:6%;right:6%}.hero .eyebrow{font-size:8px;letter-spacing:.12em}.hero h1{font-size:clamp(32px,8.2vw,55px)}.lede{font-size:13px;max-width:270px;margin-top:18px}.hero-cta{bottom:14%;min-width:210px}.scroll-cue{bottom:34px;font-size:7px}.preview-controls{bottom:25px;right:6%;gap:12px}.preview-controls button{font-size:9px}.about-copy{top:16%;left:6%;right:6%}.about-copy h2{font-size:34px}.about-copy p:not(.eyebrow){font-size:13px;max-width:280px;margin-top:20px}.about-copy .eyebrow{font-size:8px}.gallery-copy{top:65%}.gallery-copy h2{font-size:34px}.gallery-copy .button{margin-top:24px;min-width:210px}.image-note{bottom:75px;font-size:8px}.promise{padding:85px 6%;min-height:620px}.promise h2{font-size:56px}.section-intro{font-size:15px;max-width:310px}.promise-points{gap:18px;flex-wrap:wrap;justify-content:center;margin-top:36px;font-size:10px}.promise-points span{min-width:90px;padding-top:15px}.people{height:800px;min-height:0}.people>img{object-position:25% center}.people-shade{background:linear-gradient(#030b15dd,transparent 65%),linear-gradient(0deg,#030b1599,transparent 25%)}.people-copy{padding:75px 6%}.people-copy h2{font-size:47px}.people-copy>p:not(.eyebrow){font-size:14px;max-width:290px}.people-copy .eyebrow{font-size:8px}.photo-note{font-size:9px}.industries{padding:80px 6%}.section-heading{display:block;margin-bottom:40px}.section-heading h2{width:auto;font-size:44px}.section-heading .eyebrow{padding:0}.service-layout{grid-template-columns:1fr;gap:35px}.service-visual{min-height:340px}.industry{padding:24px 0}.industry h3{font-size:23px}.industry p{font-size:13px}.trust,.home-faq{grid-template-columns:1fr;gap:45px;padding:80px 6%}.trust h2,.home-faq h2{font-size:42px}.trust-detail>p{font-size:15px}.trust-detail ul{font-size:18px}.home-faq .text-link{margin-top:0}.faq-list summary{font-size:17px}.contact{padding:85px 6%}.contact h2{font-size:48px}.content-footer{grid-template-columns:1fr;gap:35px;padding:50px 6% 115px}.content-footer nav{display:grid;grid-template-columns:1fr 1fr}.no-webgl .preview-controls,.reduced-motion .preview-controls{top:610px}}
@media(max-width:370px){.brand{width:125px}#nav>.button{padding:10px 13px}.hero h1{font-size:30px}.promise h2{font-size:50px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
.scene-loading .world{background:url('/assets/hero-poster-clean.webp') center/cover}.scene-loading canvas{opacity:0}.world canvas{transition:opacity .5s}
.people>img{top:-5%;height:110%;transform:translateY(var(--photo-shift,0px));will-change:transform}
@media(prefers-reduced-motion:reduce){.people>img{transform:none;will-change:auto}}

/* Keep compact controls usable on touch and let photography frame the chapter. */
@media(max-width:760px){.home-menu summary{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:flex-end}.preview-controls button{min-height:44px;padding:12px 0}.hero-copy{top:16%}.hero h1{letter-spacing:-.035em}.hero-cta{bottom:13%}}
.gallery-copy{isolation:isolate}.gallery-copy:before{content:'';position:absolute;inset:-25px -8% -55px;z-index:-1;background:radial-gradient(ellipse,#03070de6 0%,#03070d85 48%,transparent 72%);pointer-events:none}
@media(min-width:761px) and (max-height:780px){.hero-copy{top:14%}}
/* Bound the decorative gallery glow when chapters use the static layout. */
.no-webgl .gallery,.reduced-motion .gallery{overflow:clip}
/* The approved composition: measured type, one sculpture, a separate action. */
.hero-copy{top:15%}.hero h1{font-size:clamp(36px,3.65vw,60px);font-weight:460;line-height:1.18;letter-spacing:.095em}.hero .lede{font-size:16px;margin-top:22px}.hero-cta{bottom:8%;min-height:50px;min-width:230px}.world-vignette{background:linear-gradient(#02070e25,transparent 25%,transparent 72%,#02070e66)}
@media(min-width:761px) and (max-height:780px){.hero-copy{top:15%}.hero h1{font-size:clamp(32px,3.4vw,48px)}.hero .eyebrow{margin-bottom:14px}.hero .lede{margin-top:17px;font-size:14px}.hero-cta{bottom:8%;min-height:46px}}
@media(max-width:760px){.hero-copy{top:17%}.hero h1{font-size:clamp(23px,6.1vw,40px);letter-spacing:.055em;line-height:1.3}.hero .lede{font-size:13px;max-width:290px}.hero-cta{bottom:12%;min-width:210px}}

@media(min-width:761px){.hero-cta{bottom:5.5%}}

.client-signature{margin-top:48px;padding-top:26px;border-top:1px solid #b4bec5;width:min(580px,100%)}.client-signature .eyebrow{font-size:8px;margin-bottom:15px}.client-signature>p:last-child{display:flex;justify-content:center;gap:35px;font-size:18px;letter-spacing:-.03em}.client-signature span{white-space:nowrap}@media(max-width:760px){.client-signature>p:last-child{font-size:14px;gap:22px}.client-signature{margin-top:35px}}

/* On phones, keep the portrait and copy clear of one another. */
@media(max-width:760px){
 .people{display:flex;flex-direction:column;height:auto;max-height:none;background:#0b1622}
 .people-copy{order:0;max-width:none;padding:60px 6% 38px}
 .people>img{position:relative;inset:auto;order:1;width:100%;height:clamp(390px,110vw,520px);object-position:6% center;transform:none;will-change:auto}
 .people-shade{inset:auto 0 0;height:90px;background:linear-gradient(0deg,#05090f,transparent);z-index:1;pointer-events:none}
}
