/* ---------- LogoMotion: Version 3 logo reveal (Cut A / Cut B) ---------- */
.zv-lm { position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; background: radial-gradient(ellipse at 50% 40%, #0d1f58 0%, var(--navy) 55%, var(--panel-end) 100%); }
.zv-lm svg { display: block; width: 100%; height: 100%; }
.zv-lm__flash { position: absolute; inset: 0; background: #cfeeff; opacity: 0; pointer-events: none; }
.zv-lm.is-play .zv-lm__zfill, .zv-lm.is-play .zv-lm__zcore { animation: zvlmIgnite .1s steps(1) 1.09s both; }
.zv-lm.is-play .zv-lm__halo { animation: zvlmIgnite .1s steps(1) 1.09s both, zvlmPulse 3.6s ease-in-out 3.5s infinite; }
.zv-lm__halowrap { transition: opacity 1.2s ease; }
.zv-lm.is-focus .zv-lm__halowrap { opacity: .12; }
.zv-lm.is-play .zv-lm__neon { animation: zvlmNeonOn 1.1s steps(1) .67s both; }
.zv-lm.is-play .zv-lm__pill { animation: zvlmPillIn .5s cubic-bezier(.3, 1.3, .5, 1) 1.4s both; }
.zv-lm.is-play.zv-lm--electric .zv-lm__pill.is-on .zv-lm__knob { animation: zvlmFlicker 3.6s steps(1) 1s infinite; }
.zv-lm.is-play.zv-lm--electric .zv-lm__sparks.is-live path { animation: zvlmSpark 3.6s linear 1s infinite; }
.zv-lm:not(.zv-lm--electric) .zv-lm__sparks { display: none; }
.zv-lm__sparks path { opacity: 0; fill: none; stroke: var(--cyan); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.zv-lm__vmark { transform-box: view-box; transform: translate(-2.2px, 3.8px); }
.zv-lm__pill { transform-box: fill-box; transform-origin: center; }
.zv-lm__track { fill: rgba(255, 255, 255, .05); stroke: var(--line-on-navy); stroke-width: 1; }
.zv-lm__knob { fill: #ffffff; transition: x .5s cubic-bezier(.6, 0, .2, 1.25), width .5s cubic-bezier(.6, 0, .2, 1.25); }
.zv-lm__pill.is-snap .zv-lm__knob { transition: none; }
.zv-lm__pill.is-on .zv-lm__knob { fill: var(--cyan); }
.zv-lm__pill text { font-family: var(--font-motion, "Exo 2", "Arial Black", Arial, sans-serif); font-size: 21px; font-weight: 700; dominant-baseline: central; text-anchor: middle; transition: fill .3s ease .15s; }
.zv-lm__tl { fill: var(--navy); }
.zv-lm__tr { fill: var(--sky-2); }
.zv-lm__pill.is-on .zv-lm__tl { fill: var(--sky-2); }
.zv-lm__pill.is-on .zv-lm__tr { fill: var(--navy); font-weight: 800; }
@keyframes zvlmPillIn { from { opacity: 0; transform: translateY(8px) scale(.92); } to { opacity: 1; transform: none; } }
@keyframes zvlmNeonOn { 0% { opacity: .1; } 8% { opacity: .9; } 11% { opacity: .1; } 22% { opacity: .1; } 25% { opacity: 1; } 28% { opacity: .25; } 42% { opacity: .15; } 46% { opacity: 1; } 50% { opacity: .45; } 54% { opacity: 1; } 60% { opacity: .7; } 63%, 100% { opacity: 1; } }
@keyframes zvlmIgnite { 0% { opacity: .001; } 1%, 100% { opacity: 1; } }
@keyframes zvlmFlicker { 0%, 100% { opacity: 1; } 3% { opacity: .35; } 5% { opacity: 1; } 7% { opacity: .5; } 9% { opacity: 1; } }
@keyframes zvlmSpark { 0%, 12%, 100% { opacity: 0; } 3%, 8% { opacity: 1; } }
@keyframes zvlmPulse { 0%, 100% { opacity: .55; } 50% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .zv-lm.is-play *, .zv-lm__flash { animation: none !important; } }
