*,*: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{--ivory: #fbf7f1;--paper: #fffcf7;--ink: #232a25;--ink-soft: #5f6b62;--ink-faint: #8d968c;--sage: #93a894;--sage-deep: #5e7463;--sage-wash: #e6ece4;--gold: #ad8949;--gold-wash: #f2e8d5;--rule: #e7dfd3;--wash: #f4efe6;--danger: #a1584f;--serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", "Hoefler Text", Georgia, "Times New Roman", serif;--sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;--radius: 14px;--tabbar-height: 4.25rem;font-family:var(--sans);color-scheme:light;color:var(--ink);background-color:var(--ivory);-webkit-tap-highlight-color:transparent}@media(prefers-color-scheme:dark){:root{--ivory: #151815;--paper: #1c201c;--ink: #f1ebe1;--ink-soft: #a9b1a7;--ink-faint: #7d857c;--sage: #9cb29d;--sage-deep: #b6c8b6;--sage-wash: #26302a;--gold: #cba764;--gold-wash: #33291a;--rule: #2c322c;--wash: #222722;--danger: #d08a80;color-scheme:dark}}body{min-height:100dvh;background-color:var(--ivory);color:var(--ink);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.shell{min-height:100dvh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.9rem 1.25rem .75rem;padding-top:calc(.9rem + env(safe-area-inset-top));background-color:color-mix(in srgb,var(--ivory) 88%,transparent);-webkit-backdrop-filter:saturate(140%) blur(12px);backdrop-filter:saturate(140%) blur(12px);border-bottom:1px solid var(--rule)}.topbar__wordmark{font-family:var(--serif);font-size:1.05rem;letter-spacing:.06em;color:var(--ink);text-decoration:none}.topbar__link{font-size:.74rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-faint);text-decoration:none;transition:color .22s ease}.topbar__link:hover,.topbar__link:focus-visible{color:var(--sage-deep)}.shell__main{flex:1;animation:page-in .42s ease both}.page{max-width:34rem;margin-inline:auto;padding:1.75rem 1.25rem calc(var(--tabbar-height) + 2.5rem + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:1.5rem}.masthead{display:flex;flex-direction:column;gap:.35rem;padding-bottom:1.1rem;border-bottom:1px solid var(--rule)}.masthead__eyebrow,.card__more--quiet,.field__label,.summary__caption,.overview__names{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint)}.masthead__title{font-family:var(--serif);font-size:clamp(2rem,9vw,2.6rem);font-weight:400;line-height:1.1;letter-spacing:-.01em}.masthead__blurb{color:var(--ink-soft);font-size:.94rem;max-width:30ch}.overview{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:1.25rem 0 1.75rem;border-bottom:1px solid var(--rule);animation:page-in .52s ease both}.overview__date{font-family:var(--serif);font-size:clamp(1.6rem,7.5vw,2.15rem);font-weight:400;line-height:1.18;max-width:16ch}.overview__venue{color:var(--ink-soft);font-size:.9rem;font-style:italic}.countdown{display:flex;flex-direction:column;align-items:center;gap:.15rem;margin:1.4rem 0 .4rem;padding:1.1rem 2.25rem;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.countdown__value{font-family:var(--serif);font-size:clamp(3rem,17vw,4.25rem);line-height:1;letter-spacing:-.03em;color:var(--sage-deep)}.countdown__caption{font-size:.72rem;letter-spacing:.19em;text-transform:uppercase;color:var(--ink-faint)}.overview__progress{width:100%;margin-top:1.1rem;display:flex;flex-direction:column;gap:.5rem}.overview__progress-row{display:flex;justify-content:space-between;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.overview__progress-count{color:var(--ink-faint)}.card{background-color:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);padding:1.15rem 1.15rem 1.25rem;display:flex;flex-direction:column;gap:.7rem}.card--rise{animation:rise .56s cubic-bezier(.22,.68,.24,1) both}.card__head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.card__title{font-family:var(--serif);font-size:1.24rem;font-weight:400;letter-spacing:-.005em}.card__more{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage-deep);text-decoration:none;white-space:nowrap;transition:opacity .2s ease}.card__more:active{opacity:.6}.card__lede{color:var(--ink-soft);font-size:.9rem}.card__note{font-size:.84rem;color:var(--ink-faint)}.card__note--gold{color:var(--gold)}.duo{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.stat{display:flex;align-items:baseline;gap:.4rem}.stat__value{font-family:var(--serif);font-size:2.1rem;line-height:1;color:var(--sage-deep)}.stat__label{font-size:.75rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-faint)}.empty{color:var(--ink-soft);font-size:.92rem;font-style:italic;padding:.5rem 0}.summary{display:flex;flex-direction:column;gap:.5rem}.summary--row{flex-direction:row;align-items:center;justify-content:space-between}.pagefoot{display:flex;justify-content:center}.progress{height:4px;border-radius:999px;background-color:var(--sage-wash);overflow:hidden}.progress--slim{height:2px}.progress__fill{display:block;height:100%;border-radius:inherit;background-color:var(--sage);transition:width .62s cubic-bezier(.22,.68,.24,1)}.progress--gold{background-color:var(--gold-wash)}.progress--gold .progress__fill{background-color:var(--gold)}.checklist{display:flex;flex-direction:column}.check{display:flex;align-items:center;gap:.25rem;border-top:1px solid var(--rule);animation:rise .46s cubic-bezier(.22,.68,.24,1) both}.checklist>.check:first-child{border-top:none}.check__hit{flex:1;display:flex;align-items:center;gap:.8rem;padding:.85rem .35rem;margin-inline:-.35rem;border-radius:10px;background:none;border:none;font:inherit;color:inherit;text-align:left;cursor:pointer;transition:background-color .2s ease,transform .16s ease}.check__hit:active{background-color:var(--wash);transform:scale(.988)}.check__box{flex:none;width:22px;height:22px;display:grid;place-items:center;border:1px solid var(--sage);border-radius:50%;transition:background-color .32s ease,border-color .32s ease,transform .32s cubic-bezier(.34,1.56,.64,1)}.check__mark{width:14px;height:14px;fill:none;stroke:var(--paper);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.check__mark path{stroke-dasharray:22;stroke-dashoffset:22;transition:stroke-dashoffset .42s cubic-bezier(.65,0,.35,1) 60ms}.check.is-done .check__box{background-color:var(--sage-deep);border-color:var(--sage-deep);transform:scale(1.06)}.check.is-done .check__mark path{stroke-dashoffset:0}.check.is-milestone .check__box{border-color:var(--gold)}.check.is-milestone.is-done .check__box{background-color:var(--gold);border-color:var(--gold)}.check__text{flex:1;display:flex;flex-direction:column;gap:.1rem;min-width:0}.check__label{font-size:.98rem;transition:color .32s ease,opacity .32s ease}.check.is-milestone .check__label{font-family:var(--serif);font-size:1.05rem}.check.is-done .check__label{color:var(--ink-faint);text-decoration:line-through;text-decoration-color:var(--rule);text-decoration-thickness:1px}.check__detail{font-size:.8rem;color:var(--ink-faint)}.check__meta{flex:none;font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-faint);font-variant-numeric:tabular-nums}.check.is-milestone .check__meta{color:var(--gold)}.check__action{flex:none}.iconbtn{width:30px;height:30px;display:grid;place-items:center;border:none;border-radius:50%;background:none;color:var(--ink-faint);font-size:1.2rem;line-height:1;cursor:pointer;opacity:0;transition:opacity .2s ease,background-color .2s ease,color .2s ease}.check:hover .iconbtn,.check:focus-within .iconbtn{opacity:1}.iconbtn:hover,.iconbtn:focus-visible{opacity:1;background-color:var(--wash);color:var(--danger)}@media(hover:none){.iconbtn{opacity:.45}}.chips{display:flex;gap:.5rem;flex-wrap:wrap}.chip{padding:.4rem .9rem;border:1px solid var(--rule);border-radius:999px;background-color:transparent;color:var(--ink-soft);font:inherit;font-size:.79rem;letter-spacing:.06em;cursor:pointer;transition:background-color .22s ease,color .22s ease,border-color .22s ease,transform .16s ease}.chip:active{transform:scale(.96)}.chip.is-on{background-color:var(--sage-wash);border-color:var(--sage);color:var(--sage-deep)}.timeline{display:flex;flex-direction:column;list-style:none}.timeline__item{position:relative;padding:0 0 2rem 1.6rem;border-left:1px solid var(--rule);animation:rise .56s cubic-bezier(.22,.68,.24,1) both}.timeline__item:last-child{border-left-color:transparent;padding-bottom:0}.timeline__marker{position:absolute;left:-4.5px;top:.45rem;width:8px;height:8px;border-radius:50%;background-color:var(--ivory);border:1px solid var(--sage);transition:background-color .32s ease,border-color .32s ease}.timeline__item.is-complete .timeline__marker{background-color:var(--gold);border-color:var(--gold)}.timeline__body{display:flex;flex-direction:column;gap:.4rem}.timeline__window{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint)}.timeline__title{font-family:var(--serif);font-size:1.4rem;font-weight:400;line-height:1.2}.timeline__blurb{color:var(--ink-soft);font-size:.9rem}.timeline__count{font-size:.78rem;color:var(--ink-faint)}.timeline__list{list-style:none;display:flex;flex-direction:column;gap:.3rem;margin-top:.2rem}.timeline__task{position:relative;padding-left:.9rem;font-size:.9rem;color:var(--ink-soft)}.timeline__task:before{content:"";position:absolute;left:0;top:.62em;width:4px;height:1px;background-color:var(--sage)}.timeline__task.is-milestone{color:var(--gold);font-family:var(--serif);font-size:.98rem}.timeline__task.is-milestone:before{background-color:var(--gold)}.timeline__task--rest,.timeline__clear{font-style:italic;color:var(--ink-faint);font-size:.86rem}.timeline__task--rest:before{display:none}.vendors,.notes{list-style:none;display:flex;flex-direction:column;gap:1rem}.vendor.is-booked{border-left:2px solid var(--sage)}.vendor__head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.vendor__name{font-family:var(--serif);font-size:1.25rem;font-weight:400;line-height:1.2}.vendor__role{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin-top:.15rem}.vendor__contact{font-size:.88rem;color:var(--ink-soft)}.vendor__link{color:var(--sage-deep);text-decoration:none;border-bottom:1px solid var(--sage-wash)}.vendor__due{font-size:.86rem;color:var(--ink-soft);font-variant-numeric:tabular-nums}.vendor__due.is-urgent{color:var(--gold)}.vendor__amount{font-family:var(--serif);font-size:1rem;color:var(--ink)}.vendor__notes{font-size:.86rem;color:var(--ink-soft);padding-top:.6rem;border-top:1px solid var(--rule)}.vendor__toggle{align-self:flex-start;padding:0;border:none;background:none;font:inherit;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage-deep);cursor:pointer}.vendor__form{display:flex;flex-direction:column;gap:.85rem;padding-top:.9rem;border-top:1px solid var(--rule);animation:slide-open .34s cubic-bezier(.22,.68,.24,1) both}.pill{flex:none;padding:.3rem .75rem;border:1px solid var(--rule);border-radius:999px;background:none;font:inherit;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);cursor:pointer;transition:background-color .22s ease,color .22s ease,border-color .22s ease,transform .16s ease}.pill:active{transform:scale(.95)}.pill.is-on{background-color:var(--sage-wash);border-color:var(--sage);color:var(--sage-deep)}.note__titlefield,.note__bodyfield{display:block}.note__title{width:100%;border:none;background:none;font-family:var(--serif);font-size:1.25rem;color:var(--ink);padding:0}.note__body{width:100%;border:none;background:none;font:inherit;font-size:.95rem;color:var(--ink-soft);resize:vertical;padding:0}.note__title::placeholder,.note__body::placeholder{color:var(--ink-faint)}.note__foot{display:flex;align-items:center;justify-content:space-between;padding-top:.7rem;border-top:1px solid var(--rule)}.note__stamp{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}.linkbtn{border:none;background:none;padding:0;font:inherit;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);cursor:pointer;transition:color .2s ease}.linkbtn:hover,.linkbtn:focus-visible{color:var(--danger)}.field{display:flex;flex-direction:column;gap:.35rem}.field--grow{flex:1}.field--time{flex:none;width:7rem}.field__input{width:100%;padding:.6rem .7rem;border:1px solid var(--rule);border-radius:10px;background-color:var(--ivory);color:var(--ink);font:inherit;font-size:.95rem;transition:border-color .22s ease,background-color .22s ease}.field__input:focus{outline:none;border-color:var(--sage);background-color:var(--paper)}.field__input--area{resize:vertical;line-height:1.5}.field-row{display:flex;gap:.75rem}.field-row>.field{flex:1;min-width:0}.composer{gap:.85rem}.inline-add{display:flex;align-items:flex-end;gap:.6rem;padding-top:.9rem;border-top:1px solid var(--rule)}.btn{align-self:flex-start;padding:.62rem 1.15rem;border:1px solid var(--sage-deep);border-radius:999px;background-color:var(--sage-deep);color:var(--paper);font:inherit;font-size:.8rem;letter-spacing:.09em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:transform .16s ease,opacity .22s ease}.btn:active{transform:scale(.96);opacity:.9}.btn:disabled{opacity:.4;cursor:default}.btn--small{padding:.45rem .9rem;font-size:.72rem}.btn--quiet{background-color:transparent;border-color:var(--rule);color:var(--ink-soft)}.btn--danger{background-color:transparent;border-color:var(--danger);color:var(--danger)}.confirm{display:flex;flex-wrap:wrap;gap:.6rem}.tabbar{position:fixed;inset:auto 0 0;z-index:30;background-color:color-mix(in srgb,var(--ivory) 92%,transparent);-webkit-backdrop-filter:saturate(140%) blur(12px);backdrop-filter:saturate(140%) blur(12px);border-top:1px solid var(--rule);padding-bottom:env(safe-area-inset-bottom)}.tabbar__list{max-width:34rem;margin-inline:auto;display:grid;grid-template-columns:repeat(6,1fr);list-style:none}.tab{height:var(--tabbar-height);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.28rem;color:var(--ink-faint);text-decoration:none;transition:color .24s ease,transform .16s ease}.tab:active{transform:scale(.94)}.tab__icon{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;transition:stroke-width .24s ease}.tab__label{font-size:.6rem;letter-spacing:.07em;text-transform:uppercase}.tab.is-active{color:var(--sage-deep)}.tab.is-active .tab__icon{stroke-width:1.8}.celebration{position:fixed;inset:0;z-index:40;pointer-events:none;overflow:hidden}.confetti{position:absolute;top:-8%;width:7px;height:11px;border-radius:1px;background-color:var(--gold);animation-name:confetti-fall;animation-timing-function:cubic-bezier(.3,.5,.5,1);animation-fill-mode:both}.confetti--1{background-color:var(--sage)}.confetti--2{background-color:var(--gold-wash)}.confetti--round{border-radius:50%;width:6px;height:6px}.celebration__toast{position:absolute;left:50%;bottom:calc(var(--tabbar-height) + 1.25rem + env(safe-area-inset-bottom));transform:translate(-50%);max-width:min(22rem,calc(100vw - 2.5rem));padding:.65rem 1.15rem;border:1px solid var(--gold);border-radius:999px;background-color:var(--paper);color:var(--ink);font-family:var(--serif);font-size:.92rem;text-align:center;animation:toast-in 2.6s ease both}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes slide-open{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@keyframes confetti-fall{0%{opacity:0;transform:translateZ(0) rotate(0)}12%{opacity:1}to{opacity:0;transform:translate3d(var(--drift, 0),105vh,0) rotate(var(--spin, 360deg))}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px)}10%,82%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-6px)}}:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--sage-deep);outline-offset:2px;border-radius:6px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.celebration__toast{animation:none}.check__mark path{transition:none}}
