/* Motion stays opt-in to enhancement; content remains readable without JS. */
.motion-ready .motion-reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)}.motion-ready .motion-reveal.is-visible{opacity:1;transform:none}
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#126dcc,#68c4ff);z-index:100;pointer-events:none;box-shadow:0 0 12px #288ff788}
.button{position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s,background .25s}.button::after{content:"";position:absolute;inset:-70% -45%;background:linear-gradient(110deg,transparent 40%,#fff3 50%,transparent 60%);transform:translateX(-100%);pointer-events:none}.button:hover::after{transform:translateX(100%);transition:transform .75s ease}.button:hover{transform:translateY(-3px);box-shadow:0 10px 30px #1479d322}.button>span{transition:transform .25s}.button:hover>span{transform:translate(3px,-3px)}
.text-link span,.customer-sector-link span{display:inline-block;transition:transform .25s}.text-link:hover span,.customer-sector-link:hover span{transform:translate(4px,-4px)}
.section-top{position:relative}.section-top::after{content:"";position:absolute;left:0;bottom:-14px;width:42px;height:2px;background:#288ff7;transition:width .8s}.is-visible .section-top::after,.section-top.is-visible::after{width:100px}
.customer-panel:not([hidden]) .customer-logo{animation:logo-arrive .55s both;animation-delay:calc(var(--logo-order,0)*35ms)}@keyframes logo-arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.customer-tabs button{transition:background .25s,color .25s,box-shadow .25s,transform .25s}.customer-tabs button[aria-selected=true]{box-shadow:0 5px 22px #167bdb30;transform:translateY(-2px)}
.office-render{position:relative}.office-render>img{transition:transform .9s cubic-bezier(.2,.8,.2,1),filter .9s}.office-render:hover>img{transform:translateY(-7px);filter:drop-shadow(0 20px 14px #152a3f24)}.office-render .building-sign{transition:transform .9s}.office-render:hover .building-sign{transform:translateY(-7px)}
.services summary .plus{transition:transform .3s}.services details[open] .detail{animation:detail-open .4s ease}@keyframes detail-open{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.clean-lab{position:relative;background:radial-gradient(ellipse at 55% 32%,#234968 0%,#122537 46%,#0c1721 90%);color:#eaf5ff;min-height:550px;display:flex;flex-direction:column;justify-content:center;padding:30px;overflow:hidden;isolation:isolate}.lab-heading{display:flex;justify-content:space-between;gap:20px;font-size:9px;letter-spacing:1.5px;color:#a9c3d6}.lab-heading b{color:#69c3ff;font-weight:400}.lab-scene{width:100%;height:auto;overflow:visible;margin:20px 0 5px;filter:drop-shadow(0 18px 18px #0005)}.lab-scene .airflow{stroke:#79d0ff;stroke-width:2;stroke-dasharray:5 10;fill:none;animation:airflow 3s linear infinite}.lab-scene .lab-zone{transition:opacity .4s,filter .4s}.clean-lab[data-view=air] .zone-environment,.clean-lab[data-view=air] .zone-access{opacity:.35}.clean-lab[data-view=environment] .zone-air,.clean-lab[data-view=environment] .zone-access{opacity:.3}.clean-lab[data-view=access] .zone-air,.clean-lab[data-view=access] .zone-environment{opacity:.3}@keyframes airflow{to{stroke-dashoffset:-60}}.lab-controls{display:flex;gap:7px;margin:12px 0}.lab-controls button{flex:1;border:1px solid #67859c;border-radius:4px;padding:11px 5px;color:#bcd0df;background:transparent;font-size:11px;cursor:pointer;transition:background .25s,color .25s}.lab-controls button[aria-pressed=true]{background:#288ff7;border-color:#288ff7;color:#061728}.lab-description{font-size:13px;line-height:1.6;color:#b7cbdb;min-height:64px;margin:8px 0}.lab-caption{font-size:8px;letter-spacing:1px;color:#7e9aad}.clean .clean-copy{display:flex;flex-direction:column;justify-content:center}.lab-sensor{fill:#8bd6ff}.clean-lab.is-visible .lab-sensor{animation:sensor-pulse 3s ease-in-out infinite}@keyframes sensor-pulse{50%{opacity:.35}}
.motion-paused .lab-scene .airflow,.motion-paused .lab-sensor{animation-play-state:paused}.motion-control{position:fixed;bottom:16px;left:16px;z-index:80;background:#132230ed;color:#d8eaff;border:1px solid #68839a;border-radius:30px;padding:10px 15px;font-size:11px;cursor:pointer;box-shadow:0 5px 20px #0002}.motion-paused .motion-reveal{opacity:1;transform:none;transition:none}.motion-paused .customer-logo{animation:none!important}
@media(max-width:600px){.clean-lab{min-height:420px;padding:22px}.lab-description{min-height:64px}.motion-control{bottom:10px;left:10px;padding:8px 12px}}
@media(prefers-reduced-motion:reduce){.motion-ready .motion-reveal{opacity:1;transform:none;transition:none}.lab-scene .airflow,.lab-sensor,.customer-panel:not([hidden]) .customer-logo{animation:none!important}.office-render:hover>img,.office-render:hover .building-sign,.button:hover{transform:none}.button::after{display:none}.scroll-progress{display:none}}
.clean .lab-description{color:#bed3e3}.is-visible .lab-sensor{animation:sensor-pulse 3s ease-in-out infinite}.motion-paused .lab-sensor{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.is-visible .lab-sensor{animation:none}}
/* Realistic room imagery replaces the abstract geometry. */
.clean:has(.lab-photo){grid-template-columns:1.5fr 1fr}.clean-lab:has(.lab-photo){padding:25px;min-height:580px}.lab-photo{position:relative;margin:25px -25px 18px;overflow:hidden}.lab-photo img{display:block;width:100%;height:auto;min-height:310px;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}.clean-lab[data-view=environment] .lab-photo img{transform:scale(1.035)}.photo-label{position:absolute;display:none;padding:7px 10px;background:#11283be8;border:1px solid #7cb9e9;color:#fff;font-size:10px;border-radius:3px;box-shadow:0 3px 15px #0003}.label-air{left:30%;top:17%}.label-environment{left:37%;top:58%}.label-access{right:5%;top:40%}.clean-lab[data-view=air] .label-air,.clean-lab[data-view=environment] .label-environment,.clean-lab[data-view=access] .label-access{display:block}.clean:has(.lab-photo) .clean-copy{padding:35px}.clean:has(.lab-photo) h2{font-size:clamp(32px,3.6vw,52px)}
.contract-stat strong{display:flex;align-items:baseline;white-space:nowrap;gap:0}.contract-stat strong .stat-prefix,.contract-stat strong .stat-suffix{font-size:1em;vertical-align:baseline}.contract-stat strong .stat-plus{font-size:.6em;align-self:flex-start}.stat-reel{display:inline-block!important;height:1.12em;width:.62em;overflow:hidden;position:relative;font-size:1em!important;vertical-align:baseline!important}.stat-track{display:flex!important;flex-direction:column;font-size:1em!important;will-change:transform}.stat-track>span{display:block!important;flex:0 0 1.12em;height:1.12em;line-height:1.12;text-align:center;font-size:1em!important;letter-spacing:-.055em;vertical-align:baseline!important}.stat-replay{display:block;background:transparent;border:0;border-bottom:1px solid #a4bdcf;padding:7px 0;color:#176caa;font-size:11px;cursor:pointer;margin-top:16px}
@media(max-width:750px){.clean:has(.lab-photo){grid-template-columns:1fr}.clean-lab:has(.lab-photo){min-height:0}.lab-photo img{min-height:0}.clean:has(.lab-photo) .clean-copy{padding:35px 25px}}
@media(prefers-reduced-motion:reduce){.lab-photo img{transition:none;transform:none!important}}

/* Air movement over the concept render, registered to its native aspect ratio. */
.lab-photo img{min-height:0;aspect-ratio:3/2;object-fit:contain}
.clean-lab[data-view=environment] .lab-photo img{transform:none}
.room-airflow{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;fill:none;stroke-linecap:round;transition:opacity .4s}
.flow-halo{stroke:#008cff;stroke-width:16;opacity:.5;filter:url(#air-glow)}
.flow-guide{stroke:#168eff;stroke-width:3;opacity:.42}
.flow-current{stroke:#57caff;stroke-width:7;stroke-dasharray:24 48;animation:room-flow 2s linear infinite;animation-delay:var(--flow-delay)}
@keyframes room-flow{to{stroke-dashoffset:-144}}
.clean-lab[data-view=environment] .room-airflow,.clean-lab[data-view=access] .room-airflow{opacity:.35}
.photo-label{z-index:2}
.motion-paused .flow-current{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.flow-current{animation:none}}
/* Larger architectural focal point with depth beneath the cutout. */
#about.about{grid-template-columns:.85fr 1.35fr;gap:55px;align-items:center;padding-top:110px;padding-bottom:120px}
#about .office-render{position:relative;overflow:visible;perspective:1100px;transform:translateY(-8px);transition:transform .65s cubic-bezier(.2,.8,.2,1)}
#about .office-render::before{content:"";position:absolute;z-index:-1;inset:12% -6% 9%;background:radial-gradient(ellipse,#b8ddff65,transparent 68%);pointer-events:none}
#about .office-render::after{content:"";position:absolute;z-index:-1;left:12%;right:4%;bottom:14%;height:13%;border-radius:50%;background:#15365442;filter:blur(22px);transform:rotate(-5deg);pointer-events:none;transition:opacity .65s}
#about.about figure.office-render>img{filter:drop-shadow(0 24px 15px #122b493b) drop-shadow(0 7px 4px #102a3b20);transform:none}
#about .office-render:hover{transform:translateY(-18px) scale(1.025)}
#about .office-render:hover .building-sign{transform:rotate(-5deg) skewY(-4deg)}
#about .office-render:hover::after{opacity:.7}
#about .office-render figcaption{position:relative;margin-top:28px}
@media(max-width:750px){#about.about{grid-template-columns:1fr;gap:35px;padding-top:65px;padding-bottom:65px}#about .office-render{margin:0 18px}#about .office-render:hover{transform:translateY(-8px)}}
@media(prefers-reduced-motion:reduce){#about .office-render,#about .office-render:hover{transform:none;transition:none}}
.motion-paused #about .office-render{transition:none;transform:none}

.flow-halo{stroke-width:11;opacity:.3}.flow-guide{stroke-width:2;opacity:.3}.flow-current{stroke-width:5;stroke-dasharray:14 58;animation-duration:3.6s}.label-air{left:45%;top:12%}.label-return{left:17%;top:65%}.clean-lab[data-view=air] .label-return{display:block}
/* Open editorial cleanroom section: one continuous canvas, no split cards. */
#cleanrooms.clean{width:100%;max-width:none;margin:0;border-radius:0;overflow:visible;display:flex;flex-direction:column;gap:0;background:linear-gradient(180deg,#1d1d1d 0%,#132736 36%,#edf3f7 69%,#fff 100%);padding:65px max(28px,calc((100vw - 1320px)/2)) 80px;color:#fff}
#cleanrooms .clean-copy{order:-1;display:grid;grid-template-columns:1.25fr 1fr;column-gap:70px;align-items:start;padding:0 24px 44px;background:none}
#cleanrooms .clean-copy>.eyebrow{grid-column:1/-1;color:#71baff;margin-bottom:20px}
#cleanrooms h2{grid-column:1;grid-row:2/5;font-size:clamp(38px,4.6vw,65px);font-weight:500;letter-spacing:-2px;line-height:1.04;margin:0;max-width:650px}
#cleanrooms h2 br{display:none}
#cleanrooms .clean-copy>p{grid-column:2;font-size:16px;line-height:1.7;color:#c3d1dc;margin:0 0 18px}
#cleanrooms .chips{grid-column:2;display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 22px}
#cleanrooms .chips span{padding:0;border:0;border-radius:0;background:none;color:#8fa5b7;font-size:11px}
#cleanrooms .clean-copy>.button{grid-column:2;justify-self:start;background:transparent;color:#80c4ff;border-radius:0;border-bottom:1px solid #5081a5;padding:10px 0;min-height:0;font-size:13px;gap:35px;box-shadow:none}
#cleanrooms .clean-lab{background:none;padding:0;min-height:0;overflow:visible;isolation:auto;display:block;color:#172d3d}
#cleanrooms .lab-heading{padding:0 24px 15px;color:#9ab4c7;font-size:9px}
#cleanrooms .lab-photo{margin:0;overflow:hidden;border-radius:0;mask-image:linear-gradient(to bottom,#000 90%,transparent);filter:drop-shadow(0 25px 30px #10283d20)}
#cleanrooms .lab-photo img{width:100%;height:auto;aspect-ratio:3/2;object-fit:contain}
#cleanrooms .lab-controls{max-width:660px;margin:10px auto 20px;gap:28px;border-bottom:1px solid #bfced8}
#cleanrooms .lab-controls button{border:0;border-bottom:2px solid transparent;border-radius:0;color:#627888;padding:15px 0;background:none;font-size:13px;transition:color .2s,border-color .2s}
#cleanrooms .lab-controls button[aria-pressed=true]{color:#0873ca;border-bottom-color:#178cf1;background:none}
#cleanrooms .lab-controls button:hover{color:#0873ca}
#cleanrooms .lab-description{max-width:660px;min-height:48px;margin:0 auto 15px;text-align:center;color:#536b7b;font-size:13px;line-height:1.65}
#cleanrooms .lab-caption{display:block;text-align:center;color:#8397a6;margin-bottom:0}
#cleanrooms .photo-label{background:#132c3ad9;border:0;border-left:2px solid #5fbfff;border-radius:0;box-shadow:none}
@media(min-width:1500px){#cleanrooms .lab-photo{max-width:1320px;margin-inline:auto}}
@media(max-width:750px){#cleanrooms.clean{padding:45px 20px 55px}#cleanrooms .clean-copy{grid-template-columns:1fr;gap:0;padding:0 4px 30px}#cleanrooms h2{grid-column:1;grid-row:auto;font-size:42px;letter-spacing:-1.5px;margin-bottom:22px}#cleanrooms .clean-copy>p,#cleanrooms .chips,#cleanrooms .clean-copy>.button{grid-column:1}#cleanrooms .lab-heading{padding-inline:4px;font-size:8px;letter-spacing:1px}#cleanrooms .lab-controls{gap:16px}#cleanrooms .lab-controls button{font-size:11px}#cleanrooms .photo-label{font-size:8px;padding:5px}#cleanrooms .lab-description{font-size:12px}}
#cleanrooms .lab-photo{mask-image:linear-gradient(to bottom,transparent 0%,#000 5%,#000 88%,transparent 100%)}
/* Office as an architectural centerpiece, with an open editorial introduction. */
#about.about{display:flex;flex-direction:column;align-items:stretch;gap:20px;padding-top:125px;padding-bottom:105px}
#about.about>div:first-child{display:grid;grid-template-columns:1.15fr 1fr;column-gap:clamp(35px,7vw,110px);align-items:start}
#about.about>div:first-child>.eyebrow{grid-column:1/-1;color:#1479d3;margin-bottom:24px}
#about.about h2{grid-column:1;grid-row:2/6;font-size:clamp(40px,5.2vw,70px);line-height:1.02;letter-spacing:-.045em;margin:0;max-width:650px}
#about.about p{grid-column:2;max-width:500px;margin:0 0 18px;line-height:1.65;color:#596976;font-size:15px}
#about.about p.large-copy{font-size:clamp(19px,2vw,24px);line-height:1.35;color:#19252d;margin-bottom:20px}
#about.about .text-link{grid-column:2;justify-self:start;margin-top:5px;color:#086ec8}
#about.about figure.office-render{width:86%;max-width:1100px;margin:0 auto;transform:none}
#about.about figure.office-render:hover{transform:translateY(-10px) scale(1.015)}
#about.about figure.office-render>img{width:115%;max-width:115%;margin-left:-7.5%}
#about .office-render figcaption{margin-top:0}
@media(max-width:750px){#about.about{padding-top:75px;padding-bottom:65px;gap:25px}#about.about>div:first-child{display:block}#about.about h2{font-size:clamp(38px,9vw,55px);margin:22px 0}#about.about .text-link{display:inline-flex;margin:8px 0 0}#about.about figure.office-render{width:94%;margin:0 auto}#about.about figure.office-render>img{width:110%;max-width:110%;margin-left:-5%}}
@media(prefers-reduced-motion:reduce){#about.about figure.office-render:hover{transform:none}}
/* A quieter customer call to action with a clear clickable target. */
.customer-intro .button.blue-button{display:inline-flex;min-height:48px;padding:10px 0;background:transparent;color:#086ec8;border-radius:0;border-bottom:1px solid #8ebde3;box-shadow:none;gap:35px;overflow:visible;font-weight:600}
.customer-intro .button.blue-button:hover{background:transparent;color:#064d8c;box-shadow:none;transform:none;border-bottom-color:#086ec8}
.customer-intro .button.blue-button::after{display:none}
.office-fleet{position:absolute;left:50%;top:62%;width:50%;height:22%;z-index:1;pointer-events:none}
.office-fleet img{position:absolute;width:47%;height:auto;object-fit:contain;filter:brightness(.83) drop-shadow(0 6px 4px #0006)}
.office-fleet img:first-child{left:0;top:0}.office-fleet img:last-child{left:49%;top:0}
/* Hide the provisional building mark until the exact sign artwork is available. */
#about .building-sign{display:none}
/* Remove the provisional fleet overlays pending a properly integrated rendering. */
.office-fleet{display:none}
/* Minimal customer sector navigation. */
#customers .customer-tabs{gap:clamp(20px,4vw,60px);border-bottom:1px solid #c9d3dc}
#customers .customer-tabs button{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;transform:none!important;padding:15px 0 16px;color:#5c6973;position:relative;text-align:left}
#customers .customer-tabs button::after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:#1689ee;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
#customers .customer-tabs button[aria-selected=true]{color:#086ec8}
#customers .customer-tabs button[aria-selected=true]::after{transform:scaleX(1)}
#customers .customer-tabs button:hover{color:#086ec8}
/* An open transition from capabilities to the environments they serve. */
#services.section{padding-bottom:55px}
#industries.dark{background:linear-gradient(180deg,#fff 0%,#f1f5f8 75%,#e6edf2 100%);color:#17212a;padding-top:60px;padding-bottom:95px}
#industries .section-top .micro{color:#667986}
#industries .section-top .eyebrow{color:#126aaf}
#industries h2{color:#17212a}
#industries .industry-grid{margin-top:35px}
#cleanrooms.clean{background:linear-gradient(180deg,#e6edf2 0%,#c7d7e2 5%,#283e4e 15%,#132736 36%,#edf3f7 69%,#fff 100%);padding-top:100px}
@media(max-width:750px){#services.section{padding-bottom:35px}#industries.dark{padding-top:45px;padding-bottom:65px}#cleanrooms.clean{padding-top:80px}}
