        *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

        :root {
            --green-deep: #2d4a3e; --green-deep-rgb: 45, 74, 62;
            --green-dark: #3a5a40; --green-dark-rgb: 58, 90, 64;
            --green: #588157; --green-rgb: 88, 129, 87;
            --green-mid: #6b8f71; --green-mid-rgb: 107, 143, 113;
            --green-light: #c3d1aa; --green-light-rgb: 195, 209, 170; /* Adjusted from #a3b18a for better contrast */
            --green-pale: #d5dac4; --green-pale-rgb: 213, 218, 196;
            --cream: #f5f0e8; --cream-rgb: 245, 240, 232;
            --cream-light: #faf7f2; --cream-light-rgb: 250, 247, 242;
            --cream-warm: #ede6d8; --cream-warm-rgb: 237, 230, 216;
            --brown: #8b7355; --brown-rgb: 139, 115, 85;
            --brown-light: #c4a882; --brown-light-rgb: 196, 168, 130;
            --brown-warm: #d8c3a8; --brown-warm-rgb: 216, 195, 168; /* Adjusted from #b89d78 for better contrast */
            --gold: #8b9d83; --gold-rgb: 139, 157, 131;
            --gold-light: #a8b5a0; --gold-light-rgb: 168, 181, 160;
            --white: #ffffff; --white-rgb: 255, 255, 255;
            --text: #3a3a3a; --text-rgb: 58, 58, 58;
            --text-light: #6a6a6a; --text-light-rgb: 106, 106, 106; /* Adjusted from #7a7a7a for better contrast */
            --text-muted: #999; --text-muted-rgb: 153, 153, 153;
        }

        html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }

        body {
            font-family: 'Montserrat', sans-serif;
            color: var(--text);
            background: var(--cream-light);
            overflow-x: hidden;
        }

        /* Focus styles for accessibility */
        input:focus, select:focus, textarea:focus, button:focus, .lang-btn:focus, .open-btn:focus {
            outline: 2px solid var(--gold-light);
            outline-offset: 2px;
        }
        .open-btn, .rsvp-submit, .lang-btn {
            -webkit-tap-highlight-color: transparent; /* For mobile touch feedback */
        }

        /* Visually hidden for accessibility */
        .sr-only {
            position: absolute;
            width: 1px;
            height: 1px;
            padding: 0;
            margin: -1px;
            overflow: hidden;
            clip: rect(0, 0, 0, 0);
            white-space: nowrap;
            border-width: 0;
        }

        /* ═══════════════════════════════ */
        /*           COVER / ENVELOPE      */
        /* ═══════════════════════════════ */
        .cover {
            position: fixed;
            inset: 0;
            background: var(--cream);
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 1000;
            transition: opacity 1s cubic-bezier(.4,0,.2,1), transform 1s cubic-bezier(.4,0,.2,1), visibility 1s cubic-bezier(.4,0,.2,1);
        }
        .cover.hidden {
            opacity: 0;
            transform: scale(1.05);
            pointer-events: none;
            visibility: hidden;
        }
        /* ── Envelope (static) ── */
        .envelope {
            width: 90vw;
            max-width: 400px;
            position: relative;
        }

        /* Flap — static rectangle on top */
        .envelope-flap {
            background: linear-gradient(180deg, var(--green-dark) 0%, var(--green) 60%, var(--green-mid) 100%);
            border: 1px solid var(--green-dark);
            border-bottom: none;
            height: 60px;
            position: relative;
        }

        /* Wax seal — centered at the flap/body intersection */
        .seal {
            position: absolute;
            bottom: -22px;
            left: 50%;
            transform: translateX(-50%);
            z-index: 10;
            width: 52px;
            height: 44px;
            display: flex;
            align-items: center;
            justify-content: center;
            filter: drop-shadow(0 2px 4px rgba(0,0,0,0.25));
        }

        /* Envelope body */
        .envelope-body {
            background: #faf3e5;
            border: 1px solid var(--green-dark);
            border-top: 2px solid var(--green-dark);
            padding: 2.5rem 2rem 2rem;
            text-align: center;
            box-shadow: 0 4px 20px rgba(0,0,0,0.08);
        }

        .cover .bismillah {
            font-family: 'Noto Naskh Arabic', 'Cormorant Garamond', serif;
            letter-spacing: normal;
            font-size: 1rem;
            font-style: italic;
            color: var(--green-dark);
            margin-bottom: 1.5rem;
        }
        .cover .intro-text {
            font-family: 'Montserrat', sans-serif;
            font-size: 0.8rem;
            letter-spacing: 4px;
            text-transform: uppercase;
            color: var(--green-dark); /* Adjusted for better contrast */
            margin-bottom: 1rem;
        }
        .cover .names {
            font-family: 'Playfair Display', serif;
            font-size: 2.8rem;
            font-weight: 400;
            color: var(--green-deep);
            line-height: 1.2;
            margin: 0.5rem 0;
        }
        .cover .names .ampersand {
            font-family: 'Great Vibes', cursive;
            font-size: 2rem;
            color: var(--brown);
            display: block;
            margin: 0.25rem 0;
        }
        .cover .date-text {
            font-family: 'Montserrat', sans-serif;
            font-weight: 300;
            font-size: 0.85rem;
            letter-spacing: 3px;
            color: var(--green-dark);
            margin-top: 1.25rem;
        }
        .cover .to-label {
            font-family: 'Montserrat', sans-serif;
            font-size: 0.75rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--text-light);
            margin-top: 2rem;
            margin-bottom: 0.25rem;
        }
        .cover .guest-name {
            font-family: 'Cormorant Garamond', serif;
            font-size: 1.3rem;
            color: var(--green-dark);
        }
        .cover .divider-line {
            width: 40px;
            height: 1px;
            background: var(--gold-light);
            margin: 1rem auto;
        }

        .open-btn {
            margin-top: 2rem;
            padding: 14px 44px;
            background: transparent;
            border: 1px solid var(--green);
            color: var(--green-dark);
            font-family: 'Montserrat', sans-serif;
            font-weight: 400;
            font-size: 0.8rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            cursor: pointer;
            transition: all 0.4s cubic-bezier(.4,0,.2,1);
            min-height: 48px;
            animation: pulse 2s infinite ease-in-out; /* Pulse animation */
        }
        .open-btn:hover {
            background: var(--green-dark);
            color: var(--white);
            transform: translateY(-2px);
            box-shadow: 0 6px 20px rgba(var(--green-deep-rgb), 0.2);
            animation: none; /* Stop pulse on hover */
        }
        .open-btn:active { transform: translateY(0); }

        

        /* ═══════════════════════════════ */
        /*           SECTIONS              */
        /* ═══════════════════════════════ */
        section {
            min-height: 100vh;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 5rem 1.5rem;
            position: relative;
            overflow: hidden;
        }
        .section-inner {
            max-width: 520px;
            width: 100%;
            text-align: center;
            margin: 0 auto;
        }
        .section-label {
            font-family: 'Montserrat', sans-serif;
            font-size: 0.8rem;
            letter-spacing: 5px;
            text-transform: uppercase;
            color: var(--green-dark);
            margin-bottom: 0.75rem;
            display: block;
        }
        .section-title {
            font-family: 'Playfair Display', serif;
            font-size: 2.2rem;
            font-weight: 400;
            color: var(--green-deep);
            margin-bottom: 0.5rem;
            line-height: 1.3;
        }
        .section-subtitle {
            font-family: 'Great Vibes', cursive;
            font-size: 1.5rem;
            color: var(--brown);
            margin-bottom: 2rem;
        }
        .ornament {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 12px;
            margin: 1.5rem 0;
        }
        .ornament-line {
            width: 50px;
            height: 1px;
            background: linear-gradient(90deg, transparent, var(--gold-light), transparent);
        }
        .ornament-diamond {
            width: 6px;
            height: 6px;
            border: 1px solid var(--gold);
            transform: rotate(45deg);
        }

        /* ═══════════════════════════════ */
        /*              HERO               */
        /* ═══════════════════════════════ */
        .hero {
            background: linear-gradient(180deg, var(--cream-light) 0%, var(--cream) 100%);
            position: relative;
        }
        /* Decorative botanical corners */
        .hero::before {
            content: '';
            position: absolute;
            top: -20px; left: -20px;
            width: 260px; height: 380px;
            opacity: 0.12;
            background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20200%20300%22%3E%20%20%3Cpath%20d%3D%22M20%20295%20C25%20260%2040%20225%2052%20192%20C64%20159%2075%20128%2082%20100%20C89%2072%2088%2046%2078%2025%20C73%2015%2066%207%2058%202%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M52%20192%20C40%20182%2026%20178%2010%20180%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%221.0%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2210%22%20cy%3D%22180%22%20rx%3D%223.5%22%20ry%3D%225.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.55%22%20transform%3D%22rotate%28-50%2010%20180%29%22%2F%3E%20%20%3Cpath%20d%3D%22M82%20100%20C68%2090%2052%2086%2035%2088%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%221.0%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2235%22%20cy%3D%2288%22%20rx%3D%223.5%22%20ry%3D%225.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.55%22%20transform%3D%22rotate%28-35%2035%2088%29%22%2F%3E%20%20%3Cpath%20d%3D%22M82%20100%20C98%2088%20115%2078%20135%2070%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22135%22%20cy%3D%2270%22%20rx%3D%223%22%20ry%3D%225%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.50%22%20transform%3D%22rotate%2820%20135%2070%29%22%2F%3E%20%20%3Cpath%20d%3D%22M135%2070%20C140%2064%20147%2066%20148%2072%20C149%2078%20144%2081%20139%2079%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.6%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M75%20128%20C92%20120%20110%20116%20130%20118%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22130%22%20cy%3D%22118%22%20rx%3D%223%22%20ry%3D%225%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.50%22%20transform%3D%22rotate%2815%20130%20118%29%22%2F%3E%20%20%3Cpath%20d%3D%22M78%2025%20C66%2030%2052%2032%2038%2030%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2238%22%20cy%3D%2230%22%20rx%3D%223%22%20ry%3D%224.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.50%22%20transform%3D%22rotate%28-25%2038%2030%29%22%2F%3E%20%20%3Cellipse%20cx%3D%2264%22%20cy%3D%22159%22%20rx%3D%222.5%22%20ry%3D%224%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.45%22%20transform%3D%22rotate%28-40%2064%20159%29%22%2F%3E%20%20%3Cellipse%20cx%3D%2289%22%20cy%3D%2272%22%20rx%3D%222%22%20ry%3D%223.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.40%22%20transform%3D%22rotate%28-15%2089%2072%29%22%2F%3E%20%20%3Cpath%20d%3D%22M10%20180%20C5%20175%203%20168%207%20164%20C11%20160%2016%20163%2017%20168%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M38%2030%20C34%2024%2036%2018%2042%2016%20C48%2014%2050%2019%2048%2024%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E");
            background-size: contain;
            background-repeat: no-repeat;
            pointer-events: none;
        }
        .hero::after {
            content: '';
            position: absolute;
            bottom: -20px; right: -20px;
            width: 260px; height: 380px;
            opacity: 0.12;
            background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20200%20300%22%3E%20%20%3Cpath%20d%3D%22M180%205%20C175%2040%20160%2075%20148%20108%20C136%20141%20125%20172%20118%20200%20C111%20228%20112%20254%20122%20275%20C127%20285%20134%20293%20142%20298%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M148%20108%20C160%20118%20174%20122%20190%20120%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%221.0%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22190%22%20cy%3D%22120%22%20rx%3D%223.5%22%20ry%3D%225.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.55%22%20transform%3D%22rotate%2850%20190%20120%29%22%2F%3E%20%20%3Cpath%20d%3D%22M118%20200%20C132%20210%20148%20214%20165%20212%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%221.0%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22165%22%20cy%3D%22212%22%20rx%3D%223.5%22%20ry%3D%225.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.55%22%20transform%3D%22rotate%2835%20165%20212%29%22%2F%3E%20%20%3Cpath%20d%3D%22M118%20200%20C102%20188%2085%20178%2065%20170%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2265%22%20cy%3D%22170%22%20rx%3D%223%22%20ry%3D%225%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.50%22%20transform%3D%22rotate%28-20%2065%20170%29%22%2F%3E%20%20%3Cpath%20d%3D%22M65%20170%20C60%20164%2062%20157%2068%20155%20C74%20153%2076%20158%2074%20163%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.6%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M125%20172%20C108%20164%2090%20160%2070%20162%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2270%22%20cy%3D%22162%22%20rx%3D%223%22%20ry%3D%225%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.50%22%20transform%3D%22rotate%28-15%2070%20162%29%22%2F%3E%20%20%3Cpath%20d%3D%22M122%20275%20C134%20270%20148%20268%20162%20270%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22162%22%20cy%3D%22270%22%20rx%3D%223%22%20ry%3D%224.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.50%22%20transform%3D%22rotate%2825%20162%20270%29%22%2F%3E%20%20%3Cellipse%20cx%3D%22136%22%20cy%3D%22141%22%20rx%3D%222.5%22%20ry%3D%224%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.45%22%20transform%3D%22rotate%2840%20136%20141%29%22%2F%3E%20%20%3Cellipse%20cx%3D%22111%22%20cy%3D%22228%22%20rx%3D%222%22%20ry%3D%223.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.40%22%20transform%3D%22rotate%2815%20111%20228%29%22%2F%3E%20%20%3Cpath%20d%3D%22M190%20120%20C195%20115%20197%20108%20193%20104%20C189%20100%20184%20103%20183%20108%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M162%20270%20C166%20264%20164%20258%20158%20256%20C152%20254%20150%20259%20152%20264%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E");
            background-size: contain;
            background-repeat: no-repeat;
            pointer-events: none;
        }

        .hero .intro {
            font-family: 'Montserrat', sans-serif;
            font-weight: 300;
            font-size: 0.9rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--text-light);
            margin-bottom: 1rem;
            opacity: 0;
            animation: fadeUp 1.2s ease 0.4s forwards;
        }
        .hero h1 {
            font-family: 'Playfair Display', serif;
            font-size: 3.8rem;
            font-weight: 400;
            color: var(--green-deep);
            line-height: 1.1;
            opacity: 0;
            animation: fadeUp 1.2s ease 0.5s forwards;
        }
        .hero h1 .amp {
            font-family: 'Great Vibes', cursive;
            display: block;
            font-size: 2.5rem;
            color: var(--brown); /* Adjusted for better contrast */
            margin: 0.3rem 0;
        }
        .hero .tagline {
            font-family: 'Cormorant Garamond', serif;
            font-style: italic;
            font-size: 1.1rem;
            color: var(--text-light); /* Adjusted for better contrast */
            margin-top: 1.5rem;
            opacity: 0;
            animation: fadeUp 1.2s ease 0.7s forwards;
        }
        .hero .tagline.small-text {
            font-size: 0.8rem;
            color: var(--text-light);
            font-style: normal;
        }
        .hero .tagline.margin-top-sm { margin-top: 0.25rem; }
        .hero .tagline.margin-top-md { margin-top: 1rem; }

        .hero .date-badge {
            display: inline-block;
            margin-top: 2rem;
            padding: 10px 28px;
            border: 1px solid var(--gold-light);
            font-family: 'Montserrat', sans-serif;
            font-weight: 300;
            font-size: 0.8rem;
            letter-spacing: 4px;
            text-transform: uppercase;
            color: var(--green-dark);
            opacity: 0;
            animation: fadeUp 1.2s ease 0.9s forwards;
        }
        .scroll-hint {
            position: fixed !important;
            bottom: 2rem;
            left: 50% !important;
            right: auto !important;
            transform: translateX(-50%);
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 8px;
            z-index: 90;
            opacity: 0;
            transition: opacity 0.5s ease;
            pointer-events: none;
            background: transparent;
        }
        .scroll-hint.visible {
            opacity: 1;
            animation: hintFadeIn 0.8s ease forwards;
        }
        .scroll-hint.hidden {
            opacity: 0 !important;
            animation: none !important;
        }
        @keyframes hintFadeIn {
            from { opacity: 0; transform: translateX(-50%) translateY(10px); }
            to { opacity: 1; transform: translateX(-50%) translateY(0); }
        }
        .scroll-hint .scroll-arrow {
            width: 24px;
            height: 30px;
            position: relative;
        }
        .scroll-hint .scroll-arrow::before,
        .scroll-hint .scroll-arrow::after {
            content: '';
            position: absolute;
            left: 50%;
            width: 10px;
            height: 10px;
            border-right: 2.5px solid var(--green-deep);
            border-bottom: 2.5px solid var(--green-deep);
            transform-origin: center;
        }
        .scroll-hint .scroll-arrow::before {
            top: 0;
            transform: rotate(45deg) translateX(-50%);
            animation: scrollChevron 1.8s ease-in-out infinite;
        }
        .scroll-hint .scroll-arrow::after {
            top: 12px;
            transform: rotate(45deg) translateX(-50%);
            animation: scrollChevron 1.8s ease-in-out 0.3s infinite;
        }
        @keyframes scrollChevron {
            0%, 100% { opacity: 0; transform: rotate(45deg) translateX(-50%) translateY(-4px); }
            40% { opacity: 1; transform: rotate(45deg) translateX(-50%) translateY(4px); }
            80% { opacity: 0; transform: rotate(45deg) translateX(-50%) translateY(12px); }
        }
        @keyframes scrollTextPulse {
            0%, 100% { opacity: 0.6; }
            50% { opacity: 1; }
        }

        /* ═══════════════════════════════ */
        /*           COUNTDOWN             */
        /* ═══════════════════════════════ */
        .countdown-section {
            background: linear-gradient(135deg, var(--green-deep) 0%, #243d33 50%, var(--green-deep) 100%);
            color: var(--white);
            min-height: auto;
            padding: 4.5rem 1.5rem;
            position: relative;
            overflow: hidden;
        }
        .countdown-section::before {
            content: '';
            position: absolute;
            top: -20px; left: -20px;
            width: 220px; height: 300px;
            opacity: 0.15;
            background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20200%20300%22%3E%20%20%3Cpath%20d%3D%22M20%20295%20C25%20260%2040%20225%2052%20192%20C64%20159%2075%20128%2082%20100%20C89%2072%2088%2046%2078%2025%20C73%2015%2066%207%2058%202%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M52%20192%20C40%20182%2026%20178%2010%20180%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%221.0%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2210%22%20cy%3D%22180%22%20rx%3D%223.5%22%20ry%3D%225.5%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.28%22%20transform%3D%22rotate%28-50%2010%20180%29%22%2F%3E%20%20%3Cpath%20d%3D%22M82%20100%20C68%2090%2052%2086%2035%2088%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%221.0%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2235%22%20cy%3D%2288%22%20rx%3D%223.5%22%20ry%3D%225.5%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.28%22%20transform%3D%22rotate%28-35%2035%2088%29%22%2F%3E%20%20%3Cpath%20d%3D%22M82%20100%20C98%2088%20115%2078%20135%2070%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22135%22%20cy%3D%2270%22%20rx%3D%223%22%20ry%3D%225%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.35%22%20transform%3D%22rotate%2820%20135%2070%29%22%2F%3E%20%20%3Cpath%20d%3D%22M135%2070%20C140%2064%20147%2066%20148%2072%20C149%2078%20144%2081%20139%2079%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.6%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M75%20128%20C92%20120%20110%20116%20130%20118%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22130%22%20cy%3D%22118%22%20rx%3D%223%22%20ry%3D%225%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.35%22%20transform%3D%22rotate%2815%20130%20118%29%22%2F%3E%20%20%3Cpath%20d%3D%22M78%2025%20C66%2030%2052%2032%2038%2030%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2238%22%20cy%3D%2230%22%20rx%3D%223%22%20ry%3D%224.5%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.35%22%20transform%3D%22rotate%28-25%2038%2030%29%22%2F%3E%20%20%3Cellipse%20cx%3D%2264%22%20cy%3D%22159%22%20rx%3D%222.5%22%20ry%3D%224%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.30%22%20transform%3D%22rotate%28-40%2064%20159%29%22%2F%3E%20%20%3Cellipse%20cx%3D%2289%22%20cy%3D%2272%22%20rx%3D%222%22%20ry%3D%223.5%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.28%22%20transform%3D%22rotate%28-15%2089%2072%29%22%2F%3E%20%20%3Cpath%20d%3D%22M10%20180%20C5%20175%203%20168%207%20164%20C11%20160%2016%20163%2017%20168%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M38%2030%20C34%2024%2036%2018%2042%2016%20C48%2014%2050%2019%2048%2024%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E");
            background-size: contain;
            background-repeat: no-repeat;
            pointer-events: none;
        }
        .countdown-section::after {
            content: '';
            position: absolute;
            bottom: -20px; right: -20px;
            width: 220px; height: 300px;
            opacity: 0.13;
            background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20200%20300%22%3E%20%20%3Cpath%20d%3D%22M180%205%20C175%2040%20160%2075%20148%20108%20C136%20141%20125%20172%20118%20200%20C111%20228%20112%20254%20122%20275%20C127%20285%20134%20293%20142%20298%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M148%20108%20C160%20118%20174%20122%20190%20120%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%221.0%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22190%22%20cy%3D%22120%22%20rx%3D%223.5%22%20ry%3D%225.5%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.28%22%20transform%3D%22rotate%2850%20190%20120%29%22%2F%3E%20%20%3Cpath%20d%3D%22M118%20200%20C132%20210%20148%20214%20165%20212%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%221.0%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22165%22%20cy%3D%22212%22%20rx%3D%223.5%22%20ry%3D%225.5%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.28%22%20transform%3D%22rotate%2835%20165%20212%29%22%2F%3E%20%20%3Cpath%20d%3D%22M118%20200%20C102%20188%2085%20178%2065%20170%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2265%22%20cy%3D%22170%22%20rx%3D%223%22%20ry%3D%225%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.35%22%20transform%3D%22rotate%28-20%2065%20170%29%22%2F%3E%20%20%3Cpath%20d%3D%22M65%20170%20C60%20164%2062%20157%2068%20155%20C74%20153%2076%20158%2074%20163%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.6%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M125%20172%20C108%20164%2090%20160%2070%20162%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2270%22%20cy%3D%22162%22%20rx%3D%223%22%20ry%3D%225%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.35%22%20transform%3D%22rotate%28-15%2070%20162%29%22%2F%3E%20%20%3Cpath%20d%3D%22M122%20275%20C134%20270%20148%20268%20162%20270%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22162%22%20cy%3D%22270%22%20rx%3D%223%22%20ry%3D%224.5%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.35%22%20transform%3D%22rotate%2825%20162%20270%29%22%2F%3E%20%20%3Cellipse%20cx%3D%22136%22%20cy%3D%22141%22%20rx%3D%222.5%22%20ry%3D%224%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.30%22%20transform%3D%22rotate%2840%20136%20141%29%22%2F%3E%20%20%3Cellipse%20cx%3D%22111%22%20cy%3D%22228%22%20rx%3D%222%22%20ry%3D%223.5%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.28%22%20transform%3D%22rotate%2815%20111%20228%29%22%2F%3E%20%20%3Cpath%20d%3D%22M190%20120%20C195%20115%20197%20108%20193%20104%20C189%20100%20184%20103%20183%20108%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M162%20270%20C166%20264%20164%20258%20158%20256%20C152%20254%20150%20259%20152%20264%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E");
            background-size: contain;
            background-repeat: no-repeat;
            pointer-events: none;
        }
        .countdown-section .section-title { color: var(--cream); }
        .countdown-section .section-subtitle { color: var(--green-mid); }

        .countdown-grid {
            display: flex;
            justify-content: center;
            gap: 1rem;
        }
        .countdown-item {
            text-align: center;
            padding: 1rem 0.75rem;
            min-width: 65px;
        }
        .countdown-item .number {
            font-family: 'Playfair Display', serif;
            font-size: 2.8rem;
            font-weight: 400;
            display: block;
            color: var(--cream);
            line-height: 1;
        }
        .countdown-item .label {
            font-family: 'Montserrat', sans-serif;
            font-size: 0.7rem;
            font-weight: 400;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--cream);
            margin-top: 0.5rem;
        }
        .countdown-item + .countdown-item {
            border-left: 1px solid rgba(var(--green-light-rgb), 0.25);
        }

        /* ═══════════════════════════════ */
        /*            COUPLE               */
        /* ═══════════════════════════════ */
        .couple-section { background: linear-gradient(180deg, var(--white) 0%, var(--cream-light) 100%); position: relative; overflow: hidden; }
        .couple-section::before {
            content: '';
            position: absolute;
            top: -20px; right: -20px;
            width: 220px; height: 300px;
            opacity: 0.24;
            background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20200%20300%22%3E%20%20%3Cpath%20d%3D%22M180%205%20C175%2040%20160%2075%20148%20108%20C136%20141%20125%20172%20118%20200%20C111%20228%20112%20254%20122%20275%20C127%20285%20134%20293%20142%20298%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M148%20108%20C160%20118%20174%20122%20190%20120%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%221.0%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22190%22%20cy%3D%22120%22%20rx%3D%223.5%22%20ry%3D%225.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.55%22%20transform%3D%22rotate%2850%20190%20120%29%22%2F%3E%20%20%3Cpath%20d%3D%22M118%20200%20C132%20210%20148%20214%20165%20212%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%221.0%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22165%22%20cy%3D%22212%22%20rx%3D%223.5%22%20ry%3D%225.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.55%22%20transform%3D%22rotate%2835%20165%20212%29%22%2F%3E%20%20%3Cpath%20d%3D%22M118%20200%20C102%20188%2085%20178%2065%20170%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2265%22%20cy%3D%22170%22%20rx%3D%223%22%20ry%3D%225%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.50%22%20transform%3D%22rotate%28-20%2065%20170%29%22%2F%3E%20%20%3Cpath%20d%3D%22M65%20170%20C60%20164%2062%20157%2068%20155%20C74%20153%2076%20158%2074%20163%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.6%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M125%20172%20C108%20164%2090%20160%2070%20162%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2270%22%20cy%3D%22162%22%20rx%3D%223%22%20ry%3D%225%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.50%22%20transform%3D%22rotate%28-15%2070%20162%29%22%2F%3E%20%20%3Cpath%20d%3D%22M122%20275%20C134%20270%20148%20268%20162%20270%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22162%22%20cy%3D%22270%22%20rx%3D%223%22%20ry%3D%224.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.50%22%20transform%3D%22rotate%2825%20162%20270%29%22%2F%3E%20%20%3Cellipse%20cx%3D%22136%22%20cy%3D%22141%22%20rx%3D%222.5%22%20ry%3D%224%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.45%22%20transform%3D%22rotate%2840%20136%20141%29%22%2F%3E%20%20%3Cellipse%20cx%3D%22111%22%20cy%3D%22228%22%20rx%3D%222%22%20ry%3D%223.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.40%22%20transform%3D%22rotate%2815%20111%20228%29%22%2F%3E%20%20%3Cpath%20d%3D%22M190%20120%20C195%20115%20197%20108%20193%20104%20C189%20100%20184%20103%20183%20108%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M162%20270%20C166%20264%20164%20258%20158%20256%20C152%20254%20150%20259%20152%20264%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E");
            background-size: contain;
            background-repeat: no-repeat;
            pointer-events: none;
        }
        .couple-section::after {
            content: '';
            position: absolute;
            bottom: -20px; left: -20px;
            width: 220px; height: 300px;
            opacity: 0.15;
            background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20200%20300%22%3E%20%20%3Cpath%20d%3D%22M20%20295%20C25%20260%2040%20225%2052%20192%20C64%20159%2075%20128%2082%20100%20C89%2072%2088%2046%2078%2025%20C73%2015%2066%207%2058%202%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M52%20192%20C40%20182%2026%20178%2010%20180%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%221.0%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2210%22%20cy%3D%22180%22%20rx%3D%223.5%22%20ry%3D%225.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.55%22%20transform%3D%22rotate%28-50%2010%20180%29%22%2F%3E%20%20%3Cpath%20d%3D%22M82%20100%20C68%2090%2052%2086%2035%2088%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%221.0%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2235%22%20cy%3D%2288%22%20rx%3D%223.5%22%20ry%3D%225.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.55%22%20transform%3D%22rotate%28-35%2035%2088%29%22%2F%3E%20%20%3Cpath%20d%3D%22M82%20100%20C98%2088%20115%2078%20135%2070%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22135%22%20cy%3D%2270%22%20rx%3D%223%22%20ry%3D%225%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.50%22%20transform%3D%22rotate%2820%20135%2070%29%22%2F%3E%20%20%3Cpath%20d%3D%22M135%2070%20C140%2064%20147%2066%20148%2072%20C149%2078%20144%2081%20139%2079%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.6%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M75%20128%20C92%20120%20110%20116%20130%20118%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22130%22%20cy%3D%22118%22%20rx%3D%223%22%20ry%3D%225%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.50%22%20transform%3D%22rotate%2815%20130%20118%29%22%2F%3E%20%20%3Cpath%20d%3D%22M78%2025%20C66%2030%2052%2032%2038%2030%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2238%22%20cy%3D%2230%22%20rx%3D%223%22%20ry%3D%224.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.50%22%20transform%3D%22rotate%28-25%2038%2030%29%22%2F%3E%20%20%3Cellipse%20cx%3D%2264%22%20cy%3D%22159%22%20rx%3D%222.5%22%20ry%3D%224%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.45%22%20transform%3D%22rotate%28-40%2064%20159%29%22%2F%3E%20%20%3Cellipse%20cx%3D%2289%22%20cy%3D%2272%22%20rx%3D%222%22%20ry%3D%223.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.40%22%20transform%3D%22rotate%28-15%2089%2072%29%22%2F%3E%20%20%3Cpath%20d%3D%22M10%20180%20C5%20175%203%20168%207%20164%20C11%20160%2016%20163%2017%20168%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M38%2030%20C34%2024%2036%2018%2042%2016%20C48%2014%2050%2019%2048%2024%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E");
            background-size: contain;
            background-repeat: no-repeat;
            pointer-events: none;
        }
        .couple-cards {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 2rem;
        }
        .couple-card { text-align: center; }
        .couple-card .avatar-wrapper {
            width: 130px;
            height: 130px;
            margin: 0 auto 0.75rem;
            position: relative;
            overflow: hidden;
            border-radius: 50%;
        }
        .couple-card .avatar {
            width: 100%;
            height: 100%;
            border-radius: 50%;
            border: 2px solid var(--gold-light);
            object-fit: cover;
            object-position: center top;
            position: relative;
            z-index: 1;
        }
        /* Placeholder for missing images or if JS fails to load */
        .couple-card .avatar[src=""] {
            display: flex;
            align-items: center;
            justify-content: center;
            font-family: 'Playfair Display', serif;
            font-size: 2.5rem;
            color: var(--green);
            background: var(--cream-light);
        }
        .couple-card .avatar-wrapper::before {
            content: '';
            position: absolute;
            inset: -6px;
            border-radius: 50%;
            border: 1px dashed var(--green-light);
            opacity: 0.5;
        }
        .couple-card h3 {
            font-family: 'Playfair Display', serif;
            font-size: 1.6rem;
            font-weight: 500;
            color: var(--green-deep);
            margin-bottom: 0.25rem;
        }
        .couple-card .fullname {
            font-family: 'Montserrat', sans-serif;
            font-size: 0.75rem;
            font-weight: 300;
            letter-spacing: 1.5px;
            color: var(--text-light);
            text-transform: uppercase;
        }
        .couple-card .parent-names {
            font-family: 'Cormorant Garamond', serif;
            font-size: 0.9rem;
            font-style: italic;
            color: var(--text-light); /* Adjusted for better contrast */
            margin-top: 0.5rem;
            line-height: 1.6;
        }
        .couple-amp {
            font-family: 'Great Vibes', cursive;
            font-size: 2rem;
            color: var(--gold);
            line-height: 1;
        }

        /* ═══════════════════════════════ */
        /*         EVENT DETAILS           */
        /* ═══════════════════════════════ */
        .event-section { background: linear-gradient(180deg, var(--cream-light) 0%, var(--white) 100%); position: relative; overflow: hidden; }
        .event-section::before {
            content: '';
            position: absolute;
            bottom: -20px; right: -20px;
            width: 200px; height: 270px;
            opacity: 0.15;
            background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20220%22%3E%20%20%3Cpath%20d%3D%22M145%20215%20C140%20185%20130%20155%20118%20128%20C106%20101%2092%2078%2078%2055%20C68%2038%2055%2020%2040%205%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M118%20128%20C132%20120%20148%20118%20155%20122%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22155%22%20cy%3D%22122%22%20rx%3D%223%22%20ry%3D%225%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.50%22%20transform%3D%22rotate%2830%20155%20122%29%22%2F%3E%20%20%3Cpath%20d%3D%22M78%2055%20C92%2048%20108%2044%20125%2045%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22125%22%20cy%3D%2245%22%20rx%3D%223%22%20ry%3D%224.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.50%22%20transform%3D%22rotate%2820%20125%2045%29%22%2F%3E%20%20%3Cpath%20d%3D%22M92%2078%20C78%2072%2062%2070%2048%2072%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.8%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2248%22%20cy%3D%2272%22%20rx%3D%222.5%22%20ry%3D%224%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.45%22%20transform%3D%22rotate%28-15%2048%2072%29%22%2F%3E%20%20%3Cpath%20d%3D%22M40%205%20C35%200%2030%203%2033%208%20C36%2013%2041%2011%2041%206%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22106%22%20cy%3D%22101%22%20rx%3D%222%22%20ry%3D%223.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.40%22%20transform%3D%22rotate%2835%20106%20101%29%22%2F%3E%3C%2Fsvg%3E");
            background-size: contain;
            background-repeat: no-repeat;
            pointer-events: none;
        }

        /* ═══════════════════════════════ */
        /*            GALLERY              */
        /* ═══════════════════════════════ */
        .gallery-section {
            background: linear-gradient(180deg, var(--white) 0%, var(--cream-light) 50%, var(--cream) 100%);
            padding: 5rem 1.5rem;
            position: relative;
            overflow: hidden;
        }
        .gallery-section::before {
            content: '';
            position: absolute;
            top: -20px; left: -20px;
            width: 200px; height: 280px;
            opacity: 0.13;
            background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20200%20300%22%3E%20%20%3Cpath%20d%3D%22M20%20295%20C25%20260%2040%20225%2052%20192%20C64%20159%2075%20128%2082%20100%20C89%2072%2088%2046%2078%2025%20C73%2015%2066%207%2058%202%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M52%20192%20C40%20182%2026%20178%2010%20180%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%221.0%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2210%22%20cy%3D%22180%22%20rx%3D%223.5%22%20ry%3D%225.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.55%22%20transform%3D%22rotate%28-50%2010%20180%29%22%2F%3E%20%20%3Cpath%20d%3D%22M82%20100%20C68%2090%2052%2086%2035%2088%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%221.0%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2235%22%20cy%3D%2288%22%20rx%3D%223.5%22%20ry%3D%225.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.55%22%20transform%3D%22rotate%28-35%2035%2088%29%22%2F%3E%20%20%3Cpath%20d%3D%22M82%20100%20C98%2088%20115%2078%20135%2070%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22135%22%20cy%3D%2270%22%20rx%3D%223%22%20ry%3D%225%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.50%22%20transform%3D%22rotate%2820%20135%2070%29%22%2F%3E%20%20%3Cpath%20d%3D%22M135%2070%20C140%2064%20147%2066%20148%2072%20C149%2078%20144%2081%20139%2079%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.6%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M75%20128%20C92%20120%20110%20116%20130%20118%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22130%22%20cy%3D%22118%22%20rx%3D%223%22%20ry%3D%225%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.50%22%20transform%3D%22rotate%2815%20130%20118%29%22%2F%3E%20%20%3Cpath%20d%3D%22M78%2025%20C66%2030%2052%2032%2038%2030%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2238%22%20cy%3D%2230%22%20rx%3D%223%22%20ry%3D%224.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.50%22%20transform%3D%22rotate%28-25%2038%2030%29%22%2F%3E%20%20%3Cellipse%20cx%3D%2264%22%20cy%3D%22159%22%20rx%3D%222.5%22%20ry%3D%224%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.45%22%20transform%3D%22rotate%28-40%2064%20159%29%22%2F%3E%20%20%3Cellipse%20cx%3D%2289%22%20cy%3D%2272%22%20rx%3D%222%22%20ry%3D%223.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.40%22%20transform%3D%22rotate%28-15%2089%2072%29%22%2F%3E%20%20%3Cpath%20d%3D%22M10%20180%20C5%20175%203%20168%207%20164%20C11%20160%2016%20163%2017%20168%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M38%2030%20C34%2024%2036%2018%2042%2016%20C48%2014%2050%2019%2048%2024%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E");
            background-size: contain;
            background-repeat: no-repeat;
            pointer-events: none;
        }
        .gallery-section::after {
            content: '';
            position: absolute;
            bottom: -20px; right: -20px;
            width: 200px; height: 280px;
            opacity: 0.12;
            background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20200%20300%22%3E%20%20%3Cpath%20d%3D%22M180%205%20C175%2040%20160%2075%20148%20108%20C136%20141%20125%20172%20118%20200%20C111%20228%20112%20254%20122%20275%20C127%20285%20134%20293%20142%20298%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M148%20108%20C160%20118%20174%20122%20190%20120%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%221.0%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22190%22%20cy%3D%22120%22%20rx%3D%223.5%22%20ry%3D%225.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.55%22%20transform%3D%22rotate%2850%20190%20120%29%22%2F%3E%20%20%3Cpath%20d%3D%22M118%20200%20C132%20210%20148%20214%20165%20212%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%221.0%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22165%22%20cy%3D%22212%22%20rx%3D%223.5%22%20ry%3D%225.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.55%22%20transform%3D%22rotate%2835%20165%20212%29%22%2F%3E%20%20%3Cpath%20d%3D%22M118%20200%20C102%20188%2085%20178%2065%20170%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2265%22%20cy%3D%22170%22%20rx%3D%223%22%20ry%3D%225%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.50%22%20transform%3D%22rotate%28-20%2065%20170%29%22%2F%3E%20%20%3Cpath%20d%3D%22M65%20170%20C60%20164%2062%20157%2068%20155%20C74%20153%2076%20158%2074%20163%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.6%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M125%20172%20C108%20164%2090%20160%2070%20162%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2270%22%20cy%3D%22162%22%20rx%3D%223%22%20ry%3D%225%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.50%22%20transform%3D%22rotate%28-15%2070%20162%29%22%2F%3E%20%20%3Cpath%20d%3D%22M122%20275%20C134%20270%20148%20268%20162%20270%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22162%22%20cy%3D%22270%22%20rx%3D%223%22%20ry%3D%224.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.50%22%20transform%3D%22rotate%2825%20162%20270%29%22%2F%3E%20%20%3Cellipse%20cx%3D%22136%22%20cy%3D%22141%22%20rx%3D%222.5%22%20ry%3D%224%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.45%22%20transform%3D%22rotate%2840%20136%20141%29%22%2F%3E%20%20%3Cellipse%20cx%3D%22111%22%20cy%3D%22228%22%20rx%3D%222%22%20ry%3D%223.5%22%20fill%3D%22%238b9d83%22%20opacity%3D%220.40%22%20transform%3D%22rotate%2815%20111%20228%29%22%2F%3E%20%20%3Cpath%20d%3D%22M190%20120%20C195%20115%20197%20108%20193%20104%20C189%20100%20184%20103%20183%20108%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M162%20270%20C166%20264%20164%20258%20158%20256%20C152%20254%20150%20259%20152%20264%22%20fill%3D%22none%22%20stroke%3D%22%238b9d83%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E");
            background-size: contain;
            background-repeat: no-repeat;
            pointer-events: none;
        }
        .gallery-section .section-title { color: var(--green-deep); }
        .gallery-section .section-subtitle { color: var(--text-muted); }
        .gallery-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 6px;
            max-width: 500px;
            margin: 0 auto;
        }
        .gallery-grid img {
            width: 100%;
            height: 180px;
            object-fit: cover;
            border-radius: 4px;
            cursor: pointer;
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        .gallery-grid img:hover {
            transform: scale(1.02);
            box-shadow: 0 4px 20px rgba(0,0,0,0.1);
        }

        /* Lightbox */
        .lightbox {
            display: none;
            position: fixed;
            inset: 0;
            background: rgba(var(--text-rgb), 0.9);
            z-index: 10000;
            align-items: center;
            justify-content: center;
            cursor: pointer;
        }
        .lightbox.active { display: flex; }
        .lightbox img {
            max-width: 92vw;
            max-height: 88vh;
            object-fit: contain;
            border-radius: 4px;
            animation: lightboxIn 0.25s ease;
        }
        .lightbox-close {
            position: absolute;
            top: 16px;
            right: 20px;
            color: white;
            font-size: 2rem;
            cursor: pointer;
            opacity: 0.7;
            transition: opacity 0.2s;
        }
        .lightbox-close:hover { opacity: 1; }
        .lightbox-nav {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            color: white;
            font-size: 2.5rem;
            cursor: pointer;
            opacity: 0.5;
            transition: opacity 0.2s;
            padding: 0 12px;
            user-select: none;
        }
        .lightbox-nav:hover { opacity: 1; }
        .lightbox-prev { left: 8px; }
        .lightbox-next { right: 8px; }
        @keyframes lightboxIn {
            from { opacity: 0; transform: scale(0.95); }
            to { opacity: 1; transform: scale(1); }
        }
        @media (min-width: 768px) {
            .gallery-grid {
                grid-template-columns: repeat(3, 1fr);
                gap: 8px;
                max-width: 650px;
            }
            .gallery-grid img { height: 200px; }
        }
        @media (min-width: 1024px) {
            .gallery-grid {
                grid-template-columns: repeat(4, 1fr);
                max-width: 850px;
            }
            .gallery-grid img { height: 220px; }
        }
        .event-cards {
            display: flex;
            flex-direction: column;
            gap: 1.5rem;
        }
        .event-card {
            padding: 2.25rem 1.75rem;
            border: 1px solid var(--green-pale);
            background: var(--cream-light);
            position: relative;
            transition: transform 0.4s ease, box-shadow 0.4s ease;
        }
        .event-card::before {
            content: '';
            position: absolute;
            top: 0; left: 0;
            width: 100%; height: 3px;
            background: linear-gradient(90deg, var(--green-light), var(--gold-light), var(--green-light));
        }
        .event-card .event-icon {
            font-size: 1.5rem;
            margin-bottom: 0.75rem;
        }
        .event-card h3 {
            font-family: 'Playfair Display', serif;
            font-size: 1.3rem;
            font-weight: 500;
            color: var(--green-deep);
            margin-bottom: 0.75rem;
        }
        .event-card p {
            font-family: 'Cormorant Garamond', serif;
            font-size: 1rem;
            color: var(--text-light);
            line-height: 1.8;
        }
        .event-card .event-time {
            font-family: 'Montserrat', sans-serif;
            font-size: 0.75rem;
            font-weight: 400;
            letter-spacing: 2px;
            color: var(--green);
            margin-top: 0.75rem;
            text-transform: uppercase;
        }
        .event-map-link {
            display: flex;
            align-items: center;
            justify-content: center;
            min-height: 44px;
            margin-top: 0.75rem;
            padding: 8px 20px;
            border: 1px solid var(--green);
            color: var(--green-dark);
            font-family: 'Montserrat',sans-serif;
            font-size: 0.7rem;
            letter-spacing: 2px;
            text-transform: uppercase;
            text-decoration: none;
            transition: all 0.3s ease;
        }
        .event-map-link:hover {
            background: var(--green-light);
            color: var(--white);
        }
        .event-map-container {
            margin-top: 1rem;
            width: 100%;
            max-width: 400px;
            margin-left: auto;
            margin-right: auto;
            border: 1px solid var(--green-pale);
            border-radius: 2px;
            overflow: hidden;
            box-shadow: 0 4px 15px rgba(0,0,0,0.05);
        }
        .event-map-iframe {
            border: none;
            width: 100%;
            height: 250px;
        }

        @media (hover: hover) {
            .event-card:hover {
                transform: translateY(-4px);
                box-shadow: 0 12px 32px rgba(var(--green-deep-rgb), 0.08);
            }
        }

        /* ═══════════════════════════════ */
        /*              RSVP               */
        /* ═══════════════════════════════ */
        .rsvp-section {
            background: linear-gradient(135deg, var(--green-deep) 0%, #243d33 50%, var(--green-deep) 100%);
            color: var(--white);
            min-height: auto;
            padding: 5rem 1.5rem;
            position: relative;
            overflow: hidden;
        }
        .rsvp-section::before {
            content: '';
            position: absolute;
            top: -20px; right: -20px;
            width: 220px; height: 300px;
            opacity: 0.13;
            background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20200%20300%22%3E%20%20%3Cpath%20d%3D%22M180%205%20C175%2040%20160%2075%20148%20108%20C136%20141%20125%20172%20118%20200%20C111%20228%20112%20254%20122%20275%20C127%20285%20134%20293%20142%20298%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M148%20108%20C160%20118%20174%20122%20190%20120%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%221.0%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22190%22%20cy%3D%22120%22%20rx%3D%223.5%22%20ry%3D%225.5%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.28%22%20transform%3D%22rotate%2850%20190%20120%29%22%2F%3E%20%20%3Cpath%20d%3D%22M118%20200%20C132%20210%20148%20214%20165%20212%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%221.0%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22165%22%20cy%3D%22212%22%20rx%3D%223.5%22%20ry%3D%225.5%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.28%22%20transform%3D%22rotate%2835%20165%20212%29%22%2F%3E%20%20%3Cpath%20d%3D%22M118%20200%20C102%20188%2085%20178%2065%20170%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2265%22%20cy%3D%22170%22%20rx%3D%223%22%20ry%3D%225%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.35%22%20transform%3D%22rotate%28-20%2065%20170%29%22%2F%3E%20%20%3Cpath%20d%3D%22M65%20170%20C60%20164%2062%20157%2068%20155%20C74%20153%2076%20158%2074%20163%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.6%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M125%20172%20C108%20164%2090%20160%2070%20162%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2270%22%20cy%3D%22162%22%20rx%3D%223%22%20ry%3D%225%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.35%22%20transform%3D%22rotate%28-15%2070%20162%29%22%2F%3E%20%20%3Cpath%20d%3D%22M122%20275%20C134%20270%20148%20268%20162%20270%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22162%22%20cy%3D%22270%22%20rx%3D%223%22%20ry%3D%224.5%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.35%22%20transform%3D%22rotate%2825%20162%20270%29%22%2F%3E%20%20%3Cellipse%20cx%3D%22136%22%20cy%3D%22141%22%20rx%3D%222.5%22%20ry%3D%224%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.30%22%20transform%3D%22rotate%2840%20136%20141%29%22%2F%3E%20%20%3Cellipse%20cx%3D%22111%22%20cy%3D%22228%22%20rx%3D%222%22%20ry%3D%223.5%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.28%22%20transform%3D%22rotate%2815%20111%20228%29%22%2F%3E%20%20%3Cpath%20d%3D%22M190%20120%20C195%20115%20197%20108%20193%20104%20C189%20100%20184%20103%20183%20108%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M162%20270%20C166%20264%20164%20258%20158%20256%20C152%20254%20150%20259%20152%20264%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E");
            background-size: contain;
            background-repeat: no-repeat;
            pointer-events: none;
        }
        .rsvp-section::after {
            content: '';
            position: absolute;
            bottom: -20px; left: -20px;
            width: 220px; height: 300px;
            opacity: 0.12;
            background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20200%20300%22%3E%20%20%3Cpath%20d%3D%22M20%20295%20C25%20260%2040%20225%2052%20192%20C64%20159%2075%20128%2082%20100%20C89%2072%2088%2046%2078%2025%20C73%2015%2066%207%2058%202%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M52%20192%20C40%20182%2026%20178%2010%20180%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%221.0%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2210%22%20cy%3D%22180%22%20rx%3D%223.5%22%20ry%3D%225.5%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.28%22%20transform%3D%22rotate%28-50%2010%20180%29%22%2F%3E%20%20%3Cpath%20d%3D%22M82%20100%20C68%2090%2052%2086%2035%2088%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%221.0%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2235%22%20cy%3D%2288%22%20rx%3D%223.5%22%20ry%3D%225.5%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.28%22%20transform%3D%22rotate%28-35%2035%2088%29%22%2F%3E%20%20%3Cpath%20d%3D%22M82%20100%20C98%2088%20115%2078%20135%2070%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22135%22%20cy%3D%2270%22%20rx%3D%223%22%20ry%3D%225%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.35%22%20transform%3D%22rotate%2820%20135%2070%29%22%2F%3E%20%20%3Cpath%20d%3D%22M135%2070%20C140%2064%20147%2066%20148%2072%20C149%2078%20144%2081%20139%2079%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.6%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M75%20128%20C92%20120%20110%20116%20130%20118%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22130%22%20cy%3D%22118%22%20rx%3D%223%22%20ry%3D%225%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.35%22%20transform%3D%22rotate%2815%20130%20118%29%22%2F%3E%20%20%3Cpath%20d%3D%22M78%2025%20C66%2030%2052%2032%2038%2030%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2238%22%20cy%3D%2230%22%20rx%3D%223%22%20ry%3D%224.5%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.35%22%20transform%3D%22rotate%28-25%2038%2030%29%22%2F%3E%20%20%3Cellipse%20cx%3D%2264%22%20cy%3D%22159%22%20rx%3D%222.5%22%20ry%3D%224%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.30%22%20transform%3D%22rotate%28-40%2064%20159%29%22%2F%3E%20%20%3Cellipse%20cx%3D%2289%22%20cy%3D%2272%22%20rx%3D%222%22%20ry%3D%223.5%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.28%22%20transform%3D%22rotate%28-15%2089%2072%29%22%2F%3E%20%20%3Cpath%20d%3D%22M10%20180%20C5%20175%203%20168%207%20164%20C11%20160%2016%20163%2017%20168%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M38%2030%20C34%2024%2036%2018%2042%2016%20C48%2014%2050%2019%2048%2024%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E");
            background-size: contain;
            background-repeat: no-repeat;
            pointer-events: none;
        }
        .rsvp-section .section-title { color: var(--cream); }
        .rsvp-section .section-subtitle { color: var(--green-light); }

        .rsvp-section .ornament { margin-bottom: 1.5rem; }
        .rsvp-section .ornament .ornament-line { background: linear-gradient(90deg, transparent, rgba(var(--brown-light-rgb), 0.5), transparent); }
        .rsvp-section .ornament .ornament-diamond { border-color: var(--green-mid); }

        .rsvp-form {
            max-width: 420px;
            margin: 0 auto;
            display: flex;
            flex-direction: column;
            gap: 0.85rem;
        }
        .rsvp-form input,
        .rsvp-form select,
        .rsvp-form textarea {
            width: 100%;
            padding: 13px 16px;
            border: 1px solid rgba(var(--green-light-rgb), 0.4);
            background: transparent;
            color: var(--cream);
            font-family: 'Montserrat', sans-serif;
            font-weight: 300;
            font-size: 0.8rem;
            outline: none;
            transition: border-color 0.3s ease;
            min-height: 44px;
        }
        .rsvp-form input::placeholder,
        .rsvp-form textarea::placeholder { color: var(--cream); /* Adjusted for better contrast */ }
        .rsvp-form input:focus,
        .rsvp-form select:focus,
        .rsvp-form textarea:focus { border-color: var(--gold-light); }
        .rsvp-form select option { background: var(--green-deep); color: var(--cream); }
        .rsvp-form textarea { resize: vertical; min-height: 90px; }

        /* Custom select styling */
        .rsvp-form select {
            appearance: none;
            -webkit-appearance: none;
            -moz-appearance: none;
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f5f0e8'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E"); /* Adjusted fill color for better contrast */
            background-repeat: no-repeat;
            background-position: right 12px center;
            background-size: 16px;
            padding-right: 30px;
        }

        .rsvp-submit {
            padding: 14px 40px;
            background: var(--green);
            border: none;
            color: var(--white);
            font-family: 'Montserrat', sans-serif;
            font-weight: 400;
            font-size: 0.7rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            cursor: pointer;
            transition: all 0.4s cubic-bezier(.4,0,.2,1);
            min-height: 48px;
        }
        .rsvp-submit:hover {
            background: var(--green-dark);
            transform: translateY(-2px);
            box-shadow: 0 6px 20px rgba(var(--green-deep-rgb), 0.3);
        }
        .rsvp-submit:active { transform: translateY(0); }

        .rsvp-message {
            display: none;
            margin-top: 1rem;
            padding: 1rem;
            border: 1px solid rgba(var(--green-light-rgb), 0.3);
            font-family: 'Cormorant Garamond', serif;
            font-size: 1rem;
            font-style: italic;
            color: var(--cream);
            background: rgba(var(--green-light-rgb), 0.1);
        }
        .rsvp-message.success { display: block; }
        .rsvp-message.error {
            display: block;
            border-color: var(--brown); /* Corrected from var(--brown-dark) */
            color: var(--brown); /* Corrected from var(--brown-dark) */
            background: rgba(var(--brown-rgb), 0.1);
        }

        /* ═══════════════════════════════ */
        /*            WISHES               */
        /* ═══════════════════════════════ */
        .chat-container {
            max-width: 460px;
            margin: 0 auto;
        }
        .chat-messages {
            max-height: 280px;
            overflow-y: auto;
            -webkit-overflow-scrolling: touch;
            padding: 1rem;
            background: var(--white);
            border: 1px solid var(--green-pale);
            border-radius: 12px;
            display: flex;
            flex-direction: column;
            gap: 0.75rem;
            scroll-behavior: smooth;
        }
        .chat-messages::-webkit-scrollbar { width: 4px; }
        .chat-messages::-webkit-scrollbar-track { background: transparent; }
        .chat-messages::-webkit-scrollbar-thumb { background: var(--green-pale); border-radius: 2px; }
        .chat-bubble {
            display: flex;
            gap: 0.6rem;
            align-items: flex-start;
        }
        .chat-bubble .chat-avatar {
            width: 32px;
            height: 32px;
            border-radius: 50%;
            background: var(--green-light);
            color: var(--white);
            display: flex;
            align-items: center;
            justify-content: center;
            font-family: 'Playfair Display', serif;
            font-size: 0.75rem;
            flex-shrink: 0;
        }
        .chat-bubble .chat-body {
            background: var(--cream);
            padding: 0.75rem 1rem;
            border-radius: 2px 12px 12px 12px;
            max-width: 80%;
            text-align: left;
        }
        .chat-bubble .chat-name {
            font-family: 'Playfair Display', serif;
            font-size: 0.8rem;
            font-weight: 500;
            color: var(--green-deep);
            margin-bottom: 0.2rem;
        }
        .chat-bubble .chat-text {
            font-family: 'Cormorant Garamond', serif;
            font-size: 0.9rem;
            color: var(--text-light);
            line-height: 1.6;
        }
        .chat-bubble .chat-time {
            font-size: 0.7rem;
            color: var(--text-light);
            margin-top: 0.3rem;
        }
        .chat-empty {
            text-align: center;
            padding: 2rem 1rem;
            color: var(--text-light);
            font-family: 'Cormorant Garamond', serif;
            font-style: italic;
            font-size: 0.95rem;
        }
        .chat-empty.chat-error-message {
            color: var(--brown);
            font-style: normal;
        }
        .chat-empty.chat-loading {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            font-style: normal;
            color: var(--green);
        }
        .chat-empty.chat-loading::before {
            content: '';
            width: 16px;
            height: 16px;
            border: 2px solid var(--green-light);
            border-top-color: transparent;
            border-radius: 50%;
            animation: spin 0.8s linear infinite;
        }

        @media (min-width: 768px) {
            .chat-container { max-width: 520px; }
            .chat-messages { max-height: 350px; }
        }
        @media (min-width: 1024px) {
            .chat-container { max-width: 600px; }
            .chat-messages { max-height: 400px; }
        }
        @media (min-width: 1440px) {
            .chat-messages { max-height: 450px; }
        }

        /* ═══════════════════════════════ */
        /*            FOOTER               */
        /* ═══════════════════════════════ */
        .footer {
            background: linear-gradient(180deg, var(--green-deep) 0%, #1e3329 100%);
            padding: 4rem 1.5rem 2.5rem;
            text-align: center;
            position: relative;
            overflow: hidden;
        }
        .footer::before {
            content: '';
            position: absolute;
            top: 0;
            left: 50%;
            transform: translateX(-50%);
            width: 60%;
            height: 1px;
            background: linear-gradient(90deg, transparent, var(--gold-light), transparent);
        }
        .footer::after {
            content: '';
            position: absolute;
            bottom: -20px; left: 50%;
            transform: translateX(-50%);
            width: 300px; height: 200px;
            opacity: 0.15;
            background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20300%20180%22%3E%20%20%3Cpath%20d%3D%22M150%20175%20C147%20148%20140%20120%20128%2095%20C116%2070%20100%2048%2082%2030%20C70%2018%2055%208%2040%202%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M150%20175%20C153%20148%20160%20120%20172%2095%20C184%2070%20200%2048%20218%2030%20C230%2018%20245%208%20260%202%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M128%2095%20C112%2085%2095%2082%2078%2084%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2278%22%20cy%3D%2284%22%20rx%3D%222.5%22%20ry%3D%224%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.40%22%20transform%3D%22rotate%28-25%2078%2084%29%22%2F%3E%20%20%3Cpath%20d%3D%22M82%2030%20C68%2024%2055%2022%2042%2024%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.8%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%2242%22%20cy%3D%2242%22%20rx%3D%222.5%22%20ry%3D%223.5%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.35%22%20transform%3D%22rotate%28-30%2042%2024%29%22%2F%3E%20%20%3Cpath%20d%3D%22M172%2095%20C188%2085%20205%2082%20222%2084%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.9%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22222%22%20cy%3D%2284%22%20rx%3D%222.5%22%20ry%3D%224%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.40%22%20transform%3D%22rotate%2825%20222%2084%29%22%2F%3E%20%20%3Cpath%20d%3D%22M218%2030%20C232%2024%20245%2022%20258%2024%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.8%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cellipse%20cx%3D%22258%22%20cy%3D%2224%22%20rx%3D%222.5%22%20ry%3D%223.5%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.35%22%20transform%3D%22rotate%2830%20258%2024%29%22%2F%3E%20%20%3Cellipse%20cx%3D%22116%22%20cy%3D%2270%22%20rx%3D%222%22%20ry%3D%223%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.30%22%20transform%3D%22rotate%28-35%20116%2070%29%22%2F%3E%20%20%3Cellipse%20cx%3D%22184%22%20cy%3D%2270%22%20rx%3D%222%22%20ry%3D%223%22%20fill%3D%22%23a8b5a0%22%20opacity%3D%220.30%22%20transform%3D%22rotate%2835%20184%2070%29%22%2F%3E%20%20%3Cpath%20d%3D%22M40%202%20C35%20-2%2032%204%2036%208%20C40%2012%2044%209%2043%204%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22round%22%2F%3E%20%20%3Cpath%20d%3D%22M260%202%20C265%20-2%20268%204%20264%208%20C260%2012%20256%209%20257%204%22%20fill%3D%22none%22%20stroke%3D%22%23a8b5a0%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E");
            background-size: contain;
            background-repeat: no-repeat;
            pointer-events: none;
        }
        .footer .ornament { margin-bottom: 2rem; }
        .footer .ornament .ornament-line { background: linear-gradient(90deg, transparent, rgba(var(--brown-light-rgb), 0.3), transparent); }
        .footer .ornament .ornament-diamond { border-color: rgba(var(--brown-light-rgb), 0.5); }

        .footer .footer-names {
            font-family: 'Great Vibes', cursive;
            font-size: 2.5rem;
            color: var(--cream);
            margin-bottom: 0.5rem;
        }
        .footer .footer-date {
            font-family: 'Montserrat', sans-serif;
            font-weight: 300;
            font-size: 0.8rem;
            letter-spacing: 4px;
            color: var(--green-light);
        }
        .footer .hashtag {
            font-family: 'Montserrat', sans-serif;
            font-size: 0.75rem;
            letter-spacing: 3px;
            color: var(--gold-light); /* Adjusted for better contrast */
            margin-top: 1.5rem;
        }
        .footer .credit {
            font-size: 0.75rem;
            letter-spacing: 1px;
            color: var(--cream); /* Adjusted for better contrast */
            margin-top: 2.5rem;
        }

        /* ═══════════════════════════════ */
        /*          ANIMATIONS             */
        /* ═══════════════════════════════ */
        @keyframes fadeUp {
            from { opacity: 0; transform: translateY(25px); }
            to { opacity: 1; transform: translateY(0); }
        }
        @keyframes pulse {
            0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(var(--green-rgb), 0.5); }
            50% { transform: scale(1.04); box-shadow: 0 0 0 12px rgba(var(--green-rgb), 0.25); }
            70% { transform: scale(1.02); box-shadow: 0 0 0 16px rgba(var(--green-rgb), 0); }
            100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(var(--green-rgb), 0); }
        }
        @keyframes spin {
            to { transform: rotate(360deg); }
        }

        .reveal {
            opacity: 0;
            transform: translateY(35px);
            transition: opacity 0.9s cubic-bezier(.4,0,.2,1), transform 0.9s cubic-bezier(.4,0,.2,1);
        }
        .reveal.visible {
            opacity: 1;
            transform: translateY(0);
        }

        /* ═══════════════════════════════ */
        /*        RESPONSIVE: PHONES       */
        /* ═══════════════════════════════ */
        @media (max-width: 500px) {
            /* Removed chat-input-area specific styles as it's not used */
        }

        @media (max-width: 360px) {
            .cover .names { font-size: 2.2rem; }
            .hero h1 { font-size: 2.8rem; }
            .hero h1 .amp { font-size: 1.8rem; }
            .section-title { font-size: 1.8rem; }
            .countdown-item .number { font-size: 2.2rem; }
            .countdown-item { min-width: 60px; }
        }

        /* Landscape phones */
        @media (max-height: 500px) and (orientation: landscape) {
            section { min-height: auto; padding: 3rem 1.5rem; }
            .hero h1 { font-size: 2.5rem; }
            .hero h1 .amp { font-size: 1.8rem; }
            .scroll-hint { display: none; }
            .cover .names { font-size: 2rem; }
            .couple-card .avatar-wrapper { width: 80px; height: 80px; }
            .couple-card .avatar { font-size: 1.8rem; }
            .countdown-item .number { font-size: 2rem; }
        }

        /* ═══════════════════════════════ */
        /*       RESPONSIVE: TABLETS       */
        /* ═══════════════════════════════ */
        @media (min-width: 768px) {
            .section-inner { max-width: 620px; }
            section { padding: 6rem 2.5rem; }
            .cover .names { font-size: 3.5rem; }
            .hero h1 { font-size: 5rem; }
            .hero h1 .amp { font-size: 3rem; }
            .section-title { font-size: 2.8rem; }
            .section-subtitle { font-size: 1.8rem; }

            .couple-cards { flex-direction: row; gap: 3rem; justify-content: center; }
            .couple-card .avatar-wrapper { width: 150px; height: 150px; }
            .couple-card .avatar { font-size: 3rem; }
            .couple-card h3 { font-size: 1.8rem; }

            .event-cards { flex-direction: row; gap: 1.5rem; }
            .event-card { flex: 1; }

            .countdown-item .number { font-size: 3.2rem; }
            .countdown-grid { gap: 1.5rem; }
            .countdown-item { min-width: 90px; }

            .rsvp-form { max-width: 460px; }
            .wishes-list { max-width: 500px; max-height: 400px; }

            .footer .footer-names { font-size: 3rem; }
        }

        /* ═══════════════════════════════ */
        /*       RESPONSIVE: LAPTOPS       */
        /* ═══════════════════════════════ */
        @media (min-width: 1024px) {
            .section-inner { max-width: 760px; }
            section { padding: 7rem 3rem; min-height: 80vh; }

            .cover-frame { padding: 4rem 3.5rem; }
            .cover .names { font-size: 4rem; }
            .cover .names .ampersand { font-size: 2.5rem; }

            .hero { min-height: 100vh; }
            .hero h1 { font-size: 5.5rem; }
            .hero h1 .amp { font-size: 3.5rem; }
            .hero .tagline { font-size: 1.25rem; }
            .hero .date-badge { padding: 12px 36px; }

            .section-title { font-size: 3.2rem; }
            .section-subtitle { font-size: 2rem; }

            .couple-cards { gap: 4.5rem; }
            .couple-card .avatar-wrapper { width: 170px; height: 170px; }
            .couple-card .avatar { font-size: 3.5rem; }
            .couple-card h3 { font-size: 2rem; }

            .event-cards { gap: 2rem; }
            .event-card { padding: 2.75rem 2.25rem; }
            .event-card h3 { font-size: 1.5rem; }

            .countdown-item .number { font-size: 3.8rem; }
            .countdown-grid { gap: 2rem; }

            .rsvp-form { max-width: 520px; }
            .footer .footer-names { font-size: 3.5rem; }
        }

        /* ═══════════════════════════════ */
        /*     RESPONSIVE: LARGE DESKTOP   */
        /* ═══════════════════════════════ */
        @media (min-width: 1440px) {
            .section-inner { max-width: 960px; }
            section { padding: 8rem 4rem; }

            .hero h1 { font-size: 6.5rem; }
            .hero h1 .amp { font-size: 4rem; }
            .section-title { font-size: 3.8rem; }

            .couple-cards { gap: 6rem; }
            .couple-card .avatar-wrapper { width: 190px; height: 190px; }
            .countdown-item .number { font-size: 4.5rem; }
        }

        @media (min-width: 1920px) {
            body {
                display: flex;
                justify-content: center;
                background: var(--green-deep);
            }
            main {
                max-width: 1400px;
                border-left: 1px solid var(--gold-light);
                border-right: 1px solid var(--gold-light);
                box-shadow: 0 0 40px rgba(0,0,0,0.1);
                background: var(--cream-light);
            }
            .cover {
                max-width: 1400px;
                border-left: 1px solid var(--gold-light);
                border-right: 1px solid var(--gold-light);
                box-shadow: 0 0 40px rgba(0,0,0,0.1);
                background: var(--cream);
            }
            .section-inner { max-width: 1080px; }
        }

        /* ═══════════════════════════════ */
        /*         LANGUAGE TOGGLE          */
        /* ═══════════════════════════════ */
        .lang-toggle {
            position: fixed;
            top: 1.25rem;
            right: 1.25rem;
            display: flex;
            z-index: 1001;
            background: rgba(var(--cream-light-rgb), 0.95);
            backdrop-filter: blur(10px);
            border: 1px solid var(--gold-light);
            border-radius: 20px;
            padding: 4px;
            box-shadow: 0 2px 12px rgba(0,0,0,0.06);
            opacity: 1;
            visibility: visible;
        }
        .lang-toggle.visible {
            opacity: 1;
            visibility: visible;
        }
        .lang-btn {
            padding: 6px 14px;
            border: none;
            background: transparent;
            font-family: 'Montserrat', sans-serif;
            font-size: 0.7rem;
            font-weight: 500;
            letter-spacing: 2px;
            text-transform: uppercase;
            color: var(--text-light);
            cursor: pointer;
            border-radius: 16px;
            transition: all 0.3s ease;
            min-height: 44px;
            display: flex;
            align-items: center;
        }
        .lang-btn.active {
            background: var(--green-dark);
            color: var(--white);
        }
        .lang-btn:hover:not(.active) {
            color: var(--green-dark);
        }
