/* Arcadia motion kit styles. Pair with motion.js. Set --spot and --aurora-1/2/3 per site. */
/* Elements sliding in from off-screen never cause sideways scrolling */
html, body { overflow-x: clip; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

.m-w { display: inline-block; will-change: transform, filter; }

/* Spotlight: glow follows the cursor */
.m-spot { position: relative; isolation: isolate; }
.m-spot::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: 0; transition: opacity .35s; z-index: 2;
  background: radial-gradient(380px circle at var(--mx, 50%) var(--my, 50%), var(--spot, rgba(0, 189, 205, .14)), transparent 60%); }
.m-spot:hover::after { opacity: 1; }

/* Aurora: slow drifting color blobs behind a section */
.m-aurora { position: relative; isolation: isolate; overflow: hidden; }
.m-aurora::before { content: ""; position: absolute; inset: -30%; z-index: -1; pointer-events: none; filter: blur(70px); opacity: var(--aurora-opacity, .55);
  background:
    radial-gradient(30% 35% at 20% 30%, var(--aurora-1, rgba(0, 189, 205, .35)), transparent 70%),
    radial-gradient(28% 32% at 80% 25%, var(--aurora-2, rgba(0, 127, 139, .25)), transparent 70%),
    radial-gradient(35% 40% at 60% 80%, var(--aurora-3, rgba(143, 214, 209, .35)), transparent 70%);
  animation: m-aurora 18s ease-in-out infinite alternate; }
@keyframes m-aurora { 0% { transform: translate(0, 0) rotate(0deg) scale(1); } 50% { transform: translate(4%, -3%) rotate(8deg) scale(1.08); } 100% { transform: translate(-4%, 3%) rotate(-6deg) scale(1.02); } }

/* Cursor glow follower */
.m-cursor { position: fixed; left: 0; top: 0; width: 26px; height: 26px; margin: -13px 0 0 -13px; border-radius: 50%; pointer-events: none; z-index: 9999; opacity: 0;
  background: var(--cursor, rgba(255, 255, 255, .9)); mix-blend-mode: difference; transition: width .25s, height .25s, margin .25s, opacity .3s; }
.m-cursor.big { width: 56px; height: 56px; margin: -28px 0 0 -28px; }

/* Shiny text sweep */
.m-shine { background: linear-gradient(110deg, currentColor 35%, var(--shine, #9ff3fa) 50%, currentColor 65%); background-size: 250% 100%; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; animation: m-shine 4s linear infinite; }
@keyframes m-shine { from { background-position: 100% 0; } to { background-position: -150% 0; } }

@media (prefers-reduced-motion: reduce) { .m-aurora::before, .m-shine { animation: none; } .m-cursor { display: none; } }
