@font-face{font-family:Manrope;src:url('/assets/manrope.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Cormorant;src:url('/assets/cormorant.ttf') format('truetype');font-style:italic;font-weight:400;font-display:swap}
:root{--paper:#f3f0e9;--ink:#252b25;--muted:#62665e;--line:#d7d8cc;--accent:#ac5738;--olive:#303c31;--gutter:5vw;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.65 Manrope,Arial,sans-serif}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}img{display:block;max-width:100%}button{border:0;background:none}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}em{font-family:Cormorant,Georgia,serif;font-weight:400}::selection{background:#c6ceb8;color:#20271f}.skip{position:fixed;z-index:100;top:-80px;padding:12px 24px;background:var(--paper);color:var(--ink)}.skip:focus{top:10px}.header{position:absolute;top:0;left:0;width:100%;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:28px var(--gutter);color:white;border-bottom:1px solid #ffffff30;transition:background .3s,padding .3s}.brand{display:flex;gap:13px;align-items:center}.brand svg{width:42px;height:42px;fill:none;stroke:currentColor;stroke-width:1.5}.brand>span{font-size:17px;letter-spacing:.09em;line-height:1.35}.brand small{display:block;font-size:8px;letter-spacing:.25em;margin-top:5px}.nav{display:flex;align-items:center;gap:34px;font-size:12px}.nav>a{position:relative}.nav>a:after{content:'';position:absolute;bottom:-5px;left:0;height:1px;width:0;background:currentColor;transition:width .3s}.nav>a:hover:after{width:100%}.nav .nav-contact{margin-left:20px;border:1px solid #ffffff70;padding:12px 18px;display:flex;gap:24px;align-items:center}.nav-contact span{font-size:22px;line-height:1}.menu-toggle{display:none}.hero{height:100svh;min-height:720px;max-height:1300px;position:relative;overflow:hidden;color:white;background:#4c5349}.hero-media,.hero-shade{position:absolute;inset:0}.hero-image{width:100%;height:100%;object-fit:cover;object-position:55% 55%;will-change:transform;animation:hero-open 1.8s var(--ease) both}.hero-shade{background:linear-gradient(90deg,#101f1b9c 0%,#12211935 50%,#15201805 100%),linear-gradient(0deg,#0c1918a8 0%,transparent 50%,#17211f60 100%)}.hero-topline{position:absolute;top:132px;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;font-size:9px;letter-spacing:.2em;color:#ffffffe0}.hero-copy{position:absolute;left:var(--gutter);bottom:156px}.eyebrow{font-size:10px;letter-spacing:.18em;font-weight:400;display:flex;gap:12px;align-items:center}.eyebrow>span{width:5px;height:5px;background:currentColor;border-radius:50%}.hero h1{font-size:clamp(65px,7.9vw,135px);letter-spacing:-.065em;line-height:1.05;margin:22px 0 24px;animation:text-open 1.1s var(--ease) both}.hero h1 em{font-size:1.18em;letter-spacing:-.055em;line-height:.9}.hero-copy>p:not(.eyebrow){font-size:13px;line-height:1.75;color:#ffffffe8}.button{display:inline-flex;gap:35px;align-items:center;font-size:12px;padding:13px 20px;transition:background .3s,transform .3s;margin-top:28px}.button span{font-size:22px;line-height:1}.button-light{background:var(--paper);color:var(--ink)}.button:hover{background:#dfe3d5;transform:translateY(-3px)}.hero-bottom{position:absolute;bottom:30px;left:var(--gutter);right:var(--gutter);display:flex;align-items:center;justify-content:space-between;border-top:1px solid #ffffff60;padding-top:23px}.scroll-link{display:flex;align-items:center;gap:15px;font-size:9px;letter-spacing:.16em}.circle-arrow{display:grid;place-items:center;width:35px;height:35px;border:1px solid #ffffff65;border-radius:50%;font-size:17px}.hero-caption{display:flex;gap:16px;align-items:center;font-size:8px;letter-spacing:.13em}.hero-caption i{height:1px;width:34px;background:#ffffff70}.hero-index{font-size:16px}.hero-index>span{font-size:11px;color:#ffffffa0;padding-left:10px}.section-pad{padding:110px var(--gutter)}.section-label{font-size:9px;letter-spacing:.16em;display:flex;align-items:center;gap:20px}.tiny-cross{font-size:22px;line-height:1;font-weight:400}.intro{padding-top:100px}.intro-content{display:grid;grid-template-columns:1.25fr 1fr;gap:10vw;margin-top:50px}.intro h2{font-size:clamp(38px,4.15vw,70px);line-height:1.14;letter-spacing:-.05em}.intro h2 em{font-size:1.15em}.intro-description{max-width:450px;padding-top:8px}.intro-description p{font-size:14px;line-height:1.9;color:var(--muted);margin-bottom:22px}.intro-description p:first-child{font-size:17px;line-height:1.8;color:var(--ink)}.text-link{font-size:12px;padding:10px 0;display:inline-flex;gap:45px;border-bottom:1px solid #8c9386;margin-top:12px}.text-link span{font-size:20px}.discipline-row{margin-top:80px;display:flex;align-items:center;gap:40px;border-top:1px solid var(--line);padding-top:28px}.discipline-row>span{font-size:17px;letter-spacing:-.02em}.discipline-row i{font-style:normal;color:#858a7e;font-size:20px}.discipline-row .discipline-end{font-size:8px;letter-spacing:.14em;margin-left:auto}.experience{height:360svh;min-height:2300px;position:relative;background:#e4e4d9;scroll-margin-top:0}.experience-sticky{height:100svh;min-height:620px;position:sticky;top:0;overflow:hidden;background:#e7e7dd}.scene-grid{position:absolute;inset:0;background-image:linear-gradient(#53674e08 1px,transparent 1px),linear-gradient(90deg,#53674e08 1px,transparent 1px);background-size:70px 70px}.scene-container{position:absolute;inset:0;touch-action:pan-y}.scene-container canvas{display:block;width:100%;height:100%}.scene-fallback{width:100%;height:100%;object-fit:cover;opacity:.2}.scene-container.ready .scene-fallback{display:none}.experience-top{position:absolute;top:44px;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;align-items:center;pointer-events:none}.concept-tag{font-size:8px;letter-spacing:.13em;border:1px solid #7e867955;padding:8px 12px;background:#e7e7dd99}.scene-copy{position:absolute;top:26%;left:var(--gutter);max-width:380px;pointer-events:none}.scene-copy .eyebrow{color:#6b775e;font-size:9px;margin-bottom:20px}.scene-copy h2{font-size:clamp(40px,4.4vw,73px);line-height:1.08;letter-spacing:-.05em}.scene-copy h2 em{font-size:1.15em}.scene-copy>p:last-child{max-width:260px;font-size:12px;line-height:1.9;color:#5e6659;margin-top:24px}.scene-annotation{position:absolute;right:7%;top:25%;font-size:8px;letter-spacing:.13em;display:flex;gap:10px;align-items:center}.annotation-dot{width:7px;height:7px;border:1px solid #687a58;border-radius:50%;box-shadow:0 0 0 5px #687a5815}.scene-bottom{position:absolute;bottom:32px;left:var(--gutter);right:var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:25px}.scene-controls{display:flex;gap:20px}.phase{border-top:1px solid #9ba28f;padding:14px 0 0;min-width:115px;text-align:left;font-size:11px;color:#626b58;transition:border-color .3s,color .3s}.phase span{font-size:9px;margin-right:12px}.phase.active{border-top:2px solid var(--olive);color:var(--ink)}.scene-hint{font-size:9px;color:#69725f;display:flex;align-items:center;gap:15px}.scene-hint>span{font-size:20px}.motion-toggle{font-size:9px;border-bottom:1px solid #8d9681;padding:3px 0}.scene-progress{height:3px;background:#b9c0ac40;position:absolute;bottom:0;left:0;right:0}.scene-progress>span{display:block;width:100%;height:100%;background:#627153;transform:scaleX(0);transform-origin:left}.section-heading{display:grid;grid-template-columns:1fr 1.5fr .8fr;gap:40px;align-items:start;margin-bottom:70px}.section-heading .section-label{padding-top:10px}.section-heading h2{font-size:clamp(34px,3.5vw,60px);line-height:1.15;letter-spacing:-.045em}.section-heading h2 em{font-size:1.15em}.section-heading>p{font-size:12px;line-height:1.9;color:var(--muted);max-width:230px;padding-top:14px}.service{border-top:1px solid var(--line)}.service:last-child{border-bottom:1px solid var(--line)}.service summary{list-style:none;display:flex;align-items:center;gap:40px;padding:30px 0;cursor:pointer}.service summary::-webkit-details-marker{display:none}.service-number{font-size:11px;color:var(--muted);width:calc(26% - 40px)}.service h3{font-size:clamp(20px,2vw,32px);letter-spacing:-.035em;line-height:1.4}.service-symbol{height:32px;width:32px;border:1px solid #b6bcac;border-radius:50%;position:relative;margin-left:auto;flex-shrink:0}.service-symbol:before,.service-symbol:after{content:'';width:10px;height:1px;position:absolute;left:10px;top:15px;background:var(--ink);transition:transform .3s}.service-symbol:after{transform:rotate(90deg)}.service[open] .service-symbol:after{transform:rotate(0)}.service-body{margin-left:26%;padding:0 80px 35px 0;max-width:760px}.service-body p{font-size:13px;line-height:1.9;color:var(--muted)}.service-body>span{display:block;font-size:8px;letter-spacing:.1em;margin-top:24px;color:#757d6c}.vision-panel{height:680px;position:relative;overflow:hidden;color:white}.vision-panel>img{width:100%;height:100%;object-fit:cover;object-position:center 38%;transform:scale(1.12)}.vision-overlay{position:absolute;inset:0;background:linear-gradient(90deg,#1a2b21c0,#14231b08)}.vision-copy{position:absolute;top:50%;transform:translateY(-50%);left:var(--gutter)}.vision-copy h2{font-size:clamp(45px,6vw,96px);line-height:1.05;letter-spacing:-.05em;margin:35px 0 25px}.vision-copy h2 em{font-size:1.15em}.vision-copy p{font-size:13px;line-height:1.9;color:#ffffffe0}.visual-note{position:absolute;bottom:25px;right:var(--gutter);font-size:8px;letter-spacing:.12em;color:#ffffffc0}.contact{background:var(--olive);color:var(--paper);padding-bottom:65px}.contact-top{display:flex;justify-content:space-between;align-items:center}.availability{font-size:9px;letter-spacing:.12em;display:flex;gap:10px;align-items:center}.availability>span{width:5px;height:5px;border-radius:50%;background:#c4d5a3}.contact h2{font-size:clamp(40px,5.1vw,85px);line-height:1.18;letter-spacing:-.05em;margin:60px 0 36px}.contact h2 em{font-size:1.13em;color:#c8cfb5}.contact-bottom{display:flex;justify-content:space-between;align-items:center;padding-bottom:70px}.contact-bottom p{color:#d0d3c7;font-size:13px;line-height:1.9}.contact-cta{display:flex;align-items:center;gap:75px;border-bottom:1px solid #adb79c;padding-bottom:10px;font-size:24px;letter-spacing:-.04em}.contact-cta>span{font-size:36px;transition:transform .3s}.contact-cta:hover>span{transform:translate(5px,-5px)}.contact-details{display:grid;grid-template-columns:1fr 1fr 1fr;border-top:1px solid #b6c0a440;padding-top:30px;gap:45px}.contact-details a{font-size:13px;display:grid;grid-template-columns:1fr auto;gap:12px}.contact-details small{font-size:8px;color:#aeb9a0;letter-spacing:.14em;grid-column:1 / -1}.contact-details a>span{font-size:16px}footer{background:#242f26;color:#c9cebf;padding:40px var(--gutter) 25px}.footer-brand{display:block;font-size:clamp(30px,6.5vw,110px);letter-spacing:.07em;line-height:1.4;white-space:nowrap;border-bottom:1px solid #87947a40;padding-bottom:25px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;font-size:8px;padding-top:20px;color:#bdc6b2}.privacy-button{font-size:8px;padding:0;border-bottom:1px solid #87947a70}.demo-dialog{max-width:570px;width:calc(100% - 32px);border:0;padding:48px;background:var(--paper);color:var(--ink)}.demo-dialog::backdrop{background:#142016a0;backdrop-filter:blur(5px)}.demo-dialog h2{font-size:34px;letter-spacing:-.04em;margin:24px 0}.demo-dialog p{font-size:13px;color:var(--muted);margin:14px 0}.close-dialog{position:absolute;right:15px;top:10px;font-size:30px}.js .reveal{opacity:0;transform:translateY(25px);transition:opacity .85s var(--ease),transform .85s var(--ease)}.js .reveal.visible{opacity:1;transform:none}.reduced-motion .reveal{opacity:1!important;transform:none!important}.reduced-motion *{animation:none!important;transition:none!important}.reduced-motion{scroll-behavior:auto!important}
@keyframes hero-open{from{transform:scale(1.07)}to{transform:scale(1)}}@keyframes text-open{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1700px){:root{--gutter:7vw}.hero-copy{bottom:175px}.hero-copy>p:not(.eyebrow){font-size:16px}.nav{font-size:14px}.eyebrow{font-size:12px}}
@media(max-width:1050px){.nav{gap:20px}.nav .nav-contact{margin-left:0}.brand>span{font-size:14px}.brand small{font-size:7px}.scene-copy{max-width:280px}.scene-copy h2{font-size:50px}.scene-hint{display:none}.section-heading{grid-template-columns:1fr 2fr}.section-heading>p{grid-column:2}.service-number{width:calc(20% - 40px)}.service-body{margin-left:20%}.contact-details{gap:24px}.hero-caption{display:none}}
@media(max-width:720px){:root{--gutter:6vw}.header{padding:22px var(--gutter)}.brand svg{width:34px;height:34px}.brand>span{font-size:13px}.brand small{font-size:6px;letter-spacing:.2em}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:7px;width:42px;height:42px;z-index:2}.menu-toggle span{width:25px;height:1px;background:currentColor;transition:transform .3s}.menu-open .menu-toggle span:first-child{transform:translateY(4px) rotate(45deg)}.menu-open .menu-toggle span:last-child{transform:translateY(-4px) rotate(-45deg)}.nav{display:none;position:fixed;inset:0;background:var(--olive);padding:130px 9vw 70px;flex-direction:column;align-items:flex-start;gap:32px;font-size:26px}.nav.open{display:flex}.nav .nav-contact{font-size:15px;margin-top:auto}.brand{z-index:2}.hero{min-height:720px;max-height:980px}.hero-image{object-position:62% center}.hero-topline{top:110px;font-size:7px}.hero-topline>span:last-child{display:none}.hero-copy{bottom:140px}.hero h1{font-size:68px;letter-spacing:-.06em;margin-top:20px}.hero-copy>p:not(.eyebrow){font-size:12px}.hero-bottom{bottom:25px;padding-top:19px}.hero-shade{background:linear-gradient(90deg,#0a191b87,#15201810),linear-gradient(0deg,#0c1918c0,transparent 80%,#17211f80)}.hero-copy .eyebrow{font-size:8px}.scroll-link{font-size:7px;gap:10px}.section-pad{padding:70px var(--gutter)}.section-label{font-size:8px;gap:12px}.intro-content{grid-template-columns:1fr;gap:30px;margin-top:30px}.intro h2{font-size:43px}.intro-description p:first-child{font-size:15px}.intro-description p{font-size:12px}.discipline-row{margin-top:42px;gap:14px;flex-wrap:wrap}.discipline-row>span{font-size:12px}.discipline-row i{font-size:13px}.discipline-row .discipline-end{display:none}.experience{height:330svh;min-height:2050px}.experience-sticky{min-height:650px}.experience-top{top:25px}.concept-tag{display:none}.scene-copy{top:85px;max-width:100%;right:var(--gutter)}.scene-copy h2{font-size:42px;line-height:1.1}.scene-copy h2 br{display:none}.scene-copy .eyebrow{font-size:8px;margin-bottom:14px}.scene-copy>p:last-child{font-size:11px;line-height:1.7;max-width:280px;margin-top:14px}.scene-annotation{top:auto;bottom:140px;right:7%;font-size:7px}.scene-bottom{bottom:28px;display:block}.scene-controls{gap:20px;justify-content:space-between}.phase{min-width:0;flex:1;font-size:10px;padding-top:10px;white-space:nowrap}.phase span{margin-right:5px;font-size:8px}.motion-toggle{display:block;font-size:8px;margin:16px 0 0 auto}.section-heading{grid-template-columns:1fr;gap:28px;margin-bottom:35px}.section-heading h2{font-size:40px}.section-heading>p{grid-column:auto;max-width:280px;padding-top:0}.service summary{gap:15px;padding:24px 0}.service-number{width:16px;font-size:9px}.service h3{font-size:19px;max-width:250px}.service-symbol{width:27px;height:27px}.service-symbol:before,.service-symbol:after{left:8px;top:12px}.service-body{margin-left:31px;padding:0 10px 25px 0}.service-body p{font-size:12px}.service-body>span{font-size:7px;line-height:1.9}.vision-panel{height:560px}.vision-panel>img{object-position:68% center}.vision-copy h2{font-size:52px}.vision-copy .eyebrow{font-size:8px}.visual-note{font-size:6px;left:var(--gutter);right:auto}.contact-top .availability{font-size:7px}.contact h2{font-size:42px;margin:40px 0 30px}.contact-bottom{display:block;padding-bottom:40px}.contact-cta{width:max-content;margin-top:30px;font-size:23px;gap:50px}.contact-details{grid-template-columns:1fr;gap:25px}.contact-details a{font-size:13px;gap:6px}.footer-brand{font-size:7.2vw;letter-spacing:.04em;padding-bottom:25px}.footer-bottom{display:grid;grid-template-columns:1fr auto;gap:16px}.footer-bottom>span:nth-child(2){grid-column:1 / -1;grid-row:2;font-size:7px}.privacy-button{text-align:left;font-size:7px}.footer-bottom>a{grid-column:2;grid-row:1}.demo-dialog{padding:40px 25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}.hero-image{will-change:auto}}

/* Hero 3D: the original visual language, with real geometry and a moving camera. */
.hero{isolation:isolate;background:#7b897d}
.hero-scene{position:absolute;inset:0;cursor:grab;touch-action:pan-y}
.hero-scene.dragging{cursor:grabbing}
.hero-scene canvas{display:block;position:absolute;inset:0;width:100%;height:100%}
.hero-scene.ready>.hero-image{display:none}
.hero-image{animation:none;will-change:auto}
.hero-shade{pointer-events:none;background:linear-gradient(90deg,rgba(17,35,29,.8) 0%,rgba(17,35,29,.48) 32%,rgba(17,35,29,0) 64%),linear-gradient(0deg,rgba(15,29,24,.55),transparent 22%,transparent 80%,rgba(25,43,34,.28))}
.hero-topline,.hero-copy,.hero-bottom{pointer-events:none}
.hero-copy a,.hero-bottom a,.hero-bottom button{pointer-events:auto}
.hero h1{font-size:clamp(65px,7.4vw,124px)}
.hero-copy{bottom:156px}
.hero-caption{gap:12px}
.hero-playback{display:flex;align-items:center;gap:17px}
.hero-playback button{font-size:9px;color:white;border-bottom:1px solid #ffffff70;padding:6px 0}
.hero-playback button:hover{border-color:white}
.hero-playback button:disabled{opacity:.55;cursor:default}
.hero-scene-label{position:absolute;right:var(--gutter);top:27%;text-align:right;font-size:8px;letter-spacing:.15em;pointer-events:none}
.hero-scene-label>span{display:block;margin-top:8px;font-size:7px;color:#ffffffe0;letter-spacing:.12em}
.hero-scene-label:before{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;background:#d6e1b5;margin:0 9px 1px 0}
.hero-fallback-note{display:none;position:absolute;right:var(--gutter);top:29%;font-size:10px;max-width:210px}
.hero.scene-unavailable .hero-fallback-note{display:block}
.hero.scene-unavailable .hero-scene-label,.hero.scene-unavailable .hero-playback{display:none}
@media(max-width:1050px){.hero-caption{display:none}.hero-scene-label{top:21%;font-size:7px}.hero-playback{gap:14px}}
@media(max-width:720px){
 .hero{min-height:820px;max-height:none;height:100svh}
 .hero h1{font-size:58px;margin:13px 0 16px}
 .hero-copy{bottom:116px}
 .hero-copy>p:not(.eyebrow){font-size:12px}
 .hero-copy .button{margin-top:20px;padding:11px 17px}
 .hero-shade{background:linear-gradient(0deg,#152b24e8 0%,#183328b8 30%,#1d352b08 58%,#1b332623 80%,#17302573 100%)}
 .hero-scene-label{top:130px;font-size:7px}
 .hero-scene-label>span{display:none}
 .hero-playback{gap:14px}
 .hero-playback button{font-size:8px}
 .hero-bottom{left:var(--gutter);right:var(--gutter);gap:12px}
 .hero-bottom .scroll-link{font-size:6px;letter-spacing:.09em;gap:7px}
 .hero-bottom .circle-arrow{width:28px;height:28px;font-size:14px}
 .hero-fallback-note{top:150px;font-size:8px}
}
@media(prefers-reduced-motion:reduce){.hero-scene{cursor:default}}
