:root{color-scheme:dark;accent-color:#ba995e;--font-display:"Cormorant Garamond",Georgia,serif;--font-ui:Inter,system-ui,sans-serif;--gold-mid:#8b6a39;--gold-highlight:#ba995e;--sage-light:#a8b39a;--r:12px;--r-sm:8px;--field:linear-gradient(180deg,#151413,#1a1918);--surface:linear-gradient(180deg,#222120,#1c1b1a);--surface-flat:#222120;--ink:#f0ede8;--ink-body:#e4dfd6;--ink-muted:#a39a8c;--border:rgba(186,153,94,0.22);--border-strong:#ba995e;--shadow:0 1px 0 rgba(0,0,0,0.35),0 14px 36px rgba(0,0,0,0.45);--chip-wash:rgba(196,168,106,0.12);--danger:#e08a78;--danger-wash:rgba(224,138,120,0.12);--ok:var(--sage-light);--ok-wash:rgba(168,179,154,0.14);--gold-type:#c4a86a;--solid-bg:linear-gradient(180deg,#d8d2c6,#c9c2b4);--solid-fg:#110e0a;--solid-border:rgba(17,14,10,0.12);--solid-shadow:0 1px 0 rgba(17,14,10,0.1),inset 0 1px 0 rgba(255,255,255,0.25);--focus-ring:0 0 0 3px rgba(186,153,94,0.28);--input-bg:rgba(0,0,0,0.28);--card-w:420px}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:var(--font-ui);color:var(--ink-body);background:var(--field);-webkit-font-smoothing:antialiased}.auth-shell{min-height:100vh;justify-content:center;padding:40px 20px 56px}.auth-brand,.auth-shell{display:flex;flex-direction:column;align-items:center}.auth-brand{gap:10px;margin-bottom:28px;text-align:center}.auth-brand .logo{display:block;height:36px;width:auto;max-width:140px;object-fit:contain}.auth-brand .brand-tag{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-type);opacity:.9}.auth-card{width:100%;max-width:var(--card-w);background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);padding:28px 28px 26px}.auth-card h1{font-family:var(--font-display);font-size:28px;font-weight:500;line-height:1.15;color:var(--ink);margin:0 0 8px;letter-spacing:-.01em;text-align:center}.auth-card .lede{margin:0 0 22px;font-size:14px;line-height:1.45;color:var(--ink-muted);text-align:center;max-width:none}.auth-form{gap:14px}.auth-form,.field{display:flex;flex-direction:column}.field{gap:6px}.field label{font-size:12px;font-weight:600;color:var(--ink);letter-spacing:.01em}.field .hint{font-size:12px;color:var(--ink-muted);line-height:1.35}.field input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;font-family:var(--font-ui);font-size:14px;color:var(--ink);background:var(--input-bg);border:1px solid var(--border);border-radius:var(--r-sm);padding:11px 12px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.field input::placeholder{color:var(--ink-muted);opacity:.75}.field input:hover{border-color:rgba(186,153,94,.38)}.field input:focus{border-color:var(--border-strong);box-shadow:var(--focus-ring)}.field.is-error input{border-color:var(--danger);box-shadow:0 0 0 3px rgba(224,138,120,.18)}.field.is-ok input{border-color:rgba(168,179,154,.7)}.field.is-ok input:focus{border-color:var(--sage-light);box-shadow:0 0 0 3px rgba(168,179,154,.22)}.field-error{font-size:12px;color:var(--danger);line-height:1.35}.form-error{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border-radius:var(--r-sm);background:var(--danger-wash);border:1px solid rgba(224,138,120,.35);color:var(--danger);font-size:13px;line-height:1.4;margin-bottom:2px}.form-error .ico{flex-shrink:0;width:18px;height:18px;margin-top:1px}.form-ok{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:8px 0 4px}.form-ok .ok-disc{width:48px;height:48px;border-radius:50%;background:var(--ok-wash);border:1px solid rgba(168,179,154,.35);display:grid;place-items:center;color:var(--ok)}.form-ok .ok-disc svg{width:22px;height:22px}.btn-solid{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--solid-border);cursor:pointer;background:var(--solid-bg);color:var(--solid-fg);font-family:var(--font-ui);font-size:13.5px;font-weight:600;letter-spacing:.01em;text-transform:none;padding:12px 16px;border-radius:999px;box-shadow:var(--solid-shadow);width:100%;text-align:center;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;transition:filter .12s ease,transform .08s ease}.btn-solid:hover{filter:brightness(1.04)}.btn-solid:active{filter:brightness(.96);transform:translateY(1px)}.btn-solid:focus-visible{outline:none;box-shadow:var(--solid-shadow),var(--focus-ring)}.btn-solid.is-busy,.btn-solid:disabled{opacity:.78;cursor:wait;filter:none;transform:none;pointer-events:none}.btn-spin{width:14px;height:14px;margin-right:8px;border:1.5px solid;border-right:1.5px solid transparent;border-radius:50%;animation:auth-spin .65s linear infinite}@keyframes auth-spin{to{transform:rotate(1turn)}}.field input:disabled{opacity:.7;cursor:wait}.btn-row,.link-row{margin-top:4px}.link-row{display:flex;justify-content:center}.link-gold{font-size:13px;font-weight:500;color:var(--gold-type);text-decoration:none;border-bottom:1px solid transparent}.link-gold:hover{border-bottom-color:rgba(196,168,106,.45)}.link-gold:active{opacity:.75}.link-gold:focus-visible{outline:none;border-bottom-color:transparent;box-shadow:var(--focus-ring);border-radius:2px}.auth-note{margin:18px 0 0;padding-top:16px;border-top:1px solid var(--border);font-size:12.5px;line-height:1.45}.auth-foot,.auth-note{color:var(--ink-muted);text-align:center}.auth-foot{margin-top:22px;font-size:12px;max-width:var(--card-w)}.auth-foot a{color:var(--gold-type);text-decoration:none}.auth-foot a:hover{text-decoration:underline}.optional{font-weight:500;color:var(--ink-muted);font-size:11px}.dash{max-width:72rem;margin:0 auto;padding:3rem 1.5rem}.dash-bar{display:flex;justify-content:flex-end;margin-bottom:1.25rem}.dash-bar button.link-gold{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;cursor:pointer;font-family:inherit;padding:0}.dash h1{font-family:var(--font-display);font-size:1.75rem;font-weight:500;letter-spacing:-.02em;margin:0 0 .75rem;color:var(--ink)}.dash .lede{color:var(--ink-muted);font-size:1.05rem;line-height:1.5;margin:0;max-width:40rem}.rsvp-actions{display:flex;flex-direction:column;gap:10px;margin-top:18px}.auth-card .btn-ghost{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;border-radius:999px;border:1px solid var(--border-strong);background:transparent;color:var(--ink);font-family:var(--font-ui);font-size:13.5px;font-weight:600;padding:12px 16px;cursor:pointer}