*,*:before,*:after{box-sizing:border-box}*{margin:0}html{interpolate-size:allow-keywords}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p{overflow-wrap:break-word;text-wrap:pretty}h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;text-wrap:balance}#root,#app{isolation:isolate}:root{--parchment: #faf5ec;--parchment-raised: #fffdf8;--blush: #efd8d1;--blush-soft: #f8ece7;--sage: #8fa98b;--sage-soft: #dfe6da;--ink: #1b2e3c;--ink-muted: #5d6c76;--ink-faint: #93a0a7;--gold: #b08636;--gold-soft: #f0e3c8;--rule: #e8ded0;--font-serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Times New Roman", serif;--font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--radius: 14px;--radius-lg: 22px;--bar-height: 76px;font-family:var(--font-sans);color-scheme:light}@media(prefers-color-scheme:dark){:root{--parchment: #141c22;--parchment-raised: #1b252c;--blush: #4a3a37;--blush-soft: #2a2320;--sage: #93ac8e;--sage-soft: #2b352c;--ink: #f2ebe0;--ink-muted: #a9b4bb;--ink-faint: #7c8890;--gold: #d5ae63;--gold-soft: #3a3021;--rule: #2c363d;color-scheme:dark}}body{background-color:var(--parchment);color:var(--ink);font-size:16px;letter-spacing:.005em}h1,h2,h3{font-family:var(--font-serif);font-weight:400;letter-spacing:-.01em}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.page{max-width:34rem;margin-inline:auto;padding:3rem 1.25rem calc(var(--bar-height) + 3rem)}.section{margin-top:3.25rem;scroll-margin-top:1.5rem}.section__head{margin-bottom:1.25rem}.section__title{font-size:1.6rem;line-height:1.2}.section__blurb{margin-top:.3rem;color:var(--ink-muted);font-size:.86rem;letter-spacing:.02em}.empty{color:var(--ink-muted);font-size:.9rem;padding:1.25rem;background:var(--parchment-raised);border:1px solid var(--rule);border-radius:var(--radius)}.colophon{margin-top:3.5rem;padding-top:1.5rem;border-top:1px solid var(--rule);color:var(--ink-faint);font-size:.78rem;text-align:center;letter-spacing:.04em}.masthead{text-align:center;padding-bottom:.5rem}.masthead__eyebrow{font-size:.7rem;letter-spacing:.32em;text-transform:uppercase;color:var(--sage)}.masthead__names{margin-top:.9rem;font-size:clamp(2.4rem,12vw,3.2rem);line-height:1.05;font-style:italic}.masthead__date{margin-top:.85rem;font-size:.92rem;color:var(--ink-muted)}.masthead__countdown{margin-top:1.1rem;display:inline-block;padding:.4rem 1rem;border-radius:999px;background:var(--blush-soft);color:var(--ink);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}.masthead__progress{margin-top:1.1rem;font-size:.85rem;color:var(--ink-muted)}.masthead__progress-count{font-family:var(--font-serif);font-size:1.05rem;color:var(--ink)}.link-button{margin-top:.75rem;background:none;border:0;padding:.4rem;color:var(--ink-muted);font-size:.8rem;letter-spacing:.06em;text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--blush);cursor:pointer}.details-form{margin-top:1.25rem;display:grid;gap:1rem;text-align:left;padding:1.25rem;background:var(--parchment-raised);border:1px solid var(--rule);border-radius:var(--radius)}.field{display:grid;gap:.4rem;border:0;padding:0}.field label,.field legend{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);padding:0}.field input,.field textarea,.budget-item input,.add-row input{width:100%;padding:.7rem .85rem;background:var(--parchment);border:1px solid var(--rule);border-radius:10px;color:var(--ink);font-size:.95rem}.field textarea{resize:vertical;line-height:1.6}input:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--sage);outline-offset:2px}.timeline{list-style:none;padding:0;margin:0;position:relative}.timeline:before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:1px;background:var(--rule)}.timeline__item{position:relative;padding:0 0 1.85rem 1.75rem}.timeline__item:last-child{padding-bottom:0}.timeline__dot{position:absolute;left:0;top:6px;width:11px;height:11px;border-radius:50%;background:var(--parchment);border:1px solid var(--sage)}.timeline__item--done .timeline__dot{background:var(--gold);border-color:var(--gold)}.timeline__item--wedding .timeline__dot{background:var(--blush);border-color:var(--blush);box-shadow:0 0 0 4px var(--blush-soft)}.timeline__when{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint)}.timeline__what{font-family:var(--font-serif);font-size:1.12rem;margin-top:.15rem}.timeline__item--wedding .timeline__what{font-style:italic}.timeline__status{margin-top:.1rem;font-size:.8rem;color:var(--ink-muted)}.timeline__item--done .timeline__status{color:var(--gold)}.group{background:var(--parchment-raised);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:1.35rem 1.25rem 1.1rem;margin-bottom:1.15rem}.group__head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding-bottom:.9rem;border-bottom:1px solid var(--rule)}.group__title{font-size:1.22rem}.group__blurb{margin-top:.15rem;font-size:.78rem;color:var(--ink-faint)}.group__count{font-family:var(--font-serif);font-size:1rem;color:var(--ink-muted);white-space:nowrap;transition:color .24s ease}.group__count--complete{color:var(--gold)}.task-list{list-style:none;padding:0;margin:0}.task{display:flex;align-items:stretch;gap:.25rem;border-bottom:1px solid var(--rule)}.task:last-child{border-bottom:0}.task__main{position:relative;flex:1;display:flex;align-items:flex-start;gap:.85rem;padding:.95rem .35rem;background:none;border:0;text-align:left;color:inherit;cursor:pointer;border-radius:10px;transition:transform .16s ease,background-color .2s ease}.task__main:active{transform:scale(.985);background-color:var(--blush-soft)}.task__box{flex:none;width:22px;height:22px;margin-top:1px;border:1.5px solid var(--sage);border-radius:7px;display:grid;place-items:center;background:var(--parchment);transition:background-color .22s ease,border-color .22s ease}.task__check{width:15px;height:15px;fill:none;stroke:var(--parchment-raised);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:24;transition:stroke-dashoffset .32s ease 60ms}.task--done .task__box{background:var(--gold);border-color:var(--gold)}.task--done .task__check{stroke-dashoffset:0}.task__text{display:block}.task__title{display:block;font-size:.98rem;line-height:1.45;transition:color .22s ease}.task--done .task__title{color:var(--ink-faint);text-decoration:line-through;text-decoration-color:var(--blush);text-decoration-thickness:1px}.task__meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}.chip{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;padding:.18rem .5rem;border-radius:999px;background:var(--sage-soft);color:var(--ink-muted)}.chip--urgent{background:var(--gold-soft);color:var(--gold)}.chip--priority{background:var(--blush);color:var(--ink)}.chip--milestone{background:transparent;border:1px solid var(--rule);color:var(--ink-faint)}.chip--quiet{background:transparent;color:var(--ink-faint);padding-inline:.15rem}.task--done .chip{opacity:.6}.task__details{flex:none;width:40px;background:none;border:0;color:var(--ink-faint);cursor:pointer;display:grid;place-items:center;border-radius:10px}.task__details svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.task__details:active{background:var(--blush-soft)}.sparkle{position:absolute;left:18px;top:22px;width:0;height:0;pointer-events:none}.sparkle__piece{position:absolute;width:5px;height:5px;border-radius:1px;background:var(--gold);opacity:0;animation:sparkle-fly .95s ease-out var(--sparkle-delay) forwards}.sparkle__piece:nth-child(2n){background:var(--blush);border-radius:50%}.sparkle__piece:nth-child(3n){background:var(--sage)}@keyframes sparkle-fly{0%{opacity:0;transform:translate(0) scale(.4) rotate(0)}25%{opacity:1}to{opacity:0;transform:translate(var(--sparkle-x),var(--sparkle-y)) scale(1) rotate(140deg)}}.drawer-layer{position:fixed;inset:0;z-index:20}.drawer__scrim{position:absolute;inset:0;background:#1b2e3c57;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in .22s ease}.drawer{position:absolute;left:0;right:0;bottom:0;max-height:88dvh;overflow-y:auto;margin-inline:auto;max-width:34rem;display:grid;gap:1.25rem;padding:.75rem 1.35rem calc(1.75rem + env(safe-area-inset-bottom));background:var(--parchment-raised);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:0 -18px 44px #1b2e3c2e;animation:drawer-rise .3s cubic-bezier(.22,.8,.3,1)}.drawer__grip{justify-self:center;width:42px;height:4px;border-radius:999px;background:var(--rule)}.drawer__head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.drawer__eyebrow{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--sage)}.drawer__title{margin-top:.3rem;font-size:1.5rem;line-height:1.2}.drawer__close{flex:none;background:none;border:0;color:var(--ink-muted);font-size:.82rem;letter-spacing:.06em;cursor:pointer;padding:.35rem}.segmented{display:flex;gap:.4rem}.segmented__option{flex:1;padding:.6rem .5rem;background:var(--parchment);border:1px solid var(--rule);border-radius:10px;color:var(--ink-muted);font-size:.85rem;cursor:pointer;transition:background-color .2s ease,color .2s ease,border-color .2s ease}.segmented__option--on{background:var(--sage-soft);border-color:var(--sage);color:var(--ink)}.switch{display:flex;align-items:flex-start;gap:.75rem;font-size:.92rem;cursor:pointer}.switch input{margin-top:.2rem;width:18px;height:18px;accent-color:var(--gold)}.switch small{display:block;margin-top:.15rem;color:var(--ink-faint);font-size:.76rem}.drawer__remove{justify-self:start;background:none;border:0;padding:.35rem 0;color:var(--ink-faint);font-size:.8rem;letter-spacing:.06em;text-decoration:underline;text-underline-offset:4px;cursor:pointer}@keyframes drawer-rise{0%{transform:translateY(100%)}}@keyframes fade-in{0%{opacity:0}}.tallies{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-bottom:1.25rem}.tally{text-align:center;padding:.9rem .4rem;background:var(--parchment-raised);border:1px solid var(--rule);border-radius:var(--radius)}.tally__number{display:block;font-family:var(--font-serif);font-size:1.6rem;line-height:1}.tally__label{display:block;margin-top:.35rem;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.tally--yes .tally__number{color:var(--gold)}.tally--no .tally__number{color:var(--ink-faint)}.guest-list{list-style:none;padding:0;margin:0 0 1rem}.guest{display:flex;align-items:center;gap:.6rem;padding:.75rem .15rem;border-bottom:1px solid var(--rule)}.guest__name{flex:1;font-size:.95rem}.guest__name small{display:block;color:var(--ink-faint);font-size:.72rem}.rsvp{flex:none;padding:.35rem .7rem;border-radius:999px;border:1px solid var(--rule);background:var(--parchment-raised);color:var(--ink-muted);font-size:.72rem;letter-spacing:.06em;cursor:pointer;transition:transform .16s ease,background-color .2s ease,color .2s ease}.rsvp:active{transform:scale(.95)}.rsvp--yes{background:var(--gold-soft);border-color:transparent;color:var(--gold)}.rsvp--no{background:var(--blush-soft);border-color:transparent;color:var(--ink-faint)}.guest__remove{flex:none;width:28px;height:28px;border:0;border-radius:50%;background:none;color:var(--ink-faint);font-size:1.1rem;line-height:1;cursor:pointer}.budget-summary{padding:1.35rem 1.25rem;background:var(--parchment-raised);border:1px solid var(--rule);border-radius:var(--radius-lg);margin-bottom:1.1rem}.budget-summary__spent{font-family:var(--font-serif);font-size:1.8rem;line-height:1.1}.budget-summary__spent small{display:block;margin-top:.3rem;font-family:var(--font-sans);font-size:.78rem;letter-spacing:.06em;color:var(--ink-muted)}.meter{margin:1rem 0 .6rem;height:6px;border-radius:999px;background:var(--sage-soft);overflow:hidden}.meter__fill{display:block;height:100%;border-radius:999px;background:var(--sage);transition:width .32s ease}.budget-summary__left{font-size:.8rem;letter-spacing:.06em;color:var(--ink-muted)}.budget-summary__left--over{color:var(--gold)}.budget-list{list-style:none;padding:0;margin:0}.budget-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .15rem;border-bottom:1px solid var(--rule)}.budget-item__label{font-size:.95rem}.budget-item__amounts{display:flex;align-items:center;gap:.5rem}.budget-item input{width:5.5rem;padding:.45rem .55rem;text-align:right;font-size:.88rem}.budget-item__planned{font-size:.78rem;color:var(--ink-faint);white-space:nowrap}.add-row{display:flex;gap:.5rem;margin-top:.9rem}.add-row__party{width:4.25rem;flex:none;text-align:center}.add-row__button{flex:none;padding:.7rem 1.05rem;border:1px solid var(--rule);border-radius:10px;background:var(--blush-soft);color:var(--ink);font-size:.85rem;letter-spacing:.06em;cursor:pointer;transition:transform .16s ease,background-color .2s ease}.add-row__button:active{transform:scale(.96);background:var(--blush)}.bottom-bar{position:fixed;left:0;right:0;bottom:0;z-index:10;display:flex;justify-content:center;gap:.35rem;padding:.6rem .75rem calc(.6rem + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--parchment) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--rule)}.bottom-bar__stop{flex:1;max-width:10rem;padding:.7rem .5rem;border:0;border-radius:999px;background:none;color:var(--ink-muted);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background-color .22s ease,color .22s ease,transform .16s ease}.bottom-bar__stop:active{transform:scale(.96)}.bottom-bar__stop--on{background:var(--blush-soft);color:var(--ink)}.not-found{max-width:34rem;margin-inline:auto;padding:6rem 1.5rem;text-align:center}.not-found h1{font-size:3rem;font-style:italic}.not-found p{margin-top:.75rem;color:var(--ink-muted)}.not-found a{display:inline-block;margin-top:1.5rem;color:var(--ink);font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:underline;text-underline-offset:5px;text-decoration-color:var(--blush)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
