@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/cormorant-garamond-latin-ext.woff2?v=d79559afd66f") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/cormorant-garamond-latin.woff2?v=53205cf81200") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("fonts/figtree-latin-ext.woff2?v=f153aa07c1b1") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("fonts/figtree-latin.woff2?v=8330490a01c6") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

html { color-scheme: light; }
.rp { box-sizing: border-box; margin: 0; min-height: 100vh; min-height: 100dvh; background: var(--paper); color: var(--ink); font-family: var(--body); font-size: 1.125rem; line-height: 1.5; padding-bottom: 4rem; -webkit-text-size-adjust: 100%; }
.rp *, .rp *::before, .rp *::after { box-sizing: border-box; }
.rp-col { max-width: 37.5rem; margin: 0 auto; padding: 0 12px; }

.rp-head { text-align: center; padding: 2.5rem 1rem 0.5rem; }
.rp-couple { font-family: var(--display); font-weight: var(--display-weight); font-size: 2.75rem; line-height: 1.05; margin: 0; overflow-wrap: anywhere; }
.rp-date { margin: 1rem 0 0; color: var(--muted); }
.rp-rule { display: block; width: 3rem; height: 2px; background: var(--act); margin: 1.5rem auto; border: 0; }
.rp-for { margin: 0; color: var(--muted); }
.rp-addressee { margin: 0; font-family: var(--display); font-weight: var(--display-weight); font-size: 2rem; line-height: 1.15; overflow-wrap: anywhere; }
.rp-by { margin: 0.75rem 0 0; font-weight: 600; }

.rp-home { display: grid; place-content: center; justify-items: center; min-height: calc(100vh - 4rem); min-height: calc(100dvh - 4rem); padding: 3rem 1.5rem 0; text-align: center; }
.rp-home__couple { margin: 0; text-wrap: balance; font-family: var(--display); font-weight: var(--display-weight); font-size: clamp(3.25rem, 16vw, 6.5rem); line-height: 1; overflow-wrap: anywhere; }
.rp-home__name { display: block; }
.rp-home__amp { display: block; margin: 0.12em 0 0.08em; color: var(--act); font-size: 0.55em; line-height: 1; }
.rp-home__date { display: flex; align-items: center; justify-content: center; gap: 1rem; margin: 2.5rem 0 0; color: var(--muted); font-size: 0.875rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; }
.rp-home__date::before, .rp-home__date::after { content: ""; flex: none; width: 2.5rem; height: 1px; background: var(--act); }

.rp-card { background: var(--sheet); border: 1px solid var(--rule); border-radius: var(--radius); padding: 1.25rem 1rem; margin-top: 1rem; }
.rp-card h2 { font-size: 1.5rem; line-height: 1.25; font-weight: 700; margin: 0; overflow-wrap: anywhere; }
.rp-when { margin: 0.25rem 0 0; }
.rp-where { margin: 0; color: var(--muted); }
.rp-sub { margin: 0.25rem 0 0; color: var(--muted); }

.rp-person { border-top: 1px solid var(--rule); margin-top: 1.25rem; padding-top: 1rem; }
.rp-person + .rp-person { margin-top: 1rem; }
.rp-q { display: flex; flex-wrap: wrap; column-gap: 0.5rem; border: 0; margin: 0; padding: 0; min-width: 0; }
.rp-q > .rp-err { flex: 0 0 100%; }
.rp-name { padding: 0; margin: 0; font-size: 1.25rem; font-weight: 700; overflow-wrap: anywhere; }

.rp-opt { flex: 1 1 8em; display: flex; align-items: center; gap: 0.5rem; min-height: 3.5rem; margin-top: 0.625rem; padding: 0.5rem 0.625rem; border: 1px solid var(--field); border-radius: var(--radius-sm); background: var(--sheet); cursor: pointer; }
.rp-opt input { flex: none; width: 1.25em; height: 1.25em; margin: 0; accent-color: var(--act); cursor: pointer; }
.rp-opt span { font-weight: 500; }
.rp-opt:has(input:checked) { border: 3px solid var(--act); padding: calc(0.5rem - 2px) calc(0.625rem - 2px); background: var(--act-soft); }
.rp-opt:has(input:checked) span { font-weight: 700; }
.rp-opt:has(input:focus-visible) { outline: 3px solid var(--act); outline-offset: 2px; }

.rp-place + .rp-place { border-top: 1px solid var(--rule); margin-top: 1.25rem; }
.rp-tog { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.rp-addbtn { display: flex; align-items: center; justify-content: center; gap: 0.5rem; width: 100%; min-height: 3.5rem; margin-top: 1.25rem; padding: 0.75rem 1rem; border: 2px solid var(--act); border-radius: var(--radius-sm); background: var(--sheet); color: var(--act); font: inherit; font-weight: 700; cursor: pointer; }
.rp-remove { display: inline-block; margin-top: 0.75rem; color: var(--act); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.rp-added, .rp-later, .rp-grow { display: none; }
.rp-tog:checked + .rp-addbtn { display: none; }
.rp-tog:checked ~ .rp-added { display: block; }
.rp-tog:focus-visible + .rp-addbtn, .rp-tog:focus-visible ~ .rp-added .rp-remove { outline: 3px solid var(--act); outline-offset: 2px; }
.rp-place:has(.rp-tog:checked), .rp-place:has(.rp-tog:checked) + .rp-later { display: block; }
.rp-place:has(+ .rp-later .rp-tog:checked) :is(.rp-tog, .rp-remove) { display: none; }
form:has(.rp-t1:checked) .rp-grow-1 { display: block; }
form:has(.rp-t2:checked) .rp-grow-2 { display: block; }
form:has(.rp-t3:checked) .rp-grow-3 { display: block; }
form:has(.rp-t4:checked) .rp-grow-4 { display: block; }
form:has(.rp-t5:checked) .rp-grow-5 { display: block; }
form:has(.rp-t6:checked) .rp-grow-6 { display: block; }
form:has(.rp-t7:checked) .rp-grow-7 { display: block; }
form:has(.rp-t8:checked) .rp-grow-8 { display: block; }

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

@supports selector(:has(*)) {
  .rp-reveal { display: none; }
  .rp-form:has(.rp-person:not(.rp-grow) input[value="yes"]:checked) .rp-reveal-any { display: block; }
  .rp-form:has(.rp-t1:checked):has(.rp-grow-1 input[value="yes"]:checked) :is(.rp-reveal-any, .rp-reveal[data-place="1"]) { display: block; }
  .rp-form:has(.rp-t2:checked):has(.rp-grow-2 input[value="yes"]:checked) :is(.rp-reveal-any, .rp-reveal[data-place="2"]) { display: block; }
  .rp-form:has(.rp-t3:checked):has(.rp-grow-3 input[value="yes"]:checked) :is(.rp-reveal-any, .rp-reveal[data-place="3"]) { display: block; }
  .rp-form:has(.rp-t4:checked):has(.rp-grow-4 input[value="yes"]:checked) :is(.rp-reveal-any, .rp-reveal[data-place="4"]) { display: block; }
  .rp-form:has(.rp-t5:checked):has(.rp-grow-5 input[value="yes"]:checked) :is(.rp-reveal-any, .rp-reveal[data-place="5"]) { display: block; }
  .rp-form:has(.rp-t6:checked):has(.rp-grow-6 input[value="yes"]:checked) :is(.rp-reveal-any, .rp-reveal[data-place="6"]) { display: block; }
  .rp-form:has(.rp-t7:checked):has(.rp-grow-7 input[value="yes"]:checked) :is(.rp-reveal-any, .rp-reveal[data-place="7"]) { display: block; }
  .rp-form:has(.rp-t8:checked):has(.rp-grow-8 input[value="yes"]:checked) :is(.rp-reveal-any, .rp-reveal[data-place="8"]) { display: block; }
  .rp-form:has(.rp-person[data-slot="1"] input[value="yes"]:checked) .rp-reveal[data-slot="1"] { display: block; }
  .rp-form:has(.rp-person[data-slot="2"] input[value="yes"]:checked) .rp-reveal[data-slot="2"] { display: block; }
  .rp-form:has(.rp-person[data-slot="3"] input[value="yes"]:checked) .rp-reveal[data-slot="3"] { display: block; }
  .rp-form:has(.rp-person[data-slot="4"] input[value="yes"]:checked) .rp-reveal[data-slot="4"] { display: block; }
  .rp-form:has(.rp-person[data-slot="5"] input[value="yes"]:checked) .rp-reveal[data-slot="5"] { display: block; }
  .rp-form:has(.rp-person[data-slot="6"] input[value="yes"]:checked) .rp-reveal[data-slot="6"] { display: block; }
  .rp-form:has(.rp-person[data-slot="7"] input[value="yes"]:checked) .rp-reveal[data-slot="7"] { display: block; }
  .rp-form:has(.rp-person[data-slot="8"] input[value="yes"]:checked) .rp-reveal[data-slot="8"] { display: block; }
  .rp-form:has(.rp-person[data-slot="9"] input[value="yes"]:checked) .rp-reveal[data-slot="9"] { display: block; }
  .rp-form:has(.rp-person[data-slot="10"] input[value="yes"]:checked) .rp-reveal[data-slot="10"] { display: block; }
  .rp-form:has(.rp-person[data-slot="11"] input[value="yes"]:checked) .rp-reveal[data-slot="11"] { display: block; }
  .rp-form:has(.rp-person[data-slot="12"] input[value="yes"]:checked) .rp-reveal[data-slot="12"] { display: block; }
  .rp-form:has(.rp-person[data-slot="13"] input[value="yes"]:checked) .rp-reveal[data-slot="13"] { display: block; }
  .rp-form:has(.rp-person[data-slot="14"] input[value="yes"]:checked) .rp-reveal[data-slot="14"] { display: block; }
  .rp-form:has(.rp-person[data-slot="15"] input[value="yes"]:checked) .rp-reveal[data-slot="15"] { display: block; }
  .rp-form:has(.rp-person[data-slot="16"] input[value="yes"]:checked) .rp-reveal[data-slot="16"] { display: block; }
}

.rp-label { display: block; margin: 0 0 0.375rem; font-weight: 600; }
.rp-label--name { font-size: 1.25rem; font-weight: 700; overflow-wrap: anywhere; }
.rp-input { display: block; width: 100%; min-height: 3.5rem; padding: 0.75rem 0.875rem; border: 2px solid var(--field); border-radius: var(--radius-sm); background: var(--sheet); color: var(--ink); font: inherit; }
.rp-input:focus-visible { outline: 3px solid var(--act); outline-offset: 2px; }
.rp-input--err { border-color: var(--err); border-width: 3px; }
.rp-field { margin-top: 1.25rem; }
.rp-field + .rp-field { border-top: 1px solid var(--rule); padding-top: 1rem; }

.rp-submit { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 3.75rem; margin-top: 1.75rem; padding: 0.75rem 1rem; border: 0; border-radius: var(--radius-sm); background: var(--act); color: var(--on-act); font: inherit; font-size: 1.25rem; font-weight: 700; text-decoration: none; cursor: pointer; }
.rp-submit:focus-visible, .rp-second:focus-visible { outline: 3px solid var(--act); outline-offset: 3px; }
.rp-second { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 3.5rem; margin-top: 1.25rem; padding: 0.75rem 1rem; border: 2px solid var(--act); border-radius: var(--radius-sm); background: var(--sheet); color: var(--act); font: inherit; font-weight: 700; text-decoration: none; }
.rp-foot { margin: 0.75rem 0 0; text-align: center; color: var(--muted); }

.rp-alert { margin-top: 1rem; padding: 1rem; border: 3px solid var(--err); border-radius: var(--radius); background: var(--sheet); }
.rp-alert:focus-visible { outline: 3px solid var(--act); outline-offset: 2px; }
.rp-alert h2 { margin: 0; font-size: 1.375rem; line-height: 1.3; font-weight: 700; color: var(--err); }
.rp-alert ul { margin: 0.5rem 0 0; padding-left: 1.375rem; }
.rp-alert li { margin-top: 0.375rem; }
.rp-alert a { color: var(--ink); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.rp-err { margin: 0.375rem 0 0; color: var(--err); font-weight: 600; }
.rp-person--err .rp-name, .rp-field--err .rp-label { color: var(--err); }
.rp-person--err .rp-opt { border: 2px solid var(--err); padding: calc(0.5rem - 1px) calc(0.625rem - 1px); }
.rp-person--err .rp-opt:has(input:checked) { border: 3px solid var(--act); padding: calc(0.5rem - 2px) calc(0.625rem - 2px); }

.rp-done h2 { font-size: 1.625rem; }
.rp-status { margin: 0.25rem 0 0; }
.rp-sum { margin: 0.75rem 0 0; padding: 0; list-style: none; }
.rp-sum li { padding: 0.75rem 0; border-top: 1px solid var(--rule); }
.rp-sum li:first-child { border-top: 0; }
.rp-sum b { display: block; font-size: 1.1875rem; overflow-wrap: anywhere; }
.rp-sum span { overflow-wrap: anywhere; }
.rp-ans--no { color: var(--muted); }

.rp-gone { display: grid; place-content: center; justify-items: center; max-width: 37.5rem; min-height: calc(100vh - 4rem); min-height: calc(100dvh - 4rem); margin: 0 auto; padding: 3rem 1.5rem 0; text-align: center; }
.rp-gone h1 { margin: 0; text-wrap: balance; font-family: var(--display); font-weight: var(--display-weight); font-size: clamp(2.5rem, 11vw, 4rem); line-height: 1.05; overflow-wrap: anywhere; }
.rp-gone .rp-rule { margin: 1.75rem auto; }
.rp-gone p { margin: 0; color: var(--muted); text-wrap: balance; }
.rp-gone p + p { margin-top: 0.5rem; }

@media (min-width: 720px) {
  .rp-head { padding-top: 5rem; }
  .rp-couple { font-size: 4rem; }
  .rp-card { padding: 1.75rem 2rem; }
}
