.countdown {position:relative;padding:100px 24px 70px;background:var(--paper);text-align:center;overflow:hidden}
.countdown-inner {max-width:850px;margin:auto}
.countdown h2 {font:500 clamp(36px,7vw,64px)/1.1 var(--serif);margin:22px 0 12px;color:var(--night)}
#countdownDate {font-size:14px;color:var(--muted)}
.countdown-digits {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:44px 0 30px}
.countdown-digits>div+div {border-left:1px solid var(--line)}
.countdown-digits span {display:block;font:400 clamp(42px,9vw,94px)/1 var(--serif);font-variant-numeric:tabular-nums;color:var(--terracotta)}
.countdown-digits small {display:block;margin-top:12px;text-transform:uppercase;letter-spacing:.12em;font-size:12px}
.countdown-horizon {height:36px;border-bottom:1px solid var(--line);position:relative;overflow:hidden;max-width:360px;margin:30px auto 0}
.countdown-horizon:before {content:'';position:absolute;width:60px;height:60px;border-radius:50%;left:calc(50% - 30px);top:0;background:var(--solar);transform:translateY(var(--countdown-sun,0px));transition:transform 1s}
.countdown-finale {font:400 34px/1.3 var(--serif);margin:40px auto}
.rsvp-inner {max-width:740px}
.rsvp-wizard {text-align:left;max-width:620px;margin:44px auto 0;min-width:0}
.rsvp-wizard [hidden],.countdown [hidden] {display:none!important}
.rsvp-wizard button,.rsvp-wizard input,.rsvp-wizard textarea,.rsvp-wizard select {font:inherit}
.rsvp-wizard button {cursor:pointer;touch-action:manipulation}
.rsvp-wizard button:active {transform:scale(.98)}
.rsvp-wizard :focus-visible {outline:2px solid var(--terracotta);outline-offset:5px}
.rsvp-progress {display:flex;align-items:center;gap:12px;margin-bottom:38px;padding:0;list-style:none}
.rsvp-progress li {display:flex;align-items:center;gap:12px;flex:1;color:var(--muted);font-size:14px}
.rsvp-progress li:after {content:'';height:1px;background:var(--line);flex:1}
.rsvp-progress li:last-child {flex:0}
.rsvp-progress li:last-child:after {display:none}
.rsvp-progress li[aria-current=step] {color:var(--terracotta);font-weight:600}
.rsvp-panel {animation:rsvp-arrive .5s cubic-bezier(.22,1,.36,1)}
.rsvp-panel h3 {font:500 clamp(29px,5vw,38px)/1.15 var(--serif);margin:0 0 16px;letter-spacing:0}
.rsvp-panel>p {font-size:14px;color:var(--muted)}
.rsvp-grid {display:grid;grid-template-columns:1fr 1fr;gap:24px 20px;margin:28px 0}
.rsvp-field {display:block;font-size:14px;min-width:0;color:var(--ink)}
.rsvp-field input,.rsvp-field textarea,.rsvp-field select {display:block;width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);padding:13px 0;border-radius:0;min-height:48px;font-size:16px;transition:border-color .2s}
.rsvp-field input:focus,.rsvp-field textarea:focus {border-color:var(--terracotta);outline:none;box-shadow:0 1px var(--terracotta)}
.rsvp-field textarea {resize:vertical;min-height:95px}
.rsvp-field:has(textarea) {margin-top:22px}
.rsvp-error {display:block;color:#8a3028;font-size:13px;line-height:1.5;margin:6px 0 0}
.rsvp-error:empty {display:none}
.rsvp-field [aria-invalid=true] {border-color:#8a3028}
.rsvp-choices {display:grid;gap:10px;margin:24px 0}
.rsvp-choices label {position:relative;display:flex;align-items:center;gap:14px;min-height:62px;padding:15px 18px;border:1px solid var(--line);cursor:pointer;transition:background .3s,border-color .3s,box-shadow .3s;color:var(--ink);font-size:14px}
.rsvp-choices input {position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.rsvp-choices label:before {content:'';width:18px;height:18px;border:1px solid var(--terracotta);flex-shrink:0;border-radius:50%;box-shadow:inset 0 0 0 4px var(--paper);transition:background .25s}
.rsvp-choices label:has(input:checked) {background:#e7c6a63d;border-color:var(--terracotta)}
.rsvp-choices label:has(input:checked):before {background:var(--terracotta)}
.rsvp-choices label:has(input:focus-visible) {outline:2px solid var(--terracotta);outline-offset:3px}
.rsvp-choices strong {display:block;font-weight:500}
.rsvp-choices small {display:block;color:var(--muted);font-size:13px;margin-top:3px}
.rsvp-event-number {font:400 28px var(--serif);color:var(--terracotta)}
.rsvp-wizard fieldset {border:0;padding:0;margin:0;min-width:0}
.rsvp-wizard legend {font-size:14px;margin:16px 0 0}
.rsvp-actions {display:flex;align-items:center;gap:20px;margin-top:32px;flex-wrap:wrap}
.rsvp-actions .submit {flex:1;min-width:190px;margin:0;font-size:13px;padding:19px 16px}
.rsvp-actions .submit {isolation:isolate}
.rsvp-actions .submit::before {z-index:-1}
.rsvp-custom input {appearance:none;border:1px solid var(--terracotta);border-radius:50%;background:transparent;box-shadow:inset 0 0 0 4px var(--ivory)}
.rsvp-custom input:checked {background:var(--terracotta)}
.rsvp-secondary {background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--night);min-height:44px;padding:9px 2px;font-size:14px!important}
.rsvp-add {display:block;width:100%;border:1px solid var(--terracotta);background:transparent;color:var(--terracotta);padding:18px;min-height:54px;margin:24px 0}
.rsvp-guest {border-top:1px solid var(--line);padding:28px 0 10px;animation:rsvp-arrive .45s ease-out;min-width:0}
.rsvp-guest header {display:flex;justify-content:space-between;align-items:center;gap:10px}
.rsvp-guest h4 {margin:0;font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.1em}
.rsvp-guest .rsvp-grid {margin:18px 0}
.rsvp-category {display:grid;grid-template-columns:1fr 1fr;margin:16px 0}
.rsvp-category label {min-height:50px;padding:12px}
.rsvp-custom {font-size:14px;margin:18px 0;accent-color:var(--terracotta);display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}
.rsvp-custom input {width:20px;height:20px;flex-shrink:0}
.rsvp-extras {margin-top:28px;border-top:1px solid var(--line);padding-top:20px}
.rsvp-extras summary {cursor:pointer;font-size:14px;min-height:44px}
.rsvp-review {border-top:1px solid var(--line);margin-top:28px;padding-top:18px;font-size:15px;overflow-wrap:anywhere}
.rsvp-review dl {display:grid;grid-template-columns:1fr auto;gap:12px 16px}
.rsvp-review dd {margin:0;text-align:right;color:var(--terracotta)}
.rsvp-review ul {list-style:none;padding:0;margin:24px 0}
.rsvp-review li {padding:13px 0;border-bottom:1px solid var(--line)}
.rsvp-review li small {display:block;font-size:13px;color:var(--muted)}
.rsvp-notice {font-size:14px;line-height:1.6;color:var(--muted);margin:24px 0}
.rsvp-confirmation {text-align:center;padding:32px 0;animation:rsvp-arrive .65s ease-out}
.rsvp-confirmation h3 {font:400 76px/1 var(--serif);margin:30px 0 22px;color:var(--terracotta)}
.rsvp-confirmation p {font-size:14px}
.rsvp-confirmation .success-horizon {position:relative;margin:0 auto;width:170px;height:80px;overflow:hidden;border-bottom:1px solid var(--line)}
.rsvp-confirmation .success-horizon:before {content:'';position:absolute;left:calc(50% - 36px);width:72px;height:72px;border-radius:50%;background:var(--solar);animation:rsvp-sunrise 1.1s cubic-bezier(.22,1,.36,1) both}
.rsvp-sending {height:50px;overflow:hidden;position:relative;border-bottom:1px solid var(--line);max-width:180px;margin:25px auto;text-align:center}
.rsvp-sending:before {content:'';display:block;width:30px;height:30px;border-radius:50%;background:var(--solar);margin:22px auto 0;animation:rsvp-sunrise 1.2s ease-in-out infinite alternate}
.rsvp-wizard button:disabled {opacity:.65;cursor:wait}
@keyframes rsvp-arrive {from {opacity:0;transform:translateY(14px)}to {opacity:1;transform:translateY(0)}}
@keyframes rsvp-sunrise {from {transform:translateY(75px)}to {transform:translateY(12px)}}
@media(max-width:480px) {.countdown {padding:80px 20px 50px}.countdown-digits small {font-size:11px;letter-spacing:.05em}.rsvp-grid {gap:22px 16px}.rsvp-choices label {padding:14px 12px}.rsvp-actions {gap:14px}.rsvp-guest header {align-items:baseline}.rsvp-guest header button {font-size:12px!important}.rsvp-review dl {font-size:14px}.rsvp-panel h3 {font-size:32px}}
@media(prefers-reduced-motion:reduce) {.rsvp-panel,.rsvp-guest,.rsvp-confirmation,.rsvp-confirmation .success-horizon:before,.rsvp-sending:before {animation:none}.rsvp-confirmation .success-horizon:before {transform:translateY(12px)}.rsvp-wizard *,.countdown * {transition:none!important}}
