/* Motion is an enhancement: all essential content works without this layer. */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.scroll-progress{position:absolute;left:0;bottom:-1px;width:100%;height:2px;background:var(--purple);transform:scaleX(var(--page-progress,0));transform-origin:left;pointer-events:none;z-index:2}
.hero-photo-wrap{position:relative;isolation:isolate}
.hero-photo-wrap .hero-slide{position:absolute;inset:0;opacity:0;z-index:0;object-position:50% 60%;transform:scale(1.025);transition:opacity 1.15s cubic-bezier(.35,0,.25,1);will-change:opacity}
.hero-photo-wrap .hero-slide:nth-child(2){object-position:48% 63%}
.hero-photo-wrap .hero-slide:nth-child(3){object-position:60% 53%}
.hero-photo-wrap .hero-slide.is-active{opacity:1;z-index:1}
.motion-ready:not(.motion-reduced) .hero-photo-wrap .hero-slide.is-active{animation:photo-breathe 7s cubic-bezier(.15,.4,.35,1) both}
@keyframes photo-breathe{from{transform:scale(1.075) translate3d(0,var(--hero-drift,0px),0)}to{transform:scale(1.025) translate3d(0,var(--hero-drift,0px),0)}}
.hero-photo-note{z-index:3;bottom:67px}.photo-index{z-index:3;mix-blend-mode:normal;color:#fff;text-shadow:0 1px 10px #0008;background:#26212a40;padding:6px 9px;backdrop-filter:blur(8px);border-radius:2px}
.hero-slide-controls{display:none;position:absolute;right:35px;bottom:20px;align-items:center;gap:3px;background:#f7f7f3ed;backdrop-filter:blur(12px);border:1px solid #ffffff88;border-radius:30px;padding:4px 8px;z-index:4}
.motion-ready .hero-slide-controls{display:flex}
.slide-dot{border:0;background:none;width:31px;height:31px;padding:10px;display:grid;place-items:center;border-radius:50%}
.slide-dot::after{content:'';display:block;width:5px;height:5px;border-radius:50%;background:#b2a9bc;transition:background .3s,transform .3s}
.slide-dot.is-active::after{background:var(--purple);transform:scale(1.4)}
.slide-control-divider{height:14px;width:1px;background:#d4cdda;margin-inline:3px}
.slide-pause{display:grid;place-items:center;width:31px;height:31px;padding:0;border:0;background:none;border-radius:50%}
.pause-symbol{width:9px;height:10px;display:block;border-left:2px solid var(--purple);border-right:2px solid var(--purple)}
.slide-pause.is-paused .pause-symbol{border:0;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:8px solid var(--purple);margin-left:2px}
.slide-dot:hover,.slide-pause:hover{background:#e9e4ef}

/* Masked title reveals and restrained staggered entrances. */
.heading-line{display:block;overflow:hidden;padding-bottom:.17em;margin-bottom:-.17em}
.heading-line-inner{display:block;transform-origin:left bottom}
.motion-ready:not(.motion-reduced) .heading-reveal .heading-line-inner{transform:translate3d(0,112%,0) rotate(2deg);opacity:.3;transition:transform 1.05s cubic-bezier(.16,1,.3,1),opacity .8s;transition-delay:calc(var(--line-order,0)*110ms)}
.motion-ready:not(.motion-reduced) .heading-reveal.is-visible .heading-line-inner{transform:translate3d(0,0,0) rotate(0);opacity:1}
.motion-ready:not(.motion-reduced) .motion-reveal{opacity:0;transform:translate3d(0,30px,0);transition:opacity .8s var(--ease),transform 1s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)}
.motion-ready:not(.motion-reduced) .motion-reveal.is-visible{opacity:1;transform:translate3d(0,0,0)}
.motion-ready:not(.motion-reduced) .hero-visual.motion-reveal{transform:translate3d(0,26px,0);transition-duration:1.1s}
.motion-ready:not(.motion-reduced) .hero-visual.is-visible{transform:none}
.motion-ready:not(.motion-reduced) .hero-photo-wrap{animation:hero-aperture 1.35s cubic-bezier(.16,1,.3,1) both}
@keyframes hero-aperture{from{clip-path:inset(10% 0 0 0 round 3px 3px 90px 3px);opacity:.1}to{clip-path:inset(0 0 0 0 round 3px 3px 90px 3px);opacity:1}}

/* An immersive scroll sequence, using the clinic's own four spaces. */
.clinic-journey{position:relative;background:var(--purple-dark);color:#fff;scroll-margin-top:0}
.journey-stage{position:relative;height:760px;min-height:540px;overflow:hidden;isolation:isolate;background:#30283c}
.clinic-journey.is-pinned{height:330svh}
.clinic-journey.is-pinned .journey-stage{position:sticky;top:100px;height:calc(100svh - 100px);min-height:0}
.journey-frames,.journey-frame,.journey-shade{position:absolute;inset:0}
.journey-frame{margin:0;opacity:0;transform:scale(1.045);clip-path:inset(0 0 7% 0);transition:opacity 1s cubic-bezier(.25,.1,.25,1),clip-path 1.25s cubic-bezier(.16,1,.3,1),transform 1.5s cubic-bezier(.16,1,.3,1);pointer-events:none}
.journey-frame.is-active{opacity:1;transform:scale(1);clip-path:inset(0);z-index:1}
.journey-frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%;transform:scale(1.035) translate3d(0,var(--scene-drift,0px),0)}
.journey-frame[data-scene="1"] img{object-position:50% 68%}
.journey-frame[data-scene="2"] img{object-position:50% 61%}
.journey-frame[data-scene="3"] img{object-position:50% 56%}
.journey-shade{z-index:2;background:linear-gradient(90deg,#21182b9c,transparent 75%),linear-gradient(0deg,#1e1827ba,transparent 75%);pointer-events:none}
.journey-topline{position:absolute;top:38px;left:max(48px,calc((100vw - 1224px)/2));right:max(48px,calc((100vw - 1224px)/2));display:flex;justify-content:space-between;gap:25px;z-index:3;font-size:9px;letter-spacing:.14em;color:#f4edf9}
.journey-counter{font-size:10px;letter-spacing:.08em;font-variant-numeric:tabular-nums}
.journey-copy-wrap{position:absolute;inset:0;z-index:3;pointer-events:none}
.journey-copy{position:absolute;left:max(48px,calc((100vw - 1224px)/2));bottom:132px;opacity:0;visibility:hidden;transform:translate3d(0,26px,0);transition:opacity .65s,transform 1s cubic-bezier(.16,1,.3,1),visibility .65s;max-width:620px}
.journey-copy.is-active{opacity:1;visibility:visible;transform:none;transition-delay:140ms}
.journey-kicker{font-size:9px;letter-spacing:.14em;display:block;margin-bottom:23px;color:#e3d9eb}
.journey-copy h3{font-family:var(--serif);font-size:clamp(74px,7.3vw,110px);font-weight:400;line-height:.93;letter-spacing:-.025em;text-shadow:0 2px 20px #17111e22}
.journey-copy h3 em{font-weight:400;color:#e4d2f3}
.journey-copy p{color:#e9e3ee;font-size:13px;line-height:1.9;margin-top:27px;text-shadow:0 1px 10px #17111e55}
.journey-navigation{position:absolute;left:max(48px,calc((100vw - 1224px)/2));right:max(48px,calc((100vw - 1224px)/2));bottom:37px;display:flex;align-items:center;justify-content:space-between;gap:25px;z-index:4}
.journey-scroll-hint{display:flex;align-items:center;gap:12px;font-size:8px;letter-spacing:.13em;color:#eee8f3}
.journey-scroll-hint .icon{width:15px;height:15px;animation:scroll-nudge 2.5s ease-in-out infinite}
@keyframes scroll-nudge{0%,100%{transform:translateY(-2px)}50%{transform:translateY(3px)}}
.journey-dots{display:flex;align-items:center;gap:13px}
.journey-dots button{width:57px;min-height:44px;border:0;background:none;padding:7px 0;color:#fff;text-align:left}
.journey-dots span{display:block;font-size:9px;line-height:1.4;opacity:.6;margin-bottom:9px;font-variant-numeric:tabular-nums}
.journey-dots i{display:block;height:2px;background:#ffffff50;position:relative;overflow:hidden}
.journey-dots i::after{content:'';position:absolute;inset:0;background:#fff;transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.journey-dots .is-active span{opacity:1}
.journey-dots .is-active i::after{transform:scaleX(1)}
.journey-dots button:hover i{background:#ffffffa0}
.journey-dots button:focus-visible{outline-color:#fff}
.motion-ready:not(.motion-reduced) .tour-poster>img{transform:scale(1.065) translate3d(0,var(--tour-drift,0px),0)}
.gallery-item[data-gallery="0"] img{object-position:50% 55%}
.gallery-item[data-gallery="3"] img{object-position:50% 43%}

@media(min-width:1500px){.journey-topline,.journey-navigation{left:max(65px,calc((100vw - 1270px)/2));right:max(65px,calc((100vw - 1270px)/2))}.journey-copy{left:max(65px,calc((100vw - 1270px)/2))}}
@media(max-width:1150px){.journey-topline,.journey-navigation{left:35px;right:35px}.journey-copy{left:35px}.journey-copy h3{font-size:86px}}
@media(max-width:900px){.journey-stage{height:690px;min-height:0}.journey-copy{bottom:143px}.journey-copy h3{font-size:82px}.journey-topline{top:30px}.journey-navigation{bottom:29px}.journey-dots{gap:10px}.journey-dots button{width:46px}.journey-scroll-hint{max-width:160px;line-height:1.8}.journey-frame[data-scene="0"] img{object-position:51% 54%}.journey-frame[data-scene="1"] img{object-position:50% 58%}}
@media(max-width:700px){.hero-photo-note{bottom:72px}.hero-slide-controls{bottom:17px;right:29px;padding:3px 7px}.slide-dot,.slide-pause{width:29px;height:29px}.photo-index{top:15px;left:15px;font-size:7px}.clinic-journey{scroll-margin-top:0}.journey-stage{height:680px;min-height:0;touch-action:pan-y}.journey-topline{top:25px;left:23px;right:23px;font-size:7px;letter-spacing:.1em}.journey-counter{font-size:8px}.journey-copy{left:23px;right:23px;bottom:148px;max-width:none}.journey-copy h3{font-size:72px;line-height:.95}.journey-copy p{font-size:11px;margin-top:22px;line-height:1.9}.journey-kicker{font-size:8px;margin-bottom:19px}.journey-navigation{left:23px;right:23px;bottom:27px;display:block}.journey-scroll-hint{max-width:none;font-size:7px;letter-spacing:.1em;margin-bottom:13px;gap:10px}.journey-scroll-hint .icon{transform:rotate(-90deg);animation:none;width:12px;height:12px}.journey-dots{gap:12px}.journey-dots button{flex:1;width:auto;min-height:42px}.journey-dots span{font-size:9px;margin-bottom:7px}.journey-shade{background:linear-gradient(0deg,#1e1827ed,transparent 93%)}.journey-frame[data-scene="0"] img{object-position:50% 44%}.journey-frame[data-scene="1"] img{object-position:50% 45%}.journey-frame[data-scene="2"] img{object-position:48% 55%}.journey-frame[data-scene="3"] img{object-position:52% 50%}.motion-ready:not(.motion-reduced) .motion-reveal{transform:translate3d(0,20px,0);transition-duration:.7s}.motion-ready:not(.motion-reduced) .motion-reveal.is-visible{transform:none}.motion-ready:not(.motion-reduced) .heading-reveal .heading-line-inner{transition-duration:.85s}}
@media(max-width:370px){.journey-copy h3{font-size:62px}.journey-stage{height:640px}.journey-copy{left:18px;right:18px}.journey-topline,.journey-navigation{left:18px;right:18px}}
.motion-reduced .motion-reveal,.motion-reduced .heading-line-inner{opacity:1!important;transform:none!important;transition:none!important}
.motion-reduced .hero-slide,.motion-reduced .journey-frame,.motion-reduced .journey-copy{animation:none!important;transition:none!important}
.motion-reduced .journey-frame img,.motion-reduced .hero-slide,.motion-reduced .tour-poster>img{transform:none!important}
.motion-reduced .journey-scroll-hint .icon{animation:none!important}
@media(prefers-reduced-motion:reduce){.hero-photo-wrap .hero-slide,.journey-frame,.journey-frame img,.tour-poster>img{animation:none!important;transition:none!important;transform:none!important}.heading-line-inner,.motion-reveal{opacity:1!important;transform:none!important;transition:none!important}.journey-scroll-hint .icon{animation:none!important}.journey-copy{transition:none!important}}
