/* V4 motion — transform/opacity only */
.reveal{opacity:0;transform:translateY(22px);transition:opacity var(--dur-reveal) var(--ease),transform var(--dur-reveal) var(--ease);will-change:opacity,transform}
.reveal.is-in{opacity:1;transform:none}
.reveal-clip{clip-path:inset(0 0 100% 0);opacity:1;transform:none;transition:clip-path var(--dur-reveal) var(--ease)}
.reveal-clip.is-in{clip-path:inset(0 0 0 0)}
.reveal-delay-1{transition-delay:calc(var(--stagger)*1)}
.reveal-delay-2{transition-delay:calc(var(--stagger)*2)}
.reveal-delay-3{transition-delay:calc(var(--stagger)*3)}
.reveal-delay-4{transition-delay:calc(var(--stagger)*4)}
.reveal-delay-5{transition-delay:calc(var(--stagger)*5)}
[data-stagger] > .reveal:nth-child(1){transition-delay:0ms}
[data-stagger] > .reveal:nth-child(2){transition-delay:40ms}
[data-stagger] > .reveal:nth-child(3){transition-delay:80ms}
[data-stagger] > .reveal:nth-child(4){transition-delay:120ms}
[data-stagger] > .reveal:nth-child(5){transition-delay:160ms}
[data-stagger] > .reveal:nth-child(6){transition-delay:200ms}

.parallax-wrap{overflow:hidden}
.parallax-el{will-change:transform;transition:none}

.traj-draw{stroke-dasharray:1200;stroke-dashoffset:1200}
.traj-draw.is-drawn{transition:stroke-dashoffset 900ms var(--ease);stroke-dashoffset:0}

.mask-reveal{clip-path:inset(8% 8% 8% 8%);opacity:.85;transition:clip-path var(--dur-reveal) var(--ease),opacity var(--dur-reveal) var(--ease),transform var(--dur-reveal) var(--ease);transform:scale(1.02)}
.mask-reveal.is-in{clip-path:inset(0 0 0 0);opacity:1;transform:none}

.case-shift{transition:opacity 480ms var(--ease),transform 480ms var(--ease)}
.case-shift.is-leaving{opacity:0;transform:translateX(-12px)}
.case-shift.is-entering{opacity:0;transform:translateX(12px)}
.case-shift.is-active{opacity:1;transform:none}

@keyframes stagePanelIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.stage-focus__panel.is-active{animation:stagePanelIn var(--dur-enter) var(--ease) both}

.page-enter{animation:pageIn 480ms var(--ease) both}
@keyframes pageIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

.carousel-dot{transition:background var(--dur-ui) var(--ease),transform var(--dur-fast) var(--ease)}
.carousel-dot[aria-current=true]{transform:scale(1.15)}

@media(prefers-reduced-motion:reduce){
.reveal,.reveal.is-in,.reveal-clip,.reveal-clip.is-in{opacity:1;transform:none;clip-path:none;transition:none}
.mask-reveal,.mask-reveal.is-in{clip-path:none;opacity:1;transform:none;transition:none}
.btn,.nav a,.nav__trigger,.carousel-dot,.btn__arrow,.stage-focus__btn,.case-shift,.link-u{transition:none!important}
.btn-primary:hover .btn__arrow,.btn-brand:hover .btn__arrow,.btn:hover{transform:none!important}
.stage-focus__panel.is-active{animation:none;opacity:1;transform:none}
.page-enter{animation:none}
.traj-draw,.traj-draw.is-drawn{stroke-dashoffset:0;transition:none}
.parallax-el{transform:none!important}
.carousel-dot[aria-current=true]{transform:none}
}
