.feevia-splash { display: none; }
.feevia-launching { overflow: hidden; animation: splash-scroll-failsafe 0s 5s forwards; }
.feevia-launching .feevia-splash {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  min-height: 100svh;
  padding: 28px;
  overflow: hidden;
  isolation: isolate;
  background: #271c28;
  color: #fff;
  touch-action: none;
  overscroll-behavior: none;
  font-family: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  /* Independent fallback, including when the controller stops running. */
  animation: splash-failsafe .2s 4.8s forwards;
  transition: opacity .45s ease, visibility .45s;
}
.feevia-launching:not(.feevia-revealing) body > :not(.feevia-splash) {
  visibility: hidden;
  animation: splash-content-failsafe 0s 5s forwards;
}
.feevia-revealing .feevia-splash { opacity: 0; visibility: hidden; }
.splash-atmosphere {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(ellipse at 50% 42%, #8a426329, transparent 52%),
    radial-gradient(ellipse at 95% 5%, #e8b8d608, transparent 48%),
    linear-gradient(160deg, #302131, #271c28 55%, #201822);
}
.splash-atmosphere::before, .splash-atmosphere::after {
  content: "";
  position: absolute;
  width: min(150vw, 1100px);
  aspect-ratio: 1;
  border: 1px solid #e8b8d60b;
  border-radius: 50%;
  left: 50%;
  top: 46%;
  transform: translate(-50%, -50%);
}
.splash-atmosphere::after { width: min(117vw, 860px); border-color: #e8b8d608; }
.splash-content { display: flex; flex-direction: column; align-items: center; text-align: center; transform: translateY(-18px); }
.splash-emblem-stage { width: clamp(210px, 32vw, 286px); aspect-ratio: 1; position: relative; margin-bottom: 22px; }
.splash-halo { position: absolute; inset: -12%; border-radius: 50%; background: radial-gradient(ellipse, #e8b8d620, #e8b8d606 45%, transparent 70%); animation: splash-breathe 2.8s ease-in-out infinite; }
.splash-emblem {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 0;
  filter: drop-shadow(0 18px 20px #120c1666);
  transform: translateY(8px) scale(.97);
  transition: opacity .4s ease, transform .7s cubic-bezier(.2,.65,.25,1);
}
.feevia-emblem-ready .splash-emblem { opacity: 1; transform: translateY(0) scale(1); }
.splash-ground { position: absolute; left: 28%; right: 28%; bottom: -1%; height: 10px; border-radius: 50%; background: #edb8d71c; filter: blur(9px); }
.splash-orbit { position: absolute; left: -17%; top: 44%; width: 134%; height: 29%; border: 1px solid #e8b8d619; border-radius: 50%; transform: rotate(-24deg); }
.splash-orbit-back { z-index: -1; }
.splash-orbit-front { border-color: transparent transparent #e8b8d640 transparent; }
.splash-orbit-front::after {
  content: "";
  position: absolute;
  left: 13%;
  bottom: 9%;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #f7d1e9;
  box-shadow: 0 0 12px 3px #e8b8d640;
  animation: splash-spark 2s ease-in-out infinite;
}
.splash-identity { animation: splash-rise .7s both; }
.splash-wordmark { font-size: clamp(30px, 5vw, 38px); line-height: 1.2; font-weight: 700; letter-spacing: -.055em; }
.splash-wordmark span:last-child { font-weight: 500; color: #e8b8d6; }
.splash-identity p { margin-top: 10px; color: #c9b6c6; font-size: 12px; font-weight: 500; letter-spacing: .015em; }
.splash-loading { margin-top: 38px; display: flex; flex-direction: column; align-items: center; gap: 13px; }
.splash-track { display: block; width: 96px; height: 2px; overflow: hidden; border-radius: 2px; background: #e8b8d61a; }
.splash-track > span { display: block; width: 46%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, transparent, #e8b8d6, #fae6f3); animation: splash-travel 1.4s ease-in-out infinite; }
.splash-loading > span:last-child { color: #a991a4; font-size: 10px; letter-spacing: .035em; }
.splash-signature { position: absolute; bottom: max(30px, env(safe-area-inset-bottom)); left: 24px; right: 24px; text-align: center; color: #a78e9f; font-size: 10px; letter-spacing: .025em; }
.splash-signature strong { margin-left: 3px; font-weight: 500; color: #d5becf; }
@keyframes splash-rise { from { transform: translateY(7px); } to { transform: translateY(0); } }
@keyframes splash-breathe { 0%, 100% { opacity: .65; transform: scale(.95); } 50% { opacity: 1; transform: scale(1.04); } }
@keyframes splash-spark { 0%, 100% { opacity: .4; } 50% { opacity: 1; } }
@keyframes splash-travel { from { transform: translateX(-110%); } to { transform: translateX(325%); } }
@keyframes splash-failsafe { to { opacity: 0; visibility: hidden; pointer-events: none; } }
@keyframes splash-content-failsafe { to { visibility: visible; } }
@keyframes splash-scroll-failsafe { to { overflow: visible; } }
@media (max-height: 560px) {
  .splash-content { transform: translateY(-10px); }
  .splash-emblem-stage { width: 160px; margin-bottom: 12px; }
  .splash-wordmark { font-size: 28px; }
  .splash-loading { margin-top: 22px; }
  .splash-signature { bottom: max(15px, env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  .splash-halo, .splash-orbit-front::after, .splash-identity, .splash-loading, .splash-track > span { animation: none; }
  .splash-emblem, .feevia-launching .feevia-splash { transition: none; }
  .splash-track > span { width: 100%; opacity: .7; }
}
