.reveal{opacity:0;transform:translateY(30px);transition:opacity .75s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms),transform .75s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms)}
.reveal.revealed{opacity:1;transform:translateY(0)}
.studio-image.reveal{transform:translateX(-35px)}
.studio-image.reveal.revealed{transform:translateX(0)}
.studio-copy.reveal{transform:translateX(35px)}
.studio-copy.reveal.revealed{transform:translateX(0)}
.service-card.reveal.revealed,.insight-grid article.reveal.revealed{transition-property:opacity,transform,box-shadow}
.hero-content{animation:hero-enter .9s cubic-bezier(.22,1,.36,1) both}
.value-strip{animation:strip-enter .9s cubic-bezier(.22,1,.36,1) .25s both}
@keyframes hero-enter{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes strip-enter{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.reveal,.reveal.revealed,.studio-image.reveal,.studio-copy.reveal{opacity:1;transform:none;transition:none}.hero-content,.value-strip{animation:none}}

/* A brief cinematic reveal on the six individual service pages. */
.service-hero::before{animation:service-photo-enter 1.5s cubic-bezier(.2,.75,.25,1) both}
.service-hero h1{animation:service-copy-enter .85s cubic-bezier(.22,1,.36,1) .16s both}
.service-hero>div>p:last-child{animation:service-copy-enter .85s cubic-bezier(.22,1,.36,1) .34s both}
.service-hero::after{content:"";position:absolute;bottom:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,#a6bfb0 0%,rgba(166,191,176,.55) 55%,transparent 100%);transform-origin:left;animation:service-line-enter 1.1s cubic-bezier(.22,1,.36,1) .45s both;pointer-events:none}
@keyframes service-photo-enter{from{opacity:.55;transform:scale(1.055)}to{opacity:1;transform:scale(1)}}
@keyframes service-copy-enter{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes service-line-enter{from{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.service-hero::before,.service-hero h1,.service-hero>div>p:last-child,.service-hero::after{animation:none}}

/* Subtle photo and copy entrance on the Insights page. */
.insights-hero{position:relative;isolation:isolate;overflow:hidden;background:#17271e}
.insights-hero::before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,rgba(20,31,26,.96),rgba(38,55,47,.77)),url("office-meeting-room.jpg") center/cover;animation:service-photo-enter 1.3s cubic-bezier(.2,.75,.25,1) both}
.insights-hero>div{position:relative;z-index:1}
.insights-hero h1{animation:service-copy-enter .8s cubic-bezier(.22,1,.36,1) .12s both}
.insights-hero>div>p{animation:service-copy-enter .8s cubic-bezier(.22,1,.36,1) .28s both}
@media(prefers-reduced-motion:reduce){.insights-hero::before,.insights-hero h1,.insights-hero>div>p{animation:none}}

/* Match the About PPS hero to the gentle Insights entrance. */
.about-hero{position:relative;isolation:isolate;overflow:hidden;background:#17271e}
.about-hero::before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,rgba(20,31,26,.96),rgba(38,55,47,.77)),url("office-meeting-room.jpg") center/cover;animation:service-photo-enter 1.3s cubic-bezier(.2,.75,.25,1) both}
.about-hero>div{position:relative;z-index:1}
.about-hero h1{animation:service-copy-enter .8s cubic-bezier(.22,1,.36,1) .12s both}
.about-hero>div>p{animation:service-copy-enter .8s cubic-bezier(.22,1,.36,1) .28s both}
@media(prefers-reduced-motion:reduce){.about-hero::before,.about-hero h1,.about-hero>div>p{animation:none}}
