@import url('assets/fonts/fonts.css');
:root{--navy:#0c2866;--ink:#14243c;--deep:#0a1a32;--blue:#007bac;--muted:#627086;--line:#dce2e8;--paper:#f7f9fb;--serif:'Instrument Serif',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:#fff;color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit}button,a{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #219dcb;outline-offset:7px}img{max-width:100%;display:block}button{cursor:pointer}::selection{background:#bcd8e9;color:#0a1a32}.wrap{width:calc(100% - 144px);max-width:1392px;margin-inline:auto}.skip-link{position:fixed;z-index:100;top:10px;left:10px;padding:12px 20px;background:white;color:var(--ink);transform:translateY(-160%)}.skip-link:focus{transform:none}.site-header{position:absolute;z-index:30;top:0;left:0;width:100%;height:116px;padding:0 72px;display:flex;align-items:center;justify-content:space-between;gap:32px;color:white;border-bottom:1px solid #ffffff21;transition:background .4s,height .4s,box-shadow .4s}.brand{display:flex;align-items:center;gap:16px;flex-shrink:0}.brand-mark{width:54px;height:auto}.brand-type{font-size:29px;line-height:1.1;font-weight:400;letter-spacing:-1px}.brand-type small{display:block;font-size:8px;line-height:2.9;font-weight:500;letter-spacing:1.8px}.desktop-nav{display:flex;gap:32px;font-size:13px}.desktop-nav a{position:relative;padding:10px 0}.desktop-nav a::after{content:'';position:absolute;left:0;bottom:4px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s}.desktop-nav a:hover::after,.desktop-nav a.active::after{transform:scaleX(1)}.header-contact{display:flex;align-items:center;gap:30px;border:1px solid #ffffff66;padding:11px 22px;font-size:13px;transition:background .3s}.header-contact:hover{background:#ffffff18}.header-contact span{font-size:21px}.menu-toggle{display:none}.mobile-nav[hidden]{display:none}.hero{height:max(790px,100svh);max-height:1180px;position:relative;isolation:isolate;overflow:hidden;background:var(--deep);color:white}.hero-scene{position:absolute;inset:0;z-index:-1;overflow:hidden}.mountain-back,.mountain-front{position:absolute;left:-4%;top:-7%;width:108%;height:114%;max-width:none;object-fit:cover;object-position:center 48%;will-change:transform}.mountain-back{filter:saturate(.57)}.mountain-front{filter:saturate(.57);clip-path:polygon(19% 100%,30% 85%,37% 82%,44% 74%,51% 70%,60% 62%,68% 56%,76% 48%,85% 42%,100% 31%,100% 100%);opacity:.55}.scene-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,22,44,.83),rgba(9,28,52,.4) 58%,rgba(8,24,46,.12)),linear-gradient(0deg,rgba(5,19,38,.92),transparent 45%,rgba(7,24,48,.15))}.mountain-mist{position:absolute;inset:24% -25% -30%;opacity:.13;background:radial-gradient(ellipse at 65% 65%,#e6eef9,transparent 46%);filter:blur(45px);animation:none}.hero-emblem{position:absolute;top:30%;right:9%;width:34%;opacity:.16;transform:rotate(-2deg)}.hero-emblem img{width:100%;height:auto;filter:drop-shadow(0 0 25px #e0efff33);clip-path:inset(0 100% 0 0);animation:emblem 2.8s .6s cubic-bezier(.2,.7,.2,1) forwards}.hero-content{padding-top:clamp(218px,28vh,340px);position:relative;will-change:transform,opacity}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:550;display:flex;align-items:center;gap:17px;margin:0 0 26px}.eyebrow span{display:block;width:30px;height:1px;background:#d6e9f6a0}h1,h2,h3,p{margin-top:0}h1{font:400 clamp(75px,7.8vw,120px)/1.03 var(--serif);letter-spacing:-2.5px;margin-bottom:24px}h1 em,h2 em{font-weight:400}h1 em{color:#d9e8f2}h2{font:400 clamp(45px,4.8vw,72px)/1.1 var(--serif);letter-spacing:-1.3px;margin-bottom:0}h2 em{color:var(--blue)}.hero-description{color:#d5dce5;line-height:1.8;font-size:16px;margin-bottom:30px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;padding:17px 24px;font-size:13px;font-weight:500;transition:background .3s,transform .3s}.button:hover{transform:translateY(-3px)}.button span{font-size:23px;line-height:1}.button-light{background:#fff;color:var(--ink)}.button-light:hover{background:#e0edf5}.hero-bottom{position:absolute;bottom:37px;left:0;right:0;display:flex;justify-content:space-between;align-items:center;border-top:1px solid #ffffff30;padding-top:27px;gap:20px}.scroll-cue{font-size:10px;letter-spacing:1.65px;display:flex;gap:17px;align-items:center}.scroll-line{position:relative;height:30px;width:1px;background:#ffffff3d;overflow:hidden}.scroll-line::after{content:'';position:absolute;top:-100%;width:1px;height:100%;background:white;animation:scroll-line 2.5s ease-in-out 2}.hero-bottom p{font-size:12px;color:#c0cad8;margin:0}.hero-bottom p span{padding:0 13px;color:#7c8a9e}.hero-location{font-size:10px;letter-spacing:1.2px;color:#c0cad8}.hero-location span{margin:0 10px;color:#8292a9}.hero-index{position:absolute;right:26px;top:52%;writing-mode:vertical-rl;letter-spacing:3px;font-size:9px;color:#cfdeec99}.hero-enter{animation:enter 1.4s both cubic-bezier(.2,.65,.3,1)}.hero-enter:nth-child(2){animation-delay:.15s}.hero-enter:nth-child(3){animation-delay:.3s}.hero-enter:nth-child(4){animation-delay:.45s}.section-pad{padding:108px 0}.section-label{display:flex;justify-content:space-between;gap:20px;margin:0 0 62px;font-size:10px;letter-spacing:1.8px;color:var(--muted);font-weight:550}.intro-grid{display:grid;grid-template-columns:1.08fr 1fr;gap:11%}.intro-copy{padding-top:3px;color:var(--muted);font-size:15px}.intro-copy .lead{font-size:21px;line-height:1.5;color:var(--ink);margin-bottom:24px}.intro-copy p{margin-bottom:25px}.text-link{display:inline-flex;align-items:center;gap:35px;font-size:13px;font-weight:600;color:var(--navy);border-bottom:1px solid #a8b6c7;padding:8px 0;transition:gap .3s}.text-link:hover{gap:45px}.text-link span{font-size:21px}.site-footer{display:flex;justify-content:space-between;padding-top:26px;padding-bottom:26px;font-size:11px;color:var(--muted);border-top:1px solid var(--line)}.site-footer>a{font-weight:700;letter-spacing:2px;color:var(--navy)}
@keyframes enter{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes emblem{to{clip-path:inset(0 0 0 0)}}@keyframes mist{from{transform:translateX(-5%) scale(1)}to{transform:translateX(7%) scale(1.1)}}@keyframes scroll-line{to{top:100%}}
@media(min-width:1800px){.site-header{padding-inline:max(72px,calc((100vw - 1392px)/2))}.hero-content{padding-top:29vh}}
@media(max-width:1100px){.wrap{width:calc(100% - 80px)}.site-header{padding-inline:40px}.desktop-nav{gap:22px}.hero{min-height:760px}.hero-location{display:none}.intro-grid{gap:8%}.hero-emblem{right:4%;top:40%}.header-contact{padding:9px 16px;gap:15px}}
@media(max-width:760px){html{scroll-padding-top:82px}.wrap{width:calc(100% - 44px)}.site-header{height:90px;padding:0 22px;gap:20px}.brand-type{font-size:25px}.brand-type small{font-size:7px;letter-spacing:1.3px}.brand{gap:12px}.brand-mark{width:42px}.desktop-nav,.header-contact{display:none}.menu-toggle{display:flex;flex-direction:column;gap:7px;width:44px;height:44px;align-items:center;justify-content:center;background:none;color:inherit;border:1px solid #ffffff55}.menu-toggle span{width:18px;height:1px;background:currentColor;transition:transform .3s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.mobile-nav{position:fixed;inset:90px 0 0;z-index:29;background:var(--deep);padding:50px 28px;display:flex;flex-direction:column;gap:20px;color:white}.mobile-nav>a{font:36px/1.4 var(--serif)}.mobile-nav .mobile-phone{font:16px/1.5 var(--sans);margin-top:24px;color:#c2d5e5}.hero{height:max(740px,100svh);min-height:0;max-height:950px}.hero-content{padding-top:218px}.eyebrow{font-size:9px;letter-spacing:1.4px;gap:10px;margin-bottom:28px}.eyebrow span{width:20px}h1{font-size:clamp(56px,10vw,76px);letter-spacing:-1px;line-height:1.05;margin-bottom:24px}.hero-description{font-size:14px;max-width:300px}.button{font-size:12px;padding:16px 20px;gap:25px}.hero-bottom{bottom:27px;padding-top:24px}.hero-bottom p{display:none}.hero-index{display:none}.hero-emblem{top:19%;right:3%;width:50%;opacity:.12}.mountain-back,.mountain-front{object-position:62% center}.scene-shade{background:linear-gradient(90deg,#07162cdb,#091c3480),linear-gradient(0deg,#051326ef,transparent 65%)}.section-pad{padding:72px 0}.section-label{margin-bottom:37px;font-size:9px;letter-spacing:1.3px}.section-label span:last-child{display:none}.intro-grid{grid-template-columns:1fr;gap:30px}h2{font-size:48px}.intro-copy{font-size:15px}.intro-copy .lead{font-size:19px}.site-footer{font-size:10px;gap:20px;flex-wrap:wrap}.site-footer span:last-child{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.hero-emblem img{clip-path:none}.mountain-back,.mountain-front,.hero-content{transform:none!important;opacity:1!important}}

/* Layout, disclosures and scroll-driven depth. */
:root{--navy:#092868;--blue:#0076aa}
.site-header{position:fixed}.site-header.is-scrolled,.menu-open .site-header{height:82px;background:#0a1a32f5;box-shadow:0 4px 24px #07152916;border-color:#ffffff17;backdrop-filter:blur(14px)}
.reading-progress{position:fixed;z-index:40;left:0;top:0;width:100%;height:2px;background:#75bfde;transform:scaleX(0);transform-origin:left}
.desktop-nav,.header-contact,.button,.text-link{font-size:14px}.eyebrow{font-size:12px}.hero-bottom p{font-size:13px}.scroll-cue{font-size:11px}.section-label{font-size:11px}.intro-copy{font-size:16px}
.hero-scene{animation:none;transform-origin:70% 60%}.hero-emblem{opacity:.5;will-change:transform}.hero-emblem svg{width:100%;height:auto;overflow:visible}.emblem-path{stroke:#fff;stroke-width:.18;stroke-dasharray:1;stroke-dashoffset:1;fill:#fff0;animation:draw-logo 3.5s .5s cubic-bezier(.3,.7,.3,1) forwards}

.intro-signature{border-top:1px solid var(--line);margin-top:36px;padding-top:22px;width:220px}.intro-signature img{width:174px;height:auto}.intro .section-label{padding-bottom:23px;border-bottom:1px solid var(--line)}
.expertise{background:var(--paper);border-top:1px solid #edf0f4}.expertise-grid{display:grid;grid-template-columns:.83fr 1.3fr;gap:10%}.expertise-heading{position:sticky;top:138px;align-self:start}.expertise-heading>p{color:var(--muted);font-size:16px;line-height:1.9;margin:30px 0 21px}.services{border-top:1px solid #bdc9d5}.service{border-bottom:1px solid #cfd8e1}.service summary{list-style:none;display:grid;grid-template-columns:30px 1fr 20px;align-items:start;gap:12px;padding:26px 0;cursor:pointer}.service summary::-webkit-details-marker{display:none}.service-number{font-size:12px;color:#6d829a;padding-top:7px;font-variant-numeric:tabular-nums}.service-title{display:block;font-size:21px;line-height:1.45;letter-spacing:-.4px;font-weight:450;transition:color .2s}.service-tag{display:block;font-size:10px;letter-spacing:1px;color:#697c93;margin-top:9px}.service-plus{position:relative;margin-top:11px;height:14px;width:14px}.service-plus::before,.service-plus::after{position:absolute;content:'';background:var(--navy);top:6px;left:0;width:14px;height:1px;transition:transform .3s}.service-plus::after{transform:rotate(90deg)}.service[open] .service-plus::after{transform:rotate(0)}.service[open] .service-title,.service summary:hover .service-title{color:var(--blue)}.service-body{padding:0 24px 26px 42px;color:var(--muted);font-size:16px;line-height:1.85;max-width:630px}.service-body p{margin:0}.service[open] .service-body{animation:enter .45s ease both}.service:focus-within{position:relative;z-index:1}
.approach-heading{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:11%}.approach-heading>p{font-size:16px;color:var(--muted);margin:0 0 3px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:56px;margin-top:68px}.step-top{display:flex;align-items:center;gap:18px;margin-bottom:26px;color:var(--blue);font-size:13px}.step-line{height:1px;flex:1;background:#ccd8e4;position:relative;overflow:hidden}.step-line::after{content:'';position:absolute;inset:0;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform 1.3s .25s}.step.is-visible .step-line::after{transform:scaleX(1)}.step h3{font-size:20px;font-weight:500;letter-spacing:-.4px;margin-bottom:17px}.step p{font-size:16px;line-height:1.9;color:var(--muted);margin:0}.step:nth-child(2){transition-delay:.1s}.step:nth-child(3){transition-delay:.2s}
.contact{background:var(--deep);position:relative;isolation:isolate;overflow:hidden;color:white;padding-bottom:92px}.contact .section-label{color:#a7b9cc}.contact-grid{display:grid;grid-template-columns:1.5fr .65fr;gap:11%;position:relative}.contact h2{font-size:clamp(55px,5.7vw,84px);line-height:1.1}.contact h2 em{color:#a7ccdf}.contact-intro{margin:27px 0 33px;color:#b9c8d8;font-size:16px;line-height:1.9}.contact-phone{display:flex;gap:35px;align-items:center;width:fit-content;font-family:var(--serif);font-size:43px;line-height:1.4;transition:color .2s}.contact-phone span{font:25px var(--sans);color:#95b6ce}.contact-phone:hover,.contact-email:hover{color:#a7ccdf}.contact-email{display:flex;gap:35px;align-items:center;width:fit-content;max-width:100%;border-bottom:1px solid #ffffff44;font-size:17px;margin-top:10px;padding:0 0 9px;transition:color .2s}.contact-email span{font-size:20px;color:#95b6ce}.contact-details{padding-top:7px}.contact-details .eyebrow{font-size:11px;color:#94acc2;margin-bottom:27px}.contact-name{font:38px/1.1 var(--serif);margin:0 0 6px!important;color:white}.contact-details>p{margin:0;color:#bdcad9;font-size:14px}.contact-details address{font-style:normal;color:#bdcad9;font-size:16px;line-height:1.8;margin:29px 0 11px}.contact-details .text-link{color:#d4e5f2;border-color:#ffffff33;font-size:14px;gap:25px}.contact-details .contact-note{font-size:14px;margin-top:29px;color:#8fa5bb;line-height:1.8}.contact-mark{position:absolute;z-index:-1;right:-11%;bottom:-15%;width:62%;opacity:.035;transform:rotate(-5deg);pointer-events:none}.contact-mark img{width:100%;height:auto}.footer-surface{background:var(--deep)}.site-footer{border-color:#ffffff20;color:#8ca2b9;padding-block:28px;font-size:12px;align-items:center}.site-footer>a{color:#d5e0ee}.site-footer .back-top{font-size:12px;font-weight:400;letter-spacing:0;display:flex;gap:13px}.back-top span{font-size:18px}
.js-motion .reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.3,1)}.js-motion .reveal.is-visible{opacity:1;transform:translateY(0)}

@keyframes draw-logo{0%{stroke-dashoffset:1;fill:#fff0}75%{stroke-dashoffset:0;fill:#fff0}100%{stroke-dashoffset:0;fill:#ffffff25}}
@keyframes landscape-breathe{from{transform:scale(1)}to{transform:scale(1.035)}}
@media(min-width:761px) and (max-height:800px){.hero{height:790px}.hero-content{padding-top:205px}h1{font-size:clamp(76px,7vw,105px)}}
@media(max-width:1100px){.expertise-grid{gap:7%;grid-template-columns:.8fr 1.2fr}.service-title{font-size:19px}.service-tag{font-size:9px;letter-spacing:.6px}.steps{gap:32px}.contact-grid{gap:9%;grid-template-columns:1.3fr .7fr}.contact-email{font-size:16px;gap:20px}.hero-bottom p{font-size:11px}}
@media(max-width:760px){.site-header.is-scrolled,.menu-open .site-header{height:82px}.mobile-nav{top:82px}.hero-content .eyebrow{font-size:10px}.hero-description{font-size:16px;max-width:360px}.button{font-size:13px}.hero-emblem{width:51%;top:22%;opacity:.48}.hero-bottom{gap:15px}.scroll-cue{font-size:10px;letter-spacing:1px;gap:12px}.section-label{font-size:10px}.intro-copy{font-size:16px}.intro-signature{margin-top:25px;padding-top:20px;width:190px}.intro-signature img{width:152px}.intro-grid{gap:38px}.expertise-grid{grid-template-columns:1fr;gap:45px}.expertise-heading{position:static}.expertise-heading>p{font-size:16px;margin:23px 0 12px}.expertise-heading>p br{display:none}.service summary{padding:24px 0;grid-template-columns:24px 1fr 16px;gap:8px}.service-title{font-size:19px}.service-tag{font-size:9px;letter-spacing:.5px;line-height:1.7}.service-body{font-size:16px;padding:0 15px 24px 32px}.approach-heading{grid-template-columns:1fr;gap:25px}.approach-heading>p{font-size:16px}.steps{grid-template-columns:1fr;gap:35px;margin-top:44px}.step-top{margin-bottom:15px}.step h3{font-size:21px;margin-bottom:12px}.step p{font-size:16px;max-width:490px}.contact{padding-bottom:62px}.contact-grid{grid-template-columns:1fr;gap:52px}.contact h2{font-size:clamp(48px,8vw,66px)}.contact-phone{font-size:36px;gap:20px}.contact-email{font-size:15px;gap:20px}.contact-details{border-top:1px solid #ffffff26;padding-top:32px;position:relative}.contact-details .eyebrow{margin-bottom:20px}.contact-details address{font-size:16px;margin-top:23px}.contact-mark{width:100%;right:-20%;bottom:0;opacity:.025}.site-footer{display:grid;grid-template-columns:1fr auto;gap:18px;font-size:11px}.site-footer>span{grid-column:1/-1;grid-row:2}.site-footer .back-top{font-size:11px}.site-footer>span>span:last-child{display:inline}}
@media(max-width:380px){.hero-content{padding-top:195px}h1{font-size:52px}.hero-content .eyebrow{font-size:9px;letter-spacing:1px}.hero-description{font-size:15px}.brand-type{font-size:24px}.contact-email{font-size:13px;gap:15px}.contact-phone{font-size:32px}}

/* The mountain journey: cold stone, silver lettering and warm mineral details. */
:root{--ink:#e8e7e0;--deep:#0b1117;--paper:#111920;--muted:#a4b0bb;--line:#ffffff24;--blue:#c5b38c;--gold:#b7a17d;--serif:'Instrument Serif',Georgia,serif}
body{background:var(--deep)}::selection{background:#b7a17d;color:#0b1117}.atmosphere{position:fixed;inset:0;width:100%;height:100%;z-index:5;pointer-events:none;opacity:.42}.site-header.is-scrolled,.menu-open .site-header{background:#0b1117ed}.reading-progress{background:var(--gold)}.hero{max-height:none;background:#0b1117}.mountain-back,.mountain-front{filter:saturate(.68);object-position:center 50%}.mountain-front{clip-path:polygon(0 74%,13% 78%,23% 89%,30% 100%,0 100%,0 74%,100% 100%,100% 60%,90% 74%,77% 89%,68% 100%);opacity:.28}.scene-shade{background:linear-gradient(90deg,#080f18c9,#0a15274d 58%,#0712211c),linear-gradient(0deg,#0b1117ff,transparent 37%,#0b111726)}.hero-emblem{opacity:.45;right:7%;top:30%;width:34%}.hero-content h1{font-size:clamp(78px,8.2vw,124px)}h1 em{color:#e6dfce}.hero-description{color:#d0d8db}.hero-content .eyebrow{color:#ded3bc}.button-light{background:#ded6c4;color:#161b21}.button-light:hover{background:#f0e8d5}.hero-bottom{border-color:#d9d3c12e}.hero-bottom p{color:#c0c9ca}.hero-enter{animation-duration:1.8s}.intro{background:linear-gradient(180deg,#0b1117,#101820);position:relative;isolation:isolate}.intro::before{content:'';position:absolute;inset:0;z-index:-1;opacity:.08;background:url('assets/mountains.jpg') center 65%/cover;mask-image:linear-gradient(transparent,#000,transparent)}.intro .section-label{border-color:#ffffff21}.intro-copy .lead{color:#e5e7e6}.intro-signature{border-color:#ffffff20}.intro-signature img{filter:grayscale(1) invert(1);mix-blend-mode:screen;opacity:.78}.text-link{color:#d8c8a8;border-color:#9f977561}.expertise{background:#101820;border-color:#ffffff0a}.section-label{color:#99a7b1}.services{border-color:#ffffff3a}.service{border-color:#ffffff24}.service-number{color:#ac9776}.service-title{color:#e2e5e4}.service-tag{color:#83939f}.service-plus::before,.service-plus::after{background:#bfaa85}.service[open] .service-title,.service summary:hover .service-title{color:#d1bd94}.expertise-heading{top:134px}.approach{background:linear-gradient(#0b1117,#101820)}.step-line{background:#ffffff20}.step-line::after{background:#a9916e}.step h3{color:#e2e3df}.contact{background:#101820}.contact h2 em{color:#cbb995}.contact-intro{color:#aebbc2}.contact-mark{opacity:.045}.footer-surface{background:#101820}.site-footer{color:#8a9aa6}.site-footer>a{color:#cfc4ad}.contact-phone span,.contact-email span{color:#b8a482}.contact-phone:hover,.contact-email:hover{color:#d9cbb0}
.journey{height:250svh;min-height:1600px;position:relative;background:#080d13;--travel:0}.journey-sticky{position:sticky;top:0;height:100svh;min-height:660px;overflow:hidden;isolation:isolate}.journey-world{position:absolute;inset:-6%;z-index:-5;will-change:transform}.journey-world img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.65) brightness(.77)}.cave-frame{position:absolute;inset:0;z-index:-3;max-width:none;width:100%;height:100%;object-fit:cover;object-position:center;transform-origin:50% 45%;will-change:transform,opacity;filter:brightness(.72) saturate(.65)}.journey-haze{position:absolute;z-index:-4;inset:0;background:radial-gradient(ellipse at 55% 50%,#cbdfdc22,transparent 65%);animation:none}.journey-shade{position:absolute;z-index:-2;inset:0;background:linear-gradient(0deg,#080d13ed,transparent 65%),linear-gradient(90deg,#080d1359,transparent 70%)}.journey-copy{position:absolute;left:0;right:0;bottom:20%;will-change:transform,opacity}.journey-title,.journey-copy h2{font:400 clamp(55px,5.5vw,84px)/1.12 var(--serif);letter-spacing:-1px;margin:0}.journey-title em,.journey-copy h2 em{color:#d7c8a9}.journey-copy .eyebrow{font-size:11px;color:#c6b28d;margin-bottom:26px}.journey-copy-end{opacity:0;transform:translateY(25px)}.journey-copy-end>p:last-child{font-size:16px;color:#c2cccfff;margin:28px 0 0}.journey-bottom{position:absolute;bottom:36px;left:0;right:0;display:flex;align-items:center;gap:26px;font-size:10px;letter-spacing:1.5px;color:#c4c8c4}.journey-meter{height:1px;flex:1;background:#ffffff29;overflow:hidden}.journey-meter>span{display:block;width:100%;height:100%;background:#bba67e;transform:scaleX(var(--travel));transform-origin:left}.journey-bottom>a{display:flex;gap:18px}.journey-bottom>a>span{font-size:16px;line-height:1}

@media(max-width:1100px){.journey{min-height:1500px}.journey-copy h2,.journey-title{font-size:65px}}
@media(max-width:760px){.hero-content h1{font-size:clamp(54px,10vw,76px)}.hero-emblem{width:65%;top:20%;right:2%;opacity:.3}.scene-shade{background:linear-gradient(90deg,#080f18bd,#0a152755),linear-gradient(0deg,#0b1117,transparent 65%)}.mountain-back,.mountain-front{object-position:55% center}.intro::before{opacity:.045}.journey{height:210svh;min-height:1400px}.journey-sticky{min-height:640px}.journey-world{inset:-5% -35%}.cave-frame{width:180%;left:-40%;object-position:center}.journey-copy{bottom:19%}.journey-title,.journey-copy h2{font-size:clamp(40px,7vw,59px);line-height:1.15}.journey-copy .eyebrow{font-size:9px;letter-spacing:1.5px;margin-bottom:23px}.journey-copy-end>p:last-child{font-size:15px;max-width:310px}.journey-bottom{bottom:28px;gap:18px;font-size:9px;letter-spacing:1px}.journey-chapter{max-width:130px}.journey-world img{object-position:52% center}.atmosphere{opacity:.28}}
@media(prefers-reduced-motion:reduce){.hero-scene{animation:none}.emblem-path{stroke-dashoffset:0;fill:#ffffff25}.js-motion .reveal{opacity:1;transform:none}.step-line::after{transform:scaleX(1)}.atmosphere{display:none}.journey{height:100svh;min-height:720px}.journey-sticky{position:relative;height:100%;min-height:720px}.journey-copy-start{opacity:0!important}.journey-copy-end{opacity:1!important;transform:none!important}.cave-frame{transform:scale(1.2)!important;opacity:.6!important}.journey-world{transform:none!important}}
.mountain-front{clip-path:none;mask-image:linear-gradient(90deg,#000,transparent 30%,transparent 78%,#000);opacity:.3}.journey-copy{pointer-events:none}html:not(.js-motion) .journey{height:100svh;min-height:720px}html:not(.js-motion) .journey-sticky{position:relative;height:100%;min-height:720px}html:not(.js-motion) .journey-copy-start{display:none}html:not(.js-motion) .journey-copy-end{opacity:1;transform:none}

/* Immersive native-scroll camera. The outer tracks provide travel distance;
   each stage stays at the actual viewport height, including on mobile. */
.hero-track { position: relative; background: var(--deep); }
.js-motion .hero-track { height: 245svh; }
.hero-track .hero {
  position: sticky; top: 0; width: 100%; height: 100svh;
  min-height: 0; max-height: none;
}
.hero-scene, .mountain-mist, .journey-haze { animation: none; }
.hero-scene { transform: none; }
.mountain-back, .mountain-front {
  top: -8%; left: -8%; width: 116%; height: 116%;
  transform-origin: 60% 46%;
}
.hero-cliffs {
  position: absolute; inset: 0; width: 100%; height: 100%; max-width: none;
  object-fit: cover; transform: scale(1.75); transform-origin: 54% 46%;
  filter: brightness(.7) saturate(.6); will-change: transform, opacity;
}
.hero-content { padding-top: clamp(155px, 26svh, 300px); transform-origin: left 40%; }
.hero-content h1 { font-size: clamp(72px, 8.2vw, 124px); }
.hero-bottom { will-change: opacity; }
.hero-bottom p { text-align: right; }
.scroll-line::after { animation-iteration-count: 2; }
.mountain-mist { opacity: .25; will-change: transform; }
.intro, .expertise, .approach { position: relative; isolation: isolate; overflow: clip; }
.expertise { overflow: visible; }
.intro::before, .expertise::before, .approach::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: url('assets/mountains.jpg') center / cover;
  opacity: .12; mask-image: linear-gradient(transparent, #000 25%, #000 75%, transparent);
  transform: translate3d(0, var(--terrain-y, 0px), 0) scale(var(--terrain-scale, 1.15));
}
.expertise::before { opacity: .055; clip-path: inset(0); transform: none; background-position: center var(--terrain-y, 0px); }
.approach::before { background-image: url('assets/mountain-pass.webp'); opacity: .08; }
.intro-grid { grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); }
.expertise-grid { grid-template-columns: minmax(0, .83fr) minmax(0, 1.3fr); }
.contact-grid { grid-template-columns: minmax(0, 1.5fr) minmax(0, .65fr); }
.intro-grid > *, .expertise-grid > *, .contact-grid > * { min-width: 0; }
.contact-email { overflow-wrap: anywhere; }
.journey { height: 280svh; min-height: 0; }
.journey-sticky { height: 100svh; min-height: 0; }
.journey-world { inset: -8%; transform-origin: 55% 46%; }
.cave-frame { inset: -4%; width: 108%; height: 108%; transform-origin: 55% 46%; }
.journey-haze { inset: -12%; will-change: transform, opacity; }
.journey-copy { bottom: 19%; }
.journey-title, .journey-copy h2 { font-size: clamp(48px, 5.5vw, 84px); }
.mobile-nav { overflow-y: auto; overscroll-behavior: contain; padding-bottom: max(32px, env(safe-area-inset-bottom)); }

@media (max-width: 1024px) {
  .site-header { height: 90px; padding-inline: 30px; }
  .desktop-nav, .header-contact { display: none; }
  .menu-toggle {
    display: flex; flex-direction: column; gap: 7px; width: 44px; height: 44px;
    align-items: center; justify-content: center; background: transparent;
    color: inherit; border: 1px solid #ffffff55; flex-shrink: 0;
  }
  .menu-toggle span { width: 18px; height: 1px; background: currentColor; transition: transform .3s; }
  .menu-toggle[aria-expanded=true] span:first-child { transform: translateY(4px) rotate(45deg); }
  .menu-toggle[aria-expanded=true] span:last-child { transform: translateY(-4px) rotate(-45deg); }
  .mobile-nav {
    position: fixed; inset: 82px 0 0; z-index: 29; background: var(--deep);
    padding: 35px 30px max(32px, env(safe-area-inset-bottom));
    display: flex; flex-direction: column; gap: 20px; color: white;
  }
  .mobile-nav > a { font: 36px/1.4 var(--serif); flex-shrink: 0; }
  .mobile-nav .mobile-phone { font: 16px/1.5 var(--sans); margin-top: 24px; color: #c2d5e5; }
  .hero-content h1 { font-size: clamp(68px, 9.5vw, 98px); }
  .contact-grid { grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); gap: 7%; }
}
@media (max-width: 760px) {
  .site-header { padding-inline: 22px; }
  .js-motion .hero-track { height: 205svh; }
  .hero-content { padding-top: clamp(150px, 25svh, 220px); }
  .hero-content h1 { font-size: clamp(46px, 12.7vw, 78px); line-height: 1.05; letter-spacing: -1px; }
  .hero-description { font-size: 16px; }
  .hero-bottom { bottom: max(26px, env(safe-area-inset-bottom)); }
  .hero-bottom p { display: none; }
  .hero-emblem { width: 66%; top: 21%; right: 2%; }
  .hero-cliffs { width: 170%; left: -35%; }
  .mountain-back, .mountain-front { object-position: 56% center; transform-origin: 55% 43%; }
  .intro-grid, .expertise-grid, .contact-grid { grid-template-columns: minmax(0, 1fr); }
  .journey { height: 240svh; }
  .journey-world { inset: -8% -28%; }
  .cave-frame { width: 108%; left: -4%; }
  .journey-title, .journey-copy h2 { font-size: clamp(36px, 9vw, 58px); }
  .journey-copy { bottom: 18%; }
  .journey-copy-end > p:last-child { font-size: 15px; }
}
@media (max-height: 700px) and (max-width: 600px) {
  .hero-content { padding-top: 126px; }
  .hero-content .eyebrow { font-size: 9px; margin-bottom: 17px; letter-spacing: 1px; }
  .hero-content h1 { font-size: clamp(43px, 12.7vw, 65px); margin-bottom: 17px; }
  .hero-description { font-size: 14px; line-height: 1.65; margin-bottom: 20px; }
  .hero-content .button { padding: 14px 18px; font-size: 12px; }
  .hero-bottom { bottom: 21px; padding-top: 18px; }
  .journey-title, .journey-copy h2 { font-size: clamp(33px, 8.4vw, 49px); }
  .journey-copy .eyebrow { margin-bottom: 16px; }
}
@media (max-height: 560px) and (min-width: 601px) {
  .site-header, .site-header.is-scrolled, .menu-open .site-header { height: 68px; }
  .mobile-nav { top: 68px; padding-top: 20px; gap: 14px; }
  .mobile-nav > a { font-size: 28px; }
  .mobile-nav .mobile-phone { margin-top: 10px; }
  .hero-content { padding-top: 108px; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); column-gap: 30px; }
  .hero-content .eyebrow { grid-column: 1 / -1; margin-bottom: 16px; font-size: 10px; }
  .hero-content h1 { grid-column: 1; grid-row: 2 / span 2; font-size: clamp(48px, 6.9vw, 68px); margin: 0; }
  .hero-description { grid-column: 2; grid-row: 2; font-size: 14px; line-height: 1.6; margin-bottom: 14px; }
  .hero-content .button { grid-column: 2; grid-row: 3; padding: 12px 16px; font-size: 12px; gap: 18px; align-self: start; }
  .hero-bottom { bottom: 20px; padding-top: 14px; }
  .hero-emblem { top: 25%; width: 30%; }
  .journey-title, .journey-copy h2 { font-size: 38px; }
  .journey-copy .eyebrow { font-size: 9px; margin-bottom: 12px; }
  .journey-copy-end > p:last-child { font-size: 14px; margin-top: 13px; }
  .journey-copy { bottom: 21%; }
  .journey-bottom { bottom: 22px; }
}
html:not(.js-motion) .hero-track { height: auto; }
html:not(.js-motion) .hero { position: relative; min-height: 640px; }

/* Chiselled mineral surfaces: real rock texture, bevels and moving edge light. */
.button, .header-contact {
  --cut: 11px; --button-x: 0px; --button-y: 0px;
  position: relative; isolation: isolate; overflow: hidden;
  border: 0; border-radius: 0; background: #a69b81; color: #eee5d1;
  clip-path: polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut));
  transform: translate3d(var(--button-x), var(--button-y), 0);
  transition: transform .22s ease, background .35s, color .35s;
  letter-spacing: .15px;
}
.button::before, .header-contact::before {
  content: ''; position: absolute; z-index: -1; inset: 1px;
  clip-path: polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut));
  background: linear-gradient(105deg, #16222ee8, #0a111bd6), url('assets/mountains.jpg') 12% 40% / 210%;
  transition: background-position .8s, filter .5s;
}
.button::after, .header-contact::after {
  content: ''; position: absolute; z-index: 1; inset: 0; pointer-events: none;
  opacity: 0; background: radial-gradient(ellipse at var(--light-x, 50%) 0, #e9d2a642, transparent 60%);
  transition: opacity .35s;
}
.button:hover, .header-contact:hover { background: #e3c998; color: #fff7e5; transform: translate3d(var(--button-x), calc(var(--button-y) - 2px), 0); }
.button:hover::before, .header-contact:hover::before { background-position: 16% 46%; filter: brightness(1.25); }
.button:hover::after, .header-contact:hover::after { opacity: 1; }
.button:focus-visible, .header-contact:focus-visible { outline: none; background: #f2d496; }
.button:focus-visible::before, .header-contact:focus-visible::before { inset: 3px; }
.button > span, .header-contact > span { transition: transform .35s ease; }
.button:hover > span, .header-contact:hover > span { transform: translate(3px, -3px); }
.button:active, .header-contact:active { transform: translateY(1px); }
.button.hero-enter { animation-fill-mode: backwards; }
.header-contact { --cut: 8px; padding: 14px 23px; }
.text-link { transition: gap .3s, color .3s, border-color .3s; }
.text-link:hover { color: #f1d7a9; border-color: #d5b581; }
.menu-toggle { clip-path: polygon(7px 0, 100% 0, 100% calc(100% - 7px), calc(100% - 7px) 100%, 0 100%, 0 7px); background: #101c2799; }
.service summary:hover .service-plus { transform: rotate(90deg); }
.service-plus { transition: transform .35s ease; }
.mountain-front { opacity: .12; }
.journey { height: 310svh; }
.cave-frame { filter: brightness(.55) saturate(.5); }
@media (max-width: 760px) {
  .journey { height: 275svh; }
  .cave-frame { object-fit: cover; }
  .button { --cut: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  .js-motion .hero-track { height: auto; }
  .hero-track .hero { position: relative; }
  .hero-cliffs { transform: scale(1.75) !important; opacity: .7 !important; }
  .hero-content, .hero-bottom { opacity: 1 !important; transform: none !important; }
  .hero-emblem { opacity: .4 !important; transform: none !important; }
  .intro::before, .expertise::before, .approach::before { transform: none; }
  .journey { height: 100svh; min-height: 0; }
  .journey-sticky { height: 100svh; min-height: 0; }
  .button, .header-contact { transform: none !important; }
}

/* One landscape carries the whole story: horizon, rock passage, open valley. */
body { isolation: isolate; background: #081013; }
.expedition-scene {
  display: none; position: fixed; z-index: -1; inset: 0;
  overflow: hidden; pointer-events: none; background: #081013;
  contain: strict;
}
.js-motion .expedition-scene { display: block; }
.expedition-scene > img, .expedition-scene > picture {
  position: absolute; inset: -5%; width: 110%; height: 110%; max-width: none;
  object-fit: cover; transform-origin: 55% 46%;
  will-change: transform, opacity;
}
.expedition-mountains { filter: saturate(.72) brightness(.9); }
.expedition-scene .expedition-foreground, .expedition-canopy {
  position: absolute; max-width: none; object-fit: cover;
  z-index: 2; inset: -4%; width: 108%; height: 108%; object-position: center bottom;
  transform-origin: 53% 72%; filter: brightness(.7) saturate(.65);
  will-change: transform, opacity;
}
.expedition-canopy { opacity: 0; }
.expedition-weather { position: absolute; z-index: 3; inset: 0; width: 100%; height: 100%; opacity: 0; pointer-events: none; }
.expedition-valley { opacity: 0; filter: saturate(.86); object-position: 55% center; }
.expedition-scene .expedition-cave {
  z-index: 2; opacity: 0; inset: -2%; width: 104%; height: 104%;
  filter: brightness(.78) saturate(.6) contrast(1.08); transform: scale(3.6);
}
.expedition-cave img { width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; }
.expedition-light {
  position: absolute; z-index: 1; inset: -15%; opacity: 0;
  background: radial-gradient(ellipse at 75% 16%, #fbe9b373, #ded9ae0a 38%, transparent 67%),
    conic-gradient(from 154deg at 75% 16%, transparent, #e8e4c91f 9deg, transparent 18deg, #e7e6d926 27deg, transparent 40deg);
  mix-blend-mode: screen; will-change: opacity, transform;
}
.expedition-sun {
  position: absolute; z-index: 1; inset: -5%; width: 110%; height: 110%;
  transform-origin: 55% 46%; opacity: 0; --sun-x: 64%; --sun-y: 21%;
  will-change: transform, opacity;
}
.sun-halo {
  position: absolute; left: var(--sun-x); top: var(--sun-y);
  width: clamp(300px, 46vw, 760px); aspect-ratio: 1; mix-blend-mode: screen;
  background: radial-gradient(circle, #fffcebc9 0, #fff2c77d 5%, #fbe8b04a 15%, #ebbc601c 34%, transparent 67%);
  transform: translate(-50%, -50%); will-change: opacity, transform;
}
.expedition-rays {
  position: absolute; left: var(--sun-x); top: var(--sun-y); width: 150vmax; height: 150vmax; opacity: 0;
  transform-origin: center; mix-blend-mode: screen;
  background: conic-gradient(from 112deg at center, transparent 0deg, #ffe9ae45 9deg,
    transparent 16deg, #fff1ca57 25deg, transparent 33deg, #f6d78b35 43deg,
    transparent 53deg, #ffedb850 66deg, transparent 74deg, #ffdfa134 85deg, transparent 97deg);
  mask-image: radial-gradient(circle, transparent .4%, #000 5%, #000 20%, transparent 51%);
  transform: translate(-50%, -50%);
  will-change: opacity, transform;
}
.expedition-rays-secondary {
  background: conic-gradient(from 125deg at center, transparent, #fce8b22e 17deg,
    transparent 28deg, #ffebc140 46deg, transparent 63deg, #f9dfa92e 78deg, transparent 98deg);
  mask-image: radial-gradient(circle, transparent 1%, #000 8%, #000 26%, transparent 52%);
}
.expedition-fog {
  position: absolute; z-index: 3; inset: -15%; opacity: .12;
  background: radial-gradient(ellipse at 60% 62%, #c7ded955, transparent 48%);
  will-change: transform, opacity;
}
.expedition-near-mist {
  position: absolute; z-index: 3; inset: -20% -30%; opacity: .12;
  background: radial-gradient(ellipse at 27% 82%, #a8c5cd88, transparent 37%),
    radial-gradient(ellipse at 78% 65%, #c7d9d664, transparent 30%);
  mask-image: linear-gradient(transparent 20%, #000 65%, transparent);
  will-change: transform, opacity;
}
/* Close rock outcrops pass the camera independently of the single cave arch. */
.expedition-ledge {
  position: absolute; z-index: 3; top: -16%; bottom: -16%; width: 19%;
  opacity: 0; background-image: linear-gradient(90deg, #02080b9c, #0c18162b), url('assets/mountain-pass.webp');
  background-size: auto 130%; filter: brightness(.48) saturate(.35);
  will-change: transform, opacity;
}
.expedition-ledge-left {
  left: -7%; background-position: left bottom; transform-origin: left 55%;
  clip-path: polygon(0 0, 58% 0, 66% 12%, 54% 23%, 73% 31%, 70% 43%, 89% 51%, 77% 60%, 100% 73%, 80% 82%, 88% 100%, 0 100%);
}
.expedition-ledge-right {
  right: -7%; background-position: right bottom; transform-origin: right 42%;
  clip-path: polygon(42% 0, 100% 0, 100% 100%, 12% 100%, 24% 87%, 0 74%, 19% 63%, 8% 52%, 28% 39%, 20% 28%, 47% 16%);
}
.expedition-cloud-shadow {
  position: absolute; z-index: 1; inset: -25%; opacity: .2;
  background: radial-gradient(ellipse at 25% 30%, #020a10b3, transparent 38%),
    radial-gradient(ellipse at 72% 64%, #021019aa, transparent 32%);
  will-change: transform, opacity;
}
.expedition-bloom {
  position: absolute; z-index: 4; inset: -10%; opacity: 0;
  transform-origin: 61% 34%; mix-blend-mode: screen;
  background: radial-gradient(ellipse at 61% 34%, #fff1cba6, #edd89b30 28%, transparent 63%);
  will-change: transform, opacity;
}
.expedition-threshold {
  position: absolute; z-index: 4; inset: -8%; opacity: 0;
  background: radial-gradient(ellipse at 55% 45%, transparent 15%, #06101555 44%, #02080dee 77%);
  will-change: transform, opacity;
}
.expedition-shade {
  position: absolute; z-index: 1; inset: 0; opacity: .78;
  background: linear-gradient(90deg, #040c12df, #040c1280 52%, #040c1233),
    linear-gradient(0deg, #050c13a3, transparent 55%, #050c1355);
  will-change: opacity;
}
.expedition-shade::after {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(ellipse at 55% 44%, transparent 24%, #02080d33 57%, #02080db3 100%);
  opacity: var(--tunnel, 0);
}
.js-motion .hero-track, .js-motion .hero,
.intro, .expertise, .journey, .approach { background: transparent; }
.js-motion .hero-track { height: 205svh; }
.hero-scene { overflow: visible; }
.hero-emblem { opacity: .45; }
.hero-content h1 { text-shadow: 0 4px 36px #04101c45; }
.hero-bottom { border-color: #dddec033; }
.intro::before, .expertise::before, .approach::before { display: none; }
.intro, .expertise, .approach { border: 0; }
.intro { padding-top: 90px; padding-bottom: 160px; }
.intro-copy, .expertise-heading > p, .step > p { color: #c4cece; }
.intro-copy .lead { color: #f0eee4; }
.section-label { color: #cec5ab; border-color: #d7cfb930; }
.intro h2, .expertise h2, .approach h2 { text-shadow: 0 2px 24px #0009; }
.services { border-color: #cbb58a55; }
.service {
  background: linear-gradient(100deg, #0a141dcc, #0b161bb8);
  border-color: #cbb58a2b; transition: background .4s;
}
.service[open] { background: linear-gradient(105deg, #17232ddb, #101d25c4); }
.service summary { padding-left: 22px; padding-right: 22px; }
.service-title { color: #e9e9df; }
.service-tag { color: #a2afb2; }
.service-body { color: #c8d1d0; padding-right: 28px; }
.js-motion .service.reveal { transform: translate3d(18px, 28px, 0); }
.js-motion .service.reveal.is-visible { transform: translate3d(0, 0, 0); }
.js-motion .service.reveal:nth-child(2n) { transition-delay: .07s; }
.js-motion .step.reveal:nth-child(2) { transition-delay: .12s; }
.js-motion .step.reveal:nth-child(3) { transition-delay: .24s; }
.journey { height: 270svh; }
.journey-copy { bottom: 27%; }
.journey-copy-start { text-shadow: 0 3px 30px #000b; }
.journey-copy-end { text-shadow: 0 3px 30px #000c; }
.journey-bottom { color: #d3ceb9; justify-content: flex-end; }
.journey-title, .journey-copy h2 { font-size: clamp(50px, 6.2vw, 94px); }
.approach { padding-top: 100px; padding-bottom: 150px; }
.steps { gap: 48px; }
.step h3 { color: #f1efdf; }
.step > p { text-shadow: 0 2px 16px #000; }
.step-line { background: #d9d5bc40; }
.step-line::after { background: #d1bd87; }
.contact {
  min-height: 118svh; padding-top: 38svh; padding-bottom: 80px;
  background: linear-gradient(180deg, transparent, #08150e0d 15%, #08150e9c 42%, #08150eea 76%, #08150ef5);
  overflow: hidden;
}
.contact .section-label { color: #d9dbbf; border-color: #ece2b845; }
.contact-grid { align-items: end; }
.contact h2 { font-size: clamp(56px, 6.2vw, 88px); }
.contact h2 em { color: #e7d5a3; }
.contact-intro { color: #d5dfcd; margin-top: 28px; }
.contact-phone { color: #f1f2e5; }
.contact-email { color: #d7e1ce; }
.contact-phone span, .contact-email span { color: #dacb9d; }
.contact-details { border-left: 1px solid #e0d8b03d; padding-left: 38px; color: #d0dacb; }
.contact-details .eyebrow { color: #d9c793; }
.contact-details .contact-name { color: #f4f0de; font: 32px/1.2 var(--serif); margin-bottom: 10px; }
.contact-note { color: #b7c3b6; }
.footer-surface { background: #08150ef5; }
.site-footer {
  display: grid; grid-template-columns: auto 1fr auto; align-items: center;
  gap: 12px 36px; padding-block: 32px 22px;
  color: #a7b4a3; border-color: #d8d8b829;
}
.site-footer > span { text-align: center; }
.site-footer > a { color: #d8dac3; }
.site-footer .powered-by {
  grid-column: 1 / -1; justify-self: end; font-size: 10px;
  letter-spacing: .5px; color: #9aa894; padding: 8px 0;
}
.site-footer .powered-by span { display: inline; color: #c3ccb7; transition: color .25s; }
.powered-by:hover span { color: #f1dfaa; }
.reading-progress {
  height: 3px; background: linear-gradient(90deg, #8f9b85, #c6b887 65%, #f5e0b0);
  box-shadow: 0 0 12px #e5c88940; pointer-events: none; will-change: transform;
}
.reading-progress::after {
  content: ''; position: absolute; right: 0; top: 0; bottom: 0; width: 2px;
  background: #fff1c9; box-shadow: 0 0 10px #ffe1a6;
}
@media (prefers-reduced-motion: no-preference) {
  .scroll-line::after { animation-iteration-count: infinite; }
  .js-motion .reveal { transform: translate3d(0, 42px, 0); transition-duration: 1s; }
  .js-motion .reveal.is-visible { transform: translate3d(0, 0, 0); }
  .service summary { transition: padding .4s, background-color .4s; }
  .service summary:hover { background-color: #d5c39108; }
  .service-plus { transition: transform .45s cubic-bezier(.2,.7,.2,1); }
  .service[open] .service-plus { transform: rotate(180deg); }
  .contact-phone span, .contact-email span, .text-link span, .back-top span {
    transition: transform .4s cubic-bezier(.2,.7,.2,1);
  }
  .contact-phone:hover span, .contact-email:hover span, .text-link:hover span { transform: translate(4px, -4px); }
  .back-top:hover span { transform: translateY(-5px); }
}
.hero { background: linear-gradient(90deg, #07111ba8, transparent), url('assets/mountain-pass.webp') center / cover; }
html:not(.js-motion) .contact { background: linear-gradient(0deg, #efe8d8, #ebe3d1dd 65%, #e7deca33), url('assets/valley-dawn.webp') center / cover; }

/* Scenic transitions and editorial typography give each part its own rhythm. */
.hero-content h1 { line-height: .99; margin-bottom: 26px; }
.hero-line { display: block; overflow: hidden; padding: .08em .03em .12em 0; margin-bottom: -.13em; will-change: transform; }
.hero-line > span, .hero-line > em { display: block; }
.hero-content .button-light { color: #172220; background: #e5d0a5; gap: 28px; padding: 10px 11px 10px 22px; }
.hero-content .button-light::before { background: linear-gradient(110deg, #c2ad82ef, #e6d7b8e6), url('assets/mountains.jpg') center / cover; }
.hero-content .button-light > span {
  display: grid; place-items: center; width: 38px; height: 38px; background: #182625; color: #eedfc0;
  clip-path: polygon(6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%, 0 6px);
}
.intro-statement {
  max-width: 1110px; margin: 12px 0 105px; color: #f0eee4;
  font: 400 clamp(42px, 5.25vw, 78px)/1.18 var(--serif); letter-spacing: -1.25px;
  text-wrap: pretty; text-shadow: 0 3px 28px #000a;
}
.intro-statement em { color: #d7c39b; }
.statement-word { display: inline-block; transform-origin: center bottom; }
.emblem-trace { fill: none; stroke: #f5dfb5; stroke-width: .28; stroke-linecap: round; stroke-dasharray: .2 .8; stroke-dashoffset: 0; filter: drop-shadow(0 0 1px #ffeac680); }
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.intro-grid { padding-top: 52px; border-top: 1px solid #d4c6a92e; }
.intro-grid h2 { font-size: clamp(38px, 4.15vw, 62px); }
.intro-copy { padding-top: 7px; }
.services { border: 0; display: grid; gap: 10px; }
.service {
  position: relative; border: 1px solid #c6b69430;
  background: linear-gradient(105deg, #111e24ed, #0a151ace);
  box-shadow: 0 12px 40px #020a101c;
}
.service::before {
  content: ''; position: absolute; top: 20px; bottom: 20px; left: -1px; width: 2px;
  background: #cdb584; transform: scaleY(0); transform-origin: top;
  transition: transform .55s cubic-bezier(.2,.7,.2,1);
}
.service[open]::before { transform: scaleY(1); }
.service[open] { border-color: #cbb78d62; background: linear-gradient(105deg, #1b2b30f0, #102027df); }
.service-title { font-size: 22px; }
.service-number { font-size: 11px; letter-spacing: 1px; }
.service-body { padding-left: 64px; }
.journey { height: 250svh; }
.journey-copy-end { max-width: 1392px; }
.journey-copy-end h2 { max-width: 1100px; }
.contact {
  background: linear-gradient(180deg, transparent 0%, #e9e0cb22 4%, #e7deca8c 19%, #ebe3d1eb 32%, #efe8d8 65%);
  color: #1b302b; padding-bottom: 100px;
}
.contact .section-label { color: #526052; border-color: #69715a44; }
.contact h2 { color: #20372e; text-shadow: none; }
.contact h2 em { color: #806b43; }
.contact-intro, .contact-email { color: #3e5146; }
.contact-phone { color: #223d31; }
.contact-phone span, .contact-email span { color: #8b7344; }
.contact-phone:hover, .contact-email:hover { color: #876c3b; }
.contact-email { border-color: #576b5266; }
.contact-details { border-color: #65705244; }
.contact-details .eyebrow { color: #7a653f; }
.contact-details .contact-name { color: #233d32; }
.contact-details > p, .contact-details address { color: #4c5b4e; }
.contact-details .contact-note { color: #64705e; }
.contact-details .text-link { color: #485b46; border-color: #6d765357; }
.footer-surface { background: #efe8d8; }
.site-footer { color: #65705c; border-color: #72765540; }
.site-footer > a { color: #324b38; }
.site-footer .powered-by { color: #7b806b; }
.site-footer .powered-by span { color: #4d6149; }
.powered-by:hover span { color: #80693c; }
@media (prefers-reduced-motion: no-preference) {
  .emblem-trace { animation: ridge-light 7s linear infinite; }
  .js-motion .hero-line > span, .js-motion .hero-line > em {
    animation: summit-title 1.35s cubic-bezier(.18,.7,.2,1) .18s both;
  }
  .js-motion .hero-line:nth-child(2) > em { animation-delay: .36s; }
  .js-motion .statement-word { opacity: .22; }
}
@keyframes summit-title {
  from { transform: translate3d(0, 115%, 0) rotate(2deg); }
  to { transform: translate3d(0, 0, 0) rotate(0); }
}
@keyframes ridge-light { to { stroke-dashoffset: -1; } }

@media (max-width: 1024px) {
  .contact-details { padding-left: 25px; }
  .steps { gap: 28px; }
}
@media (max-width: 760px) {
  .js-motion .hero-track { height: 180svh; }
  .expedition-scene > img { object-position: 57% center; }
  .expedition-cave img { object-position: center; }
  .expedition-scene .expedition-foreground, .expedition-canopy { width: 180%; height: auto; inset: auto auto -4% -40%; }
  .expedition-ledge { width: 24%; }
  .expedition-ledge-left { left: -10%; }
  .expedition-ledge-right { right: -10%; }
  .intro { padding-top: 70px; padding-bottom: 95px; }
  .service summary { padding-left: 12px; padding-right: 12px; }
  .service-body { padding-right: 20px; }
  .service-body { padding-left: 44px; }
  .service-title { font-size: 19px; }
  .intro-statement { font-size: clamp(35px, 9.2vw, 55px); line-height: 1.22; letter-spacing: -.7px; margin-bottom: 58px; }
  .intro-grid { padding-top: 36px; }
  .service-tag { font-size: 8px; letter-spacing: .7px; }
  .journey { height: 230svh; }
  .journey-copy { bottom: 25%; }
  .journey-title, .journey-copy h2 { font-size: clamp(38px, 10.5vw, 67px); }
  .journey-copy-end > p:last-child { color: #d4ddd7; }
  .approach { padding-block: 90px 110px; }
  .step > p { max-width: 440px; }
  .contact { padding-top: 35svh; padding-bottom: 55px; min-height: 125svh; }
  .contact h2 { font-size: clamp(48px, 12vw, 72px); }
  .contact-details { padding: 25px 0 0; border-left: 0; border-top: 1px solid #65705244; }
  .site-footer { grid-template-columns: 1fr auto; gap: 18px 10px; }
  .site-footer > span { grid-row: 2; grid-column: 1 / -1; text-align: left; }
  .site-footer .back-top { grid-column: 2; grid-row: 1; }
  .site-footer .powered-by { grid-column: 1 / -1; justify-self: start; padding-top: 0; }
}
@media (max-height: 560px) and (min-width: 601px) {
  .journey-title, .journey-copy h2 { font-size: 38px; }
  .journey-copy { bottom: 23%; }
  .contact { padding-top: 180px; }
}
@media (prefers-reduced-motion: reduce) {
  .expedition-scene { display: none !important; }
  .js-motion .service.reveal { transform: none; opacity: 1; transition: none; }
  .hero-line, .statement-word { transform: none !important; opacity: 1 !important; }
  .js-motion .hero-track { height: auto; }
  .js-motion .hero { background: linear-gradient(90deg, #07111ba8, transparent), url('assets/mountain-pass.webp') center / cover; }
  .journey { height: 100svh; background: linear-gradient(90deg, #081013cc, #08101377), url('assets/mountain-pass.webp') center / cover; }
  .contact { background: linear-gradient(0deg, #efe8d8, #ebe3d1dd 65%, #e7deca33), url('assets/valley-dawn.webp') center / cover; }
}
