*, *::before, *::after {
  box-sizing: border-box;
}
body, html {
  margin: 0;
  padding: 0;
  background: url('https://push-1507.5centscdn.com/http/gr2/bg.png') center/cover no-repeat fixed;
  font-family: 'Georgia', serif;
  min-height: 100vh;
  overflow-x: hidden;
}

/* Simple Preloader */
#preloader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.95);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  transition: opacity 0.6s ease;
}
#preloader.hidden {
  opacity: 0;
  visibility: hidden;
}
.preloader-spinner {
  width: 60px;
  height: 60px;
  border: 5px solid #f3f3f3;
  border-top: 5px solid #ff69b4;
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin-bottom: 20px;
}
@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
.preloader-text {
  font-size: 1.6rem;
  color: #c71585;
  font-weight: bold;
  letter-spacing: 1.5px;
}

/* Hero Invitation Section */
.hero-section {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  padding: 20px 15px;
}
.Wedding_card_main_wrapper {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 900px;
  background: transparent;
  box-shadow: 0 15px 40px rgba(0,0,0,0.15);
  border-radius: 20px;
  overflow: hidden;
}
.wedding_box2, .wedding_box1 {
  width: 100%;
  padding: 20px;
  text-align: center;
}
.wedding_img_box {
  position: relative;
  width: 100%;
  max-width: 320px;
  margin: 0 auto;
  aspect-ratio: 3/4;
  overflow: hidden;
  border-radius: 20px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);
  cursor: pointer;
  filter: url(#water-splash-border);
}
.wedding_img_box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  animation: breatheZoom 12s ease-in-out infinite;
}
@keyframes breatheZoom {
  0% { transform: scale(1); }
  50% { transform: scale(1.25); }
  100% { transform: scale(1); }
}
.wedding_img_box::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, transparent 40%, rgba(255,255,255,0.2) 50%, transparent 60%);
  background-size: 300% 100%;
  animation: shimmer 15s ease-in-out infinite;
  pointer-events: none;
  border-radius: 20px;
}
@keyframes shimmer {
  0% { background-position: -300% 0; }
  100% { background-position: 300% 0; }
}
.sparkle-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 20% 80%, rgba(255,255,255,0.3) 0%, transparent 20%),
              radial-gradient(circle at 80% 20%, rgba(255,255,255,0.3) 0%, transparent 20%),
              radial-gradient(circle at 50% 50%, rgba(255,255,255,0.2) 0%, transparent 30%);
  animation: sparkleMove 25s linear infinite;
  opacity: 0.6;
  z-index: 1;
}
@keyframes sparkleMove {
  0% { transform: translate(0, 0) rotate(0deg); }
  100% { transform: translate(50px, -50px) rotate(360deg); }
}
.wedding_detail_box {
  padding: 20px;
}
.top_text_box h4 {
  font-size: 1.4rem;
  color: #888;
}
.main_title_txt {
  font-size: 3.5rem;
  font-weight: bold;
  color: #c71585;
  line-height: 1.2;
  margin: 20px 0;
  font-family:Playball;
}
.date_btn_link {
  display: inline-block;
  padding: 12px 40px;
  background: #ff69b4;
  color: white;
  font-size: 1.8rem;
  border-radius: 50px;
  text-decoration: none;
  box-shadow: 0 8px 20px rgba(255,105,180,0.3);
  margin: 30px 0;
}
.venue_txt_box h3 {
  font-size: 1.4rem;
  color: #555;
}

/* Falling Hearts */
.hearts-container {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 3;
}
.heart {
  position: absolute;
  width: 30px;
  height: 30px;
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23ff69b4"><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/></svg>') center/contain no-repeat;
  opacity: 0;
  animation: floatDown linear infinite;
}
@keyframes floatDown {
  0% {
    transform: translateY(-100px) rotate(0deg);
    opacity: 0;
  }
  10% {
    opacity: 0.8;
  }
  90% {
    opacity: 0.8;
  }
  100% {
    transform: translateY(100vh) rotate(360deg);
    opacity: 0;
  }
}

/* Video Section */
.video-section {
   padding: 60px 15px;
  text-align: center;
  background: rgba(255, 255, 255, 0.55);
}
.video-section h2 {
  font-size: 2.5rem;
  color: #c71585;
  margin-bottom: 40px;
}
.video-wrapper {
  display: inline-block;
  width: 90%;
  max-width: 400px;
  padding: 20px;
   
}
.video-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* Logo Section */
.logo-section {
  padding: 10px 15px;
  text-align: center;
  background: rgba(255, 255, 255, 0.55);
}
.logo-frame {
  display: inline-block;
  width: 90%;
  max-width: 800px;
  padding: 0px;
  
}
.logo-frame img {
  width: 100%;
  height: auto;
  object-fit: contain;
  border-radius: 10px;
}

/* Photo Gallery Section */
.gallery-section {
  padding: 60px 15px;
  background: rgba(255, 255, 255, 0.6);
  text-align: center;
}
.gallery-section h2 {
  font-size: 2.5rem;
  color: #c71585;
  margin-bottom: 40px;
}
.gallery-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  max-width: 900px;
  margin: 0 auto;
}
.gallery-item {
  overflow: hidden;
  border-radius: 20px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.2);
}
.gallery-item img {
  width: 100%;
  height: auto;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.gallery-item:hover img {
  transform: scale(1.1);
}

/* Marquee Section */
.marquee-section {
  padding: 60px 15px;
  text-align: center;
  background: rgba(255, 255, 255, 0.55);
}
.marquee-wrapper {
  display: inline-block;
  background: rgba(0, 0, 0, 0.45);
  padding: 14px 40px;
  border-radius: 50px;
  box-shadow: 0 0 30px rgba(255,255,255,0.8), inset 0 0 30px rgba(255,255,255,0.3);
  backdrop-filter: blur(12px);
  max-width: 95%;
}
marquee {
  font-size: 1.6rem;
  color: #ffffff;
  font-weight: bold;
  text-shadow: 0 0 12px #ff69b4, 0 0 24px #ff69b4;
  letter-spacing: 2px;
  white-space: nowrap;
}

/* Responsive */
@media (min-width: 768px) {
  .Wedding_card_main_wrapper {
    flex-direction: row;
  }
  .wedding_box2, .wedding_box1 {
    width: 50%;
  }
  .main_title_txt {
    font-size: 4.5rem;
  }
  .gallery-grid {
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  }
  .marquee-wrapper {
    padding: 20px 80px;
  }
  marquee {
    font-size: 2.2rem;
  }
}
@media (max-width: 576px) {
  .main_title_txt {
    font-size: 2.8rem;
  }
  .top_text_box h4 {
    font-size: 1.3rem;
  }
  .venue_txt_box h3 {
    font-size: 1.2rem;
  }
  .date_btn_link {
    font-size: 1.5rem;
    padding: 10px 30px;
  }
  .preloader-text {
    font-size: 1.4rem;
  }
}
