/* Music & Sport: one restrained timing vocabulary, no layout animation. */
:root { --motion-ease:cubic-bezier(.22,1,.36,1); --motion-micro:220ms; --motion-reveal:680ms; --motion-section:900ms; --motion-hero:1450ms; }
@media(prefers-reduced-motion:no-preference) {
 .ms-motion [data-reveal] { transition:opacity var(--motion-reveal) var(--motion-ease),transform var(--motion-reveal) var(--motion-ease); transition-delay:var(--reveal-delay,0ms); }
 .ms-motion [data-reveal="up"]:not(.is-visible) { opacity:0; transform:translateY(24px); }
 .ms-motion [data-reveal="fade"]:not(.is-visible) { opacity:0; }
 .premium-home .hero-ready .hero-media img { animation:premium-hero-settle var(--motion-hero) var(--motion-ease) both; }
 .premium-home .hero .hero-title .motion-word>span { transition-duration:850ms; transition-delay:var(--word-delay); }
 .premium-home .hero-ready .hero-description { animation:premium-arrive 650ms 850ms var(--motion-ease) both; }
 .premium-home .hero-ready .hero-ctas { animation:premium-arrive 600ms 1100ms var(--motion-ease) both; }
 .premium-home .header>.desktop-nav,.premium-home .header>.header-actions { animation:premium-header 650ms 180ms var(--motion-ease) both; }
 .premium-home .hero .hero-content { transform:translateY(var(--hero-text-drift,0px)); }
 .premium-home .hero-shade::after { content:''; position:absolute; inset:0; background:#113656; opacity:var(--hero-departure,0); }
 .premium-home .coordination .usp-list>div>span,
 .premium-home .coordination .usp-list>div>h3,
 .premium-home .coordination .usp-list>div>p { transition:opacity 600ms var(--motion-ease),transform 680ms var(--motion-ease); }
 .premium-home .coordination .usp-list>div:not(.is-visible)>:is(span,h3,p) { opacity:0; transform:translateY(24px); }
 .premium-home .coordination .usp-list>div>h3 { transition-delay:100ms; }
 .premium-home .coordination .usp-list>div>p { transition-delay:200ms; }
 .premium-home #audiences .motion-image { clip-path:none; }
 .premium-home #audiences .motion-image img { transform:scale(1.025); transition:transform 700ms var(--motion-ease); }
 .premium-home #audiences .is-visible .motion-image img { transform:scale(1); }
 .premium-home #audiences .segment { transition:opacity 450ms var(--motion-ease),transform 680ms var(--motion-ease); }
 .premium-home #audiences .segment-label { transition:color 350ms; }
 .premium-home #audiences .segment-label .arrow { opacity:.55; transform:translateX(-3px); transition:opacity 350ms,transform 450ms var(--motion-ease); }
 .premium-home #audiences .viewport-active .segment-label { color:var(--color-accent); }
 .premium-home #audiences .viewport-active .arrow { opacity:1; transform:none; }
 .premium-home #intro .connect-art { transition-delay:260ms; }
 .premium-home .process .steps li { transform:translateY(8px); opacity:.52; transition:opacity 350ms,transform 650ms var(--motion-ease); }
 .premium-home .process .steps li.is-active { transform:none; opacity:1; }
 .premium-home .process .step-number { opacity:.4; transition:opacity 250ms; }
 .premium-home .process .is-active .step-number { opacity:1; }
 .premium-home .process .steps::after { transition:transform 180ms linear; }
 .premium-home .final-cta .cta-symbol { transition:opacity 900ms var(--motion-ease),transform 1000ms var(--motion-ease); }
 .premium-home .final-cta:not(.is-visible) .cta-symbol { opacity:0; transform:translateY(20px); }
 .ms-motion .mobile-menu[open] { animation:premium-arrive 380ms var(--motion-ease) both; }
 .ms-motion .mobile-menu[open] nav>a { animation:none; }
 .mobile-menu[open]::backdrop { animation:premium-header 250ms both; }
 ::view-transition-old(root) { animation:premium-page-out 280ms var(--motion-ease) both; }
 ::view-transition-new(root) { animation:premium-page-in 480ms var(--motion-ease) both; }
 .is-pinned .experience-image { clip-path:none!important; }
 .is-pinned .experience-image img { transform:scale(1.02); transition:transform 550ms var(--motion-ease); }
 .is-pinned .story-active .experience-image img { transform:scale(1); }
 .is-pinned .experience-meta { transform:translateY(16px); transition:transform 500ms var(--motion-ease); }
 .is-pinned .story-active .experience-meta { transform:none; }
}
@keyframes premium-hero-settle { from { opacity:0; transform:scale(1.04); } to { opacity:1; transform:scale(1); } }
@keyframes premium-arrive { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } }
@keyframes premium-header { from { opacity:0; } to { opacity:1; } }
@keyframes premium-page-out { to { opacity:0; transform:translateY(-8px); } }
@keyframes premium-page-in { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
.desktop-nav a::after { transform-origin:left; transition:transform 220ms var(--motion-ease),opacity 220ms; }
.button,.text-link,.gallery-nav,.curved-carousel-controls button { transition:background-color 220ms,color 220ms,transform 220ms var(--motion-ease); }
.button .arrow,.text-link .arrow { transition:transform 220ms var(--motion-ease); }
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
 .button:hover { transform:scale(1.02); }
 .button:hover .arrow,.text-link:hover .arrow { transform:translateX(4px); }
 .premium-home .coordination .usp-list>div { transition:transform 300ms var(--motion-ease); }
 .premium-home .coordination .usp-list>div:hover { transform:translateY(-4px); }
 .premium-home #audiences .segments:has(.segment:hover) .segment:not(:hover) { opacity:.72; }
 .premium-home #audiences .segment:hover img { transform:scale(1.025); }
 .premium-home #audiences .segment:hover .segment-label { color:var(--color-accent); }
 .premium-home #audiences .segment:hover .arrow { opacity:1; transform:none; }
 .hotel-performance img,.school-photo img,.private-possibilities img { transition:transform 700ms var(--motion-ease); }
 .hotel-performance:hover img,.school-photo:hover img,.private-possibilities article:hover img { transform:scale(1.025); }
}
@media(max-width:749px) and (prefers-reduced-motion:no-preference) {
 .premium-home .hero-ready .hero-media img { animation-duration:1050ms; }
 .premium-home .hero .hero-title .motion-word>span { transition-duration:650ms; }
 .premium-home .hero-ready .hero-description { animation-duration:450ms; animation-delay:700ms; }
 .premium-home .hero-ready .hero-ctas { animation-duration:450ms; animation-delay:850ms; }
 .ms-motion [data-reveal="up"]:not(.is-visible),.premium-home .coordination .usp-list>div:not(.is-visible)>:is(span,h3,p) { transform:translateY(12px); }
 .premium-home .hero-media,.premium-home .hero .hero-content { transform:none; }
 .premium-home .process .steps li { transform:none; opacity:1; }
 .premium-home .process .step-number { opacity:1; }
}
@media(prefers-reduced-motion:reduce) {
 .ms-motion [data-reveal],.premium-home .coordination .usp-list>div>:is(span,h3,p),.premium-home .hero .hero-content { opacity:1!important; transform:none!important; transition:none!important; animation:none!important; }
 .premium-home .hero-media,.premium-home .hero-media img { transform:none!important; animation:none!important; }
 .premium-home .hero-shade::after { display:none; }
 .premium-home .process .step-number { opacity:1; }
 .button,.text-link,.button .arrow,.text-link .arrow { transition:none; }
}
@media print { .ms-motion [data-reveal],.premium-home .coordination .usp-list>div>:is(span,h3,p) { opacity:1!important; transform:none!important; } }

@media(prefers-reduced-motion:no-preference) {
 .ms-motion [data-reveal="mask"] { overflow:clip; }
 .ms-motion [data-reveal="mask"]>* { transition:transform 700ms var(--motion-ease); }
 .ms-motion [data-reveal="mask"]:not(.is-visible)>* { transform:translateY(40px); }
 .premium-home .intro-wave-transition:not(.motion-in-view) .smooth-wave { animation-play-state:paused; }
 .ms-motion .motion-image:not(.is-visible) img { transform:translateY(1%) scale(1.025); }
}
/* Strong, legible chapters — authored on top of the existing motion system. */
@view-transition { navigation:none; }
.brand-transfer,.brand-transfer-enter::before { position:fixed; inset:0; z-index:2147483000; background:#113656 url('../assets/brand/logo-serif-white.svg') center/ min(54vw,360px) auto no-repeat; pointer-events:auto; }
.brand-transfer-enter::before { content:''; animation:brand-curtain-exit 450ms cubic-bezier(.22,1,.36,1) both; }
@keyframes brand-curtain-exit { to { transform:translateY(-101%); } }
@media(prefers-reduced-motion:no-preference) {
 .chapter-motion.premium-home .hero-ready .hero-media img { animation:chapter-hero-photo 1400ms var(--motion-ease) both,chapter-hero-breathe 20s 1400ms linear forwards; }
 .chapter-motion.premium-home .hero-media { transform:translateY(var(--hero-parallax,0px)) scale(var(--hero-retreat,1)); }
 .chapter-motion.premium-home .hero .hero-content { transform:translateY(var(--hero-text-drift,0px)); opacity:var(--hero-text-opacity,1); }
 .chapter-motion.premium-home .hero .hero-title .motion-word>span { transition-duration:1000ms; transform:translateY(0); }
 .chapter-motion.premium-home #coordination { position:relative; z-index:2; margin-top:0; padding-top:clamp(80px,8vw,130px); background:var(--color-page,#f3eee2); border-radius:36px 36px 0 0; }
 .chapter-motion .usp-list>div:not(.is-visible)>:is(span,h3,p),
 .chapter-motion .usp-list:not(.values-started)>div>:is(span,h3,p) { opacity:0; }
 .chapter-motion .usp-list:not(.values-started)>div>span { transform:translateX(-24px); }
 .chapter-motion .usp-list:not(.values-started)>div>h3 { transform:translateY(32px); }
 .chapter-motion .usp-list.values-started>div>:is(span,h3,p) { opacity:1; transform:none; transition-duration:600ms; }
 .chapter-motion .usp-list.values-started>div>span { transition-delay:calc(var(--value-order)*380ms); }
 .chapter-motion .usp-list.values-started>div>h3 { transition-delay:calc(var(--value-order)*380ms + 160ms); }
 .chapter-motion .usp-list.values-started>div>p { transition-delay:calc(var(--value-order)*380ms + 320ms); }
 .chapter-motion .connection-phrase { display:block; }
 .chapter-motion .connection-chapter:not(.connection-started) .connection-phrase .motion-word>span { transform:translateY(115%); transition-delay:0ms; }
 .chapter-motion .connection-started .connection-phrase-0 .motion-word>span { transform:none; transition:transform 500ms var(--motion-ease); }
 .chapter-motion .connection-started .connection-phrase-1 .motion-word>span { transform:none; transition:transform 450ms 800ms var(--motion-ease); }
 .chapter-motion .connection-story circle { opacity:0; transform-box:fill-box; transform-origin:center; }
 .chapter-motion .connection-started .connection-story circle { animation:chapter-point 250ms calc(180ms + var(--dot-index)*65ms) var(--motion-ease) both; }
 .chapter-motion .connection-draw { stroke-dasharray:1; stroke-dashoffset:1; }
 .chapter-motion .connection-started .connection-draw { animation:chapter-connect 650ms 320ms var(--motion-ease) both; }
 .chapter-motion .connection-chapter:not(.connection-started) .position-grid>p { opacity:0; transform:translateY(12px); }
 .chapter-motion .connection-started .position-grid>p { animation:premium-arrive 300ms 1100ms var(--motion-ease) both; }
 .chapter-motion .worlds-image { opacity:0; transform:translate(var(--pointer-x,0px),var(--pointer-y,0px)) scale(1.06); transition:opacity 650ms var(--motion-ease),transform 1000ms var(--motion-ease); }
 .chapter-motion .worlds-image.is-active { opacity:1; transform:translate(var(--pointer-x,0px),var(--pointer-y,0px)) scale(1.015); }
 .chapter-motion .final-cta { overflow:hidden; isolation:isolate; }
 .chapter-motion .final-cta::before { content:''; position:absolute; inset:0; z-index:-1; background:rgb(17 54 86 / .13); transform:scaleX(1); transform-origin:left; transition:transform 1000ms var(--motion-ease); }
 .chapter-motion .final-cta.is-visible::before { transform:scaleX(0); }
 .chapter-motion .final-cta .button { transition-delay:0ms; }
 .chapter-motion .final-cta .button.is-visible { animation:premium-arrive 550ms 380ms var(--motion-ease) both; }
}
@keyframes chapter-hero-photo { from { opacity:0; transform:scale(1); } to { opacity:1; transform:scale(1); } }
@keyframes chapter-hero-breathe { from { transform:scale(1); } to { transform:scale(1.08); } }
@keyframes chapter-point { from { opacity:0; transform:scale(.3); } to { opacity:1; transform:scale(1); } }
@keyframes chapter-connect { to { stroke-dashoffset:0; } }
.connection-story { width:min(100%,520px); height:76px; overflow:visible; grid-column:1; }
.connection-draw { fill:none; stroke:#23435F; stroke-width:1.5; }
.connection-story circle { fill:#B32F2C; }
.worlds-stage { display:none; }
@media(min-width:950px) {
 .worlds-interactive { display:grid; grid-template-columns:.85fr 1.15fr; column-gap:clamp(2rem,6vw,7rem); }
 .worlds-interactive>.section-heading { grid-column:1/-1; }
 .worlds-interactive .segments { display:flex; flex-direction:column; justify-content:center; gap:0; margin:0; }
 .worlds-interactive .segment { display:block; padding:1.5rem 0; border-top:1px solid var(--color-line); opacity:.4; transform:none!important; }
 .worlds-interactive .segment:last-child { border-bottom:1px solid var(--color-line); }
 .worlds-interactive .segment .segment-image { display:none; }
 .worlds-interactive .segment-label { margin:0; font-size:clamp(2rem,3.6vw,4rem); letter-spacing:-.045em; }
 .worlds-interactive .segment.world-active { opacity:1!important; }
 .worlds-interactive .segment.world-active .segment-label { color:var(--color-accent); }
 .worlds-interactive .segment.world-active .arrow { opacity:1; transform:translateX(6px); }
 .worlds-stage { display:block; position:relative; min-height:520px; aspect-ratio:1.12; overflow:hidden; border-radius:var(--radius-lg); background:#113656; }
 .worlds-image { position:absolute; inset:-8px; width:calc(100% + 16px); height:calc(100% + 16px); object-fit:cover; }
 .worlds-image:not(.is-active) { pointer-events:none; }
 .chapter-motion .process .steps li { opacity:.25; transform:scale(.92); transform-origin:left center; transition:opacity 450ms,transform 750ms var(--motion-ease); }
 .chapter-motion .process .steps li.is-active { opacity:1; transform:scale(1); }
 .chapter-motion .process .steps li h3 { font-size:clamp(2rem,3.2vw,3.5rem); }
 .chapter-motion .process .steps li { min-height:52svh; }
 .chapter-motion .process .steps::before,.chapter-motion .process .steps::after { left:-1.5rem; width:3px; }
}
@media(max-width:949px) {
 .worlds-interactive .segments { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:18px; padding:12px 0 24px; overscroll-behavior-x:contain; scrollbar-width:thin; }
 .worlds-interactive .segment { flex:0 0 82%; scroll-snap-align:center; min-width:0; margin:0!important; opacity:1; }
 .worlds-interactive .segment-image { aspect-ratio:4/3; }
 .worlds-interactive .segment.world-active .segment-label { color:var(--color-accent); }
 .worlds-interactive .segment-image.motion-image { clip-path:none; }
 .chapter-motion.premium-home #coordination { margin-top:0; border-radius:22px 22px 0 0; padding-top:65px; }
 .connection-story { height:55px; }
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
 .chapter-motion .usp-list:has(>div:hover)>div:not(:hover) { opacity:.45; }
 .chapter-motion .usp-list>div { transition:opacity 300ms,transform 300ms var(--motion-ease); }
 .chapter-motion .usp-list>div:hover { transform:translateY(-6px); }
 .button { position:relative; overflow:hidden; isolation:isolate; }
 .button::before { content:''; position:absolute; inset:0; z-index:-1; background:rgb(255 255 255 / .17); transform:translateX(-101%); transition:transform 300ms var(--motion-ease); }
 .button:hover::before { transform:translateX(0); }
 .button:hover { transform:none; }
 .button:hover .arrow,.text-link:hover .arrow { transform:translateX(6px); }
}
@media(prefers-reduced-motion:reduce) {
 .brand-transfer,.brand-transfer-enter::before { display:none; }
 .worlds-image { opacity:0; transform:none; }
 .worlds-image.is-active { opacity:1; }
 .chapter-motion .hero .hero-content { opacity:1!important; transform:none!important; }
 .chapter-motion .usp-list>div>:is(span,h3,p),.chapter-motion .connection-phrase .motion-word>span { opacity:1!important; transform:none!important; }
 .connection-story circle { opacity:1; }
 .connection-draw { stroke-dashoffset:0; }
 .chapter-motion .process .steps li { opacity:1; transform:none; }
}

@media(prefers-reduced-motion:no-preference) {
 .chapter-motion.premium-home .hero-ready .hero-title .motion-word>span { animation:chapter-headline 900ms var(--word-delay,480ms) var(--motion-ease) both; }
}
@keyframes chapter-headline { from { transform:translateY(115%); } to { transform:translateY(0); } }
@media(min-width:750px) {
 .connection-chapter .position-grid>h2 { grid-column:1; grid-row:1; }
 .connection-chapter .position-grid>.connection-story { grid-column:1; grid-row:2; }
 .connection-chapter .position-grid>p { grid-column:2; grid-row:1 / span 2; align-self:center; }
}
@media(min-width:950px) {
 .worlds-interactive .segments { align-items:stretch; min-width:0; width:100%; align-self:stretch; }
 .worlds-interactive .segment { width:100%; min-width:0; height:auto; min-height:110px; flex:none; border-radius:0; overflow:visible; align-self:stretch; margin:0!important; }
 .worlds-interactive .segment-label { position:static; inset:auto; color:var(--color-primary); padding:0; }
 .worlds-interactive .segment-label .arrow { border-color:var(--color-line); }
 .chapter-motion .worlds-interactive .segment:not(.world-active) { opacity:.4!important; }
}

.connection-phrase { display:block; }
@media(min-width:950px) and (prefers-reduced-motion:no-preference) {
 .chapter-motion .worlds-stage { clip-path:inset(0 100% 0 0 round var(--radius-lg)); transition:clip-path 950ms var(--motion-ease); }
 .chapter-motion .worlds-stage.visual-revealed { clip-path:inset(0 round var(--radius-lg)); }
 .worlds-interactive .segment-label .direction-icon { width:24px; height:24px; }
}

@media(max-width:749px) and (prefers-reduced-motion:no-preference) {
 .chapter-motion.premium-home .hero-ready .hero-media img { animation:chapter-hero-photo 1050ms var(--motion-ease) both,chapter-hero-mobile 16s 1050ms linear forwards; }
}
@keyframes chapter-hero-mobile { from { transform:scale(1); } to { transform:scale(1.035); } }

/* Three worlds: finite scroll chapters, without wheel interception or scroll locking. */
.worlds-sticky>.section-heading { grid-column:1/-1; }
@media(min-width:950px) and (min-height:650px) and (prefers-reduced-motion:no-preference) {
 #audiences.worlds-scroll-scene { display:block; height:250svh; position:relative; }
 .worlds-scroll-scene .worlds-sticky { position:sticky; top:110px; }
 .worlds-scroll-scene .worlds-stage { min-height:0; height:clamp(280px,48svh,540px); aspect-ratio:auto; }
 .worlds-scroll-scene .section-heading { margin-bottom:1.5rem; }
 .worlds-scroll-scene .section-heading h2 { font-size:clamp(2rem,3.5vw,3.8rem); }
 .worlds-scroll-scene .segment { min-height:0; padding:1rem 0; }
 .worlds-scroll-scene .segment-label { font-size:clamp(2rem,3vw,3.3rem); }
}
/* No extra graphic or empty row below the introductory heading. */
.connection-chapter .connection-story { display:none; }
@media(min-width:750px) { .connection-chapter .position-grid>p { grid-row:1; } }
