/* Device refinements on top of the original v20 design. */
.skip-link{position:fixed;top:12px;left:16px;z-index:6000;padding:14px 20px;background:white;color:#090b10;border-radius:8px;transform:translateY(-160%)}
.skip-link:focus{transform:none}
:focus-visible{outline:3px solid #7698ff;outline-offset:5px}
main:focus{outline:none}
.noscript-note{padding:100px 24px 20px;text-align:center}
body:not(.intro-active) .intro-portal:not(.is-collapsed){visibility:hidden}
body.intro-active .site-header>*{pointer-events:none}
.menu-overlay{overflow-y:auto;overscroll-behavior:contain;height:100dvh}
.menu-overlay.open{transition:opacity .35s,visibility 0s}
.route-curtain{visibility:hidden}
.route-curtain.go{visibility:visible}
.menu-main{min-width:0}
.menu-nav a{max-width:100%;overflow-wrap:anywhere}
.form-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.form-status[data-state="error"]{color:#a12626}
.form-status[data-state="success"]{color:#17643a}
.button:disabled{opacity:.65;cursor:wait;transform:none}
.field input:focus-visible,.field textarea:focus-visible,.field select:focus-visible{outline-offset:3px}
.field,.contact-form,.contact-grid>*{min-width:0}
.footer-minimal-nav a,.text-link,.division-app-link{min-height:44px;align-content:center}
.project-row{min-width:0}
.project-row>div{min-width:0}
.project-row h2,.preview-copy h3,.division-app-copy h3,.project-detail-copy h1{overflow-wrap:anywhere}
.intro-scroll{min-width:140px;min-height:64px;bottom:max(28px,env(safe-area-inset-bottom))}
.intro-wordmark{max-width:calc(100vw - 32px)}
.inner-hero h1{overflow-wrap:anywhere}
@media(max-width:1120px){
  .site-header{padding-inline:24px}
  .desktop-nav{display:none}
  .menu-toggle{display:flex}
  .menu-overlay{grid-template-columns:1fr}
  .menu-side{display:none}
  .menu-main{padding:110px 32px 32px;gap:30px}
  .menu-nav a{font-size:clamp(32px,7vw,68px);line-height:1.08;padding-block:10px}
  .hero-copy{max-width:100%}
  .hero-copy .display{font-size:clamp(52px,7.8vw,86px)}
  .standard-layout h2 span{white-space:normal}
  .division-apps-head{grid-template-columns:1fr;gap:28px}
  .project-detail-copy h1{max-width:100%}
}
@media(max-width:720px){
  :root{--shell:calc(100% - 36px)}
  .site-header{padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}
  .hero{min-height:auto;padding:112px 0 60px}
  .hero-copy .display{font-size:clamp(42px,12.6vw,74px);line-height:1.04;letter-spacing:-.065em}
  .hero-eyebrow{font-size:10px;line-height:1.6;max-width:28em}
  .hero-copy p.body-lg{font-size:18px;line-height:1.6}
  .hero-actions{gap:12px}
  .hero-actions .button{min-height:54px}
  .standard-layout h2{font-size:clamp(32px,9.2vw,52px);line-height:1.04}
  .inner-hero h1{font-size:clamp(42px,12vw,80px);line-height:1.02;letter-spacing:-.065em}
  .section-title,.company-intro h2,.legacy-copy h2,.contact-copy h2{font-size:clamp(38px,10.5vw,64px);line-height:1.04}
  .division-detail-copy h1{font-size:clamp(44px,13vw,76px);line-height:1.02;overflow-wrap:anywhere}
  .project-detail-copy h1{font-size:clamp(44px,13vw,80px);line-height:1.02}
  .project-detail-visual{min-height:320px;height:58svh;max-height:560px}
  .field input,.field textarea,.field select{font-size:18px;border-radius:0}
  .field select{padding-right:24px}
  .contact-grid{gap:42px}
  .team-card:nth-child(n+3){display:block}
  .menu-main{padding:100px 24px 28px}
  .menu-nav a{font-size:clamp(30px,8vw,54px)}
  .menu-note{font-size:16px;margin-bottom:env(safe-area-inset-bottom)}
  .intro-wordmark{font-size:clamp(26px,8.5vw,46px)}
  .footer-minimal-bar{padding-bottom:env(safe-area-inset-bottom)}
  .footer-minimal-nav{flex-wrap:wrap;justify-content:flex-start;gap:8px 24px}
}
@media(max-height:500px) and (max-width:1120px){
  .menu-main{padding-top:82px;gap:16px}
  .menu-nav a{font-size:28px;padding-block:7px}
  .menu-note{margin-block:0}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}
  .reveal{opacity:1;transform:none}
  .route-curtain{display:none}
}
