 @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=Montserrat:wght@400;500;600;700&display=swap');

        :root {
            --primary: #ffffff;
            --accent: #a5b68d;
            --text: #333333;
        }
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        html,
        body {
            font-family: "Montserrat", sans-serif;
            color: var(--text);
            background: var(--primary);
            scroll-behavior: smooth;
            direction: ltr;
        }
        body.no-scroll {
            overflow: hidden;
            height: 100vh;
        }
        .hands-image {
            width: 100%;
            height: auto;
            display: block;
            margin-bottom: 1rem;
        }
        section:not(.intro-slide) {
            min-height: auto;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            text-align: center;
            padding: 0.9rem;
            margin-left: auto;
            max-width: 97%;
            margin-right: auto;
        }
        .intro-slide {
            width: 100%;
            min-height: 100vh;
            background: url("hug.jpg") center top no-repeat;
            background-size: cover;
            position: relative;
            overflow: hidden;
            will-change: background-position;
        }
        .intro-slide::before {
            content: "";
            position: absolute;
            inset: 0;
            background: rgba(0, 0, 0, 0.75);
            z-index: 1;
        }
        .intro-slide.dimmed-off::before {
            background: rgba(0, 0, 0, 0); /* No dimming when dimmed-off class is applied */
        }
        #startButton {
            visibility: hidden;
            position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
            background: rgba(0, 0, 0, 0.5);
            color: white;
            border: 2px solid rgba(255, 255, 255, 0.6);
            padding: 0.5rem 0.75rem;
            border-radius: 8px;
            font-size: 1.25rem;
            font-weight: 600;
            cursor: pointer;
            z-index: 2;
            backdrop-filter: blur(2px);
            -webkit-tap-highlight-color: transparent;
            outline: none;
            box-shadow: none;
        }
        #startButton:focus {
            outline: none;
            box-shadow: inset 0 0 8px rgba(255, 255, 255, 0.3);
            background-color: rgba(0, 0, 0, 0.7);
        }
        #startButton:hover,
        #startButton:active {
            background-color: rgba(0, 0, 0, 0.7);
            box-shadow: none;
        }
        h1.great {
            margin-bottom: 0.5rem;
        }

#date {
  margin-top: 2.7rem;
}
.centered-names {
  display: flex;
  margin-top: 0.9rem;
  flex-direction: row; /* changed from column */
  justify-content: center; /* center items horizontally */
  align-items: center; /* center items vertically */
  flex-wrap: wrap; /* optional, for better wrapping on small screens */
  gap: 0.5rem; /* optional, spacing between names and ampersand */
  width: 100%;
  max-width: 100%;
  text-align: center; /* fallback for any inline text alignment */
}

.centered-names .amp {
  font-family: 'Playfair Display', serif;
  font-size: clamp(2rem, 5vw, 5.4rem);
  color: var(--accent);
}

.centered-names .name {
  font-family: 'Playfair Display', serif;
  font-size: clamp(2rem, 5vw, 5.4rem);
  color: var(--accent);
}

        h2 {
            font-size: clamp(1.2rem, 5vw, 1.8rem);
            font-weight: 600;
            margin-bottom: 0.4rem;
        }
        h3 {
            font-size: clamp(1rem, 4vw, 1.5rem);
            font-weight: 600;
            margin-bottom: 0.4rem;
        }
        p,
        li {
            font-size: clamp(0.85rem, 3vw, 1rem);
            line-height: 1.6;
        }

        #quoteAuthor {
            font-size: 0.9em;
            display: block;
            opacity: 0.7;
        }

        blockquote {
            max-width: 90%;
            font-size: clamp(1rem, 4.25vw, 1.5rem);
            font-style: italic;
            line-height: 1.5;
        }
        .countdown {
            display: flex;
            gap: 0.5rem;
            margin: 0.4rem 0 0;
            flex-wrap: nowrap;
            justify-content: center;
            overflow-x: auto;
        }
        .countdown .box {
            padding: 0.4rem 0.6rem;
            background: rgba(0, 0, 0, 0.05);
            border-radius: 6px;
            display: flex;
            align-items: baseline;
            font-weight: 600;
        }
        .countdown .num {
            font-size: clamp(1.8rem, 5.5vw, 2.7rem);
            font-weight: 600;
            color: var(--accent);
        }
        .countdown .label {
            font-size: 0.75em;
            margin-left: 0.2em;
        }
        #hosts {
            text-transform: uppercase;
            font-weight: 550;
            font-size: 0.9rem;
            color: var(--accent);
            margin-bottom: 0.4rem;
        }

        #belovedName {
    font-family: 'Playfair Display', serif;
    font-size: clamp(1.5rem, 4vw, 4.5rem);
    font-weight: 600;
    text-align: center;
    position: absolute;
    top: 70%;
    left: 50%;
    width: 95vw; /* make width responsive */
    max-width: 100%;
    transform: translate(-50%, -50%);
    color: white;
    z-index: 2;
    visibility: hidden;
    white-space: normal;       /* Allow text wrapping */
    overflow-wrap: break-word; /* Break long names */
    word-break: break-word;    /* Support for edge cases */
        }

        /* Location Map Button */
        a.btn {
            width: 100%;
            padding: 0.75rem;
            font-size: clamp(0.9rem, 3vw, 1rem);
            font-family: "Montserrat", sans-serif;
            font-weight: 600;
            margin-top: 1rem;
            color: #ffffff;
            background: var(--accent);
            border: none;
            border-radius: 8px;
            text-decoration: none;
            -webkit-tap-highlight-color: transparent;
            transition: transform 0.1s ease;
            touch-action: manipulation;
        }

        a.btn:focus,
        a.btn:active {
            outline: none;
            box-shadow: none;
            transform: scale(0.95);
        }
        /* RSVP Submit Button */
        .rsvp-form-card button {
            width: 100%;
            padding: 0.75rem;
            font-size: clamp(0.9rem, 3vw, 1rem);
            font-family: "Montserrat", sans-serif;
            font-weight: 600;
            color: #ffffff;
            background: var(--accent);
            border: none;
            border-radius: 8px;
            cursor: pointer;
            -webkit-tap-highlight-color: transparent;
            transition: background 0.3s ease, transform 0.1s ease;
            touch-action: manipulation;
        }

        .rsvp-form-card button:focus,
        .rsvp-form-card button:active {
            outline: none;
            box-shadow: none;
            transform: scale(0.95);
        }

        .rsvp-form-card button:hover:not(:disabled) {
            background: #8b9a76;
        }

        /* Ensure scale resets after release */
        a.btn:not(:active),
        .rsvp-form-card button:not(:active) {
            transform: scale(1);
        }

        .rsvp-form-card {
            width: 100%;
            background: var(--primary);
            border-radius: 12px;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.08);
            padding: 1.5rem;
            transition: transform 0.2s ease, box-shadow 0.2s ease;
        }
        .rsvp-form-card label {
            display: block;
            margin-bottom: 0.5rem;
            font-size: clamp(0.85rem, 3vw, 1rem);
            font-weight: 600;
            color: var(--text);
            text-align: left;
        }
        [dir="rtl"] .rsvp-form-card label {
            text-align: right;
        }

        .rsvp-form-card select {
            appearance: none;
            width: 100%;
            padding: 0.75rem 2rem 0.75rem 1rem;
            font-size: clamp(0.85rem, 3vw, 1rem);
            font-family: "Montserrat", sans-serif;
            border: 1px solid #e2e8f0;
            border-radius: 8px;
            background: transparent;
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");
            background-repeat: no-repeat;
            background-position: right 0.75rem center;
            background-size: 1rem;
            color: var(--text);
            transition: border-color 0.3s ease, box-shadow 0.3s ease;
            margin-bottom: 1rem;
            cursor: pointer;
            line-height: 1.5;
            -webkit-tap-highlight-color: transparent;
        }
        .rsvp-form-card select:disabled {
            background: transparent;
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");
            background-repeat: no-repeat;
            background-position: right 0.75rem center;
            background-size: 1rem;
            border-color: #e2e8f0;
            opacity: 0.7;
            cursor: not-allowed;
        }
        [dir="rtl"] .rsvp-form-card select:disabled {
            background-position: left 0.75rem center;
        }
#rsvpTitle {
  margin-bottom: 1rem;
}
        .rsvp-form-card select:focus {
            outline: none;
            border-color: var(--accent);
            box-shadow: 0 0 0 3px rgba(165, 182, 141, 0.2);
            background: transparent;
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");
            background-repeat: no-repeat;
            background-position: right 0.75rem center;
            background-size: 1rem;
        }

        .rsvp-form-card select:active {
            outline: none;
            -webkit-tap-highlight-color: transparent;
        }
        .rsvp-form-card button:disabled {
            background: var(--accent);
            opacity: 0.5;
            cursor: not-allowed;
            transform: none;
        }

        /* Hide dropdown arrow and style single-guest field */
        .rsvp-form-card select.single-guest {
            background-image: none; /* Remove dropdown arrow */
            appearance: none; /* Ensure no native dropdown styling */
            cursor: default; /* Indicate non-interactivity */
            padding-right: 1rem; /* Adjust padding to align with other inputs */
        }

        /* Optional: Make the disabled single-guest field look like a static text field */
        .rsvp-form-card select.single-guest:disabled {
            background: #f8f8f8; /* Light background to mimic text input */
            border-color: #e2e8f0;
            color: var(--text);
            opacity: 1; /* Override default disabled opacity */
        }

        @media (min-width: 600px) {
            section {
                padding: 1rem 1.2rem;
                margin-bottom: 1rem;
                max-width: 600px;
            }
            .spaced-section {
                margin-bottom: 2rem;
            }
            .intro-slide {
                min-height: 70vh;
                background-size: cover;
            }
            h2 {
                font-size: clamp(1.5rem, 4vw, 2.2rem);
            }
            h3 {
                font-size: clamp(1.25rem, 3.5vw, 1.75rem);
            }
            p,
            li {
                font-size: clamp(0.9rem, 2.8vw, 1.1rem);
            }
            blockquote {
                max-width: 26ch;
                font-size: clamp(1rem, 4.25vw, 1.5rem);
            }
            #hosts {
                font-size: 0.9rem;
            }
            a.btn {
                padding: 0.75rem 1.25rem;
                font-size: 1rem;
            }
        }
