/* Motion layer. Only active when motion.js adds .mo to <html>. */
.mo .mo-in{opacity:0;transform:translateY(16px);animation:moUp .8s cubic-bezier(.2,.7,.2,1) var(--d,0s) forwards}
@keyframes moUp{to{opacity:1;transform:none}}
.mo .mo-media{opacity:0;transform:translateX(40px) scale(.97);animation:moMedia 1.1s cubic-bezier(.2,.7,.2,1) .25s forwards}
@keyframes moMedia{to{opacity:1;transform:none}}
.mo .mo-media > img,.mo .mo-pin{animation:moFloat 7s ease-in-out 1.4s infinite}
.mo .mo-media{translate:0 var(--py,0)}
@keyframes moFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.mo-pin{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:#2f80ed;box-shadow:0 0 0 2px #fff;z-index:2;pointer-events:none}
.mo-pin::after{content:"";position:absolute;inset:-2px;border-radius:50%;border:2px solid #5aa2ff;animation:moPing 2.2s ease-out var(--pd,0s) infinite}
@keyframes moPing{0%{transform:scale(1);opacity:.9}100%{transform:scale(4.2);opacity:0}}
.mo-chip{position:absolute;left:-2%;top:5%;z-index:3;display:flex;align-items:center;gap:10px;padding:10px 14px 10px 12px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px rgba(0,40,90,.16);font-size:13px;line-height:1.25;opacity:0;transform:translateY(10px);transition:opacity .4s,transform .4s;pointer-events:none}
.mo-chip.on{opacity:1;transform:none}
.mo-chip i{width:10px;height:10px;border-radius:50%;background:#00c875;box-shadow:0 0 0 4px rgba(0,200,117,.18);flex:none}
.mo-chip b{display:block}
.mo-chip em{font-style:normal;opacity:.7}
.mo-sweep{position:absolute;inset:0;z-index:1;pointer-events:none;border-radius:var(--r);background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.5) 50%,transparent 65%);background-size:250% 100%;background-position:120% 0;animation:moSweep 1.6s ease-out 1.3s 1 forwards}
@keyframes moSweep{to{background-position:-120% 0}}
.mo .mo-r{opacity:0;transform:translateY(22px);transition:opacity .7s ease var(--d,0s),transform .7s cubic-bezier(.2,.7,.2,1) var(--d,0s)}
.mo .mo-r.mo-on{opacity:1;transform:none}
.mo figure.mo-r,.mo .shots img.mo-r{transform:translateY(22px) scale(.98)}
.mo figure.mo-r.mo-on,.mo .shots img.mo-r.mo-on{transform:none}
.mo .pages img.mo-r.mo-on:nth-child(2){transform:translateY(-18px)}
.btn.primary{position:relative;overflow:hidden}
.btn.primary::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s ease;pointer-events:none}
.btn.primary:hover::after{transform:translateX(120%)}
a.card:hover{transform:translateY(-4px)}
.site-head{transition:box-shadow .25s}
.site-head.mo-scrolled{box-shadow:0 6px 24px rgba(0,40,90,.08)}
@media (max-width:640px){.mo-chip{font-size:12px;padding:8px 10px;left:2%;top:3%}}
@media (prefers-reduced-motion:reduce){.btn.primary::after{display:none}}
