/* Opening splash — curtain texture + couple portrait in seal */

:root {
    --splash-cream: #f5f0e6;
    --splash-cream-muted: rgba(245, 240, 230, 0.92);
    --splash-font: "Playfair Display", Georgia, serif;
    --seal-gold-light: #fff6e0;
    --seal-gold-mid: #e8c468;
    --seal-gold: #c9a227;
    --seal-gold-deep: #8b6914;
    --seal-gold-shadow: #4a3008;
    --seal-stamp: #4a3207;
    --splash-disk-edge: #c9a227;
    --splash-disk-edge-2: #8b6914;
    /* Side drapes framing the stage (theatre-demo style — wide center, narrow wings) */
    --theater-curtain-w: clamp(3.25rem, 14vw, 9.25rem);
}

.page-home {
    --font-display: "Playfair Display", Georgia, serif;
}

.page-home:not(.splash-dismissed) {
    overflow: hidden;
}

.page-home:not(.splash-dismissed) .site-wrap {
    visibility: hidden;
}

/* ——— Full-viewport splash ——— */

.splash {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-top: env(safe-area-inset-top, 0px);
    padding-bottom: env(safe-area-inset-bottom, 0px);
    padding-left: env(safe-area-inset-left, 0px);
    padding-right: env(safe-area-inset-right, 0px);
    font-family: var(--splash-font);
    color: var(--splash-cream);
    transition:
        opacity 0.65s ease,
        visibility 0.65s ease;
}

.splash[hidden] {
    display: none;
}

/* Wavy vertical highlights: SVG pattern + gradients only */
.splash__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    background-color: #4a0c0e;
    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cg fill='none' stroke='%23f5e6d6' stroke-opacity='0.14' stroke-width='0.65'%3E%3Cpath d='M12 0 Q11 28 12.5 52 Q14 78 12 100'/%3E%3Cpath d='M28 0 Q30 24 28 48 Q26 74 29 100'/%3E%3Cpath d='M44 0 Q43 32 45 54 Q47 80 44 100'/%3E%3Cpath d='M60 0 Q62 26 60 50 Q58 76 61 100'/%3E%3Cpath d='M76 0 Q75 30 77 56 Q79 82 76 100'/%3E%3Cpath d='M92 0 Q93 22 91 46 Q89 72 93 100'/%3E%3C/g%3E%3C/svg%3E"),
        radial-gradient(ellipse 95% 75% at 50% 35%, rgba(120, 32, 36, 0.35) 0%, transparent 58%),
        repeating-linear-gradient(
            90deg,
            transparent 0,
            transparent 11px,
            rgba(255, 245, 232, 0.06) 11px,
            rgba(255, 245, 232, 0.14) 12px,
            rgba(255, 245, 232, 0.05) 13px,
            transparent 14px,
            transparent 36px
        ),
        linear-gradient(
            90deg,
            rgba(0, 0, 0, 0.28) 0%,
            rgba(255, 248, 240, 0.03) 12%,
            transparent 22%,
            transparent 40%,
            rgba(0, 0, 0, 0.12) 48%,
            transparent 58%,
            transparent 78%,
            rgba(255, 248, 240, 0.04) 86%,
            rgba(0, 0, 0, 0.22) 100%
        ),
        linear-gradient(168deg, #3a090b 0%, #5c1014 28%, #701a1f 52%, #4e0e11 78%, #320709 100%);
    background-size:
        100px 100px,
        100% 100%,
        100% 100%,
        100% 100%,
        100% 100%;
}

/* ——— Center CTA ——— */

.splash__cta {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.15rem;
    margin: 0;
    padding: 2rem;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--splash-cream);
    font-family: var(--splash-font);
}

.splash__cta:hover .splash__cta-ring,
.splash__cta:focus-visible .splash__cta-ring {
    transform: scale(1.04);
    filter: brightness(1.06) saturate(1.05);
}

.splash__cta:focus-visible {
    outline: 2px solid var(--splash-cream);
    outline-offset: 6px;
    border-radius: 12px;
}

/* Gold botanics + circular portrait in cream seal */
.splash__cta-ring {
    position: relative;
    width: clamp(7.5rem, 24vw, 11rem);
    height: clamp(7.5rem, 24vw, 11rem);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition:
        transform 0.35s ease,
        filter 0.35s ease;
}

.splash__cta-botanics {
    position: absolute;
    inset: -4%;
    width: 108%;
    height: 108%;
    pointer-events: none;
    z-index: 0;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.25));
}

.splash__cta-disk {
    position: relative;
    z-index: 1;
    width: 76%;
    height: 76%;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: radial-gradient(circle at 50% 40%, #fffefa 0%, #faf4e8 55%, #efe6d4 100%);
    box-shadow:
        0 0 0 1.5px var(--splash-disk-edge),
        0 0 0 3px #faf6ef,
        0 0 0 4.5px var(--splash-disk-edge-2),
        0 0 0 5.5px rgba(74, 48, 20, 0.12),
        0 10px 28px rgba(0, 0, 0, 0.42),
        0 3px 10px rgba(40, 10, 15, 0.35),
        inset 0 2px 12px rgba(255, 255, 255, 0.95),
        inset 0 -4px 14px rgba(92, 60, 40, 0.06);
}

.splash__cta-photo {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 38%;
}

.splash__cta-text {
    font-size: clamp(0.8rem, 2.2vw, 0.95rem);
    font-weight: 400;
    letter-spacing: 0.04em;
}

.page-home.splash-dismissed .splash {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.page-home.splash-dismissed .site-wrap {
    visibility: visible;
}

/* ——— Theater stage: side drapes + wide white center (theatre-demo reference) until scroll ——— */

body.page-home {
    background-color: var(--page-cream);
}

body.page-home.splash-dismissed {
    background-color: var(--page-cream);
}

body.page-home.curtain-open {
    background-color: var(--page-cream);
}

.page-home .site-wrap {
    position: relative;
}

.theater-curtains {
    pointer-events: none;
}

/*
 * Panels are 52vw wide so they fully cover the stage when closed.
 * Framed: translate so only --theater-curtain-w stays visible on each side.
 * theater-entrance: closed position (transform 0) — must override framed transforms below.
 */
.theater-curtains__panel {
    position: fixed;
    top: 0;
    bottom: 0;
    width: 52vw;
    max-width: none;
    z-index: 40;
    will-change: transform;
    backface-visibility: hidden;
    overflow: hidden;
    transition:
        transform 1.45s cubic-bezier(0.25, 0.82, 0.3, 1),
        box-shadow 1.1s ease,
        filter 0.95s ease;
}

.theater-curtains__fabric {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.theater-curtains__leaves {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    width: 72%;
    z-index: 1;
    pointer-events: none;
    filter: drop-shadow(-4px 0 12px rgba(0, 0, 0, 0.35));
}

.theater-curtains__leaves svg {
    display: block;
    width: 100%;
    height: 100%;
}

.theater-curtains__leaves--mirror {
    right: auto;
    left: 0;
    transform: scaleX(-1);
    filter: drop-shadow(4px 0 12px rgba(0, 0, 0, 0.35));
}

/* After tap: first paint closed, then JS removes .theater-entrance → animates to framed */
body.page-home.splash-dismissed .theater-curtains__panel--left {
    transform: translate3d(calc(-52vw + var(--theater-curtain-w)), 0, 0);
    transform-origin: right center;
}

body.page-home.splash-dismissed .theater-curtains__panel--right {
    transform: translate3d(calc(52vw - var(--theater-curtain-w)), 0, 0);
    transform-origin: left center;
}

body.page-home.theater-entrance .theater-curtains__panel--left,
body.page-home.theater-entrance .theater-curtains__panel--right {
    transform: translate3d(0, 0, 0);
}

.theater-curtains__panel--left {
    left: 0;
    transform-origin: right center;
}

.theater-curtains__panel--left .theater-curtains__fabric {
    border-right: 1px solid rgba(20, 5, 8, 0.35);
    box-shadow:
        inset 0 0 50px rgba(0, 0, 0, 0.35),
        inset -18px 0 36px rgba(0, 0, 0, 0.45),
        8px 0 32px rgba(0, 0, 0, 0.35);
    background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.1) 0%, transparent 28%),
        linear-gradient(90deg, transparent 55%, rgba(0, 0, 0, 0.18) 100%),
        repeating-linear-gradient(
            90deg,
            transparent 0,
            transparent 4px,
            rgba(255, 245, 232, 0.1) 4px,
            rgba(255, 245, 232, 0.2) 5px,
            transparent 6px,
            transparent 14px
        ),
        linear-gradient(98deg, #2a0609 0%, #6a1018 38%, #4a0c12 72%, #240508 100%);
}

.theater-curtains__panel--right {
    right: 0;
    transform-origin: left center;
}

.theater-curtains__panel--right .theater-curtains__fabric {
    border-left: 1px solid rgba(20, 5, 8, 0.35);
    box-shadow:
        inset 0 0 50px rgba(0, 0, 0, 0.35),
        inset 18px 0 36px rgba(0, 0, 0, 0.45),
        -8px 0 32px rgba(0, 0, 0, 0.35);
    background:
        linear-gradient(270deg, rgba(255, 255, 255, 0.1) 0%, transparent 28%),
        linear-gradient(270deg, transparent 55%, rgba(0, 0, 0, 0.18) 100%),
        repeating-linear-gradient(
            90deg,
            transparent 0,
            transparent 4px,
            rgba(255, 245, 232, 0.1) 4px,
            rgba(255, 245, 232, 0.2) 5px,
            transparent 6px,
            transparent 14px
        ),
        linear-gradient(262deg, #2a0609 0%, #6a1018 38%, #4a0c12 72%, #240508 100%);
}

/* Scroll: draw wings fully off-screen (from framed position) */
body.page-home.splash-dismissed.curtain-open .theater-curtains__panel--left {
    transform: translate3d(calc(-52vw - 16px), 0, 0);
    filter: brightness(0.75);
}

body.page-home.splash-dismissed.curtain-open .theater-curtains__panel--right {
    transform: translate3d(calc(52vw + 16px), 0, 0);
    filter: brightness(0.75);
}

/* Cream stage: hidden behind closed drapes, then margins animate with curtain opening */
.stage-shell {
    position: relative;
    z-index: 30;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    margin-left: var(--theater-curtain-w);
    margin-right: var(--theater-curtain-w);
    isolation: isolate;
    background: var(--page-cream);
    box-shadow:
        0 0 0 1px rgba(74, 48, 32, 0.05),
        inset 0 0 60px rgba(255, 255, 255, 0.35);
    transition:
        margin 1.45s cubic-bezier(0.25, 0.82, 0.3, 1),
        box-shadow 1s ease;
}

/* Paper depth: subtle grain + kolam-inspired lines + warm vignette */
.stage-shell::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    opacity: 0.55;
    background-image:
        repeating-linear-gradient(
            135deg,
            transparent 0,
            transparent 11px,
            rgba(74, 93, 63, 0.028) 11px,
            rgba(74, 93, 63, 0.028) 12px
        ),
        repeating-linear-gradient(
            0deg,
            transparent 0,
            transparent 3px,
            rgba(255, 255, 255, 0.45) 3px,
            rgba(255, 255, 255, 0.45) 4px
        ),
        repeating-linear-gradient(
            90deg,
            transparent 0,
            transparent 3px,
            rgba(0, 0, 0, 0.012) 3px,
            rgba(0, 0, 0, 0.012) 4px
        );
    mix-blend-mode: multiply;
}

.stage-shell::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    box-shadow:
        inset 0 0 100px rgba(92, 62, 42, 0.065),
        inset 0 0 40px rgba(90, 26, 46, 0.04);
    border-radius: inherit;
}

body.page-home.theater-entrance .stage-shell {
    margin-left: 0;
    margin-right: 0;
}

body.page-home.curtain-open .stage-shell {
    margin-left: 0;
    margin-right: 0;
    box-shadow: none;
}

.stage-main {
    position: relative;
    z-index: 34;
    flex: 1;
    width: 100%;
}

.page-home .site-header--theater {
    position: relative;
    z-index: 36;
    padding-top: 1.1rem;
    padding-bottom: 1.1rem;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.55) 0%, rgba(249, 247, 242, 0.88) 45%, rgba(249, 247, 242, 0.96) 100%);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(74, 48, 32, 0.09);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.65);
}

.page-home .site-header--theater .brand {
    font-family: "Playfair Display", Georgia, serif;
    font-size: clamp(1.05rem, 2.5vw, 1.2rem);
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #3d2818;
    transition: color 0.2s ease;
}

.page-home .site-header--theater .brand:hover,
.page-home .site-header--theater .brand:focus-visible {
    color: var(--page-maroon);
    opacity: 1;
}

.page-home .site-header--theater .site-nav a {
    font-family: "Source Sans 3", system-ui, sans-serif;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #5c4f45;
    padding: 0.35rem 0;
    border-bottom: 2px solid transparent;
    transition:
        color 0.2s ease,
        border-color 0.2s ease;
}

.page-home .site-header--theater .site-nav a:hover,
.page-home .site-header--theater .site-nav a:focus-visible {
    color: var(--page-sage);
    opacity: 1;
    border-bottom-color: rgba(201, 162, 39, 0.55);
}

.page-home .site-header--theater .site-nav a[aria-current="page"] {
    color: var(--page-sage);
    border-bottom-color: var(--page-gold-soft);
    text-decoration: none;
}

/* Gold vines at far left / right of cream stage (both corners) */
.stage-corner-vine {
    position: absolute;
    top: 0;
    bottom: 0;
    width: clamp(14px, 2.8vw, 24px);
    z-index: 31;
    pointer-events: none;
    opacity: 0.95;
    display: block;
}

.stage-corner-vine--left {
    left: clamp(6px, 1.5vw, 18px);
}

.stage-corner-vine--right {
    right: clamp(6px, 1.5vw, 18px);
}

.page-home .site-footer--theater {
    position: relative;
    z-index: 36;
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.4) 0%, rgba(249, 247, 242, 0.95) 100%);
    border-top: 1px solid rgba(74, 48, 32, 0.09);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5);
}

.page-home .site-footer--theater .site-footer__inner p {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 0.95rem;
    font-style: italic;
    color: #5c4f45;
    letter-spacing: 0.06em;
}

/* Hero: Canva + parents / countdown card */
.stage-invite {
    padding: clamp(1.25rem, 4vw, 2.5rem) clamp(0.75rem, 3vw, 1.5rem) clamp(2rem, 5vw, 3rem);
    margin: 0 auto;
    min-height: min(56vh, 32rem);
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.stage-invite__canva-inner {
    width: 100%;
    max-width: min(40rem, 100%);
    margin-inline: auto;
}

/* Block below Canva — cream, petals, gold corners, sage titles */
.invite-below {
    --invite-sage: #5c6d5e;
    --invite-gold: #b8941f;
    --invite-gold-soft: #c9a227;
    --invite-ink: #4a4540;
    --invite-cream: var(--page-cream);

    position: relative;
    margin-top: clamp(1.35rem, 3.8vw, 2.15rem);
    padding: clamp(1.35rem, 3.5vw, 2rem) clamp(1rem, 3vw, 1.65rem) clamp(1.5rem, 4vw, 2.25rem);
    background: var(--invite-cream);
    border-radius: 6px;
    box-shadow: 0 1px 0 rgba(74, 48, 32, 0.04);
    overflow: hidden;
}

.invite-below__petals {
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.55;
    background-image:
        radial-gradient(ellipse 10px 6px at 12% 18%, rgba(232, 180, 190, 0.45) 0%, transparent 70%),
        radial-gradient(ellipse 8px 5px at 88% 22%, rgba(240, 190, 198, 0.4) 0%, transparent 70%),
        radial-gradient(ellipse 9px 6px at 42% 8%, rgba(228, 175, 186, 0.35) 0%, transparent 70%),
        radial-gradient(ellipse 7px 5px at 68% 35%, rgba(236, 188, 196, 0.38) 0%, transparent 70%),
        radial-gradient(ellipse 11px 7px at 22% 72%, rgba(220, 168, 180, 0.32) 0%, transparent 70%),
        radial-gradient(ellipse 8px 5px at 91% 78%, rgba(232, 182, 192, 0.36) 0%, transparent 70%),
        radial-gradient(ellipse 9px 6px at 55% 88%, rgba(224, 172, 184, 0.3) 0%, transparent 70%),
        radial-gradient(ellipse 6px 4px at 8% 55%, rgba(238, 192, 200, 0.28) 0%, transparent 70%);
}

.invite-below__corners {
    position: absolute;
    inset: 10px;
    pointer-events: none;
    border: 1px solid transparent;
    background:
        linear-gradient(var(--invite-gold-soft), var(--invite-gold-soft)) top left / 22px 1px no-repeat,
        linear-gradient(var(--invite-gold-soft), var(--invite-gold-soft)) top left / 1px 22px no-repeat,
        linear-gradient(var(--invite-gold-soft), var(--invite-gold-soft)) top right / 22px 1px no-repeat,
        linear-gradient(var(--invite-gold-soft), var(--invite-gold-soft)) top right / 1px 22px no-repeat,
        linear-gradient(var(--invite-gold-soft), var(--invite-gold-soft)) bottom left / 22px 1px no-repeat,
        linear-gradient(var(--invite-gold-soft), var(--invite-gold-soft)) bottom left / 1px 22px no-repeat,
        linear-gradient(var(--invite-gold-soft), var(--invite-gold-soft)) bottom right / 22px 1px no-repeat,
        linear-gradient(var(--invite-gold-soft), var(--invite-gold-soft)) bottom right / 1px 22px no-repeat;
    opacity: 0.65;
}

.invite-below__inner {
    position: relative;
    z-index: 1;
}

.invite-below__blessings {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(1rem, 2.8vw, 1.2rem);
    font-weight: 600;
    font-style: italic;
    color: var(--invite-sage);
    text-align: center;
    margin: 0 0 clamp(1rem, 2.8vw, 1.35rem);
    letter-spacing: 0.02em;
}

.invite-below__parents {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(1rem, 4vw, 2.5rem);
    text-align: center;
    margin-bottom: clamp(1.15rem, 3vw, 1.65rem);
}

@media (max-width: 520px) {
    .invite-below__parents {
        grid-template-columns: 1fr;
        gap: 1.35rem;
    }
}

.invite-below__col-label {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(0.62rem, 1.65vw, 0.72rem);
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--invite-gold);
    margin: 0 0 0.65rem;
}

.invite-below__name {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(0.88rem, 2.2vw, 1rem);
    font-weight: 500;
    color: var(--invite-ink);
    margin: 0 0 0.35rem;
    line-height: 1.45;
}

.invite-below__place {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(0.82rem, 2vw, 0.94rem);
    font-weight: 500;
    color: var(--invite-ink);
    margin: 0.5rem 0 0;
    line-height: 1.4;
    opacity: 0.92;
}

.invite-below__rule {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin: 0 0 clamp(1.1rem, 3vw, 1.5rem);
}

.invite-below__rule-line {
    flex: 1;
    max-width: 42%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(184, 148, 31, 0.75), transparent);
}

.invite-below__rule-diamond {
    width: 5px;
    height: 5px;
    background: var(--invite-gold-soft);
    transform: rotate(45deg);
    flex-shrink: 0;
    opacity: 0.9;
}

.invite-below__countdown-heading {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(1rem, 2.8vw, 1.2rem);
    font-weight: 600;
    font-style: italic;
    color: var(--invite-sage);
    text-align: center;
    margin: 0 0 0.35rem;
}

.invite-below__until {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(0.65rem, 1.75vw, 0.78rem);
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--invite-ink);
    text-align: center;
    margin: 0 0 clamp(0.85rem, 2.5vw, 1.15rem);
    opacity: 0.88;
}

.invite-below__timer {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: center;
    gap: 0.35rem 0.5rem;
}

.invite-below__unit {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 4.5rem;
}

.invite-below__num {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(1.75rem, 5.5vw, 2.35rem);
    font-weight: 600;
    line-height: 1;
    color: var(--invite-sage);
}

.invite-below__unit-label {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(0.58rem, 1.5vw, 0.68rem);
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--invite-ink);
    margin-top: 0.35rem;
    opacity: 0.85;
}

.invite-below__sep {
    font-family: Georgia, serif;
    font-size: 1.35rem;
    line-height: 1;
    color: var(--invite-gold-soft);
    padding: 0 0.15rem 0.85rem;
    opacity: 0.85;
}

/* Save-the-date poster below countdown */
.wedding-poster-block {
    --poster-rose: #a5424b;
    --poster-sage: #4a5d3f;
    --poster-sage-deep: #3d4a38;

    margin-top: clamp(1.75rem, 4.5vw, 2.75rem);
    padding-top: clamp(1.5rem, 4vw, 2.25rem);
    border-top: 1px solid rgba(74, 48, 32, 0.07);
    text-align: center;
    position: relative;
}

.wedding-poster-block::before {
    content: "";
    display: block;
    width: min(8rem, 45vw);
    height: 3px;
    margin: 0 auto 1.35rem;
    border-radius: 2px;
    background: linear-gradient(90deg, transparent, rgba(201, 162, 39, 0.35), var(--page-gold-soft), rgba(201, 162, 39, 0.35), transparent);
}

.wedding-poster-block__intro {
    max-width: 36rem;
    margin: 0 auto clamp(1.15rem, 3vw, 1.65rem);
}

.wedding-poster-block__eyebrow {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(0.72rem, 1.85vw, 0.86rem);
    font-weight: 700;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--poster-sage);
    margin: 0 0 0.55rem;
    line-height: 1.3;
}

.wedding-poster-block__eyebrow::before,
.wedding-poster-block__eyebrow::after {
    content: "❧";
    font-size: 0.85em;
    margin: 0 0.35em;
    opacity: 0.55;
    font-weight: 400;
    letter-spacing: 0;
}

.wedding-poster-block__tagline {
    font-family: "Great Vibes", cursive;
    font-size: clamp(1.35rem, 3.8vw, 1.75rem);
    font-weight: 400;
    font-style: normal;
    color: var(--poster-sage);
    margin: 0 0 1rem;
    line-height: 1.35;
}

.wedding-poster-block__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.25rem 0.45rem;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(0.78rem, 1.9vw, 0.9rem);
    line-height: 1.5;
    color: var(--poster-sage-deep);
}

.wedding-poster-block__names {
    font-family: "Playfair Display", Georgia, serif;
    font-weight: 500;
    font-size: clamp(1.02rem, 2.5vw, 1.18rem);
    color: var(--poster-rose);
    letter-spacing: 0.03em;
}

.wedding-poster-block__dot {
    color: #b8941f;
    opacity: 0.85;
    user-select: none;
}

.wedding-poster-block__when {
    font-weight: 600;
    color: var(--poster-rose);
    opacity: 0.92;
}

.wedding-poster-block__where {
    flex-basis: 100%;
    max-width: 28rem;
    margin-left: auto;
    margin-right: auto;
    font-weight: 500;
}

@media (min-width: 520px) {
    .wedding-poster-block__where {
        flex-basis: auto;
        max-width: none;
    }
}

.wedding-poster-block__figure {
    margin: 0;
    border-radius: 10px;
    overflow: hidden;
    box-shadow:
        0 6px 28px rgba(45, 35, 30, 0.09),
        0 0 0 1px rgba(74, 93, 63, 0.07);
    background: var(--page-cream);
}

.wedding-poster-block__img {
    display: block;
    width: 100%;
    height: auto;
    vertical-align: middle;
}

@media (max-width: 420px) {
    .invite-below__unit {
        min-width: 3.35rem;
    }

    .invite-below__unit-label {
        letter-spacing: 0.1em;
        font-size: clamp(0.52rem, 2.8vw, 0.62rem);
    }

    .invite-below__sep {
        padding-left: 0.05rem;
        padding-right: 0.05rem;
    }
}

@media (max-width: 380px) {
    .stage-corner-vine {
        width: 10px;
        opacity: 0.75;
    }

    .stage-corner-vine--left {
        left: 2px;
    }

    .stage-corner-vine--right {
        right: 2px;
    }

    .invite-below__timer {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.65rem 0.5rem;
        max-width: 15.5rem;
        margin-inline: auto;
    }

    .invite-below__sep {
        display: none;
    }

    .invite-below__unit {
        min-width: 0;
    }
}

/* Mobile: no horizontal scroll, usable stage width, touch-friendly nav */
.page-home .site-wrap {
    overflow-x: clip;
    max-width: 100%;
}

@supports not (overflow: clip) {
    .page-home .site-wrap {
        overflow-x: hidden;
    }
}

.stage-shell,
.stage-main {
    min-width: 0;
    max-width: 100%;
}

.stage-invite__canva-inner {
    min-width: 0;
}

.canva-embed {
    max-width: 100%;
}

@media (max-width: 420px) {
    body.page-home {
        --theater-curtain-w: clamp(2.35rem, 10.5vw, 7.25rem);
    }

    .page-home .site-header--theater {
        padding-left: calc(0.85rem + env(safe-area-inset-left, 0px));
        padding-right: calc(0.85rem + env(safe-area-inset-right, 0px));
    }

    .page-home .section--theater-below {
        padding-top: clamp(1.75rem, 5vw, 2.5rem);
        padding-bottom: clamp(1.75rem, 5vw, 2.5rem);
    }

    .page-home .site-nav a {
        padding-top: 0.5rem;
        padding-bottom: 0.5rem;
    }

    .wedding-poster-block__eyebrow {
        letter-spacing: 0.22em;
    }

    .venue-section__map-chip {
        top: 6px;
        left: 6px;
        padding: 0.35rem 0.5rem;
        font-size: 0.65rem;
    }
}

.page-home .section--theater-below {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
    border-top: 1px solid rgba(74, 48, 32, 0.08);
    background: var(--page-cream);
}

.page-home .wedding-feast.section--theater-below {
    background: linear-gradient(180deg, rgba(201, 162, 39, 0.08) 0%, transparent 42%), var(--page-cream);
    border-top-color: rgba(201, 162, 39, 0.15);
    padding-left: clamp(1.25rem, 5vw, 2.5rem);
    padding-right: clamp(1.25rem, 5vw, 2.5rem);
}

.page-home .venue-section.section--theater-below {
    background: linear-gradient(180deg, rgba(74, 93, 63, 0.09) 0%, transparent 50%), var(--page-cream);
    border-top-color: rgba(74, 93, 63, 0.12);
    padding-left: clamp(0.75rem, 3vw, 1.5rem);
    padding-right: clamp(0.75rem, 3vw, 1.5rem);
}

.wedding-feast__inner {
    max-width: 33rem;
    margin-inline: auto;
    text-align: center;
}

.wedding-feast__ornament {
    display: flex;
    justify-content: center;
    margin: 0 0 0.65rem;
}

.wedding-feast__ornament svg {
    width: min(7.5rem, 42vw);
    height: auto;
    color: var(--page-gold-soft);
}

.wedding-feast__accent {
    font-family: "Great Vibes", cursive;
    font-size: clamp(1.35rem, 4vw, 1.85rem);
    font-weight: 400;
    color: var(--page-maroon);
    margin: 0 0 0.65rem;
    line-height: 1.2;
}

.wedding-feast__figure {
    margin: 0 auto 0.85rem;
    width: min(9.25rem, 42vw);
    max-width: 10.5rem;
    aspect-ratio: 1;
    border-radius: 50%;
    overflow: hidden;
    box-shadow:
        0 0 0 2px rgba(201, 162, 39, 0.5),
        0 0 0 5px rgba(255, 255, 255, 0.92),
        0 0 0 6px rgba(90, 26, 46, 0.1),
        0 10px 28px rgba(45, 35, 28, 0.12);
}

.wedding-feast__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 42%;
}

.wedding-feast__title {
    font-family: "Playfair Display", Georgia, serif;
    font-size: clamp(1.5rem, 3.6vw, 1.95rem);
    font-weight: 600;
    color: #3d2818;
    margin: 0 0 0.35rem;
    letter-spacing: 0.02em;
}

.wedding-feast__kicker {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(1rem, 2.4vw, 1.12rem);
    font-weight: 600;
    font-style: italic;
    color: var(--page-sage);
    margin: 0 0 1rem;
    letter-spacing: 0.06em;
}

.wedding-feast__lead {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(0.95rem, 2.2vw, 1.05rem);
    font-weight: 500;
    line-height: 1.65;
    color: var(--page-ink-muted);
    margin: 0 0 1.1rem;
}

.wedding-feast__text {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(0.95rem, 2.2vw, 1.05rem);
    font-weight: 500;
    line-height: 1.65;
    color: var(--page-ink-muted);
    margin: 0 0 1.35rem;
}

.wedding-feast__note {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(0.82rem, 1.85vw, 0.9rem);
    font-style: italic;
    color: #6b5f54;
    margin: 0;
    line-height: 1.55;
}

.wedding-feast__note-tel {
    font-style: normal;
    font-weight: 600;
    color: #5a3d28;
    text-decoration: underline;
    text-decoration-color: rgba(201, 162, 39, 0.55);
    text-underline-offset: 0.12em;
    white-space: nowrap;
}

.wedding-feast__note-tel:hover,
.wedding-feast__note-tel:focus-visible {
    color: var(--page-sage);
    text-decoration-color: rgba(201, 162, 39, 0.85);
    opacity: 1;
}

/* Where we celebrate — venue, map, sage / gold */
.venue-section__shell {
    position: relative;
    max-width: 42rem;
    margin-inline: auto;
    padding: clamp(1.5rem, 4vw, 2.25rem) clamp(1rem, 3vw, 1.5rem) clamp(1.75rem, 4vw, 2.5rem);
    border-radius: 8px;
    background:
        radial-gradient(ellipse 70% 55% at 0% 0%, rgba(232, 200, 210, 0.2) 0%, transparent 55%),
        radial-gradient(ellipse 65% 50% at 100% 100%, rgba(180, 205, 185, 0.18) 0%, transparent 55%),
        var(--page-cream);
    overflow: hidden;
}

.venue-section__petals {
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.5;
    background-image:
        radial-gradient(ellipse 9px 6px at 18% 28%, rgba(232, 180, 190, 0.4) 0%, transparent 72%),
        radial-gradient(ellipse 8px 5px at 82% 22%, rgba(240, 190, 198, 0.35) 0%, transparent 72%),
        radial-gradient(ellipse 10px 6px at 72% 68%, rgba(224, 172, 184, 0.3) 0%, transparent 72%),
        radial-gradient(ellipse 7px 5px at 12% 78%, rgba(236, 188, 196, 0.32) 0%, transparent 72%);
}

.venue-section__corners {
    position: absolute;
    inset: 12px;
    pointer-events: none;
    background:
        linear-gradient(#c9a227, #c9a227) top left / 26px 1px no-repeat,
        linear-gradient(#c9a227, #c9a227) top left / 1px 26px no-repeat,
        linear-gradient(#c9a227, #c9a227) bottom right / 26px 1px no-repeat,
        linear-gradient(#c9a227, #c9a227) bottom right / 1px 26px no-repeat;
    opacity: 0.6;
}

.venue-section__inner {
    position: relative;
    z-index: 1;
    text-align: center;
}

.venue-section__title {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(1.05rem, 2.6vw, 1.25rem);
    font-weight: 600;
    font-style: italic;
    color: #4a5d3f;
    margin: 0 0 0.65rem;
    letter-spacing: 0.03em;
}

.venue-section__name {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(1.45rem, 4vw, 1.85rem);
    font-weight: 700;
    color: #4a5d3f;
    margin: 0 0 0.5rem;
    line-height: 1.2;
}

.venue-section__event-label {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(0.62rem, 1.45vw, 0.72rem);
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #a67c2a;
    margin: 0 0 0.4rem;
}

.venue-section__when {
    font-family: "Source Sans 3", system-ui, sans-serif;
    font-size: clamp(0.88rem, 2.1vw, 0.98rem);
    font-weight: 600;
    letter-spacing: 0.06em;
    color: #a67c2a;
    margin: 0 0 0.35rem;
}

.venue-section__address {
    font-family: "Source Sans 3", system-ui, sans-serif;
    font-size: clamp(0.82rem, 1.9vw, 0.9rem);
    font-weight: 500;
    color: #4a4540;
    margin: 0 0 clamp(1.15rem, 3vw, 1.6rem);
    line-height: 1.45;
}

.venue-section__map-shell {
    position: relative;
    margin: 0 auto clamp(1.15rem, 3vw, 1.5rem);
    max-width: 100%;
}

.venue-section__map-chip {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.65rem;
    font-family: "Source Sans 3", system-ui, sans-serif;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-decoration: none;
    color: #2d3a28;
    background: rgba(255, 255, 255, 0.92);
    border-radius: 999px;
    box-shadow: 0 1px 6px rgba(0, 0, 0, 0.12);
    border: 1px solid rgba(74, 93, 63, 0.12);
}

.venue-section__map-chip:hover,
.venue-section__map-chip:focus-visible {
    background: #fff;
    color: #1a2418;
}

.venue-section__map-chip-icon {
    flex-shrink: 0;
    opacity: 0.85;
}

.venue-section__map-frame {
    position: relative;
    width: 100%;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 22px rgba(45, 35, 30, 0.1);
    border: 1px solid rgba(74, 93, 63, 0.1);
    aspect-ratio: 4 / 3;
    background: #e8e6e1;
}

.venue-section__map {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.venue-section__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.65rem 1.35rem;
    font-family: "Source Sans 3", system-ui, sans-serif;
    font-size: 0.88rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-decoration: none;
    text-transform: none;
    color: #fff;
    background: #5c6d5e;
    border-radius: 999px;
    border: none;
    box-shadow: 0 2px 10px rgba(74, 93, 63, 0.25);
    transition:
        background 0.2s ease,
        transform 0.2s ease,
        box-shadow 0.2s ease;
}

.venue-section__cta:hover,
.venue-section__cta:focus-visible {
    background: #4a5d4f;
    box-shadow: 0 4px 14px rgba(74, 93, 63, 0.3);
}

.venue-section__cta:focus-visible {
    outline: 2px solid #c9a227;
    outline-offset: 3px;
}

.venue-section__cta-icon {
    display: flex;
    opacity: 0.95;
}

@media (prefers-reduced-motion: no-preference) {
    .venue-section__cta:hover {
        transform: translateY(-1px);
    }
}

/* Canva embed — portrait ratio; maroon + gold mat reads as mounted art */
.canva-embed {
    position: relative;
    width: 100%;
    height: 0;
    padding-top: 141.4286%;
    padding-bottom: 0;
    margin-top: 0;
    margin-bottom: 0;
    overflow: hidden;
    border-radius: 10px;
    background: linear-gradient(152deg, #fffefb 0%, #f4ece0 48%, #ebe3d6 100%);
    box-shadow:
        0 0 0 1px rgba(90, 26, 46, 0.18),
        0 0 0 5px #faf6ef,
        0 0 0 6px rgba(201, 162, 39, 0.55),
        0 0 0 7px rgba(74, 48, 32, 0.06),
        0 12px 40px rgba(45, 35, 28, 0.14);
}

.canva-embed__iframe {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    border: none;
    padding: 0;
    margin: 0;
}

@media (prefers-reduced-motion: no-preference) {
    .js-reveal {
        opacity: 0;
        transform: translate3d(0, 20px, 0);
        transition:
            opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
            transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
    }

    .js-reveal.is-revealed {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .js-reveal {
        opacity: 1;
        transform: none;
    }

    .theater-curtains__panel,
    .stage-shell {
        transition-duration: 0.01ms;
        transition-delay: 0s;
    }

    body.page-home.splash-dismissed.curtain-open .theater-curtains__panel--left {
        transform: translate3d(calc(-52vw - 16px), 0, 0);
        filter: none;
    }

    body.page-home.splash-dismissed.curtain-open .theater-curtains__panel--right {
        transform: translate3d(calc(52vw + 16px), 0, 0);
        filter: none;
    }
}
