/* A continuous, compact canvas with a clear human focal point. */
:root { --canvas:#171a20; --panel:#222832; --mint:#68d5ff; --accent:#68d5ff; }
html { scroll-padding-top:24px; }
body { overflow-x:clip; }
button,a { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:2px solid #eabc89; outline-offset:5px; }
main { overflow:clip; }
.scroll-story { overflow:visible; }
.home-page main { overflow:visible; }
.home-page .statement,.home-page .intro,.home-page .bundle-teaser,.scroll-story,.closing,
.industry-section,.confidence-section,.faq-section,.service-context,.map-teaser,
.inner-page .service-manifesto,.inner-page .section.tinted,.inner-page .contact-first,.inner-page .service-note-section {
 background:var(--canvas); background-image:none; color:#f4f8f5;
}
.home-page .statement { padding:28px 0; border-color:#3e4758; background:#222832; }
.statement-grid>span { color:var(--mint); font-size:13px; letter-spacing:0; }
.home-page .intro,.bundle-teaser,.section.tinted,.closing,.service-manifesto,.service-context { min-height:0; }
.section,.industry-section,.confidence-section,.faq-section,.map-teaser,.closing,.service-manifesto,.service-context { padding:76px 0; }
.home-page .intro { padding:76px 0; }
.intro-layout { gap:64px; }
.intro-layout h2,.bundle-teaser h2,.home-page .split-copy h2,.confidence-section h2,.industry-heading h2,.faq-grid h2,.closing h2,.service-context h2,.service-manifesto h2 { font-size:48px; line-height:1.13; }
.intro-layout p,.home-page .intro-layout p,.bundle-layout p,.home-page .bundle-layout p { font-size:17px; color:#c8d0dc; }
.eyebrow,.home-page .solution-index,.home-page .bundle-lines strong,.home-page .bundle-lines>span,.story-number { color:var(--mint); }
.eyebrow { font-size:12px; margin-bottom:18px; }
.text-link { color:var(--mint); border-color:var(--mint); }
.home-page .section:has(>.split) { padding:0; }
.home-page .split { min-height:520px; }
.home-page .split-image { background-image:url('/assets/team-human-symbol-20261015.fast.webp') !important; background-attachment:scroll; background-position:center 42%; }
.home-page .split:before { background:linear-gradient(90deg,#171a20eb,#171a2085 60%,#171a2018); }
.home-page .split-copy { max-width:660px; padding:64px 0; }
.home-page .bundle-teaser { background:#222832; border-block:1px solid #3e4758; }
.bundle-layout { gap:65px; }
.bundle-lines>span { grid-template-columns:32px minmax(0,1fr); gap:8px 16px; padding:20px 0; }
.bundle-lines small { grid-column:2; font-size:14px; }
.bundle-lines strong { font-size:23px; }
.industry-heading { margin-bottom:36px; gap:20px 64px; }
.industry-heading h2 { max-width:690px; }
.industry-heading>p:last-child { font-size:17px; color:#c8d0dc; }
.industry-tile { min-height:360px; padding:28px; background:#283448; }
.industry-tile>span { left:28px; font-size:12px; letter-spacing:0; color:var(--mint); }
.industry-tile h3 { font-size:28px; line-height:1.14; }
.industry-tile p { font-size:15px; }
.industry-tile b { font-size:13px; color:var(--mint); }
.industry-tile:after { background:linear-gradient(180deg,#171a2072,#171a2015 25%,#171a20e8 85%); }
.confidence-section { border-block:1px solid #3e4758; }
.confidence-section h2 { max-width:850px; }
.confidence-grid { margin-top:36px; }
.confidence-grid article { padding:30px 28px 0 0; }
.confidence-grid h3 { font-size:26px; margin:20px 0 14px; }
.confidence-grid article span { color:#9ec7ff; font-size:12px; letter-spacing:0; }
.confidence-grid p { font-size:16px; color:#c8d0dc; }
.faq-grid { gap:65px; }
.faq-grid p { font-size:17px; color:#c8d0dc; }
.faq-rows summary { font-size:17px; padding:23px 0; line-height:1.5; }
.faq-grid>div:first-child>a,.faq-rows summary span { color:var(--mint); }
.closing { background:#263651; border-block:1px solid #406498; }
.closing h2 { max-width:850px; }
.footer { background:#101319; }
.footer p,.footer a,.footer .footnote { color:#bac7dc; }
.home-hero:after,.page-hero:after,.simple-hero:after,.planner-hero:after,.story-visual:after,.industry-section:before,.service-context:before { display:none; }

/* Service chapters share a pinned image while the words move through it. */
.story-intro { min-height:0; padding:64px 0 44px; text-align:left; align-items:flex-start; }
.scroll-story .story-intro:before { display:none; }
.story-intro h2 { font-size:56px; line-height:1.1; margin:0 0 20px; max-width:950px; }
.story-intro>p:not(.eyebrow) { margin:0; font-size:17px; color:#c1cee0; max-width:650px; }
.story-cue { display:none; }
.story-layout { background:#171a20; isolation:isolate; }
.story-visual { height:88svh; min-height:0; }
.story-steps { margin-top:-88svh; }
.story-step,.inner-story .story-step,.inner-story.contact .story-step { min-height:78svh; padding:70px max(26px,calc((100% - 1240px)/2)); align-items:center; }
.story-step:last-child { min-height:88svh; }
.story-panel,.story-step:nth-child(even) .story-panel { width:min(590px,100%); background:none; border:0; border-image:none; box-shadow:none; backdrop-filter:none; padding:0; animation:none; }
.story-step.is-active .story-panel { box-shadow:none; }
.story-panel h3 { font-size:76px; line-height:1.05; margin:20px 0; }
.story-panel .story-lead { font-size:26px; line-height:1.3; }
.story-panel p:not(.story-lead) { font-size:17px; line-height:1.7; color:#e1e9f7; }
.story-panel a { color:var(--mint); }
.story-image { transform:scale(1.06); transition:opacity .75s,transform 1.7s; }
.story-image.is-active { transform:scale(1); }
.story-visual-shade,.inner-story .story-visual-shade { background:linear-gradient(90deg,#0b1220e6,#0b122080 55%,#0b122099); }
.story-image-counter { font-size:20px; color:var(--mint); }
.story-image-caption { font-size:12px; letter-spacing:0; }
.story-progress span { background:var(--mint); }
.motion-enabled .story-panel { opacity:var(--chapter-opacity,1); transform:translateY(var(--chapter-y,0px)); transition:opacity .15s linear; }
.motion-enabled .story-step.is-active .story-panel h3 { animation:none; }

/* Keep Leaflet outside all reveal transforms so tiles remain aligned. */
.map-teaser { min-height:0; background:#1c2534; border-block:1px solid #3c5273; }
.map-teaser:before { display:none; }
.map-teaser-heading { text-align:left; align-items:flex-start; max-width:1240px; margin-bottom:32px; }
.map-teaser-heading h2 { font-size:52px; line-height:1.12; margin:0 0 20px; }
.map-teaser-heading h2 br { display:none; }
.map-teaser-heading>p:not(.eyebrow) { font-size:17px; color:#c4d1e5; max-width:780px; }
.map-teaser-grid { width:min(1240px,calc(100% - 52px)); display:grid; grid-template-columns:minmax(0,1.55fr) minmax(310px,1fr); grid-template-areas:'controls choices' 'map choices' 'cities choices'; gap:0 28px; align-items:start; }
.map-stage-controls { grid-area:controls; display:flex; background:none; border:0; padding:0 0 18px; gap:14px; align-items:end; }
.map-stage-label { color:#c4d1e5; font-size:12px; letter-spacing:0; }
.map-stage-controls .region-tabs { gap:6px; }
.map-stage-controls .region-tabs button { min-width:0; padding:0 16px; background:#263855; color:#e7f1ff; border-color:#516b92; }
.map-stage-controls .region-tabs button.selected { background:var(--mint); color:#10223f; border-color:var(--mint); }
.map-overview-button { padding:0 12px; margin:0; width:auto; color:#e7f1ff; border-color:#516b92; font-size:12px; white-space:nowrap; }
.map-teaser .map-window { grid-area:map; border:1px solid #516b92; box-shadow:none; min-width:0; isolation:isolate; }
.map-teaser .map-window .interactive-map { height:420px; min-height:420px; width:100%; background:#283448; }
.map-teaser .map-window-top { background:#263855; padding:12px 16px; color:#d7e5ff; font-size:12px; letter-spacing:0; }
.map-teaser .map-window-top>span:last-child,.map-teaser .map-window-bottom>span:last-child,.map-teaser .pulse-dot { display:none; }
.map-teaser .map-window-bottom { background:#263855; padding:12px 16px; color:#d7e5ff; font-size:12px; }
.map-teaser .map-window,.motion-ready .home-page .map-teaser .map-window.will-reveal { opacity:1; transform:none; clip-path:none; transition:none; }
.map-teaser .city-map-rail { grid-area:cities; background:none; border:0; padding:20px 0 0; }
.map-teaser .city-map-rail>h3,.map-teaser .city-map-rail>p,.map-teaser .city-map-rail>.map-step-label { display:none; }
.map-teaser .featured-cities { display:flex; flex-wrap:wrap; gap:8px; }
.map-teaser .featured-cities button { min-height:40px; padding:8px 12px; font-size:13px; border:1px solid #506c95; background:transparent; gap:8px; border-radius:3px; }
.map-teaser .featured-cities small { font-size:12px; }
.map-teaser .featured-cities button:hover,.map-teaser .featured-cities button.selected { color:#10223f; background:var(--mint); transform:none; }
.map-teaser .map-choices { grid-area:choices; background:transparent; border:0; border-left:1px solid #3f567e; color:#f1f6ff; padding:0 0 0 28px; z-index:5; }
.map-teaser .map-choices h3 { font-size:26px; margin:12px 0 16px; }
.map-step-label { font-size:12px; color:var(--mint); letter-spacing:0; }
.map-teaser .map-choices .city-search label { color:#c4d3eb; font-size:13px; }
.map-teaser .city-search input { background:#223654; border-color:#5275a9; color:#f4faff; border-radius:3px; }
.map-teaser .city-search input::placeholder { color:#b5c8e5; font-size:14px; }
.map-teaser .coverage-feedback { color:#c2d1ed; min-height:38px; font-size:13px; }
.map-teaser .coverage-feedback.inside { color:var(--mint); }
.map-teaser .city-service-summary { padding:16px 0; margin:12px 0 22px; border:0; border-block:1px solid #3f567e; background:none; }
.map-teaser .city-service-summary span { color:#aac4ed; font-size:12px; letter-spacing:0; }
.map-teaser .city-service-summary strong { color:#f0f8ff; font-size:20px; }
.map-teaser .city-service-summary p { color:#c4d1e5; font-size:14px; }
.map-teaser .service-toggles { gap:8px; }
.map-teaser .service-toggles button { background:#263651; border:1px solid #5274a9; color:#e7f1ff; font-size:14px; }
.map-teaser .service-toggles button.selected { background:var(--mint); border-color:var(--mint); color:#10223f; }
.map-teaser .map-help { color:#c4d1e5; font-size:13px; }
.map-teaser .map-next { margin-top:20px; width:100%; }
.featured-map-label { font-size:12px; padding:4px 7px; }

/* A light sweep and traveling rails add movement without covering the content. */
.light-field { position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:1; }
.light-field:before { content:''; position:absolute; inset:-35%; background:linear-gradient(112deg,transparent 43%,#66d6ff17 48%,#ffffff12 50%,transparent 57%); transform:translateX(var(--light-travel,-15%)); }
.light-field:after { content:''; position:absolute; inset:15% 6%; border:1px solid #a2dbff22; transform:translateY(var(--line-travel,0px)); }
.motion-rail { position:relative; height:2px; background:#334568; overflow:hidden; }
.motion-rail:after { content:''; position:absolute; height:2px; width:26%; background:linear-gradient(90deg,transparent,#55d1ff,#9ec7ff,transparent); left:var(--rail-travel,0%); }
.word-mask { display:inline-block; overflow:clip; vertical-align:bottom; padding-bottom:.11em; margin-bottom:-.11em; }
.motion-word { display:inline-block; }
.motion-enabled .word-reveal .motion-word { opacity:.16; transform:translateY(100%) rotate(3deg); transition:opacity .65s,transform .8s cubic-bezier(.2,.75,.2,1); transition-delay:calc(var(--word-index,0)*35ms); }
.motion-enabled .word-reveal.in-view .motion-word { opacity:1; transform:translateY(0) rotate(0); }
.motion-enabled .home-hero h1 { animation:none; }
.motion-enabled .reveal-block { opacity:.2; transform:translateY(30px); transition:opacity .7s,transform .8s cubic-bezier(.2,.75,.2,1); }
.motion-enabled .reveal-block.in-view { opacity:1; transform:none; }
.scroll-phrase { display:flex; overflow:hidden; padding:23px 0; background:#68d5ff; color:#11233f; border-block:1px solid #91daff; }
.scroll-phrase-track { display:flex; flex:none; align-items:center; gap:35px; padding-left:26px; transform:translateX(var(--marquee-x,0px)); font:800 30px/1.3 Manrope,sans-serif; white-space:nowrap; }
.scroll-phrase-track i { font-style:normal; color:#2554a1; font-size:20px; }
.motion-control { position:fixed; z-index:950; bottom:18px; right:18px; width:42px; height:42px; display:grid; place-items:center; border:1px solid #799bd1; border-radius:50%; color:#e8f6ff; background:#18263fed; box-shadow:0 3px 14px #0003; font-size:20px; }
.motion-control:hover { background:#2859a0; }
.inner-page .page-hero,.inner-page .page-hero-grid,.inner-page .page-hero-copy,.inner-page .page-hero-image,.inner-page .simple-hero,.planner-hero { min-height:620px; }
.inner-page .page-hero h1,.inner-page .simple-hero h1,.planner-hero h1 { font-size:64px; line-height:1.1; }
.inner-page .page-hero-copy { max-width:800px; }
.section-services { background:#1b283d; color:white; }
.detail-card { background:#233a5d; border-color:var(--mint); }
.detail-card p { color:#c9d8ef; }
.inner-page .section:not(.tinted):not(.section-services) { background:#1c2534; color:white; }
.inner-page .split-copy p:not(.eyebrow) { color:#c6d6ef; }
.inner-page .simple-hero,.planner-hero { background:#1c2534; }
.inner-page .planner-area { background:#1c2534; background-image:none; }
.inner-page .page-hero-image { inset:0 calc((1240px - 100vw)/2); }
.inner-page .page-hero-image:after { background:linear-gradient(90deg,#171a20e8,#171a2088 60%,#171a2022); }
.inner-page .planner-hero { padding:70px 0; min-height:420px; }
@media(max-width:1300px) { .inner-page .page-hero-image { inset:0 -26px; } }
@media(max-width:1000px) {
 .map-teaser-grid { grid-template-columns:minmax(0,1fr) minmax(290px,.85fr); gap:0 20px; }
 .map-stage-controls { flex-wrap:wrap; }
 .map-teaser .map-choices { padding-left:20px; }
 .industry-tile { min-height:340px; }
 .story-panel h3 { font-size:64px; }
}
@media(max-width:760px) {
 .section,.industry-section,.confidence-section,.faq-section,.map-teaser,.closing,.service-manifesto,.service-context,.home-page .intro { padding:48px 0; }
 .intro-layout,.bundle-layout,.faq-grid { gap:28px; }
 .intro-layout h2,.bundle-teaser h2,.home-page .split-copy h2,.confidence-section h2,.industry-heading h2,.faq-grid h2,.closing h2,.service-context h2,.service-manifesto h2 { font-size:34px; }
 .story-intro { padding:48px 0 32px; }
 .story-intro h2,.map-teaser-heading h2 { font-size:38px; }
 .story-visual { height:88svh; min-height:0; }
 .story-steps { margin-top:-88svh; }
 .story-step,.inner-story .story-step,.inner-story.contact .story-step { min-height:82svh; padding:55px 24px; align-items:center; }
 .story-panel h3 { font-size:52px; }
 .story-panel .story-lead { font-size:23px; }
 .story-panel p:not(.story-lead) { font-size:16px; }
 .story-visual-shade,.inner-story .story-visual-shade { background:linear-gradient(90deg,#0b1220d9,#0b122086); }
 .home-page .split { min-height:450px; }
 .home-page .split-copy { padding:48px 0; }
 .industry-heading { gap:18px; }
 .industry-tile { padding:22px; }
 .industry-tile>span { left:22px; }
 .industry-tile h3 { font-size:25px; }
 .industry-grid { grid-template-columns:1fr 1fr; }
 .confidence-grid { margin-top:24px; }
 .confidence-grid article { padding:24px 0; }
 .map-teaser-grid { width:calc(100% - 38px); grid-template-columns:minmax(0,1fr); grid-template-areas:'controls' 'map' 'cities' 'choices'; gap:0; display:grid; }
 .map-stage-controls { display:flex; }
 .map-stage-controls .region-tabs { display:flex; }
 .map-overview-button { width:auto; }
 .map-teaser .map-window .interactive-map { height:330px; min-height:330px; }
 .map-teaser .city-map-rail { padding:16px 0 24px; }
 .map-teaser .map-choices { padding:24px 0 0; border:0; border-top:1px solid #405c88; }
 .map-teaser .featured-cities button { font-size:13px; min-height:40px; padding:8px 12px; }
 .scroll-phrase { padding:18px 0; }
 .scroll-phrase-track { font-size:24px; gap:24px; }
 .inner-page .page-hero h1,.inner-page .simple-hero h1,.planner-hero h1 { font-size:44px; }
 .inner-page .page-hero,.inner-page .page-hero-grid,.inner-page .page-hero-copy,.inner-page .page-hero-image,.inner-page .simple-hero { min-height:560px; }
 .inner-page .page-hero-image { inset:0 -19px; }
 .inner-page .planner-hero { min-height:350px; }
}
@media(max-width:420px) {
 .industry-grid { grid-template-columns:1fr; }
 .industry-tile { min-height:300px; }
 .map-stage-controls { gap:12px; }
 .map-stage-controls .region-tabs button { padding:0 12px; }
 .home-page .home-hero h1 { font-size:40px; }
 .story-panel h3 { font-size:46px; }
}
html.motion-paused *,html.motion-paused *:before,html.motion-paused *:after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
html.motion-paused .motion-word,html.motion-paused .reveal-block,html.motion-paused .story-panel { opacity:1 !important; transform:none !important; }
@media(prefers-reduced-motion:reduce) {
 *,*:before,*:after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
 .motion-word,.reveal-block,.story-panel { opacity:1 !important; transform:none !important; }
 .light-field { display:none; }
}
body { background:var(--canvas); }
h1,h2,h3,.eyebrow,.tiny { letter-spacing:0 !important; }
.home-page .home-hero { height:auto; min-height:0; max-height:none; background:#171a20; }
.home-page .home-hero-bg { background:linear-gradient(90deg,rgba(12,20,34,.93),rgba(12,20,34,.64) 38%,rgba(12,20,34,.08) 76%),url('/assets/team-human-symbol-20261015.fast.webp') center/cover; animation:none; transform:none; }
.home-page .home-hero-inner { min-height:680px; height:calc(100svh - 56px); max-height:1000px; padding-top:160px; padding-bottom:0; }
.home-page .home-hero h1 { font-size:76px; line-height:1.06; max-width:760px; letter-spacing:0; text-shadow:none; margin-bottom:22px; }
.home-page .home-hero h1 em { color:var(--mint); }
.home-page .home-hero p { font-size:18px; max-width:495px; }
.home-page .hero-kicker { font-size:12px; letter-spacing:0; margin-bottom:22px; }
.home-page .hero-bottom { padding:18px 0; margin-top:auto; }
.home-page .hero-actions .primary,.btn.primary { background:var(--mint); color:#102341; }
.home-page .header-cta { background:var(--mint); color:#102341; }
.home-page .brand { background:#fff; box-shadow:none; }
@media(min-width:1600px) { .home-page .home-hero h1 { font-size:88px; } }
@media(max-width:900px) { .home-page .home-hero h1 { font-size:62px; } }
@media(max-width:600px) {
 .home-page .home-hero-inner { min-height:700px; height:auto; padding-top:136px; }
 .home-page .home-hero h1 { font-size:44px; line-height:1.12; }
 .home-page .home-hero-bg { background:linear-gradient(90deg,#101824db,#10182468),url('/assets/team-human-symbol-20261015.fast.webp') 61% center/cover; }
 .home-page .hero-kicker { max-width:280px; line-height:1.6; }
 .home-page .hero-actions { margin-top:12px; }
 .home-page .hero-bottom { margin-top:30px; }
}
