/* Starckskills motion backgrounds (Remotion-rendered loops). Images underneath are untouched. */
:root{--mgo:.16}
[data-theme=dark]{--mgo:.5}
.mg{pointer-events:none;-webkit-user-select:none;user-select:none}
.mg video{display:block;width:100%;height:100%;object-fit:cover}
.mg-still{background-size:cover;background-position:center}

/* page-wide fixed layer (sits behind everything, header glass picks it up) */
.mg-page{position:fixed;left:0;right:0;top:-6%;bottom:-6%;z-index:-1;overflow:hidden;opacity:var(--mgo);will-change:transform}

/* section hosts */
.intro,.chero,.welcome,footer{position:relative;isolation:isolate;overflow:hidden}
.hx>.mg-hx,.intro>.mg-hero,.chero>.mg-hero,.welcome>.mg-hero,footer>.mg-foot{position:absolute;inset:0;overflow:hidden}
.hx>.mg-hx{z-index:-1;mix-blend-mode:screen;opacity:1;-webkit-mask-image:linear-gradient(100deg,transparent 16%,#000 60%);mask-image:linear-gradient(100deg,transparent 16%,#000 60%)}
.mg-full .hx>.mg-hx{transform:translate3d(calc(var(--mx,0)*-14px),calc(var(--my,0)*-10px),0) scale(1.06);transition:transform .35s ease-out}
.intro>.mg-hero,.chero>.mg-hero{z-index:-1;mix-blend-mode:screen;opacity:.9}
.welcome>.mg-hero{z-index:-1;opacity:.2}
[data-theme=dark] .welcome>.mg-hero{opacity:.55}
footer>.mg-foot{z-index:-1;opacity:.6}

/* newsletter card: slow light sweep (transform only) */
.nl{position:relative;overflow:hidden;isolation:isolate}
.nl::after{content:"";position:absolute;inset:-40% -20%;z-index:-1;pointer-events:none;background:linear-gradient(115deg,transparent 35%,#ffffff26 50%,transparent 65%);transform:translateX(-60%);animation:mgsheen 7s ease-in-out infinite}
@keyframes mgsheen{to{transform:translateX(60%)}}

/* lightweight fallback (phones, Save-Data, slow networks): tiny poster + slow drift */
@media(prefers-reduced-motion:no-preference){
  .mg-still{animation:mgdrift 26s ease-in-out infinite alternate}
}
@keyframes mgdrift{from{transform:scale(1.04) translate3d(-1.5%,0,0)}to{transform:scale(1.14) translate3d(1.5%,-1.5%,0)}}
@media(prefers-reduced-motion:reduce){.nl::after{animation:none}.mg-full .hx>.mg-hx{transition:none}}
