:root{--cream:#f1ebd3;--cream-2:#e7dfc0;--red:#8f0c29;--red-deep:#6e0920;--blue:#468a98;--ink:#3b565e;--display:"Bodoni Moda","Didot","Bodoni MT",Georgia,serif;--ui:"Karla",ui-sans-serif,system-ui,-apple-system,sans-serif;--frame:clamp(10px,2.4vw,26px);--measure:34rem}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--ui);font-size:17px;line-height:1.65;overflow-x:hidden}img{max-width:100%;height:auto;display:block}.frame{position:fixed;top:var(--frame);left:var(--frame);right:var(--frame);bottom:0;border:2px solid var(--red);border-bottom:none;pointer-events:none;z-index:30}@media (max-width:640px){.frame{display:none}}.page{position:relative;max-width:var(--measure);margin:0 auto;padding:0 calc(var(--frame) + 20px)}.eyebrow{font-style:italic;font-size:1.05rem;margin:0 0 .2em}.eyebrow,.names{font-family:var(--display);color:var(--red)}.names{font-weight:400;font-size:clamp(2.1rem,9vw,3.1rem);line-height:1.05;letter-spacing:.01em;margin:0}.when{font-size:clamp(1.1rem,4.6vw,1.45rem);margin:.5rem 0 0}.when,.where{font-family:var(--display);font-style:italic;color:var(--red)}.where{font-size:clamp(1rem,4.2vw,1.25rem);margin:.15rem 0 0}h2{font-size:clamp(1.6rem,6vw,2.1rem);color:var(--red);line-height:1.15;margin:0 0 .6em}h2,h3{font-family:var(--display);font-weight:400}h3{font-size:1.25rem;color:var(--ink);margin:0 0 .35em}p{margin:0 0 1.1em}.lede{font-family:var(--display);font-size:1.2rem;line-height:1.6}.hero{position:relative;text-align:center;padding:clamp(64px,14vh,120px) 0 clamp(40px,8vh,72px)}.hero__title{width:min(100%,30rem);margin:0 auto}.ball{position:relative;width:5.5rem;margin:-1.5rem auto 0;transform-origin:50% -140px;animation:sway 7s ease-in-out infinite}.ball:before{content:"";position:absolute;left:50%;bottom:78%;width:1px;height:140px;background:var(--blue);opacity:.7}@keyframes sway{0%,to{transform:rotate(-2.4deg)}50%{transform:rotate(2.4deg)}}.dancers{width:11rem;margin:-.5rem auto 2rem}.rule{display:block;width:7rem;margin:1.4rem auto;opacity:.9}section{padding:clamp(40px,8vh,68px) 0;border-top:1px solid color-mix(in srgb,var(--blue) 34%,transparent)}.hero+section{border-top:none}.detail{display:grid;grid-gap:1.6rem;gap:1.6rem;margin:1.8rem 0 0}.detail div{padding-left:1rem;border-left:2px solid var(--blue)}.detail dt{font-family:var(--ui);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:.25rem}.detail dd{margin:0;font-family:var(--display);font-size:1.15rem}label{display:block;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:.4rem}input[type=email],input[type=text],textarea{width:100%;font-family:var(--ui);font-size:1rem;color:var(--ink);background:transparent;border:none;border-bottom:1.5px solid color-mix(in srgb,var(--blue) 55%,transparent);border-radius:0;padding:.55rem .1rem;transition:border-color .18s ease}input[type=email]:focus-visible,input[type=text]:focus-visible,textarea:focus-visible{outline:none;border-bottom-color:var(--red)}textarea{resize:vertical;min-height:4.5rem;line-height:1.5}.field{margin-bottom:1.6rem}.hint{font-size:.85rem;opacity:.7;margin:.4rem 0 0}.btn{font-family:var(--ui);font-size:.82rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--cream);background:var(--red);border:2px solid var(--red);border-radius:0;padding:.85rem 1.6rem;cursor:pointer;transition:background .16s ease,color .16s ease}.btn:hover:not(:disabled){background:var(--red-deep);border-color:var(--red-deep)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--ghost{background:transparent;color:var(--red)}.btn--ghost:hover:not(:disabled){background:var(--red);color:var(--cream)}:where(a,button,input,textarea,select):focus-visible{outline:2px solid var(--red);outline-offset:3px}.choice{display:grid;grid-template-columns:1fr 1fr;grid-gap:.5rem;gap:.5rem;margin-top:.6rem}.choice button{font-family:var(--ui);font-size:.78rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:.75rem .5rem;border:1.5px solid color-mix(in srgb,var(--blue) 55%,transparent);border-radius:0;background:transparent;color:var(--ink);cursor:pointer;transition:all .16s ease}.choice button:hover{border-color:var(--red)}.choice button[aria-pressed=true]{background:var(--red);border-color:var(--red);color:var(--cream)}.choice3{display:grid;grid-template-columns:1fr;grid-gap:.4rem;gap:.4rem;margin-top:.6rem}.choice3 button{font-family:var(--ui);font-size:.74rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:.8rem .6rem;border:1.5px solid color-mix(in srgb,var(--blue) 55%,transparent);border-radius:0;background:transparent;color:var(--ink);cursor:pointer;transition:all .16s ease}.choice3 button:hover{border-color:var(--red)}.choice3 button[aria-pressed=true]{background:var(--red);border-color:var(--red);color:var(--cream)}.guest-card{padding:1.2rem 0 1.4rem;border-top:1px solid color-mix(in srgb,var(--blue) 28%,transparent)}.guest-card:first-of-type{border-top:none}.guest-card__name{font-family:var(--display);font-size:1.3rem;color:var(--ink);margin:0}.error{color:var(--red);font-size:.92rem;margin:.8rem 0 0}.decide__q{font-family:var(--display);font-size:1.4rem;line-height:1.25;margin:0 0 1.1rem}.decision{display:grid;grid-gap:.75rem;gap:.75rem}.decision .btn{width:100%;padding:1rem 1.2rem}.linkbtn{background:none;border:none;padding:0;font:inherit;color:var(--red);text-decoration:underline;cursor:pointer}.signoff{font-family:var(--display);font-style:italic;font-size:1.2rem;margin-top:1.3rem}.confirmed{text-align:center;padding:1rem 0 0}.confirmed .spin{width:6rem;margin:0 auto 1.5rem;animation:spin 9s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.invert{background:var(--red);border-top:none;padding-left:clamp(20px,6vw,40px);padding-right:clamp(20px,6vw,40px)}.invert,.invert .guest-card__name,.invert .lede,.invert a,.invert h2,.invert h3,.invert p{color:var(--cream)}.invert label{color:color-mix(in srgb,var(--cream) 78%,transparent)}.invert .hint{color:var(--cream);opacity:.75}.invert input[type=email],.invert input[type=text],.invert textarea{color:var(--cream);border-bottom-color:color-mix(in srgb,var(--cream) 55%,transparent)}.invert input[type=email]:focus-visible,.invert input[type=text]:focus-visible,.invert textarea:focus-visible{border-bottom-color:var(--cream)}.invert input::placeholder,.invert textarea::placeholder{color:color-mix(in srgb,var(--cream) 50%,transparent)}.invert .btn{background:var(--cream);color:var(--red);border-color:var(--cream)}.invert .btn:hover:not(:disabled){background:var(--cream-2);border-color:var(--cream-2);color:var(--red-deep)}.invert .btn--ghost{background:transparent;color:var(--cream);border-color:var(--cream)}.invert .btn--ghost:hover:not(:disabled){background:var(--cream);color:var(--red)}.invert .choice button{color:var(--cream);border-color:color-mix(in srgb,var(--cream) 50%,transparent)}.invert .choice button:hover{border-color:var(--cream)}.invert .choice button[aria-pressed=true]{background:var(--cream);border-color:var(--cream);color:var(--red)}.invert .choice3 button{color:var(--cream);border-color:color-mix(in srgb,var(--cream) 50%,transparent)}.invert .choice3 button:hover{border-color:var(--cream)}.invert .choice3 button[aria-pressed=true]{background:var(--cream);border-color:var(--cream);color:var(--red)}.invert .guest-card{border-top-color:color-mix(in srgb,var(--cream) 25%,transparent)}.invert .error{font-weight:600}.invert .error,.invert .linkbtn{color:var(--cream)}.invert :where(a,button,input,textarea,select):focus-visible{outline-color:var(--cream)}.corner{position:fixed;width:74px;opacity:.85;pointer-events:none;z-index:31}.corner--tl{left:calc(var(--frame) + 12px)}.corner--tl,.corner--tr{top:calc(var(--frame) + 12px)}.corner--tr{right:calc(var(--frame) + 12px);transform:scaleX(-1)}@media (max-width:900px){.corner{display:none}}footer{text-align:center;padding:3rem 0 4rem;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}.admin{max-width:74rem;margin:0 auto;padding:2.5rem calc(var(--frame) + 20px) 5rem}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));grid-gap:1px;gap:1px;background:color-mix(in srgb,var(--blue) 30%,transparent);border:1px solid color-mix(in srgb,var(--blue) 30%,transparent);margin:1.5rem 0 2.5rem}.stat{background:var(--cream);padding:1.1rem 1.2rem}.stat b{display:block;font-family:var(--display);font-weight:400;font-size:2.4rem;line-height:1;color:var(--red)}.stat span{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}.filtercards{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));grid-gap:1px;gap:1px;background:color-mix(in srgb,var(--blue) 30%,transparent);border:1px solid color-mix(in srgb,var(--blue) 30%,transparent);margin:1.5rem 0 2rem}.filtercard{display:block;background:var(--cream);padding:1.1rem 1.2rem;text-decoration:none;transition:background .15s ease}.filtercard:hover{background:var(--cream-2)}.filtercard b{display:block;font-family:var(--display);font-weight:400;font-size:2.2rem;line-height:1;color:var(--red)}.filtercard span{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}.filtercard[aria-current=true]{background:var(--red)}.filtercard[aria-current=true] b,.filtercard[aria-current=true] span{color:var(--cream)}table{width:100%;border-collapse:collapse;font-size:.94rem}th{text-align:left;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);font-weight:600;padding:.6rem .7rem;border-bottom:1.5px solid var(--blue);white-space:nowrap}td{padding:.65rem .7rem;border-bottom:1px solid color-mix(in srgb,var(--blue) 22%,transparent);vertical-align:top}tbody tr:hover{background:var(--cream-2)}.tag{display:inline-block;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;padding:.15rem .5rem;border:1px solid}.tag--attending{color:var(--blue)}.tag--declined{color:var(--red)}.tag--pending{color:color-mix(in srgb,var(--ink) 60%,transparent)}.scroller{overflow-x:auto}.login{max-width:22rem;margin:18vh auto;text-align:center}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ball,.confirmed .spin{animation:none}*,:after,:before{transition-duration:.01ms!important}}