/* Progressive enhancement: all Elementor content stays readable without this layer. */
.ste-choreography-active .site-header::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--bright);transform:scaleX(var(--read-progress,0));transform-origin:left;pointer-events:none}

/* A photographic opening, followed by the existing two-line title. */
.ste-choreography-active .ste-home-hero .ste-hero-image{animation:ste-aperture 1.5s cubic-bezier(.16,1,.3,1) both}
.ste-choreography-active .ste-home-hero .ste-title-line:nth-child(1){animation-delay:.28s}
.ste-choreography-active .ste-home-hero .ste-title-line:nth-child(2){animation-delay:.47s}
.ste-page-enter .ste-entry{animation:ste-entry-in .95s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--entry-order,0)*.09s)}
.ste-page-enter .ste-entry.ste-hero-image,.ste-page-enter .ste-entry.ste-image{animation-name:ste-photo-in;animation-duration:1.35s}
.ste-choreography-active .ste-entry.ste-reveal{opacity:1;translate:none;clip-path:none;transition:none}

/* Four existing sentences become a scroll-led editorial scene. */
body.ste-choreography-active .e-con.ste-statement{min-height:clamp(580px,90svh,860px);justify-content:center;padding-top:65px!important;padding-bottom:70px!important;gap:35px}
.ste-choreography-active .ste-statement .ste-verbs{opacity:1;translate:none;transition:none}
.ste-choreography-active .ste-statement .ste-verbs .elementor-heading-title{font-size:clamp(48px,5.9vw,88px);line-height:1.13;letter-spacing:-.045em;font-weight:500}
.ste-story-phrase{display:block;width:fit-content;max-width:100%;padding-bottom:.08em;color:var(--blue)}
@supports(background-clip:text){.ste-choreography-active .ste-story-phrase{background:linear-gradient(90deg,var(--blue) 0 var(--phrase-fill,0%),#84919a var(--phrase-fill,0%) 100%);background-clip:text;-webkit-background-clip:text;color:transparent}}
.ste-choreography-active .ste-statement>.elementor-widget-text-editor{max-width:610px;font-size:17px;line-height:1.8}

/* Landscapes expand naturally with scrolling; the page never captures scrolling. */
@media(min-width:1101px){
 .ste-choreography-active .ste-flora{clip-path:inset(0 calc((1 - var(--scene-open,0))*7%))}
 .ste-choreography-active .ste-flora:has(.ste-quote) .ste-image img{height:clamp(490px,75svh,820px)}
 .ste-choreography-active .ste-flora .ste-image{opacity:1;translate:none;clip-path:none;transition:none}
 .ste-choreography-active .ste-flora .ste-image>img,.ste-choreography-active .ste-flora .ste-image>.elementor-widget-container{transform:translateY(var(--scene-y,0px)) scale(1.08)}
 .ste-choreography-active .ste-flora .ste-quote{transform:translateY(calc((1 - var(--scene-open,0))*36px));opacity:calc(.35 + var(--scene-open,0)*.65);translate:none;max-width:850px;bottom:60px}
 .ste-choreography-active .ste-flora .ste-quote .elementor-heading-title{font-size:clamp(44px,4.7vw,70px)}
 .ste-choreography-active :is(.ste-split,.ste-intro) .ste-image>img,.ste-choreography-active :is(.ste-split,.ste-intro) .ste-image>.elementor-widget-container{transform:translateY(var(--image-shift,0px)) scale(1.065);transform-origin:center}
 .ste-choreography-active .ste-gallery>.ste-image{transform:translateY(var(--gallery-y,0px))}
 .ste-choreography-active .ste-gallery>.ste-image:nth-child(2){transform:translateY(calc(var(--gallery-y,0px)*-1))}
 .ste-choreography-active .ste-gallery .ste-image img{transform:scale(calc(1.04 - var(--gallery-progress,0)*.04))}
}

/* Each process or value has its own entrance and a growing fine rule. */
.is-choreographed>.e-con{position:relative}
.ste-choreography-active .is-choreographed>.e-con:not(.is-entered){opacity:0}
.ste-choreography-active .is-choreographed>.e-con.is-entered{animation:ste-process-in .85s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--item-order,0)*.1s)}
.is-choreographed>.e-con::before{content:"";position:absolute;top:-1px;left:0;right:0;height:2px;background:var(--bright);transform-origin:left;transform:scaleX(var(--grid-progress,0))}
.ste-process-grid.is-choreographed>.e-con::before{transform:scaleX(clamp(0,calc(var(--grid-progress,0)*4 - var(--item-order,0)),1))}
.is-choreographed .ste-reveal{opacity:1!important;translate:none!important;clip-path:none!important;transition:none!important}
.is-choreographed .ste-number .elementor-heading-title{transition:color .3s}
.is-choreographed>.e-con:hover .ste-number .elementor-heading-title{color:var(--bright)!important}

@keyframes ste-aperture{from{clip-path:inset(0 0 0 55%)}to{clip-path:inset(0)}}
@keyframes ste-entry-in{from{opacity:0;transform:translateY(24px);clip-path:inset(0 0 12% 0)}to{opacity:1;transform:translateY(0);clip-path:inset(0)}}
@keyframes ste-photo-in{from{opacity:.2;clip-path:inset(0 12%)}to{opacity:1;clip-path:inset(0)}}
@keyframes ste-process-in{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1100px){body.ste-choreography-active .e-con.ste-statement{min-height:530px}.ste-choreography-active .ste-statement .ste-verbs .elementor-heading-title{font-size:clamp(38px,6.2vw,65px)}}
@media(max-width:767px){
 body.ste-choreography-active .e-con.ste-statement{min-height:0;padding-top:45px!important;padding-bottom:60px!important;gap:25px}
 .ste-choreography-active .ste-statement .ste-verbs .elementor-heading-title{font-size:clamp(27px,7.2vw,48px);line-height:1.25;letter-spacing:-.04em}
 .ste-choreography-active .ste-statement>.elementor-widget-text-editor{font-size:15px}
 .ste-page-enter .ste-entry{animation-duration:.7s;animation-delay:calc(var(--entry-order,0)*.06s)}
 .ste-page-enter .ste-entry.ste-hero-image,.ste-page-enter .ste-entry.ste-image{animation-duration:.9s}
 .ste-choreography-active .is-choreographed>.e-con.is-entered{animation-delay:0s}
 .ste-process-grid.is-choreographed>.e-con::before{transform:scaleX(var(--grid-progress,0))}
}
@media(prefers-reduced-motion:reduce){
 .ste-story-phrase{background:none!important;color:var(--blue)!important}
 .ste-entry,.is-choreographed>.e-con{animation:none!important;opacity:1!important;transform:none!important;clip-path:none!important}
 .ste-choreography-active .ste-flora{clip-path:none!important}
 .ste-choreography-active .ste-image>img,.ste-choreography-active .ste-image>.elementor-widget-container,.ste-choreography-active .ste-gallery>.ste-image,.ste-choreography-active .ste-quote{transform:none!important;opacity:1!important}
}
.elementor-editor-active .ste-entry,.elementor-editor-active .is-choreographed>.e-con{animation:none!important;opacity:1!important;transform:none!important;clip-path:none!important}
