@font-face{font-family:Fraunces;src:url(../fonts/Fraunces-Variable.ttf) format("truetype");font-weight:100 900;font-display:swap}
@font-face{font-family:Manrope;src:url(../fonts/Manrope-Variable.ttf) format("truetype");font-weight:200 800;font-display:swap}
:root{--ink:#15161d;--paper:#eeebe6;--white:#f7f4ef;--muted:#8b8d94;--line:rgba(247,244,239,.2);--accent:#aab1c1;--serif:Fraunces,Georgia,serif;--sans:Manrope,Arial,sans-serif;--ease:cubic-bezier(.16,1,.3,1);--ease-soft:cubic-bezier(.33,1,.68,1);--pad:clamp(18px,2.3vw,44px)}
*{box-sizing:border-box}html{max-width:100%;overflow-x:clip;background:var(--ink);scrollbar-width:none}html::-webkit-scrollbar{display:none}body{max-width:100%;margin:0;background:var(--ink);color:var(--white);font-family:var(--sans);font-size:14px;overflow-x:clip}body.is-locked{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{border:0;background:none;color:inherit;cursor:pointer}.sub-skip{position:fixed;z-index:1000;left:16px;top:10px;transform:translateY(-150%);background:#fff;color:#111;padding:8px 12px}.sub-skip:focus{transform:none}.sub-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.sub-loader{position:fixed;z-index:700;inset:0;display:grid;place-items:center;background:var(--ink);transition:opacity 1s var(--ease),visibility 1s}.sub-loader.is-done{opacity:0;visibility:hidden}.sub-loader span{font:clamp(2rem,5vw,5rem)/1 var(--serif)}.sub-loader i{position:absolute;left:0;bottom:0;width:100%;height:2px;background:var(--white);transform-origin:left;animation:loader-line 1.35s var(--ease) forwards}@keyframes loader-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.sub-header{position:fixed;z-index:180;left:0;right:0;top:0;height:64px;padding:12px var(--pad);display:grid;grid-template-columns:240px 1fr auto;gap:28px;align-items:start;color:var(--white);backdrop-filter:blur(0);transition:transform .88s var(--ease),background-color 1.05s var(--ease-soft),color .85s var(--ease),box-shadow 1.05s var(--ease-soft),backdrop-filter 1.05s var(--ease-soft)}.sub-header.is-hidden{transform:translate3d(0,-110%,0)}.sub-header.is-solid{background:rgba(247,244,239,.94);color:var(--ink);box-shadow:0 1px rgba(21,22,29,.08);backdrop-filter:blur(12px)}.sub-brand{display:flex;align-items:center;gap:10px;width:max-content}.sub-brand>span{font:28px/1 var(--serif)}.sub-brand small{max-width:74px;font:9px/1.05 var(--sans);letter-spacing:.08em}.sub-menu-logo,.sub-footer-brand{font:clamp(1.5rem,2vw,2.25rem)/.9 var(--serif)}.sub-header>nav{display:flex;gap:34px;justify-self:start;font-size:11px}.sub-header>nav button span{display:inline-block;margin-left:7px;transition:transform .55s var(--ease)}.sub-header-actions{justify-self:end;display:flex;align-items:flex-start;gap:28px;font-size:10px}.sub-header-actions>a:first-child{padding-top:4px}.sub-header-phone{display:grid;line-height:1.05}.sub-header-phone small{margin-top:3px;font-size:7px;opacity:.65}.sub-call{min-width:170px;height:44px;margin-top:-3px;padding:0 13px 0 22px;border-radius:99px;background:var(--white);color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:10px}.sub-header.is-solid .sub-call{background:var(--ink);color:var(--white)}.sub-call span{font-size:20px}
.sub-menu{position:fixed;z-index:500;inset:0;padding:20px var(--pad) 30px;background:var(--ink);color:var(--white);visibility:hidden;transform:translateY(-101%);transition:transform .85s var(--ease),visibility .85s}.sub-menu.is-open{visibility:visible;transform:none}.sub-menu-top{height:52px;display:flex;justify-content:space-between}.sub-menu-top button{font-size:11px}.sub-menu-top button span{font-size:24px;margin-left:9px}.sub-menu-grid{height:calc(100vh - 82px);display:grid;grid-template-columns:1fr 2fr;grid-template-rows:58% 42%;gap:0 5vw}.sub-menu-services{grid-column:2;padding-top:3vh}.sub-menu-services h2{margin:0 0 2.5vh;font-size:clamp(2.3rem,4vw,5rem);font-weight:350}.sub-menu-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.sub-menu-card{display:grid;gap:12px;font-size:11px;transform:translateY(35px);opacity:0;transition:transform .8s var(--ease),opacity .7s var(--ease)}.sub-menu.is-open .sub-menu-card{transform:none;opacity:1}.sub-menu.is-open .sub-menu-card:nth-child(2){transition-delay:.06s}.sub-menu.is-open .sub-menu-card:nth-child(3){transition-delay:.12s}.sub-menu.is-open .sub-menu-card:nth-child(4){transition-delay:.18s}.sub-menu-card .sub-media{height:clamp(100px,17vh,185px)}.sub-menu-direct{align-self:end;display:grid;justify-items:start;gap:10px;font-size:11px;padding-bottom:4vh}.sub-menu-direct>p{font-size:10px;color:var(--muted)}.sub-menu-socials{display:flex;gap:8px}.sub-menu-socials a{width:54px;height:54px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;transition:background .4s,color .4s}.sub-menu-socials a:hover{background:var(--white);color:var(--ink)}.sub-menu-main{grid-column:2;display:grid;grid-template-columns:1fr 1fr;align-content:start}.sub-menu-main a{font:clamp(2.8rem,5.3vw,6rem)/.9 var(--serif);letter-spacing:-.04em;transition:opacity .3s,transform .5s var(--ease)}.sub-menu-main:hover a:not(:hover){opacity:.3}.sub-menu-main a:hover{transform:translateX(10px)}
main{position:relative}.sub-hero{position:relative;height:100vh;min-height:680px;overflow:hidden;background:var(--ink)}.sub-hero-media{position:absolute;inset:0 16vw 0 26vw}.sub-hero-media>.sub-media{height:100%}.sub-hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,22,29,.35),transparent 32%,rgba(21,22,29,.28))}.sub-hero-kicker{position:absolute;z-index:2;left:var(--pad);top:15vh;margin:0;text-transform:uppercase;letter-spacing:.13em;font-size:10px}.sub-hero-kicker span{display:block;margin-top:8px;color:rgba(247,244,239,.55)}.sub-hero-stats{position:absolute;z-index:2;left:var(--pad);bottom:30vh;display:flex;gap:4vw}.sub-hero-stats p{display:grid;margin:0}.sub-hero-stats strong{font:clamp(2.3rem,4.7vw,5.7rem)/1 var(--serif);font-weight:350}.sub-hero-stats span{font-size:9px;text-transform:uppercase;letter-spacing:.11em}.sub-hero h1{position:absolute;z-index:2;left:var(--pad);right:var(--pad);bottom:2.5vh;margin:0;font:clamp(5rem,11.8vw,13rem)/.78 var(--serif);font-weight:330;letter-spacing:-.065em;white-space:nowrap}.sub-scroll-cue{position:absolute;z-index:3;right:var(--pad);bottom:5vh;display:flex;align-items:center;gap:15px;font-size:10px}.sub-scroll-cue span{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center}.sub-hero--editorial .sub-hero-media{inset:0 10vw 0 34vw}.sub-hero--compact{height:76vh;min-height:580px;padding:26vh var(--pad) 8vh}.sub-hero--compact h1{position:static;white-space:normal;font-size:clamp(5rem,12vw,13rem)}.sub-hero--compact>p:last-child{max-width:460px;margin:5vh 0 0 52%;color:#b5b6ba;line-height:1.65}
.sub-media{position:relative;overflow:hidden;background:#454b55;color:rgba(255,255,255,.7);isolation:isolate}.sub-media::before{content:"";position:absolute;inset:-15%;background:radial-gradient(circle at 28% 30%,rgba(255,255,255,.2),transparent 23%),linear-gradient(125deg,transparent 20%,rgba(255,255,255,.11) 48%,transparent 76%);animation:media-drift 12s ease-in-out infinite alternate}.sub-media::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),rgba(255,255,255,.06) 25%)}.sub-media>span,.sub-media>b{position:absolute;z-index:2;left:16px;bottom:14px;font-size:9px;letter-spacing:.12em;font-weight:500}.sub-media i{position:absolute;border:1px solid rgba(255,255,255,.18);border-radius:50%;width:42%;aspect-ratio:1;right:-8%;top:-12%}.sub-media i:last-child{width:24%;right:auto;top:auto;left:9%;bottom:13%}.sub-media--1{background:linear-gradient(145deg,#44504d,#232930)}.sub-media--2{background:linear-gradient(145deg,#8b7567,#343239)}.sub-media--3{background:linear-gradient(145deg,#737a83,#272a31)}.sub-media--4{background:linear-gradient(145deg,#87908b,#343c3a)}.sub-media--5{background:linear-gradient(145deg,#605d69,#25262d)}.sub-media--6{background:linear-gradient(145deg,#8a817b,#33343b)}@keyframes media-drift{to{transform:translate3d(3%,2%,0) scale(1.04)}}
.sub-kicker{margin:0;text-transform:uppercase;letter-spacing:.14em;font-size:10px;color:#9a9ca4}.sub-copy-grid{min-height:95vh;padding:18vh var(--pad);display:grid;grid-template-columns:1fr 2fr;align-content:center;gap:2.5vw}.sub-copy-grid h2{margin:0;font:clamp(3.2rem,6.7vw,7.4rem)/.94 var(--serif);font-weight:330;letter-spacing:-.045em}.sub-copy-grid>p:last-child{grid-column:2;max-width:540px;margin:8vh 0 0 auto;color:#adaeb4;font-size:clamp(1rem,1.3vw,1.35rem);line-height:1.6}
.service-indicators{min-height:90vh;padding:14vh 0;background:var(--paper);color:var(--ink);overflow:hidden}.indicator-track{display:flex;width:max-content;gap:1.4em;font:clamp(4.7rem,10vw,11rem)/1 var(--serif);white-space:nowrap;animation:marquee 32s linear infinite}.indicator-track span{display:flex;gap:.4em}.indicator-track i{font-style:normal;font-size:.35em;align-self:center}.indicator-copy{margin:15vh var(--pad) 0 auto;width:min(45vw,600px);display:grid;grid-template-columns:1fr 2fr;gap:3vw}.indicator-copy p:last-child{margin:0;line-height:1.6}@keyframes marquee{to{transform:translateX(-50%)}}
.solutions,.technology-grid,.team-section,.process-section,.faq-page{padding:17vh var(--pad)}.solutions-heading{display:grid;grid-template-columns:1fr 2fr;gap:2vw;margin-bottom:12vh}.solutions-heading h2{margin:0;font:clamp(3.5rem,7.5vw,8rem)/.88 var(--serif);font-weight:330;letter-spacing:-.05em}.solutions-heading em,.lab-bridge em,.history-section em{font-weight:300}.solution-list{border-top:1px solid var(--line)}.solution-card{min-height:75vh;padding:5vh 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:7% 43% 1fr;gap:3vw;align-items:center}.solution-card>span{align-self:start;color:#8e9098}.solution-card>.sub-media{height:62vh}.solution-card h3{margin:0 0 3vh;font:clamp(2.5rem,5vw,5.5rem)/.95 var(--serif);font-weight:340}.solution-card p{max-width:380px;color:#a5a7ae;line-height:1.6}.solution-card a,.lab-bridge a,.location-card a{display:flex;justify-content:space-between;max-width:380px;padding:18px 0;border-bottom:1px solid var(--line);font-size:11px}.service-gallery{min-height:100vh;padding:12vh var(--pad);display:grid;grid-template-columns:1fr 1.5fr;align-items:center;gap:6vw;background:var(--paper);color:var(--ink)}.service-gallery h2{font:clamp(3rem,6vw,7rem)/.92 var(--serif);font-weight:330}.gallery-window{position:relative}.gallery-window>.sub-media{height:70vh}.gallery-window button{position:absolute;right:5%;bottom:6%;width:110px;height:110px;border:1px solid rgba(255,255,255,.5);border-radius:50%;font-size:28px}
.editorial-media-grid{padding:8vh var(--pad) 20vh;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:66vh auto;gap:2vw}.editorial-media-grid>.sub-media:first-child{transform:translateY(10vh)}.editorial-media-grid blockquote{grid-column:2;margin:5vh 0 0;font:clamp(2rem,4vw,4.5rem)/1.05 var(--serif);font-weight:330}.editorial-media-grid--large{grid-template-rows:78vh auto}.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.team-grid article:nth-child(even){padding-top:12vh}.team-grid .sub-media{height:62vh}.team-grid h3{font:1.6rem/1.1 var(--serif);font-weight:350;margin:18px 0 5px}.team-grid p{color:#92949c}.history-section{padding:20vh var(--pad);background:var(--paper);color:var(--ink);overflow:hidden}.history-section>div:first-child{display:grid;grid-template-columns:1fr 2fr}.history-section h2{font:clamp(3rem,7vw,7rem)/.9 var(--serif);font-weight:330;margin:0}.history-track{width:max-content;display:flex;margin-top:15vh;gap:10vw;padding-left:25vw}.history-track article{width:30vw;min-width:320px;border-top:1px solid rgba(21,22,29,.25);padding-top:20px}.history-track strong{font:clamp(4rem,8vw,8rem)/1 var(--serif);font-weight:300}.history-track h3{font:1.4rem var(--serif)}
.technology-grid>.technology-item{min-height:82vh;display:grid;grid-template-columns:1fr 1.4fr;gap:5vw;align-items:center;border-top:1px solid var(--line);padding:8vh 0}.technology-item:nth-of-type(even){grid-template-columns:1.4fr 1fr}.technology-item:nth-of-type(even)>.sub-media{grid-column:1;grid-row:1}.technology-item:nth-of-type(even)>div{grid-column:2}.technology-item>.sub-media{height:68vh}.technology-item h3{font:clamp(3rem,6vw,6rem)/.92 var(--serif);font-weight:330;margin:4vh 0 2vh}.technology-item p{max-width:430px;color:#9fa1a8;line-height:1.6}.lab-bridge,.contact-map{min-height:100vh;padding:10vh var(--pad);display:grid;grid-template-columns:1.45fr 1fr;gap:6vw;align-items:center;background:var(--paper);color:var(--ink)}.lab-bridge>.sub-media,.contact-map>.sub-media{height:76vh}.lab-bridge h2,.contact-map h2{font:clamp(3rem,6vw,6.5rem)/.9 var(--serif);font-weight:330}.lab-bridge a,.location-card a{border-color:rgba(21,22,29,.25)}
.process-section ol{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.process-section li{display:grid;grid-template-columns:10% 1fr;padding:5vh 0;border-bottom:1px solid var(--line)}.process-section li>span{color:#92949c}.process-section h3{font:clamp(2.2rem,4.4vw,4.8rem)/1 var(--serif);font-weight:330;margin:0}.process-section p{color:#9da0a7}.faq-preview{padding:16vh var(--pad);background:var(--paper);color:var(--ink)}.faq-preview>h2{width:min(800px,70vw);font:clamp(3rem,6vw,6.5rem)/.92 var(--serif);font-weight:330}.faq-preview details,.faq-group details{border-top:1px solid rgba(21,22,29,.2)}.faq-preview summary,.faq-group summary{list-style:none;padding:24px 0;display:flex;justify-content:space-between;cursor:pointer}.faq-preview details:last-child,.faq-group details:last-child{border-bottom:1px solid rgba(21,22,29,.2)}.faq-preview details p,.faq-group details p{max-width:600px;padding:0 0 28px;line-height:1.6}.faq-preview details[open] summary span,.faq-group details[open] summary span{transform:rotate(45deg)}summary span{transition:transform .4s var(--ease)}
.location-grid{padding:4vh var(--pad) 18vh;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.location-card>.sub-media{height:54vh;margin-bottom:24px}.location-card>span{color:#898b94}.location-card h2{font:clamp(2.4rem,4vw,4.5rem)/1 var(--serif);font-weight:330}.location-card p{line-height:1.6;color:#9fa1a8}.contact-map{background:#aab1c1}.faq-page{display:grid;gap:17vh;background:var(--paper);color:var(--ink)}.faq-group{display:grid;grid-template-columns:1fr 2fr;gap:2vw}.faq-group h2{font:clamp(3rem,6vw,6rem)/1 var(--serif);font-weight:330;margin:0}.faq-group details{grid-column:2}
.sub-contact{min-height:100vh;padding:16vh var(--pad) 10vh;display:grid;grid-template-columns:1fr 2fr;align-content:center;background:var(--ink);color:var(--white)}.sub-contact h2{margin:0 0 9vh;font:clamp(4rem,8.6vw,9rem)/.86 var(--serif);font-weight:330;letter-spacing:-.055em}.sub-contact form{grid-column:2;display:grid;grid-template-columns:1fr 1fr;gap:20px}.sub-contact label{display:grid;gap:10px;font-size:10px}.sub-contact label:nth-child(3){grid-column:1/-1}.sub-contact input,.sub-contact textarea{border:0;border-bottom:1px solid var(--line);background:none;color:var(--white);padding:14px 0;outline:none;resize:none}.sub-contact button{grid-column:2;justify-self:end;width:170px;height:170px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;gap:10px;transition:background .4s,color .4s}.sub-contact button:hover{background:var(--white);color:var(--ink)}.sub-form-status{grid-column:1/-1}.sub-footer{min-height:60vh;padding:10vh var(--pad) 4vh;background:#292a33;display:grid;grid-template-columns:1fr 1fr 1fr;align-content:space-between;gap:4vw}.sub-footer>div,.sub-footer nav{display:grid;align-content:start;gap:12px}.sub-footer nav a{font:2rem/1 var(--serif)}.sub-footer>div:last-child{font-size:12px}.sub-footer p,.sub-footer span{color:#9698a0}
.reveal{opacity:0;transform:translateY(70px);filter:blur(8px);transition:opacity 1s var(--ease),transform 1.1s var(--ease),filter 1s var(--ease)}.reveal.is-visible{opacity:1;transform:none;filter:none}.sub-cursor{position:fixed;z-index:650;width:36px;height:36px;border:1px solid rgba(255,255,255,.45);border-radius:50%;display:grid;place-items:center;pointer-events:none;transform:translate(-50%,-50%) scale(.65);opacity:0;transition:opacity .25s,transform .35s var(--ease);mix-blend-mode:difference}.sub-cursor.is-visible{opacity:1;transform:translate(-50%,-50%) scale(1)}
/* Keep the expanded navigation composition identical to the homepage overlay. */
@media(min-width:901px){
  .sub-menu-top{height:39px}
  .sub-menu-grid{height:calc(100vh - 70px);grid-template-columns:1fr 1fr;grid-template-rows:48vh 1fr;gap:10px}
  .sub-menu-services{padding-top:7vh}
  .sub-menu-services h2{margin:0 0 22px;font:400 10px/1.2 var(--sans);letter-spacing:.08em}
  .sub-menu-cards{gap:8px}
  .sub-menu-card{gap:9px;font-size:10px}
  .sub-menu-card .sub-media{height:110px}
  .sub-menu-direct{gap:12px;padding-bottom:0}
  .sub-menu-direct>p{letter-spacing:.08em}
  .sub-menu-socials a{width:52px;height:52px}
  .sub-menu-main a{font-size:clamp(2.7rem,5.2vw,5.6rem);letter-spacing:0}
}

@media(max-width:900px){:root{--pad:18px}.sub-header{height:60px;grid-template-columns:1fr auto;padding-top:15px}.sub-header>nav{justify-self:end}.sub-header>nav>a,.sub-header-actions{display:none}.sub-menu{padding:15px var(--pad)}.sub-menu-grid{height:calc(100vh - 55px);overflow:auto;display:flex;flex-direction:column}.sub-menu-services{order:0;padding-top:5vh}.sub-menu-services h2{font-size:2rem}.sub-menu-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.sub-menu-card{min-width:0}.sub-menu-card strong{overflow-wrap:anywhere}.sub-menu-card .sub-media{height:90px}.sub-menu-main{order:1;margin:7vh 0}.sub-menu-main a{font-size:2.7rem}.sub-menu-direct{order:2;align-self:start;padding-bottom:5vh}.sub-hero{min-height:620px}.sub-hero-media,.sub-hero--editorial .sub-hero-media{inset:0}.sub-hero h1{white-space:normal;font-size:clamp(4.2rem,19vw,8rem);line-height:.82;bottom:8vh}.sub-hero-stats{bottom:36vh}.sub-scroll-cue{display:none}.sub-hero--compact{height:70vh;padding:22vh var(--pad) 5vh}.sub-hero--compact h1{font-size:18vw}.sub-hero--compact>p:last-child{margin:4vh 0 0;width:80%;max-width:none}.sub-copy-grid,.solutions-heading,.history-section>div:first-child,.faq-group,.sub-contact{grid-template-columns:1fr}.sub-copy-grid{padding:14vh var(--pad);gap:7vh}.sub-copy-grid>p:last-child,.faq-group details,.sub-contact form{grid-column:1}.indicator-copy{width:auto;margin:10vh var(--pad) 0;grid-template-columns:1fr}.solution-card{min-height:auto;grid-template-columns:40px 1fr;padding:8vh 0}.solution-card>.sub-media{grid-column:2;height:52vh}.solution-card>div:last-child{grid-column:2}.service-gallery,.lab-bridge,.contact-map{grid-template-columns:1fr}.service-gallery{padding-top:15vh}.gallery-window>.sub-media{height:60vh}.editorial-media-grid{grid-template-columns:1fr;grid-template-rows:55vh 55vh auto}.editorial-media-grid>.sub-media:first-child{transform:none}.editorial-media-grid blockquote{grid-column:1}.team-grid,.location-grid{grid-template-columns:1fr 1fr}.team-grid article:nth-child(even){padding-top:6vh}.team-grid .sub-media{height:45vh}.technology-grid>.technology-item,.technology-item:nth-of-type(even){grid-template-columns:1fr}.technology-item:nth-of-type(even)>.sub-media,.technology-item:nth-of-type(even)>div{grid-column:1;grid-row:auto}.technology-item>.sub-media{height:58vh}.location-card>.sub-media{height:42vh}.sub-contact h2{margin-top:4vh}.sub-contact form{grid-template-columns:1fr}.sub-contact label:nth-child(3),.sub-contact button{grid-column:1}.sub-contact button{width:130px;height:130px}.sub-footer{grid-template-columns:1fr 1fr}.sub-cursor{display:none}}
@media(max-width:560px){.sub-menu-cards{grid-template-columns:1fr}.sub-menu-card{grid-template-columns:105px 1fr;align-items:center}.sub-menu-card .sub-media{height:64px}.sub-menu-main a{font-size:2.2rem}.team-grid,.location-grid,.sub-footer{grid-template-columns:1fr}.team-grid article:nth-child(even){padding-top:0}.location-grid{gap:9vh}.sub-footer{gap:8vh}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none;filter:none}}
@media(max-width:900px){.sub-brand small{display:none}}
