:root{--bg:#0b1010;--dark:#121819;--ink:#18201c;--paper:#eeeee7;--sage:#d3e5c9;--muted:#aebbb4;--pad:clamp(22px,5.6vw,104px)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;overflow-x:hidden;background:var(--bg);color:#f2f1ea;font-family:Inter,"Helvetica Neue",Arial,system-ui,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--sage);outline-offset:5px}button{cursor:pointer}::selection{background:var(--sage);color:var(--bg)}em{font-style:normal;font-family:Georgia,"Times New Roman",serif;font-weight:normal}.scroll-progress{position:fixed;top:0;left:0;width:0;height:2px;z-index:110;background:var(--sage)}
.header{height:84px;position:fixed;inset:0 0 auto;display:flex;align-items:center;gap:32px;padding:0 var(--pad);justify-content:space-between;z-index:100;border-bottom:1px solid transparent;transition:background .25s,border-color .25s}.header.scrolled,.subpage .header{background:rgba(12,17,17,.88);border-color:rgba(255,255,255,.12);backdrop-filter:blur(18px)}.wordmark{display:flex;align-items:baseline;gap:10px;white-space:nowrap}.wordmark>span{font-size:30px;font-weight:790;letter-spacing:-2.2px;line-height:1}.dot,.footer-wordmark span{color:var(--sage)}.wordmark small{font-size:9px;font-weight:700;letter-spacing:2.3px}.desktop-nav{display:flex;align-items:center;gap:35px;margin-left:auto}.desktop-nav a,.subpage-home{font-size:11px;letter-spacing:.075em;color:#d5dad5;transition:color .25s}.desktop-nav a:hover,.subpage-home:hover{color:var(--sage)}.header-controls{display:flex;gap:23px;align-items:center}.language-switch{display:flex;gap:2px;padding:4px;border:1px solid #68766d;border-radius:4px;background:#11181580}.language-switch button{padding:7px 9px;border:0;border-radius:2px;background:transparent;color:#a4b4a8;font-size:10px;font-weight:700;letter-spacing:.08em}.language-switch button[aria-pressed="true"]{background:#d2e6ca;color:#17231c}.menu-toggle{display:none;width:34px;height:34px;border:0;background:transparent;position:relative;padding:0}.menu-toggle span{display:block;position:absolute;left:5px;width:25px;height:1px;background:#f0f2ec;top:12px;transition:transform .3s}.menu-toggle span:last-child{top:22px}.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(5px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-5px) rotate(-45deg)}.mobile-menu{position:fixed;z-index:90;inset:0;display:none;flex-direction:column;gap:0;padding:125px var(--pad) 40px;background:#111917;opacity:0;pointer-events:none;transition:opacity .3s}.mobile-menu.open{opacity:1;pointer-events:auto}.mobile-menu a{font-size:clamp(39px,9vw,70px);padding:12px 0;border-bottom:1px solid #394840;font-weight:650;letter-spacing:-.055em}.mobile-menu-foot{margin-top:auto;font-size:10px;letter-spacing:.12em;color:#aab9af}.no-scroll{overflow:hidden}
/* Hero: visibly moving video, pinned scene. */
.hero-scroll{height:180svh;position:relative}.hero-pinned{position:sticky;top:0;height:100svh;min-height:590px;isolation:isolate;overflow:hidden;background:#0e1716}.hero-video-layer{position:absolute;inset:-5% -3%;z-index:-4;transform:translate3d(0,var(--hero-video-y,0px),0) scale(var(--hero-video-scale,1.035));will-change:transform}.hero-video-layer video,.approach-video-layer video{width:100%;height:100%;object-fit:cover;display:block}.hero-overlay{position:absolute;inset:0;z-index:-3;background:linear-gradient(90deg,rgba(6,10,10,.71) 0%,rgba(9,14,13,.18) 57%,rgba(9,14,13,.00) 100%),linear-gradient(0deg,rgba(7,10,10,.78),transparent 36%)}.hero-grain{position:absolute;z-index:-2;inset:0;background:repeating-linear-gradient(0deg,rgba(255,255,255,.009) 0 1px,transparent 1px 4px);pointer-events:none}.hero-inner{padding:121px var(--pad) 35px;height:100%;display:flex;flex-direction:column;justify-content:space-between;gap:10px}.hero-topline,.hero-footer,.eyebrow-row{display:flex;justify-content:space-between;align-items:center;gap:16px;letter-spacing:.17em;font-size:10px;font-weight:660}.hero-topline{color:#d5dfd4}.hero-copy{margin:auto 0;transform:translate3d(0,var(--hero-copy-y,0px),0);opacity:var(--hero-copy-opacity,1);will-change:transform,opacity}.overline,.micro{font-size:10px;letter-spacing:.23em;font-weight:700;color:var(--sage)}.hero-heading{margin:28px 0 28px;font-size:clamp(82px,12.5vw,208px);letter-spacing:-.105em;line-height:.80;font-weight:770}.hero-heading>span{display:block;width:fit-content}.hero-heading .outline-word{color:transparent;-webkit-text-stroke:1.3px #e9f0e9;position:relative}.hero-copy>p{font-size:clamp(14px,1.2vw,18px);line-height:1.4;color:#e0e8e0;margin:0}.hero-footer{color:#cfdbd1;justify-content:flex-start}.scroll-orbit{height:39px;width:39px;border:1px solid #cbd8ce;border-radius:50%;display:grid;place-items:center;flex:0 0 auto}.scroll-orbit>span{height:9px;width:9px;border:1px solid #d6e7d9;border-radius:50%;background:var(--sage)}.video-label{margin-left:auto;color:#a6b9a9}.outline-word.glitch-now{animation:glitch 530ms steps(2) 1}@keyframes glitch{0%,100%{filter:none;transform:none}21%{transform:translateX(-5px);filter:drop-shadow(4px 0 #9be1cf)}52%{transform:translateX(5px);filter:drop-shadow(-3px 0 #cb8895)}79%{transform:translateX(-2px);filter:drop-shadow(3px 0 #a1bdc7)}}
/* Second pinned scene: large motion, distinct scroll layers. */
.approach-scroll{height:208svh;position:relative;background:#0a1111}.approach-pinned{position:sticky;top:0;height:100svh;min-height:570px;isolation:isolate;overflow:hidden;background:#111d19}.approach-video-layer{position:absolute;z-index:-4;inset:-9% -5%;transform:translate3d(0,var(--depth-video-y,0px),0) scale(var(--depth-video-scale,1.035));will-change:transform}.approach-veil{position:absolute;z-index:-3;inset:0;background:linear-gradient(90deg,rgba(7,12,11,.60),rgba(8,13,12,.10) 85%),radial-gradient(circle at 60% 45%,transparent,rgba(4,8,7,.54))}.approach-orbit{width:min(67vw,860px);aspect-ratio:1;position:absolute;right:-16vw;top:2%;border:1px solid #e2e9d545;border-radius:50%;transform:translate3d(0,var(--orbit-y,0px),0) rotate(var(--orbit-rotate,0deg)) scale(var(--orbit-scale,1));will-change:transform;pointer-events:none}.approach-orbit span{position:absolute;width:17px;height:17px;border-radius:50%;background:var(--sage);top:18%;left:16%;box-shadow:0 0 35px 4px #c9dec79c}.approach-copy{position:absolute;left:var(--pad);right:var(--pad);top:52%;transform:translate3d(0,calc(-50% + var(--depth-text-y,0px)),0) scale(var(--depth-text-scale,1));opacity:var(--depth-text-opacity,1);transform-origin:10% 50%;will-change:transform,opacity}.section-number{font-size:10px;letter-spacing:.23em;color:#c2d1c3}.approach-copy h2{font-size:clamp(84px,13.7vw,218px);line-height:.82;letter-spacing:-.10em;margin:32px 0 28px}.approach-copy h2 span,.approach-copy h2 em{display:block}.approach-copy h2 em{color:var(--sage)}.approach-copy p{font-size:clamp(15px,1.1vw,19px);max-width:390px;color:#dce6dc}.approach-progress{position:absolute;bottom:33px;left:var(--pad);right:var(--pad);height:1px;background:#b8cbb455}.approach-progress span{display:block;height:2px;width:var(--depth-track,0%);background:var(--sage)}
/* Manifesto */
.block-pad{padding:clamp(92px,10vw,164px) var(--pad)}.manifesto{background:var(--paper);color:var(--ink)}.eyebrow-row{color:#758078}.manifesto-heading{display:grid;grid-template-columns:1fr 2.1fr;gap:30px;margin:clamp(75px,10vw,150px) 0 75px}.manifesto-heading .micro{color:#61736a;margin-top:14px}.manifesto-heading h2{font-size:clamp(72px,9.2vw,150px);line-height:.90;letter-spacing:-.09em;margin:0;font-weight:720}.manifesto-heading em{color:#687f6b}.principle-list{border-top:1px solid #9aa39a}.principle{display:grid;grid-template-columns:7% 1fr 60px;align-items:center;gap:20px;padding:33px 0;border-bottom:1px solid #aab3a8}.principle-index{font-size:11px;letter-spacing:.18em;color:#536456}.principle h3{margin:0;font-size:clamp(27px,4.3vw,64px);font-weight:580;letter-spacing:-.067em}.geo{justify-self:end;width:27px;height:27px;display:block;transition:transform .5s cubic-bezier(.2,.8,.2,1)}.geo-dot{border-radius:50%;background:#526c56}.geo-square{background:#526c56;transform:rotate(12deg)}.geo-ring{border-radius:50%;border:3px solid #526c56}.principle:hover .geo-dot{transform:scale(1.4)}.principle:hover .geo-square{transform:rotate(55deg)}.principle:hover .geo-ring{transform:scale(1.22)}
/* Services: ONLY clickable links, no examples. */
.services{background:#101716}.services .eyebrow-row,.about .eyebrow-row{color:#9eaea5}.services-intro{margin:110px 0 73px;display:grid;grid-template-columns:1fr 2fr;align-items:start;gap:25px}.services-intro .micro{margin-top:18px;color:#9fbcac}.services-intro h2{font-size:clamp(72px,10.1vw,162px);line-height:.92;letter-spacing:-.092em;margin:0}.services-links{border-top:1px solid #4e5e56}.service-link{padding:26px 4px;display:grid;grid-template-columns:70px 1fr 60px;align-items:center;gap:12px;border-bottom:1px solid #43554a;position:relative;transition:padding-left .3s,color .3s,background .3s}.service-link:hover,.service-link:focus-visible{padding-left:16px;background:#1a2923;color:#d9eddb}.service-no{font-size:11px;color:#9eb3a3;letter-spacing:.14em}.service-link>span:nth-child(2){font-size:clamp(30px,5vw,72px);line-height:1.12;letter-spacing:-.064em;font-weight:560}.service-end{font-size:25px;justify-self:end;transition:transform .25s}.service-link:hover .service-end{transform:translate(3px,-3px)}
/* About / contact */
.about{background:#dee3d9;color:#18231b}.about .eyebrow-row{color:#66796b}.about-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:7vw;align-items:end;margin-top:125px}.about h2{font-size:clamp(88px,13vw,196px);line-height:.83;letter-spacing:-.10em;margin:0;font-weight:700}.about h2 em{color:#58765d}.about-copy{padding-bottom:13px;max-width:520px}.about-copy p{font-size:clamp(21px,2.1vw,34px);letter-spacing:-.04em;line-height:1.24;margin:0 0 65px}.about-copy>span{font-size:10px;letter-spacing:.16em;color:#54675a}.contact{background:#101a16;min-height:78svh;display:flex;flex-direction:column}.contact .eyebrow-row{color:#a7b7ab}.contact-body{margin:auto 0;padding:90px 0 40px}.contact h2{font-size:clamp(78px,13vw,192px);line-height:.87;letter-spacing:-.098em;font-weight:680;margin:26px 0 48px}.contact h2 em{color:var(--sage)}.email-link{display:inline-flex;gap:32px;align-items:center;font-size:clamp(20px,2.3vw,34px);letter-spacing:-.035em;border-bottom:1px solid #91a993;padding-bottom:12px}.email-link span{font-size:26px;transition:transform .2s}.email-link:hover span{transform:translate(3px,-3px)}.footer{background:#0b1010;border-top:1px solid #35433a;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:34px var(--pad)}.footer-wordmark{font-size:30px;font-weight:760;letter-spacing:-.08em}.footer>span,.footer>a:last-child{font-size:10px;letter-spacing:.14em;color:#aab9ad}
.reveal{opacity:0;transform:translateY(25px);transition:opacity .8s ease,transform .8s cubic-bezier(.15,.75,.15,1)}.reveal.visible{opacity:1;transform:none}
/* Coming soon pages */
.subpage{min-height:100svh}.coming-soon{height:100svh;min-height:560px;position:relative;display:flex;align-items:center;padding:115px var(--pad) 70px;overflow:hidden;isolation:isolate}.coming-orbit{position:absolute;width:80vw;max-width:900px;aspect-ratio:1;border:1px solid #678573;right:-18vw;top:15%;border-radius:50%;z-index:-1}.coming-orbit:before{content:"";width:40%;aspect-ratio:1;border:1px solid #455e4c;position:absolute;border-radius:50%;left:30%;top:30%}.coming-content{max-width:1200px}.coming-content h1{font-size:clamp(68px,12vw,185px);line-height:.86;letter-spacing:-.095em;margin:23px 0 19px}.coming-content p{font-family:Georgia,serif;font-size:clamp(31px,4vw,63px);color:var(--sage);margin:0 0 58px}.soon-back{display:inline-block;border-bottom:1px solid #899f8d;font-size:12px;letter-spacing:.11em;padding-bottom:14px}.coming-foot{position:absolute;bottom:33px;right:var(--pad);font-size:10px;letter-spacing:.16em;color:#94a89b}
@media(max-width:1050px){.desktop-nav{gap:22px}.hero-heading{font-size:clamp(77px,13vw,155px)}.manifesto-heading{grid-template-columns:1fr 2fr}.services-intro{grid-template-columns:.7fr 2fr}}
@media(max-width:790px){.header{height:73px}.desktop-nav{display:none}.menu-toggle{display:block}.mobile-menu{display:flex}.hero-inner{padding-top:105px}.hero-topline span:nth-child(2){display:none}.manifesto-heading,.services-intro{grid-template-columns:1fr;gap:21px}.manifesto-heading{margin-top:78px}.manifesto-heading h2{font-size:clamp(70px,11vw,100px)}.about-layout{grid-template-columns:1fr;gap:65px}.about-copy p{max-width:590px}.about-layout{margin-top:95px}}
@media(max-width:570px){:root{--pad:22px}.wordmark>span{font-size:27px}.wordmark small{font-size:8px;letter-spacing:1.5px}.header-controls{gap:13px}.language-switch{gap:0;padding:3px}.language-switch button{padding:6px 7px;font-size:9px}.hero-scroll{height:169svh}.hero-pinned{min-height:540px}.hero-inner{padding-top:99px;padding-bottom:27px}.hero-topline{font-size:8px}.hero-copy{margin:auto 0}.hero-heading{font-size:clamp(66px,16.8vw,103px);margin:20px 0 26px}.hero-copy>p{font-size:13px}.hero-footer{font-size:8px}.video-label{font-size:8px}.scroll-orbit{height:33px;width:33px}.hero-video-layer{inset:-12% -22%;transform-origin:60% 50%}.approach-scroll{height:185svh}.approach-pinned{min-height:520px}.approach-copy{top:49%}.approach-copy h2{font-size:clamp(78px,17vw,122px)}.approach-copy p{font-size:14px;max-width:250px}.approach-orbit{width:94vw;right:-54vw;top:24%}.block-pad{padding:95px var(--pad)}.eyebrow-row{font-size:8px;letter-spacing:.12em}.manifesto-heading h2{font-size:clamp(62px,15vw,95px)}.manifesto-heading{margin-bottom:65px}.principle{grid-template-columns:32px 1fr 32px;padding:27px 0;gap:8px}.principle h3{font-size:clamp(25px,7vw,39px)}.geo{height:18px;width:18px}.geo-ring{border-width:2px}.services-intro{margin:82px 0 54px}.services-intro h2{font-size:clamp(58px,12.5vw,89px)}.service-link{grid-template-columns:30px 1fr 25px;padding:24px 0;gap:10px}.service-link>span:nth-child(2){font-size:clamp(28px,7.2vw,43px)}.service-end{font-size:21px}.about-layout h2{font-size:clamp(84px,20vw,126px)}.about-copy p{font-size:25px;margin-bottom:48px}.contact{min-height:620px}.contact h2{font-size:clamp(70px,15.4vw,104px)}.email-link{font-size:clamp(19px,5vw,28px)}.footer{flex-wrap:wrap}.footer>a:last-child{margin-left:auto}.footer>span{order:3;width:100%}.coming-content h1{font-size:clamp(65px,14vw,110px)}.coming-orbit{width:110vw;right:-48vw}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.reveal{transform:none;opacity:1}.hero-video-layer,.approach-video-layer,.hero-copy,.approach-copy,.approach-orbit{transform:none!important;opacity:1!important}.hero-copy{transform:none!important}.approach-copy{transform:translateY(-50%)!important}}


/* Frove V3 / motion choreography. Decorative shapes move separately from the video. */
.hero-drift-art{position:absolute;inset:0;z-index:-3;pointer-events:none;overflow:hidden;--drift-x:0px;--drift-y:0px;--drift-r:0deg}
.drift-ring{display:block;position:absolute;border:1px solid rgba(215,235,219,.32);border-radius:50%;filter:drop-shadow(0 0 16px rgba(161,211,188,.16));will-change:transform}
.drift-ring-large{height:clamp(380px,59vw,1100px);aspect-ratio:1;right:-15%;top:0;transform:translate3d(var(--drift-x),var(--drift-y),0) rotate(var(--drift-r));border-color:rgba(213,239,221,.38)}
.drift-ring-small{height:clamp(155px,19vw,380px);aspect-ratio:1;right:8%;top:27%;transform:translate3d(calc(var(--drift-x) * -.5),calc(var(--drift-y) * -.65),0) scale(1.03);border-color:rgba(198,226,210,.20)}
.drift-line{height:1px;width:45vw;position:absolute;right:-6vw;top:51%;transform-origin:100% 50%;transform:translate3d(calc(var(--drift-x) * -.6),calc(var(--drift-y) * .3),0) rotate(var(--drift-r));background:linear-gradient(90deg,transparent,rgba(219,244,222,.6))}
.drift-dot{height:17px;width:17px;background:#d8ebd9;position:absolute;right:18%;top:23%;border-radius:50%;box-shadow:0 0 65px 15px #d7f2d551;transform:translate3d(calc(var(--drift-x) * .65),calc(var(--drift-y) * .45),0)}
.motion-switch{margin-left:auto;align-items:center;gap:9px;display:inline-flex;background:rgba(7,13,11,.35);border:1px solid rgba(215,236,220,.38);color:#e8f2e8;padding:10px 14px;border-radius:999px;font-size:9px;font-weight:680;letter-spacing:.14em;backdrop-filter:blur(12px);transition:background .2s,border-color .2s}
.motion-switch:hover{background:rgba(91,123,105,.38);border-color:#d7f2dc}
.motion-led{display:block;width:7px;height:7px;border-radius:50%;background:#c6efb8;box-shadow:0 0 15px #c6efb8;animation:motion-beat 2.1s ease-in-out infinite}
.motion-switch[aria-pressed="false"] .motion-led{background:#8a948d;box-shadow:none;animation:none}
@keyframes motion-beat{50%{opacity:.45;box-shadow:0 0 2px #d8f3c5}}
.approach-orbit-secondary{position:absolute;right:1%;top:12%;width:min(42vw,650px);aspect-ratio:1;border:1px solid rgba(213,238,219,.27);border-radius:50%;pointer-events:none;transform:translate3d(var(--orbit2-x,0px),var(--orbit2-y,0px),0) scale(var(--orbit2-scale,1));will-change:transform}
.approach-plane{position:absolute;right:17%;top:11%;height:73%;width:1px;background:linear-gradient(transparent,rgba(195,229,211,.6),transparent);transform:rotate(28deg) translate3d(var(--plane-shift,0px),0,0);pointer-events:none;will-change:transform}
@media(max-width:570px){.drift-ring-large{right:-90%;top:12%}.drift-ring-small{right:-18%;top:23%}.drift-dot{right:13%;top:23%}.drift-line{width:100vw}.motion-switch{padding:9px 10px;font-size:8px}.approach-orbit-secondary{width:88vw;right:-25%;top:25%}.approach-plane{right:30%}}
/* Even if the browser rejects video autoplay, the designed background remains visibly alive. */
.hero-video-layer::after,.approach-video-layer::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(113deg,transparent 20%,rgba(203,233,212,.07) 50%,transparent 80%);background-size:240% 100%;animation:ambient-light 9s ease-in-out infinite alternate;mix-blend-mode:screen}
@keyframes ambient-light{from{background-position:0% 50%}to{background-position:100% 50%}}
.motion-paused .hero-video-layer::after,.motion-paused .approach-video-layer::after{animation-play-state:paused}
.motion-paused .motion-led{animation:none}
/* no abrupt jumps or artificial scroll hijacking: native scroll + sticky scene */
@media(prefers-reduced-motion:reduce){.hero-video-layer::after,.approach-video-layer::after,.motion-led{animation:none}}

/* Explicit motion opt-in may override a device's reduced-motion preference. */
@media(prefers-reduced-motion:reduce){
 html.motion-opt-in .hero-video-layer{transform:translate3d(0,var(--hero-video-y,0px),0) scale(var(--hero-video-scale,1.035))!important}
 html.motion-opt-in .hero-copy{transform:translate3d(0,var(--hero-copy-y,0px),0)!important;opacity:var(--hero-copy-opacity,1)!important}
 html.motion-opt-in .approach-video-layer{transform:translate3d(0,var(--depth-video-y,0px),0) scale(var(--depth-video-scale,1.13))!important}
 html.motion-opt-in .approach-copy{transform:translate3d(0,calc(-50% + var(--depth-text-y,0px)),0) scale(var(--depth-text-scale,1))!important;opacity:var(--depth-text-opacity,1)!important}
 html.motion-opt-in .approach-orbit{transform:translate3d(0,var(--orbit-y,0px),0) rotate(var(--orbit-rotate,0deg)) scale(var(--orbit-scale,1))!important}
 html.motion-opt-in .hero-video-layer::after,html.motion-opt-in .approach-video-layer::after{animation:ambient-light 9s ease-in-out infinite alternate!important}
 html.motion-opt-in .motion-led{animation:motion-beat 2.1s ease-in-out infinite!important}
}

/* Frove Cinema: approved editorial photograph, not compressed fake-video loops. */
.cinematic-image-layer{overflow:hidden}
.cinematic-image-layer img{width:100%;height:100%;display:block;object-fit:cover;object-position:center center;image-rendering:auto;user-select:none;-webkit-user-drag:none}
.hero-video-layer img{object-position:57% center}
.approach-video-layer img{object-position:58% center;filter:contrast(1.1) saturate(.8)}
.hero-video-layer:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse at 75% 45%,rgba(212,126,51,.075),transparent 62%);animation:cinema-breath 12s ease-in-out infinite alternate}
@keyframes cinema-breath{from{opacity:.22;transform:scale(1)}to{opacity:.9;transform:scale(1.08)}}
.hero-overlay{background:linear-gradient(90deg,rgba(2,5,5,.80) 0%,rgba(4,7,7,.64) 24%,rgba(4,8,8,.25) 56%,rgba(2,6,7,.08) 100%),linear-gradient(0deg,rgba(2,5,5,.80),transparent 33%,rgba(2,5,5,.15))}
.approach-veil{background:linear-gradient(90deg,rgba(3,7,8,.83),rgba(4,8,9,.42) 50%,rgba(4,8,9,.2)),linear-gradient(0deg,rgba(3,7,8,.75),transparent 50%)}
.approach-orbit,.approach-orbit-secondary{border-color:rgba(243,211,171,.28)}
.approach-orbit span{background:#e6cdb0;box-shadow:0 0 35px #d5a9768c}
.hero-video-layer::after,.approach-video-layer::after{background:linear-gradient(112deg,transparent 24%,rgba(255,206,155,.055) 47%,transparent 70%);background-size:240% 100%;animation-duration:16s}
.motion-paused .hero-video-layer:before{animation-play-state:paused}
@media(max-width:760px){.hero-video-layer img{object-position:64% center}.approach-video-layer img{object-position:58% center}.hero-overlay{background:linear-gradient(90deg,rgba(3,6,6,.82),rgba(3,6,6,.42)),linear-gradient(0deg,rgba(3,6,6,.55),transparent 40%)}}
@media(prefers-reduced-motion:reduce){.hero-video-layer:before{animation:none}}
/* Keep the photo present on phones, rather than covering it with near-black. */
.hero-heading{letter-spacing:-.085em}
.hero-heading .outline-word{letter-spacing:-.07em}
@media(max-width:760px){
 .hero-overlay{background:linear-gradient(90deg,rgba(3,6,6,.56),rgba(3,6,6,.23)),linear-gradient(0deg,rgba(3,6,6,.46),transparent 48%)}
 .hero-video-layer img{object-position:62% center}
 .hero-heading .outline-word{letter-spacing:-.062em}
}
/* No video payload, no delayed media decoding or autoplay restrictions. */

/* FROVE / MINIMAL EDITORIAL — intentional white space, restrained cinematography. */
:root{--bg:#0b0d0d;--dark:#111413;--paper:#eeeee9;--sage:#d4dfd8;--ink:#151a17;--pad:clamp(25px,5.5vw,96px)}
body{background:#0b0d0d}
.header{height:78px;background:linear-gradient(180deg,rgba(8,10,10,.5),transparent);border-bottom:none}
.header.scrolled{background:rgba(9,12,11,.93);border-color:rgba(255,255,255,.09)}
.wordmark>span{font-size:29px;letter-spacing:-1.9px}.wordmark small{font-size:8px;letter-spacing:.22em}
.desktop-nav{gap:31px}.desktop-nav a{color:#bdc4bf;font-size:11px}
.language-switch{border-color:rgba(216,227,218,.25);background:rgba(14,18,17,.65)}
.language-switch button[aria-pressed="true"]{background:#e7ebe7;color:#171b18}
/* A photograph as a quiet editorial accent, not a full-bleed visual assault. */
.hero-scroll{height:158svh;background:#0b0d0d}
.hero-pinned{background:#0b0d0d;min-height:560px}
.hero-video-layer{inset:15% 6.4% 16% auto;width:38%;height:auto;z-index:-4;overflow:hidden;filter:saturate(.65);border:1px solid rgba(255,255,255,.10);transform:translate3d(0,var(--hero-video-y,0px),0) scale(var(--hero-video-scale,1.005))}
.hero-video-layer img{object-position:center 54%;filter:brightness(.86)}
.hero-overlay{background:linear-gradient(90deg,#0b0d0d 0%,rgba(11,13,13,.92) 34%,rgba(11,13,13,.2) 62%,transparent 100%);z-index:-3}
.hero-grain{background:repeating-linear-gradient(0deg,rgba(255,255,255,.003) 0 1px,transparent 1px 5px)}
.hero-inner{padding-top:114px;padding-bottom:36px}
.hero-topline{color:#aab1ae;font-size:9px;letter-spacing:.16em;font-weight:500}
.overline,.micro{font-size:10px;letter-spacing:.20em;color:#c1cbc5;font-weight:560}
.hero-copy{position:relative;z-index:1;max-width:75%;}
.hero-heading{font-size:clamp(70px,8.8vw,144px);line-height:.93;margin:22px 0 24px;font-weight:690;letter-spacing:-.075em}
.hero-heading .outline-word{-webkit-text-stroke:1px #e2e8e2;letter-spacing:-.078em}
.hero-copy>p{font-size:14px;letter-spacing:.016em;color:#bec5bf}
.hero-footer{font-size:9px;font-weight:540;letter-spacing:.17em;color:#b2bdb5}
.scroll-orbit{height:28px;width:28px;border-color:#77837b}.scroll-orbit>span{height:4px;width:4px;border:none;background:#d5ded7}
.motion-switch{background:transparent;backdrop-filter:none;border:1px solid rgba(225,232,224,.20);padding:9px 12px;color:#c2cac5;border-radius:3px;font-size:9px;letter-spacing:.09em}
.motion-led{width:5px;height:5px;animation:none;box-shadow:none}
.hero-drift-art,.drift-ring,.drift-dot,.drift-line{display:none!important}
.hero-video-layer:before,.hero-video-layer::after{display:none!important}
/* Secondary image is a supporting detail, not another full-bleed composition. */
.approach-scroll{height:172svh;background:#151716}
.approach-pinned{background:#151716;min-height:540px}
.approach-video-layer{inset:14% 6.4% 17% auto;width:36%;height:auto;z-index:-4;overflow:hidden;border:1px solid rgba(255,255,255,.08);filter:saturate(.8);transform:translate3d(0,var(--depth-video-y,0px),0) scale(var(--depth-video-scale,1.005))}
.approach-video-layer img{object-position:51% 50%;filter:brightness(.85) contrast(1.04) saturate(.67)}
.approach-veil{display:none}
.approach-copy{left:var(--pad);right:auto;width:57%;top:50%;}
.approach-copy h2{font-size:clamp(75px,9.5vw,150px);line-height:.91;letter-spacing:-.08em;margin:23px 0 24px}
.approach-copy h2 em{color:#cbd3cd}
.approach-copy p{color:#aebbb2;font-size:16px}
.approach-orbit,.approach-orbit-secondary,.approach-plane{display:none!important}
.approach-video-layer::after{display:none!important}
.section-number{color:#929f97}
.approach-progress{background:rgba(255,255,255,.16);bottom:30px}
.approach-progress span{background:#e2e6df;height:1px}
/* Controlled typographic scale / shorter sections. */
.block-pad{padding:clamp(82px,9vw,145px) var(--pad)}
.manifesto{background:#edeee9}
.manifesto-heading{grid-template-columns:.72fr 2fr;margin:83px 0 62px}
.manifesto-heading h2{font-size:clamp(62px,8.25vw,119px);line-height:.95;letter-spacing:-.077em;font-weight:670}
.manifesto-heading em{color:#78887e}
.principle{padding:24px 0}.principle h3{font-size:clamp(26px,3.6vw,54px);font-weight:520}
.geo{height:16px;width:16px}.geo-ring{border-width:2px}
.services{background:#0e1110}.services-intro{margin:82px 0 52px;grid-template-columns:.7fr 2fr}
.services-intro h2{font-size:clamp(61px,8.65vw,118px);font-weight:620}
.service-link{padding:20px 0}.service-link>span:nth-child(2){font-size:clamp(28px,3.6vw,53px);font-weight:500}
.service-link:hover{padding-left:10px;background:rgba(255,255,255,.025);color:#fff}
.about{background:#dfe3db}.about-layout{margin-top:95px}
.about h2{font-size:clamp(77px,9.8vw,144px)}.about-copy p{font-size:clamp(21px,1.8vw,28px)}
.contact h2{font-size:clamp(70px,9vw,134px)}
.reveal{transition:opacity .65s ease,transform .65s ease}
@media(max-width:950px){.hero-heading{font-size:clamp(70px,9.6vw,105px)}.hero-video-layer{right:4%;width:46%;}.approach-video-layer{right:4%;width:40%}.approach-copy{width:60%}}
@media(max-width:790px){.header{height:71px}.hero-copy{max-width:90%}.hero-video-layer{width:47%;right:3%;inset-block:20% 20%;}.hero-heading{font-size:clamp(66px,12vw,96px)}.approach-copy{width:68%}.approach-copy h2{font-size:clamp(72px,11vw,100px)}.manifesto-heading,.services-intro{grid-template-columns:1fr}.manifesto-heading h2{font-size:clamp(60px,10.5vw,92px)}}
@media(max-width:570px){
 :root{--pad:23px}.hero-scroll{height:148svh}.hero-pinned{min-height:530px}
 .hero-inner{padding-top:100px;padding-bottom:28px}.hero-topline{font-size:8px}
 .hero-video-layer{inset:24% 0 15% 27%;width:auto;height:auto;border-right:0;border-color:rgba(255,255,255,.06);opacity:.60;filter:saturate(.5)}
 .hero-video-layer img{object-position:52% center;filter:brightness(.70)}
 .hero-overlay{background:linear-gradient(90deg,#0b0d0d 0%,rgba(11,13,13,.77) 25%,rgba(11,13,13,.1) 100%),linear-gradient(0deg,#0b0d0d 0%,transparent 31%)}
 .hero-copy{max-width:100%;width:100%;margin:auto 0 15%;}
 .hero-heading{font-size:clamp(63px,15.6vw,89px);line-height:.91;margin:19px 0 21px;letter-spacing:-.077em}
 .hero-heading .outline-word{letter-spacing:-.077em}
 .hero-copy>p{font-size:12px}
 .hero-footer{font-size:8px}
 .approach-scroll{height:152svh}.approach-pinned{min-height:530px}
 .approach-video-layer{inset:31% 0 16% 32%;width:auto;opacity:.55;filter:saturate(.55)}
 .approach-video-layer img{filter:brightness(.65)}
 .approach-copy{left:var(--pad);right:var(--pad);width:auto;top:42%;}
 .approach-copy h2{font-size:clamp(67px,15.8vw,90px);line-height:.94}
 .approach-copy p{font-size:13px;max-width:220px}
 .block-pad{padding:82px var(--pad)}
 .manifesto-heading{margin:68px 0 51px}.manifesto-heading h2{font-size:clamp(55px,13.6vw,83px)}
 .services-intro{margin:68px 0 46px}.services-intro h2{font-size:clamp(54px,12.4vw,79px)}
 .service-link{padding:20px 0}.service-link>span:nth-child(2){font-size:clamp(27px,7vw,42px)}
 .about-layout{margin-top:73px}.about h2{font-size:clamp(77px,18vw,112px)}
 .contact h2{font-size:clamp(64px,14.5vw,88px)}
}
@media(prefers-reduced-motion:reduce){html.motion-opt-in .hero-video-layer{transform:translate3d(0,var(--hero-video-y,0px),0) scale(var(--hero-video-scale,1.005))!important}html.motion-opt-in .approach-video-layer{transform:translate3d(0,var(--depth-video-y,0px),0) scale(var(--depth-video-scale,1.005))!important}}

/* GEOMETRIC DEPTH — FROVE visual direction 02. Full-bleed architectural visual, no floating cards. */
:root{--bg:#080a0a;--dark:#101312;--paper:#efeee9;--sage:#e1e2dc;--pad:clamp(25px,5.5vw,96px)}
body{background:#080a0a}
.hero-scroll{height:190svh;background:#080a0a}
.hero-pinned{background:#080a0a;min-height:560px;isolation:isolate}
.hero-video-layer{inset:-8% -5% -8% -5%;width:auto;height:auto;z-index:-5;border:0;opacity:1;filter:none;overflow:hidden;transform:translate3d(0,var(--hero-video-y,0px),0) scale(var(--hero-video-scale,1.055));will-change:transform}
.hero-video-layer img{width:100%;height:100%;object-fit:cover;object-position:center center;filter:brightness(.95) contrast(1.02);animation:geo-ambient-drift 22s ease-in-out infinite alternate;will-change:transform}
@keyframes geo-ambient-drift{from{transform:scale(1.015) translate3d(-6px,0,0)}to{transform:scale(1.055) translate3d(12px,-7px,0)}}
.hero-overlay{z-index:-3;background:linear-gradient(90deg,rgba(6,7,9,.80) 0%,rgba(7,8,9,.56) 34%,rgba(8,9,10,.05) 74%),linear-gradient(0deg,#090b0b 0%,transparent 27%);}
.geometric-halo{position:absolute;pointer-events:none;z-index:-4;right:8%;top:9%;width:32vw;height:80vh;opacity:.2;background:radial-gradient(ellipse,rgba(243,223,189,.31),transparent 68%);mix-blend-mode:screen;filter:blur(60px);animation:geometric-breathe 9s ease-in-out infinite alternate}
@keyframes geometric-breathe{from{transform:translate3d(-15px,0,0) scale(.95);opacity:.09}to{transform:translate3d(25px,8px,0) scale(1.12);opacity:.30}}
.hero-grain{opacity:.08}
.hero-inner{padding-top:clamp(110px,15vh,180px);padding-bottom:40px}
.hero-copy{max-width:min(850px,74%);z-index:2}
.hero-heading{font-size:clamp(74px,9.7vw,166px);line-height:.91;letter-spacing:-.078em;font-weight:665;max-width:820px}
.hero-heading .outline-word{-webkit-text-stroke:1.4px #f2f0eb}
.hero-topline{color:#d5d7d3}.hero-copy>p{color:#d0d2cb}
/* secondary geometric room, distinct angle, stable sticky parallax */
.approach-scroll{height:182svh;background:#101211}
.approach-pinned{background:#101211;min-height:520px;isolation:isolate}
.approach-video-layer{inset:-8% -5% -8% -5%;width:auto;height:auto;z-index:-5;border:0;opacity:1;filter:none;transform:translate3d(0,var(--depth-video-y,0px),0) scale(var(--depth-video-scale,1.065));will-change:transform}
.approach-video-layer img{object-fit:cover;object-position:center center;filter:brightness(.92) contrast(1.05);animation:geo-ambient-drift 25s ease-in-out infinite alternate-reverse}
.approach-veil{display:block;position:absolute;z-index:-3;inset:0;background:linear-gradient(90deg,#0b0d0c 0%,rgba(10,12,12,.75) 29%,rgba(8,10,11,.13) 72%),linear-gradient(0deg,#111312,transparent 22%)}
.geometric-depth-glow{position:absolute;inset:0;z-index:-4;pointer-events:none;background:radial-gradient(ellipse at 73% 56%,rgba(234,215,185,.10),transparent 36%);animation:geometric-breathe 8s ease-in-out infinite alternate}
.approach-copy{left:var(--pad);top:48%;width:62%;}
.approach-copy h2{font-size:clamp(75px,9.7vw,158px);line-height:.92;letter-spacing:-.08em;margin:23px 0}
.approach-copy h2 em{color:#d9dad3}
.approach-copy p{color:#bbc3bc}
.approach-progress{background:rgba(255,255,255,.2)}.approach-progress span{background:#e4dfd2}
/* Minimal refinement of the rest: same sections, no additional filler content. */
.manifesto{background:#eeeee9}.services{background:#0e1010}.about{background:#e0e5dc}
.header{background:linear-gradient(180deg,rgba(0,0,0,.65),transparent)}
.header.scrolled{background:rgba(7,9,9,.92)}
@media(max-width:1000px){.hero-heading{font-size:clamp(75px,10vw,120px)}.hero-copy{max-width:83%}.approach-copy{width:69%}}
@media(max-width:780px){.hero-video-layer,.approach-video-layer{inset:-9% -27% -9% -27%}.hero-copy{max-width:95%}.hero-heading{font-size:clamp(69px,12vw,100px)}.approach-copy{width:85%}.approach-copy h2{font-size:clamp(69px,11vw,110px)}}
@media(max-width:570px){
 .hero-scroll{height:165svh}.hero-pinned{min-height:540px}
 .hero-video-layer{inset:-5% -68% -5% -57%;opacity:1;filter:none}
 .hero-video-layer img{object-position:55% 50%;filter:brightness(.9)}
 .hero-overlay{background:linear-gradient(90deg,rgba(4,5,6,.83),rgba(4,5,6,.43) 75%,rgba(5,6,7,.26)),linear-gradient(0deg,#090b0b 0%,transparent 40%)}
 .hero-inner{padding-top:106px;padding-bottom:27px}.hero-copy{max-width:100%;margin:auto 0 15%;}
 .hero-heading{font-size:clamp(62px,15.4vw,88px);line-height:.92;letter-spacing:-.075em}
 .hero-heading .outline-word{letter-spacing:-.075em}
 .hero-topline{font-size:8px}.hero-copy>p{font-size:12px}
 .geometric-halo{width:80vw;right:-30%;opacity:.14}
 .approach-scroll{height:158svh}.approach-pinned{min-height:550px}
 .approach-video-layer{inset:-4% -55% -4% -65%;opacity:1;filter:none}
 .approach-video-layer img{filter:brightness(.83)}
 .approach-veil{background:linear-gradient(90deg,rgba(6,8,8,.83),rgba(6,8,8,.42) 85%),linear-gradient(0deg,#111312,transparent 35%)}
 .approach-copy{left:var(--pad);right:var(--pad);width:auto;top:43%}.approach-copy h2{font-size:clamp(67px,15.7vw,90px)}
}
.motion-paused .geometric-halo,.motion-paused .geometric-depth-glow,.motion-paused .geometric-layer img{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.geometric-halo,.geometric-depth-glow,.geometric-layer img{animation:none!important}}
@media(prefers-reduced-motion:reduce){html.motion-opt-in .geometric-halo,html.motion-opt-in .geometric-depth-glow{animation:geometric-breathe 9s ease-in-out infinite alternate!important}html.motion-opt-in .geometric-layer img{animation:geo-ambient-drift 22s ease-in-out infinite alternate!important}}
