/* One brief introduction; remaining depth follows deliberate scrolling. */
.hero-art picture{display:block;width:100%;height:100%}
.motion-ready .hero-art{animation:none;transform:none;transition:none;will-change:auto}
.motion-ready .hero-art img{animation:signature-camera 1.6s cubic-bezier(.2,.7,.3,1) both;transition:none;transform-origin:65% 65%;backface-visibility:hidden}
.motion-ready .hero-art:not(.is-image-ready) img{animation-play-state:paused}
.hero-light-stage{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;contain:paint}
/* Fixed, diffuse studio illumination: no travelling band or animated blur. */
.hero-studio-key{position:absolute;inset:0 0 0 32%;background:radial-gradient(ellipse at 48% 27%,#fff9ef26 0%,#fff9ef0c 30%,transparent 68%);opacity:.36}
.hero-studio-bounce{position:absolute;right:0;bottom:0;width:64%;height:38%;background:radial-gradient(ellipse at 58% 88%,#fff9ef20,transparent 72%);opacity:.24}
.motion-ready .hero-content{z-index:2;transform:none;will-change:auto}
.motion-ready .hero-caption{z-index:2}
.motion-ready .expertise-link{position:relative;isolation:isolate;overflow:hidden}.motion-ready .expertise-link:after{content:"";position:absolute;height:1px;bottom:0;left:0;right:0;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .65s cubic-bezier(.2,.7,.3,1)}
.motion-ready .expertise-link:hover:after,.motion-ready .expertise-link:focus-visible:after{transform:scaleX(1)}
.motion-ready .expertise-link .arrow{transition:transform .35s}.motion-ready .expertise-link:hover .arrow{transform:translateX(4px)}
.motion-ready .approach-section,.motion-ready .approach-grid{position:relative}.approach-progress{position:absolute;left:var(--gutter);right:var(--gutter);top:0;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;pointer-events:none}
.motion-ready .insight-image{position:relative}.motion-ready .insight-image img{transform:scale(1.08);scale:1;transition:scale .65s cubic-bezier(.2,.7,.3,1)}
/* Independent scale composes with scroll depth instead of being overridden by it. */
.motion-ready .insight-grid article:is(:hover,:focus-within) .insight-image img{scale:1.035}.motion-ready .insight-image:after{content:"";position:absolute;inset:0;background:var(--red);transform:translateX(0);transition:transform .75s cubic-bezier(.65,0,.15,1);pointer-events:none}.motion-ready .insight-grid article:nth-child(2) .insight-image:after{background:var(--porcelain)}.motion-ready .insight-grid article.is-visible .insight-image:after{transform:translateX(101%)}
.motion-ready .client-section{padding-bottom:30px}.motion-ready .project-preview{transform:perspective(1300px) translate3d(0,30px,0) rotateY(-7deg) rotateX(5deg);transform-origin:center;transition:none;margin-top:16px;will-change:auto;box-shadow:none}
.motion-ready .preview-paper{background:transparent;box-shadow:none;padding-top:15px}.motion-ready .preview-caption{margin:0 0 18px;background:#fff;width:max-content;padding:5px 8px}
.motion-ready .preview-row{position:relative;background:#fff;margin-bottom:12px;border:1px solid #fff;border-radius:5px;padding:17px 18px;box-shadow:0 8px 28px #1010100a;backface-visibility:hidden}
.motion-ready .preview-line{height:3px;max-width:210px;transform-origin:left;}
.motion-ready[data-motion=running] .hero.is-visible .hero-art img,.motion-ready[data-motion=running] .client-section.is-visible .preview-row,.motion-ready[data-motion=running] .client-section.is-visible .project-preview{will-change:transform}
.motion-ready[data-motion=paused] .hero-art img,.motion-ready[data-motion=paused] .hero-light-stage *,.motion-ready[data-motion=paused] .preview-row,.motion-ready[data-motion=paused] .preview-line,.motion-ready[data-page-hidden=true] .hero-art img,.motion-ready[data-page-hidden=true] .hero-light-stage *,.motion-ready[data-page-hidden=true] .preview-row,.motion-ready[data-page-hidden=true] .preview-line{animation-play-state:paused!important;will-change:auto!important}
.motion-ready[data-motion=paused] .insight-image:after,.motion-ready[data-motion=paused] .approach-grid:before{transition:none}
.motion-ready .hero:not(.is-visible) .hero-art img,.motion-ready .hero:not(.is-visible) .hero-light-stage *{animation-play-state:paused}
@keyframes signature-camera{from{transform:scale(1.045) translate3d(.3%,-.3%,0)}to{transform:scale(1.025) translate3d(0,0,0)}}
/* Native scroll timelines avoid main-thread scroll handlers where available. */
@supports(animation-timeline:view()){
 .motion-ready .hero{view-timeline-name:--hero-depth;view-timeline-axis:block}
 .motion-ready .hero-art{animation:signature-hero-depth linear both;animation-timeline:--hero-depth;animation-range:exit 0% exit 100%}
 .motion-ready .hero-content{animation:signature-copy-depth linear both;animation-timeline:--hero-depth;animation-range:exit 0% exit 100%}
 .motion-ready .approach-section{view-timeline-name:--approach-progress;view-timeline-axis:block}
 .motion-ready .approach-progress{animation:signature-process linear both;animation-timeline:--approach-progress;animation-range:entry 0% entry 100%}
 .motion-ready .client-section{view-timeline-name:--client-depth;view-timeline-axis:block}
 .motion-ready .project-preview{animation:signature-client-depth linear both;animation-timeline:--client-depth;animation-range:entry 0% exit 100%}
 .motion-ready .insight-grid article{view-timeline-name:--editorial-depth;view-timeline-axis:block}
 .motion-ready .insight-image img{animation:signature-editorial-depth linear both;animation-timeline:--editorial-depth;animation-range:entry 0% exit 100%}
 .motion-ready .footer-top{view-timeline-name:--footer-depth;view-timeline-axis:block}
 .motion-ready .footer-top h2{animation:signature-footer-depth linear both;animation-timeline:--footer-depth;animation-range:entry 0% exit 100%}
}
@keyframes signature-hero-depth{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,12%,0)}}
@keyframes signature-copy-depth{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,5%,0)}}
@keyframes signature-process{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes signature-client-depth{from{transform:perspective(1300px) translate3d(0,42px,0) rotateY(-9deg) rotateX(6deg)}to{transform:perspective(1300px) translate3d(0,2px,0) rotateY(-2deg) rotateX(2deg)}}
@keyframes signature-editorial-depth{from{transform:translate3d(0,15px,0) scale(1.08)}to{transform:translate3d(0,-15px,0) scale(1.08)}}
@keyframes signature-footer-depth{from{transform:translate3d(0,20px,0)}to{transform:translate3d(0,0,0)}}
.motion-ready[data-motion=paused] .hero-art,.motion-ready[data-motion=paused] .hero-content,.motion-ready[data-motion=paused] .project-preview,.motion-ready[data-motion=paused] .insight-image img,.motion-ready[data-motion=paused] .approach-progress,.motion-ready[data-motion=paused] .footer-top h2,.motion-ready[data-page-hidden=true] .hero-art,.motion-ready[data-page-hidden=true] .hero-content,.motion-ready[data-page-hidden=true] .project-preview,.motion-ready[data-page-hidden=true] .insight-image img,.motion-ready[data-page-hidden=true] .approach-progress,.motion-ready[data-page-hidden=true] .footer-top h2{animation-play-state:paused!important}
@media(max-width:760px){.hero-light-stage{top:300px}.motion-ready .client-section{padding-bottom:20px}.motion-ready .preview-row{padding:16px 10px;gap:10px;margin-bottom:11px}.motion-ready .preview-row .document-symbol{font-size:20px}.motion-ready .preview-paper{padding:13px 8px 0}.motion-ready .preview-caption{font-size:9px}}
@media(prefers-reduced-motion:reduce){.hero-light-stage{display:none}.motion-ready .hero-art,.motion-ready .hero-art img,.motion-ready .hero-content,.motion-ready .project-preview,.motion-ready .preview-row,.motion-ready .preview-line,.motion-ready .insight-image img,.motion-ready .footer-top h2{animation:none!important;transform:none!important;will-change:auto}.motion-ready .insight-image:after{display:none}.motion-ready .approach-progress{animation:none!important;transform:scaleX(1)!important}}
.motion-ready[data-motion=reduced] .hero-light-stage,.motion-ready[data-motion=reduced] .insight-image:after{display:none}

@media(prefers-reduced-motion:reduce){.motion-ready .insight-grid article .insight-image img{scale:1!important;transition:none!important}}
