/* Mobile uses the same scroll-driven scenes as desktop, with compact layouts. */
@media(max-width:900px) and (prefers-reduced-motion:no-preference){
 .js .service-story{height:500vh;height:500svh;margin-top:0}
 .js .service-stage{position:sticky;top:0;height:100vh;height:100svh;min-height:600px;overflow:hidden}
 .js .service-background{background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:scroll;opacity:1}
 .js .feature-panels{position:absolute;inset:0}
 .js .feature-panel,.js .feature-panel.active{position:absolute;inset:0;min-height:0;padding:100px 6% 40px;border:0;opacity:0;visibility:hidden;pointer-events:none;transform:translate3d(0,24px,0);transition:opacity .6s ease,transform .6s ease,visibility .6s}
 .js .feature-panel.active{opacity:1;visibility:visible;pointer-events:auto;transform:translate3d(0,0,0)}
 .js .studio-journey{height:650vh;height:650svh}
 .js .journey-stage{position:sticky;top:0;height:100vh;height:100svh;min-height:600px;overflow:hidden}
 .js .journey-scenes{position:absolute;inset:0}
 .js .journey-scene{position:absolute;inset:0;height:100%;min-height:0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .65s ease,visibility .65s}
 .js .journey-scene.active{opacity:1;visibility:visible;pointer-events:auto}
 .js .journey-copy{position:absolute;top:58px;left:7%;right:7%;max-width:680px;padding:0;transition:transform .65s ease}
 .js .journey-scene:not(.active) .journey-copy{transform:translateY(18px)}
 .js .journey-mobile-character{display:none}
 .js .journey-traveler{display:block;position:absolute;left:0;bottom:10px;--char-height:clamp(190px,30svh,280px);height:var(--char-height);width:calc(var(--char-height) * .627072);z-index:3;filter:drop-shadow(0 15px 14px #0004);will-change:transform}
 .journey-facing,.journey-walk{position:relative;width:100%;height:100%}
 .journey-facing{transition:transform .16s ease}.studio-journey.is-backward .journey-facing{transform:scaleX(-1)}
 .journey-traveler .journey-pose{position:absolute;inset:0;opacity:0;transition:opacity .25s}.journey-traveler .journey-pose.active{opacity:1}
 .studio-journey.is-walking .journey-walk{animation:journeyWalk .38s ease-in-out infinite}
 .js .journey-progress{display:block;position:absolute;bottom:0;left:0;right:0;height:3px;z-index:4;background:#ffffff18}.journey-progress span{display:block;height:100%;background:#81caff;transform-origin:left;transform:scaleX(0)}
 .motion-entry{opacity:0;transform:translate3d(0,22px,0);transition:opacity .7s ease,transform .7s ease}.motion-entry.motion-visible{opacity:1;transform:translate3d(0,0,0)}
}
@media(max-width:600px) and (prefers-reduced-motion:no-preference){
 .js .feature-panel{grid-template-columns:1fr;grid-template-rows:auto auto;align-content:center;gap:5px;padding:86px 7% 30px}
 .js .feature-art img,.js .feature-panel[data-panel="1"] .feature-art img,.js .feature-panel[data-panel="3"] .feature-art img{height:clamp(160px,30svh,270px);max-height:30svh;max-width:340px}
 .js .feature-copy h2{font-size:clamp(29px,8vw,36px);margin-top:12px;line-height:1.18}.js .feature-description{font-size:14px;line-height:1.6;margin-top:15px}.js .feature-rule{margin-top:18px}
 .js .journey-copy{top:48px}.js .journey-copy h2{font-size:clamp(30px,8.6vw,38px);line-height:1.16}.js .journey-label{margin-bottom:18px}.js .journey-description{font-size:15px;line-height:1.65;margin-top:20px}
 .js .journey-traveler{--char-height:clamp(165px,27svh,230px)}
}
@media(prefers-reduced-motion:reduce){.motion-entry{opacity:1;transform:none}}
