#pp-portal-splash {
  position: fixed;
  inset: 0;
  z-index: 20000;
  display: grid;
  place-items: center;
  padding: 24px;
  background: #f8fafc;
  color: #0f172a;
  font-family: Inter, system-ui, sans-serif;
  transition: opacity .25s ease;
}
#pp-portal-splash.pp-splash-leaving { opacity: 0; pointer-events: none; }
.pp-splash-brand { text-align: center; width: min(100%, 320px); }
.pp-splash-logo {
  display: grid; place-items: center; width: 88px; height: 88px;
  margin: 0 auto 24px; border: 1px solid #e2e8f0; border-radius: 24px;
  background: #fff; box-shadow: 0 8px 24px rgb(15 23 42 / 4%);
}
.pp-splash-logo img { width: 56px; height: 56px; }
.pp-splash-title { margin: 0; font-size: 28px; font-weight: 700; letter-spacing: -.8px; }
.pp-splash-subtitle { margin: 10px 0 32px; color: #64748b; font-size: 12px; letter-spacing: 1.8px; text-transform: uppercase; }
.pp-splash-progress { width: 120px; height: 3px; margin: 0 auto; background: #e2e8f0; border-radius: 3px; overflow: hidden; }
.pp-splash-progress::after { content: ''; display: block; width: 45%; height: 100%; background: #2563eb; border-radius: inherit; animation: pp-splash-progress 1.2s ease-in-out infinite alternate; }
.pp-splash-status { margin: 16px 0 0; font-size: 12px; color: #64748b; }
.pp-splash-footer { position: absolute; bottom: max(28px, env(safe-area-inset-bottom)); font-size: 11px; color: #94a3b8; }
@keyframes pp-splash-progress { from { transform: translateX(-100%); } to { transform: translateX(225%); } }
@media (prefers-reduced-motion: reduce) { #pp-portal-splash { transition: none; } .pp-splash-progress::after { animation: none; width: 100%; } }
@media print { #pp-portal-splash { display: none !important; } }
