@font-face{font-family:'Azeret Mono';src:url('./assets/fonts/azeret-mono-bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:Manrope;src:url('./assets/fonts/manrope.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('./assets/fonts/ibm-plex-mono.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
:root{--ink:#071019;--deep:#03080d;--soft:#0c1924;--white:#edf5f3;--red:#ff5b55;--blue:#8fc9d8;--grey:#a9bab9;--dim:#748785;--rule:rgba(143,201,216,.22);--gutter:clamp(24px,4.45vw,88px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:36px}body{margin:0;background:var(--ink);color:var(--white);font-family:Manrope,Arial,sans-serif;-webkit-font-smoothing:antialiased}::selection{background:var(--red);color:var(--ink)}a{color:inherit;text-decoration:none}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:2px solid var(--red);outline-offset:7px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:'Azeret Mono',monospace;font-weight:700}img{display:block;max-width:100%}.label{font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:400;line-height:1.6;letter-spacing:.06em;text-transform:uppercase}.red{color:var(--red)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:10px;left:24px;background:var(--red);color:var(--ink);padding:14px;transform:translateY(-150%);z-index:100}.skip-link:focus{transform:none}
.site-header{height:112px;margin:0 var(--gutter);display:flex;align-items:center;gap:36px;border-bottom:1px solid var(--rule);position:relative;z-index:5}.brand{display:block;flex-shrink:0;padding:7px 0}.site-header .brand{margin-left:-8px}.header-note{margin-left:auto;color:var(--grey)}nav{display:flex;align-items:center;gap:46px;margin-left:clamp(20px,8vw,140px)}nav a{transition:color .2s}.contact-link{display:flex;gap:30px;align-items:center}.contact-link span{color:var(--red);font-family:Manrope,sans-serif;font-size:25px;line-height:1}.nav-services:hover,.contact-link:hover{color:var(--red)}
.hero{position:relative;min-height:608px;height:calc(100svh - 112px);max-height:1150px;isolation:isolate;overflow:hidden}.hero-heading{position:relative;z-index:2;padding:64px var(--gutter) 0;pointer-events:none}.eyebrow{display:flex;align-items:center;gap:12px;color:var(--grey);margin-bottom:31px}.signal{display:inline-block;width:5px;height:5px;background:var(--red)}h1{font-size:clamp(68px,8.3vw,154px);line-height:.99;letter-spacing:-.065em}h1 .red{margin-left:-.045em}.hero-subtitle{max-width:min(680px,55vw);margin-top:30px;font-size:clamp(20px,2.1vw,34px);line-height:1.22;color:var(--white)}.hero-art{position:absolute;inset:0;z-index:-1;pointer-events:none}.sculpture{position:absolute;width:78%;height:110%;right:-14%;top:1%;will-change:transform}.sculpture svg{display:block;width:100%;height:100%;overflow:visible}.small-cross{color:var(--blue);font-size:16px}.hero-bottom{position:absolute;bottom:42px;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;align-items:flex-end}.hero-intro{padding-bottom:20px}.hero-intro>p{font-size:20px;line-height:1.5;color:var(--grey);margin-bottom:26px}.text-action{display:inline-flex;align-items:center;gap:35px;font-size:13px;line-height:1.6;padding:8px 0;border-bottom:1px solid var(--rule);transition:color .2s,border-color .2s}.text-action span{color:var(--red);font-size:21px;line-height:1;transition:transform .25s}.text-action:hover{border-color:var(--red);color:var(--white)}.text-action:hover span{transform:translate(3px,-3px)}
.section-shell{padding:105px var(--gutter)}.expertise{background:var(--deep);scroll-margin-top:0}.section-intro{display:grid;grid-template-columns:1fr 2fr;padding-bottom:72px}.section-label{color:var(--grey);padding-top:8px}.section-label .red{margin-right:18px}h2{font-size:clamp(42px,5.2vw,84px);line-height:1.02;letter-spacing:-.06em}.section-description{margin-top:27px;color:var(--grey);font-size:16px;line-height:1.65}.service-list{border-top:1px solid var(--rule)}.service{border-bottom:1px solid var(--rule)}.service summary{list-style:none;display:grid;grid-template-columns:1fr 7fr 30px;align-items:center;gap:20px;padding:38px 0;cursor:pointer}.service summary::-webkit-details-marker{display:none}.service-number{color:var(--dim)}h3{font-size:clamp(18px,2.4vw,36px);letter-spacing:-.055em;line-height:1.3;transition:color .2s}.service-toggle{position:relative;height:20px;width:20px}.service-toggle::before,.service-toggle::after{content:'';position:absolute;left:0;top:9px;width:17px;height:1px;background:var(--red);transition:transform .25s}.service-toggle::after{transform:rotate(90deg)}.service[open] .service-toggle::after{transform:rotate(0)}.service[open] h3,.service summary:hover h3{color:var(--red)}.service-detail{margin-left:calc((100% - 50px)/8 + 20px);padding-bottom:36px;max-width:470px}.service-detail p{color:var(--grey);font-size:16px;line-height:1.7;margin-bottom:12px}.mobile-break{display:none}.independent{display:grid;grid-template-columns:1fr 1.35fr 1fr;gap:40px;align-items:start;margin-top:70px}.independent>.label{color:var(--grey);display:flex;align-items:center;gap:12px}.independent p{font-size:14px;line-height:1.8;color:var(--grey)}.independent>a{justify-self:end;margin-top:-8px}
.contact{position:relative;padding-top:55px;padding-bottom:44px;overflow:hidden}.contact-top{display:flex;align-items:center;justify-content:space-between;color:var(--grey)}.contact-top .red{margin-right:18px}.closing-action{display:flex;align-items:center;justify-content:space-between;margin:78px 0 70px}.closing-action h2{font-size:clamp(100px,13.4vw,216px);line-height:.93;letter-spacing:-.065em}.closing-arrow{font-family:Manrope,sans-serif;font-size:clamp(100px,21vw,340px);line-height:1;color:var(--red);margin-right:8vw;transition:transform .4s cubic-bezier(.2,.65,.2,1)}.closing-action:hover .closing-arrow{transform:translate(12px,-12px)}.contact-bottom{display:flex;justify-content:space-between;align-items:center;gap:30px}.contact-bottom>.label{color:var(--dim);font-size:9px}.site-footer{border-top:1px solid var(--rule);margin:0 var(--gutter);padding:27px 0;display:flex;align-items:center;gap:48px}.site-footer>.label{color:var(--dim)}.site-footer>.label:nth-child(2){margin-left:auto}.footer-link:hover{color:var(--red)}
@media(min-width:1600px){.hero-heading{padding-top:80px}.hero-intro>p{font-size:22px}.label{font-size:11px}}
@media(max-width:1000px){.header-note{display:none}nav{margin-left:auto;gap:30px}.hero{min-height:608px}.hero-heading{padding-top:65px}h1{font-size:9.1vw}.sculpture{width:93%;right:-28%;top:4%}.hero-intro>p{font-size:18px}.independent{grid-template-columns:1fr 1.5fr}.independent>a{grid-column:2;justify-self:start;margin-top:-26px}.contact-bottom>.label{max-width:230px;text-align:right}.section-intro{grid-template-columns:1fr 2fr}}
@media(max-width:600px){:root{--gutter:24px}.site-header{height:88px;gap:0}.site-header .brand img{width:156px;height:auto}.site-header .brand{margin-left:-6px}.nav-services{display:none}nav{margin-left:auto}.contact-link{gap:16px;font-size:10px}.contact-link span{font-size:23px}.hero{height:calc(100svh - 88px);min-height:640px;max-height:880px}.hero-heading{padding-top:41px}.eyebrow{font-size:8px;letter-spacing:.065em;margin-bottom:25px;gap:8px}h1{font-size:14vw;line-height:1.02;letter-spacing:-.065em}.hero-subtitle{max-width:280px;margin-top:22px;font-size:20px;line-height:1.26}.sculpture{top:154px;right:-24%;width:130%;height:58%}.hero-bottom{bottom:28px}.hero-intro{padding-bottom:20px}.hero-intro>p{font-size:17px;line-height:1.45;margin-bottom:14px}.text-action{font-size:12px;gap:28px}.section-shell{padding:64px var(--gutter)}.section-intro{display:block;padding-bottom:43px}.section-label{margin-bottom:33px;padding-top:0}h2{font-size:36px;line-height:1.06}.section-description{font-size:14px;margin-top:22px}.service summary{grid-template-columns:23px 1fr 20px;gap:13px;padding:27px 0}.service-number{font-size:9px}h3{font-size:20px;line-height:1.2}.mobile-break{display:block}.service-detail{margin-left:36px;padding-bottom:28px}.service-detail p{font-size:14px}.service-toggle{width:17px}.independent{display:block;margin-top:45px}.independent>.label{font-size:9px;margin-bottom:21px}.independent p{font-size:14px}.independent>a{margin-top:15px}.contact{padding-top:34px;padding-bottom:30px}.contact-top>.label{font-size:8px}.contact-top>.label:last-child{max-width:130px;text-align:right}.contact-top .red{margin-right:10px}.closing-action{margin:55px 0 45px}.closing-action h2{font-size:23vw}.closing-arrow{font-size:25vw;margin:0}.contact-bottom{display:block}.contact-bottom>.label{display:none}.site-footer{padding:24px 0;gap:0;justify-content:space-between;flex-wrap:wrap;row-gap:24px}.site-footer .brand{width:100%;padding:0}.site-footer .brand img{width:140px;height:auto}.site-footer>.label:nth-child(2){margin-left:0}.site-footer>.label{font-size:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.sculpture{will-change:auto}}

/* Mountain ascent and the direct enquiry form. */
.sculpture{width:80%;right:-10%;height:112%;top:0;will-change:auto}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:8%;margin:76px 0 62px;align-items:start}
.contact-heading h2{font-size:clamp(80px,9.6vw,155px);line-height:.95}
.form-arrow{display:block;color:var(--red);font-size:76px;line-height:1;margin-top:30px}
.contact-form{padding-top:4px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.field{display:flex;flex-direction:column;margin-bottom:32px;gap:14px}
.field label{font-family:'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.035em;font-size:10px;color:var(--grey);line-height:1.6}
.field input,.field textarea{display:block;width:100%;min-width:0;font:400 15px/1.6 Manrope,Arial,sans-serif;color:var(--white);border:0;border-bottom:1px solid var(--rule);border-radius:0;background:transparent;padding:0 0 15px;outline-offset:5px;transition:border-color .2s}
.field textarea{resize:vertical;min-height:124px;max-height:500px}
.field input:focus,.field textarea:focus{outline:0;border-color:var(--blue)}
.field input::placeholder,.field textarea::placeholder{color:var(--dim);opacity:1}
.form-submit{display:flex;align-items:center;gap:22px}
.form-submit button{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:32px;border:1px solid var(--red);background:var(--red);color:var(--ink);padding:15px 19px;font:400 12px Manrope,sans-serif;cursor:pointer}
.form-submit button:hover{background:var(--white);border-color:var(--white)}
.form-submit button:focus-visible{outline:2px solid var(--blue);outline-offset:5px}
.form-submit button span{font-size:21px}
.form-submit p,.form-status{font-size:11px;line-height:1.65;color:var(--grey)}
.form-status:not(:empty){margin-top:20px}
@media(max-width:1000px){.sculpture{width:98%;right:-25%;top:4%}.contact-layout{gap:6%}.contact-heading h2{font-size:9.8vw}.form-row{grid-template-columns:1fr;gap:0}.form-submit{align-items:flex-start;flex-direction:column;gap:13px}}
@media(max-width:600px){.sculpture{top:166px;right:-24%;width:134%;height:65%}.hero-bottom{bottom:40px}.contact-layout{grid-template-columns:1fr;gap:42px;margin:45px 0 28px}.contact-heading{display:flex;align-items:center;justify-content:space-between}.contact-heading h2{font-size:23vw}.form-arrow{font-size:65px;margin-top:0}.field{margin-bottom:27px}.field label{font-size:9px}.field input,.field textarea{font-size:16px}.form-submit{align-items:flex-start;gap:14px}.form-submit button{padding:14px 18px}.form-submit p{font-size:11px}}

/* First-load signal flare. Kept short so the hero lands with impact and then settles. */
.hero-heading::after{content:'';position:absolute;left:var(--gutter);top:190px;width:min(720px,72vw);height:1px;background:linear-gradient(90deg,transparent,rgba(143,201,216,.15),rgba(255,91,85,.95),rgba(237,245,243,.6),transparent);transform:translateX(-115%) scaleX(.2);transform-origin:left;opacity:0;animation:signal-scan 1.35s .18s cubic-bezier(.2,.7,.2,1) both;pointer-events:none}
.hero-heading h1{animation:mountain-title-arrive 1.15s .08s cubic-bezier(.16,.72,.16,1) both}
.hero-subtitle{animation:subtitle-arrive 1.1s .52s cubic-bezier(.16,.72,.16,1) both}
@keyframes mountain-title-arrive{0%{opacity:0;transform:translateY(28px);filter:blur(10px);text-shadow:0 0 0 rgba(255,91,85,0)}42%{opacity:1;filter:blur(0);text-shadow:0 0 34px rgba(255,91,85,.55),0 0 68px rgba(143,201,216,.25)}72%{text-shadow:0 0 22px rgba(255,91,85,.28),0 0 34px rgba(237,245,243,.18)}100%{opacity:1;transform:translateY(0);filter:blur(0);text-shadow:none}}
@keyframes subtitle-arrive{0%{opacity:0;transform:translateY(18px);filter:blur(8px)}55%{opacity:1;filter:blur(0);text-shadow:0 0 24px rgba(143,201,216,.35)}100%{opacity:1;transform:translateY(0);filter:blur(0);text-shadow:none}}
@keyframes signal-scan{0%{opacity:0;transform:translateX(-115%) scaleX(.2)}20%{opacity:1}68%{opacity:1;transform:translateX(8%) scaleX(1)}100%{opacity:0;transform:translateX(36%) scaleX(.25)}}
@media(max-width:600px){.hero-heading::after{top:135px;width:84vw}}
@media(prefers-reduced-motion:reduce){.hero-heading::after{display:none}.hero-heading h1,.hero-subtitle{opacity:1;transform:none;filter:none;text-shadow:none;animation:none}}
