/* The movement follows the project: arrival, protection, coordination, reveal. */
.section-space{padding-top:84px;padding-bottom:84px}
.promise{padding-top:90px;padding-bottom:80px;gap:8%}
.promise-copy{padding-top:48px}
.section-heading{margin-bottom:44px}
.univers-section{padding-bottom:90px}
.universe-grid{row-gap:42px}
.universe-card:nth-child(3n+2){padding-top:30px}
.journey{padding-bottom:65px}
.journey-heading{margin-bottom:38px;padding-top:30px}
.journey-body{gap:7%;grid-template-columns:1.1fr .9fr}
.journey-step{min-height:53vh;padding:36px 0}
.journey-frames{height:min(67vh,660px)}
.journey-step h3{font-size:clamp(2.8rem,5.3vw,5.8rem)}
.journey-step p{max-width:440px}
.approach-photo{height:700px}
.contact-section{padding-top:88px;padding-bottom:88px}
.page-hero{padding-bottom:60px;gap:7%}
.page-hero-image{height:460px}
.service-intro{gap:7%}
.universe-detail{gap:7%}
.universe-detail-image{height:540px}
.related-section{padding-top:30px}
.footer-top{padding-bottom:45px}
.site-footer{padding-top:58px}

/* The original photograph remains the main scene; the inset reveals the gesture. */
.hero-detail{position:absolute;right:var(--gutter);bottom:110px;width:clamp(180px,18vw,280px);z-index:2;border:1px solid rgba(238,240,244,.35);background:var(--navy);box-shadow:0 20px 65px rgba(0,0,0,.35);transform-origin:50% 80%}
.hero-detail-image{overflow:hidden;aspect-ratio:1.5}
.hero-detail-image img{width:100%;height:100%;object-fit:cover;object-position:50% 46%}
.hero-detail-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;font-size:.75rem;line-height:1.5}
.hero-detail-caption>span:first-child{width:20px;height:2px;background:var(--red-light);flex-shrink:0}
.hero-detail:before{content:'';position:absolute;top:-7px;left:-7px;width:22px;height:22px;border-top:2px solid var(--red-light);border-left:2px solid var(--red-light);pointer-events:none}
.activity-ribbon{position:relative;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--navy-soft);padding:25px 0;isolation:isolate}
.activity-track{width:max-content;display:flex;align-items:center;gap:clamp(26px,4vw,65px);padding:0 var(--gutter);transform:translateX(var(--rail-offset,0px));will-change:auto}
.activity-track>span{display:flex;align-items:center;gap:20px;white-space:nowrap;font-family:var(--serif);font-size:clamp(1.6rem,2.8vw,2.9rem);line-height:1.2}
.activity-track>span:before{content:'';height:4px;width:4px;background:var(--red-light);transform:rotate(45deg)}
.activity-ribbon:before,.activity-ribbon:after{content:'';position:absolute;inset:0 auto 0 0;width:var(--gutter);z-index:1;pointer-events:none;background:linear-gradient(90deg,var(--navy-soft),transparent)}
.activity-ribbon:after{left:auto;right:0;transform:rotate(180deg)}
.reading-progress{position:fixed;top:0;left:0;height:3px;width:100%;background:var(--red-light);transform:scaleX(var(--reading,0));transform-origin:left;z-index:80;pointer-events:none}

/* Photographs make the service list a sequence of concrete gestures. */
.service-row{grid-template-columns:36px 92px minmax(0,1fr) auto;gap:24px;padding:24px 0;position:relative;isolation:isolate}
.service-thumb{display:block;width:92px;height:76px;overflow:hidden;background:var(--navy-light)}
.service-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .65s,filter .65s;filter:saturate(.55)}
.service-row:before{content:'';position:absolute;left:0;bottom:-1px;right:0;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .7s;z-index:1}
.service-row:hover:before,.service-row:focus-visible:before{transform:scaleX(1)}
.service-row:hover .service-thumb img,.service-row:focus-visible .service-thumb img{transform:scale(1.12);filter:saturate(1)}
.service-row p{max-width:680px}
.service-number{transition:transform .4s}
.service-row:hover .service-number{transform:translateY(-4px)}

/* Spatial effects are progressive enhancements. Reading never depends on them. */
.depth-scene{transform-style:preserve-3d;isolation:isolate}
.depth-scene img{backface-visibility:hidden}
.scene-corner{position:absolute;z-index:3;width:35px;height:35px;top:15px;left:15px;border-top:1px solid rgba(238,240,244,.8);border-left:1px solid rgba(238,240,244,.8);pointer-events:none}
.scene-corner:after{content:'';position:absolute;width:20px;height:2px;background:var(--red-light);top:-1px;left:-1px}
.scene-caption{position:absolute;left:24px;right:24px;bottom:22px;z-index:3;display:flex;justify-content:space-between;gap:20px;align-items:center;color:#fff;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;text-shadow:0 1px 10px #000}
.scene-caption:before{content:'';width:24px;height:2px;background:var(--red-light);flex-shrink:0}
.page-hero-image:after{background:linear-gradient(0deg,rgba(0,3,34,.65),transparent 45%)}
.journey-frames:after{content:'';position:absolute;inset:13px;border:1px solid rgba(238,240,244,.32);z-index:4;pointer-events:none}
.journey-frame.is-active img{transform:scale(1.08) translateY(var(--journey-drift,0px))}
.closing-cta{overflow:hidden;isolation:isolate}
.closing-cta:before{content:'';position:absolute;width:42%;height:150%;top:-25%;left:-46%;z-index:-1;background:linear-gradient(110deg,transparent,rgba(172,18,60,.13),transparent);transform:translateX(var(--cta-drift,0px)) skewX(-18deg);pointer-events:none}
.closing-cta:after{content:'';position:absolute;left:var(--gutter);right:var(--gutter);top:0;height:1px;background:linear-gradient(90deg,transparent,var(--red-light),transparent)}

@media(prefers-reduced-motion:no-preference){
 .motion-enhanced .depth-scene{transform:perspective(1400px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .45s cubic-bezier(.2,.7,.2,1)}
 .motion-enhanced .depth-scene>img{transform:translateY(var(--scene-drift,0px)) scale(1.13);transition:transform .12s linear,filter .5s}
 .motion-enhanced .depth-scene>img:hover{filter:saturate(.95)}
 .motion-enhanced .hero-detail{transform:perspective(1100px) translateY(var(--hero-detail-y,0px)) rotateY(-8deg) rotateZ(2deg);animation:detail-arrival 1.35s cubic-bezier(.2,.7,.2,1) both}
 .motion-enhanced .motion-reveal{clip-path:inset(0 0 14% 0);opacity:.2;transform:translateY(26px);transition:clip-path 1s cubic-bezier(.2,.7,.2,1),opacity .8s,transform 1s cubic-bezier(.2,.7,.2,1)}
 .motion-enhanced .motion-reveal.in-view{clip-path:inset(0);opacity:1;transform:none}
 .motion-enhanced .service-row.in-view .service-thumb img{animation:unpack .9s cubic-bezier(.2,.7,.2,1) both}
 .motion-enhanced .journey-step h3{transform:translateX(12px);opacity:.65;transition:transform .65s,opacity .65s}
 .motion-enhanced .journey-step.step-active h3{transform:none;opacity:1}
 .motion-enhanced .journey-step .step-line{width:15%;transition:width .75s}
 .motion-enhanced .journey-step.step-active .step-line{width:100%}
 @keyframes detail-arrival{from{opacity:0;clip-path:inset(0 0 100% 0)}to{opacity:1;clip-path:inset(0)}}
 @keyframes unpack{from{clip-path:inset(0 100% 0 0);transform:scale(1.3)}to{clip-path:inset(0);transform:scale(1)}}
}
@media(max-width:1150px){.service-row{grid-template-columns:28px 76px minmax(0,1fr) auto;gap:17px}.service-thumb{width:76px;height:68px}.hero-detail{right:36px;width:190px;bottom:105px}.approach-photo{min-height:650px}.universe-detail-image{height:480px}}
@media(max-width:900px){.hero-detail{display:none}.section-space{padding-top:65px;padding-bottom:65px}.journey-body{gap:6%}.journey-step{min-height:52vh}.service-more{font-size:0;gap:0}.universe-card:nth-child(3n+2){padding-top:0}.universe-card:nth-child(even){padding-top:24px}.page-hero-image{height:390px}}
@media(max-width:650px){
 .section-space{padding-top:50px;padding-bottom:50px}.promise{padding-top:55px;padding-bottom:50px}.promise-copy{padding-top:28px}.section-heading{margin-bottom:30px}
 .hero{min-height:780px;padding-bottom:130px}.hero-bottom{bottom:78px}.hero-actions{margin-top:25px}
 .activity-ribbon{padding:21px 0}.activity-track{gap:26px}.activity-track>span{font-size:1.7rem;gap:16px}
 .journey{padding-bottom:40px}.journey-heading{margin-bottom:25px}.journey-body{grid-template-columns:1fr;gap:0}
 .journey-step{min-height:39vh;padding:28px 0 35px}.journey-step:first-child{padding-top:30px}.journey-step h3{font-size:2.7rem}.journey-step p{margin-top:18px}
 .journey-frames{height:29vh;min-height:210px;max-height:290px}.journey-frames:after{inset:8px}.journey-visual{padding-bottom:8px}.journey-nav{margin-top:9px}
 .service-row{grid-template-columns:25px minmax(0,1fr) 24px;gap:12px;padding:22px 0}.service-thumb{display:none}.service-row p{font-size:.9375rem}
 .universe-grid{gap:30px 18px}.universe-card:nth-child(even){padding-top:20px}.universe-card>p{font-size:.9375rem}
 .approach-section{gap:32px}.approach-photo{height:320px;min-height:0}.approach-copy h2{margin-bottom:22px}.commitments{margin:22px 0}.commitment{padding:19px 0}
 .contact-section{gap:32px}.contact-direct{margin-top:25px}.contact-copy h2{font-size:2.45rem}.form-row{gap:0}.field{margin-bottom:22px}
 .page-hero{padding-top:120px;padding-bottom:42px;gap:30px}.page-hero h1{font-size:2.75rem;margin:20px 0}.page-hero-image{height:300px}
 .breadcrumb+section.page-hero{padding-top:20px}.service-details h2{margin-top:20px}.detail-list{margin-top:28px}.detail-list li{padding:19px 0}
 .universe-detail{gap:28px}.universe-detail-image{height:340px}.universe-detail h2{margin:20px 0}.scene-caption{left:17px;right:17px;bottom:17px;font-size:.65rem;letter-spacing:.06em}
 .closing-cta h2{font-size:2.5rem}.closing-cta>.eyebrow{margin-bottom:20px}.closing-cta>.button{margin-top:25px}
 .contact-page-intro{padding-top:45px;padding-bottom:45px}.contact-channels{padding-top:32px;padding-bottom:32px}.footer-top{gap:30px;padding-bottom:32px}.site-footer{padding-top:45px}
 .related-section{padding-top:15px}.legal-page{padding-top:125px}
}
@media(prefers-reduced-motion:reduce){.hero-detail,.depth-scene,.depth-scene>img,.activity-track,.journey-frame.is-active img{transform:none!important}.reading-progress{display:none}.journey-step{min-height:0}.journey-visual{position:relative;top:auto}.motion-reveal{opacity:1!important;clip-path:none!important;transform:none!important}}
