/* /Components/Wedding/CountdownScene.razor.rz.scp.css */
.countdown-scene[b-xrmnpsawu0] {
    position: relative;
    padding: 120px 20px;
    background: linear-gradient(135deg, #203028, #2b3d33 46%, #23342c);
    color: #f7f1e7;
}

.countdown-scene__shell[b-xrmnpsawu0] {
    width: min(1100px, 100%);
    margin: 0 auto;
    text-align: center;
}

.countdown-scene__header[b-xrmnpsawu0] {
    margin-bottom: 50px;
}

    .countdown-scene__header span[b-xrmnpsawu0] {
        display: block;
        margin-bottom: 12px;
        color: var(--color-gold-light);
        font-size: 11px;
        letter-spacing: .24em;
    }

    .countdown-scene__header h2[b-xrmnpsawu0] {
        margin: 0;
        font-weight: 400;
        font-size: clamp(34px, 4vw, 64px);
        line-height: 1.08;
    }

.countdown-scene__grid[b-xrmnpsawu0] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}

    .countdown-scene__grid article[b-xrmnpsawu0] {
        padding: 28px 16px;
        border: 1px solid rgba(213,187,132,.22);
        background: rgba(255,255,255,.03);
        backdrop-filter: blur(4px);
    }

    .countdown-scene__grid strong[b-xrmnpsawu0] {
        display: block;
        margin-bottom: 10px;
        font-size: clamp(36px, 4vw, 68px);
        font-weight: 400;
        color: #fff7e8;
    }

    .countdown-scene__grid span[b-xrmnpsawu0] {
        font-size: 11px;
        letter-spacing: .22em;
        color: rgba(247,241,231,.72);
    }

@media (max-width: 700px) {
    .countdown-scene[b-xrmnpsawu0] {
        padding: 90px 16px;
    }

    .countdown-scene__grid[b-xrmnpsawu0] {
        grid-template-columns: repeat(2, 1fr);
    }

        .countdown-scene__grid strong[b-xrmnpsawu0] {
            font-size: 34px;
        }
}
/* /Components/Wedding/IntroScene.razor.rz.scp.css */
.intro-scene[b-v8gwek77mv] {
    position: relative;
    min-height: 100svh;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 36px 20px 92px;
    background: radial-gradient( ellipse at 50% 32%, #fffdf9 0%, #fcf5ec 38%, rgba(252,245,236,.82) 60%, transparent 78% ), linear-gradient( 180deg, #fcf7f0 0%, #f4ebdf 100% );
}

.intro-scene__frame[b-v8gwek77mv] {
    position: absolute;
    inset: 14px;
    border: 1px solid rgba(190,154,88,.20);
    pointer-events: none;
}

.intro-scene__glow[b-v8gwek77mv] {
    position: absolute;
    left: 50%;
    top: 39%;
    width: min(920px, 82vw);
    aspect-ratio: 1 / .66;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: radial-gradient( circle, rgba(255,255,255,.88), transparent 72% );
    filter: blur(24px);
    pointer-events: none;
}

.intro-scene__content[b-v8gwek77mv] {
    position: relative;
    z-index: 2;
    width: min(1080px, 100%);
    text-align: center;
}

/* -------------------------------------------------------
   TRANSPARENT BOTANICAL MONOGRAM
------------------------------------------------------- */

.intro-scene__rings[b-v8gwek77mv] {
    position: relative;
    width: min(540px, 80vw);
    margin: 0 auto 4px;
    display: flex;
    align-items: center;
    justify-content: center;
}

    .intro-scene__rings img[b-v8gwek77mv] {
        display: block;
        width: 100%;
        height: auto;
        object-fit: contain;
        mix-blend-mode: normal;
        filter: drop-shadow( 0 16px 28px rgba(45,56,47,.06) );
        user-select: none;
        pointer-events: none;
    }

/* -------------------------------------------------------
   COPY
------------------------------------------------------- */

.intro-scene__eyebrow[b-v8gwek77mv] {
    margin: 0 0 18px;
    color: #898982;
    font-family: var(--font-ui);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .35em;
}

/*
 * IMPORTANT:
 * remove every legacy border/outline decoration
 */
.intro-scene__names[b-v8gwek77mv] {
    position: relative;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: none !important;
    color: var(--color-forest);
    font-family: var(--font-display);
    font-size: clamp(58px, 7vw, 112px);
    font-weight: 400;
    line-height: .92;
}

    .intro-scene__names[b-v8gwek77mv]::before,
    .intro-scene__names[b-v8gwek77mv]::after {
        content: none !important;
        display: none !important;
        border: 0 !important;
        background: none !important;
    }

    .intro-scene__names span[b-v8gwek77mv] {
        border: 0 !important;
        outline: 0 !important;
        background: none !important;
        box-shadow: none !important;
    }

    .intro-scene__names small[b-v8gwek77mv] {
        display: inline-block;
        margin: 0 .13em;
        border: 0 !important;
        outline: 0 !important;
        background: none !important;
        box-shadow: none !important;
        color: var(--color-gold);
        font-size: .66em;
        font-weight: 400;
    }

.intro-scene__ornament[b-v8gwek77mv] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin: 24px 0 18px;
}

    .intro-scene__ornament span[b-v8gwek77mv] {
        width: 82px;
        height: 1px;
        background: linear-gradient( 90deg, transparent, var(--color-gold) );
    }

        .intro-scene__ornament span:last-child[b-v8gwek77mv] {
            background: linear-gradient( 90deg, var(--color-gold), transparent );
        }

    .intro-scene__ornament i[b-v8gwek77mv] {
        color: var(--color-gold);
        font-size: 10px;
        font-style: normal;
    }

.intro-scene__date[b-v8gwek77mv] {
    margin: 0;
    color: #696c67;
    font-family: var(--font-ui);
    font-size: 11px;
    letter-spacing: .42em;
}

/* -------------------------------------------------------
   SCROLL HINT
------------------------------------------------------- */

.intro-scene__scroll[b-v8gwek77mv] {
    position: absolute;
    z-index: 4;
    left: 50%;
    bottom: 24px;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    color: #918e87;
}

    .intro-scene__scroll span[b-v8gwek77mv] {
        font-family: var(--font-ui);
        font-size: 9px;
        letter-spacing: .28em;
    }

    .intro-scene__scroll i[b-v8gwek77mv] {
        position: relative;
        width: 20px;
        height: 34px;
        border: 1px solid rgba(190,154,88,.55);
        border-radius: 999px;
    }

        .intro-scene__scroll i[b-v8gwek77mv]::after {
            content: "";
            position: absolute;
            left: 50%;
            top: 7px;
            width: 3px;
            height: 7px;
            transform: translateX(-50%);
            border-radius: 999px;
            background: var(--color-gold);
            animation: intro-scroll-wheel-b-v8gwek77mv 1.6s ease-in-out infinite;
        }

@keyframes intro-scroll-wheel-b-v8gwek77mv {
    0%, 100% {
        opacity: .3;
        transform: translateX(-50%) translateY(0);
    }

    50% {
        opacity: 1;
        transform: translateX(-50%) translateY(8px);
    }
}

/* -------------------------------------------------------
   MOBILE
------------------------------------------------------- */

@media (max-width: 700px) {
    .intro-scene[b-v8gwek77mv] {
        padding: 22px 14px 82px;
    }

    .intro-scene__frame[b-v8gwek77mv] {
        inset: 10px;
    }

    .intro-scene__rings[b-v8gwek77mv] {
        width: min(350px, 88vw);
        margin-bottom: 4px;
    }

    .intro-scene__eyebrow[b-v8gwek77mv] {
        max-width: 310px;
        margin: 0 auto 15px;
        font-size: 8px;
        line-height: 1.7;
        letter-spacing: .27em;
    }

    .intro-scene__names[b-v8gwek77mv] {
        font-size: 61px;
    }

        .intro-scene__names span[b-v8gwek77mv] {
            display: block;
        }

        .intro-scene__names small[b-v8gwek77mv] {
            display: block;
            margin: 2px 0;
            font-size: 34px;
        }

    .intro-scene__ornament[b-v8gwek77mv] {
        margin: 18px 0 14px;
    }

        .intro-scene__ornament span[b-v8gwek77mv] {
            width: 46px;
        }

    .intro-scene__date[b-v8gwek77mv] {
        font-size: 9px;
        letter-spacing: .32em;
    }
}
/* /Components/Wedding/InvitationScene.razor.rz.scp.css */
.invitation-scene[b-6351a52jq9] {
    position: relative;
    height: 450vh;
    overflow: clip;
    background: radial-gradient( circle at 50% 28%, #fffdfa 0%, #fcf5ec 38%, transparent 68% ), linear-gradient( 180deg, #fcf7f0 0%, #f1e6d6 73%, #294238 100% );
}

.invitation-scene__sticky[b-6351a52jq9] {
    position: sticky;
    top: 0;
    width: 100%;
    height: 100svh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    perspective: 1800px;
    transform-style: preserve-3d;
}

.invitation-scene__light[b-6351a52jq9] {
    position: absolute;
    left: 50%;
    top: 55%;
    width: min(900px, 82vw);
    aspect-ratio: 1;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: radial-gradient( circle, rgba(255, 255, 255, .88), transparent 72% );
    filter: blur(28px);
    pointer-events: none;
}

/* -------------------------------------------------------
   CINEMATIC DOVES
------------------------------------------------------- */

.invitation-doves[b-6351a52jq9] {
    position: absolute;
    z-index: 34;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.invitation-dove[b-6351a52jq9] {
    position: absolute;
    left: 50%;
    top: 43%;
    width: clamp(112px, 10vw, 172px);
    opacity: 0;
    will-change: transform, opacity;
    filter: drop-shadow( 0 12px 18px rgba(43, 55, 47, .09) );
}

    .invitation-dove svg[b-6351a52jq9] {
        display: block;
        width: 100%;
        height: auto;
        overflow: visible;
    }

.invitation-dove--right svg[b-6351a52jq9] {
    transform: scaleX(-1);
}

.invitation-dove__body[b-6351a52jq9],
.invitation-dove__head[b-6351a52jq9],
.invitation-dove__wing[b-6351a52jq9] {
    fill: rgba(255, 253, 248, .97);
    stroke: rgba(172, 144, 93, .44);
    stroke-width: 1.25;
    stroke-linejoin: round;
}

.invitation-dove__wing[b-6351a52jq9] {
    transform-box: fill-box;
    transform-origin: 58% 74%;
    animation: invitation-dove-wing-b-6351a52jq9 760ms ease-in-out infinite alternate;
}

.invitation-dove__wing--lower[b-6351a52jq9] {
    animation-delay: -220ms;
}

.invitation-dove__beak[b-6351a52jq9] {
    fill: rgba(197, 157, 88, .86);
}

.invitation-dove__tail[b-6351a52jq9] {
    fill: none;
    stroke: rgba(172, 144, 93, .44);
    stroke-width: 1.2;
    stroke-linecap: round;
}

.invitation-dove__eye[b-6351a52jq9] {
    fill: rgba(36, 56, 47, .72);
}

@keyframes invitation-dove-wing-b-6351a52jq9 {
    from {
        transform: rotate(-5deg) translateY(0);
    }

    to {
        transform: rotate(12deg) translateY(-3px);
    }
}

/* -------------------------------------------------------
   SCENE INTRO
------------------------------------------------------- */

.invitation-scene__intro[b-6351a52jq9] {
    position: absolute;
    z-index: 40;
    left: 50%;
    top: 7svh;
    width: min( 800px, calc(100% - 32px) );
    transform: translateX(-50%);
    text-align: center;
    pointer-events: none;
}

    .invitation-scene__intro span[b-6351a52jq9] {
        display: block;
        margin-bottom: 12px;
        color: #bd9756;
        font-family: var(--font-ui);
        font-size: 10px;
        font-weight: 600;
        letter-spacing: .34em;
    }

    .invitation-scene__intro h2[b-6351a52jq9] {
        margin: 0;
        color: var(--color-forest);
        font-family: var(--font-display);
        font-size: clamp( 40px, 5vw, 70px );
        font-weight: 400;
        line-height: .96;
    }

/* -------------------------------------------------------
   ENVELOPE STAGE
------------------------------------------------------- */

.invitation-stage[b-6351a52jq9] {
    position: relative;
    z-index: 10;
    width: min( 1000px, calc(100vw - 30px) );
    display: flex;
    align-items: center;
    justify-content: center;
    transform-style: preserve-3d;
}

.envelope[b-6351a52jq9] {
    position: relative;
    width: min( 720px, 68vw );
    aspect-ratio: 1.28 / 1;
    isolation: isolate;
    transform-style: preserve-3d;
    will-change: transform, opacity;
}

.envelope__shadow[b-6351a52jq9] {
    position: absolute;
    z-index: -1;
    left: 8%;
    right: 8%;
    bottom: -35px;
    height: 68px;
    border-radius: 50%;
    background: rgba(43, 33, 20, .20);
    filter: blur(32px);
    opacity: .34;
}

.envelope__body[b-6351a52jq9] {
    position: relative;
    width: 100%;
    height: 100%;
    border: 1px solid rgba(190, 155, 92, .26);
    background: transparent;
    box-shadow: 0 34px 88px rgba(55, 42, 24, .12);
    transform-style: preserve-3d;
}

.envelope__inside[b-6351a52jq9] {
    position: absolute;
    z-index: 1;
    inset: 0;
    background: linear-gradient( 180deg, #e5d4bc 0%, #eee0cb 52%, #f6ecdf 100% );
}

    .envelope__inside[b-6351a52jq9]::after {
        content: "";
        position: absolute;
        left: 7%;
        right: 7%;
        bottom: 1px;
        height: 18px;
        background: linear-gradient( 180deg, rgba(77, 56, 31, .06), transparent );
        filter: blur(7px);
        opacity: .42;
        pointer-events: none;
    }

/* -------------------------------------------------------
   CARD MASK

   Important:
   - bottom stays exactly at the envelope bottom
   - top extends far above the envelope
   - therefore the invitation can rise upward freely
   - but can NEVER stick out underneath the closed envelope
------------------------------------------------------- */

.envelope__card-mask[b-6351a52jq9] {
    position: absolute;
    z-index: 4;
    left: 0;
    right: 0;
    top: -76%;
    bottom: 0;
    overflow: hidden;
    pointer-events: none;
}

/* -------------------------------------------------------
   INVITATION CARD
------------------------------------------------------- */

.invitation-card[b-6351a52jq9] {
    position: absolute;
    z-index: 1;
    left: 50%;
    bottom: 2rem;
    width: 91%;
    aspect-ratio: 1.72 / 1;
    transform: translateX(-50%);
    transform-style: preserve-3d;
    will-change: transform, opacity;
    backface-visibility: hidden;
}

.invitation-card__inner[b-6351a52jq9] {
    width: 100%;
    height: 100%;
    padding: clamp( 22px, 3vw, 40px );
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: linear-gradient( 135deg, #fffdfa, #fbf3e8 );
    border: 1px solid rgba(194, 155, 88, .20);
    box-shadow: 0 22px 62px rgba(55, 42, 24, .09);
    text-align: center;
    filter: none !important;
    -webkit-font-smoothing: antialiased;
    text-rendering: geometricPrecision;
    backface-visibility: hidden;
}

.invitation-card__eyebrow[b-6351a52jq9] {
    margin: 1px 0;
    color: #43534a;
    font-family: var(--font-ui);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .13em;
}

.invitation-card__script[b-6351a52jq9] {
    margin: 9px 0 14px;
    color: #bb9251;
    font-family: var(--font-display);
    font-size: clamp( 20px, 2vw, 30px );
    font-style: italic;
    line-height: 1.05;
}

.invitation-card__names[b-6351a52jq9] {
    width: min( 650px, 100% );
    display: grid;
    grid-template-columns: minmax(0, 1fr) 120px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
}

    .invitation-card__names h3[b-6351a52jq9] {
        margin: 0;
        color: #24382f;
        font-family: var(--font-display);
        font-size: clamp( 40px, 4.1vw, 70px );
        font-weight: 400;
        line-height: .94;
    }

        .invitation-card__names h3:first-child[b-6351a52jq9] {
            text-align: right;
        }

        .invitation-card__names h3:last-child[b-6351a52jq9] {
            text-align: left;
        }

.invitation-card__rings[b-6351a52jq9] {
    position: relative;
    height: 72px;
    overflow: visible;
    display: flex;
    align-items: center;
    justify-content: center;
}

    .invitation-card__rings img[b-6351a52jq9] {
        width: 122px;
        height: auto;
        object-fit: contain;
        filter: saturate(.88);
        pointer-events: none;
    }

.invitation-card__ornament[b-6351a52jq9] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin: 9px 0 7px;
}

    .invitation-card__ornament span[b-6351a52jq9] {
        width: 58px;
        height: 1px;
        background: linear-gradient( 90deg, transparent, #bd9756 );
    }

        .invitation-card__ornament span:last-child[b-6351a52jq9] {
            background: linear-gradient( 90deg, #bd9756, transparent );
        }

    .invitation-card__ornament i[b-6351a52jq9] {
        color: #bd9756;
        font-style: normal;
        font-size: 9px;
    }

.invitation-card__date[b-6351a52jq9] {
    margin: 0 0 12px;
    color: #45574d;
    font-family: var(--font-ui);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .24em;
}

.invitation-card__events[b-6351a52jq9] {
    width: min( 620px, 100% );
    display: grid;
    grid-template-columns: 1fr 30px 1fr;
}

    .invitation-card__events article[b-6351a52jq9] {
        padding: 0 9px;
    }

        .invitation-card__events article > span[b-6351a52jq9] {
            display: block;
            margin-bottom: 5px;
            color: #ad8244;
            font-family: var(--font-ui);
            font-size: 8.5px;
            font-weight: 600;
            letter-spacing: .12em;
        }

    .invitation-card__events strong[b-6351a52jq9] {
        display: block;
        margin-bottom: 5px;
        color: #273b31;
        font-family: var(--font-display);
        font-size: 25px;
        font-weight: 500;
        line-height: 1;
    }

    .invitation-card__events p[b-6351a52jq9] {
        margin: 0;
        color: #405048;
        font-family: var(--font-ui);
        font-size: 12px;
        font-weight: 500;
        line-height: 1.55;
        letter-spacing: .01em;
    }

.invitation-card__line[b-6351a52jq9] {
    position: relative;
}

    .invitation-card__line[b-6351a52jq9]::before {
        content: "";
        position: absolute;
        left: 50%;
        top: 0;
        bottom: 0;
        width: 1px;
        background: rgba(189, 151, 86, .32);
    }

    .invitation-card__line i[b-6351a52jq9] {
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        padding: 5px 0;
        background: #fbf4e9;
        color: #bd9756;
        font-size: 8px;
        font-style: normal;
    }

/* -------------------------------------------------------
   FRONT OF ENVELOPE
------------------------------------------------------- */

.envelope__side[b-6351a52jq9] {
    position: absolute;
    z-index: 8;
    top: 24%;
    bottom: 0;
    width: 61%;
    background: linear-gradient( 145deg, #f2e6d5, #faf1e4 );
    pointer-events: none;
    will-change: transform, opacity;
}

.envelope__side--left[b-6351a52jq9] {
    left: 0;
    clip-path: polygon( 0 0, 100% 100%, 0 100% );
}

.envelope__side--right[b-6351a52jq9] {
    right: 0;
    clip-path: polygon( 100% 0, 100% 100%, 0 100% );
}

.envelope__bottom[b-6351a52jq9] {
    position: absolute;
    z-index: 9;
    left: 0;
    right: 0;
    bottom: 0;
    height: 68%;
    background: linear-gradient( 180deg, #f8eee0, #ecddc8 );
    clip-path: polygon( 0 100%, 50% 16%, 100% 100% );
    pointer-events: none;
    will-change: transform, opacity;
}

/* -------------------------------------------------------
   FLAP
------------------------------------------------------- */

.envelope__flap[b-6351a52jq9] {
    position: absolute;
    z-index: 12;
    left: 0;
    top: 0;
    width: 100%;
    height: 53%;
    clip-path: polygon( 0 0, 100% 0, 50% 100% );
    transform-origin: top center;
    transform-style: preserve-3d;
    background: linear-gradient( 180deg, #f7ead8, #e7d5ba );
    border-top: 1px solid rgba(194, 155, 88, .20);
    will-change: transform, opacity;
}

/* -------------------------------------------------------
   ENGRAVED MONOGRAM

   No PNG.
   The whole mark is built from envelope material,
   inner shadows, gold lines and subtle green leaves.
------------------------------------------------------- */

.envelope__engraving[b-6351a52jq9] {
    position: absolute;
    z-index: 15;
    left: 50%;
    top: 56%;
    width: 252px;
    height: 136px;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translate(-50%, -50%);
    pointer-events: none;
    will-change: opacity, transform;
}

/*
 * Soft paper backing prevents invitation typography
 * from visually bleeding through the seal.
 * The radial edge makes it disappear into the envelope,
 * rather than looking like another rectangle.
 */
.envelope__engraving-paper[b-6351a52jq9] {
    position: absolute;
    z-index: -1;
    left: 50%;
    top: 50%;
    width: 238px;
    height: 132px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: radial-gradient( ellipse at center, rgba(242, 230, 213, .99) 0%, rgba(242, 230, 213, .96) 48%, rgba(242, 230, 213, .68) 67%, transparent 82% );
}

.envelope__engraved-ring[b-6351a52jq9] {
    position: relative;
    width: 108px;
    height: 108px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    border: 1.5px solid rgba(183, 139, 67, .72);
    background: radial-gradient( circle at 38% 32%, rgba(255, 255, 255, .33), transparent 42% ), rgba(235, 221, 201, .27);
    box-shadow: inset 0 6px 11px rgba(93, 68, 36, .10), inset 0 -4px 8px rgba(255, 255, 255, .54), 0 1px 0 rgba(255, 255, 255, .68), 0 -1px 0 rgba(122, 88, 46, .08);
}

    .envelope__engraved-ring[b-6351a52jq9]::after {
        content: "";
        position: absolute;
        inset: 7px;
        border-radius: 50%;
        border: 1px solid rgba(189, 147, 76, .17);
        box-shadow: inset 0 2px 6px rgba(90, 65, 34, .07);
    }

.envelope__engraved-ring--left[b-6351a52jq9] {
    margin-right: -12px;
}

.envelope__engraved-ring--right[b-6351a52jq9] {
    margin-left: -12px;
}

.envelope__engraved-ring > span[b-6351a52jq9] {
    position: relative;
    z-index: 4;
    color: rgba(39, 58, 48, .88);
    font-family: var(--font-display);
    font-size: 39px;
    font-weight: 400;
    line-height: 1;
    text-shadow: 0 1px 0 rgba(255, 255, 255, .46);
}

.envelope__engraving-amp[b-6351a52jq9] {
    position: absolute;
    z-index: 8;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 26px;
    height: 26px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #efe2cf;
    color: rgba(179, 134, 62, .83);
    font-family: var(--font-display);
    font-size: 17px;
    line-height: 1;
    box-shadow: 0 0 0 5px rgba(239, 226, 207, .72);
}

/* -------------------------------------------------------
   BOTANICAL DETAIL ON ENGRAVED RINGS
------------------------------------------------------- */

.envelope__leaf[b-6351a52jq9] {
    position: absolute;
    z-index: 5;
    width: 17px;
    height: 8px;
    border-radius: 100% 0 100% 0;
    background: linear-gradient( 135deg, rgba(94, 121, 99, .82), rgba(118, 139, 112, .58) );
    box-shadow: inset 0 1px 1px rgba(255, 255, 255, .18);
}

.envelope__leaf--left-top[b-6351a52jq9] {
    left: 8px;
    top: 18px;
    transform: rotate(-28deg);
}

.envelope__leaf--left-bottom[b-6351a52jq9] {
    left: 13px;
    bottom: 14px;
    transform: rotate(22deg) scaleX(-1);
}

.envelope__leaf--right-top[b-6351a52jq9] {
    right: 8px;
    top: 18px;
    transform: rotate(28deg) scaleX(-1);
}

.envelope__leaf--right-bottom[b-6351a52jq9] {
    right: 13px;
    bottom: 14px;
    transform: rotate(-22deg);
}

    /*
 * Tiny secondary leaves.
 */
    .envelope__leaf--left-top[b-6351a52jq9]::after,
    .envelope__leaf--left-bottom[b-6351a52jq9]::after,
    .envelope__leaf--right-top[b-6351a52jq9]::after,
    .envelope__leaf--right-bottom[b-6351a52jq9]::after {
        content: "";
        position: absolute;
        width: 13px;
        height: 6px;
        border-radius: 100% 0 100% 0;
        background: rgba(109, 132, 106, .60);
    }

.envelope__leaf--left-top[b-6351a52jq9]::after {
    left: 10px;
    top: 9px;
    transform: rotate(29deg);
}

.envelope__leaf--left-bottom[b-6351a52jq9]::after {
    left: 10px;
    top: -7px;
    transform: rotate(-30deg);
}

.envelope__leaf--right-top[b-6351a52jq9]::after {
    right: 10px;
    top: 9px;
    transform: rotate(29deg);
}

.envelope__leaf--right-bottom[b-6351a52jq9]::after {
    right: 10px;
    top: -7px;
    transform: rotate(-30deg);
}

/* -------------------------------------------------------
   PORTAL
------------------------------------------------------- */

.invitation-scene__portal[b-6351a52jq9] {
    position: absolute;
    z-index: 70;
    left: 50%;
    top: 50%;
    width: min( 840px, calc(100% - 34px) );
    transform: translate(-50%, -50%);
    padding: clamp( 40px, 5vw, 72px );
    border: 1px solid rgba(213, 184, 123, .24);
    background: linear-gradient( 145deg, rgba(35, 56, 46, .98), rgba(45, 68, 57, .96) );
    box-shadow: 0 38px 110px rgba(17, 27, 22, .27);
    text-align: center;
    opacity: 0;
    pointer-events: none;
}

    .invitation-scene__portal span[b-6351a52jq9] {
        display: block;
        margin-bottom: 16px;
        color: #dabd7f;
        font-family: var(--font-ui);
        font-size: 10px;
        font-weight: 600;
        letter-spacing: .36em;
    }

    .invitation-scene__portal h2[b-6351a52jq9] {
        margin: 0;
        color: #fff8ec;
        font-family: var(--font-display);
        font-size: clamp( 48px, 6vw, 88px );
        font-weight: 400;
        line-height: .94;
        text-shadow: 0 12px 28px rgba(0, 0, 0, .12);
    }

    .invitation-scene__portal p[b-6351a52jq9] {
        margin: 20px 0 0;
        color: rgba(255, 248, 236, .82);
        font-family: var(--font-display);
        font-size: clamp( 20px, 2vw, 27px );
        font-style: italic;
        line-height: 1.45;
    }

    .invitation-scene__portal i[b-6351a52jq9] {
        display: inline-block;
        margin-top: 24px;
        color: #dabd7f;
        font-size: 22px;
        font-style: normal;
    }

/* -------------------------------------------------------
   MOBILE
------------------------------------------------------- */

@media (max-width: 700px) {
    .invitation-scene[b-6351a52jq9] {
        height: 490vh;
    }

    .invitation-scene__intro[b-6351a52jq9] {
        top: 7svh;
        width: calc(100% - 28px);
    }

        .invitation-scene__intro span[b-6351a52jq9] {
            font-size: 8px;
            letter-spacing: .27em;
        }

        .invitation-scene__intro h2[b-6351a52jq9] {
            font-size: 29px;
            line-height: 1.02;
        }

    .invitation-stage[b-6351a52jq9] {
        width: calc(100vw - 12px);
    }

    .envelope[b-6351a52jq9] {
        width: 94vw;
        aspect-ratio: 1.17 / 1;
    }

    .envelope__card-mask[b-6351a52jq9] {
        top: -72%;
    }

    .invitation-card[b-6351a52jq9] {
        bottom: 1.25rem;
        width: 95%;
    }

    .invitation-dove[b-6351a52jq9] {
        top: 40%;
        width: 104px;
    }

    .invitation-card__inner[b-6351a52jq9] {
        padding: 12px 10px;
    }

    .invitation-card__eyebrow[b-6351a52jq9] {
        font-size: 5.4px;
        letter-spacing: .09em;
    }

    .invitation-card__script[b-6351a52jq9] {
        margin: 4px 0 6px;
        font-size: 11px;
    }

    .invitation-card__names[b-6351a52jq9] {
        grid-template-columns: 1fr 62px 1fr;
        gap: 4px;
    }

        .invitation-card__names h3[b-6351a52jq9] {
            font-size: 23px;
        }

    .invitation-card__rings[b-6351a52jq9] {
        height: 43px;
    }

        .invitation-card__rings img[b-6351a52jq9] {
            width: 69px;
        }

    .invitation-card__ornament[b-6351a52jq9] {
        margin: 5px 0 4px;
    }

        .invitation-card__ornament span[b-6351a52jq9] {
            width: 30px;
        }

    .invitation-card__date[b-6351a52jq9] {
        margin-bottom: 5px;
        font-size: 6px;
        letter-spacing: .17em;
    }

    .invitation-card__events[b-6351a52jq9] {
        grid-template-columns: 1fr 10px 1fr;
    }

        .invitation-card__events article[b-6351a52jq9] {
            padding: 0 3px;
        }

            .invitation-card__events article > span[b-6351a52jq9] {
                font-size: 5px;
                letter-spacing: .07em;
            }

        .invitation-card__events strong[b-6351a52jq9] {
            font-size: 13px;
        }

        .invitation-card__events p[b-6351a52jq9] {
            font-size: 7.2px;
            font-weight: 500;
            line-height: 1.45;
        }

    /* Mobile engraved monogram */

    .envelope__engraving[b-6351a52jq9] {
        top: 56%;
        width: 196px;
        height: 110px;
    }

    .envelope__engraving-paper[b-6351a52jq9] {
        width: 192px;
        height: 106px;
    }

    .envelope__engraved-ring[b-6351a52jq9] {
        width: 82px;
        height: 82px;
    }

    .envelope__engraved-ring--left[b-6351a52jq9] {
        margin-right: -9px;
    }

    .envelope__engraved-ring--right[b-6351a52jq9] {
        margin-left: -9px;
    }

    .envelope__engraved-ring > span[b-6351a52jq9] {
        font-size: 29px;
    }

    .envelope__engraving-amp[b-6351a52jq9] {
        width: 22px;
        height: 22px;
        font-size: 14px;
        box-shadow: 0 0 0 4px rgba(239, 226, 207, .72);
    }

    .envelope__leaf[b-6351a52jq9] {
        width: 13px;
        height: 6px;
    }

    .envelope__leaf--left-top[b-6351a52jq9] {
        left: 6px;
        top: 14px;
    }

    .envelope__leaf--left-bottom[b-6351a52jq9] {
        left: 9px;
        bottom: 11px;
    }

    .envelope__leaf--right-top[b-6351a52jq9] {
        right: 6px;
        top: 14px;
    }

    .envelope__leaf--right-bottom[b-6351a52jq9] {
        right: 9px;
        bottom: 11px;
    }

        .envelope__leaf--left-top[b-6351a52jq9]::after,
        .envelope__leaf--left-bottom[b-6351a52jq9]::after,
        .envelope__leaf--right-top[b-6351a52jq9]::after,
        .envelope__leaf--right-bottom[b-6351a52jq9]::after {
            width: 10px;
            height: 5px;
        }

    .invitation-scene__portal[b-6351a52jq9] {
        width: calc(100% - 26px);
        padding: 38px 21px;
    }

        .invitation-scene__portal h2[b-6351a52jq9] {
            font-size: 39px;
        }

        .invitation-scene__portal p[b-6351a52jq9] {
            font-size: 18px;
        }
}

/* -------------------------------------------------------
   REDUCED MOTION
------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
    .invitation-dove__wing[b-6351a52jq9] {
        animation: none;
    }
}
/* /Components/Wedding/RsvpScene.razor.rz.scp.css */
.rsvp-scene[b-bb70vr2vln] {
    position: relative;
    padding: 120px 20px 130px;
    background: linear-gradient( 180deg, #f9f5ee 0%, #f1e8dc 100% );
}

.rsvp-scene__shell[b-bb70vr2vln] {
    width: min(1160px, 100%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: 28px;
    align-items: start;
}

.rsvp-scene__left[b-bb70vr2vln],
.rsvp-contact-card[b-bb70vr2vln] {
    border: 1px solid rgba(185, 154, 92, .18);
    background: rgba(255, 255, 255, .72);
    box-shadow: 0 24px 60px rgba(55, 45, 30, .08);
}

.rsvp-scene__left[b-bb70vr2vln] {
    padding: 34px 34px 36px;
}

    .rsvp-scene__left > span[b-bb70vr2vln],
    .rsvp-contact-card > span[b-bb70vr2vln],
    .rsvp-success > span[b-bb70vr2vln] {
        display: block;
        margin-bottom: 12px;
        color: var(--color-gold);
        font-family: var(--font-ui);
        font-size: 11px;
        font-weight: 600;
        letter-spacing: .22em;
    }

    .rsvp-scene__left > h2[b-bb70vr2vln] {
        margin: 0 0 14px;
        color: var(--color-forest);
        font-family: var(--font-display);
        font-size: clamp( 34px, 4vw, 58px );
        font-weight: 400;
        line-height: 1.05;
    }

    .rsvp-scene__left > p[b-bb70vr2vln] {
        margin: 0 0 24px;
        color: var(--color-muted);
        line-height: 1.8;
    }

.rsvp-form[b-bb70vr2vln] {
    position: relative;
    display: grid;
    gap: 16px;
}

.rsvp-form__row[b-bb70vr2vln] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.rsvp-form__field[b-bb70vr2vln] {
    min-width: 0;
}

    .rsvp-form__field > label[b-bb70vr2vln],
    .rsvp-form__field--quiet > span[b-bb70vr2vln] {
        display: block;
        margin: 0 0 7px;
        color: rgba(45, 64, 53, .78);
        font-family: var(--font-ui);
        font-size: 10px;
        font-weight: 600;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

        .rsvp-form__field > label small[b-bb70vr2vln] {
            font-size: 9px;
            font-weight: 500;
            letter-spacing: .04em;
            text-transform: none;
        }

.rsvp-form input[b-bb70vr2vln],
.rsvp-form select[b-bb70vr2vln],
.rsvp-form textarea[b-bb70vr2vln] {
    width: 100%;
    min-height: 52px;
    padding: 0 16px;
    border: 1px solid rgba(185, 154, 92, .24);
    border-radius: 0;
    background: #fffdf9;
    color: var(--color-text);
    font: inherit;
    outline: none;
    transition: border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

    .rsvp-form input[b-bb70vr2vln]::placeholder,
    .rsvp-form textarea[b-bb70vr2vln]::placeholder {
        color: rgba(71, 79, 73, .48);
    }

    .rsvp-form input:focus[b-bb70vr2vln],
    .rsvp-form select:focus[b-bb70vr2vln],
    .rsvp-form textarea:focus[b-bb70vr2vln] {
        border-color: rgba(185, 154, 92, .64);
        background: #fffefa;
        box-shadow: 0 0 0 3px rgba(185, 154, 92, .08);
    }

.rsvp-form textarea[b-bb70vr2vln] {
    min-height: 140px;
    resize: vertical;
    padding-top: 14px;
    line-height: 1.6;
}

.rsvp-form__field--exact[b-bb70vr2vln] {
    animation: rsvp-field-enter-b-bb70vr2vln 220ms ease both;
}

.rsvp-form__field--quiet[b-bb70vr2vln] {
    min-height: 79px;
    padding: 11px 15px;
    border: 1px dashed rgba(185, 154, 92, .18);
    background: rgba(255, 253, 249, .42);
}

    .rsvp-form__field--quiet > span[b-bb70vr2vln] {
        margin-bottom: 5px;
        color: rgba(45, 64, 53, .46);
    }

    .rsvp-form__field--quiet p[b-bb70vr2vln] {
        margin: 0;
        color: rgba(71, 79, 73, .55);
        font-size: 12px;
        line-height: 1.45;
    }

.rsvp-form .validation-message[b-bb70vr2vln] {
    display: block;
    margin-top: 6px;
    color: #9b4a3f;
    font-family: var(--font-ui);
    font-size: 11px;
    line-height: 1.4;
}

.rsvp-form__honeypot[b-bb70vr2vln] {
    position: absolute !important;
    left: -10000px !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.rsvp-form__error[b-bb70vr2vln] {
    padding: 13px 15px;
    border: 1px solid rgba(155, 74, 63, .20);
    background: rgba(155, 74, 63, .055);
    color: #813f36;
    font-size: 13px;
    line-height: 1.55;
}

.rsvp-form button[b-bb70vr2vln],
.rsvp-success__again[b-bb70vr2vln] {
    min-height: 54px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: 0;
    background: linear-gradient( 135deg, #32483b, #25372d );
    color: #fffaf2;
    font-family: var(--font-ui);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .16em;
    cursor: pointer;
    transition: transform 180ms ease, box-shadow 180ms ease, opacity 180ms ease;
}

    .rsvp-form button:hover:not(:disabled)[b-bb70vr2vln],
    .rsvp-success__again:hover[b-bb70vr2vln] {
        transform: translateY(-1px);
        box-shadow: 0 12px 30px rgba(37, 55, 45, .16);
    }

    .rsvp-form button:disabled[b-bb70vr2vln] {
        cursor: wait;
        opacity: .72;
    }

.rsvp-form__spinner[b-bb70vr2vln] {
    width: 16px;
    height: 16px;
    border: 1.5px solid rgba(255, 250, 242, .38);
    border-top-color: #fffaf2;
    border-radius: 50%;
    animation: rsvp-spin-b-bb70vr2vln 700ms linear infinite;
}

.rsvp-scene__right[b-bb70vr2vln] {
    display: grid;
    gap: 20px;
}

.rsvp-contact-card[b-bb70vr2vln] {
    padding: 28px;
}

    .rsvp-contact-card h3[b-bb70vr2vln] {
        margin: 0 0 16px;
        color: var(--color-forest);
        font-family: var(--font-display);
        font-size: 30px;
        font-weight: 400;
    }

    .rsvp-contact-card p[b-bb70vr2vln] {
        margin: 0;
        color: var(--color-muted);
        line-height: 1.7;
    }

.rsvp-contact-card__person +
.rsvp-contact-card__person[b-bb70vr2vln] {
    margin-top: 16px;
}

.rsvp-contact-card__person strong[b-bb70vr2vln] {
    display: block;
    margin-bottom: 4px;
    color: var(--color-forest);
    font-size: 18px;
    font-weight: 400;
}

.rsvp-contact-card__person a[b-bb70vr2vln] {
    color: var(--color-muted);
    text-decoration: none;
    line-height: 1.7;
    transition: color 160ms ease;
}

    .rsvp-contact-card__person a:hover[b-bb70vr2vln] {
        color: var(--color-gold);
    }

/* SUCCESS */

.rsvp-success[b-bb70vr2vln] {
    min-height: 390px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 24px 4px 6px;
    animation: rsvp-success-enter-b-bb70vr2vln 420ms ease both;
}

.rsvp-success__mark[b-bb70vr2vln] {
    width: 62px;
    height: 62px;
    margin-bottom: 24px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(185, 154, 92, .36);
    border-radius: 50%;
    color: var(--color-gold);
    font-family: var(--font-display);
    font-size: 30px;
    box-shadow: inset 0 0 0 6px rgba(185, 154, 92, .045), 0 14px 32px rgba(55, 45, 30, .06);
}

.rsvp-success h3[b-bb70vr2vln] {
    max-width: 590px;
    margin: 0 0 14px;
    color: var(--color-forest);
    font-family: var(--font-display);
    font-size: clamp( 34px, 4vw, 52px );
    font-weight: 400;
    line-height: 1.05;
}

.rsvp-success p[b-bb70vr2vln] {
    max-width: 620px;
    margin: 0 0 26px;
    color: var(--color-muted);
    line-height: 1.75;
}

.rsvp-success__again[b-bb70vr2vln] {
    min-height: 46px;
    padding: 0 18px;
    background: transparent;
    border: 1px solid rgba(50, 72, 59, .28);
    color: var(--color-forest);
    box-shadow: none;
    font-size: 10px;
}

@keyframes rsvp-spin-b-bb70vr2vln {
    to {
        transform: rotate(360deg);
    }
}

@keyframes rsvp-field-enter-b-bb70vr2vln {
    from {
        opacity: 0;
        transform: translateY(-5px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes rsvp-success-enter-b-bb70vr2vln {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 900px) {
    .rsvp-scene__shell[b-bb70vr2vln] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .rsvp-scene[b-bb70vr2vln] {
        padding: 90px 16px 100px;
    }

    .rsvp-scene__left[b-bb70vr2vln] {
        padding: 24px 18px 24px;
    }

        .rsvp-scene__left > h2[b-bb70vr2vln] {
            font-size: 34px;
        }

    .rsvp-form__row[b-bb70vr2vln] {
        grid-template-columns: 1fr;
    }

    .rsvp-form__field--quiet[b-bb70vr2vln] {
        display: none;
    }

    .rsvp-contact-card[b-bb70vr2vln] {
        padding: 22px 18px;
    }

        .rsvp-contact-card h3[b-bb70vr2vln] {
            font-size: 24px;
        }

    .rsvp-success[b-bb70vr2vln] {
        min-height: 340px;
        padding-top: 12px;
    }

        .rsvp-success h3[b-bb70vr2vln] {
            font-size: 34px;
        }
}

@media ( prefers-reduced-motion: reduce ) {
    .rsvp-form__field--exact[b-bb70vr2vln],
    .rsvp-success[b-bb70vr2vln],
    .rsvp-form__spinner[b-bb70vr2vln] {
        animation: none;
    }
}
/* /Components/Wedding/StoryScene.razor.rz.scp.css */
.story-scene[b-z1mt8875h9] {
    position: relative;
    height: 520vh;
    overflow: clip;
    background: linear-gradient(180deg, #294238 0%, #294238 7%, #eee4d7 18%, #f8f4ec 48%, #f3eadf 100%);
}

.story-scene__sticky[b-z1mt8875h9] {
    position: sticky;
    top: 0;
    width: 100%;
    height: 100svh;
    overflow: hidden;
    perspective: 1800px;
    transform-style: preserve-3d;
}

.story-scene__wash[b-z1mt8875h9] {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 50% 50%, rgba(255,255,255,.82), transparent 62%);
    pointer-events: none;
}

.story-scene__grain[b-z1mt8875h9] {
    position: absolute;
    inset: 0;
    opacity: .055;
    pointer-events: none;
    background-image: radial-gradient(rgba(65,50,35,.20) .55px, transparent .55px);
    background-size: 5px 5px;
}

.story-scene__title[b-z1mt8875h9] {
    position: absolute;
    z-index: 50;
    top: 50%;
    left: 50%;
    width: min(820px, calc(100% - 36px));
    transform: translate(-50%, -50%);
    text-align: center;
    will-change: opacity, transform;
}

    .story-scene__title span[b-z1mt8875h9],
    .story-chapter__copy > small[b-z1mt8875h9],
    .story-scene__date-portal > span[b-z1mt8875h9] {
        display: block;
        margin-bottom: 14px;
        color: #c29b58;
        font-family: var(--font-ui);
        font-size: 10px;
        font-weight: 600;
        letter-spacing: .34em;
    }

    .story-scene__title h2[b-z1mt8875h9] {
        margin: 0 0 18px;
        color: #22372d;
        font-family: var(--font-display);
        font-size: clamp(48px, 5.6vw, 84px);
        font-weight: 400;
        line-height: .95;
    }

    .story-scene__title p[b-z1mt8875h9] {
        max-width: 660px;
        margin: 0 auto;
        color: #5d665f;
        font-family: var(--font-display);
        font-size: 20px;
        line-height: 1.6;
    }

    .story-scene__title i[b-z1mt8875h9] {
        display: inline-block;
        margin-top: 24px;
        color: #c29b58;
        font-size: 22px;
        font-style: normal;
    }

.story-chapter[b-z1mt8875h9] {
    position: absolute;
    z-index: 10;
    left: 50%;
    top: 53%;
    width: min(1180px, calc(100% - 48px));
    min-height: 660px;
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
    gap: clamp(42px, 6vw, 96px);
    align-items: center;
    transform: translate(-50%, -50%);
    opacity: 0;
    pointer-events: none;
    will-change: transform, opacity;
}

.story-chapter__copy[b-z1mt8875h9] {
    max-width: 510px;
}

    .story-chapter__copy h2[b-z1mt8875h9] {
        margin: 0 0 20px;
        color: #24382f;
        font-family: var(--font-display);
        font-size: clamp(42px, 4.8vw, 72px);
        font-weight: 400;
        line-height: .96;
    }

    .story-chapter__copy p[b-z1mt8875h9] {
        max-width: 480px;
        margin: 0;
        color: #5e665f;
        font-family: var(--font-display);
        font-size: 19px;
        line-height: 1.72;
    }

.story-chapter__photo-wrap[b-z1mt8875h9] {
    position: relative;
    min-height: 620px;
    display: flex;
    align-items: center;
    justify-content: center;
    transform-style: preserve-3d;
}

    .story-chapter__photo-wrap[b-z1mt8875h9]::before {
        content: "";
        position: absolute;
        width: 78%;
        aspect-ratio: 1;
        border-radius: 50%;
        background: radial-gradient(circle, rgba(194,155,88,.18), transparent 68%);
        filter: blur(22px);
    }

.story-photo[b-z1mt8875h9] {
    position: relative;
    width: min(430px, 78%);
    aspect-ratio: 4 / 5;
    margin: 0;
    padding: 11px 11px 46px;
    background: #fffdfa;
    box-shadow: 0 42px 110px rgba(58,42,22,.17);
    transform-style: preserve-3d;
    will-change: transform;
}

.story-photo__image[b-z1mt8875h9] {
    width: 100%;
    height: 100%;
    position: relative;
    overflow: hidden;
    background: #e7ddd0;
}

    .story-photo__image img[b-z1mt8875h9],
    .story-polaroid img[b-z1mt8875h9] {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
    }

    .story-photo__image[b-z1mt8875h9]::after {
        content: "";
        position: absolute;
        inset: 0;
        pointer-events: none;
        background: linear-gradient(180deg, transparent 62%, rgba(30,43,36,.10));
    }

.story-photo figcaption[b-z1mt8875h9],
.story-polaroid figcaption[b-z1mt8875h9] {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 14px;
    text-align: center;
    color: #6f716b;
    font-family: var(--font-display);
    font-size: 16px;
    font-style: italic;
}

.story-gallery[b-z1mt8875h9] {
    position: relative;
    min-height: 570px;
    transform-style: preserve-3d;
}

.story-polaroid[b-z1mt8875h9] {
    position: absolute;
    width: 285px;
    aspect-ratio: 4 / 5;
    margin: 0;
    padding: 10px 10px 42px;
    background: #fffdfa;
    box-shadow: 0 36px 90px rgba(55,42,25,.18);
    overflow: hidden;
    transform-style: preserve-3d;
    will-change: transform;
}

    .story-polaroid img[b-z1mt8875h9] {
        height: calc(100% - 32px);
    }

.story-polaroid--left[b-z1mt8875h9] {
    left: 0;
    top: 105px;
    transform: rotate(-9deg);
}

.story-polaroid--center[b-z1mt8875h9] {
    z-index: 3;
    left: 50%;
    top: 20px;
    transform: translateX(-50%);
}

.story-polaroid--right[b-z1mt8875h9] {
    right: 0;
    top: 115px;
    transform: rotate(9deg);
}

.story-scene__date-portal[b-z1mt8875h9] {
    position: absolute;
    z-index: 70;
    left: 50%;
    top: 52%;
    width: min(820px, calc(100% - 36px));
    transform: translate(-50%, -50%);
    text-align: center;
    opacity: 0;
    pointer-events: none;
    will-change: opacity, transform;
}

.story-scene__date-stack[b-z1mt8875h9] {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 18px;
    color: #24382f;
    font-family: var(--font-display);
    line-height: .84;
}

    .story-scene__date-stack strong[b-z1mt8875h9] {
        font-size: clamp(84px, 10vw, 148px);
        font-weight: 400;
        font-variant-numeric: lining-nums;
    }

    .story-scene__date-stack em[b-z1mt8875h9] {
        margin-bottom: .25em;
        color: #b78e4e;
        font-family: var(--font-ui);
        font-size: clamp(14px, 1.4vw, 18px);
        font-style: normal;
        font-weight: 600;
        letter-spacing: .28em;
    }

.story-scene__date-portal p[b-z1mt8875h9] {
    margin: 24px 0 0;
    color: #56615a;
    font-family: var(--font-display);
    font-size: 24px;
    font-style: italic;
}

.story-scene__date-portal i[b-z1mt8875h9] {
    display: inline-block;
    margin-top: 22px;
    color: #c29b58;
    font-size: 24px;
    font-style: normal;
}

@media (max-width: 700px) {
    .story-scene[b-z1mt8875h9] {
        height: 585vh;
    }

    .story-scene__title[b-z1mt8875h9] {
        width: calc(100% - 34px);
    }

        .story-scene__title span[b-z1mt8875h9] {
            font-size: 8px;
        }

        .story-scene__title h2[b-z1mt8875h9] {
            margin-bottom: 14px;
            font-size: 38px;
        }

        .story-scene__title p[b-z1mt8875h9] {
            max-width: 340px;
            font-size: 16px;
            line-height: 1.55;
        }

    .story-chapter[b-z1mt8875h9] {
        width: calc(100% - 30px);
        min-height: 790px;
        grid-template-columns: 1fr;
        gap: 18px;
        align-content: center;
        top: 53%;
    }

    .story-chapter--two .story-chapter__copy[b-z1mt8875h9] {
        order: 2;
    }

    .story-chapter--two .story-chapter__photo-wrap[b-z1mt8875h9] {
        order: 1;
    }

    .story-chapter--three[b-z1mt8875h9] {
        gap: 12px;
    }

    .story-chapter__copy[b-z1mt8875h9] {
        max-width: 100%;
        text-align: center;
    }

        .story-chapter__copy > small[b-z1mt8875h9] {
            margin-bottom: 10px;
            font-size: 8px;
        }

        .story-chapter__copy h2[b-z1mt8875h9] {
            margin-bottom: 11px;
            font-size: 35px;
        }

        .story-chapter__copy p[b-z1mt8875h9] {
            max-width: 360px;
            margin: 0 auto;
            font-size: 15px;
            line-height: 1.6;
        }

    .story-chapter__photo-wrap[b-z1mt8875h9] {
        min-height: 410px;
    }

    .story-photo[b-z1mt8875h9] {
        width: min(260px, 70vw);
        padding: 8px 8px 36px;
    }

        .story-photo figcaption[b-z1mt8875h9] {
            bottom: 10px;
            font-size: 12px;
        }

    .story-gallery[b-z1mt8875h9] {
        min-height: 330px;
    }

    .story-polaroid[b-z1mt8875h9] {
        width: 148px;
        padding: 7px 7px 30px;
    }

        .story-polaroid img[b-z1mt8875h9] {
            height: calc(100% - 22px);
        }

        .story-polaroid figcaption[b-z1mt8875h9] {
            bottom: 8px;
            font-size: 10px;
        }

    .story-polaroid--left[b-z1mt8875h9] {
        left: 1%;
        top: 86px;
    }

    .story-polaroid--center[b-z1mt8875h9] {
        top: 24px;
    }

    .story-polaroid--right[b-z1mt8875h9] {
        right: 1%;
        top: 94px;
    }

    .story-scene__date-stack[b-z1mt8875h9] {
        flex-direction: column;
        align-items: center;
        gap: 8px;
        line-height: .72;
    }

        .story-scene__date-stack strong[b-z1mt8875h9] {
            font-size: 76px;
        }

        .story-scene__date-stack em[b-z1mt8875h9] {
            margin: 0;
            font-size: 12px;
            letter-spacing: .24em;
        }

    .story-scene__date-portal p[b-z1mt8875h9] {
        font-size: 18px;
    }
}
/* /Components/Wedding/WeddingDayScene.razor.rz.scp.css */
.wedding-day-scene[b-wrv0k1b4iu] {
    position: relative;
    padding: 120px 20px 130px;
    background: linear-gradient( 180deg, #faf5ed 0%, #f2e8db 100% );
}

.wedding-day-scene__shell[b-wrv0k1b4iu] {
    width: min(1080px, 100%);
    margin: 0 auto;
}

.wedding-day-scene__header[b-wrv0k1b4iu] {
    text-align: center;
    margin-bottom: 72px;
}

    .wedding-day-scene__header span[b-wrv0k1b4iu],
    .wedding-maps__header span[b-wrv0k1b4iu] {
        display: block;
        margin-bottom: 12px;
        color: var(--color-gold);
        font-family: var(--font-ui);
        font-size: 10px;
        font-weight: 600;
        letter-spacing: .32em;
    }

    .wedding-day-scene__header h2[b-wrv0k1b4iu] {
        margin: 0 0 12px;
        color: var(--color-forest);
        font-family: var(--font-display);
        font-size: clamp(38px, 5vw, 72px);
        font-weight: 400;
        line-height: 1;
    }

    .wedding-day-scene__header p[b-wrv0k1b4iu] {
        margin: 0;
        color: var(--color-muted);
        font-size: 17px;
    }

/* -------------------------------------------------------
   TIMELINE
------------------------------------------------------- */

.wedding-day-scene__timeline[b-wrv0k1b4iu] {
    position: relative;
    display: grid;
    gap: 28px;
    margin-bottom: 130px;
}

    .wedding-day-scene__timeline[b-wrv0k1b4iu]::before {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        left: 108px;
        width: 1px;
        background: rgba(185,154,92,.30);
    }

.timeline-card[b-wrv0k1b4iu] {
    display: grid;
    grid-template-columns: 90px 36px 1fr;
    gap: 18px;
    align-items: start;
}

.timeline-card__time[b-wrv0k1b4iu] {
    padding-top: 14px;
    color: var(--color-forest);
    font-family: var(--font-display);
    font-size: 30px;
    font-weight: 500;
    text-align: right;
}

.timeline-card__dot[b-wrv0k1b4iu] {
    width: 18px;
    height: 18px;
    margin-top: 19px;
    border-radius: 50%;
    border: 1px solid var(--color-gold);
    background: #fffdf8;
    box-shadow: 0 0 0 6px rgba(185,154,92,.08);
}

.timeline-card__content[b-wrv0k1b4iu] {
    padding: 24px 26px;
    border: 1px solid rgba(185,154,92,.18);
    background: rgba(255,255,255,.68);
    box-shadow: 0 22px 56px rgba(55,45,30,.08);
}

    .timeline-card__content > span[b-wrv0k1b4iu] {
        display: block;
        margin-bottom: 10px;
        color: var(--color-gold);
        font-family: var(--font-ui);
        font-size: 9px;
        font-weight: 600;
        letter-spacing: .18em;
    }

    .timeline-card__content h3[b-wrv0k1b4iu] {
        margin: 0 0 10px;
        color: var(--color-forest);
        font-family: var(--font-display);
        font-size: 34px;
        font-weight: 400;
    }

    .timeline-card__content p[b-wrv0k1b4iu] {
        margin: 0 0 18px;
        color: #535d57;
        font-family: var(--font-ui);
        font-size: 14px;
        font-weight: 500;
        line-height: 1.7;
    }

.timeline-card__map-link[b-wrv0k1b4iu] {
    display: inline-flex;
    min-height: 43px;
    align-items: center;
    justify-content: center;
    padding: 0 18px;
    border: 1px solid rgba(185,154,92,.42);
    color: var(--color-forest);
    font-family: var(--font-ui);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .16em;
    transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}

    .timeline-card__map-link:hover[b-wrv0k1b4iu] {
        border-color: var(--color-forest);
        background: var(--color-forest);
        color: #fff9ef;
    }

/* -------------------------------------------------------
   MAPS
------------------------------------------------------- */

.wedding-maps[b-wrv0k1b4iu] {
    position: relative;
}

.wedding-maps__header[b-wrv0k1b4iu] {
    max-width: 650px;
    margin: 0 auto 48px;
    text-align: center;
}

    .wedding-maps__header h2[b-wrv0k1b4iu] {
        margin: 0 0 14px;
        color: var(--color-forest);
        font-family: var(--font-display);
        font-size: clamp(38px, 4vw, 62px);
        font-weight: 400;
        line-height: 1;
    }

    .wedding-maps__header p[b-wrv0k1b4iu] {
        margin: 0;
        color: var(--color-muted);
        font-size: 16px;
        line-height: 1.7;
    }

.wedding-maps__grid[b-wrv0k1b4iu] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.wedding-map-card[b-wrv0k1b4iu] {
    overflow: hidden;
    border: 1px solid rgba(185,154,92,.20);
    background: rgba(255,255,255,.72);
    box-shadow: 0 26px 70px rgba(55,45,30,.10);
}

.wedding-map-card__map[b-wrv0k1b4iu] {
    position: relative;
    height: 320px;
    overflow: hidden;
    background: #e7dfd3;
}

    .wedding-map-card__map iframe[b-wrv0k1b4iu] {
        width: 100%;
        height: 100%;
        border: 0;
        filter: saturate(.72) sepia(.10) contrast(.94);
    }

.wedding-map-card__content[b-wrv0k1b4iu] {
    position: relative;
    padding: 25px 26px 27px;
}

    .wedding-map-card__content > span[b-wrv0k1b4iu] {
        display: block;
        margin-bottom: 7px;
        color: var(--color-gold);
        font-family: var(--font-ui);
        font-size: 10px;
        font-weight: 600;
        letter-spacing: .22em;
    }

    .wedding-map-card__content h3[b-wrv0k1b4iu] {
        margin: 0 0 8px;
        color: var(--color-forest);
        font-family: var(--font-display);
        font-size: 34px;
        font-weight: 400;
    }

    .wedding-map-card__content p[b-wrv0k1b4iu] {
        margin: 0 0 18px;
        color: #56615a;
        font-family: var(--font-ui);
        font-size: 13px;
        font-weight: 500;
        line-height: 1.6;
    }

    .wedding-map-card__content a[b-wrv0k1b4iu] {
        display: inline-flex;
        align-items: center;
        min-height: 40px;
        padding: 0 17px;
        border: 1px solid rgba(185,154,92,.40);
        color: var(--color-forest);
        font-family: var(--font-ui);
        font-size: 10px;
        font-weight: 600;
        letter-spacing: .18em;
        transition: .25s ease;
    }

        .wedding-map-card__content a:hover[b-wrv0k1b4iu] {
            background: var(--color-forest);
            border-color: var(--color-forest);
            color: #fff9ef;
        }

/* -------------------------------------------------------
   MOBILE
------------------------------------------------------- */

@media (max-width: 700px) {
    .wedding-day-scene[b-wrv0k1b4iu] {
        padding: 88px 16px 96px;
    }

    .wedding-day-scene__header[b-wrv0k1b4iu] {
        margin-bottom: 54px;
    }

        .wedding-day-scene__header h2[b-wrv0k1b4iu] {
            font-size: 38px;
        }

        .wedding-day-scene__header p[b-wrv0k1b4iu] {
            font-size: 14px;
        }

    .wedding-day-scene__timeline[b-wrv0k1b4iu] {
        margin-bottom: 90px;
    }

        .wedding-day-scene__timeline[b-wrv0k1b4iu]::before {
            left: 14px;
        }

    .timeline-card[b-wrv0k1b4iu] {
        position: relative;
        grid-template-columns: 1fr;
        gap: 10px;
        padding-left: 34px;
    }

    .timeline-card__time[b-wrv0k1b4iu] {
        padding: 0;
        text-align: left;
        font-size: 25px;
    }

    .timeline-card__dot[b-wrv0k1b4iu] {
        position: absolute;
        left: 5px;
        top: 7px;
        width: 16px;
        height: 16px;
        margin: 0;
    }

    .timeline-card__content[b-wrv0k1b4iu] {
        padding: 21px 18px;
    }

        .timeline-card__content h3[b-wrv0k1b4iu] {
            font-size: 28px;
        }

        .timeline-card__content p[b-wrv0k1b4iu] {
            font-size: 13px;
        }

    .wedding-maps__header[b-wrv0k1b4iu] {
        margin-bottom: 32px;
    }

        .wedding-maps__header h2[b-wrv0k1b4iu] {
            font-size: 36px;
        }

        .wedding-maps__header p[b-wrv0k1b4iu] {
            font-size: 14px;
        }

    .wedding-maps__grid[b-wrv0k1b4iu] {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .wedding-map-card__map[b-wrv0k1b4iu] {
        height: 235px;
    }

    .wedding-map-card__content[b-wrv0k1b4iu] {
        padding: 21px 18px 23px;
    }

        .wedding-map-card__content h3[b-wrv0k1b4iu] {
            font-size: 28px;
        }
}
/* /Layout/MainLayout.razor.rz.scp.css */
main[b-027t1r7xqx] {
    width: 100%;
    min-height: 100dvh;
    margin: 0;
    padding: 0;
    overflow-x: clip;
}
