/* Intro splash: plays for ~3 s on every app open (web + native shell).
   Pure CSS keyframes so it can be seeked frame-by-frame for the MP4 render.
   Timeline (ms): 0 waves sweep · 150 mark lands · 550 M-arrow draws ·
   1400 core dot · 1550 wordmark · 1900 tagline · 2650 fade out · 3000 gone. */
.mcs {
  --a: #0d9488; --b: #06b6d4; --c: #2563eb;
  position: fixed; inset: 0; z-index: 2147483000; display: grid; place-items: center; overflow: hidden;
  background: radial-gradient(120% 90% at 50% 38%, #0c2536 0%, #07121f 52%, #030814 100%);
  color: #fff; font-family: Poppins, system-ui, -apple-system, "Segoe UI", sans-serif;
  cursor: pointer; -webkit-tap-highlight-color: transparent; user-select: none; -webkit-user-select: none;
  animation: mcsOut .35s cubic-bezier(.4, 0, .2, 1) 2.65s forwards;
  contain: strict;
}
html.mcs-on, html.mcs-on body { overflow: hidden; }
.mcs * { box-sizing: border-box; }
.mcs-waves { position: absolute; inset: 0; width: 100%; height: 100%; }
.mcs-waves path { fill: none; stroke-linecap: round; stroke-dasharray: 2600; stroke-dashoffset: 2600;
  animation: mcsDraw 1.7s cubic-bezier(.55, .05, .25, 1) forwards, mcsDrift 3s linear forwards; }
.mcs-glow { position: absolute; left: 50%; top: 46%; width: 90vmin; height: 90vmin; margin: -45vmin 0 0 -45vmin; border-radius: 50%;
  background: radial-gradient(closest-side, color-mix(in srgb, var(--b) 45%, transparent), color-mix(in srgb, var(--a) 18%, transparent) 55%, transparent);
  opacity: 0; transform: scale(.35); animation: mcsGlow 1.3s cubic-bezier(.2, .8, .2, 1) .15s forwards, mcsPulse 1.4s ease-in-out 1.45s infinite alternate; }
.mcs-stage { position: relative; display: grid; justify-items: center; gap: clamp(14px, 3vmin, 26px); padding: 24px; text-align: center; }
.mcs-mark { width: clamp(96px, 26vmin, 188px); height: clamp(96px, 26vmin, 188px); filter: drop-shadow(0 18px 40px rgba(6, 182, 212, .35)); }
.mcs-mark svg { width: 100%; height: 100%; display: block; overflow: visible; }
.mcs-tile { transform-box: fill-box; transform-origin: center; opacity: 0; transform: scale(.45) rotate(-10deg);
  animation: mcsTile .8s cubic-bezier(.2, 1.35, .35, 1) .15s forwards; }
.mcs-shine { transform: translateX(-620px) skewX(-18deg); animation: mcsShine .8s cubic-bezier(.4, 0, .2, 1) 1.65s forwards; }
.mcs-m { stroke-dasharray: 760; stroke-dashoffset: 760; animation: mcsDrawM .85s cubic-bezier(.65, 0, .35, 1) .55s forwards; }
.mcs-arrow { stroke-dasharray: 170; stroke-dashoffset: 170; animation: mcsDrawA .3s cubic-bezier(.3, 0, .2, 1) 1.2s forwards; }
.mcs-dot { transform-box: fill-box; transform-origin: center; transform: scale(0); animation: mcsDot .45s cubic-bezier(.2, 1.6, .4, 1) 1.4s forwards; }
.mcs-word, .mcs-tag { text-shadow: 0 2px 22px rgba(3, 8, 20, .85); }
.mcs-word b { text-shadow: none; }
.mcs-word { font-size: clamp(28px, 7vmin, 60px); font-weight: 600; letter-spacing: -.02em; line-height: 1.05; white-space: nowrap;
  clip-path: inset(0 100% 0 0); transform: translateY(10px); opacity: 0; animation: mcsWord .65s cubic-bezier(.2, .8, .2, 1) 1.55s forwards; }
.mcs-word b { font-weight: 700; background: linear-gradient(100deg, #2dd4bf, var(--b) 45%, #60a5fa); -webkit-background-clip: text; background-clip: text; color: transparent; }
.mcs-tag { font-size: clamp(11px, 1.9vmin, 14px); font-weight: 500; letter-spacing: .32em; text-transform: uppercase; color: rgba(226, 244, 255, .66);
  opacity: 0; transform: translateY(6px); animation: mcsTag .5s ease-out 1.9s forwards; }
.mcs-skip { position: absolute; right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); font-size: 12px; letter-spacing: .08em;
  color: rgba(255, 255, 255, .45); opacity: 0; animation: mcsTag .4s ease-out .8s forwards; }
.mcs-letter { font: 700 250px/1 Poppins, system-ui, sans-serif; }

.mcs.mcs-skipped { animation: mcsOut .25s cubic-bezier(.4, 0, .2, 1) forwards; }
/* Reduced motion: a still, finished frame that leaves after 400 ms. */
.mcs.mcs-still, .mcs.mcs-still * { animation: none !important; }
.mcs.mcs-still .mcs-waves path, .mcs.mcs-still .mcs-m, .mcs.mcs-still .mcs-arrow { stroke-dashoffset: 0; }
.mcs.mcs-still .mcs-tile, .mcs.mcs-still .mcs-dot, .mcs.mcs-still .mcs-word, .mcs.mcs-still .mcs-tag, .mcs.mcs-still .mcs-glow { opacity: 1; transform: none; clip-path: none; }
.mcs.mcs-still .mcs-skip { display: none; }
.mcs.mcs-still.mcs-leaving { opacity: 0; transition: opacity .15s linear !important; }

@keyframes mcsOut { to { opacity: 0; transform: scale(1.04); visibility: hidden; } }
@keyframes mcsDraw { to { stroke-dashoffset: 0; } }
@keyframes mcsDrift { to { transform: translateX(-90px); } }
@keyframes mcsGlow { to { opacity: 1; transform: scale(1); } }
@keyframes mcsPulse { to { transform: scale(1.08); opacity: .8; } }
@keyframes mcsTile { to { opacity: 1; transform: none; } }
@keyframes mcsShine { to { transform: translateX(620px) skewX(-18deg); } }
@keyframes mcsDrawM { to { stroke-dashoffset: 0; } }
@keyframes mcsDrawA { to { stroke-dashoffset: 0; } }
@keyframes mcsDot { to { transform: scale(1); } }
@keyframes mcsWord { to { clip-path: inset(0 0 0 0); transform: none; opacity: 1; } }
@keyframes mcsTag { to { opacity: 1; transform: none; } }
