@font-face{font-family:KamilaSerif;src:url(/assets/cormorantgaramond.woff2) format('woff2');font-display:swap}
@font-face{font-family:KamilaSans;src:url(/assets/notosans.woff2) format('woff2');font-display:swap}
:root{color-scheme:light;--paper:#faf5eb;--ink:#402024;--gold:#a37738;--muted:#7b6864;--line:#d8c7ad;--surface:#fffaf2;--button:#47242a}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.65 KamilaSans,system-ui,sans-serif}main{max-width:500px;margin:auto;padding:calc(14px + env(safe-area-inset-top)) 22px calc(16px + env(safe-area-inset-bottom));min-height:100svh;display:flex;flex-direction:column}header{display:flex;align-items:center;gap:8px;margin-bottom:18px}header img{object-fit:contain}header>span:first-of-type{font:28px KamilaSerif,Georgia,serif}header .eyebrow{margin-left:auto;font-size:8px;letter-spacing:.16em}.eyebrow{font-size:10px;letter-spacing:.18em;color:var(--muted)}.cover{width:100%;max-width:360px;margin:auto}.cover img{display:block;aspect-ratio:auto 2 / 3;width:100%;height:auto;border-radius:4px;box-shadow:0 15px 35px #40202412}.cover:has(img[hidden]){display:none}article{text-align:center;padding:32px 24px;background:var(--surface);border:1px solid var(--line);border-radius:4px}h1{font:500 clamp(32px,8vw,46px)/1.1 KamilaSerif,Georgia,serif;margin:12px 0 20px;overflow-wrap:anywhere}.rule{height:1px;width:44px;background:var(--gold);margin:24px auto 0}#guest{font:24px KamilaSerif,serif}#message{font:22px/1.4 KamilaSerif,serif;white-space:pre-line;overflow-wrap:anywhere}.event-details{padding:16px 4px 0;text-align:center}.event-details p{margin:0;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.event-details #date{color:var(--gold);font-weight:600}.event-details h2{font:500 25px/1.15 KamilaSerif,serif;margin:9px 0 5px;overflow-wrap:anywhere}#welcome{padding:12vh 10px 8vh;text-align:center}#welcome>p:last-child{color:var(--muted)}.actions{margin-top:18px;border-top:1px solid var(--line);padding-top:16px}#status{font-size:12px;line-height:1.6;margin:0 0 12px;color:var(--muted);text-align:center}#status.error{color:#9b3041}button,.button,.store{font:600 14px/1.5 KamilaSans,system-ui,sans-serif;border:0;cursor:pointer;text-decoration:none;text-align:center;min-height:52px;width:100%;padding:15px 16px;border-radius:16px;display:flex;justify-content:center;align-items:center;gap:12px;background:var(--button);color:#fff9ee}button:disabled{opacity:.65;cursor:wait}.store{background:transparent;border:1px solid var(--line);color:var(--ink);margin-top:10px;font-weight:500}.note{font-size:11px;text-align:center;color:var(--muted);margin:12px 4px 0}footer{margin-top:auto;padding-top:22px;text-align:center;font-size:10px;color:var(--muted)}[hidden]{display:none!important}:focus-visible{outline:3px solid var(--gold);outline-offset:4px}@media(max-width:350px){main{padding-inline:14px}header .eyebrow{font-size:7px}}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--paper:#261016;--ink:#f7e8d0;--gold:#d7b67b;--muted:#c4aaa2;--line:#60464a;--surface:#32191f;--button:#674047}}

.policy-links,.policy-languages{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 18px;margin:24px 0;font-size:12px;line-height:1.5}.policy-links a,.policy-languages a{color:inherit;text-underline-offset:4px}.policy{max-width:700px}.policy article{text-align:left}.policy h1{font-size:clamp(32px,7vw,48px);line-height:1.15;margin:32px 0 12px}.policy h2{font-family:inherit;font-size:18px;line-height:1.4;margin:30px 0 10px}.policy p{line-height:1.75;font-size:15px}.policy .button{margin-top:24px}.policy .policy-languages{justify-content:flex-start}.policy header a{display:flex}.policy a:focus-visible{outline:2px solid currentColor;outline-offset:4px}

/* The approved invitation owns its scroll surface after verified payload handoff. */
#premium-invitation{position:fixed;inset:0;width:min(100%,600px);height:100dvh;height:100svh;margin:auto;border:0;visibility:hidden;background:#f3eadd;z-index:20}
body.premium-ready{overflow:hidden;background:#e9dfcf}
body.premium-ready>main{display:none}
body.premium-ready #premium-invitation{visibility:visible}
