picture.mobile-source{display:contents}
.mobile-copy{display:none}
/* Restrict native image motion to photographs, never the separate sun mark. */
@supports(animation-timeline:view()) and (animation-range:contain 0% contain 100%){
.sol.native-scroll .sol-window figure{view-timeline:--hero-photo block}
.sol.native-scroll .ritual-editorial-photo{view-timeline:--ritual-photo block}
.sol.native-scroll .contact-visual{view-timeline:--contact-photo block}
.sol.native-scroll .sol-window figure img,.sol.native-scroll .ritual-editorial-photo img,.sol.native-scroll .contact-visual img{transform:none!important;animation:soleil-photo-drift 1s linear both;animation-range:cover 0% cover 100%}
.sol.native-scroll .sol-window figure img{animation-timeline:--hero-photo}
.sol.native-scroll .ritual-editorial-photo img{animation-timeline:--ritual-photo}
.sol.native-scroll .contact-visual img{animation-timeline:--contact-photo}
@keyframes soleil-photo-drift{from{translate:0 -18px;scale:1.1}to{translate:0 18px;scale:1.1}}
}
@media(max-width:700px){
.sol .desktop-copy{display:none}
.sol .mobile-copy{display:inline}
/* A full-screen bronze scene with one zoom controller and a protected caption. */
.sol .light-story{height:160svh}
.sol .light-frame{position:sticky;top:0;height:100svh;min-height:0}
.sol .light-photo{clip-path:none;transform:scale(var(--scene-scale,1.12));translate:none;will-change:transform}
.sol .light-caption{bottom:calc(112px + env(safe-area-inset-bottom));left:24px;right:24px}
.sol .light-caption h2{font-size:clamp(46px,13vw,60px);line-height:1.02}
.sol .light-caption h2.reveal{opacity:1;transform:none;transition:none}
/* Four scroll steps on mobile, with all geometry held still inside the scene. */
.sol .moments.is-pinned{height:340svh;padding:0;overflow:visible}
.sol .moments.is-pinned .moments-scene{position:sticky;top:0;height:100svh;padding:14px 20px calc(96px + env(safe-area-inset-bottom));display:grid;grid-template-rows:auto minmax(0,1fr);gap:0}
.sol .moments.is-pinned .section-head{margin:0 0 12px;display:block}
.sol .moments.is-pinned .section-head .eyebrow{display:none}
.sol .moments.is-pinned .section-head h2{font-size:34px;line-height:.95;opacity:1;transform:none;transition:none}
.sol .moments.is-pinned .moments-layout{height:100%;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 10px;grid-template-rows:auto minmax(0,1fr) auto;gap:12px 8px}
.sol .moments.is-pinned .occasion-tabs{grid-row:1;grid-column:1/-1;margin:0;padding:0 0 10px;gap:6px}
.sol .moments.is-pinned .occasion-tabs button{font-size:10px;padding:8px;min-height:42px}
.sol .moments.is-pinned .moments-photo{grid-row:2;grid-column:1/-1;height:100%;min-height:0;max-height:none;padding:8px;width:100%;align-self:stretch}
.sol .moments.is-pinned .moment-photo-stage{opacity:1;transform:none;transition:none;box-shadow:0 8px 18px #52352212}
.sol .moments.is-pinned #occasion-panel{grid-row:3;grid-column:1;min-height:0;padding:0;align-self:start}
.sol .moments.is-pinned #occasion-panel h3{font-size:28px;line-height:1.02;margin:0 0 9px}
.sol .moments.is-pinned #occasion-panel .occasion-description{font-size:13px;line-height:1.6;margin:0}
.sol .moments.is-pinned .moment-progress{position:static;grid-row:3;grid-column:2;transform:none;align-self:center;gap:8px;margin:0;width:10px}
.sol .moments.is-pinned .moment-progress .image-counter{writing-mode:vertical-rl;font-size:8px}
.sol .moments.is-pinned .moment-progress-rail{display:block;height:55px}
@supports(animation-timeline:view()) and (animation-range:contain 0% contain 100%){
.sol.native-scroll .light-story{view-timeline:--bronze-scene block}
.sol.native-scroll .light-photo{transform:none!important;animation:soleil-bronze-zoom 1s linear both;animation-timeline:--bronze-scene;animation-range:contain 0% contain 100%}
.sol.native-scroll .track-live{animation:soleil-bronze-arc 1s linear both;animation-timeline:--bronze-scene;animation-range:contain 0% contain 100%}
@keyframes soleil-bronze-zoom{from{scale:1.12}to{scale:1}}
@keyframes soleil-bronze-arc{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
}
}
@media(max-width:700px) and (max-height:700px){
.sol .moments.is-pinned .moments-scene{padding-top:10px;padding-bottom:90px}
.sol .moments.is-pinned .section-head h2{font-size:30px}
.sol .moments.is-pinned .section-head{margin-bottom:8px}
.sol .moments.is-pinned .moments-layout{gap:8px}
.sol .moments.is-pinned #occasion-panel h3{font-size:25px}
.sol .moments.is-pinned #occasion-panel .occasion-description{font-size:12px;line-height:1.55}
}
@media(prefers-reduced-motion:reduce){
.sol.native-scroll .sol-window figure img,.sol.native-scroll .ritual-editorial-photo img,.sol.native-scroll .contact-visual img,.sol.native-scroll .light-photo,.sol.native-scroll .track-live{animation:none!important;translate:none;scale:none;transform:none!important}
.sol .light-story{height:auto}.sol .light-frame{position:relative;height:85svh}
}

/* Mobile photos use the same RAF transform controller as desktop. */
@media(max-width:700px){
.sol .sol-window figure img{transform:translate3d(0,var(--photo-drift,0px),0) scale(1.14)!important}
.sol .ritual-editorial-photo img,.sol .contact-visual img{transform:translate3d(0,var(--photo-drift,0px),0) scale(1.14)}
}
@media(prefers-reduced-motion:reduce){
.sol .sol-window figure img,.sol .ritual-editorial-photo img,.sol .contact-visual img{transform:none!important}
}
