:root {
  --bg: #ffffff;
  --primary: #2E3192;
  --accent: #F15A29;
  --muted: rgba(0,0,0,0.55);
}
* { box-sizing:border-box; }
html,body {
  height:100%;
  margin:0;
  background:var(--bg);
  font-family:Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  color:#111;
}
.wrap {
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  overflow:hidden;
  padding:24px;
}

/* Floating blobs */
.blob {
  position:absolute;
  border-radius:50%;
  filter: blur(40px);
  opacity:.18;
  pointer-events:none;
  transform: translate3d(0,0,0);
  animation: float 9s ease-in-out infinite;
}
.blob.one { width:260px; height:260px; background:var(--primary); top:-60px; left:-60px; animation-delay:-2s; }
.blob.two { width:300px; height:300px; background:var(--accent); top:70px; right:-70px; animation-delay:-4s; }
@keyframes float { 0%,100%{ transform: translateY(0) } 50% { transform: translateY(20px) } }

/* Center content */
.center {
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:14px;
  text-align:center;
  pointer-events:none;
  width:100%;
  max-width:980px;
  padding:8px;
}

/* Logo */
.logoWrap { display:flex; align-items:center; justify-content:center; border-radius:16px; padding:8px; }
.logo {
  width:200px;
  max-width:46%;
  height:auto;
  border-radius:14px;
  object-fit:contain;
  display:block;
  transform-origin:center center;
  opacity:0;
  transform: scale(.72) translateY(6px);
  will-change: transform, opacity;
}
@keyframes zoomIn {
  0%   { transform: scale(.72) translateY(6px); opacity: 0; filter: blur(2px); }
  60%  { transform: scale(1.08) translateY(-6px); opacity: 1; filter: blur(0); }
  100% { transform: scale(1) translateY(0); opacity: 1; filter: blur(0); }
}
.logo--zoom { animation: zoomIn 850ms cubic-bezier(.22,.98,.26,1) both; }

/* Text reveal animation */
.brandTitle {
  font-weight:800;
  font-size:32px;
  letter-spacing:0.2px;
  background: var(--primary);
  -webkit-background-clip: text;
  background-clip:text;
  color: transparent;
  opacity:0;
  transform: translateY(8px);
  display:inline-block;
  will-change: transform, opacity;
}
.brandSub {
  color:#000;
  font-size:13px;
  margin-top:-8px;
  opacity:0;
  transform: translateY(8px);
  will-change: transform, opacity;
}
@keyframes textReveal {
  from { opacity:0; transform: translateY(10px); }
  to   { opacity:1; transform: translateY(0); }
}
.reveal.title { animation: textReveal 520ms cubic-bezier(.22,.98,.26,1) both; animation-delay: 420ms; }
.reveal.subtitle { animation: textReveal 520ms cubic-bezier(.22,.98,.26,1) both; animation-delay: 640ms; }

/* Footer preloader */
.footer-preloader {
  position:fixed;
  left:50%;
  bottom:46px;
  transform:translateX(-50%);
  z-index:3;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  pointer-events:none;
}
.spinner {
  width:30px;
  height:30px;
  border-radius:50%;
  border:4px solid rgba(46,49,146,0.16);
  border-top-color: var(--accent);
  animation: spin 1s linear infinite;
  box-shadow: 0 10px 30px rgba(46,49,146,0.08);
}
.preloaderText { font-size:13px; color:var(--muted); font-weight:600; display:none; }
@keyframes spin { to { transform:rotate(360deg); } }

.appVersion { font-size:12px; color:var(--muted); margin-top:4px; letter-spacing:0.3px; }

/* Responsive */
@media (min-width:1024px){ .logo{ width:240px; max-width:320px; } .brandTitle{ font-size:38px; } }
@media (min-width:1366px){ .logo{ width:140px; max-width:340px; } .brandTitle{ font-size:42px; } }
@media (max-width:420px){
  .logo{ width:46vw; max-width:160px }
  .footer-preloader{ bottom:26px }
  .brandTitle{ font-size:22px; min-width:160px }
  .appVersion{ font-size:11px; }
}
@media (prefers-reduced-motion: reduce){
  .logo--zoom, .blob, .reveal { animation:none !important; opacity:1 !important; transform:none !important; }
}
