/* Scroll stage: the studio room stays pinned while scrolling walks the staircase from 01 to 10.
   Each step lifts one card and rewrites the headline with that service's name and line. */
.rise-stage{position:relative}
.rise-stage .rise-hero{position:sticky;top:0;max-height:100svh}
.rise-stage .rise-room{height:100%}
.rise-copy{max-width:46%}
.rise-copy .rise-kicker,.rise-copy h1,.rise-copy .rise-intro{transition:opacity .22s ease,translate .22s ease}
.rise-copy.is-switching .rise-kicker,.rise-copy.is-switching h1,.rise-copy.is-switching .rise-intro{opacity:0;translate:0 10px}
.rise-step-count{position:absolute;right:4.7%;top:35%;z-index:2;display:flex;align-items:baseline;justify-content:flex-end;gap:12px;font-variant-numeric:tabular-nums;color:var(--studio-soft);font-size:10px;letter-spacing:.2em;opacity:0;transition:opacity .3s}
.rise-step-count strong{font-weight:500;font-size:clamp(28px,2.6vw,46px);letter-spacing:-.02em;color:var(--studio-cream);line-height:1}
.rise-step-count i{display:block;width:120px;height:1px;background:#f4dec333;position:relative;align-self:center}
.rise-step-count i::after{content:"";position:absolute;inset:0;background:#e2b58c;transform-origin:left;transform:scaleX(var(--rise-progress,0));transition:transform .3s}
.rise-hero.is-stepping .rise-step-count{opacity:1}
.rise-hero.is-stepping .rise-caption{opacity:0;transition:opacity .3s}
.rise-hero.is-stepping .rise-card:not(.is-active){opacity:.62;filter:saturate(.85)}
.rise-card{transition:transform .45s cubic-bezier(.2,.7,.2,1),opacity .35s,filter .35s}
.rise-card.is-active{transform:translateY(-18px) scale(1.07);opacity:1;z-index:5}
.rise-card.is-active .rise-image{border-color:#edd3af;box-shadow:0 18px 44px #0007,0 0 0 1px #edd3af55}
.rise-card.is-active .rise-number{color:#f4dec3}
@media(min-width:761px){
 .rise-stage{height:calc(100vh + var(--rise-steps,10)*42vh)}
 .rise-stage .rise-hero{height:min(68vw,100svh)}
 .rise-stage .rise-bottom .si-button{transform:translateY(0)}
 .rise-stage .rise-bottom .si-button:hover{transform:translateY(-2px)}
}
/* Phones: the room pins to the screen too. Scrolling down steps 01 → 10 and the strip slides to the active card. */
@media(max-width:760px){
 .rise-stage{height:calc(100vh + var(--rise-steps,10)*36vh);height:calc(100svh + var(--rise-steps,10)*36svh)}
 .rise-stage .rise-hero{position:sticky;top:0;height:100vh;height:100svh;min-height:0;max-height:none;display:flex;flex-direction:column;justify-content:center;padding:clamp(18px,4svh,40px) 0 clamp(14px,3svh,32px)}
 .rise-copy{max-width:none;min-height:clamp(186px,28svh,230px)}
 .rise-stage .rise-collection{flex:none;padding-top:clamp(12px,3svh,36px);padding-bottom:clamp(8px,2svh,20px)}
 .rise-stage .rise-card{flex-basis:clamp(116px,36vw,150px);width:clamp(116px,36vw,150px)}
 .rise-stage .rise-image{max-height:34svh}
 .rise-stage .rise-number{margin:clamp(8px,1.6svh,16px) 0 6px}
 .rise-stage .rise-bottom{margin-top:clamp(12px,3svh,36px)}
 .rise-stage .rise-mobile-note{display:none}
 .rise-step-count{display:none}
 .rise-hero.is-stepping .rise-card:not(.is-active){opacity:.66;filter:saturate(.85)}
 .rise-card.is-active{transform:none}
}
@media(prefers-reduced-motion:reduce){
 .rise-copy .rise-kicker,.rise-copy h1,.rise-copy .rise-intro,.rise-card,.rise-step-count,.rise-step-count i::after{transition:none}
 .rise-card.is-active{transform:none}
}
