/* Keep the illustration inside its own box, including during the floating animation. */
.intro-character{display:flex;align-items:center;justify-content:center;isolation:isolate;width:250px;height:220px;margin:10px auto 30px;flex:none}
.intro-character img{display:block;flex:0 1 auto;width:100%;height:100%;min-width:0;min-height:0;max-width:100%;max-height:100%;object-fit:contain}
.intro-moon{z-index:-1}
.intro h2{position:relative;line-height:1.14}
.hero-inner{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:40px}
.hero-copy{min-width:0}
.hero h1{font-size:clamp(72px,8vw,110px);line-height:.98;letter-spacing:-.04em}
.hero h1 em{margin-top:0}
.hero-art{min-width:0;isolation:isolate}
.hero-minnie{display:block;min-width:0;max-width:100%;transform-origin:center}
/* Lining numerals and a full line box separate the day from the month. */
.ticket-date{display:grid;grid-template-columns:1fr;justify-items:center;align-content:center;row-gap:10px}
.ticket-date strong{display:block;font-family:var(--sans);font-size:100px;font-weight:600;font-variant-numeric:lining-nums tabular-nums;line-height:1.12;letter-spacing:-.07em;padding:0 7px 0 0;margin:0;min-width:0}
.ticket-kicker,.ticket-month,.ticket-year{line-height:1.5}
.ticket-month,.ticket-year{margin-top:0}

body.rsvp-open{overflow:hidden}
.rsvp-dialog{width:min(460px,calc(100vw - 28px));max-height:calc(100svh - 28px);padding:0;overflow:hidden;border:1px solid #ddbccf;border-radius:22px;color:#482b44;background:#fff6ec;box-shadow:0 25px 100px #0c071cab;color-scheme:light}
.rsvp-dialog::backdrop{background:#160e25bb;backdrop-filter:blur(7px)}
.rsvp-dialog-shell{max-height:calc(100svh - 28px);overflow:auto;overscroll-behavior:contain}
.rsvp-dialog :focus-visible{outline:3px solid #b96795;outline-offset:3px}
.rsvp-dialog-top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px 12px 24px;border-bottom:1px solid #dcc5c54d}
.rsvp-dialog-top>span{display:flex;align-items:center;gap:10px;font-size:9px;font-weight:800;letter-spacing:.12em;color:#7a506e}
.rsvp-dialog-top>span svg{width:29px;height:20px;color:#bd78a3}
.rsvp-close{display:grid;place-items:center;width:40px;height:40px;flex:none;padding:0;border:1px solid #d8beca;background:transparent;color:#805c78;border-radius:50%}
.rsvp-close:hover{background:#f2dfeb}
.rsvp-close .icon{width:18px;height:18px}
.rsvp-content{padding:27px 28px 26px}
.rsvp-content h2{font-size:37px;line-height:1.14;letter-spacing:-.025em;color:#663d59}
.rsvp-copy{font-size:12px;line-height:1.8;color:#876a7d;margin:10px 0 23px}
.rsvp-label{display:block;font-size:12px;font-weight:800;line-height:1.5;color:#73546b;margin-bottom:8px}
.rsvp-input{display:block;width:100%;min-height:49px;padding:12px 14px;border:1px solid #ddc8d2;border-radius:11px;background:#fffdfa;color:#59374f;font:400 16px/1.5 var(--sans);box-shadow:none;margin-bottom:20px}
.rsvp-input::placeholder{color:#a78b9b;opacity:1}
.rsvp-input:focus{outline:2px solid #cf8bae;outline-offset:1px;border-color:transparent}
.rsvp-select{appearance:auto;padding-right:12px;cursor:pointer;margin-bottom:0}
.rsvp-select:invalid{color:#a78b9b}
.rsvp-select option{color:#59374f;background:#fffdfa}
.rsvp-confirm{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:51px;margin-top:25px;padding:14px 20px;border:1px solid #7a3a63;border-radius:12px;background:#7a3a63;color:#fff8f4;font:800 14px/1.5 var(--sans);cursor:pointer;transition:background .2s,transform .2s}
.rsvp-confirm:hover{background:#612950;transform:translateY(-1px)}
.rsvp-confirm .icon{width:20px;height:20px}
.rsvp-help{font-size:10px;line-height:1.7;color:#9b7990;text-align:center;max-width:330px;margin:13px auto 0}
.rsvp-error{padding:10px 13px;border-radius:8px;background:#f9e6e5;color:#923f51;font-size:11px;line-height:1.6;margin-top:12px}
.rsvp-handoff{padding:12px 14px;border-radius:10px;background:#e7f0e6;color:#59734d;font-size:11px;line-height:1.7;margin-top:15px}

@media(max-width:900px){.hero-inner{gap:24px}.hero h1{font-size:76px;line-height:.98}}
@media(max-width:760px){.hero-inner{display:flex;flex-direction:column;gap:0;padding-top:115px}.hero-copy{width:100%;max-width:480px}.hero h1{font-size:clamp(72px,19vw,98px);line-height:.98}.hero-art{width:min(340px,100%);margin:36px auto 0;padding-top:12px}.hero-minnie{width:auto;max-width:91%;max-height:420px}.hero{min-height:0}}
@media(max-width:640px){.intro-character{height:210px;margin:14px auto 27px}.intro h2{line-height:1.14}.ticket-date{padding:28px 20px;row-gap:9px}.ticket-date strong{font-size:90px;line-height:1.12;margin:0}.ticket-month,.ticket-year{margin-top:0}.invitation-ticket:before,.invitation-ticket:after{display:none}.ticket-date:before,.ticket-date:after{content:'';position:absolute;width:24px;height:24px;bottom:-12px;left:-12px;border-radius:50%;background:#251431;z-index:3}.ticket-date:after{left:auto;right:-12px}}
@media(max-width:480px){.rsvp-dialog{width:calc(100vw - 24px);border-radius:18px}.rsvp-content{padding:24px 22px}.rsvp-content h2{font-size:34px}.rsvp-copy{font-size:11px}.rsvp-dialog-top{padding:10px 12px 10px 20px}.rsvp-label{font-size:11px}.rsvp-confirm{font-size:13px}}
@media(max-height:700px){.intro-character{height:165px;margin:8px auto 23px}.intro h2{font-size:36px;line-height:1.14}.intro-dedication{margin:14px 0 18px}.intro-footnote{margin-top:14px}}
