/* A quiet moving network replaces the grid; the navigation retains its layout. */
body.particle-theme{background-image:none;isolation:isolate}
/* Keep the opening frame clear, including before the first route is rendered. */
body.particle-theme:not(.experience-ready) .topbar{opacity:0;visibility:hidden}
#particle-field{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1;opacity:0;animation:field-arrive 1.6s ease forwards}
@keyframes field-arrive{to{opacity:1}}
.brand-flight{position:fixed;inset:0;width:100%;height:100%;z-index:21;pointer-events:none;overflow:visible;fill:none;stroke:none}
.brand-flight[hidden]{display:none}
.brand-flight image{filter:none}
.flight-dark,.dark .flight-light{display:none}
.dark .flight-dark{display:block}
.has-brand-intro .topbar .brand img{opacity:0}
.has-brand-intro.intro-docked .topbar .brand img{opacity:1}
.has-brand-intro.marketing-page main{padding-top:0}
.has-brand-intro #content>.content-enter{animation:none}
.brand-intro{height:100svh;min-height:520px;position:relative;isolation:isolate}
.intro-message{position:absolute;left:clamp(24px,4vw,76px);bottom:clamp(40px,6.3vh,76px);margin:0;max-width:75%;font-size:clamp(20px,1.65vw,32px);line-height:1.4;font-weight:400;letter-spacing:-.025em;color:var(--text)}
.intro-message span{display:block}
.intro-services{position:absolute;left:50%;transform:translateX(-50%);margin:0;white-space:nowrap;font-size:clamp(14px,1.04vw,20px);font-weight:400;letter-spacing:.035em;color:var(--muted)}
.intro-services span{color:var(--red);margin-inline:12px}
.intro-scroll{position:absolute;bottom:clamp(48px,6.8vh,82px);right:clamp(100px,11vw,210px);display:flex;align-items:center;gap:20px;color:var(--muted);padding:8px;font-size:13px;letter-spacing:.015em}
.intro-scroll svg{width:20px;height:32px;transition:transform .25s}
.intro-scroll:hover svg{transform:translateY(5px)}
.intro-scroll:hover{color:var(--red)}
.intro-details{padding-top:clamp(80px,9vw,160px)}
.intro-details .hero-copy>.lead{font-size:clamp(24px,2.05vw,39px);line-height:1.3;letter-spacing:-.03em;color:var(--text);margin-top:0;max-width:780px}
.has-brand-intro:not(.intro-docked) .contact-widget{visibility:hidden;pointer-events:none}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:1100px){.intro-message{max-width:78%;font-size:23px}.intro-scroll{right:104px}.intro-scroll>span{display:none}}
@media(max-width:800px){
 .brand-intro{min-height:560px}
 .intro-message{left:24px;right:24px;bottom:100px;max-width:none;font-size:clamp(18px,4.8vw,24px);line-height:1.45}
 .intro-services{font-size:14px;letter-spacing:0}
 .intro-services span{margin-inline:9px}
 .intro-scroll{bottom:24px;left:16px;right:auto;gap:12px;font-size:12px}
 .intro-scroll>span{display:block}
 .intro-details{padding-top:64px}
 .intro-details .hero-copy>.lead{font-size:27px;line-height:1.3;margin-top:0}
}
@media(max-height:600px) and (min-width:801px){.intro-message{font-size:19px;bottom:40px}.intro-scroll{bottom:40px}}
@media(prefers-reduced-motion:reduce){#particle-field{animation:none;opacity:1}.intro-scroll:hover svg{transform:none}}
