/* ATHEYA motion v2 — transform/opacity only */
:root{
  --ease-out:cubic-bezier(.16,1,.3,1);      /* expo-out: появление */
  --ease-io:cubic-bezier(.65,0,.35,1);      /* in-out: медленные циклы */
  --t-line:700ms; --t-stagger:60ms; --t-fade:500ms; --t-rule:1400ms;
}
/* hero geometry */
.hero{position:relative;overflow:hidden;isolation:isolate}
.mg{position:absolute;top:0;right:-4%;width:66%;height:100%;z-index:-1;color:var(--accent);pointer-events:none}
.mg path{vector-effect:non-scaling-stroke}
.mg-layer{opacity:0;transform:translate3d(0,24px,0);transform-box:view-box;transform-origin:50% 100%;
  transition:opacity 1600ms var(--ease-out) calc(var(--i)*140ms + 200ms),transform 2200ms var(--ease-out) calc(var(--i)*140ms + 200ms);will-change:transform}
.mg-bar{stroke:var(--accent)}
.l0{--i:0;--o:.9}.l1{--i:1;--o:.55}.l2{--i:2;--o:.38}.l3{--i:3;--o:.26}.l4{--i:4;--o:.18}
.mg-dot{fill:var(--ornament)}.mg-halo{fill:none;stroke:var(--ornament);stroke-width:1;opacity:.5}.mg-orn{stroke:var(--ornament)}
.d0{--d:0}.d1{--d:1}.d2{--d:2}.d3{--d:3}.d4{--d:4}.d5{--d:5}.d6{--d:6}.d7{--d:7}.d8{--d:8}
.stg>.m-fade:nth-child(2){--d:1}.stg>.m-fade:nth-child(3){--d:2}.stg>.m-fade:nth-child(4){--d:3}.stg>.m-fade:nth-child(5){--d:4}
.is-in .mg-layer{opacity:var(--o);transform:none}
.mg-spark,.mg-orn{opacity:0;transition:opacity 1200ms var(--ease-out) 1400ms}
.is-in .mg-spark,.is-in .mg-orn{opacity:1}
@media (max-width:820px){.mg{right:-52%;width:150%;top:0;height:100%}.mg>g{stroke-opacity:.8}}
/* headline line masks */
.m-lines .ln{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.m-lines .ln>span{display:inline-block;transform:translate3d(0,108%,0);transition:transform var(--t-line) var(--ease-out) calc(var(--d,0)*var(--t-stagger) + 150ms)}
.is-in .m-lines .ln>span,.m-lines.is-in .ln>span{transform:none}
/* generic reveal */
.m-fade{opacity:.01;transform:translate3d(0,18px,0);transition:opacity var(--t-fade) var(--ease-out) calc(var(--d,0)*50ms),transform var(--t-fade) var(--ease-out) calc(var(--d,0)*50ms)}
.m-fade.is-in{opacity:1;transform:none}
/* ochre section rule */
.m-rule{position:relative;height:1px;margin:0;border:0}
.m-rule::before{content:"";position:absolute;inset:0;background:var(--ornament);transform:scaleX(0);transform-origin:0 50%;transition:transform var(--t-rule) var(--ease-out)}
.m-rule::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-radius:50%;background:var(--ornament);opacity:0;transform:scale(.4);transition:opacity 500ms ease calc(var(--t-rule) - 300ms),transform 700ms var(--ease-out) calc(var(--t-rule) - 300ms)}
.m-rule.is-in::before{transform:none}.m-rule.is-in::after{opacity:1;transform:none}
/* section arch fragments */
.m-frag{position:absolute;pointer-events:none;color:var(--accent);opacity:0;transition:opacity 1400ms var(--ease-out)}
.m-frag.is-in{opacity:.22}
.m-frag path{fill:none;stroke:currentColor;stroke-width:1.25;vector-effect:non-scaling-stroke;stroke-linecap:round}
/* safety: no-JS, print, reduced motion → static composition */
html:not(.m-js) .mg-layer,html:not(.m-js) .m-fade,.m-static .mg-layer,.m-static .m-fade{opacity:1;transform:none;transition:none}
html:not(.m-js) .mg-layer,.m-static .mg-layer{opacity:var(--o)}
html:not(.m-js) .m-lines .ln>span,.m-static .m-lines .ln>span{transform:none;transition:none}
html:not(.m-js) .m-rule::before,html:not(.m-js) .m-rule::after,.m-static .m-rule::before,.m-static .m-rule::after{transform:none;opacity:1;transition:none}
html:not(.m-js) .m-frag,.m-static .m-frag{opacity:.22;transition:none}
html:not(.m-js) .mg-spark,html:not(.m-js) .mg-orn,.m-static .mg-spark,.m-static .mg-orn{opacity:1;transition:none}
@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;transition-delay:0s!important}}
@media print{.mg-layer,.m-fade,.m-lines .ln>span,.m-frag,.mg-spark,.mg-orn{opacity:1!important;transform:none!important;transition:none!important}.m-rule::before,.m-rule::after{transform:none!important;opacity:1!important}}

/* Р-3: a focused block is shown at once */
.m-fade:focus-within,.m-fade:focus{opacity:1;transform:none;transition:none}
