/* styles.css */
@font-face{font-family:Manrope;src:url('assets/manrope-latin.woff2') format('woff2');font-style:normal;font-weight:400 800;font-display:swap}
/* Five text roles. The approved Audiowide landing headline is the sole display exception. */
:root{
 --navy:#08213f;--blue:#0755d9;--blue-hover:#0646b2;--text:#43576c;--white:#fff;--mist:#f3f6f8;--company-paper:var(--mist);--line:#cbd6e0;--field-line:#71849f;
 --type-page:3rem;--type-section:2rem;--type-subheading:1.25rem;--type-body:1.125rem;--type-utility:1rem;
 --space-1:8px;--space-2:16px;--space-3:24px;--space-4:32px;--space-5:48px;--space-6:64px;--space-7:80px;--space-8:80px;
 --gutter:48px;--container:1200px;--section-space:80px;--layout-gap:48px;--prose:65ch;--body-size:var(--type-body);--radius:2px;--duration:160ms;--ease:cubic-bezier(.23,1,.32,1);--site-header-height:81px;
 font-family:Manrope,'Segoe UI',sans-serif;font-size:100%;font-synthesis:none;color:var(--navy);background:var(--white);scroll-behavior:smooth;scroll-padding-top:calc(var(--site-header-height) + 24px)
}
*{box-sizing:border-box}body{margin:0}h1,h2,h3,p,figure,dl,dd{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}button svg,a svg{width:20px;height:20px}::selection{background:#c5dbff;color:var(--navy)}[hidden]{display:none!important}main:focus{outline:none}:focus-visible{outline:3px solid var(--blue);outline-offset:5px;border-radius:var(--radius)}
.container{width:min(var(--container),calc(100% - var(--gutter)*2));margin-inline:auto}.section{padding-block:var(--section-space)}
h1,h2,h3{font-weight:600;overflow-wrap:break-word;text-wrap:pretty}
h1{font-size:var(--type-page);line-height:1.15;letter-spacing:-.035em}
h2{font-size:var(--type-section);line-height:1.25;letter-spacing:-.025em}
h3{font-size:var(--type-subheading);line-height:1.4;letter-spacing:-.015em}
p,dd,li,address{font-size:var(--type-body);line-height:1.65;color:var(--text)}
address{font-style:normal}p+p{margin-top:16px}main :where(p,dd,a,dt){overflow-wrap:break-word}main :where(section,article,div,figure){min-width:0}
.company-panel{background:var(--mist)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.svg-definitions{position:absolute;width:0;height:0;overflow:hidden}.legacy-anchor{position:absolute;top:0}
.skip-link{position:fixed;top:12px;left:16px;z-index:100;padding:16px 24px;background:white;color:var(--navy);transform:translateY(-150%);font-size:var(--type-utility)}.skip-link:focus{transform:translateY(0)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;max-width:100%;padding:14px 22px;min-height:54px;border:1px solid var(--blue);border-radius:var(--radius);background:var(--blue);color:white;font-size:var(--type-utility);line-height:1.5;font-weight:600;transition:background-color var(--duration) ease,border-color var(--duration) ease}
.button:hover{background:var(--blue-hover);border-color:var(--blue-hover)}.button:disabled{opacity:.75;cursor:wait}
.text-link{display:inline-flex;align-items:center;gap:16px;min-height:48px;padding-block:12px;font-size:var(--type-utility);line-height:1.5;font-weight:600;color:var(--blue)}.text-link:hover{text-decoration:underline;text-underline-offset:5px}
.disclosure-icon{position:relative;display:inline-block;width:20px;height:20px;flex-shrink:0}.disclosure-icon:before,.disclosure-icon:after{content:'';position:absolute;left:3px;top:9px;width:14px;height:2px;background:currentColor}.disclosure-icon:after{transform:rotate(90deg)}details[open]>summary .disclosure-icon:after{transform:rotate(0)}
html[data-large-text]{font-size:118.75%}html[data-high-contrast]{--text:#233c56;--blue:#0044b8;--blue-hover:#003990;--line:#8498b2;--field-line:#233c56}
html[data-highlight-links] main a,html[data-highlight-links] .site-footer a{text-decoration:underline!important;text-decoration-thickness:2px!important;text-underline-offset:4px}
html[data-reduced-motion]{scroll-behavior:auto}html[data-reduced-motion] *,html[data-reduced-motion] *:before,html[data-reduced-motion] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(max-width:1000px){:root{--gutter:32px;--layout-gap:32px}}
@media(max-width:700px){:root{--gutter:24px;--section-space:56px;--layout-gap:28px;--type-page:2.25rem;--type-section:1.75rem;--site-header-height:73px}}
@media(max-width:360px){:root{--gutter:20px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(forced-colors:active){.company-panel{background:Canvas}.button{border-color:ButtonText}:focus-visible{outline-color:Highlight}}

/* Original finite service illustration gestures. */
.service.art-playing .motion-trace,.service.art-playing .motion-wave{stroke-dasharray:1;animation:route-draw 1550ms cubic-bezier(.65,0,.35,1) both}
.service.art-playing .trace-2{animation-delay:140ms}
.service.art-playing .trace-3{animation-delay:260ms}
.service.art-playing .service-art-manufacturing .motion-trace{animation-delay:500ms}
.service.art-playing .layer-1{animation:board-top-settle 1700ms cubic-bezier(.65,0,.35,1) both}
.service.art-playing .layer-2{animation:board-middle-settle 1550ms cubic-bezier(.65,0,.35,1) both}
.service.art-playing .layer-3{animation:board-base-settle 1400ms cubic-bezier(.65,0,.35,1) both}
.service.art-playing .service-art-assembly .motion-component{animation:component-seat 1700ms cubic-bezier(.65,0,.35,1) both}
.service.art-playing .service-art-assembly .motion-trace{animation-delay:650ms}
.service.art-playing .motion-node circle{transform-box:fill-box;transform-origin:center;animation:node-connect 1850ms var(--ease) both}
@keyframes route-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes board-top-settle{0%{transform:translate(-3px,-6px)}65%{transform:translate(0,1px)}100%{transform:translate(0,0)}}
@keyframes board-middle-settle{0%{transform:translate(4px,-2px)}70%{transform:translate(0,0)}100%{transform:translate(0,0)}}
@keyframes board-base-settle{0%{transform:translate(0,5px)}70%{transform:translate(0,0)}100%{transform:translate(0,0)}}
@keyframes component-seat{0%,12%{transform:translateY(-16px)}68%{transform:translateY(1px)}85%,100%{transform:translateY(0)}}
@keyframes node-connect{0%,35%{transform:scale(.85)}65%{transform:scale(1.16)}100%{transform:scale(1)}}


/* hero.css */
@font-face{font-family:Audiowide;font-style:normal;font-weight:400;font-display:swap;src:url('assets/audiowide-latin.woff2') format('woff2')}
.landing-hero{position:relative;isolation:isolate;overflow:hidden;background:var(--navy);color:white;min-height:calc(100vh - var(--site-header-height));min-height:calc(100svh - var(--site-header-height))}
.landing-picture{position:absolute;inset:0;z-index:-2;display:block;pointer-events:none}.landing-image{width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 50%;transform-origin:78% 55%}.landing-hero:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(8,33,63,.48),rgba(8,33,63,.38)45%,rgba(8,33,63,.08)74%,transparent)}
.landing-inner{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-height:inherit;padding-block:48px 24px}.landing-copy{min-width:0;max-width:100%;margin-block:auto;padding-bottom:36px}.landing-title{font-family:Audiowide,Manrope,sans-serif;font-size:clamp(3.25rem,4.9vw,5.5rem);font-weight:400;line-height:1.14;letter-spacing:-.035em;text-transform:uppercase;margin:0}.landing-title>span{display:block}.landing-descriptor{color:white;font-size:1.125rem;font-weight:400;line-height:1.7;max-width:445px;margin-top:28px}.landing-primary{margin-top:30px;background:white;border-color:white;color:var(--navy)}.landing-primary:hover{background:#e3edfa;border-color:#e3edfa}.landing-explore{display:inline-flex;align-items:center;gap:24px;min-height:48px;padding-block:12px;color:white;font-size:1rem;line-height:1.5}.landing-explore svg{transform:rotate(90deg)}.landing-explore:hover{text-decoration:underline;text-underline-offset:6px}.landing-hero :focus-visible{outline-color:white}
.landing-hero.hero-ready .landing-image{animation:hero-compose 850ms var(--ease) both}@keyframes hero-compose{from{transform:scale(1.018)}to{transform:scale(1)}}html[data-large-text] .landing-title{font-size:clamp(3.25rem,5.3vw,5.5rem)}html[data-high-contrast] .landing-hero:before{background:rgba(8,33,63,.64)}
@media(min-width:701px){html[data-large-text] .landing-hero:before{background:rgba(8,33,63,.64)}}
@media(min-width:1800px){.landing-title{font-size:5.5rem}.landing-descriptor{font-size:1.25rem;max-width:480px}}
@media(max-width:960px){.landing-title{font-size:clamp(2.875rem,5.9vw,3.75rem)}.landing-descriptor{max-width:410px}.landing-hero:before{background:linear-gradient(90deg,rgba(8,33,63,.88),rgba(8,33,63,.72)55%,rgba(8,33,63,.18))}}
@media(max-width:700px){.landing-inner{padding-block:40px 20px}.landing-copy{padding-bottom:40px}.landing-title{font-size:clamp(2rem,10vw,2.75rem);line-height:1.2;letter-spacing:-.04em}html[data-large-text] .landing-title{font-size:clamp(2rem,10vw,2.75rem)}.landing-title>span{max-width:100%;overflow-wrap:anywhere}.landing-descriptor{font-size:1.125rem;margin-top:24px;max-width:360px}.landing-primary{margin-top:28px;padding-inline:20px;gap:22px}.landing-hero:before{background:linear-gradient(0deg,rgba(8,33,63,.92),transparent 40%),linear-gradient(180deg,rgba(8,33,63,.92),rgba(8,33,63,.82)62%,rgba(8,33,63,.3))}.landing-image{object-position:54% 50%}}
@media(max-height:600px) and (min-width:701px){.landing-inner{padding-block:40px 20px}.landing-copy{padding-bottom:24px}.landing-title{font-size:clamp(2.75rem,4.5vw,4.2rem)}}
@media(prefers-reduced-motion:reduce){.landing-hero.hero-ready .landing-image{animation:none}}html[data-reduced-motion] .landing-hero.hero-ready .landing-image{animation:none!important}
@media(forced-colors:active){.landing-picture,.landing-hero:before{display:none}.landing-hero{background:Canvas;color:CanvasText}.landing-descriptor,.landing-explore{color:CanvasText}.landing-primary{background:ButtonFace;color:ButtonText;border-color:ButtonText}.landing-hero :focus-visible{outline-color:Highlight}}

/* site.css */
/* Navigation and site utilities have one owner, shared by every route. */
.site-header{position:sticky;top:0;z-index:30;color:white;background:var(--navy);border-bottom:1px solid #ffffff24}
.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.header-inner{height:80px;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{display:inline-flex;align-items:center;flex-shrink:0;min-height:48px}.brand img{width:220px;height:auto}.site-header .brand img{filter:brightness(0) invert(1)}.site-header :focus-visible{outline-color:white}
.desktop-nav{display:flex;align-items:center;gap:32px;margin-left:auto}.desktop-nav>a,.nav-services>summary{display:flex;align-items:center;gap:8px;min-height:48px;padding-block:12px;font-size:var(--type-utility);line-height:1.5;font-weight:500}
.desktop-nav>a:hover,.desktop-nav a[aria-current],.nav-services[data-current]>summary{text-decoration:underline;text-underline-offset:6px}
.nav-services{position:relative}.nav-services>summary{list-style:none;cursor:pointer}.nav-services>summary::-webkit-details-marker{display:none}.nav-chevron{width:18px;height:18px}.nav-services[open] .nav-chevron{transform:rotate(180deg)}
.services-dropdown{position:absolute;right:0;top:calc(100% + 8px);width:320px;max-width:calc(100vw - 32px);max-height:calc(100dvh - var(--site-header-height) - 24px);overflow:auto;overscroll-behavior:contain;padding:8px;background:white;color:var(--navy);border:1px solid var(--line);box-shadow:none}
.services-dropdown>a{display:flex;align-items:center;min-height:48px;padding:12px 16px;font-size:var(--type-utility);line-height:1.5;font-weight:500}.services-dropdown .services-overview-link{justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:4px;font-weight:600}.services-dropdown>a:hover,.services-dropdown>a[aria-current]{background:var(--mist);color:var(--blue);text-decoration:none}.site-header .services-dropdown :focus-visible{outline-color:var(--blue);outline-offset:-3px}
.menu-toggle{display:none;position:relative;width:48px;height:48px;padding:12px 11px;background:transparent;border:1px solid #ffffff70;border-radius:var(--radius)}.menu-toggle span{display:block;width:24px;height:2px;margin:6px 0;background:white}.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{max-height:calc(100dvh - var(--site-header-height));overflow:auto;padding-block:8px 20px;overscroll-behavior:contain}.mobile-nav>a,.mobile-nav .nav-services>summary{display:flex;align-items:center;justify-content:space-between;min-height:52px;padding-block:14px;border-top:1px solid #ffffff30;font-size:var(--type-utility);line-height:1.5}.mobile-nav .services-dropdown{position:static;width:100%;max-width:none;max-height:none;margin-bottom:16px;box-shadow:none}.mobile-nav>a[aria-current]{text-decoration:underline;text-underline-offset:6px}
.site-footer{padding-top:56px}.footer-directory{display:grid;grid-template-columns:1fr 1fr 1.2fr .7fr;gap:32px;padding-bottom:40px}.footer-identity .brand img{width:200px}.footer-identity>p{margin-top:16px;font-size:var(--type-utility)}.footer-directory nav>p{font-size:var(--type-utility);font-weight:600;color:var(--navy);margin-bottom:12px}.footer-directory nav a{display:flex;align-items:center;width:fit-content;min-height:48px;padding-block:10px;font-size:var(--type-utility);line-height:1.5}.footer-directory nav a:hover{color:var(--blue);text-decoration:underline;text-underline-offset:5px}.back-to-top svg{transform:rotate(-90deg)}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding-block:16px 32px}.footer-bottom p,.footer-bottom a,.footer-bottom button{font-size:var(--type-utility)}.footer-bottom>div{display:flex;align-items:center;flex-wrap:wrap;gap:24px}.footer-bottom a,.footer-bottom button{min-height:48px;padding-block:12px;color:var(--text)}.footer-bottom a:hover{color:var(--blue)}
/* The circular accessibility widget stays in the sticky header, clear of reading content. */
.accessibility-button-label{display:none}
#accessibility-toggle{position:static;display:grid;place-items:center;width:48px;height:48px;min-height:48px;padding:10px;border:1px solid #ffffff70;border-radius:50%;background:var(--navy);color:white}
#accessibility-toggle svg{width:24px;height:24px;stroke-width:1.8}#accessibility-toggle:hover,#accessibility-toggle[aria-expanded=true]{background:var(--blue)}#accessibility-toggle:focus-visible{outline-offset:3px}
.accessibility-panel{position:fixed;right:var(--gutter);top:calc(var(--site-header-height) + 12px);z-index:50;width:360px;max-width:calc(100% - 32px);max-height:calc(100dvh - var(--site-header-height) - 24px);overflow:auto;overscroll-behavior:contain;padding:24px;background:white;border:1px solid var(--line);box-shadow:none}
.preferences-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.preferences-title h2{font-size:var(--type-subheading);line-height:1.4;letter-spacing:-.015em}.preferences-title button{flex-shrink:0;width:48px;height:48px;border:0;background:var(--mist);font-size:var(--type-subheading)}.accessibility-panel>p{font-size:var(--type-utility);margin-bottom:16px}.accessibility-panel>[data-pref]{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:50px;padding:12px;border:1px solid var(--line);background:white;margin-top:8px;font-size:var(--type-utility);line-height:1.5;text-align:left}.accessibility-panel>[aria-pressed=true]{border-color:var(--blue);background:#edf3ff;color:var(--blue)}.accessibility-panel>[data-pref] span{flex:0 0 18px;width:18px;height:18px;border:1px solid var(--field-line)}.accessibility-panel>[aria-pressed=true] span{position:relative;background:var(--blue);border-color:var(--blue)}.accessibility-panel>[aria-pressed=true] span:after{content:'';position:absolute;width:4px;height:8px;left:5px;top:2px;border-right:2px solid white;border-bottom:2px solid white;transform:rotate(45deg)}.accessibility-panel>.preferences-reset{justify-content:center;background:var(--mist)}.preferences-statement{display:flex;align-items:center;min-height:48px;margin-top:8px;color:var(--blue);font-size:var(--type-utility);text-decoration:underline;text-underline-offset:4px}
/* Inquiry form: labels and controls share the utility role. */
.contact form{background:var(--mist);color:var(--navy);padding:32px;border-radius:var(--radius);min-width:0}.form-intro{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 20px;font-size:var(--type-subheading);line-height:1.4;font-weight:600;color:var(--navy);margin-bottom:24px}.form-intro span{font-size:var(--type-utility);font-weight:400;color:var(--text)}.field{min-width:0}.field label{display:block;margin-bottom:8px;font-size:var(--type-utility);line-height:1.5;font-weight:600}.field input,.field textarea,.field select{width:100%;display:block;min-height:54px;padding:14px;border:1px solid var(--field-line);border-radius:var(--radius);color:var(--navy);background:white;font-size:var(--type-utility);line-height:1.5}.field textarea{min-height:148px;resize:vertical}.field textarea::placeholder{color:#5d7082;opacity:1}.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid var(--blue);outline-offset:3px}.field input:hover,.field textarea:hover,.field select:hover{border-color:var(--navy)}.project-message{margin-top:24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.optional-label{font-weight:400;color:var(--text)}.form-privacy{font-size:var(--type-utility);margin:24px 0}.form-privacy a{text-decoration:underline;text-underline-offset:4px}.form-status{font-size:var(--type-utility);margin-top:20px}.form-status:empty,.honeypot{display:none}
/* Supporting pages use the same hierarchy as the company and services. */
.document-page{min-height:100svh}.document-header{border-bottom:1px solid var(--line);padding-block:20px}.document-header .container{display:flex;align-items:center;justify-content:space-between;gap:24px}.document-header a:not(.brand){display:inline-flex;align-items:center;min-height:48px;font-size:var(--type-utility);text-decoration:underline;text-underline-offset:5px}.document-content,.thank-you-content{max-width:var(--prose);padding-block:var(--section-space)}.document-content h1,.thank-you-content h1{margin-bottom:24px}.document-content h2{margin:40px 0 16px}.document-content p{margin-bottom:16px}.document-content ul{padding-left:24px}.document-content li{margin-bottom:12px}.document-content a{text-decoration:underline;text-underline-offset:4px}.document-notice{padding:24px;background:var(--mist)}.thank-you-content{min-height:65vh}.thank-you-content p{margin-bottom:24px}.document-footer{border-top:1px solid var(--line);padding-block:20px;font-size:var(--type-utility)}.document-footer .container{display:flex;align-items:center;flex-wrap:wrap;gap:28px}.document-footer a{display:inline-flex;align-items:center;min-height:48px;text-decoration:underline;text-underline-offset:4px}
@media(min-width:961px){.mobile-nav{display:none!important}}
@media(max-width:960px){.desktop-nav{display:none}.menu-toggle{display:block}.footer-directory{grid-template-columns:1fr 1fr;gap:24px 40px}.footer-identity{grid-column:1/-1}}
@media(max-width:700px){.header-inner{height:72px;gap:16px}.brand img{width:186px}.site-footer{padding-top:40px}.footer-directory{grid-template-columns:1fr}.footer-identity{grid-column:auto}.footer-bottom{align-items:start;flex-direction:column;gap:8px}.accessibility-panel{right:16px;padding:20px}.contact form{padding:24px}.form-grid{grid-template-columns:1fr}.document-header .container{flex-wrap:wrap;gap:12px}}
@media(max-width:360px){.site-header .brand img{width:144px}.header-inner{gap:8px}.contact form{padding:20px}}
@media(forced-colors:active){.site-header,.services-dropdown,.mobile-nav .services-dropdown,.accessibility-panel{background:Canvas;color:CanvasText;border-color:CanvasText}.site-header :focus-visible{outline-color:Highlight}#accessibility-toggle{background:ButtonFace;color:ButtonText;border-color:ButtonText}.menu-toggle span{background:ButtonText}.brand img{forced-color-adjust:none}}

/* Validation stays beside its field and uses the established type and palette. */
.field-error{font-size:var(--type-utility);line-height:1.5;color:var(--navy);font-weight:600;margin-top:8px}.field [aria-invalid=true]{border-color:var(--navy);border-width:2px;padding:13px}.field input,.field textarea,.field-error{scroll-margin-top:calc(var(--site-header-height) + 24px)}
.form-spinner{animation:form-sending 900ms linear infinite}@keyframes form-sending{to{transform:rotate(360deg)}}
.company-contact-information a{display:inline-flex;align-items:center;min-height:48px}
.page-recovery{padding-block:var(--section-space);min-height:60svh}.page-recovery h1,.page-recovery p{max-width:var(--prose)}.page-recovery p{margin-top:20px}.recovery-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 32px;margin-top:32px}
@media(forced-colors:active){.site-header :focus-visible{outline-color:Highlight}.field [aria-invalid=true]{border-color:CanvasText}}

/* company.css */
/* Company information is factual, compact and grouped by the visitor's question. */
.about-opening{padding-block:64px 48px}.about-opening h1{margin-bottom:20px}.about-opening p{max-width:var(--prose)}
.about-details{padding-block:56px;background:var(--mist)}.about-details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--layout-gap)}.about-details h2{margin-bottom:20px}.about-service-list{list-style:none;margin:0;padding:0}.about-service-list li{border-top:1px solid var(--line)}.about-service-list a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;padding-block:12px;font-size:var(--type-body);color:var(--navy)}.about-service-list a:hover{color:var(--blue);text-decoration:underline;text-underline-offset:5px}.about-working article+article{margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}.about-working h3{margin-bottom:12px}.about-working .text-link{margin-top:8px}
.about-location{padding-block:48px}.about-location h2{margin-bottom:16px}.about-location address{margin-bottom:8px}.about-location .text-link{overflow-wrap:anywhere}
.company-invitation{padding-block:48px;border-block:1px solid var(--line)}.invitation-layout{display:flex;align-items:center;justify-content:space-between;gap:var(--layout-gap)}.invitation-layout p{margin-top:12px;max-width:var(--prose)}.invitation-layout>.button{flex-shrink:0}
.contact-page-opening{padding-block:64px var(--section-space)}.contact-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:min-content 1fr;gap:32px var(--layout-gap);align-items:start}.contact-intro{grid-column:1;grid-row:1}.contact-intro>p{margin-top:20px;max-width:var(--prose)}#inquiry-form{grid-column:2;grid-row:1/span 2}.company-contact-information{grid-column:1;grid-row:2;border-top:1px solid var(--line);padding-top:24px}.contact-details dl{display:grid;gap:24px}.contact-details dt{font-size:var(--type-utility);font-weight:600;margin-bottom:8px}.contact-details dd,.contact-details address{font-size:var(--type-body)}.contact-details a{text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}
@media(max-width:900px){.about-details-grid,.contact-layout{grid-template-columns:1fr}.about-details-grid{gap:40px}.contact-intro,#inquiry-form,.company-contact-information{grid-column:1;grid-row:auto}.invitation-layout{flex-direction:column;align-items:start;gap:24px}}
@media(max-width:700px){.about-opening{padding-block:48px 32px}.about-details{padding-block:40px}.about-location,.company-invitation{padding-block:40px}.contact-page-opening{padding-block:48px var(--section-space)}}

/* Owner-supplied experience is team expertise, not the company's age. */
.about-opening{padding-block:64px 56px}
.about-lead-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:64px;align-items:start}
.about-opening .about-page-label{font-size:var(--type-utility);font-weight:600;color:var(--blue);margin-bottom:20px}
.about-lead h1{max-width:21ch;margin-bottom:24px;line-height:1.2}
.about-opening .about-lead-description{max-width:57ch;margin-top:0}
.about-expertise{padding:32px;background:var(--mist);border-top:3px solid var(--blue)}
.about-expertise h2{font-size:1.5rem;line-height:1.35;margin-bottom:20px;max-width:25ch}
.about-expertise p{font-size:var(--type-utility)}
.about-advantage{margin-top:48px}
.about-advantage>h2{margin-bottom:24px}
.about-advantage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.about-advantage-grid article{padding-top:20px;border-top:1px solid var(--line)}
.about-advantage-grid h3{margin-bottom:12px}
.about-advantage-grid p{font-size:var(--type-utility)}
.about-opening-inquiry{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding-top:32px;margin-top:40px}
.about-opening-inquiry>p{font-size:var(--type-subheading);font-weight:500;color:var(--navy)}
.about-opening-inquiry>.button{flex-shrink:0}
@media(max-width:1050px){.about-lead-layout{gap:32px}.about-expertise{padding:24px}}
@media(max-width:900px){.about-lead-layout{grid-template-columns:1fr}.about-expertise{max-width:var(--prose)}.about-lead h1{max-width:none}.about-advantage-grid{grid-template-columns:1fr;gap:24px}.about-advantage-grid p{max-width:var(--prose)}}
@media(max-width:700px){.about-opening{padding-block:40px}.about-opening .about-page-label{margin-bottom:16px}.about-lead h1{font-size:2rem}.about-advantage{margin-top:40px}.about-opening-inquiry{flex-direction:column;align-items:start;padding-top:24px;margin-top:32px}}

/* home.css */
/* Established hero, followed by a consistent content hierarchy. */
.home-page{--home-motion-ease:cubic-bezier(.16,1,.3,1)}
.home-page .landing-title{line-height:1.12;letter-spacing:-.03em}.home-page .landing-descriptor{max-width:min(46ch,480px);font-size:var(--type-body);line-height:1.65;margin-top:32px}.home-page .landing-explore{gap:20px}.home-page .landing-explore svg{transform:rotate(90deg)}
.home-company-intro{padding-block:56px;background:var(--mist)}.home-intro-layout{max-width:var(--container)}.home-intro-layout h2{margin-bottom:16px}.home-intro-copy{max-width:var(--prose)}
.editorial-heading{max-width:var(--prose);margin-bottom:32px}.home-services>.text-link{margin-top:24px}
.service{border-top:1px solid var(--line)}.service:last-child{border-bottom:1px solid var(--line)}.service-row{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:var(--layout-gap);align-items:center;padding-block:32px}.service-copy{max-width:var(--prose)}.service-heading h3{margin-bottom:12px}.service-caption{font-size:var(--type-utility);margin-top:0;margin-bottom:12px}.service-description .text-link{margin-top:8px}.service-art{display:block;width:180px;height:135px;color:var(--navy);stroke-width:1.6}.service-art .art-accent{color:var(--blue)}.service-row-link:hover .service-title{color:var(--blue);text-decoration:underline;text-underline-offset:5px}
.home-engineering{padding-block:var(--section-space);background:var(--navy);color:white}.home-engineering p{color:#dce8f3}.home-engineering-head{max-width:var(--prose);margin-bottom:24px}.home-engineering-head p{margin-top:16px}.engineering-controls{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px}.engineering-controls button{display:flex;align-items:center;justify-content:center;min-height:48px;padding:12px 18px;border:1px solid #ffffff65;border-radius:var(--radius);background:transparent;color:white;font-size:var(--type-utility);line-height:1.5;font-weight:500}.engineering-controls button[aria-pressed=true]{background:#d0f5ff;border-color:#d0f5ff;color:var(--navy)}.engineering-controls button:hover{border-color:#d0f5ff}.engineering-workspace{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--layout-gap);align-items:start}.engineering-drawing{display:block;width:100%;height:auto;overflow:visible;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.engineering-figure figcaption{color:#b7cadd;font-size:var(--type-utility);line-height:1.6;margin-top:16px}.engineering-detail{padding-top:16px}.engineering-detail h3{margin-bottom:12px}.engineering-detail p{max-width:var(--prose)}.engineering-service-link{color:#b7eaff;margin-top:16px}.home-engineering :focus-visible{outline-color:white}
.company-project-context{position:relative;padding-block:var(--section-space)}.company-context-grid,.home-procurement-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--layout-gap);align-items:start}.company-context-grid h2,.home-procurement-copy h2{margin-bottom:16px}.company-context-grid .text-link,.home-procurement-copy .text-link{margin-top:12px}.home-procurement{padding-block:var(--section-space);background:white}.home-procurement-image picture{display:block;overflow:hidden;background:var(--mist)}.home-procurement-image img{width:100%;aspect-ratio:1.4;object-fit:cover;object-position:58% 50%}
@media(max-width:900px){.engineering-workspace,.company-context-grid,.home-procurement-layout{grid-template-columns:1fr}.engineering-figure,.engineering-detail,.company-context-grid>div,.company-context-grid>figure,.home-procurement-copy,.home-procurement-image{width:100%;max-width:640px}.engineering-detail{padding-top:0}.service-row{grid-template-columns:minmax(0,1fr) 120px}.service-art{width:120px;height:90px}}
@media(max-width:700px){.home-page .landing-title{line-height:1.18}.home-page .landing-descriptor{margin-top:24px;max-width:36ch}.home-page .landing-image{object-position:76% 50%}.home-company-intro{padding-block:40px}.editorial-heading{margin-bottom:24px}.service-row{grid-template-columns:minmax(0,1fr) 64px;gap:16px;align-items:start;padding-block:28px}.service-art{width:64px;height:48px}.engineering-controls{gap:8px;margin-bottom:24px}.engineering-controls button{padding-inline:12px}.engineering-figure figcaption{margin-top:8px}}

/* Engineering drawing states; sizes are SVG coordinates. */
.engineering-shell { fill:none; stroke:#5a7c99; transition:stroke 240ms ease-out; }
.engineering-board { fill:#103652; stroke:#7f9eb6; }
.engineering-copper { fill:none; stroke:#416b87; stroke-width:2; }
.engineering-parts { fill:#092640; stroke:#8eacbf; stroke-width:1.5; }
.engineering-parts .engineering-chip { fill:#081e35; stroke:#b9cddc; }
.engineering-route { fill:none; stroke:#86dfff; stroke-width:3; transition:opacity 240ms ease-out; }
.engineering-route circle { fill:#86dfff; stroke:none; }
.engineering-return { stroke:#d0e6f4; stroke-width:2; stroke-dasharray:9 7; }
.engineering-mounts { fill:#08213f; stroke:#89a9bf; transition:stroke 240ms ease-out; }
.engineering-mount circle+circle { fill:#08213f; }
.engineering-connector { fill:#173e5a; stroke:#c3d8e6; stroke-width:2; }
.engineering-clearance,.engineering-fit { fill:none; stroke:#86dfff; opacity:0; transition:opacity 240ms ease-out; }
.engineering-clearance rect { fill:#86dfff0a; stroke-dasharray:7 7; }
.engineering-annotations { fill:none; stroke:#86dfff; opacity:0; transition:opacity 240ms ease-out; }
.engineering-annotations text { fill:#d0f5ff; stroke:none; font-family:Manrope,'Segoe UI',sans-serif; font-size:21px; font-weight:500; }
[data-focus=signal] .engineering-signal-label { opacity:1; }
[data-focus=fit] .engineering-route,[data-focus=connections] .engineering-route { opacity:.18; }
[data-focus=fit] .engineering-shell,[data-focus=fit] .engineering-mounts { stroke:#86dfff; stroke-width:2; }
[data-focus=fit] .engineering-fit,[data-focus=fit] .engineering-fit-label { opacity:1; }
[data-focus=connections] .engineering-connector { fill:#2b627d; stroke:#86dfff; }
[data-focus=connections] .engineering-clearance,[data-focus=connections] .engineering-connection-label { opacity:1; }
.engineering-playing[data-focus=signal] .engineering-signal>path { animation:engineering-signal-draw 1100ms var(--home-motion-ease) both; }
@keyframes engineering-signal-draw { from { stroke-dasharray:1; stroke-dashoffset:1; } to { stroke-dasharray:1; stroke-dashoffset:0; } }

/* Client relationships follow the service and turnkey explanations. */
.home-clients{padding-block:72px;background:var(--navy);color:white}
.client-section-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,2fr);gap:56px;align-items:center}
.client-section-intro h2{max-width:15ch;margin-bottom:20px}
.client-section-intro p{max-width:29ch;color:#dce8f3}
.client-logos{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));background:white;border-radius:var(--radius);overflow:hidden}
.client-logo{grid-column:span 3;display:flex;align-items:center;justify-content:center;height:132px;padding:20px;min-width:0;overflow:hidden;background:white}
.client-logo:nth-child(-n+4){border-bottom:1px solid var(--line)}
.client-logo:nth-child(-n+3),.client-logo:nth-child(5),.client-logo:nth-child(6){border-right:1px solid var(--line)}
.client-logo:nth-child(n+5){grid-column:span 4}
.client-logo img{width:100%;max-width:160px;max-height:64px;object-fit:contain}
.client-logo--idra img{width:190px;max-width:none;height:190px;max-height:none;flex-shrink:0}
.client-logo--nt-tao img{filter:brightness(.42)}
.client-logo--wisp img{filter:brightness(0);max-width:136px}
.client-logo--skyfort img,.client-logo--vigdu img{filter:brightness(1.06);mix-blend-mode:multiply}
.client-logo--skypro img{max-width:136px}
@media(max-width:1050px){.client-section-layout{grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:32px}.client-logo{height:120px;padding:16px}}
@media(max-width:900px){.client-section-layout{grid-template-columns:1fr;gap:32px}.client-section-intro{max-width:var(--prose)}.client-section-intro h2,.client-section-intro p{max-width:none}.client-section-intro h2{margin-bottom:16px}.client-logos{width:100%}}
@media(max-width:700px){.home-clients{padding-block:48px}.client-logos{grid-template-columns:repeat(2,minmax(0,1fr))}.client-logo,.client-logo:nth-child(n+5){grid-column:span 1;height:108px;padding:16px}.client-logo:nth-child(n){border:0}.client-logo:nth-child(-n+6){border-bottom:1px solid var(--line)}.client-logo:nth-child(odd):not(:last-child){border-right:1px solid var(--line)}.client-logo:last-child{grid-column:1/span 2}.client-logo img{max-width:152px}.client-logo--idra img{width:168px;max-width:none;height:168px}.client-logo--wisp img,.client-logo--skypro img{max-width:136px}}

/* service-pages.css */
/* Service compositions follow the work, within the shared five-role type system. */
.service-detail{border-bottom:1px solid var(--line)}
.service-breadcrumb{padding-top:24px;margin-bottom:24px}
.breadcrumbs{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;font-size:var(--type-utility);line-height:1.5;color:var(--text)}.breadcrumbs a{display:inline-flex;align-items:center;min-height:48px;text-decoration:underline;text-underline-offset:4px}
.service-intro{padding-bottom:40px}.service-intro h1{max-width:25ch}.service-intro>p{max-width:76ch;margin-top:20px}
.service-block{padding-bottom:64px}.service-wash{padding-block:48px;background:var(--mist)}
.original-service-image{min-width:0}.original-service-image picture{display:block;background:var(--mist);overflow:hidden}.original-service-image img{width:100%;height:auto;object-fit:cover}
.service-detail article p{margin-top:12px}.service-detail dt{font-size:var(--type-subheading);font-weight:600;line-height:1.4;letter-spacing:-.015em}.service-detail dd{margin-top:8px}
.service-detail strong{color:var(--navy);font-weight:600}
.two-reading-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--layout-gap);margin-top:28px}.two-reading-groups p{max-width:60ch}
.service-small-note{margin-top:24px!important;font-size:var(--type-utility);padding-top:20px;border-top:1px solid var(--line)}
.service-inline-note{padding-block:0 48px}.service-inline-note p{max-width:80ch;padding-top:24px;border-top:1px solid var(--line)}
/* Design: the plan and its two main decisions form one reading group. */
.design-layout-work{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--layout-gap);align-items:center}
.design-routing-study{background:var(--mist)}.design-routing-study>svg{display:block;width:100%;height:auto;stroke:none;stroke-width:0;padding:20px}
.design-routing-study figcaption{padding:0 24px 24px;font-size:var(--type-utility);line-height:1.6;color:var(--text)}
.design-work-copy h2{margin-bottom:24px}.design-work-copy article+article{margin-top:24px}
/* Manufacturing: a shallow material panorama precedes the construction study. */
.manufacturing-panorama{margin-bottom:48px}.manufacturing-panorama img{aspect-ratio:3.4;object-position:50% 55%}
.manufacturing-specification{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--layout-gap);align-items:start;padding-bottom:32px}
.manufacturing-study>p{margin-top:16px}.manufacturing-cross-section{margin-top:24px}.manufacturing-cross-section figcaption{margin-top:12px;font-size:var(--type-utility);line-height:1.6;color:var(--text)}
.cross-section-drawing{background:var(--mist);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:0}
.cross-section-drawing>svg{display:block;width:100%;height:auto;stroke:none;stroke-width:0;grid-column:1/-1;grid-row:2}
.cross-label{font-size:var(--type-utility);line-height:1.5;padding:12px;font-weight:600;text-align:center}.label-mask{grid-column:1;grid-row:1}.label-copper{grid-column:2;grid-row:1}.label-core{grid-column:1;grid-row:3}.label-hole{grid-column:2;grid-row:3}
.construction-definitions>div{padding-block:20px;border-top:1px solid var(--line)}.construction-definitions>div:first-child{padding-top:0;border-top:0}
/* Assembly: a close working study, followed by a single coordinated build band. */
.assembly-study{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--layout-gap);align-items:center}
.assembly-study img{aspect-ratio:1.45;object-position:40% 50%}.assembly-package-copy h2{margin-bottom:24px}.assembly-package-copy article+article{margin-top:24px}
.assembly-build-band{padding-block:48px;background:var(--navy);color:white}.assembly-build-band p{color:#dae5ef}.assembly-build-references{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:28px}.assembly-revision-note{margin-top:28px;padding-top:24px;border-top:1px solid #ffffff40;font-size:var(--type-utility);max-width:80ch}
/* Procurement: a component still life supports the compact purchasing references. */
.procurement-purchasing{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--layout-gap);align-items:center}
.procurement-purchasing img{aspect-ratio:1.18;object-position:42% 50%}.purchasing-reference{margin-top:24px}.purchasing-reference>div+div{margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}
/* Simulations: question, model and comparison are a real sequence, without pretend data. */
.analysis-opening{background:var(--navy);color:white}.analysis-opening .service-intro{padding-block:40px 48px}.analysis-opening p{color:#dae5ef;max-width:76ch}
.simulation-method{padding-top:48px}.simulation-heading>p{margin-top:16px;max-width:70ch}
.analysis-sequence{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;list-style:none;counter-reset:analysis;margin:32px 0 0;padding:0}
.analysis-sequence li{counter-increment:analysis;padding-top:20px;border-top:2px solid var(--blue)}.analysis-sequence h3:before{content:counter(analysis) '. ';color:var(--blue)}.analysis-sequence p{margin-top:12px}
.simulation-result-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--layout-gap);align-items:start}.simulation-result-layout p{margin-top:16px}.simulation-result-note{padding:24px;background:white}.simulation-result-note p{margin-top:12px}
/* Mechanical: fit is beside the object; access topics stay under their own heading. */
.mechanical-fit-study{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--layout-gap);align-items:center}.mechanical-fit-study img{aspect-ratio:1.35;object-fit:contain;background:var(--mist)}
.fit-reference{margin-top:24px}.fit-reference>div+div{margin-top:20px}.mechanical-access-heading>p{margin-top:16px;max-width:70ch}
.access-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:28px}.mechanical-revision-note{border-top:1px solid var(--line);margin-top:28px;padding-top:24px;max-width:90ch;font-size:var(--type-utility)}
/* Turnkey: scope and change coordination carry the service, not a machine image. */
.turnkey-scope-intro>p{margin-top:16px;max-width:70ch}.turnkey-connections{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:32px}.turnkey-connections>div{padding-top:24px;border-top:2px solid var(--blue)}.turnkey-connections p{margin-top:12px}
.project-change-table{width:100%;border-collapse:collapse;table-layout:fixed;text-align:left;font-size:var(--type-body);line-height:1.65;margin-top:28px}.project-change-table th,.project-change-table td{padding:20px 24px;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}.project-change-table th{font-weight:600;color:var(--navy)}.project-change-table td{color:var(--text)}.project-change-table thead{background:white;font-size:var(--type-utility)}.project-change-table th:first-child{width:30%}
/* The directory does not repeat the detail-page illustrations. */
.company-page-opening{padding-block:64px 40px}.company-page-opening>p{max-width:76ch;margin-top:20px}.company-directory{padding-bottom:48px}.directory-group-title{margin-bottom:24px}
.company-directory-row{position:relative;display:block;padding:28px 40px 28px 0;border-top:1px solid var(--line)}.company-directory-row:last-child{border-bottom:1px solid var(--line)}.company-directory-row>svg{position:absolute;right:0;top:32px}.directory-copy{max-width:84ch}.directory-copy h3{margin-bottom:12px}.directory-copy .text-link{margin-top:4px}.company-directory-row:hover h3{text-decoration:underline;text-underline-offset:5px}
.service-content-section{padding-block:48px}.service-section-heading{max-width:76ch;margin-bottom:28px}.service-section-heading>p{margin-top:16px}.directory-support-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.related-service-row{position:relative;display:block;padding-right:28px}.related-service-row h3{margin-bottom:12px}.related-service-row>svg{position:absolute;right:0;top:4px}.related-service-row:hover h3{text-decoration:underline;text-underline-offset:5px}
.company-overview-note{padding-block:48px}.company-copy-grid{max-width:76ch}.company-copy-grid>div{margin-top:16px}
.company-photograph picture{display:block;overflow:hidden;background:var(--mist)}.company-photograph img{width:100%;height:auto;object-fit:cover}.company-photograph figcaption{margin-top:12px;font-size:var(--type-utility);line-height:1.6;color:var(--text)}
.home-procurement-layout{display:block}.home-procurement-copy{max-width:76ch}
@media(max-width:900px){
 .design-layout-work,.manufacturing-specification,.assembly-study,.procurement-purchasing,.mechanical-fit-study{grid-template-columns:1fr;gap:32px;align-items:start}
 .design-routing-study{max-width:640px}.assembly-study img{aspect-ratio:1.8}.procurement-purchasing img{aspect-ratio:1.8;object-position:50% 42%}.mechanical-fit-study img{aspect-ratio:1.5;object-fit:contain}
 .construction-definitions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.construction-definitions>div{border:0;padding:0}.manufacturing-cross-section{max-width:640px}
 .analysis-sequence,.access-groups,.turnkey-connections,.assembly-build-references{gap:24px}
 .simulation-result-layout{grid-template-columns:1fr;gap:28px}.simulation-result-note{max-width:76ch}
}
@media(max-width:700px){
 .service-breadcrumb{padding-top:16px;margin-bottom:20px}.service-intro{padding-bottom:28px}.service-intro>p{margin-top:16px}.service-block{padding-bottom:40px}.service-wash,.assembly-build-band{padding-block:40px}
 .two-reading-groups,.analysis-sequence,.access-groups,.turnkey-connections,.assembly-build-references,.construction-definitions,.directory-support-list{grid-template-columns:1fr;gap:24px}
 .design-routing-study>svg{padding:12px}.design-routing-study figcaption{padding:0 16px 16px}
 .manufacturing-panorama{margin-bottom:32px}.manufacturing-panorama img{aspect-ratio:1.8;object-position:40% 65%}.manufacturing-specification{padding-bottom:24px}.service-inline-note{padding-bottom:40px}
 .assembly-study img,.procurement-purchasing img{aspect-ratio:1.5}.mechanical-fit-study img{aspect-ratio:1.5}
 .analysis-opening .service-intro{padding-block:32px 40px}.simulation-method{padding-top:40px}.analysis-sequence{margin-top:28px}
 .project-change-table th,.project-change-table td{padding:16px 12px}.project-change-table th:first-child{width:38%}
 .company-directory-row{padding-block:24px}
 .company-page-opening{padding-block:40px 32px}.service-content-section,.company-overview-note{padding-block:40px}
}
