/* Progressive-enhancement and responsive hardening. */
.reveal { opacity: 1; transform: none; }
.rsvp-panel,.form-card,.summary-card,.field,.phone-row,.rsvp-events,.event-option { min-width: 0; }
.form-card,.summary-card { width: 100%; }
.event-option span { overflow-wrap: anywhere; }
.event-option strong,.event-option small { display:block; }
.event-option .check-dot { display:none; }

.event-copy { position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(circle at 90% 14%,rgba(242,5,116,.16) 0 3px,transparent 4px) 0 0/18px 18px,linear-gradient(135deg,#fffdf6 0%,#fff0b8 62%,#ffc9de 100%);transition:background-position .55s ease,filter .35s ease; }
.event-card:nth-child(2) .event-copy { background:radial-gradient(circle at 12% 82%,rgba(0,169,183,.18) 0 3px,transparent 4px) 0 0/20px 20px,linear-gradient(145deg,#fffdf6,#d4f7f4 58%,#ffd21c); }
.event-card:nth-child(3) .event-copy { background:repeating-linear-gradient(-18deg,transparent 0 18px,rgba(255,100,30,.08) 18px 21px),linear-gradient(135deg,#fffdf6,#ffd7aa 58%,#ff91bd); }
.event-card:nth-child(4) .event-copy { background:radial-gradient(circle at 86% 18%,rgba(255,210,28,.22) 0 4px,transparent 5px) 0 0/22px 22px,linear-gradient(140deg,#fffdf6,#ffe8a6 58%,#9de8ec); }
.event-copy::before { content:"";position:absolute;z-index:-1;width:180px;aspect-ratio:1;right:-75px;bottom:-90px;border:20px double rgba(16,16,16,.08);border-radius:50%;transition:transform .6s cubic-bezier(.2,.8,.2,1); }
.event-card:hover .event-copy { background-position:12px -8px,0 0;filter:saturate(1.08); }
.event-card:hover .event-copy::before { transform:rotate(22deg) scale(1.12); }
.copy-sticker { position:absolute;right:18px;top:18px;padding:5px 8px;background:var(--pink);color:#fff;border:2px solid var(--ink);font:600 .58rem/1 var(--display);letter-spacing:.08em;transform:rotate(4deg);box-shadow:3px 3px 0 var(--cyan);transition:transform .3s ease; }
.event-card:hover .copy-sticker { transform:rotate(-3deg) scale(1.06); }

.pop-divider { max-width:1040px;margin:clamp(70px,9vw,120px) auto 0;display:grid;grid-template-columns:1fr auto auto auto 1fr;align-items:center;gap:12px;color:var(--ink); }
.pop-divider i { height:12px;border-block:3px solid var(--ink);background:repeating-linear-gradient(90deg,var(--pink) 0 24px,var(--yellow) 24px 48px,var(--cyan) 48px 72px); }
.pop-divider span { display:grid;place-items:center;width:46px;aspect-ratio:1;border:3px solid var(--ink);border-radius:50%;background:var(--pink);color:var(--yellow);font-size:1.25rem;box-shadow:4px 4px 0 var(--cyan); }
.pop-divider b { padding:9px 14px;border:3px solid var(--ink);background:var(--yellow);font:.72rem/1 var(--display);letter-spacing:.12em;transform:rotate(-1deg);white-space:nowrap; }

.card-track { grid-auto-columns:42%;scroll-behavior:smooth; }
.carousel-head button:disabled { opacity:.32;cursor:not-allowed;background:#d9d2bf;box-shadow:none;transform:none; }
.dots:empty { display:none; }
.dots button { cursor:pointer; }
.dots button[aria-current="true"] { width:35px;background:var(--pink); }

.rsvp-art { position:relative;overflow:hidden;background-color:var(--pink); }
.rsvp-art::after { content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 72%,rgba(16,16,16,.18)),radial-gradient(circle at 50% 42%,transparent 40%,rgba(242,5,116,.16)); }
@media (max-width:800px) {
  .rsvp-main { display:block; }
  .rsvp-art { position:relative; width:100%; height:min(34svh,280px); background-position:center 28%; }
  .rsvp-panel { width:100%; padding:56px 16px; }
  .rsvp-header h1 { font-size:clamp(3.5rem,20vw,5.5rem); }
  .form-card,.summary-card { padding:20px 16px; box-shadow:7px 7px 0 var(--pink); }
  .phone-row { grid-template-columns:88px minmax(0,1fr); }
  .rsvp-events { grid-template-columns:minmax(0,1fr); }
  .event-option { grid-template-columns:72px minmax(0,1fr); }
  .event-option img { width:72px; height:82px; }
  .copy-sticker { right:12px;top:12px; }
  .pop-divider { grid-template-columns:1fr auto 1fr;gap:8px;margin-top:70px; }
  .pop-divider span:first-of-type,.pop-divider span:last-of-type { display:none; }
  .pop-divider b { font-size:.6rem;padding:8px; }
  .card-track { grid-auto-columns:86%; }
  .guest-row { grid-template-columns:72px minmax(0,1fr); gap:8px; }
  .modal section,.success>div { width:min(100%,430px); padding:26px 18px; }
}
@media (prefers-reduced-motion:reduce) { .reveal { opacity:1!important; transform:none!important; } }
