@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Quicksand:wght@300;400;500;600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Mrs+Saint+Delafield&display=swap');

:root {
  /* Palette: #FFE5E6 (Lightest), #FEDCDB, #FFD3D4, #FDCDCD, #FAC2C1 (Darkest) */
  --pink-bg: #FFE5E6;
  --pink-card: #FEDCDB;
  --pink-border: #FFD3D4;
  --pink-accent: #FDCDCD;
  --accent: #FAC2C1;
  --text-main: #590d22;
  --white: #ffffff;
}

/* --- Custom Scrollbar --- */
::-webkit-scrollbar {
    width: 10px;
}
::-webkit-scrollbar-track {
    background: #FFE5E6; /* Lightest pink */
}
::-webkit-scrollbar-thumb {
    background: #FAC2C1; /* Darkest pink in palette */
    border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover {
    background: #FDCDCD;
}

.scrollbar-hide::-webkit-scrollbar {
    display: none;
}
.scrollbar-hide {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.custom-scrollbar::-webkit-scrollbar {
  height: 8px;
}
.custom-scrollbar::-webkit-scrollbar-track {
  background: var(--pink-bg);
  border-radius: 10px;
}
.custom-scrollbar::-webkit-scrollbar-thumb {
  background: var(--pink-border);
  border-radius: 10px;
}
.custom-scrollbar::-webkit-scrollbar-thumb:hover {
  background: var(--accent);
}

/* --- Base Styles --- */
body {
  font-family: 'Quicksand', sans-serif;
  color: var(--text-main);
  background-color: var(--pink-bg);
  /* Custom Cursor */
  cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="%23FAC2C1" stroke="%23ffffff" stroke-width="2"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"></path></svg>') 10 10, auto;
}

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

.font-handwriting {
  font-family: 'Mrs Saint Delafield', cursive;
}

/* --- Animations --- */

@keyframes float {
  0%, 100% { transform: translateY(0px) rotate(0deg); }
  50% { transform: translateY(-15px) rotate(2deg); }
}

@keyframes wiggle {
  0%, 100% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
}

@keyframes pulse-soft {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.05); opacity: 0.9; }
}

@keyframes slide-up {
  from { transform: translateY(20px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

@keyframes fade-in-up {
  0% { opacity: 0; transform: translateY(40px); }
  100% { opacity: 1; transform: translateY(0); }
}

/* Premium Loading Animations - Draw Path */
@keyframes draw-path {
  0% { stroke-dashoffset: 500; opacity: 0; }
  10% { opacity: 1; }
  100% { stroke-dashoffset: 0; opacity: 1; }
}

@keyframes blur-in {
  0% { opacity: 0; filter: blur(10px); transform: scale(0.9); }
  100% { opacity: 1; filter: blur(0px); transform: scale(1); }
}

@keyframes shimmer-text {
  0% { opacity: 0.3; }
  50% { opacity: 1; }
  100% { opacity: 0.3; }
}

/* Curtain Split Animations */
@keyframes split-up {
  0% { transform: translateY(0); }
  100% { transform: translateY(-100%); }
}
@keyframes split-down {
  0% { transform: translateY(0); }
  100% { transform: translateY(100%); }
}

@keyframes sparkle-twinkle {
  0%, 100% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
}

/* --- Localized Snowfall Animation --- */
@keyframes fall-local {
  0% { transform: translateY(-20%); opacity: 0; }
  10% { opacity: 0.8; }
  100% { transform: translateY(120%); opacity: 0; }
}

@keyframes sway {
  0%, 100% { margin-left: 0; }
  50% { margin-left: 15px; }
}

/* --- Utility Classes for Animations --- */
.animate-float { animation: float 6s ease-in-out infinite; }
.animate-float-delayed { animation: float 7s ease-in-out infinite 1s; }
.animate-wiggle:hover { animation: wiggle 0.5s ease-in-out infinite; }
.animate-pulse-soft { animation: pulse-soft 3s infinite; }
.animate-slide-up { animation: slide-up 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) forwards; }
.animate-sparkle { animation: sparkle-twinkle 2s ease-in-out infinite; }

/* Reveal Animations with Stagger */
.reveal-content {
  opacity: 0;
  animation: fade-in-up 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Stagger Delays */
.reveal-delay-0 { animation-delay: 0ms; }
.reveal-delay-100 { animation-delay: 100ms; }
.reveal-delay-200 { animation-delay: 200ms; }
.reveal-delay-300 { animation-delay: 300ms; }
.reveal-delay-400 { animation-delay: 400ms; }
.reveal-delay-500 { animation-delay: 500ms; }
.reveal-delay-600 { animation-delay: 600ms; }
.reveal-delay-700 { animation-delay: 700ms; }
.reveal-delay-800 { animation-delay: 800ms; }
.reveal-delay-900 { animation-delay: 900ms; }
.reveal-delay-1000 { animation-delay: 1000ms; }

.hover-bounce:hover { 
  transform: scale(1.1) rotate(3deg);
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.glass-card {
  background: rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(10px);
  border: 2px solid white;
  box-shadow: 0 8px 32px 0 rgba(253, 205, 205, 0.2);
}

.bg-pattern {
  background-image: radial-gradient(var(--pink-border) 1px, transparent 1px);
  background-size: 20px 20px;
}

.text-shadow-glow {
  text-shadow: 0 0 10px rgba(253, 205, 205, 0.6);
}

/* Curtain Animation Classes */
.curtain-top-exit {
  animation: split-up 1.5s cubic-bezier(0.7, 0, 0.3, 1) forwards;
}
.curtain-bottom-exit {
  animation: split-down 1.5s cubic-bezier(0.7, 0, 0.3, 1) forwards;
}