@import "https://fonts.googleapis.com/css2?family=Newsreader:ital,wght@0,400;1,400&family=Lato:wght@400;700&display=swap";:root{--surface:#fff;--surface-raised:#f7f2e6;--surface-sunk:#eee9da;--ink:#543b2d;--ink-muted:#6f5f54;--line:#ddd8c6;--line-strong:#8a7a6c;--brand:#a8c6e9;--brand-strong:#8fb4de;--on-brand:#543b2d;--accent:#e9b92f;--on-accent:#543b2d;--tint:#f8edc6;--sage:#8a9b80;--focus:#543b2d;--success:#4a5d41;--success-tint:#e3eadc;--danger:#9b2c1f;--danger-tint:#f6e1dc;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:32px;--radius-pill:999px;--shadow-sm:0 1px 2px #543b2d14;--shadow-md:0 8px 24px #543b2d1f;--font-serif:"Newsreader", Georgia, "Times New Roman", serif;--font-sans:"Lato", system-ui, -apple-system, "Segoe UI", sans-serif}body{background:var(--surface);color:var(--ink);font:400 16px/24px var(--font-sans);margin:0}*,:before,:after{box-sizing:border-box}a{color:var(--ink);text-underline-offset:3px}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}a.ai-btn{text-decoration:none}a.ai-btn--quiet{text-decoration:underline}.h1{font:400 40px/46px var(--font-serif);margin:0}.h2{font:400 28px/34px var(--font-serif);margin:0}.h3{font:700 15px/22px var(--font-sans);letter-spacing:.02em;text-transform:uppercase;margin:0}.lead{font:400 18px/28px var(--font-sans);color:var(--ink-muted);margin:0}.muted{color:var(--ink-muted)}.small{font-size:14px;line-height:20px}.sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.stack-1{gap:var(--space-1);flex-direction:column;display:flex}.stack-2{gap:var(--space-2);flex-direction:column;display:flex}.stack-3{gap:var(--space-3);flex-direction:column;display:flex}.stack-4{gap:var(--space-4);flex-direction:column;display:flex}.stack-5{gap:var(--space-5);flex-direction:column;display:flex}.row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.cols{gap:var(--space-5);flex-wrap:wrap;align-items:flex-start;display:flex}.col{flex:320px;min-width:0}.col-wide{flex:1.6 440px;min-width:0}.panel{background:var(--surface-raised);border-radius:var(--radius-lg);padding:var(--space-5)}.panel-sunk{background:var(--surface-sunk);border-radius:var(--radius-lg);padding:var(--space-5)}.panel-brand{background:var(--brand);color:var(--ink);border-radius:var(--radius-lg);padding:var(--space-5)}.panel-brand .ai-count__cap{color:var(--ink)}.panel-accent{background:var(--accent);color:var(--on-accent);border-radius:var(--radius-lg);padding:var(--space-5)}.panel-accent .ai-count__cap{color:var(--ink)}.bar{border-radius:var(--radius-pill);background:var(--surface-sunk);height:8px;overflow:hidden}.bar>i{background:var(--sage);height:100%;display:block}.tag{border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--line-strong);min-height:28px;font:700 13px/20px var(--font-sans);color:var(--ink);align-items:center;padding:0 12px;text-decoration:none;display:inline-flex}.rowline{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--line);flex-wrap:wrap;display:flex}.check-input{width:20px;height:20px;accent-color:var(--brand)}.check-label{align-items:center;gap:var(--space-3);min-height:44px;font:400 16px/24px var(--font-sans);display:flex}.app{background:var(--surface);flex-wrap:wrap;min-height:100vh;display:flex}.app-side{max-width:100%;padding:var(--space-5) var(--space-4);background:var(--brand);gap:var(--space-5);flex-direction:column;flex:1 0 240px;display:flex}.app-main{min-width:0;padding:var(--space-6) var(--space-7);gap:var(--space-6);flex-direction:column;flex:999 640px;display:flex}.wordmark{padding:0 var(--space-3);font:400 32px/36px var(--font-serif)}.nav{min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--ink);font:700 14px/20px var(--font-sans);align-items:center;text-decoration:none;transition:background-color .16s ease-out;display:flex}.nav:hover{background:#fff6}.nav-on{background:var(--surface);box-shadow:inset 4px 0 0 var(--accent)}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--line);flex-wrap:wrap;display:flex}@media (prefers-reduced-motion:reduce){.nav{transition:none}}.ai-eyebrow{font:700 12px/16px var(--font-sans);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);margin:0}.ai-btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);min-height:44px;font:700 15px/20px var(--font-sans);cursor:pointer;border:1px solid #0000;padding:12px 22px;transition:background-color .16s ease-out,border-color .16s ease-out;display:inline-flex}.ai-btn--sm{min-height:36px;padding:6px 16px;font-size:14px}.ai-btn--lg{min-height:52px;padding:14px 30px;font-size:17px}.ai-btn--primary{background:var(--brand);color:var(--on-brand)}.ai-btn--primary:hover{background:var(--brand-strong)}.ai-btn--accent{background:var(--accent);color:var(--on-accent)}.ai-btn--accent:hover{filter:brightness(.92)}.ai-btn--secondary{color:var(--ink);border-color:var(--line-strong);background:0 0}.ai-btn--secondary:hover{background:var(--surface-sunk)}.ai-btn--ink{background:var(--ink);color:var(--surface)}.ai-btn--ink:hover{filter:brightness(1.25)}.ai-btn--quiet{color:var(--ink);text-underline-offset:3px;background:0 0;padding-left:12px;padding-right:12px;text-decoration:underline}.ai-btn--quiet:hover{background:var(--surface-sunk)}.ai-btn--danger{color:var(--danger);border-color:var(--danger);background:0 0}.ai-btn--danger:hover{background:var(--danger-tint)}.ai-btn:disabled{opacity:.5;cursor:not-allowed}.ai-btn:focus-visible,.ai-tab:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.ai-field{gap:var(--space-2);flex-direction:column;display:flex}.ai-label{font:600 14px/20px var(--font-sans);color:var(--ink)}.ai-input{box-sizing:border-box;background:var(--surface);width:100%;color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius-md);font:400 16px/24px var(--font-sans);padding:11px 14px}.ai-input::placeholder{color:var(--ink-muted)}.ai-input:focus-visible{outline:2px solid var(--focus);outline-offset:1px;border-color:var(--focus)}.ai-input.is-error{border-color:var(--danger)}.ai-input:disabled{opacity:.55}.ai-note{font:400 14px/20px var(--font-sans);color:var(--ink-muted);margin:0}.ai-note.is-error{color:var(--danger)}.ai-badge{border-radius:var(--radius-pill);font:600 13px/16px var(--font-sans);white-space:nowrap;align-items:center;gap:6px;padding:3px 10px 3px 6px;display:inline-flex}.ai-badge__mark{box-sizing:border-box;width:16px;height:16px;font:700 10px/1 var(--font-sans);border:1.5px solid;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.ai-badge--neutral{background:var(--surface-sunk);color:var(--ink-muted)}.ai-badge--success{background:var(--success-tint);color:var(--success)}.ai-badge--warning{background:var(--tint);color:var(--ink)}.ai-badge--danger{background:var(--danger-tint);color:var(--danger)}.ai-banner{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);border:1px solid;align-items:flex-start;display:flex}.ai-banner__mark{width:20px;height:20px;font:700 12px/1 var(--font-sans);border:2px solid;border-radius:50%;flex:none;justify-content:center;align-items:center;margin-top:2px;display:inline-flex}.ai-banner__title{font:600 15px/22px var(--font-sans);margin:0}.ai-banner__body{font:400 15px/22px var(--font-sans);color:var(--ink)}.ai-banner--success{background:var(--success-tint);color:var(--success)}.ai-banner--warning{background:var(--tint);color:var(--ink)}.ai-banner--danger{background:var(--danger-tint);color:var(--danger)}.ai-banner--neutral{background:var(--surface-sunk);color:var(--ink)}.ai-card{box-sizing:border-box;padding:var(--space-5);border-radius:var(--radius-lg);color:var(--ink)}.ai-card--raised{background:var(--surface-raised)}.ai-card--sunk{background:var(--surface-sunk)}.ai-card--tint{background:var(--tint)}.ai-card__title{margin:var(--space-2) 0 0;font:400 24px/30px var(--font-serif)}.ai-card__body{margin-top:var(--space-3);font:400 16px/24px var(--font-sans)}.ai-card__foot{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--line);gap:var(--space-3);align-items:center;display:flex}.ai-tabs{gap:var(--space-5);border-bottom:1px solid var(--line);display:flex}.ai-tab{gap:var(--space-2);padding:var(--space-3) 0;font:600 15px/20px var(--font-sans);color:var(--ink-muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;margin-bottom:-1px;display:inline-flex}.ai-tab:hover{color:var(--ink)}.ai-tab.is-on{color:var(--ink);border-bottom-color:var(--accent)}.ai-tab__n{border-radius:var(--radius-pill);background:var(--surface-sunk);font:600 12px/18px var(--font-sans);color:var(--ink-muted);padding:1px 8px}.ai-check{margin:0;padding:0;list-style:none}.ai-check__row{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--line);display:flex}.ai-check__row label{align-items:center;gap:var(--space-3);cursor:pointer;font:400 16px/24px var(--font-sans);color:var(--ink);display:flex;position:relative}.ai-check__row input{opacity:0;width:24px;height:24px;margin:0;position:absolute}.ai-check__box{box-sizing:border-box;border:2px solid var(--ink);border-radius:var(--radius-sm);background:var(--surface);flex:none;width:22px;height:22px;position:relative}.ai-check__row input:checked+.ai-check__box{background:var(--brand);border-color:var(--ink)}.ai-check__row input:checked+.ai-check__box:after{content:"";border:solid var(--on-brand);border-width:0 2px 2px 0;width:6px;height:11px;position:absolute;top:1px;left:5px;transform:rotate(45deg)}.ai-check__row input:focus-visible+.ai-check__box{outline:2px solid var(--focus);outline-offset:2px}.ai-check__row.is-done .ai-check__label{color:var(--ink-muted);text-decoration:line-through}.ai-check__meta{font:400 14px/20px var(--font-sans);color:var(--ink-muted);white-space:nowrap}.ai-guest{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--line);display:flex}.ai-avatar{background:var(--brand);width:40px;height:40px;color:var(--on-brand);font:700 14px/1 var(--font-sans);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.ai-guest__who{flex:1;min-width:0}.ai-guest__name{font:600 16px/22px var(--font-sans);color:var(--ink);margin:0}.ai-guest__detail{font:400 14px/20px var(--font-sans);color:var(--ink-muted);margin:0}.ai-count{align-items:center;gap:var(--space-1);flex-direction:column;display:inline-flex}.ai-count__n{font:400 72px/72px var(--font-serif);font-variant-numeric:lining-nums;color:var(--ink)}.ai-count__cap{font:500 12px/16px var(--font-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted)}.ai-sched{margin:0;padding:0;list-style:none}.ai-sched__row{gap:var(--space-4);padding:var(--space-4) 0;border-top:1px solid var(--line);grid-template-columns:88px 1fr;display:grid}.ai-sched__time{font:400 24px/30px var(--font-serif);color:var(--ink)}.ai-sched__title{font:600 17px/24px var(--font-sans);color:var(--ink);margin:0}.ai-sched__place,.ai-sched__note{font:400 15px/22px var(--font-sans);color:var(--ink-muted);margin:2px 0 0}.ai-invite{box-sizing:border-box;width:360px;max-width:100%;padding:120px var(--space-6) var(--space-6);text-align:center;background:var(--surface-raised);border:1px solid var(--line);border-radius:180px 180px var(--radius-lg) var(--radius-lg);color:var(--ink)}.ai-invite__names{margin:var(--space-3) 0 var(--space-4);font:400 44px/48px var(--font-serif)}.ai-invite__when{font:600 16px/24px var(--font-sans);margin:0}.ai-invite__place{font:400 16px/24px var(--font-sans);color:var(--ink-muted);margin:0}.ai-invite__rsvp{margin:var(--space-4) 0 0;font:400 14px/20px var(--font-sans);color:var(--ink-muted)}.ai-invite__act{margin-top:var(--space-5);justify-content:center;gap:var(--space-3);display:flex}.ai-hero{gap:var(--space-7);padding:var(--space-8) var(--space-6) 0;background:var(--surface);color:var(--ink);grid-template-columns:minmax(0,1fr) minmax(0,240px);align-items:end;display:grid;overflow:hidden}.ai-hero__names{margin:var(--space-3) 0 var(--space-4);font:400 clamp(48px, 9vw, 96px)/.95 var(--font-serif)}.ai-hero__when{font:400 18px/28px var(--font-sans);color:var(--ink-muted);margin:0}.ai-hero__act{margin:var(--space-6) 0;gap:var(--space-3);flex-wrap:wrap;display:flex}.ai-hero__art{width:100%;height:auto;display:block}.ai-art-brand{fill:var(--brand)}.ai-art-accent{fill:var(--accent)}.ai-art-sage{fill:var(--sage)}.ai-art-ground{fill:var(--surface)}@media (width<=640px){.ai-hero{padding-top:var(--space-6);grid-template-columns:1fr}.ai-hero__art{max-width:240px}}@media (prefers-reduced-motion:reduce){.ai-btn{transition:none}}.ai-hero__names em,.ai-invite__names em{font-style:italic}.ai-hero__names,.ai-invite__names,.ai-count__n{letter-spacing:-.01em}.ai-tab__n,.ai-badge{font-family:var(--font-sans)}.site{max-width:1200px;padding:0 var(--space-6);margin:0 auto}.blue{background:var(--brand)}.nav-btn{cursor:pointer;text-align:left;width:100%;font-family:var(--font-sans);background:0 0;border:0}.seg{border-radius:var(--radius-pill);background:var(--surface-sunk);height:12px;margin-top:var(--space-4);display:flex;overflow:hidden}.overdue{color:var(--danger);font-weight:700}textarea.ai-input{resize:vertical}.fieldset{border:0;margin:0;padding:0}.login-page{min-height:100vh;padding:var(--space-5);background:var(--surface);place-items:center;display:grid}.login-card{width:100%;max-width:420px;padding:var(--space-6);border:1px solid var(--line-strong);border-radius:var(--radius-xl);background:var(--surface)}.plus{border:1px solid var(--line-strong);width:44px;height:44px;color:var(--ink);font:400 26px/1 var(--font-sans);cursor:pointer;background:0 0;border-radius:50%}.plus:hover{background:var(--surface-sunk)}.icon-btn{width:36px;height:36px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:50%;font-size:20px}.icon-btn:hover{background:#543b2d1a}.modal-back{z-index:50;padding:var(--space-7) var(--space-4);background:#543b2d73;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{gap:var(--space-5);background:var(--surface);border-radius:var(--radius-xl);width:100%;max-width:560px;box-shadow:var(--shadow-md);padding:var(--space-6);outline:none;flex-direction:column;display:flex}.modal-wide{max-width:1100px}.kanban{gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:start;display:grid}.kcol{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-3);flex-direction:column;min-height:200px;display:flex}.kcol.over{border-color:var(--ink);background:var(--tint)}.kcard{gap:var(--space-1);text-align:left;padding:var(--space-4);border:0;border-left:4px solid var(--sage);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--ink);font:400 16px/24px var(--font-sans);cursor:grab;flex-direction:column;display:flex}.kcard:hover{background:var(--surface-sunk)}.wall{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(230px,1fr));align-items:start;display:grid}.sticky{gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-lg);flex-direction:column;display:flex}.sticky-ivory{background:var(--surface-raised)}.sticky-blue{background:var(--brand)}.sticky-butter{background:var(--tint)}.sticky-sage{background:#dfe7d8}.sticky-top{justify-content:space-between;gap:var(--space-2);align-items:flex-start;display:flex}.sticky-title{font:400 22px/28px var(--font-serif);overflow-wrap:anywhere;margin:0}.sticky-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.menu-wrap{position:relative}.menu{z-index:10;min-width:200px;padding:var(--space-2);background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-md);flex-direction:column;display:flex;position:absolute;top:100%;right:0}.menu button{text-align:left;padding:var(--space-2) var(--space-3);color:var(--ink);font:400 15px/22px var(--font-sans);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0}.menu button:hover{background:var(--surface-sunk)}.menu .danger{color:var(--danger)}.filters{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-2);flex-direction:column;flex:0 0 240px;display:flex}.table-wrap{overflow-x:auto}.frow{gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--line);grid-template-columns:minmax(200px,2fr) 1fr .6fr .8fr .8fr auto;align-items:center;min-width:720px;display:grid}.ext{border-radius:var(--radius-md);background:var(--brand);height:36px;font:700 11px/16px var(--font-sans);flex:0 0 36px;justify-content:center;align-items:center;display:inline-flex}.drop{border:2px dashed var(--line-strong);border-radius:var(--radius-lg);padding:var(--space-6) var(--space-5);text-align:center;align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.drop.over{border-color:var(--ink);background:var(--tint)}.month{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.dow{font:700 12px/16px var(--font-sans);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);padding:var(--space-2)}.daycell{min-height:84px;padding:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);cursor:pointer;text-align:left;font-family:var(--font-sans);flex-direction:column;align-items:flex-start;gap:2px;display:flex}.daycell:hover{background:var(--surface-raised)}.daycell.today{border-color:var(--ink)}.daycell.wedding{background:var(--accent)}.dnum{font:400 20px/24px var(--font-serif)}.tag-btn{cursor:pointer;font-family:var(--font-sans)}.tag-btn.on{background:var(--brand)}.hour{gap:var(--space-4);padding:var(--space-3) 0;border-top:1px solid var(--line);min-height:52px;display:flex}.htime{font:400 18px/24px var(--font-serif);flex:0 0 56px}.slot{justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-raised);border-radius:var(--radius-md);border-left:4px solid var(--sage);display:flex}.slot-guests{border-left-color:var(--accent)}@media (width<=720px){.app-main{padding:var(--space-5) var(--space-4)}.daycell{min-height:64px}}
