:root{color-scheme:light;--ink:#203731;--green:#173e35;--gold:#b27c2b;--line:#dce3dc;--muted:#65716a;--paper:#f7f8f4}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:18px/1.5 system-ui,-apple-system,sans-serif}h1,h2{font:400 2rem/1.15 Georgia,serif;margin:0}h1{font-size:2.6rem;letter-spacing:-.04em}h3{font-size:1.35rem;margin:0 0 .7rem}p{margin:.6rem 0 1rem}.gold{color:var(--gold)}.eyebrow{display:block;font-size:.8rem;letter-spacing:.13em;color:var(--muted);margin-bottom:.5rem}button,input,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation;min-height:56px;border:1px solid var(--green);border-radius:14px;background:var(--green);color:white;padding:.8rem 1rem;font-weight:650}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus,textarea:focus,summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.quiet{background:transparent;color:var(--green);border-color:transparent}.secondary{background:white;color:var(--green);border-color:var(--line)}input,textarea{width:100%;min-height:56px;padding:.75rem;border:1px solid #afbab1;border-radius:12px;color:var(--ink);background:white}label{display:block;margin-bottom:1rem;font-weight:550}label input,label textarea{margin-top:.4rem}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}.gate{min-height:100svh;display:grid;place-items:center;background:var(--green);padding:20px}.gate-card{width:100%;max-width:460px;border-radius:24px;padding:28px;background:var(--paper)}.gate-card p{color:var(--muted)}#pin{font-size:2rem;letter-spacing:.6em;text-align:center}.gate-card button{width:100%}main{max-width:960px;margin:auto;padding:32px 24px}header,.heading,.list-head{display:flex;justify-content:space-between;align-items:center;gap:12px}header{padding-bottom:22px;border-bottom:1px solid var(--line)}header .quiet{font-size:1rem}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:24px 0}.stat{border:1px solid var(--line);background:white;padding:16px;border-radius:16px}.stat strong{display:block;font:400 2rem Georgia,serif}.stat span{font-size:.9rem;color:var(--muted)}.heading{margin:26px 0 16px}.heading h2{font-size:1.7rem}.filters{display:flex;gap:8px;overflow-x:auto;padding:16px 2px 6px}.filters button{flex-shrink:0;min-height:48px;font-size:1rem;padding:.5rem .85rem}.filters button[aria-pressed=true]{background:var(--green);color:white}.list-head{font-size:.9rem;color:var(--muted)}.list-head p{margin:0}.list-head button{font-size:1rem}.guest-row{display:flex;width:100%;text-align:left;align-items:center;justify-content:space-between;gap:14px;background:white;color:var(--ink);border:1px solid var(--line);border-radius:18px;padding:18px;margin:0 0 10px;font-weight:400;min-height:105px}.guest-row:hover{border-color:#698e79;background:#f1f6f0}.guest-row:active{transform:scale(.99)}.name{display:block;font-size:1.2rem;font-weight:650;overflow-wrap:anywhere}.row-detail{display:block;color:var(--muted);font-size:.95rem;margin-top:4px}.badge{display:inline-block;border-radius:30px;padding:3px 9px;font-size:.85rem;background:#f6ecd7;color:#795826;margin-top:9px}.badge.yes{color:#235d43;background:#e5f3e9}.badge.no{color:#934641;background:#f8e8e5}.chevron{font-size:1.8rem;color:#799187}.empty{padding:40px 15px;text-align:center}.settings{margin-top:26px;border-top:1px solid var(--line);padding-top:18px}.settings summary{cursor:pointer;min-height:52px;font-weight:600}.settings p,footer{color:var(--muted);font-size:1rem}.settings form{max-width:600px}footer{padding:24px 0}dialog{border:0;border-radius:24px;padding:0;width:calc(100% - 32px);max-width:610px;max-height:94svh;color:var(--ink);background:var(--paper);overflow:auto}dialog::backdrop{background:#0c251dbb}body:has(dialog[open]){overflow:hidden}.dialog-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:22px 24px 10px}.dialog-head h2{font-size:1.8rem;overflow-wrap:anywhere}.dialog-head .quiet{min-width:56px}.steps{display:flex;gap:6px;padding:10px 20px 14px}.steps button{min-width:0;flex:1;padding:.5rem .15rem;min-height:50px;font-size:.9rem;background:transparent;color:var(--muted);border-color:var(--line);border-radius:10px}.steps button[aria-current=step]{background:var(--green);color:white;border-color:var(--green)}.form-body{padding:16px 24px}.dialog-foot{position:sticky;bottom:0;background:var(--paper);border-top:1px solid var(--line);padding:16px 24px max(16px,env(safe-area-inset-bottom));display:flex;gap:10px}.dialog-foot button{flex:1}.hint{font-size:1rem;color:var(--muted)}.option{display:block;width:100%;background:white;border:2px solid var(--line);border-radius:18px;padding:18px;text-align:left;color:var(--ink);margin-bottom:12px;font-weight:400}.option strong,.option span{display:block}.option strong{font-size:1.25rem}.option span{font-size:1rem;color:var(--muted);margin-top:4px}.option[aria-pressed=true]{background:#edf5ed;border-color:var(--green)}.schedule{border:1px solid var(--line);padding:14px;border-radius:14px;margin:14px 0}.schedule summary,.personal summary{min-height:48px;cursor:pointer;display:flex;align-items:center;font-weight:550}.schedule p{white-space:pre-line;font-size:1rem}.choices{display:flex;gap:8px;margin:16px 0}.choices button{flex:1;background:white;color:var(--green);border-color:var(--line)}.choices button[aria-pressed=true]{background:var(--green);color:white}.counter{display:flex;justify-content:space-between;align-items:center;gap:14px;background:white;border:1px solid var(--line);padding:14px;border-radius:16px;margin:14px 0}.counter button{width:62px;font-size:1.7rem;padding:0}.counter output{font-size:2rem;font-weight:650}.counter label{margin:0;font-size:1rem}.night-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(60px,1fr));gap:8px;margin:16px 0}.night-grid button{padding:12px 2px;background:white;color:var(--green);border:2px solid var(--line)}.night-grid button[aria-pressed=true]{background:var(--green);color:white}.night-grid span{display:block;font-size:.8rem}.checks label{display:flex;align-items:center;gap:14px;min-height:60px;border:1px solid var(--line);border-radius:14px;background:white;padding:12px;margin:8px 0}.checks input{width:26px;height:26px;min-height:26px;margin:0;accent-color:var(--green)}.invite-text{font-size:1rem;min-height:230px;line-height:1.6}.personal{border-top:1px solid var(--line);margin-top:24px;padding-top:10px}.success{padding:14px;border-radius:14px;background:#e6f3e8;color:#235d43}.warning{color:#946426;font-size:1rem}#guestError,#status,#loginError,#settingsStatus{color:#a33127;padding:0 24px;overflow-wrap:anywhere}#status{padding:0}#guestError:empty{display:none}@media(max-width:600px){main{padding:22px 14px}h1{font-size:2.2rem}header{gap:6px}header .quiet{padding:.5rem;font-size:.9rem}.stat{padding:12px 10px}.stat span{font-size:.85rem}.heading{align-items:center}.heading button{padding:.6rem .8rem;font-size:1rem}.heading h2{font-size:1.4rem}dialog{width:100%;max-width:100%;height:100svh;max-height:100svh;margin:0;border-radius:0}.dialog-head{padding:20px 16px 8px}.form-body{padding:16px}.steps{padding:8px 14px}.dialog-foot{padding:14px 16px max(14px,env(safe-area-inset-bottom))}.guest-row{padding:16px}.counter{gap:10px}.counter button{width:58px;flex-shrink:0}}@media(prefers-reduced-motion:no-preference){.guest-row,.option{transition:background .15s,border-color .15s,transform .1s}}
/* Colours and original artwork from the opening invitation and Anand Karaj. */
@font-face{font-family:Invitation;src:url('/assets/invitation.ttf') format('truetype');font-display:swap}
:root{--ink:#25202b;--green:#365600;--gold:#ad163d;--line:#d3c5d3;--muted:#655966;--paper:#faf3e9;--lavender:#ded2ef;--blush:#f0dde1}
body{background:var(--blush)}
h1,h2{color:var(--ink)}.gold{color:var(--gold)}
.gate{background:#25202b;padding:36px 18px}.gate-card{position:relative;overflow:hidden;border-radius:220px 220px 24px 24px;padding:72px 28px 28px;background:#f5e7d8;box-shadow:0 24px 70px #0003}
.couple-names{display:block;position:relative;z-index:1;font:2.25rem/1.15 Invitation,Georgia,serif;color:#ad163d;text-align:center;margin-bottom:22px}.couple-names span{font:italic 1.4rem Georgia,serif}
.gate-card h1{font-size:2rem;position:relative}.gate-card>p,.gate-card>label,.gate-card>input,.gate-card>button{position:relative}.gate-card>p{font-size:1rem;max-width:290px}.gate-couple{position:absolute;width:155px;right:-12px;bottom:185px;opacity:.16;pointer-events:none}.gate-card button{background:#ad163d;border-color:#ad163d;margin-top:12px}
main{padding-top:24px}header{position:relative;isolation:isolate;background:var(--lavender);border:1px solid #cdbdda;border-radius:100px 100px 22px 22px;padding:64px 26px 28px;overflow:hidden;align-items:flex-end}header:before{content:'';position:absolute;z-index:-1;right:-15px;top:-30px;width:220px;height:180px;background:none;opacity:.65;pointer-events:none}header .eyebrow{max-width:320px;font-size:.72rem;color:#414b2e}header h1{color:#365600;font-size:2.6rem}header .gold{color:#365600}header .quiet{color:#365600;background:#faf3e9cc;border:1px solid #cdbdda;border-radius:12px}
.stat{background:#faf3e9;border-color:#d3c5d3}.stat strong{color:#365600}.guest-row{background:#fffaf2;box-shadow:0 3px 12px #56365905}.guest-row:hover{background:#f1ebf7;border-color:#a58dad}.chevron{color:#365600}.badge{background:#ede2f3;color:#655079}.badge.yes{background:#e8eddb;color:#365600}.filters button[aria-pressed=true],.steps button[aria-current=step]{background:#365600}.option[aria-pressed=true]{background:#eee7f5}.dialog-head{background:var(--lavender);align-items:flex-start;padding-bottom:16px}.dialog-head h2{font-family:Georgia,serif;line-height:1.2}.dialog-head .eyebrow{color:#53475e;font-size:.7rem}.change-name{display:inline-flex;align-items:center;gap:6px;margin-top:12px;min-height:48px;padding:.5rem .85rem;background:#fffaf2;color:#8d1433;border:1px solid #ac6d83;border-radius:12px;font-size:1rem;font-weight:650}.change-name:hover{background:#f9e1e8}.name-editor{padding:20px 24px;background:#f4e9ee;border-bottom:1px solid var(--line)}.name-editor label{margin-bottom:.4rem}.name-buttons{display:flex;gap:10px;margin-top:12px}.name-buttons button{flex:1}#nameError{font-size:1rem;color:#a33127}#nameError:empty{display:none}dialog::backdrop{background:#25202bcc}.success{background:#e8eddb;color:#365600}.option strong{color:#365600}.settings{background:#fffaf280;padding:18px;border-radius:18px}.counter,.checks label,.choices button,.night-grid button{background:#fffaf2}
@media(max-width:600px){header{padding:55px 18px 23px;border-radius:70px 70px 20px 20px}header h1{font-size:2.1rem}header .eyebrow{max-width:230px;font-size:.65rem}header:before{width:160px;height:140px}header .quiet{font-size:.8rem;padding:.5rem;white-space:nowrap}.gate-card{padding:60px 24px 24px}.couple-names{font-size:2rem}.name-editor{padding:16px}.dialog-head h2{font-size:1.65rem}.change-name{min-height:50px}}

/* One accessible invitation palette across the sign-in and guest workflows. */
:root{--ink:#25202b;--green:#981638;--gold:#981638;--line:#cbb8ae;--muted:#61515a;--paper:#f5e7d8;--lavender:#f5e7d8;--blush:#f5e7d8}
body{background:#f5e7d8;color:#25202b}.gate{background:#25202b}.gate-card{background:#f5e7d8}.gate-card button,button{background:#981638;border-color:#981638;color:#fff}.couple-names{color:#981638}.gate-card p{color:#61515a}
header{background:#f5e7d8;border-color:#cbb8ae}header:before{opacity:.23}header h1,header .gold,header .eyebrow{color:#25202b}header .quiet{color:#981638;background:#fffaf2;border-color:#cbb8ae}
.stat{background:#fffaf2;border-color:#cbb8ae}.stat strong{color:#981638}.stat span{font-size:1rem;color:#61515a}.guest-row{background:#fffaf2;color:#25202b;border-color:#cbb8ae}.guest-row:hover{background:#f6e5dc;border-color:#981638}.chevron{color:#981638}.row-detail{font-size:1rem;color:#61515a}.badge,.badge.yes{background:#eedbd0;color:#3e2530;font-size:1rem}.badge.no{background:#eedbd0;color:#3e2530}
.filters button{font-size:1rem}.filters button[aria-pressed=true],.steps button[aria-current=step]{background:#981638;color:#fff;border-color:#981638}.steps button{font-size:1rem}.option[aria-pressed=true]{background:#f6e0da;border-color:#981638}.option strong{color:#25202b}
.dialog-head{background:#f5e7d8;border-bottom:1px solid #cbb8ae}.dialog-head .eyebrow{color:#61515a}.change-name{font-size:1.125rem;color:#981638;background:#fffaf2;border-color:#981638}.change-name:hover{background:#f6e0da}.name-editor{background:#f5e7d8}.success{background:#eedbd0;color:#25202b}.quiet{background:transparent;color:#981638;border-color:transparent}.secondary{background:#fffaf2;color:#981638;border-color:#cbb8ae}.choices button,.night-grid button{background:#fffaf2;color:#981638;border-color:#cbb8ae}.choices button[aria-pressed=true],.night-grid button[aria-pressed=true]{background:#981638;color:#fff;border-color:#981638}.night-grid span{font-size:1rem}.checks input{accent-color:#981638}.counter{background:#fffaf2}.counter button{background:#fffaf2;color:#981638}.settings{background:#fffaf2}.warning{color:#754019}input,textarea{border-color:#9e858d}.settings summary,.personal summary{font-size:1.125rem}#guestError,#status,#loginError,#settingsStatus,#nameError{color:#981638}
@media(max-width:600px){.stat span{font-size:1rem}.heading h2{font-size:1.5rem}.heading button,header .quiet{font-size:1rem}header .eyebrow{font-size:.75rem;max-width:220px}.steps button{font-size:1rem}.night-grid{gap:6px}.night-grid span{font-size:.85rem}}

/* Couple masthead and spacious controls for touch screens. */
header{display:grid;grid-template-columns:minmax(0,1fr) 160px;grid-template-areas:"title couple" "logout couple";gap:12px 20px;align-items:center;padding:38px 28px 24px}header:before{display:none}header>div{grid-area:title;min-width:0}header .eyebrow{max-width:none}.header-couple{grid-area:couple;width:100%;height:190px;object-fit:contain;pointer-events:none}header #logout{grid-area:logout;justify-self:start;min-height:56px;padding:.7rem 1rem}
button{min-height:56px}button:active:not(:disabled){box-shadow:inset 0 0 0 2px currentColor}.filters{flex-wrap:wrap;overflow:visible;gap:10px;padding:16px 0}.filters button{min-height:56px;font-size:1rem}.choices{gap:12px}.choices button{min-width:0}.choices button[aria-pressed=true]:before{content:'✓ ';font-weight:800}.option[aria-pressed=true] strong:before{content:'✓ ';font-weight:800}.night-grid button{position:relative;min-height:84px;padding:18px 6px 10px}.night-grid button[aria-pressed=true]:after{content:'✓';position:absolute;right:7px;top:2px;font-size:1rem}.change-name{min-height:56px}.schedule summary,.personal summary,.settings summary{min-height:56px}.counter button{min-height:60px}.name-buttons{gap:12px}.dialog-foot button{min-height:60px}input,textarea{font-size:1.125rem}
@media(max-width:600px){header{grid-template-columns:minmax(0,1fr) 104px;gap:12px;padding:28px 18px 20px;border-radius:60px 60px 20px 20px}.header-couple{height:165px}header h1{font-size:1.9rem}header .eyebrow{font-size:.75rem;max-width:none}header #logout{font-size:1rem}.filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.filters button{padding:.7rem .4rem}.filters button:last-child:nth-child(odd){grid-column:1/-1}.steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px 16px}.steps button{min-height:56px;padding:.65rem;font-size:1rem}.choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.choices button:last-child:nth-child(odd){grid-column:1/-1}.counter{display:grid;grid-template-columns:64px minmax(0,1fr) 64px;gap:12px;padding:16px}.counter label{grid-column:1/-1;font-size:1.125rem}.counter button{width:64px;height:64px}.counter output{text-align:center}.night-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.night-grid span{font-size:1rem}.night-grid button{min-height:90px}.heading{align-items:stretch;flex-direction:column;gap:14px}.heading button{width:100%;min-height:60px;font-size:1.125rem}.dialog-head .quiet{flex-shrink:0;width:56px;padding:.6rem}.dialog-head>div{min-width:0}.name-buttons button{min-width:0;padding:.7rem .5rem}
dialog[open]{display:flex;flex-direction:column;height:100dvh;max-height:100dvh;overflow:hidden}.dialog-head,.steps,.dialog-foot,#guestError,.name-editor{flex-shrink:0}.form-body{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.dialog-foot{position:relative;padding:14px 16px max(14px,env(safe-area-inset-bottom))}.name-editor{max-height:45dvh;overflow:auto}#guestError{margin:0;padding:10px 16px;font-size:1rem}.dialog-head h2{font-size:1.6rem}.dialog-head .eyebrow{font-size:.8rem}}

@media(max-width:600px) and (max-height:500px){dialog[open]{display:block;overflow-y:auto}.form-body{overflow:visible}.dialog-foot{position:sticky;bottom:0}.steps{grid-template-columns:repeat(4,minmax(0,1fr))}}
