/* SHANX seasonal motion layer — restrained, ambient and accessible */

@keyframes mistDrift {0%{transform:translate3d(-3%,0,0) scale(1);opacity:.26}50%{transform:translate3d(8%,-2%,0) scale(1.08);opacity:.42}100%{transform:translate3d(-3%,0,0) scale(1);opacity:.26}}
@keyframes hillBreath {0%,100%{transform:translate3d(var(--hill-x,0),0,0) scale(1)}50%{transform:translate3d(var(--hill-x,0),-5px,0) scale(1.012)}}
@keyframes sunlightPulse {0%,100%{transform:scale(1);box-shadow:0 0 0 30px rgba(255,255,255,.08),0 0 0 60px rgba(255,255,255,.05)}50%{transform:scale(1.025);box-shadow:0 0 0 42px rgba(255,255,255,.08),0 0 0 78px rgba(255,255,255,.035)}}
@keyframes grainMove {0%{transform:translate3d(0,0,0)}25%{transform:translate3d(-1%,1%,0)}50%{transform:translate3d(1%,-1%,0)}75%{transform:translate3d(.5%,1%,0)}100%{transform:translate3d(0,0,0)}}
@keyframes rainFallNatural {0%{transform:translate3d(0,-14vh,0) rotate(7deg);opacity:0}8%{opacity:var(--drop-opacity,.55)}88%{opacity:var(--drop-opacity,.55)}100%{transform:translate3d(-7vw,112vh,0) rotate(7deg);opacity:0}}
@keyframes rainSplash {0%,72%{transform:scale(.2);opacity:0}76%{opacity:.35}100%{transform:scale(1.8);opacity:0}}
@keyframes materialise {0%{opacity:.72;filter:blur(2.2px);transform:scale(.992)}45%{opacity:1;filter:blur(.25px);transform:scale(1.001)}100%{opacity:1;filter:blur(0);transform:scale(1)}}

.grain{animation:grainMove 12s steps(2,end) infinite}.mist{animation:mistDrift 14s ease-in-out infinite;will-change:transform,opacity}.hill-back{--hill-x:15%;animation:hillBreath 11s ease-in-out infinite}.hill-mid{--hill-x:-4%;animation:hillBreath 9s ease-in-out infinite reverse}.hill-front{--hill-x:18%;animation:hillBreath 13s ease-in-out infinite}.summer-disc{animation:sunlightPulse 7s ease-in-out infinite;will-change:transform,box-shadow}
.rain{position:absolute;inset:-12% -8% -8%;overflow:hidden;background:none!important;opacity:1!important;transform:none!important;pointer-events:none;animation:none!important}.rain-two{display:none}.raindrop{position:absolute;top:-14vh;width:1.5px;height:var(--drop-length,24px);border-radius:999px;background:linear-gradient(to bottom,rgba(255,255,255,0),rgba(238,248,244,.75) 38%,rgba(214,235,228,.95));filter:drop-shadow(0 0 1px rgba(255,255,255,.3));opacity:var(--drop-opacity,.55);transform:rotate(7deg);animation:rainFallNatural var(--drop-speed,1.1s) linear var(--drop-delay,0s) infinite}.raindrop.near{width:2px;filter:blur(.15px);opacity:.72}.raindrop.far{width:1px;filter:blur(.45px);opacity:.32}.rain-splash{position:absolute;bottom:4%;width:12px;height:4px;border:1px solid rgba(230,244,239,.34);border-radius:50%;opacity:0;animation:rainSplash 1.5s ease-out var(--splash-delay,0s) infinite}
.season,.product,.method-line>div,.ownership-grid>div{transition:transform .55s cubic-bezier(.2,.7,.2,1),box-shadow .55s ease,border-color .55s ease,background-color .55s ease}.product:hover{transform:translateY(-8px);box-shadow:0 24px 70px rgba(23,48,42,.12);border-color:rgba(23,48,42,.28)}.method-line>div:hover,.ownership-grid>div:hover{transform:translateY(-4px)}
[data-parallax]{transform:translate3d(0,var(--parallax-y,0),0);will-change:transform}.season-label,.scroll-cue{transition:opacity .5s ease,transform .5s ease}.hero.is-scrolled .season-label,.hero.is-scrolled .scroll-cue{opacity:.25;transform:translateY(-8px)}

/* SHANX Magic: distance disappears; destination materialises from depth. */
html::after{content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;background:rgba(247,242,232,.025);opacity:0;backdrop-filter:blur(0);transition:opacity 16ms linear,backdrop-filter 16ms linear}
html.shanx-shift::after{opacity:.09;backdrop-filter:blur(.35px)}
html.shanx-arrive::after{opacity:0;backdrop-filter:blur(0);transition:opacity 58ms cubic-bezier(.16,1,.3,1),backdrop-filter 58ms cubic-bezier(.16,1,.3,1)}
.shanx-materialise{animation:materialise 135ms cubic-bezier(.16,1,.3,1) both;transform-origin:50% 38%;will-change:transform,filter,opacity}

@media(max-width:720px){.raindrop:nth-child(2n){display:none}}
@media(prefers-reduced-motion:reduce){.grain,.mist,.hill,.summer-disc{animation:none!important}.rain{display:none}[data-parallax]{transform:none!important}.product,.method-line>div,.ownership-grid>div{transition:none}.shanx-materialise{animation:none!important}html::after{display:none!important}}
