/* TGLC scroll motion, paired with motion.js. Classes are only added by the script, so without it everything shows. */
.mx-w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em}
.mx-w>span{display:inline-block;translate:0 110%;transition:translate .65s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--i,0)*35ms)}
.mx-h.in .mx-w>span{translate:0 0}
.mx-img{opacity:.001;translate:0 26px;transition:opacity .5s ease,translate .65s cubic-bezier(.16,1,.3,1)!important}
.mx-img.in{opacity:1;translate:0 0}
.mx-zoom{scale:1.06;transition:scale .9s cubic-bezier(.16,1,.3,1),transform .5s cubic-bezier(.22,1,.36,1)!important}
.mx-img.in.mx-zoom,.mx-img.in .mx-zoom{scale:1}
/* cards already rise in (site.css .lv); give them a longer, softer settle */
.lv{transform:translateY(20px)!important;transition:opacity .55s ease,transform .65s cubic-bezier(.16,1,.3,1)!important;transition-delay:var(--lvd,0s)!important}
.lv.in{transform:none!important}
@media (hover:hover) and (pointer:fine){.lv.in:is(.cms-c,.dp-card,.nc,.ev-c,.pg-pc,.nm3-c):hover{transform:translateY(-4px)!important;transition-delay:0s!important;transition-duration:.35s!important}}
.mx-hero{will-change:scale,opacity;scale:calc(1 - var(--hp,0)*.05);transform-origin:50% 0;opacity:calc(1 - var(--hp,0)*.2)}
.mx-hero .hx-s img{scale:calc(1 + var(--hp,0)*.1)}
.mx-prog{position:fixed;left:0;top:0;z-index:200;width:100%;height:3px;background:#FFBF37;transform:scaleX(0);transform-origin:0 50%;pointer-events:none}
@media (prefers-reduced-motion:reduce){.mx-w>span{translate:none!important;transition:none!important}.mx-img{translate:none!important;opacity:1!important}.mx-zoom{scale:none!important}.mx-hero,.mx-hero .hx-s img{scale:none!important;opacity:1!important}}
/* with a mouse: cursor light on cards, buttons that lean towards the pointer */
.mx-lit::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:2;background:radial-gradient(420px circle at var(--gx) var(--gy),rgba(255,255,255,.12),transparent 45%)}
:is(.btn,.sp-btn,.cta,.nav-cta,a.donate){transition:translate .45s cubic-bezier(.22,1,.36,1),transform .25s,filter .25s,background-color .25s,color .25s}
/* news cards: the photo zooms inside its own rounded frame instead of spilling over the card's padding */
@media (hover:hover) and (pointer:fine){
html body .nc img{clip-path:inset(0 round 18px);transition:clip-path .45s cubic-bezier(.22,1,.36,1),translate .65s cubic-bezier(.16,1,.3,1),opacity .5s ease!important}
html body .nc:hover img{clip-path:inset(1.9% round 17.3px)}
}
