:root{--bg:#fff;--surface:#f5f5f7;--text:#16161a;--text-dim:#6b6b76;--border:#e3e3e8;--accent:#4c5fd7;--accent-text:#fff}@media (prefers-color-scheme:dark){:root{--bg:#0e0e11;--surface:#1a1a1f;--text:#f2f2f5;--text-dim:#9a9aa6;--border:#2a2a32;--accent:#7b8bf5;--accent-text:#0e0e11}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;line-height:1.5}main{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;max-width:30rem;min-height:100dvh;margin:0 auto;padding:4rem 1.5rem 3rem;display:flex}h1{letter-spacing:-.02em;margin:0;font-size:2rem;font-weight:650}h2{letter-spacing:-.01em;margin:0;font-size:1.25rem;font-weight:600}p{color:var(--text-dim);margin:0}.wordmark{letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);font-size:.875rem;font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:1rem;flex-direction:column;gap:.75rem;width:100%;padding:1.5rem;display:flex}.code-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);font-size:.75rem;font-weight:600}.code{letter-spacing:.15em;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.75rem;font-weight:600}.button{background:var(--accent);width:100%;color:var(--accent-text);font:inherit;cursor:pointer;border:0;border-radius:.75rem;padding:.875rem 1.25rem;font-weight:600;text-decoration:none;display:inline-block}.button:disabled{opacity:.55;cursor:default}.button.secondary{color:var(--text);border:1px solid var(--border);background:0 0}.hint{font-size:.875rem}main.landing{justify-content:flex-start;gap:3.5rem;max-width:34rem;min-height:0;padding:5rem 1.5rem 3rem}.hero{flex-direction:column;align-items:center;gap:1.25rem;width:100%;max-width:30rem;display:flex}.hero h1{letter-spacing:-.03em;font-size:2.75rem}.tagline{color:var(--text);letter-spacing:-.01em;font-size:1.25rem;font-weight:600}.features{flex-direction:column;gap:2rem;width:100%;display:flex}.section-heading{letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);font-size:.875rem;font-weight:600}.feature{flex-direction:column;gap:.375rem;display:flex}.card.google{text-align:left;gap:1rem}.site-footer{border-top:1px solid var(--border);justify-content:center;gap:1.5rem;width:100%;padding-top:2rem;font-size:.875rem;display:flex}.site-footer a{color:var(--text-dim);text-decoration:none}.site-footer a:hover{color:var(--text);text-decoration:underline}main.doc{text-align:left;justify-content:flex-start;align-items:stretch;gap:2.5rem;max-width:42rem;min-height:0;padding:3rem 1.5rem 4rem}main.doc header{flex-direction:column;gap:.5rem;display:flex}main.doc section{flex-direction:column;gap:.75rem;display:flex}main.doc ul{color:var(--text-dim);flex-direction:column;gap:.5rem;margin:0;padding-left:1.25rem;display:flex}main.doc footer{border-top:1px solid var(--border);padding-top:2rem}a.wordmark{text-decoration:none}a.wordmark:hover{color:var(--text)}.host-row{justify-content:center;align-items:center;gap:.625rem;display:flex}.avatar{object-fit:cover;background:var(--border);border-radius:50%;flex-shrink:0;width:2rem;height:2rem}.avatar-initial{color:var(--text-dim);justify-content:center;align-items:center;font-size:.875rem;font-weight:600;display:flex}.details{text-align:left;gap:.375rem}.details-row{color:var(--text);font-size:.9375rem}.field{text-align:left;flex-direction:column;gap:.375rem;width:100%;display:flex}.field label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);font-size:.75rem;font-weight:600}.field input{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);font:inherit;border-radius:.75rem;padding:.75rem 1rem}.field input:focus{outline:2px solid var(--accent);outline-offset:1px}.field-error{color:#d1495b;font-size:.8125rem}.note-suggestions{flex-wrap:wrap;gap:.375rem;display:flex}.chip{font:inherit;color:var(--text);cursor:pointer;background:#0000000f;border:0;border-radius:999px;padding:.3125rem .625rem;font-size:.8125rem}.chip:hover{background:#0000001a}.guest-note{opacity:.75;font-style:italic}.rsvp-actions{gap:.625rem;width:100%;display:flex}.rsvp-actions .button{padding-left:.5rem;padding-right:.5rem}.status-heading{flex-direction:column;gap:.375rem;display:flex}.link-button{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:none}.link-button:hover{text-decoration:underline}main.poster{--poster-ink:#fff;--poster-ink-dim:#ffffffd1;--poster-glass:#ffffff26;--poster-glass-line:#ffffff38;--poster-field:#ffffff24;--poster-solid-ink:#2b1b4d;text-align:left;width:100%;max-width:none;color:var(--poster-ink);background-repeat:no-repeat;background-size:cover;background-attachment:scroll;justify-content:flex-start;align-items:stretch;gap:1.5rem;margin:0;padding:2.25rem 1.25rem 3rem}main.poster.theme-midnight{background-image:linear-gradient(165deg,#2b1b4d 0%,#7b3fa0 52%,#e0559b 100%)}main.poster.theme-paper{background-image:linear-gradient(165deg,#f7efe0 0%,#e2c79c 100%)}main.poster.theme-citrus{background-image:linear-gradient(165deg,#f2713a 0%,#ffd166 100%)}main.poster.theme-pool{background-image:linear-gradient(165deg,#12628f 0%,#47d0c9 100%)}main.poster.theme-dusk{background-image:linear-gradient(165deg,#3a2f5b 0%,#d97f6a 100%)}main.poster.theme-field{background-image:linear-gradient(165deg,#1e5b3f 0%,#8ec96b 100%)}main.poster.poster-light{--poster-ink:#4a3a22;--poster-ink-dim:#4a3a22b8;--poster-glass:#ffffff73;--poster-glass-line:#4a3a2229;--poster-field:#ffffff8c;--poster-solid-ink:#4a3a22}main.poster>.wordmark{color:var(--poster-ink-dim);letter-spacing:.17em}.poster-body{flex-direction:column;gap:.875rem;width:100%;max-width:26rem;margin:0 auto;display:flex}.poster-eyebrow{letter-spacing:.13em;text-transform:uppercase;color:var(--poster-ink-dim);margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.6875rem}.poster-emoji{margin:0;font-size:2.25rem;line-height:1}.poster-title{font-family:var(--font-display), "Avenir Next", "Segoe UI", system-ui, sans-serif;letter-spacing:-.035em;text-wrap:balance;color:var(--poster-ink);margin:0;font-size:1.875rem;font-weight:800;line-height:.97}.poster .host-row{justify-content:flex-start;gap:.5rem}.poster .host-row p{color:var(--poster-ink-dim);font-size:.8125rem}.face{object-fit:cover;color:#fff;letter-spacing:-.01em;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:600;display:inline-flex;box-shadow:0 0 0 2px #ffffff59}.faces{align-items:center;display:flex}.faces .face+.face{margin-left:-8px}.faces-tail{color:var(--poster-ink-dim);margin-left:.75rem;font-size:.8125rem}.glass{background:var(--poster-glass);border:1px solid var(--poster-glass-line);-webkit-backdrop-filter:blur(8px);border-radius:.875rem;flex-direction:column;gap:.125rem;padding:.75rem .875rem;display:flex}.glass-when{font-variant-numeric:tabular-nums;font-size:.875rem;font-weight:600}.glass-where{color:var(--poster-ink-dim);font-size:.8125rem}.poster .card{background:var(--poster-glass);border-color:var(--poster-glass-line);-webkit-backdrop-filter:blur(8px);color:var(--poster-ink);text-align:left;gap:.875rem;padding:1rem}.poster .card h2{color:var(--poster-ink)}.poster .card p,.poster .field label,.poster .hint,.poster .slot-tally{color:var(--poster-ink-dim)}.poster .field input{background:var(--poster-field);border-color:var(--poster-glass-line);color:var(--poster-ink)}.poster .field input::placeholder{color:var(--poster-ink-dim);opacity:.7}.poster .field input:focus{outline-color:var(--poster-ink)}.poster .chip{color:var(--poster-ink);background:#ffffff2e}.poster .chip:hover{background:#ffffff47}.poster .link-button{color:var(--poster-ink)}.poster .field-error{color:#ffd4d9}.poster.poster-light .field-error{color:#a02434}.poster .button,.poster .button.secondary{border:1px solid var(--poster-glass-line);color:var(--poster-ink);background:#ffffff24}.poster .button.primary{color:var(--poster-solid-ink);background:#fff;border-color:#fff}.rsvp-answer{flex-direction:column;justify-content:center;align-items:center;gap:.0625rem;padding:.625rem .25rem .5rem;font-size:.8125rem;line-height:1.2;display:flex}.rsvp-emoji{font-size:1.125rem;line-height:1.15}.poster .slot-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.poster .slot{border-top:1px solid var(--poster-glass-line);flex-direction:column;gap:.25rem;padding-top:.75rem;display:flex}.poster .slot:first-child{border-top:0;padding-top:0}.poster .slot-label{font-family:var(--font-display), "Avenir Next", "Segoe UI", system-ui, sans-serif;letter-spacing:-.02em;color:var(--poster-ink);font-size:.9375rem;font-weight:600}.poster .slot-tally{font-variant-numeric:tabular-nums;font-size:.75rem}
