:root{--ink-900:#0f172a;--ink-700:#334155;--ink-500:#64748b;--ink-300:#94a3b8;--ink-200:#cbd5e1;--surface:#fff;--surface-2:#f1f5f9;--rule:#cbd5e1;--rule-soft:#e2e8f0;--c-overview:#0f172a;--c-guests:#f43f5e;--c-budget:#f59e0b;--c-tasks:#7c3aed;--c-venues:#0d9488;--accent:#0f172a;--accent-weak:#f8fafc;--positive:#059669;--alert:#e11d48;--alert-weak:#fff1f2;--r-sm:4px;--r-md:6px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:72px;--shadow-sm:0 1px 2px #0f172a0f;--shadow-md:0 4px 16px #0f172a14;--font-sans:"IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-serif:"Source Serif 4", Georgia, "Times New Roman", serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--surface-2);color:var(--ink-900);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:15px;line-height:1.5}.num,.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}h1,h2,h3{margin:0}h1{font-family:var(--font-serif);letter-spacing:-.01em;font-size:28px;font-weight:400;line-height:1.15}h2{letter-spacing:.01em;font-size:15px;font-weight:600}h3{font-size:14px;font-weight:600}.figlabel,.tile>h2,.card>h2,.eyebrow,label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--ink-500);font-size:10px;font-weight:500}p{margin:0}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.shell{min-height:100dvh}.masthead{background:var(--surface);border-bottom:1px solid var(--rule)}.masthead-inner{max-width:64rem;padding:var(--s-5) var(--s-5) var(--s-4);align-items:center;gap:var(--s-3) var(--s-5);flex-wrap:wrap;margin:0 auto;display:flex}.eyebrow{color:var(--ink-300);margin-bottom:2px;display:block}.couple{font-family:var(--font-serif);letter-spacing:-.015em;color:var(--ink-900);font-size:30px;font-weight:400;line-height:1.1}.couple .amp{color:var(--c-guests);font-style:italic}.masthead-names{flex:16rem;min-width:0}.countdown{text-align:right}.countdown .days{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:var(--ink-900);font-size:36px;font-weight:400;line-height:1;display:block}.countdown .unit{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--ink-300);margin-top:5px;font-size:10px;display:block}.presence{align-items:center;gap:var(--s-3);border:1px solid var(--rule);font-family:var(--font-mono);color:var(--ink-500);border-radius:99px;padding:6px 14px;font-size:11px;display:flex}.presence .who{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.presence .pip{background:var(--ink-200);border-radius:50%;width:6px;height:6px}.presence .pip.self{background:var(--positive)}.spine{background:var(--rule-soft);height:2px;overflow:hidden}.spine span{background:var(--ink-900);height:100%;transition:width .4s;display:block}.tabs{max-width:64rem;padding:var(--s-4) var(--s-5) 0;gap:var(--s-2);scrollbar-width:none;margin:0 auto;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs a{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-500);background:var(--surface-2);border-radius:var(--r-md) var(--r-md) 0 0;white-space:nowrap;border:1px solid #0000;border-top-width:3px;border-bottom:0;align-items:center;gap:7px;padding:10px 16px;font-size:11px;display:inline-flex}.tabs a:hover{color:var(--ink-900)}.tabs a[aria-current=page]{background:var(--surface);color:var(--ink-900);border-color:var(--rule);border-top-color:var(--tab-color,var(--ink-900));border-bottom:0}.tabs svg{flex:none;width:14px;height:14px}.tabs-spacer{flex:1}.signout{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-300);cursor:pointer;background:0 0;border:0;align-self:auto;margin:0;padding:10px 4px;font-size:11px}.signout:hover{color:var(--ink-900);background:0 0}.content{max-width:64rem;padding:var(--s-5) var(--s-5) var(--s-8);background:var(--surface);border:1px solid var(--rule);border-radius:0 var(--r-md) var(--r-md) var(--r-md);margin:0 auto}.page-wrap{background:var(--surface-2)}.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-md);padding:var(--s-5);margin-bottom:var(--s-4)}.card>h2{color:var(--ink-500);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--s-4);font-size:11px;font-weight:600}.muted{color:var(--ink-500);font-size:13px}.error{color:var(--alert);font-size:13px}.ok{color:var(--positive);font-size:13px}.over{color:var(--alert)}.figures{gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));display:grid}.figures strong{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:21px;font-weight:600;display:block}.figlabel{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-500);margin-bottom:var(--s-1);font-size:10px;font-weight:600;display:block}.bar{background:var(--rule);height:4px;margin:var(--s-4) 0 var(--s-3);border-radius:99px;overflow:hidden}.bar span{background:var(--positive);height:100%;transition:width .35s;display:block}.bar span.over{background:var(--alert)}ul.plain{margin:0;padding:0;list-style:none}ul.plain>li{padding:var(--s-3) 0;border-bottom:1px solid var(--rule-soft);font-size:14px}ul.plain>li:last-child{border-bottom:0}.taskrow{justify-content:space-between;align-items:baseline;gap:var(--s-4);display:flex}.taskrow .meta{white-space:nowrap;color:var(--ink-500);flex:none;font-size:12px}.checkline{align-items:flex-start;gap:var(--s-3);cursor:pointer;margin:0;font-weight:400;display:flex}.checkline input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex:none;margin-top:2px}.struck{color:var(--ink-300);text-decoration:line-through}.lineitem{justify-content:space-between;align-items:center;gap:var(--s-2) var(--s-4);padding:var(--s-3) 0;border-bottom:1px solid var(--rule-soft);flex-wrap:wrap;display:flex}.amounts{align-items:flex-end;gap:var(--s-3);font-size:13px;display:flex}.amounts label{margin:0;font-weight:400}.stack{gap:var(--s-2);flex-direction:column;max-width:24rem;display:flex}label{color:var(--ink-700);margin-top:var(--s-2);font-size:12px;font-weight:600}.checkline,.amounts label{font-size:inherit}input,select{font:inherit;border:1px solid var(--rule);border-radius:var(--r-sm);background:var(--surface);color:var(--ink-900);width:100%;padding:8px 10px;font-size:14px}input[type=checkbox]{width:auto}input:focus-visible,select:focus-visible{border-color:var(--accent);outline-offset:0}input::placeholder{color:var(--ink-300)}input.mini{width:5.5rem;font-size:13px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;padding:5px 7px}button{font:inherit;margin-top:var(--s-3);border:1px solid var(--ink-900);border-radius:var(--r-sm);background:var(--ink-900);color:#fff;cursor:pointer;align-self:flex-start;padding:8px 16px;font-size:14px;font-weight:500;transition:background .15s}button:hover:not(:disabled){background:var(--ink-700)}button:disabled{opacity:.45;cursor:default}button.link{color:var(--ink-500);background:0 0;border:0;align-self:auto;margin:0;padding:0;font-size:12px;text-decoration:underline}button.link:hover{color:var(--alert);background:0 0}.notice{background:var(--accent-weak);border-radius:var(--r-md);padding:var(--s-4);margin-bottom:var(--s-4);border:1px solid #cfe0ff;font-size:14px}.notice strong{margin-bottom:var(--s-1);display:block}.plain-page{max-width:30rem;padding:var(--s-8) var(--s-5);margin:0 auto}.plain-page h1{margin-bottom:var(--s-3);font-size:30px}.plain-page p{color:var(--ink-500);margin-bottom:var(--s-3);font-size:15px}.status{margin-top:var(--s-7);padding-top:var(--s-4);border-top:1px solid var(--rule);color:var(--ink-500);font-size:12px}code{font-family:var(--font-mono);font-size:.9em}@media (max-width:640px){.countdown .days{font-size:28px}.couple{font-size:19px}.content{padding:var(--s-5) var(--s-4) var(--s-7)}.topbar{padding:var(--s-4) var(--s-4) 0}.tabs{padding:0 var(--s-4)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.grid{gap:var(--s-4);grid-template-columns:repeat(12,1fr);align-items:start;display:grid}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-7{grid-column:span 7}.tile{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-md);padding:var(--s-4) var(--s-5) var(--s-5);min-width:0}.tile>h2{color:var(--ink-500);text-transform:uppercase;letter-spacing:.09em;margin-bottom:var(--s-3);font-size:10px;font-weight:600}a.tile.stat{transition:border-color .15s,box-shadow .15s;display:block}a.tile.stat:hover{border-color:var(--ink-300);box-shadow:var(--shadow-sm);color:inherit}.stat .figlabel{margin-bottom:var(--s-2)}.stat strong{letter-spacing:-.035em;font-size:27px;font-weight:600;line-height:1.1;display:block}.stat .of{color:var(--ink-300);font-size:17px;font-weight:500}.stat .bar{margin:var(--s-3) 0 var(--s-2)}.stat .muted{font-size:12px;display:block}.livedot{margin-bottom:var(--s-2);align-items:center;display:flex}.dot{background:var(--ink-300);width:6px;height:6px;margin-right:var(--s-2);border-radius:50%;display:inline-block}.dot.live{background:var(--positive)}ul.feed>li{justify-content:space-between;gap:var(--s-3);align-items:baseline;font-size:13px;display:flex}ul.feed .meta{color:var(--ink-300);white-space:nowrap;flex:none;font-size:11px}@media (max-width:900px){.span-4,.span-5,.span-7{grid-column:span 6}}@media (max-width:640px){.span-4,.span-5,.span-7{grid-column:span 12}.stat strong{font-size:23px}}.sectionhead{justify-content:space-between;align-items:center;gap:var(--s-4);margin-bottom:var(--s-4);display:flex}.sectionhead h1{font-size:26px}button.action{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;border-radius:var(--r-sm);background:var(--ink-900);border:1px solid var(--ink-900);color:#fff;flex:none;align-items:center;gap:6px;margin:0;padding:9px 14px;font-size:11px;display:inline-flex}button.action:hover:not(:disabled){background:var(--ink-700);border-color:var(--ink-700)}button.action.ghost{color:var(--ink-500);border-color:var(--rule);background:0 0}button.action.ghost:hover:not(:disabled){background:var(--surface-2);color:var(--ink-900);border-color:var(--ink-300)}button{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;border-radius:var(--r-sm);font-size:11px}.drawer{border:1px solid var(--rule);border-radius:var(--r-md);background:var(--surface-2);padding:var(--s-4) var(--s-5) var(--s-5);margin-bottom:var(--s-5)}.pills{gap:var(--s-2);margin-bottom:var(--s-4);flex-wrap:wrap;display:flex}.pill{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--rule);border-radius:var(--r-sm);background:var(--surface);color:var(--ink-500);cursor:pointer;margin:0;padding:7px 12px;font-size:10px}.pill[aria-pressed=true]{background:var(--ink-900);color:#fff;border-color:var(--ink-900)}.pill-sep{background:var(--rule);width:1px;margin:0 var(--s-1)}.fig-tasks strong{color:var(--c-tasks)}.fig-budget strong{color:var(--c-budget)}.fig-owed strong{color:var(--c-guests)}.fig-paid strong{color:var(--positive)}.accesstable{border:1px solid var(--rule);border-radius:var(--r-md);overflow:hidden}.accessrow{gap:var(--s-3);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--rule-soft);grid-template-columns:minmax(9rem,1.6fr) minmax(7rem,1fr) repeat(2,minmax(6.5rem,1fr)) 4.5rem;align-items:center;font-size:13px;display:grid}.accessrow:last-child{border-bottom:0}.accesshead{background:var(--surface-2);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-500);font-size:10px}.accessrow .who{flex-direction:column;min-width:0;display:flex}.accessrow .who strong{font-weight:600}.accessrow .addr{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.accessrow select{padding:5px 7px;font-size:12px}.accessrow .rowaction{text-align:right}@media (max-width:760px){.accesshead{display:none}.accessrow{gap:var(--s-2) var(--s-3);padding:var(--s-4);border-bottom:1px solid var(--rule);grid-template-columns:1fr 1fr}.accessrow .who{grid-column:1/-1}.accessrow .rowaction{text-align:left;grid-column:1/-1}.accessrow select{width:100%}}.guestrow{justify-content:space-between;align-items:center;gap:var(--s-3);display:flex}.guestrow .who{flex-direction:column;min-width:0;display:flex}.guestrow .who strong{font-weight:500}.guestrow .meta{align-items:center;gap:var(--s-3);flex:none;display:flex}button.rsvp{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--rule);background:var(--surface);color:var(--ink-500);border-radius:99px;min-width:5.5rem;margin:0;padding:5px 10px;font-size:10px}button.rsvp:hover:not(:disabled){border-color:var(--ink-300);background:var(--surface-2)}button.rsvp:disabled{opacity:1;cursor:default}button.rsvp-yes{color:var(--positive);background:#ecfdf5;border-color:#a7f3d0}button.rsvp-no{color:var(--alert);background:var(--alert-weak);border-color:#fecdd3}button.rsvp-maybe{color:var(--c-budget);background:#fffbeb;border-color:#fde68a}.modal-backdrop{z-index:50;padding:var(--s-5) var(--s-4);background:#0f172a73;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border-radius:var(--r-md);box-shadow:var(--shadow-md);width:100%;max-width:46rem;margin:auto}.modal-head{padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;display:flex}.modal-head h1{font-size:22px}.iconbtn{color:var(--ink-500);cursor:pointer;background:0 0;border:0;margin:0;padding:0 4px;font-size:22px;line-height:1}.iconbtn:hover{color:var(--ink-900);background:0 0}.modal-body{padding:var(--s-5);gap:var(--s-4);flex-direction:column;display:flex}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field label{margin:0}.field .muted{font-size:11px}.field-row{gap:var(--s-4);grid-template-columns:1fr 1fr;display:grid}textarea{font:inherit;font-size:14px;font-family:var(--font-sans);border:1px solid var(--rule);border-radius:var(--r-sm);background:var(--surface);color:var(--ink-900);resize:vertical;width:100%;padding:8px 10px}textarea:focus-visible{border-color:var(--accent);outline-offset:0}.modal-foot{align-items:center;gap:var(--s-3);padding-top:var(--s-4);border-top:1px solid var(--rule);margin-top:var(--s-2);display:flex}.foot-spacer{flex:1}button.danger{color:var(--alert);background:0 0;border:1px solid #0000;margin:0}button.danger:hover{background:var(--alert-weak);border-color:#fecdd3}button.guestname{font:inherit;text-transform:none;letter-spacing:normal;text-align:left;color:inherit;cursor:pointer;background:0 0;border:0;flex:1;min-width:0;margin:0;padding:0}button.guestname:hover:not(:disabled){background:0 0}button.guestname:hover:not(:disabled) strong{text-underline-offset:2px;text-decoration:underline}button.guestname:disabled{cursor:default;opacity:1}.placeholder{color:var(--ink-300);font-style:italic;font-weight:400}@media (max-width:640px){.field-row{grid-template-columns:1fr}.modal-backdrop{padding:0}.modal{border-radius:0;min-height:100dvh}}.site{background:var(--surface)}.siteheader{border-bottom:1px solid var(--rule-soft);background:var(--surface)}.siteheader-inner{max-width:64rem;padding:var(--s-4) var(--s-5);justify-content:space-between;align-items:center;gap:var(--s-4);margin:0 auto;display:flex}.siteheader nav{align-items:center;gap:var(--s-5);font-size:14px;display:flex}.siteheader nav a{color:var(--ink-500)}.siteheader nav a:hover{color:var(--ink-900)}.wordmark{font-family:var(--font-serif);letter-spacing:-.02em;color:var(--ink-900);font-size:22px}.cta-small{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--ink-900);border-radius:var(--r-sm);padding:8px 14px;font-size:11px;color:var(--ink-900)!important}.cta-small:hover{background:var(--ink-900);color:#fff!important}.hero{max-width:52rem;padding:var(--s-8) var(--s-5) var(--s-7);text-align:center;margin:0 auto}.hero.narrow{max-width:42rem;padding-bottom:var(--s-6)}.hero .eyebrow{color:var(--ink-300);margin-bottom:var(--s-4)}.hero h1{letter-spacing:-.025em;margin-bottom:var(--s-4);font-size:clamp(34px,6vw,56px);line-height:1.05}.hero .amp{color:var(--c-guests);font-style:italic}.lede{color:var(--ink-500);max-width:34rem;margin:0 auto var(--s-5);font-size:17px;line-height:1.6}.cta-row{gap:var(--s-3);margin-bottom:var(--s-4);flex-wrap:wrap;justify-content:center;display:flex}.cta,.cta-ghost{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;border-radius:var(--r-sm);border:1px solid var(--ink-900);padding:14px 24px;font-size:12px;display:inline-block}.cta{background:var(--ink-900);color:#fff!important}.cta:hover{background:var(--ink-700);border-color:var(--ink-700)}.cta-ghost{border-color:var(--rule);color:var(--ink-900)!important}.cta-ghost:hover{border-color:var(--ink-900)}.band{padding:var(--s-7) var(--s-5);border-top:1px solid var(--rule-soft)}.band.alt{background:var(--surface-2)}.band-title{font-family:var(--font-serif);letter-spacing:-.015em;max-width:64rem;margin:0 auto var(--s-5);font-size:26px;font-weight:400}.feature-grid{gap:var(--s-5);grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));max-width:64rem;margin:0 auto;display:grid}.feature .rule{width:32px;height:3px;margin-bottom:var(--s-3);border-radius:99px;display:block}.feature h2,.feature h3{font-family:var(--font-serif);letter-spacing:-.01em;margin-bottom:var(--s-2);font-size:19px;font-weight:400}.feature p{color:var(--ink-500);font-size:14px;line-height:1.65}.steps{gap:var(--s-5);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));max-width:64rem;margin:0 auto;padding:0;list-style:none;display:grid}.steps li{border-top:1px solid var(--rule);padding-top:var(--s-4)}.stepnum{color:var(--ink-300);margin-bottom:var(--s-3);font-size:12px;display:block}.steps h2,.steps h3{font-family:var(--font-serif);letter-spacing:-.01em;margin-bottom:var(--s-2);font-size:19px;font-weight:400}.steps p{color:var(--ink-500);font-size:14px;line-height:1.65}.faqlist{gap:var(--s-5);flex-direction:column;max-width:42rem;margin:0 auto;display:flex}.faqlist h2{font-family:var(--font-serif);letter-spacing:-.01em;margin-bottom:var(--s-2);font-size:20px;font-weight:400}.faqlist p{color:var(--ink-500);font-size:15px;line-height:1.65}.closer{text-align:center;padding:var(--s-8) var(--s-5);border-top:1px solid var(--rule-soft)}.closer h2{font-family:var(--font-serif);letter-spacing:-.02em;margin-bottom:var(--s-3);font-size:clamp(24px,4vw,34px);font-weight:400}.sitefooter{border-top:1px solid var(--rule);background:var(--surface-2)}.sitefooter-inner{max-width:64rem;padding:var(--s-6) var(--s-5) var(--s-4);gap:var(--s-5);flex-wrap:wrap;justify-content:space-between;margin:0 auto;display:flex}.sitefooter nav{gap:var(--s-2);flex-direction:column;font-size:14px;display:flex}.sitefooter nav a{color:var(--ink-500)}.sitefooter nav a:hover{color:var(--ink-900)}.colophon{max-width:64rem;padding:0 var(--s-5) var(--s-6);margin:0 auto;font-size:12px}@media (max-width:640px){.siteheader nav{gap:var(--s-3);font-size:13px}.hero{padding-top:var(--s-6)}.cta,.cta-ghost{text-align:center;width:100%}}
