/* Motion edition: luminous geometry, quiet surfaces, and generous space. */
:root{--ink:#070f14;--navy:#111e26;--lime:#dcf2bd;--text:#f0f4f6;--muted:#a2b0b9;--line:#2b3941;--paper:#070f14;--soft:#0b151b;color-scheme:dark;--hero-scroll:0}body{background:#070f14;color:var(--text)}em{font-family:inherit;font-style:normal;font-weight:inherit;letter-spacing:inherit;color:#a7bac5}p{color:var(--muted)}h1,h2,h3{font-weight:450}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid #d8f2bf;outline-offset:5px}.header{background:#070f14;border-bottom:1px solid #ffffff0c}.nav-wrap{height:86px}.header nav>a:not(.button){font-size:.875rem;color:#c3cdd3}.header nav>a[aria-current]{color:white;box-shadow:0 1px white}.brand-symbol{color:#e8f2ee}.button{background:#e8f1e9;color:#101b21;border-radius:30px;font-weight:500}.button:hover{background:#fff;transform:translateY(-2px)}.button.small{background:#e8eef0;color:#10171d}.button.dark{background:#e0ebe6;color:#111b23}.button.dark:hover{background:white}.button.outline,.button.dark-outline{color:#e0e8ed;border-color:#53616a;background:transparent}.button.outline:hover,.button.dark-outline:hover{color:white;background:#ffffff0b;border-color:#a5b7c2}.button.light{background:#e7f1e8}.text-link{color:#e3eaee;border-color:#70818b}.text-link:hover{color:#d8f2bf;border-color:#d8f2bf}.eyebrow,.section-heading .eyebrow,.page-intro .eyebrow{color:#9cadaf;letter-spacing:.12em}.cinematic-hero{position:relative;min-height:760px;height:calc(100svh - 86px);max-height:1100px;background:#070f14;isolation:isolate;overflow:hidden}.particle-stage{position:relative;overflow:hidden;background:#070f14}.particle-stage canvas{position:absolute;inset:0;display:block;width:100%;height:100%;opacity:0;transition:opacity .18s}.particle-stage.canvas-ready canvas{opacity:1}.hero-particles{position:absolute;inset:0;cursor:grab;touch-action:pan-y;outline-offset:-5px}.hero-particles.is-dragging{cursor:grabbing}.hero-overline{position:absolute;top:28px;left:0;right:0;display:flex;justify-content:space-between;color:#91a5b0;font-size:.75rem;letter-spacing:.14em;pointer-events:none}.cinematic-title{position:absolute;left:3.7%;right:3.7%;top:40%;margin:0;display:flex;justify-content:space-between;font-size:clamp(2.5rem,4.7vw,5.5rem);letter-spacing:-.05em;font-weight:450;pointer-events:none;transform:translateY(calc(var(--hero-scroll) * -75px));opacity:calc(1 - var(--hero-scroll) * .8)}.cinematic-title>span:last-child{color:#eef4ee}.cinematic-bottom{position:absolute;bottom:90px;left:0;right:0;display:flex;align-items:flex-end;justify-content:space-between;gap:50px;pointer-events:none}.cinematic-bottom>p{font-size:.97rem;line-height:1.7;color:#a6b6c0;margin:0;max-width:420px}.scroll-cue{position:absolute;bottom:15px;left:50%;transform:translateX(-50%);display:flex;align-items:center;flex-direction:column;gap:14px;color:#b2c0c9;font-size:.75rem}.scroll-line{height:23px;width:1px;background:#687d88;transform-origin:top;animation:scroll-indicator 2.8s ease-in-out infinite}.motion-intro{padding:118px 0;display:grid;grid-template-columns:1.3fr 1fr;gap:100px;align-items:end;border-top:1px solid #293840}.motion-intro .eyebrow{font-size:.75rem;color:#a0b1bc}.motion-intro h2{font-size:clamp(2.4rem,4.2vw,4.15rem);line-height:1.13}.motion-intro h2 span{color:#91a5b1}.motion-intro>div>p:not(.eyebrow){font-size:1.13rem;margin:0 0 28px;max-width:460px}.expertise-strip{background:transparent;border-top:1px solid #25333b;border-bottom:1px solid #25333b}.expertise-strip span{color:#859ba8}.expertise-strip b{color:#b3c2cb;font-weight:450}.section{padding-top:120px;padding-bottom:120px}.section-heading>p{color:#9bb0bc}.service-grid{border:0;border-radius:0;gap:25px}.service-card{background:transparent;border:0;border-top:1px solid #3b4e58!important;padding:32px 8px 0;min-height:330px;position:relative}.service-card+.service-card{border-left:0}.service-card:hover{background:transparent}.service-card:before{content:'';height:1px;position:absolute;left:0;right:0;top:-1px;background:#d4e9da;transform:scaleX(0);transform-origin:left;transition:transform .5s}.service-card:hover:before{transform:scaleX(1)}.service-top>.icon{color:#d7e7df;stroke-width:1.1}.service-top>span{color:#889eaa}.service-card h3{color:#e9eff2}.service-card p{color:#9eafb9}.service-bottom{color:#829aa8}.service-bottom>span{color:#cbded5}.projects-section{background:#0b151b;border-top:1px solid #1c2c35;border-bottom:1px solid #1c2c35}.project-visual,.project-grid .project-card:nth-child(n) .project-visual{position:relative;border:1px solid #243a46;background:#070f14;padding:0;border-radius:2px;aspect-ratio:1.48}.project-visual:hover{box-shadow:0 18px 50px #0004}.card-particles{width:100%;height:100%;transition:transform 1s ease}.project-visual:hover .card-particles{transform:scale(1.045)}.motion-card-label{position:absolute;bottom:21px;left:23px;color:#8ba3b2;font-size:.75rem;letter-spacing:.12em;pointer-events:none}.project-card-copy .eyebrow{color:#97aca7}.project-card h3 a:hover{color:#d7efbf}.project-index{border-color:#32434d}.project-index a{border-color:#32434d}.project-index a>span{color:#91a5b2}.project-index a:hover strong{color:#d8f2bf}.process-list>li>span{color:#8da1ae}.cta{padding:115px 0;background:#0c1921;position:relative;border-top:1px solid #293c47;overflow:hidden}.cta:before{content:'';position:absolute;inset:-60% -20%;background:radial-gradient(ellipse at 30% 30%,#34544836,transparent 55%);animation:ambient-drift 16s ease-in-out infinite alternate;pointer-events:none}.cta-inner{position:relative}.cta .eyebrow{color:#9fb3c0}.cta h2{color:#eef4f7}.cta p{color:#a8bbc6}.cta .button{background:#e1eee3;color:#0e1b23}.cta .button:hover{background:#fff}.footer{background:#060c10}.footer-bottom{border-color:#25313a}.page-intro{padding-top:100px}.page-intro h1,.project-title-row h1{color:#f1f5f7}.page-intro .lead{color:#a1b3bd}.services-page .service-grid{gap:35px}.services-page .service-card{border:0;padding:36px 10px}.services-page .service-card:hover{background:transparent}.scope-band{border-color:#32434d}.service-hero{background:#070f14;padding-bottom:70px;overflow:hidden}.service-hero-grid{grid-template-columns:1.3fr 1fr;gap:40px}.service-hero .eyebrow{color:#bad3c2}.service-hero .lead{color:#a5b9c5}.service-hero h1{font-size:clamp(3rem,4.65vw,4.6rem)}.service-hero-motion{position:relative;min-width:0;align-self:stretch;min-height:430px}.service-particles{position:absolute;inset:-40px -55px 0}.service-hero-motion>p{position:absolute;bottom:-6px;left:0;right:0;text-align:center;color:#90aab7;font-size:.75rem;pointer-events:none}.large-copy{color:#c0ccd4}.check-list li{color:#b7c6d0;border-color:#30414d}.check-list li:before{color:#cbdfb7}.soft-section{background:#0d1820;border-top:1px solid #213440;border-bottom:1px solid #213440}.fit-grid>div{border-color:#3b5360}.fit-grid span,.number-list li>span{color:#8da7b5}.number-list li{color:#c7d6de;border-color:#304650}.related .project-visual{aspect-ratio:1.1;padding:0}.back-link{color:#96abb8;border-color:#657a85}.project-title-row .eyebrow{color:#9cb6c3}.giant-number{color:#425c6d;font-family:'DM Sans',Arial,sans-serif;font-weight:400;font-size:6rem}.tags span{background:#14232d;color:#b7cad6;border:1px solid #2a414f;border-radius:30px}.video-placeholder{background:#c9cdd0;border-color:#b7c1c5;color:#46535c}.video-placeholder h2{color:#46535c}.video-placeholder p{color:#586873}.project-meta{border-color:#344954}.project-meta>div{border-color:#344954}.project-meta span{color:#8ba4b3}.project-meta p{color:#bccdd6}.project-story .eyebrow,.project-story article>span{color:#8aa4b3}.flow-section>.eyebrow{color:#8fa8b6}.workflow-visual{background:#0d1a23;border:1px solid #284452;border-radius:3px}.flow-nodes li{background:#142937;color:#c7dbe7;border-color:#325063}.flow-nodes li:last-child{background:#21382f;color:#d9e7d6;border-color:#53744d}.flow-nodes li:last-child .node-num{color:#b6cbaa}.flow-nodes li:not(:last-child):after{background:#698777}.workflow-running .flow-nodes li{animation:workflow-pulse 7s ease-in-out infinite}.workflow-running .flow-nodes li:nth-child(2){animation-delay:1.1s}.workflow-running .flow-nodes li:nth-child(3){animation-delay:2.2s}.workflow-running .flow-nodes li:nth-child(4){animation-delay:3.3s}.diagram-top,.diagram-bottom{border-color:#2c4655}.diagram-bottom .icon{color:#c3dab1}.project-next{border-color:#334d5b}.about-image.motion-about{height:500px;background:#070f14;border:1px solid #253e4d}.about-image>.particle-stage{position:absolute;inset:0;width:100%;height:100%;display:block}.about-image>.about-caption{position:absolute;bottom:25px;left:30px;right:30px;display:flex;justify-content:space-between;top:auto;width:auto;height:auto;color:#a2bccd}.principle-grid article{border-color:#3c5665}.principle-grid span,.audience-number{color:#8ba5b6}.audience-grid article,.solution-list article{border-color:#344d5b}.solution-list article>span{color:#8fa8b8}.contact-panel{background:#0f1e28;border-color:#334d5c}.panel-label{color:#93aaba}.contact-panel li{border-color:#2c4353;color:#b9ccd7}.contact-panel .contact-note{color:#8ca8b9}.contact-explore{border-color:#304753}.reveal-pending{opacity:0;transform:translateY(25px);transition:opacity .8s ease var(--reveal-delay,0ms),transform .85s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms)}.reveal-pending.is-revealed{opacity:1;transform:none}.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important}.motion-paused .reveal-pending{opacity:1;transform:none}.motion-paused .cinematic-title{transform:none;opacity:1}.motion-paused .card-particles{transition:none}.motion-paused .project-visual:hover .card-particles{transform:none}@keyframes scroll-indicator{0%,100%{transform:scaleY(.55);opacity:.4}50%{transform:scaleY(1);opacity:1}}@keyframes ambient-drift{from{transform:translate(-7%,-4%)}to{transform:translate(12%,8%)}}@keyframes workflow-pulse{0%,18%,100%{border-color:#325063;box-shadow:0 0 0 transparent}8%{border-color:#b0cba9;box-shadow:0 0 22px #a1d3b018}}
@media(min-width:1600px){.cinematic-title{left:5%;right:5%;font-size:5.8rem}.hero-overline{top:38px}.cinematic-bottom{bottom:95px}.cinematic-hero{min-height:900px}}
@media(max-width:1150px){.cinematic-title{font-size:3.4rem}.cinematic-hero{min-height:700px}.cinematic-bottom{gap:35px}.motion-intro{gap:55px;padding:100px 0}.service-grid{gap:22px}.service-card h3{font-size:1.4rem}.service-hero-motion{min-height:400px}.service-particles{inset:-15px -30px 10px}.section{padding-top:95px;padding-bottom:95px}}
@media(max-width:900px){.cinematic-title{font-size:2.8rem;left:4%;right:4%}.cinematic-bottom{bottom:85px;gap:25px}.cinematic-bottom>p{font-size:.875rem;max-width:310px}.hero-overline{font-size:.75rem}.service-grid{gap:30px}.service-card{min-height:290px}.service-card h3{font-size:1.6rem}.motion-intro{grid-template-columns:1fr 1fr;gap:45px}.motion-intro h2{font-size:2.7rem}.motion-intro>div>p:not(.eyebrow){font-size:1rem}.service-hero-grid{grid-template-columns:1.2fr 1fr;gap:20px}.service-hero h1{font-size:3rem}.service-particles{inset:0 -25px 0}.service-hero-motion{min-height:390px}.motion-card-label{font-size:.75rem}.related .project-visual{aspect-ratio:1.05}}
@media(max-width:720px){.nav-wrap{height:80px}.header nav{background:#0a151d}.header nav>a:not(.button){font-size:1rem}.cinematic-hero{height:calc(100svh - 80px);min-height:700px;max-height:900px}.hero-overline{top:24px;font-size:.75rem;letter-spacing:.1em;justify-content:center}.hero-overline>span:last-child{display:none}.cinematic-title{top:80px;left:20px;right:20px;justify-content:center;gap:.22em;font-size:clamp(2.3rem,8.4vw,3.9rem);white-space:nowrap}.hero-particles{top:92px;bottom:160px;left:-5%;right:-5%}.cinematic-bottom{bottom:63px;align-items:center;flex-direction:column;gap:22px}.cinematic-bottom>p{text-align:center;max-width:none;font-size:.875rem;line-height:1.6}.scroll-cue{bottom:4px;font-size:.75rem;gap:8px}.scroll-line{height:16px}.motion-intro{padding:66px 0;grid-template-columns:1fr;gap:27px}.motion-intro h2{font-size:clamp(2.3rem,8.5vw,3.5rem)}.motion-intro>div>p:not(.eyebrow){font-size:1.06rem;max-width:480px;margin-bottom:25px}.motion-intro .eyebrow{font-size:.75rem}.expertise-strip .container{padding:27px 0}.section{padding-top:70px;padding-bottom:70px}.service-grid{gap:27px}.service-card{padding:25px 0 5px;min-height:0}.service-card+.service-card{border-top:1px solid #3b4e58}.service-card h3{font-size:1.7rem}.service-top{margin-bottom:24px}.service-bottom{font-size:.75rem}.project-visual,.project-grid .project-card:nth-child(n) .project-visual{aspect-ratio:1.2;padding:0}.motion-card-label{font-size:.75rem;letter-spacing:.07em;left:19px;bottom:20px}.project-card-copy{padding-top:25px}.project-card-copy .eyebrow{font-size:.75rem}.project-card h3{font-size:1.85rem}.project-index a{padding:25px 0}.cta{padding:70px 0}.cta .eyebrow{font-size:.75rem}.footer-bottom{padding-bottom:70px}.page-intro{padding-top:65px}.services-page .service-card{padding:27px 0 5px}.service-hero{padding-bottom:25px}.service-hero-grid{grid-template-columns:1fr;gap:0}.service-hero h1{font-size:3.1rem}.service-hero-motion{min-height:320px}.service-particles{inset:0 -20px 0}.service-hero-motion>p{bottom:4px;font-size:.75rem}.related{padding-top:0}.related .project-visual{aspect-ratio:1.2;padding:0}.giant-number{font-size:3.4rem}.project-title-row .eyebrow{font-size:.75rem}.project-meta>div{border-color:#2f4553}.project-story aside h2 br{display:initial}.project-story aside h2 em{display:initial}.about-image.motion-about{height:330px}.about-image>.about-caption{font-size:.75rem;letter-spacing:.05em;left:18px;right:18px;bottom:20px}.contact-panel{padding:30px 25px}.reveal-pending{transform:translateY(18px)}}
@media(max-width:380px){.cinematic-title{font-size:2.1rem;gap:.2em}.cinematic-hero{min-height:680px}.hero-particles{top:85px;bottom:175px}.cinematic-bottom>p{font-size:.82rem}.hero-overline{font-size:.75rem;letter-spacing:.06em}.project-visual,.project-grid .project-card:nth-child(n) .project-visual{aspect-ratio:1.05}.motion-card-label{font-size:.75rem;letter-spacing:.02em}.service-hero h1{font-size:2.8rem}}
@media(prefers-reduced-motion:reduce){.reveal-pending{opacity:1;transform:none}.cinematic-title{transform:none;opacity:1}.scroll-line{animation:none}.cta:before{animation:none}.project-visual:hover .card-particles{transform:none}.workflow-running .flow-nodes li{animation:none}.particle-stage canvas{transition:none}}

/* A soft blue glow highlights navigation without shifting the links. */
.header nav>a{position:relative;isolation:isolate}
.header nav>a:not(.button)::before{content:'';position:absolute;pointer-events:none;opacity:0;transition:opacity .25s ease;inset:-14px -22px;z-index:-1;border-radius:50%;background:radial-gradient(ellipse,rgba(112,183,255,.3),rgba(112,183,255,.12) 45%,rgba(112,183,255,0) 75%);filter:blur(8px)}
.header nav>a:not(.button){transition:color .22s ease,text-shadow .22s ease}
.header nav>a:focus-visible::before{opacity:1}
.header nav>a:not(.button):focus-visible{color:#f4fcff;text-shadow:0 0 16px #8bc4ff66}
@media(hover:hover) and (pointer:fine){
  .header nav>a:hover::before{opacity:1}
  .header nav>a:not(.button):hover{color:#f4fcff;text-shadow:0 0 16px #8bc4ff66}
}
@media(max-width:720px){.header nav>a:not(.button)::before{inset:0;max-width:220px}}
@media(prefers-reduced-motion:reduce){.header nav>a,.header nav>a::before{transition:none}}

/* Shared blue interaction colors for buttons and links on every page. */
:root{--interaction-blue:#8bc4ff;--interaction-glow:0 0 24px #70b7ff40;--interaction-text-glow:0 0 16px #8bc4ff66}
.button,.menu-toggle{transition:background .22s ease,color .22s ease,transform .22s ease,border-color .22s ease,box-shadow .25s ease}
.button[class]:is(:hover,:focus-visible),.cta .button:is(:hover,:focus-visible){background:#e8f3ff;color:#101b23;border-color:var(--interaction-blue);box-shadow:var(--interaction-glow)}
.button.outline:is(:hover,:focus-visible),.button.dark-outline:is(:hover,:focus-visible),.menu-toggle:is(:hover,:focus-visible){background:#70b7ff14;color:#f4fcff;border-color:var(--interaction-blue);box-shadow:var(--interaction-glow)}
.text-link,.footer-main>div a,.project-card h3 a,.project-index a strong{transition:color .22s ease,border-color .22s ease,text-shadow .22s ease}
.text-link:is(:hover,:focus-visible){color:var(--interaction-blue);border-color:var(--interaction-blue);text-shadow:var(--interaction-text-glow)}
.footer-main>div a:is(:hover,:focus-visible),.project-card h3 a:is(:hover,:focus-visible),.project-index a:is(:hover,:focus-visible) strong{color:var(--interaction-blue);text-shadow:var(--interaction-text-glow)}
.service-card:before{background:var(--interaction-blue)}
.cta:before{background:radial-gradient(ellipse at 30% 30%,#70b7ff18,transparent 55%)}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline-color:var(--interaction-blue)}
@media(prefers-reduced-motion:reduce){.button,.menu-toggle,.text-link,.footer-main>div a,.project-card h3 a,.project-index a strong{transition:none}}

/* Shared stars sit behind content, with translucent section tints. */
body.has-starfield{isolation:isolate}
.site-starfield{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.has-starfield .header{background:rgba(7,15,20,.88)}
.has-starfield .projects-section{background:rgba(11,21,27,.4)}
.has-starfield .soft-section{background:rgba(13,24,32,.4)}
.has-starfield .service-hero{background:transparent}
.has-starfield .cta{background:rgba(12,25,33,.4)}
.has-starfield .footer{background:rgba(6,12,16,.4)}

/* Workflow captions stay below the star diagrams. */
.particle-legend{position:absolute;left:24px;right:24px;bottom:28px;display:flex;justify-content:space-between;gap:20px;pointer-events:none;color:#94acba;font-size:.75rem;letter-spacing:.09em}.card-particles .particle-legend{bottom:56px}.about-particles .particle-legend{bottom:72px;left:30px;right:30px}.service-particles .particle-legend{bottom:37px}@media(max-width:720px){.particle-legend{left:18px;right:18px;gap:12px;font-size:.75rem;letter-spacing:.025em}.service-particles .particle-legend{bottom:33px}.card-particles .particle-legend{bottom:56px}}

.hero-scene-caption{position:absolute;left:20px;right:20px;top:7%;text-align:center;color:#b4c6d1;font-size:1.1rem;letter-spacing:.08em;pointer-events:none;isolation:isolate}
.hero-scene-caption::before{content:'';position:absolute;left:50%;top:50%;width:520px;max-width:100%;height:72px;transform:translate(-50%,-50%);z-index:-1;border-radius:50%;background:radial-gradient(ellipse,rgba(112,183,255,.14),rgba(112,183,255,.05) 45%,rgba(112,183,255,0) 75%);filter:blur(10px)}
@media(max-width:720px){.hero-scene-caption{top:auto;bottom:24px;font-size:1rem}}

/* Keep the longer homepage headline clear of the central document. */
.cinematic-title{align-items:center;font-size:clamp(2rem,4.3vw,5rem);line-height:1.08;letter-spacing:-.045em}
.cinematic-title>span{flex:0 0 auto;white-space:nowrap}
.cinematic-title>span:last-child{text-align:right}
@media(max-width:720px){
  .cinematic-title{top:48px;flex-direction:column;gap:.14em;font-size:clamp(1.75rem,7.8vw,3rem);line-height:1.12;text-align:center}
  .cinematic-title>span:last-child{text-align:center}
  .hero-title-break{display:none}
}
.about-image.about-photo-placeholder{background:#d8dcde;border:1px solid #c5cbce}

/* A dedicated, responsive stage for the many-to-one document workflow. */
.project-particles{height:480px;border:1px solid #284452;border-radius:3px;margin-bottom:24px}
@media(max-width:720px){.project-particles{height:340px}}

@media(max-width:720px){.video-placeholder{width:100%}}

/* Reference hero: one uninterrupted starfield with a wide, full-size composition. */
.cinematic-hero{height:calc(100svh - 86px);min-height:780px;max-height:1100px}
.hero-particles{inset:0}
.cinematic-title{top:9.5%;left:24px;right:24px;display:flex;flex-direction:column;align-items:center;gap:0;font-size:clamp(3.2rem,6vw,6rem);font-weight:400;line-height:.99;letter-spacing:-.045em;text-align:center}
.cinematic-title>span:last-child{text-align:center;color:inherit}
.hero-scene-caption{top:32.4%;bottom:auto;left:20px;right:20px;font-size:1.05rem;font-weight:400;line-height:1.5;letter-spacing:.30em;color:#a4bad2}
.hero-scene-caption::before{display:none}
.scroll-cue{bottom:26px;gap:17px;letter-spacing:.22em;font-size:.8rem;color:#f2f3f2}
.scroll-line{height:42px;background:#71818b}
@media(min-width:721px) and (max-width:1100px){.cinematic-title{font-size:6.6vw}.hero-scene-caption{font-size:.92rem}.cinematic-hero{min-height:720px}}
@media(max-width:720px){
 .cinematic-hero{height:calc(100svh - 70px);min-height:680px;max-height:850px}
 .cinematic-title{top:48px;left:14px;right:14px;gap:.06em;font-size:clamp(1.9rem,8.6vw,3.8rem);line-height:1.04}
 .hero-particles{inset:0}
 .hero-scene-caption{top:168px;bottom:auto;font-size:.76rem;letter-spacing:.21em}
 .scroll-cue{bottom:25px;gap:13px;font-size:.72rem}.scroll-line{height:30px}
}
@media(max-width:380px){.cinematic-title{font-size:8.6vw}.hero-particles{inset:0}}

/* Animated graphics on the services overview. */
.services-page .service-visual{position:relative;width:100%;aspect-ratio:1.48;flex:none;overflow:hidden;border:1px solid #243a46;border-radius:2px;background:#070f14;margin-top:auto;margin-bottom:22px}
.services-page .service-visual+.service-bottom{margin-top:0}
@media(prefers-reduced-motion:no-preference){.services-page .service-card:hover .service-visual .card-particles{transform:scale(1.045)}}

/* Responsive SEO heading */
.cinematic-title{display:block;white-space:normal;text-wrap:balance}
@media(max-width:720px){.cinematic-title{font-size:clamp(1.8rem,8vw,2.6rem);line-height:1.08}}

/* More room between the headline and rotating service caption. */
.cinematic-title{top:calc(9.5% - 40px)}
@media(max-width:720px){.cinematic-title{top:20px}}

/* Project gallery: centered introduction and consistent card rhythm. */
.project-gallery-page .page-intro{padding:80px 0 48px;text-align:center}
.project-gallery-page .page-intro h1{max-width:1000px;margin:0 auto 24px;font-size:clamp(2.6rem,5.5vw,5.1rem);line-height:1.08;text-wrap:balance}
.project-gallery-page .page-intro .lead{max-width:650px;margin:0 auto;font-size:1.08rem;line-height:1.7;text-wrap:balance}
.project-gallery-page .all-projects{padding-top:16px;padding-bottom:80px;gap:64px 32px;align-items:stretch}
.project-gallery-page .project-card{display:flex;flex-direction:column;text-align:center}
.project-gallery-page .project-card-copy{display:flex;flex-direction:column;align-items:center;flex:1;padding:28px 20px 0}
.project-gallery-page .project-card-copy .eyebrow{margin:0 0 12px}
.project-gallery-page .project-card-copy h2{font-size:clamp(1.7rem,2.3vw,2.1rem);line-height:1.2;margin:0 0 16px;text-wrap:balance}
.project-gallery-page .project-card-copy>p:not(.eyebrow){max-width:460px;margin:0 auto 24px;line-height:1.7}
.project-gallery-page .project-card-copy>.text-link{margin-top:auto}
.project-gallery-page .project-visual{aspect-ratio:1.5!important}
.project-gallery-page .cta-inner{text-align:center;flex-direction:column;align-items:center;gap:30px}
.project-gallery-page .cta-inner h2{margin-left:auto;margin-right:auto}
@media(max-width:720px){.project-gallery-page .page-intro{padding:48px 0 32px}.project-gallery-page .all-projects{gap:48px;padding-top:8px;padding-bottom:56px}.project-gallery-page .project-card-copy{padding:22px 8px 0}.project-gallery-page .page-intro .lead{font-size:1rem}}

.project-gallery-page .motion-card-label{display:none}
.project-gallery-page .project-card.reveal-pending{opacity:1;transform:none}

/* Who we help: centered typography and even audience sections. */
body:has(.audience-grid) .page-intro{padding:76px 0 48px;text-align:center}
body:has(.audience-grid) .page-intro .eyebrow{margin:0 0 18px}
body:has(.audience-grid) .page-intro h1{max-width:1000px;margin:0 auto 24px;font-size:clamp(2.6rem,5.4vw,5rem);line-height:1.08;text-wrap:balance}
body:has(.audience-grid) .page-intro .lead{max-width:690px;margin:0 auto;line-height:1.75;font-size:1.08rem;text-wrap:balance}
body:has(.audience-grid) .audience-grid{padding-top:24px;padding-bottom:80px;gap:48px 48px}
body:has(.audience-grid) .audience-grid article{display:flex;flex-direction:column;align-items:center;text-align:center;padding:30px 18px 0}
body:has(.audience-grid) .audience-grid h2{font-size:clamp(1.7rem,2.3vw,2.1rem);line-height:1.2;margin:0 0 16px;text-wrap:balance}
body:has(.audience-grid) .audience-grid p{max-width:440px;line-height:1.75;margin:0 auto 24px;text-wrap:balance}
body:has(.audience-grid) .audience-grid .text-link{margin-top:auto}
body:has(.audience-grid) .audience-grid .reveal-pending{opacity:1;transform:none}
body:has(.audience-grid) .cta-inner{text-align:center;flex-direction:column;align-items:center;gap:30px}
body:has(.audience-grid) .cta-inner h2{margin-left:auto;margin-right:auto}
@media(max-width:720px){body:has(.audience-grid) .page-intro{padding:48px 0 32px}body:has(.audience-grid) .page-intro .lead{font-size:1rem}body:has(.audience-grid) .audience-grid{padding-top:12px;padding-bottom:56px;gap:36px}body:has(.audience-grid) .audience-grid article{padding:26px 8px 0}}

/* About introduction: balanced, centered heading and supporting copy. */
body:has(.about-image) .page-intro{padding:76px 0 40px;text-align:center}
body:has(.about-image) .page-intro .eyebrow{margin:0 0 18px}
body:has(.about-image) .page-intro h1{max-width:1100px;margin:0 auto 24px;font-size:clamp(2.6rem,5.2vw,4.8rem);line-height:1.1;text-wrap:balance}
body:has(.about-image) .page-intro .lead{max-width:790px;margin:0 auto;font-size:1.08rem;line-height:1.8;text-wrap:balance}
body:has(.about-image) .about-image{margin-top:16px}
@media(max-width:720px){body:has(.about-image) .page-intro{padding:48px 0 28px}body:has(.about-image) .page-intro .lead{font-size:1rem}body:has(.about-image) .about-image{margin-top:8px}}

/* One centered column for the project gallery consultation section. */
.project-gallery-page .cta{padding:80px 0}
.project-gallery-page .cta-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:28px}
.project-gallery-page .cta-inner>div{width:100%;max-width:760px;margin:0 auto}
.project-gallery-page .cta-inner h2{margin:0 auto;max-width:700px;line-height:1.1;text-wrap:balance}
.project-gallery-page .cta-inner p{max-width:640px;margin:22px auto 0;line-height:1.7;text-wrap:balance}
.project-gallery-page .cta-inner>.button{align-self:center;margin:0;text-align:center}
@media(max-width:720px){.project-gallery-page .cta{padding:56px 0}.project-gallery-page .cta-inner{gap:24px}.project-gallery-page .cta-inner h2{font-size:clamp(2.4rem,9vw,3.15rem)}}
