/* Loading screen — same look as the original site. Shared by every theme. */
.splash-screen { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; background: var(--pd-splash); opacity: 0; visibility: hidden; transition: opacity .5s ease, visibility .5s ease; }
.splash-screen.active { opacity: 1; visibility: visible; }
.splash-content { text-align: center; color: #FFF7DE; }
/* Light Cream smile straight on the red (guidelines p. 8); it fades in rather than spinning, so the mark is never distorted. */
.pizza-logo { width: 180px; height: 124px; margin: 0 auto 34px; background: #FFF7DE; -webkit-mask: url('../brand/smile.png') center / contain no-repeat; mask: url('../brand/smile.png') center / contain no-repeat; animation: logoAnimation 1.6s ease-in-out infinite alternate; }
@keyframes logoAnimation { from { opacity: .55; } to { opacity: 1; } }
.splash-title { margin: 0; font-family: 'Cairo', sans-serif; font-size: 2.5rem; font-weight: 700; margin-bottom: 20px; animation: fadeInUp 1s ease; }
@keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }
.loading-dots { display: flex; justify-content: center; gap: 10px; }
.loading-dots span { width: 12px; height: 12px; background: #FFF7DE; border-radius: 50%; animation: bounce 1.4s infinite ease-in-out; }
.loading-dots span:nth-child(1) { animation-delay: -.32s; }
.loading-dots span:nth-child(2) { animation-delay: -.16s; }
@keyframes bounce { 0%, 80%, 100% { transform: scale(0); } 40% { transform: scale(1); } }
@media (max-width: 480px) { .splash-title { font-size: 2rem; } }
@media (prefers-reduced-motion: reduce) { .pizza-logo, .loading-dots span, .splash-title { animation: none; } html { scroll-behavior: auto; } }

.preview-banner { position: sticky; top: 0; z-index: 9000; background: #111; color: #fff; text-align: center; font: 600 13px/1.2 system-ui, sans-serif; padding: 8px; }
