@font-face{font-family:Palma;src:url('assets/palma.otf') format('opentype');font-weight:500;font-display:swap}
@font-face{font-family:Mondwest;src:url('assets/mondwest.otf') format('opentype');font-weight:400;font-display:swap}
@font-face{font-family:Satoshi;src:url('assets/satoshi.otf') format('opentype');font-weight:400;font-display:swap}
:root{--paper:#eef0e7;--ink:#102320;--muted:#53615b;--line:rgba(16,35,32,.23);--body-font:Satoshi,Arial,sans-serif;--display-font:Palma,Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;font-family:var(--body-font);-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit}button,a,input,textarea{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0}a{color:inherit;text-decoration:none}img,svg{display:block}img{max-width:100%}[hidden]{display:none!important}:focus-visible{outline:2px solid currentColor;outline-offset:5px}button:disabled{opacity:.5;cursor:wait}.arrow{width:18px;height:18px;stroke:currentColor;stroke-width:1.4;fill:none}.skip-link{position:fixed;top:12px;left:12px;background:var(--paper);color:var(--ink);padding:14px 18px;z-index:50;transform:translateY(-180%)}.skip-link:focus{transform:none}
.rsvp-dialog{border:1px solid rgba(255,255,255,.16);background:var(--paper);color:var(--ink);padding:32px 38px 26px;width:min(490px,calc(100% - 32px));max-height:calc(100svh - 40px);border-radius:10px;margin:auto;box-shadow:0 30px 110px #0005;overscroll-behavior:contain;color-scheme:light;overflow:auto}.rsvp-dialog::backdrop{background:rgba(3,9,9,.78)}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:38px}.dialog-top img{width:205px;filter:brightness(0) saturate(100%) invert(12%) sepia(17%) saturate(1671%) hue-rotate(118deg) brightness(89%) contrast(94%)}.dialog-close{display:grid;place-items:center;flex-shrink:0;min-width:36px;min-height:36px;background:transparent;color:var(--ink);border-radius:50%;font-size:18px}.dialog-close:hover{background:#1023200d}.dialog-close:active{transform:scale(.95)}.form-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.form-heading h2{font:500 58px/.95 var(--display-font);letter-spacing:-.05em;margin:0}.preview-tag{font-size:10px;letter-spacing:.02em;border:1px solid var(--line);padding:5px 7px;white-space:nowrap}.dialog-event{font-size:14px;line-height:1.6;margin:22px 0 12px}.form-intro{font-size:11px;line-height:1.5;margin:0 0 30px;color:var(--muted)}.field{margin-bottom:23px}.field>label,.attendance legend{display:block;font-size:13px;line-height:1.5}.optional{margin-left:8px;color:var(--muted);font-size:10px}.field input,.field textarea{width:100%;display:block;border:0;border-bottom:1px solid #10232069;background:transparent;color:var(--ink);border-radius:0;padding:9px 0 10px;min-height:45px;font-size:18px;line-height:1.3;outline:none}.field input:focus,.field textarea:focus{box-shadow:0 1px 0 var(--ink);border-color:var(--ink)}.field textarea{resize:vertical;max-height:150px}.field input[aria-invalid=true]{border-color:#8b2d26;box-shadow:0 1px 0 #8b2d26}.field-error{color:#88271f;font-size:12px;line-height:1.4;margin:8px 0 0}.attendance{border:0;padding:0;margin:27px 0 25px;min-width:0}.attendance legend{margin-bottom:12px}.attendance-options{display:flex;flex-wrap:wrap;gap:8px 24px}.attendance-choice{display:inline-flex;align-items:center;gap:9px;position:relative;font-size:14px;min-height:38px;cursor:pointer}.attendance-choice input{position:absolute;opacity:0;width:20px;height:20px;left:0;top:9px;margin:0}.radio-dot{width:18px;height:18px;border-radius:50%;border:1px solid #10232080;position:relative;flex-shrink:0}.radio-dot::after{position:absolute;content:'';inset:4px;border-radius:50%;background:var(--ink);transform:scale(0)}.attendance-choice input:checked+.radio-dot::after{transform:scale(1)}.attendance-choice input:focus-visible+.radio-dot{outline:2px solid var(--ink);outline-offset:4px}.attendance-choice:hover .radio-dot{border-color:var(--ink)}.submit-button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:17px 20px;min-height:54px;background:var(--ink);color:var(--paper);border-radius:6px;font-size:15px;margin-top:25px;transition:background .15s,transform .15s}.submit-button:hover{background:#244039}.submit-button:active{transform:scale(.985)}.form-status{font-size:12px;line-height:1.5;min-height:18px;margin:10px 0 0}.confirmation{padding:22px 0 14px}.confirmation-check{width:34px;height:34px;stroke:var(--ink);stroke-width:1.4;fill:none;margin-bottom:20px}.confirmation h3{font:500 42px/1.1 var(--display-font);letter-spacing:-.04em;overflow-wrap:anywhere;margin:0 0 20px}.confirmation p{font-size:16px;line-height:1.6}.confirmation .confirmation-note{font-size:12px;color:var(--muted);margin:20px 0 30px}.text-button{width:100%;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);background:none;color:var(--ink);font-size:14px;padding:18px 0;min-height:48px}.text-button:hover{text-decoration:underline;text-underline-offset:5px}
@media(max-width:600px){.rsvp-dialog{padding:24px;width:calc(100% - 24px);max-height:calc(100svh - 24px)}.dialog-top{margin-bottom:28px}.dialog-close{min-height:44px;min-width:44px}.form-heading h2{font-size:52px}.attendance-choice{min-height:44px}.attendance-choice input{top:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important;animation-iteration-count:1!important}}
