:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#242944;font-size:16px;line-height:1.6;--event-bg:#352955;--event-accent:#e4c3ff;--event-wash:#f0edf8;--ml-purple:#6156d8;--ml-ink:#242944}*{box-sizing:border-box}body{margin:0;min-height:100vh;background-color:var(--event-wash);background-image:radial-gradient(circle at 15% 10%,#fff9 0 10%,transparent 30%),radial-gradient(circle at 90% 80%,#ffffffaa 0 8%,transparent 35%);padding:clamp(18px,5vw,80px)}.rsvp-theme-halloween{--event-bg:#302042;--event-accent:#ffc57d;--event-wash:#e9dfed}.rsvp-theme-toys{--event-bg:#314779;--event-accent:#ffdc9c;--event-wash:#e9eff9}.rsvp-theme-christmas{--event-bg:#53344b;--event-accent:#f8d98d;--event-wash:#f5ecef}.rsvp-theme-easter{--event-bg:#594572;--event-accent:#fadd99;--event-wash:#f6f0e3}.rsvp-theme-rose{--event-bg:#632b52;--event-accent:#ffbbdd;--event-wash:#fae9f2}.rsvp-theme-sport{--event-bg:#223e66;--event-accent:#b6d6ff;--event-wash:#e9f1fa}.rsvp-theme-meal{--event-bg:#543650;--event-accent:#f2c586;--event-wash:#f8eee7}.rsvp-theme-summer{--event-bg:#25465d;--event-accent:#ffdc91;--event-wash:#f8f1db}.rsvp-layout{max-width:1000px;margin:2vh auto;display:grid;grid-template-columns:1.05fr 1fr;border-radius:30px;overflow:hidden;box-shadow:0 24px 80px #2429441a;background:#fff}.rsvp-event{position:relative;padding:clamp(26px,4vw,48px);background:var(--event-bg);color:#fff;overflow:hidden}.rsvp-event:after{content:"";position:absolute;width:360px;height:360px;border:1px solid #ffffff17;border-radius:50%;left:-180px;bottom:-160px;pointer-events:none}.rsvp-organizer{display:flex;align-items:center;gap:14px;font-size:.86rem;font-weight:650}.rsvp-organizer img{width:64px;height:64px;border-radius:50%;background:white;object-fit:contain;padding:3px}.rsvp-kicker{letter-spacing:.18em;font-size:.65rem;font-weight:750;margin:48px 0 15px;color:var(--event-accent)}h1{font-size:clamp(2rem,4.5vw,3.5rem);line-height:1.08;letter-spacing:-.035em;margin:0 0 24px;overflow-wrap:anywhere}.rsvp-when{font-weight:700;margin-bottom:3px}.rsvp-place{margin:0;color:#f0eafa}.rsvp-art{display:block;width:100%;max-height:240px;margin:24px auto 0}.rsvp-welcome{font-size:.86rem;color:var(--event-accent);margin:14px 0 0}.rsvp-form{padding:clamp(26px,4vw,48px);align-self:center}.rsvp-form-kicker{font-size:.64rem;letter-spacing:.16em;color:#6156a6;font-weight:800}h2{font-size:1.9rem;line-height:1.15;letter-spacing:-.03em;margin:13px 0 18px}.rsvp-form>p{color:#60657a}.rsvp-form label{display:block;margin:22px 0;font-size:.88rem;font-weight:650}.rsvp-form input:not([type=hidden]){display:block;width:100%;padding:13px 15px;border:1px solid #dcdce9;border-radius:11px;font:inherit;background:#fafaff;color:var(--ml-ink);margin-top:7px}.rsvp-form button{width:100%;padding:15px 20px;background:var(--ml-purple);color:#fff;border:0;border-radius:11px;font:inherit;font-weight:700;cursor:pointer;margin-top:5px}.rsvp-form :focus-visible{outline:3px solid #9389ef;outline-offset:3px}.rsvp-form small{display:block;color:#72768b;font-size:.73rem;line-height:1.6;margin-top:20px}.rsvp-form [role=status]{background:var(--event-wash);color:var(--ml-ink);padding:16px;border-radius:12px}.rsvp-footer{max-width:1000px;margin:20px auto;text-align:center;font-size:.72rem;color:#62667b}@media(max-width:700px){body{padding:14px}.rsvp-layout{grid-template-columns:1fr;border-radius:23px;margin:0}.rsvp-event{padding:26px}.rsvp-kicker{margin-top:26px}.rsvp-art{max-height:150px;margin-top:10px}.rsvp-form{padding:28px}.rsvp-welcome{margin-top:0}h1{font-size:2.3rem}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

/* Title-selected full-page scenery. Decorative motion never captures input. */
:root{--scene-deep:#201c43;--scene-mid:#493379;--scene-glow:#af86dc;--scene-secondary:#da9163;--scene-speed:18s;--scene-motion:rsvp-drift}
body{position:relative;isolation:isolate;background:var(--scene-deep);padding:clamp(18px,4vw,60px);color:var(--ml-ink)}
.rsvp-theme-halloween{--scene-deep:#160f2e;--scene-mid:#492660;--scene-glow:#a06dcc;--scene-secondary:#ed9143;--scene-speed:16s;--scene-motion:rsvp-haunt}
.rsvp-theme-toys{--scene-deep:#142d55;--scene-mid:#365d8b;--scene-glow:#74a8db;--scene-secondary:#edb26b;--scene-speed:13s;--scene-motion:rsvp-sway}
.rsvp-theme-christmas{--scene-deep:#28172f;--scene-mid:#683c5a;--scene-glow:#b7758a;--scene-secondary:#e4bb64;--scene-speed:20s;--scene-motion:rsvp-sway}
.rsvp-theme-easter{--scene-deep:#43345f;--scene-mid:#7a649d;--scene-glow:#c7aae7;--scene-secondary:#ecd396;--scene-speed:15s;--scene-motion:rsvp-hop}
.rsvp-theme-rose{--scene-deep:#431a3b;--scene-mid:#8b4072;--scene-glow:#e294bc;--scene-secondary:#c4a2df;--scene-speed:21s}
.rsvp-theme-sport{--scene-deep:#142b4a;--scene-mid:#3d6791;--scene-glow:#80aed5;--scene-secondary:#e4c784;--scene-speed:25s;--scene-motion:rsvp-rise}
.rsvp-theme-meal{--scene-deep:#382336;--scene-mid:#774c62;--scene-glow:#ca8c90;--scene-secondary:#e5b271;--scene-speed:23s;--scene-motion:rsvp-sway}
.rsvp-theme-summer{--scene-deep:#173f57;--scene-mid:#377f93;--scene-glow:#83c9d1;--scene-secondary:#f4c969;--scene-speed:24s;--scene-motion:rsvp-rise}
.rsvp-backdrop{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 12% 16%,color-mix(in srgb,var(--scene-secondary) 38%,transparent),transparent 42%),radial-gradient(ellipse at 88% 86%,var(--scene-mid),transparent 58%),linear-gradient(145deg,var(--scene-mid),var(--scene-deep) 65%)}
.rsvp-glow{position:absolute;inset:-10%;background:radial-gradient(ellipse at 70% 15%,color-mix(in srgb,var(--scene-glow) 50%,transparent),transparent 45%),radial-gradient(ellipse at 5% 90%,color-mix(in srgb,var(--scene-secondary) 22%,transparent),transparent 35%);animation:rsvp-light 24s ease-in-out infinite alternate}
.rsvp-sparkles{position:absolute;inset:-60px;background-image:radial-gradient(circle,#fff9 1px,transparent 2px),radial-gradient(circle,var(--event-accent) 1.5px,transparent 2.5px);background-size:97px 109px,173px 151px;background-position:14px 31px,60px 80px;opacity:.28;animation:rsvp-stardust 18s ease-in-out infinite alternate}
.rsvp-theme-christmas .rsvp-sparkles{opacity:.6;animation:rsvp-snow 18s linear infinite}
.rsvp-theme-toys .rsvp-sparkles,.rsvp-theme-easter .rsvp-sparkles{background-image:radial-gradient(circle,var(--event-accent) 3px,transparent 4px);background-size:81px 97px;opacity:.18}
.rsvp-motif{position:absolute;width:clamp(140px,23vw,340px);opacity:.32;animation:var(--scene-motion) var(--scene-speed) ease-in-out infinite alternate;transform-origin:center}
.rsvp-motif .rsvp-art{margin:0;max-height:none;width:100%;filter:drop-shadow(0 14px 20px #0002)}
.rsvp-motif-1{left:-7%;top:3%;rotate:-18deg}.rsvp-motif-2{right:-6%;top:17%;rotate:16deg;animation-delay:-7s}.rsvp-motif-3{left:4%;bottom:-6%;rotate:12deg;animation-delay:-11s}.rsvp-motif-4{right:1%;bottom:-4%;rotate:-12deg;animation-delay:-4s}.rsvp-motif-5{left:43%;top:-11%;width:220px;opacity:.16;animation-delay:-13s}
.rsvp-controls{max-width:1000px;margin:0 auto 12px;display:flex;justify-content:flex-end}.rsvp-motion-toggle{display:inline-flex;gap:8px;align-items:center;color:#fff;font-size:.72rem;cursor:pointer;padding:6px 12px;border:1px solid #ffffff30;border-radius:30px;background:#15162c80;backdrop-filter:blur(8px)}.rsvp-motion-toggle input{width:15px;height:15px;margin:0;accent-color:var(--event-accent)}.rsvp-motion-toggle:focus-within{outline:2px solid #fff;outline-offset:3px}
body:has(#rsvp-motion:not(:checked)) .rsvp-backdrop *,body:has(#rsvp-motion:not(:checked)) .rsvp-event>.rsvp-art{animation-play-state:paused}
.rsvp-layout{margin:0 auto;border:1px solid #ffffff54;box-shadow:0 28px 100px #07051b66,0 2px 8px #0002;background:linear-gradient(160deg,#fff 45%,var(--event-wash));position:relative}
.rsvp-event{background:radial-gradient(ellipse at 0% 100%,color-mix(in srgb,var(--scene-glow) 26%,transparent),transparent 60%),radial-gradient(ellipse at 100% 0%,color-mix(in srgb,var(--scene-secondary) 17%,transparent),transparent 60%),var(--event-bg)}
.rsvp-event>.rsvp-art{animation:var(--scene-motion) var(--scene-speed) ease-in-out infinite alternate;transform-origin:center;filter:drop-shadow(0 14px 12px #0002)}
.rsvp-form{background:transparent}.rsvp-form input:not([type=hidden]){background:#ffffffb8}.rsvp-form button{box-shadow:0 8px 22px #6156d82b;transition:transform .18s ease,background .18s ease}.rsvp-form button:hover{background:#5146c4;transform:translateY(-1px)}.rsvp-footer{color:#fff;opacity:.85;text-shadow:0 1px 5px #0008}
@keyframes rsvp-drift{from{transform:translate3d(-8px,10px,0) rotate(-3deg)}to{transform:translate3d(12px,-16px,0) rotate(4deg)}}
@keyframes rsvp-haunt{0%{transform:translate3d(-6px,10px,0) rotate(-3deg)}50%{transform:translate3d(7px,-12px,0) rotate(2deg)}100%{transform:translate3d(-2px,4px,0) rotate(-1deg)}}
@keyframes rsvp-sway{from{transform:translate3d(0,7px,0) rotate(-5deg)}to{transform:translate3d(0,-9px,0) rotate(5deg)}}
@keyframes rsvp-hop{0%,100%{transform:translate3d(0,5px,0) rotate(-2deg)}50%{transform:translate3d(0,-13px,0) rotate(3deg)}}
@keyframes rsvp-rise{from{transform:translate3d(-5px,8px,0)}to{transform:translate3d(7px,-12px,0)}}
@keyframes rsvp-light{from{transform:translate3d(-2%,-2%,0);opacity:.6}to{transform:translate3d(3%,3%,0);opacity:1}}
@keyframes rsvp-stardust{from{transform:translate3d(0,0,0);opacity:.2}to{transform:translate3d(0,-25px,0);opacity:.4}}
@keyframes rsvp-snow{from{transform:translateY(-40px)}to{transform:translateY(40px)}}
@media(max-width:700px){body{padding:18px 20px}.rsvp-controls{margin-bottom:10px}.rsvp-layout{border-radius:23px}.rsvp-motif{width:175px;opacity:.3}.rsvp-motif-1{left:-90px;top:3%}.rsvp-motif-2{right:-75px;top:35%}.rsvp-motif-3{left:-65px;bottom:0}.rsvp-motif-4{right:-60px;bottom:8%}.rsvp-motif-5{display:none}.rsvp-event{padding:26px}.rsvp-form{padding:26px}}
@media(prefers-reduced-motion:reduce){.rsvp-backdrop *,.rsvp-event>.rsvp-art{animation:none!important}.rsvp-motion-toggle{display:none}.rsvp-form button{transition:none}.rsvp-form button:hover{transform:none}*{scroll-behavior:auto}}

/* Name-only participation groups, including small screens. */
[data-rsvp-person]{min-width:0;border:1px solid #dcd5ec;border-radius:14px;padding:16px;margin:0 0 16px;background:rgba(255,255,255,.75)}
[data-rsvp-person] legend{font-weight:700;padding:0 7px;color:var(--ml-purple,#6156d8)}
[data-rsvp-group] [data-rsvp-add],[data-rsvp-group] [data-rsvp-remove]{background:var(--ml-soft,#efedff);color:var(--ml-purple,#6156d8);border:1px solid #dcd5ec}
[data-rsvp-group] [data-rsvp-remove]{font-size:12px;padding:8px 12px}
[data-rsvp-group] [hidden]{display:none!important}
