:root {
  --lavender: #E6E6FA;
  --sky-blue: #87CEEB;
  --alice-blue: #F0F8FF;
  --cream: #FFFFFF;
  --ghost: #F8F9FA;
}

body {
  background-color: var(--ghost);
  font-family: 'Plus Jakarta Sans', sans-serif;
  color: #334155;
}

h1, h2, h3, h4, .font-serif {
  font-family: 'Playfair Display', serif;
}

/* Star/Sparkle Overrides to Alice Blue/Lavender */
svg[data-lucide="sparkles"], 
svg[data-lucide="star"] {
  color: var(--alice-blue) !important;
  fill: var(--lavender) !important;
}

/* Palette Utility Overwrites */
.bg-lavender { background-color: var(--lavender); }
.bg-sky-blue { background-color: var(--sky-blue); }
.bg-alice-blue { background-color: var(--alice-blue); }
.text-sky-blue { color: var(--sky-blue); }
.text-lavender { color: var(--lavender); }
.border-sky-blue { border-color: var(--sky-blue); }
.border-lavender { border-color: var(--lavender); }

/* Sticky Bar Enforced Z-Index */
#sticky-bar {
  z-index: 9999 !important;
  background-color: var(--sky-blue);
}

.shadow-soft {
  box-shadow: 0 30px 60px -15px rgba(135, 206, 235, 0.12);
}

/* Background Shimmer */
.skeleton-shimmer {
  background: linear-gradient(
    90deg,
    rgba(230, 230, 250, 0) 0%,
    rgba(230, 230, 250, 0.4) 50%,
    rgba(230, 230, 250, 0) 100%
  );
  background-size: 200% 100%;
  animation: shimmer 3s infinite linear;
}

@keyframes shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

.animate-pulse-lavender {
  animation: pulse-lavender 2s infinite ease-in-out;
}

@keyframes pulse-lavender {
  0% { transform: scale(0.95); opacity: 0.5; }
  50% { transform: scale(1.05); opacity: 0.8; }
  100% { transform: scale(0.95); opacity: 0.5; }
}

@keyframes subtleZoom {
  0% { transform: scale(1); }
  100% { transform: scale(1.05); }
}

.animate-subtle-zoom {
  animation: subtleZoom 30s infinite alternate ease-in-out;
}

.pulse-button {
  box-shadow: 0 0 0 0 rgba(135, 206, 235, 0.5);
  animation: pulse 2.5s infinite;
}

@keyframes pulse {
  0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(135, 206, 235, 0.5); }
  70% { transform: scale(1.03); box-shadow: 0 0 0 15px rgba(135, 206, 235, 0); }
  100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(135, 206, 235, 0); }
}

/* Reveal Helpers */
.reveal-up, .reveal-left, .reveal-right {
  opacity: 0;
  will-change: transform, opacity;
}

/* Custom Scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--ghost); }
::-webkit-scrollbar-thumb { background: var(--sky-blue); border-radius: 10px; opacity: 0.5; }
::-webkit-scrollbar-thumb:hover { background: var(--lavender); }

/* Model Viewer Customization */
model-viewer#moon-model {
  --poster-color: transparent;
}
