/* ===== CSS VARIABLES ===== */
    :root {
      --bg: hsl(35, 30%, 96%);
      --fg: hsl(25, 30%, 15%);
      --primary: hsl(36, 60%, 45%);
      --primary-fg: hsl(35, 30%, 96%);
      --secondary: hsl(10, 45%, 35%);
      --muted: hsl(25, 15%, 45%);
      --accent: hsl(36, 50%, 55%);
      --border: hsl(36, 30%, 80%);
      --gold: hsl(36, 60%, 45%);
      --gold-light: hsl(40, 55%, 70%);
      --maroon: hsl(10, 45%, 35%);
      --cream: hsl(40, 40%, 94%);
      --radius: 0.5rem;
    }

    /* ===== RESET & BASE ===== */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }
    body {
      font-family: 'Poppins', sans-serif;
      background: var(--bg);
      color: var(--fg);
      overflow-x: hidden;
    }
    h1, h2, h3, h4, h5, h6 { font-family: 'Cormorant Garamond', serif; }
    .font-heading { font-family: 'Cormorant Garamond', serif; }
    .font-body { font-family: 'Poppins', sans-serif; }

    /* ===== SCROLLBAR ===== */
    ::-webkit-scrollbar { width: 6px; }
    ::-webkit-scrollbar-track { background: var(--cream); }
    ::-webkit-scrollbar-thumb { background: var(--gold); border-radius: 3px; }

    /* ===== ANIMATIONS ===== */
    @keyframes fade-in-up {
      0% { opacity: 0; transform: translateY(30px); }
      100% { opacity: 1; transform: translateY(0); }
    }
    @keyframes petal-fall {
      0% { transform: translateY(-10vh) rotate(0deg) translateX(0); opacity: 0; }
      10% { opacity: 0.8; }
      50% { transform: translateY(50vh) rotate(180deg) translateX(40px); opacity: 0.6; }
      100% { transform: translateY(110vh) rotate(360deg) translateX(-20px); opacity: 0; }
    }
    @keyframes splash-burst {
      0% { transform: scale(0); opacity: 0.8; }
      50% { transform: scale(3); opacity: 0.4; }
      100% { transform: scale(5); opacity: 0; }
    }
    @keyframes scroll-left {
      0% { transform: translateX(0); }
      100% { transform: translateX(-50%); }
    }
    @keyframes fade-in {
      0% { opacity: 0; }
      100% { opacity: 1; }
    }

    .animate-fade-in-up { animation: fade-in-up 0.8s ease-out forwards; }
    .animate-fade-in { animation: fade-in 1s ease-out forwards; }
    .animate-petal-fall { animation: petal-fall 10s ease-in-out infinite; }
    .animate-splash-burst { animation: splash-burst 1.5s ease-out forwards; }

    /* ===== SCROLL REVEAL ===== */
    .reveal {
      transition: all 0.7s ease-out;
    }
    .reveal.hidden-fade-up { opacity: 0; transform: translateY(48px); }
    .reveal.hidden-fade-down { opacity: 0; transform: translateY(-48px); }
    .reveal.hidden-fade-left { opacity: 0; transform: translateX(48px); }
    .reveal.hidden-fade-right { opacity: 0; transform: translateX(-48px); }
    .reveal.hidden-zoom { opacity: 0; transform: scale(0.75); }
    .reveal.visible { opacity: 1; transform: none; }

    /* ===== FLORAL DECORATIONS ===== */
    #floral-decorations {
      position: fixed; inset: 0; pointer-events: none; z-index: 50; overflow: hidden;
    }
    .petal {
      position: absolute;
      opacity: 0.7;
    }

    /* ===== SPLASH EFFECT ===== */
    #splash-container {
      position: fixed; inset: 0; pointer-events: none; z-index: 40; overflow: hidden;
    }
    .splash-dot {
      position: absolute;
      width: 32px; height: 32px;
      border-radius: 50%;
      background: hsla(36,50%,55%,0.2);
      filter: blur(4px);
    }

    /* ===== PARALLAX SECTION ===== */
    .parallax-section {
      position: relative; overflow: hidden;
    }
    .parallax-bg {
      position: absolute; inset: 0;
      background-size: cover; background-position: center;
      will-change: transform;
      transform: scale(1.2);
    }
    .parallax-overlay {
      position: absolute; inset: 0;
    }
    .parallax-content {
      position: relative; z-index: 10;
    }

    /* ===== HERO SECTION ===== */
    #hero {
      position: relative; width: 100%; min-height: 100vh;
      display: flex; flex-direction: column; align-items: center; justify-content: center;
      overflow: hidden;
    }
    #hero-bg {
      position: absolute; inset: 0; will-change: transform;
      transform: scale(1.1);
    }
    #hero-bg img {
      width: 100%; height: 100%; object-fit: cover; object-position: center 15%;
    }
    #hero-content {
      position: relative; z-index: 10; text-align: center; padding: 0 1rem; margin-top: 8rem;
    }
    #hero-content h3 { font-size: clamp(1.5rem, 4vw, 2.5rem); letter-spacing: 0.2em; margin-bottom: 0.5rem; color: #c5a55a; text-shadow: 1px 1px 4px rgba(0,0,0,0.3); }
    #hero-content h2 { font-size: clamp(1.2rem, 3vw, 2rem); letter-spacing: 0.3em; margin-bottom: 0.5rem; color: #b8963e; text-shadow: 1px 1px 4px rgba(0,0,0,0.2); }
    #hero-logo-wrap { display: flex; justify-content: center; will-change: transform; }
    #hero-logo { width: clamp(8rem, 15vw, 12rem); height: auto; filter: drop-shadow(0 4px 8px rgba(0,0,0,0.3)); }

    /* ===== FLORAL DIVIDER ===== */
    .floral-divider {
      display: flex; align-items: center; justify-content: center; gap: 0.75rem; padding: 1rem 0;
      background: var(--bg);
    }
    .floral-divider .line {
      width: clamp(4rem, 8vw, 6rem); height: 1px; background: hsla(36,50%,55%,0.3);
    }
    .floral-divider .sym { font-size: 1.5rem; }
    .floral-divider .sym-sm { font-size: 1.1rem; opacity: 0.6; }
    .floral-divider.gold .sym, .floral-divider.gold .sym-sm { color: var(--accent); }
    .floral-divider.blush .sym, .floral-divider.blush .sym-sm { color: var(--secondary); }
    .floral-divider.cream .sym, .floral-divider.cream .sym-sm { color: var(--muted); }

    /* ===== GLASS CARD ===== */
    .glass-card {
      background: rgba(255,255,255,0.1);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border: 1px solid rgba(255,255,255,0.15);
      border-radius: 0.75rem;
      transition: all 0.5s ease;
    }
    .glass-card:hover {
      border-color: hsla(36,50%,55%,0.5);
      box-shadow: 0 10px 40px hsla(36,60%,45%,0.12);
      transform: translateY(-8px);
    }

    /* ===== TEXT HELPERS ===== */
    .text-accent { color: var(--accent); }
    .text-primary-fg { color: var(--primary-fg); }
    .tracking-wide-xl { letter-spacing: 0.3em; }
    .tracking-wide-lg { letter-spacing: 0.2em; }
    .uppercase-xs {
      font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.3em;
    }

    /* ===== SECTIONS COMMON ===== */
    .section-inner {
      max-width: 56rem; margin: 0 auto; padding: 4rem 1rem;
    }
    .section-inner-sm {
      max-width: 32rem; margin: 0 auto; padding: 4rem 1rem;
    }
    .section-inner-lg {
      max-width: 64rem; margin: 0 auto; padding: 5rem 1rem;
    }
    .section-title {
      font-size: clamp(2rem, 5vw, 3.5rem); color: var(--accent); text-align: center; margin-bottom: 1rem;
    }
    .section-subtitle {
      font-size: 0.875rem; text-align: center;
      color: hsla(35,30%,96%,0.7); margin-bottom: 3rem;
      max-width: 36rem; margin-left: auto; margin-right: auto;
    }
    .divider-line {
      width: 4rem; height: 1px; background: hsla(36,50%,55%,0.5); margin: 0 auto 3rem;
    }

    /* ===== INVITATION SECTION ===== */
    #invitation .section-inner-sm { text-align: center; padding: 5rem 1rem 7rem; }
    #invitation img.icon-sm { width: clamp(4rem,8vw,5rem); margin: 0 auto 1rem; display: block; }
    #invitation img.icon-md { width: clamp(5rem,10vw,7rem); margin: 0 auto 2rem; display: block; filter: drop-shadow(0 4px 24px rgba(0,0,0,0.4)); }
    #invitation p.mantra { font-family: 'Cormorant Garamond',serif; font-size: clamp(1rem,2vw,1.125rem); color: var(--accent); margin-bottom: 0.5rem; }
    #invitation h2 { font-size: clamp(2rem,5vw,3.5rem); color: var(--accent); margin-bottom: 1.5rem; filter: drop-shadow(0 2px 10px hsla(36,60%,45%,0.4)); }
    #invitation .body-text { font-size: 0.9375rem; color: hsla(35,30%,96%,0.8); line-height: 1.75; margin-bottom: 1.5rem; max-width: 36rem; margin-left: auto; margin-right: auto; }
    #invitation .highlight { color: var(--accent); font-weight: 600; }

    /* ===== EVENTS SECTION ===== */
    #events .section-inner { max-width: 48rem; }
    .events-meta { text-align: center; margin-bottom: 2.5rem; }
    .events-meta p { display: flex; align-items: center; justify-content: center; gap: 0.5rem; font-size: 0.875rem; color: hsla(35,30%,96%,0.8); margin-bottom: 0.5rem; }
    .events-meta svg { width: 1rem; height: 1rem; color: var(--accent); flex-shrink: 0; }
    .events-meta a { font-size: 0.75rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--accent); border-bottom: 1px solid hsla(36,50%,55%,0.4); text-decoration: none; transition: border-color 0.3s; }
    .events-meta a:hover { border-color: var(--accent); }
    .events-grid { display: grid; grid-template-columns: 1fr; gap: 2rem; }
    @media (min-width: 768px) { .events-grid { grid-template-columns: 1fr 1fr; } }
    .event-card { padding: 2rem; text-align: center; min-height: 180px; display: flex; flex-direction: column; align-items: center; justify-content: center; }
    .event-card h3 { font-size: 1.5rem; color: var(--accent); margin-bottom: 1rem; }
    .event-card p { display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: hsla(35,30%,96%,0.8); }

    /* ===== RSVP SECTION ===== */
    #rsvp { text-align: center; }
    #rsvp .section-inner-sm { padding: 4rem 1rem 6rem; }
    #rsvp h2 { font-size: clamp(2.5rem,5vw,3.5rem); color: var(--accent); margin-bottom: 2rem; }
    #rsvp a.btn-whatsapp {
      display: inline-flex; align-items: center; gap: 0.75rem;
      background: #16a34a; color: white; padding: 1rem 2rem;
      border-radius: 9999px; text-decoration: none; font-size: 0.875rem;
      letter-spacing: 0.05em; transition: all 0.3s; box-shadow: 0 4px 16px rgba(0,0,0,0.2);
    }
    #rsvp a.btn-whatsapp:hover { background: #15803d; transform: scale(1.05); }
    #rsvp a.btn-whatsapp svg { width: 1.25rem; height: 1.25rem; }

    /* ===== OUR STORY ===== */
    #story .section-inner { text-align: center; padding: 5rem 1rem 8rem; }
    #story h2 { font-size: clamp(2.5rem,6vw,4.5rem); color: var(--accent); margin-bottom: 0.75rem; filter: drop-shadow(0 2px 10px hsla(36,60%,45%,0.4)); }
    #story .tagline { font-family: 'Cormorant Garamond',serif; font-size: clamp(1.2rem,2.5vw,1.5rem); color: hsla(35,30%,96%,0.9); margin-bottom: 1.5rem; font-style: italic; }
    #story .body-text { font-size: 0.9375rem; color: hsla(35,30%,96%,0.75); line-height: 1.8; margin-bottom: 1.5rem; max-width: 40rem; margin-left: auto; margin-right: auto; }
    #story .closing { font-family: 'Cormorant Garamond',serif; font-size: clamp(1.1rem,2vw,1.3rem); color: var(--accent); margin-top: 2.5rem; font-style: italic; }

    /* ===== NUMBERS SECTION ===== */
    #numbers .section-inner-lg { padding: 5rem 1rem 7rem; text-align: center; }
    .numbers-grid { display: grid; grid-template-columns: 1fr; gap: 3rem; margin-top: 0; }
    @media (min-width: 768px) { .numbers-grid { grid-template-columns: 1fr 1fr 1fr; gap: 2rem; } }
    .counter-wrap { text-align: center; }
    .counter-num { font-family: 'Cormorant Garamond',serif; font-size: clamp(3rem,8vw,5rem); color: var(--accent); font-weight: 700; margin-bottom: 0.5rem; filter: drop-shadow(0 2px 10px hsla(36,60%,45%,0.3)); }
    .counter-label { font-size: 0.75rem; letter-spacing: 0.2em; text-transform: uppercase; color: hsla(35,30%,96%,0.7); }

    /* ===== LEADERSHIP ===== */
    #leadership .section-inner-lg { text-align: center; padding: 5rem 1rem 7rem; }
    .leaders-grid { display: grid; grid-template-columns: 1fr; gap: 2rem; }
    @media (min-width: 768px) { .leaders-grid { grid-template-columns: 1fr 1fr; } }
    .leader-card { padding: 2rem; display: flex; flex-direction: column; align-items: center; text-align: center; }
    .leader-avatar {
      width: 4rem; height: 4rem; border-radius: 50%;
      background: hsla(36,50%,55%,0.2); display: flex; align-items: center; justify-content: center;
      margin: 0 auto 1.25rem;
    }
    .leader-avatar span { font-family: 'Cormorant Garamond',serif; font-size: 1.5rem; color: var(--accent); font-weight: 700; }
    .leader-name { font-size: clamp(1.5rem,3vw,2rem); color: hsla(35,30%,96%,1); margin-bottom: 0.25rem; }
    .leader-title { font-size: 0.7rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--accent); margin-bottom: 1.25rem; }
    .leader-quote { font-size: 0.875rem; color: hsla(35,30%,96%,0.75); line-height: 1.7; font-style: italic; }

    /* ===== COUPLE SECTION ===== */
    #couple .section-inner { text-align: center; padding: 4rem 1rem 6rem; }
    #couple img.couple-img { width: clamp(12rem,25vw,16rem); margin: 0 auto 2rem; display: block; filter: drop-shadow(0 4px 24px rgba(0,0,0,0.4)); }
    #couple h2 { font-size: clamp(1.8rem,4vw,3rem); color: var(--accent); margin-bottom: 2rem; filter: drop-shadow(0 2px 10px hsla(36,60%,45%,0.4)); }
    #couple p.body-text { font-size: 0.875rem; color: hsla(35,30%,96%,0.8); line-height: 1.8; max-width: 40rem; margin: 0 auto; }

    /* ===== LOCATION SECTION ===== */
    #location .section-inner-sm { text-align: center; padding: 5rem 1rem 7rem; }
    #location h2 { font-size: clamp(2rem,4vw,3.5rem); color: var(--accent); margin-bottom: 1rem; }
    #location .addr { font-size: 0.875rem; color: hsla(35,30%,96%,0.8); margin-bottom: 0.5rem; display: flex; align-items: center; justify-content: center; gap: 0.5rem; }
    #location .qr-wrap { display: inline-block; background: white; padding: 1rem; border-radius: 0.75rem; box-shadow: 0 4px 24px rgba(0,0,0,0.2); margin: 1.5rem 0; }
    #location .qr-label { font-size: 0.7rem; letter-spacing: 0.2em; text-transform: uppercase; color: hsla(35,30%,96%,0.6); margin-bottom: 1rem; }
    #location a.dir-link { font-size: 0.75rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--accent); border-bottom: 1px solid hsla(36,50%,55%,0.4); text-decoration: none; transition: border-color 0.3s; }
    #location a.dir-link:hover { border-color: var(--accent); }

    /* ===== INFO SECTION ===== */
    #info .section-inner-lg { padding: 4rem 1rem 6rem; text-align: center; }
    .info-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
    @media (min-width: 768px) { .info-grid { grid-template-columns: 1fr 1fr; } }
    .info-card { padding: 1.5rem; transition: all 0.3s ease; }
    .info-card:hover { transform: translateY(-4px); box-shadow: 0 4px 16px rgba(0,0,0,0.15); }
    .info-card svg { width: 2rem; height: 2rem; margin: 0 auto 0.75rem; display: block; color: var(--accent); }
    .info-card h3 { font-size: 1.25rem; color: hsla(35,30%,96%,1); margin-bottom: 0.5rem; }
    .info-card p { font-size: 0.875rem; color: hsla(35,30%,96%,0.7); line-height: 1.7; white-space: pre-wrap; }

    /* ===== GALLERY ===== */
    #gallery { background: var(--bg); padding: 4rem 0; overflow: hidden; }
    .gallery-track { display: flex; animation: scroll-left 30s linear infinite; width: max-content; }
    .gallery-track img { height: clamp(16rem,25vw,20rem); width: auto; object-fit: cover; margin: 0 0.5rem; border-radius: 0.5rem; }

    /* ===== FOOTER ===== */
    #footer .section-inner-sm { padding: 3rem 1rem; text-align: center; }
    #footer .tagline { font-family: 'Cormorant Garamond',serif; font-size: clamp(1.1rem,2.5vw,1.5rem); color: var(--accent); margin-bottom: 1rem; }
    #footer .host { font-size: 1rem; font-weight: 600; color: hsla(35,30%,96%,0.7); margin-bottom: 1.5rem; }
    #footer .contact { display: flex; flex-direction: column; align-items: center; gap: 0.75rem; margin-bottom: 1.5rem; }
    #footer .contact-row { display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: hsla(35,30%,96%,0.8); }
    #footer .contact-row svg { width: 1rem; height: 1rem; color: var(--accent); flex-shrink: 0; }
    #footer a { color: hsla(35,30%,96%,0.8); text-decoration: none; transition: color 0.3s; }
    #footer a:hover { color: var(--accent); }
    #footer .sep { color: hsla(35,30%,96%,0.3); }
    #footer .company { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.3em; color: hsla(35,30%,96%,0.5); margin-top: 1rem; }

    /* SVG ICON HELPERS */
    .icon { display: inline-block; }