.rsvp-page{min-height:100svh;background:var(--ivory)}.rsvp-nav{position:absolute}.back-link{text-decoration:none;font:600 .72rem var(--font-ui);letter-spacing:.05em;padding:12px}.rsvp-main{position:relative;min-height:100svh;padding:110px 20px 60px;display:grid;place-items:center}.rsvp-art{position:fixed;inset:0;background-image:linear-gradient(rgba(248,243,237,.28),rgba(248,243,237,.42)),var(--rsvp-bg);background-size:cover;background-position:center;filter:saturate(.88)}.rsvp-panel{position:relative;width:min(760px,100%);padding:clamp(28px,6vw,64px);border:1px solid rgba(255,255,255,.8);border-radius:34px;background:rgba(255,253,250,.86);box-shadow:0 35px 90px rgba(64,53,72,.19);backdrop-filter:blur(20px)}.rsvp-header{text-align:center;margin-bottom:42px}.rsvp-header h1{font:500 clamp(4rem,11vw,7.5rem)/.9 var(--font-display);letter-spacing:-.05em;margin:12px 0}.rsvp-header>p:not(.eyebrow){color:var(--muted)}.rsvp-header>span{display:inline-block;margin-top:10px;font:500 1.3rem var(--font-display)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{margin:0 0 22px}.field label,fieldset legend{display:block;margin:0 0 9px;font:600 .72rem var(--font-ui);letter-spacing:.06em;text-transform:uppercase;color:#55515b}.field input,.field select{width:100%;min-height:53px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.82);padding:13px 15px;color:var(--ink);font:500 .95rem var(--font-body);transition:border .25s,box-shadow .25s,transform .25s}.field input:hover,.field select:hover{border-color:var(--lav)}.field input:focus,.field select:focus{outline:0;border-color:var(--lav);box-shadow:0 0 0 4px rgba(180,162,202,.18);transform:translateY(-1px)}.field.invalid input,.field.invalid select{border-color:#bd665f;animation:fieldShake .35s}@keyframes fieldShake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.phone-field{display:grid;grid-template-columns:90px 1fr}.phone-field select{border-radius:15px 0 0 15px;border-right:0}.phone-field input{border-radius:0 15px 15px 0}.guest-fields{display:grid;gap:12px;margin-bottom:24px}.guest-row{padding:18px;border-radius:18px;background:linear-gradient(135deg,var(--mint-soft),rgba(255,255,255,.7));animation:rowIn .35s cubic-bezier(.2,.8,.2,1)}.guest-row label{font:600 .7rem var(--font-ui);text-transform:uppercase;letter-spacing:.08em}.guest-row input{width:100%;min-height:48px;margin-top:8px;border:1px solid var(--line);border-radius:13px;padding:12px}.guest-row.removing{animation:rowOut .2s forwards}@keyframes rowIn{from{opacity:0;transform:translateY(-10px) scale(.98)}}@keyframes rowOut{to{opacity:0;transform:translateY(-8px);height:0;padding:0;margin:0}}fieldset{border:0;padding:0;margin:10px 0 32px}fieldset legend{font-size:.82rem;margin-bottom:15px}.select-all{width:100%;min-height:50px;display:flex;align-items:center;gap:12px;border:1px dashed var(--lav);border-radius:15px;background:var(--lav-soft);padding:10px 15px;text-align:left;cursor:pointer}.select-all span{width:23px;height:23px;border:1px solid var(--lav);border-radius:8px;background:white;transition:.25s}.select-all.selected span{background:var(--lav);box-shadow:inset 0 0 0 6px white}.rsvp-events{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.event-option{position:relative;display:grid;grid-template-columns:58px 1fr 24px;gap:12px;align-items:center;min-height:92px;padding:12px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.72);cursor:pointer;transition:.25s}.event-option:hover{transform:translateY(-3px);box-shadow:0 12px 24px rgba(74,61,82,.09)}.event-option.selected{border-color:var(--lav);background:var(--lav-soft);box-shadow:0 0 0 3px rgba(180,162,202,.13)}.event-option input{position:absolute;opacity:0}.event-option img{width:58px;height:65px;object-fit:cover;border-radius:12px;transition:.35s}.event-option:hover img{transform:scale(1.05) rotate(-2deg)}.event-option strong{display:block;font:500 1.02rem var(--font-display)}.event-option small{display:block;color:var(--muted);font-size:.7rem;margin-top:4px}.check-dot{width:21px;height:21px;border:1px solid var(--lav);border-radius:50%;background:white;transition:.25s}.selected .check-dot{background:var(--lav);box-shadow:inset 0 0 0 5px white}.field-error{min-height:18px;color:#a24f49;font-size:.78rem}.optional-divider{display:flex;align-items:center;gap:15px;margin:34px 0 25px;color:var(--muted);font:600 .68rem var(--font-ui);letter-spacing:.1em;text-transform:uppercase}.optional-divider:before,.optional-divider:after{content:"";height:1px;flex:1;background:var(--line)}.dietary-other{margin-top:10px}.submit-button{width:100%;font-style:normal;position:relative}.submit-button i{display:none;width:18px;height:18px;border:2px solid rgba(255,255,255,.4);border-top-color:white;border-radius:50%;animation:loaderSpin .7s linear infinite}.submit-button.loading i{display:block}.submit-button.loading span{opacity:.65}.cancel-button{width:100%;margin-top:10px}.form-status{text-align:center;color:#a24f49;min-height:22px;font-size:.82rem}.honeypot{position:absolute!important;left:-10000px!important}.summary-card{text-align:center}.summary-mark,.success-overlay>div>span{display:grid;place-items:center;width:66px;height:66px;margin:0 auto 20px;border-radius:50%;background:var(--mint-soft);font-size:1.6rem;color:#607c68}.summary-card h2,.confirm-dialog h2,.success-overlay h2{font:500 clamp(2.5rem,6vw,4rem)/1 var(--font-display);margin:14px 0 30px}.summary-grid{display:grid;grid-template-columns:2fr 1.5fr .7fr;text-align:left;border:1px solid var(--line);border-radius:18px;overflow:hidden}.summary-grid>div{padding:18px;border-right:1px solid var(--line)}.summary-grid>div:last-child{border:0}.summary-grid small{display:block;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:.6rem;margin-bottom:5px}.summary-grid strong{font-size:.9rem;overflow-wrap:anywhere}.summary-events{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:25px 0}.summary-events span{padding:8px 12px;border-radius:99px;background:var(--peach-soft);font:600 .7rem var(--font-ui)}.summary-actions{display:flex;justify-content:center;gap:10px}.confirm-backdrop{opacity:1}.confirm-dialog,.success-overlay>div{width:min(470px,100%);background:var(--paper);border-radius:28px;padding:40px;text-align:center;box-shadow:var(--shadow)}.confirm-dialog>span{font-size:2rem}.confirm-dialog p,.success-overlay p{color:var(--muted);line-height:1.7}.confirm-dialog>div{display:flex;gap:10px;justify-content:center;margin-top:25px}.success-overlay{position:fixed;z-index:900;inset:0;padding:18px;background:rgba(35,31,40,.5);backdrop-filter:blur(14px);display:grid;place-items:center}.success-overlay[hidden],.confirm-backdrop[hidden]{display:none}
@media(max-width:620px){.rsvp-main{padding:88px 10px 20px}.rsvp-panel{border-radius:25px;padding:28px 16px}.rsvp-nav{width:calc(100% - 20px)}.field-grid{grid-template-columns:1fr;gap:0}.rsvp-events{grid-template-columns:1fr}.event-option{min-height:84px}.summary-grid{grid-template-columns:1fr}.summary-grid>div{border-right:0;border-bottom:1px solid var(--line)}.summary-actions,.confirm-dialog>div{display:grid}.summary-actions .button{width:100%}}
.divine-temple.rsvp-page{background:#2f0d0c}.divine-temple .rsvp-art{filter:saturate(.92) contrast(1.04);background-image:linear-gradient(rgba(45,12,10,.38),rgba(45,12,10,.52)),var(--rsvp-bg)}.divine-temple .rsvp-panel{border-radius:8px 34px;border:1px solid rgba(224,165,28,.65);background:rgba(255,248,229,.91);box-shadow:0 38px 100px rgba(34,8,5,.48),inset 0 0 0 6px rgba(183,134,44,.1)}.divine-temple .rsvp-header h1{color:#7f181c}.divine-temple .field input,.divine-temple .field select{border-radius:5px 14px;background:#fff9ea}.divine-temple .field input:focus,.divine-temple .field select:focus{border-color:#b7862c;box-shadow:0 0 0 4px rgba(183,134,44,.18)}.divine-temple .select-all{border-color:#b7862c;background:#f4e2b1}.divine-temple .select-all.selected span,.divine-temple .selected .check-dot{background:#9e1b24}.divine-temple .event-option{border-radius:5px 18px;background:rgba(255,249,234,.88)}.divine-temple .event-option.selected{border-color:#9e1b24;background:#f2d9bd}.divine-temple .guest-row{background:linear-gradient(135deg,#f3dc9e,#fff9ea)}

/* Divine Temple RSVP depth pass */
.divine-temple .rsvp-main {
  isolation: isolate;
}

.divine-temple .rsvp-main:before,
.divine-temple .rsvp-main:after {
  content: "";
  position: fixed;
  z-index: -1;
  pointer-events: none;
}

.divine-temple .rsvp-main:before {
  width: min(760px, 120vw);
  aspect-ratio: 1;
  border: 1px solid rgba(255, 221, 142, .18);
  border-radius: 50%;
  background: repeating-conic-gradient(from 0deg, rgba(255, 221, 142, .11) 0 2deg, transparent 2deg 10deg);
  inset: auto auto -28vw -18vw;
  animation: rsvpMandala 48s linear infinite;
}

.divine-temple .rsvp-main:after {
  inset: 0;
  background:
    radial-gradient(circle at 20% 18%, rgba(255, 196, 80, .2), transparent 26%),
    linear-gradient(90deg, rgba(47, 13, 12, .58), transparent 34%, transparent 66%, rgba(47, 13, 12, .64));
}

.divine-temple .rsvp-art {
  background-position: center;
  filter: saturate(1.04) contrast(1.08);
}

.divine-temple .rsvp-art:before {
  content: "";
  position: absolute;
  inset: 18px;
  border: 1px solid rgba(255, 231, 170, .18);
  border-radius: 4px 38px;
}

.divine-temple .rsvp-art:after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(47, 13, 12, .2), rgba(47, 13, 12, .68)),
    repeating-linear-gradient(90deg, transparent 0 19px, rgba(255, 231, 170, .035) 19px 20px);
}

.divine-temple .rsvp-panel {
  width: min(780px, 100%);
  border-radius: 4px 42px;
  border-color: rgba(255, 219, 132, .72);
  background:
    linear-gradient(180deg, rgba(255, 248, 229, .94), rgba(255, 240, 203, .9)),
    repeating-linear-gradient(135deg, transparent 0 18px, rgba(127, 24, 28, .04) 18px 19px);
  box-shadow:
    0 42px 110px rgba(24, 5, 3, .55),
    inset 0 0 0 7px rgba(183, 134, 44, .12);
}

.divine-temple .rsvp-panel:before {
  content: "";
  position: absolute;
  inset: 12px;
  border: 1px solid rgba(127, 24, 28, .14);
  border-radius: 3px 31px;
  pointer-events: none;
}

.divine-temple .rsvp-header {
  position: relative;
}

.divine-temple .rsvp-header:before {
  content: "";
  display: block;
  width: 90px;
  height: 12px;
  margin: 0 auto 20px;
  background: repeating-linear-gradient(90deg, #9e1b24 0 10px, #dc941f 10px 20px, #4f6336 20px 30px);
  border-radius: 99px;
}

.divine-temple .rsvp-header h1 {
  letter-spacing: -.01em;
}

.divine-temple .event-option {
  grid-template-columns: 58px 1fr 22px;
}

.divine-temple .event-option img {
  border-radius: 3px 12px;
}

.divine-temple .summary-events span {
  border-radius: 3px 14px;
  background: #f4df9f;
  color: #431914;
}

@keyframes rsvpMandala {
  to { transform: rotate(360deg); }
}

@media(max-width: 620px) {
  .divine-temple .rsvp-art:before {
    inset: 10px;
  }

  .divine-temple .rsvp-panel {
    border-radius: 4px 28px;
  }

  .divine-temple .rsvp-main:before {
    width: 520px;
    inset: auto auto -220px -180px;
  }
}

/* Hard fallback so the RSVP page always carries the temple image. */
.divine-temple.rsvp-page {
  background:
    linear-gradient(90deg, rgba(47, 13, 12, .76), rgba(47, 13, 12, .48), rgba(47, 13, 12, .8)),
    image-set(url("../images/rsvp-temple-depth-light.avif") type("image/avif"), url("../images/rsvp-temple-depth-light.avif") type("image/webp")) center / cover fixed no-repeat,
    #2f0d0c;
}

.divine-temple .rsvp-art {
  z-index: -2;
  background-image:
    linear-gradient(90deg, rgba(47, 13, 12, .48), rgba(47, 13, 12, .18) 42%, rgba(47, 13, 12, .64)),
    linear-gradient(180deg, rgba(47, 13, 12, .22), rgba(47, 13, 12, .54)),
    image-set(url("../images/rsvp-temple-depth-light.avif") type("image/avif"), url("../images/rsvp-temple-depth-light.avif") type("image/webp")) !important;
}

.divine-temple .rsvp-main:after {
  background:
    radial-gradient(circle at 20% 18%, rgba(255, 196, 80, .16), transparent 26%),
    linear-gradient(90deg, rgba(47, 13, 12, .34), transparent 36%, transparent 64%, rgba(47, 13, 12, .42));
}
