/* One composed scene per desktop viewport; readable native flow elsewhere. */
html.scenes-home{scroll-padding-top:82px;scroll-snap-type:none}
.home #Main,.home #expertise,.home #team,.home #visit{scroll-margin-top:0;scroll-snap-align:none}
.home .section-dots{gap:7px;padding:13px 7px;right:16px;border:1px solid #ffffff24;background:#05271fc4}
.home .section-dots a{width:32px;height:32px;color:#fff9;font-size:12px;font-weight:500;letter-spacing:.04em;border-radius:50%;transition:color .3s,background .3s}
.home .section-dots a:before{display:none}.home .section-dots a.active{color:#092e26;background:#e3c993}.home .section-dots a:after{right:52px}
.home .hero-image{animation:scene-hero-zoom 7s cubic-bezier(.2,.6,.3,1) both}
@keyframes scene-hero-zoom{from{transform:scale(1.12)}to{transform:scale(1.035)}}
.home .service-tabs button{transition:background .35s,border-color .35s,color .35s,transform .35s}
.home .hero-copy h1{line-height:1.3}.home .hero-brand{animation-duration:.85s}
.home .team-card img{box-shadow:0 20px 45px #17352a0a}
.home .team-card .text-link{border-color:#9ea99a}
.home .all-fields{float:none;clear:both;text-align:center}
.home .expertise .service-tabs button:focus-visible{outline:2px solid #f2dca9;outline-offset:5px}
/* Restrained interaction details share the same timing curve. */
.home .hero-copy h1{animation:scene-title 1.05s cubic-bezier(.22,1,.36,1) .12s both}
@keyframes scene-title{from{opacity:0;clip-path:inset(0 0 85% 0);transform:translateY(20px)}to{opacity:1;clip-path:inset(0 0 0 0);transform:none}}
.home .hero-brand{animation-delay:0s}.home .hero-copy .hero-description{animation-delay:.28s}.home .hero-copy .hero-actions{animation-delay:.4s}
.home .section-heading h2,.home .team-preview__head h2{overflow:visible}
.home .service-tabs button{position:relative;overflow:hidden;isolation:isolate}
.home .service-tabs button:before{content:"";position:absolute;inset:0;background:#ffffff12;transform:translateY(102%);transition:transform .55s cubic-bezier(.22,1,.36,1);z-index:-1}
.home .service-tabs button:hover:before,.home .service-tabs button:focus-visible:before{transform:translateY(0)}
.home .service-tabs button .tab-order{transition:color .3s,transform .45s}.home .service-tabs button[aria-selected="true"] .tab-order{transform:translateY(-3px)}
.home .team-card img{transition:transform .8s cubic-bezier(.22,1,.36,1),box-shadow .8s}
.home .team-card__copy .text-link,.home .location-intro .text-link{transition:color .3s,border-color .3s}
.home .button{transition:background .35s,color .35s,box-shadow .35s,transform .35s}
.home .scroll-line{position:relative;overflow:hidden}.home .scroll-line:after{content:"";position:absolute;inset:0;background:#e7cf9d;animation:scene-scroll-cue 2.8s ease-in-out 3}
@keyframes scene-scroll-cue{0%{transform:translateY(-110%)}65%,100%{transform:translateY(110%)}}
.scene-travelling .home .section-dots a{transition:background .45s,color .45s}
@media(hover:hover) and (pointer:fine){.home .team-card:hover img{transform:translateY(-5px);box-shadow:0 24px 50px #17352a12}.home .button:hover{transform:translateY(-2px)}.home .text-link:hover{color:#aa8750}.home .hero .text-link:hover,.home .expertise .text-link:hover{color:#efd49a}}
@media(min-width:1100px) and (min-height:820px) and (pointer:fine){
 html.scene-sized .home #Main{height:100svh;min-height:0;overflow:clip}
 html.scene-sized .home .hero-composition{height:100svh;min-height:0;padding:125px 0 145px;gap:30px}
 html.scene-sized .home #expertise,html.scene-sized .home #team,html.scene-sized .home #visit{height:calc(100svh - 82px);min-height:0}
 html.scene-sized .home #expertise{padding:40px 0;overflow:visible}
 html.scene-sized .home .expertise-background,html.scene-sized .home .expertise:after{overflow:hidden}
 html.scene-sized .home .section-heading{margin-bottom:27px}
 html.scene-sized .home .section-heading .eyebrow{margin-bottom:12px}
 html.scene-sized .home .section-heading h2,html.scene-sized .home .team-preview__head h2{font-size:46px}
 html.scene-sized .home .section-heading>p{margin-top:15px;font-size:17px}
 html.scene-sized .home .service-tabs{margin-bottom:26px;gap:17px}
 html.scene-sized .home .service-tabs button{min-height:125px;padding:20px 15px;gap:15px;font-size:19px}
 html.scene-sized .home .service-summary{min-height:0;padding:0 25px}
 html.scene-sized .home .service-summary h3{font-size:28px;margin-bottom:12px}
 html.scene-sized .home .service-summary>p{font-size:17px;line-height:1.75}
 html.scene-sized .home .home-scope{margin-top:16px;font-size:16px}
 html.scene-sized .home .service-summary .text-link{margin-top:18px}
 html.scene-sized .home .all-fields{margin-top:25px}
 html.scene-sized .home #team{padding:45px 0}
 html.scene-sized .home .team-preview__head{margin-bottom:42px;gap:20px}
 html.scene-sized .home .team-card img{height:clamp(285px,36vh,380px)}
 html.scene-sized .home .team-card h3{font-size:34px}
 html.scene-sized .home .location-intro{padding:55px clamp(35px,5vw,85px)}
 html.scene-sized .home .location-image{height:100%;min-height:0;width:100%;object-fit:cover}
}
@media(max-width:1099px),(max-height:819px),(pointer:coarse){.home .section-dots{display:none}}
@media(max-width:600px){html.scenes-home{scroll-padding-top:76px}.home .hero-image{animation-duration:4s}.home .hero-copy h1{line-height:1.4}.home .service-tabs button{min-height:118px}.home .team-card img{box-shadow:none}}
@media(prefers-reduced-motion:reduce){.home .hero-copy h1,.home .scroll-line:after{animation:none}.home .service-tabs button:before,.home .team-card img,.home .button{transition:none}.home .team-card:hover img,.home .button:hover{transform:none}.home .hero-image{animation:none;transform:none}.home .service-tabs button,.home .section-dots a{transition:none}}
