/*! © 2026 Dastan Invites, dastaninvites.com. All rights reserved. This invitation's design, code, artwork and music may not be copied, reused or resold. */

.rsvp {
    --cw: min(100cqi - 40px, 400px);
    --th: calc(var(--cw) * .235);
    --paper: #f4eee1;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 100vh;
    min-height: 100svh;
    padding: calc(var(--seam-h) * .5 + 40px) 0 calc(var(--seam-h) * .5 + 40px);
    overflow-x: clip;
    overflow-anchor: none;
    -webkit-tap-highlight-color: transparent
}

@media(min-aspect-ratio:5/8) {
    html:root .rsvp {
        --cw: min(100cqi - 80px, 500px)
    }
}

@media(min-aspect-ratio:6/5) {
    html.is-tablet .rsvp {
        --cw: min(100cqi - 80px, 450px)
    }
}

.rsvp:last-child .seam-bot {
    display: none
}

.rs-head,
.rs-table,
.rs-thanks,
.rs-closed {
    position: relative;
    z-index: 1
}

.rs-head {
    text-align: center
}

.rs-head>*,
.rs-thanks>*,
.rs-closed>* {
    margin: 0
}

.rs-kicker {
    font: 700 clamp(11px, 3cqi, 14px)/1.3 "Cormorant Garamond", Georgia, serif;
    letter-spacing: .28em;
    padding-left: .28em;
    text-transform: uppercase;
    color: var(--madder)
}

.rs-title {
    font: 400 clamp(56px, 16cqi, 96px)/1.1 "Italianno", cursive
}

.rs-title .walnut,
.rs-thanks-title .walnut {
    display: inline-block;
    padding: 0 .3em .06em
}

.rs-by {
    font: italic 500 clamp(15px, 4.3cqi, 20px)/1.4 "Cormorant Garamond", Georgia, serif;
    color: var(--ink);
    opacity: .9
}

.rs-table {
    display: flex;
    justify-content: center;
    width: 100%;
    margin-top: clamp(18px, 5cqi, 34px);
    padding-bottom: calc(var(--cw) * var(--cord-b) * .8)
}

.rs-lift {
    position: relative;
    width: var(--cw);
    container-type: inline-size
}

.rs-card {
    position: relative;
    z-index: 1;
    min-height: calc(100cqi * var(--c-min));
    margin: 0;
    border-style: solid;
    border-color: transparent;
    border-width: 2cqi;
    border-image-slice: var(--card-slice) fill;
    border-image-width: calc(100cqi * var(--c-st)) calc(100cqi * var(--c-sr)) calc(100cqi * var(--c-sb)) calc(100cqi * var(--c-sl));
    border-image-repeat: round;
    background: var(--paper) padding-box;
    padding: calc(100cqi * (var(--pin-t) - .02)) calc(100cqi * (var(--pin-r) - .02)) calc(100cqi * (var(--pin-b) - .02)) calc(100cqi * (var(--pin-l) - .02));
    filter: drop-shadow(0 1px 1px rgba(70, 40, 15, .16)) drop-shadow(0 10px 14px rgba(60, 35, 12, .2));
    text-align: center;
    font: 500 clamp(14px, 4.6cqi, 17.5px)/1.4 "Cormorant Garamond", Georgia, serif;
    color: var(--ink)
}

.rs-card>*,
.rs-events>* {
    margin: 0
}

.rs-label {
    display: block;
    font: 700 clamp(9.5px, 2.9cqi, 11.5px)/1.35 "Cormorant Garamond", Georgia, serif;
    letter-spacing: .22em;
    padding-left: .22em;
    text-transform: uppercase;
    color: var(--madder)
}

.rs-label em {
    font-weight: 500;
    letter-spacing: .04em;
    text-transform: none
}

.rs-field {
    display: block
}

.rs-name {
    display: block;
    width: 100%;
    margin-top: 3px;
    padding: 2px 4px 5px;
    border: 0;
    border-bottom: 1px solid rgba(58, 36, 21, .3);
    border-radius: 0;
    background: transparent;
    font: italic 600 clamp(18px, 5.6cqi, 22px)/1.25 "Cormorant Garamond", Georgia, serif;
    color: var(--ink);
    text-align: center
}

.rs-name::placeholder {
    font-weight: 500;
    color: #3a241573
}

.rs-name:focus {
    outline: none;
    border-bottom-color: var(--walnut);
    box-shadow: 0 1px 0 var(--walnut)
}

.rs-events {
    position: relative;
    min-width: 0;
    padding: 0;
    border: 0
}

.rs-evs {
    display: grid;
    grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr));
    width: calc(100cqi * (var(--band-r) - var(--band-l)));
    margin-left: calc(100cqi * (var(--band-l) - var(--pin-l))) !important
}

.rs-ev>* {
    margin: 0
}

.rs-toggle {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding: 0 0 2px;
    border: 0;
    border-radius: 10px;
    background: none;
    color: inherit;
    font: inherit;
    cursor: pointer
}

.rs-toggle:focus-visible {
    outline: 2px solid var(--madder);
    outline-offset: 2px
}

.rs-slot {
    display: block;
    width: 100%;
    height: calc(100cqi * (var(--ring-y) + var(--ring-in) - var(--pin-t)) + var(--th) + 2px)
}

.rs-ev-name {
    margin-top: 2px;
    font: 400 clamp(26px, calc(32cqi / var(--n, 4)), 42px)/1.05 "Italianno", cursive;
    white-space: nowrap
}

.rs-ev-name .walnut {
    display: inline-block;
    padding: 0 .14em .06em
}

.rs-ev:not(.is-on) .rs-ev-name {
    opacity: .78
}

.rs-ev-date {
    font: 700 clamp(8.5px, 2.6cqi, 10.5px)/1.3 "Cormorant Garamond", Georgia, serif;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--madder)
}

.rs-help {
    margin-top: 10px !important;
    font: italic 500 clamp(12.5px, 3.9cqi, 14.5px)/1.35 "Cormorant Garamond", Georgia, serif;
    opacity: .82
}

.rs-summary {
    margin-top: 4px !important;
    font: italic 600 clamp(13.5px, 4.2cqi, 16px)/1.35 "Cormorant Garamond", Georgia, serif;
    color: var(--walnut)
}

.rs-summary:empty,
.rs-error:empty {
    display: none
}

.rs-name-field,
.rs-party {
    margin-top: clamp(16px, 5cqi, 24px) !important
}

.rs-party[hidden],
.rs-stepper[hidden] {
    display: none
}

.rs-stepper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin: 6px 0 2px
}

.rs-step {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    padding: 0 0 2px;
    border: 1px solid rgba(115, 68, 42, .5);
    border-radius: 50%;
    background: #fffcf499;
    color: var(--ink);
    font: 600 21px/1 Cormorant Garamond, Georgia, serif;
    cursor: pointer
}

.rs-step:disabled {
    opacity: .35;
    cursor: default
}

.rs-step:focus-visible {
    outline: 2px solid var(--madder);
    outline-offset: 2px
}

.rs-count {
    min-width: 1.3em;
    font: 600 clamp(26px, 8cqi, 32px)/1 "Cormorant Garamond", Georgia, serif;
    color: var(--walnut)
}

.rs-seats {
    font: italic 500 clamp(12.5px, 3.9cqi, 14.5px)/1.35 "Cormorant Garamond", Georgia, serif;
    opacity: .82
}

.rs-wishes-field {
    margin-top: clamp(16px, 5cqi, 24px) !important
}

.rs-wishes {
    display: block;
    width: 100%;
    height: calc(3 * 1.6em);
    margin-top: 4px;
    padding: 0 4px;
    border: 0;
    border-radius: 0;
    background: repeating-linear-gradient(180deg, transparent 0 calc(1.6em - 1px), rgba(58, 36, 21, .22) calc(1.6em - 1px) 1.6em);
    font: italic 500 clamp(15px, 4.6cqi, 17px)/1.6 "Cormorant Garamond", Georgia, serif;
    color: var(--ink);
    resize: none
}

.rs-wishes:focus {
    outline: none;
    background: repeating-linear-gradient(180deg, transparent 0 calc(1.6em - 1px), rgba(58, 36, 21, .45) calc(1.6em - 1px) 1.6em)
}

.rs-hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden
}

.rs-error {
    margin-top: 12px !important;
    font: italic 600 clamp(13px, 4cqi, 15px)/1.35 "Cormorant Garamond", Georgia, serif;
    color: var(--madder)
}

.rs-send-row {
    margin-top: clamp(16px, 5cqi, 22px) !important
}

.rs-send,
.rs-change {
    display: inline-block;
    padding: 12px 22px 11px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: linear-gradient(180deg, #8d5534, #5f3520);
    box-shadow: 0 1px 2px #28140866, inset 0 1px #ffdcb440;
    color: #fbf3e6;
    font: 700 clamp(11px, 3.4cqi, 13px)/1.1 "Cormorant Garamond", Georgia, serif;
    letter-spacing: .16em;
    text-transform: uppercase;
    cursor: pointer
}

.rs-send:hover,
.rs-change:hover {
    filter: brightness(1.08)
}

.rs-send:focus-visible,
.rs-change:focus-visible {
    outline: 2px solid var(--madder);
    outline-offset: 3px
}

.rs-send[aria-busy=true] {
    cursor: progress
}

.rs-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap
}

.rs-hang {
    position: absolute;
    z-index: 2;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    pointer-events: none
}

.rs-tassels,
.rs-rings {
    position: absolute;
    inset: 0
}

.rs-ring {
    position: absolute;
    left: calc(100cqi * var(--rx, .5));
    top: calc(100cqi * var(--ring-y));
    width: calc(100cqi * var(--ring-w));
    height: calc(100cqi * var(--ring-h));
    translate: -49.2% calc(var(--ring-c) * -100%);
    transform-origin: 49.2% 4%;
    background-size: 100% 100%;
    filter: drop-shadow(1px 2px 1.5px rgba(60, 35, 12, .35))
}

.rs-tassel {
    position: absolute;
    left: var(--lx, 0px);
    top: var(--ly, 0px);
    height: var(--th);
    aspect-ratio: var(--tassel-r);
    background-size: 100% 100%;
    transform-origin: calc(var(--tassel-hx) * 100%) 0;
    transform: rotate(var(--lr, -62deg));
    filter: drop-shadow(1px 2px 1.5px rgba(60, 35, 12, .38))
}

.rs-tassel.is-on {
    left: var(--hx, 0px);
    top: var(--hy, 0px);
    transform: none;
    filter: drop-shadow(3px 6px 4px rgba(60, 35, 12, .28));
    animation: rs-sway 4.6s ease-in-out infinite alternate;
    animation-delay: var(--sd, 0s)
}

@keyframes rs-sway {
    0% {
        rotate: -2.2deg
    }
    to {
        rotate: 2.2deg
    }
}

.rs-cord {
    position: absolute;
    z-index: 0;
    left: calc(100cqi * var(--cord-x));
    bottom: calc(100cqi * var(--cord-b) * -1);
    width: calc(100cqi * var(--cord-w));
    aspect-ratio: var(--cord-r);
    background-size: 100% 100%;
    filter: drop-shadow(1px 2px 1.5px rgba(60, 35, 12, .3));
    pointer-events: none
}

.rs-roll {
    position: absolute;
    z-index: 1;
    left: 3cqi;
    width: 94cqi;
    top: 0;
    height: 6cqi;
    border-radius: 12px/50%;
    background-position: 50% 60%;
    background-size: 106% auto;
    box-shadow: 0 5px 8px -2px #3c230c61;
    opacity: 0;
    pointer-events: none
}

.rs-roll:after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(180deg, #5a3a1c6b, #fffcf400 28%, #ffffff61 42%, #fffcf400 58%, #50321680)
}

.rs-scroll {
    position: absolute;
    left: calc(100cqi * var(--sc-x));
    top: calc(100cqi * var(--sc-y));
    width: calc(100cqi * var(--sc-w));
    aspect-ratio: var(--sc-r);
    background-size: 100% 100%;
    filter: drop-shadow(2px 6px 6px rgba(60, 35, 12, .3));
    opacity: 0
}

.rs-petals {
    position: absolute;
    z-index: 3;
    inset: 0;
    overflow: hidden;
    pointer-events: none
}

.rs-petal {
    position: absolute;
    left: 0;
    top: 0;
    background-image: url(../assets/cover/petals.webp);
    background-repeat: no-repeat;
    filter: drop-shadow(1px 2px 1.5px rgba(50, 25, 10, .3));
    will-change: transform, opacity
}

.rsvp.is-tied .rs-lift {
    visibility: hidden
}

.rsvp.is-folded .rs-table {
    display: none
}

.rs-thanks,
.rs-closed {
    width: min(100% - 48px, 520px);
    margin-top: clamp(14px, 4cqi, 28px);
    text-align: center
}

.rs-thanks[hidden],
.rs-closed[hidden] {
    display: none
}

.rs-thanks-title {
    font: 400 clamp(46px, 13cqi, 76px)/1.15 "Italianno", cursive;
    overflow-wrap: anywhere
}

.rs-thanks-title:focus {
    outline: none
}

.rs-thanks-text {
    font: italic 500 clamp(15px, 4.4cqi, 19px)/1.4 "Cormorant Garamond", Georgia, serif;
    color: var(--ink)
}

.rs-list {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    margin: 16px 0 0 !important;
    padding: 0;
    list-style: none
}

.rs-li {
    display: flex;
    align-items: center;
    gap: 8px;
    font: 500 clamp(13.5px, 4cqi, 16px)/1.3 "Cormorant Garamond", Georgia, serif;
    color: var(--ink)
}

.rs-li b {
    font-weight: 700
}

.rs-li.is-no {
    opacity: .62
}

.rs-li-t {
    flex: none;
    width: 9px;
    aspect-ratio: var(--tassel-r);
    background-size: 100% 100%;
    filter: drop-shadow(1px 1px 1px rgba(60, 35, 12, .3))
}

.rs-li.is-no .rs-li-t {
    filter: grayscale(.8) opacity(.55)
}

.rs-thanks-when {
    margin-top: 8px !important;
    font: italic 500 clamp(12.5px, 3.8cqi, 14px)/1.35 "Cormorant Garamond", Georgia, serif;
    opacity: .75
}

.rs-thanks-when:empty {
    display: none
}

.rs-change {
    margin-top: 18px !important;
    border-color: #73442a80;
    background: #fffcf499;
    box-shadow: none;
    color: var(--ink)
}

@media(prefers-reduced-motion:reduce) {
    .rs-tassel.is-on {
        animation: none
    }
    .rs-petals {
        display: none
    }
}