:root{--cream:#fbf6ee;--surface:#fff;--surface-muted:#f3ebdd;--surface-dashed:#f5eedf;--border:#e7dccb;--border-row:#f0e7d8;--border-strong:#8c7b68;--ink:#2b2118;--ink-soft:#4a3d31;--muted:#6b5d50;--chip-muted-text:#5b4e42;--pine:#1f4d3a;--pine-tint:#dde9e1;--berry:#b3262e;--berry-tint:#f6dadb;--berry-tint-text:#8f1d25;--gold:#f0dda8;--on-pine-muted:#e9e2d2;--warn-bg:#fff1cc;--warn-border:#b7791f;--warn-text:#5c3b00;--cell-disabled:#ede4d3;--font-heading:"Fraunces", Georgia, serif;--font-body:"DM Sans", system-ui, sans-serif;--radius-card:16px;--radius-input:12px;--radius-button:14px;--radius-chip:10px;--radius-pill:14px;--tap:44px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--cream);color:var(--ink);font-family:var(--font-body);margin:0;font-size:15px;line-height:1.4}a{color:var(--pine)}a:hover{color:var(--berry)}:focus-visible{outline:3px solid var(--pine);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.page{flex-direction:column;max-width:480px;min-height:100vh;margin:0 auto;padding-bottom:24px;display:flex}.content{flex-direction:column;gap:12px;padding:16px 16px 0;display:flex}.content--form{gap:10px;padding:16px 20px 0}.band{background:var(--pine);color:#fff;border-radius:0 0 28px 28px;flex-direction:column;gap:10px;padding:18px 20px 24px;display:flex;position:relative;overflow:hidden}.band--tall{border-radius:0 0 32px 32px;padding-bottom:26px}.band--roomy{gap:14px}.band__top{justify-content:space-between;align-items:center;display:flex}.band__brand{color:var(--gold);letter-spacing:.04em;align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.band__aside{color:var(--on-pine-muted);font-size:13px}.band__snow{background:#ffffff52;border-radius:50%;position:absolute}.band__eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--gold);font-size:12px;font-weight:700}.band__title{font-family:var(--font-heading);color:#fff;overflow-wrap:anywhere;margin:0;font-size:30px;font-weight:700;line-height:1.1}.band--tall .band__title{font-size:34px;line-height:1.08}.band__facts{color:var(--on-pine-muted);margin:0;font-size:14px}.band__stack{flex-direction:column;gap:6px;display:flex}.band__stack--tight{gap:4px;margin-top:8px}.band__pills{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.pill{background:var(--gold);color:var(--ink);border-radius:var(--radius-pill);align-self:flex-start;padding:4px 12px;font-size:13px;font-weight:700}.chip{border-radius:var(--radius-chip);white-space:nowrap;padding:3px 10px;font-size:12px;font-weight:700}.chip--wishlist{background:var(--pine-tint);color:var(--pine)}.chip--joined{background:var(--surface-muted);color:var(--chip-muted-text)}.chip--invited{border:1.5px dashed var(--border-strong);color:var(--chip-muted-text);padding:1px 9px}.card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-card);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.card__label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:700}.card__title{font-family:var(--font-heading);margin:0;font-size:18px}.card--note{color:var(--ink-soft);overflow-wrap:anywhere;padding:10px 14px;font-size:14px;display:block}.card--note strong{color:var(--ink)}.divider-heading{font-family:var(--font-heading);align-items:center;gap:10px;margin-top:2px;font-size:17px;font-weight:700;display:flex}.divider-heading:after{content:"";background:var(--border);flex:1;height:1.5px}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field label,.label{font-size:13px;font-weight:700}.input{height:var(--tap);border:1.5px solid var(--border-strong);border-radius:var(--radius-input);width:100%;font:inherit;background:var(--surface);color:var(--ink);padding:0 14px;font-size:15px}.input::placeholder{color:#8a7c6e}@supports (-webkit-touch-callout:none){.input[type=date]{appearance:none;min-width:0;line-height:calc(var(--tap) - 3px);display:block}.input[type=date]::-webkit-date-and-time-value{text-align:left;margin:0}}textarea.input{resize:vertical;height:60px;padding:10px 14px}.input[aria-invalid=true]{border-color:var(--berry)}.field__error{color:var(--berry);font-size:13px;font-weight:500}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.checkbox{min-height:var(--tap);align-items:center;gap:10px;font-size:14px;display:flex}.checkbox input{width:22px;height:22px;accent-color:var(--pine);margin:0}.btn{min-height:var(--tap);border-radius:var(--radius-input);font:inherit;cursor:pointer;border:none;justify-content:center;align-items:center;gap:10px;padding:0 18px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.6;cursor:default}.btn--primary{background:var(--pine);color:#fff}.btn--main{background:var(--berry);color:#fff}.btn--primary:hover,.btn--main:hover{color:#fff}.btn--secondary{color:var(--pine);border:1.5px solid var(--pine);background:0 0}.btn--block{border-radius:var(--radius-button);width:100%;height:52px;font-size:16px}.linkbox{align-items:center;gap:8px;display:flex}.linkbox__value{min-width:0;height:var(--tap);background:var(--surface-muted);border-radius:var(--radius-input);color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;flex:1;align-items:center;padding:0 12px;font-size:13px;display:flex;overflow:hidden}.linkbox__value span{text-overflow:ellipsis;overflow:hidden}.people{gap:0;padding:6px 14px 4px}.people__head{justify-content:space-between;align-items:center;min-height:40px;display:flex}.people__count{color:var(--muted);font-size:13px}.people ul{margin:0;padding:0;list-style:none}.person{border-top:1.5px solid var(--border-row);align-items:center;gap:12px;min-height:46px;display:flex}.person__name{overflow-wrap:anywhere;flex:1;min-width:0}.avatar{background:var(--pine-tint);width:32px;height:32px;color:var(--pine);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.avatar--alt{background:var(--berry-tint);color:var(--berry-tint-text)}.row-card{flex-direction:row;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px}.row-card__text{flex-direction:column;gap:2px;display:flex}.row-card__sub{color:var(--muted);font-size:13px}.alert{border-radius:var(--radius-input);background:var(--berry-tint);color:var(--berry-tint-text);padding:10px 14px;font-size:14px;font-weight:500}.muted{color:var(--muted)}.center-note{text-align:center;color:var(--muted);margin:4px 0 0;font-size:14px}.skeleton{border-radius:var(--radius-card);background:var(--surface-muted);min-height:80px;animation:1.4s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.55}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.surprise-card{min-height:var(--tap);background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-button);align-items:center;gap:10px;padding:0 14px;font-size:14px;display:flex}.surprise-card input{width:22px;height:22px;accent-color:var(--pine);flex-shrink:0;margin:0}.items{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.tag{background:var(--surface);border:1.5px solid var(--border);border-radius:6px 18px 18px;flex-direction:column;gap:3px;min-width:0;padding:12px 14px 4px 40px;display:flex;position:relative}.tag:before{content:"";background:var(--cream);border:1.5px solid #cdbfa8;border-radius:50%;width:12px;height:12px;position:absolute;top:14px;left:14px}.tag--static{padding-bottom:12px}.tag__head{justify-content:space-between;gap:8px;font-weight:700;display:flex}.tag__title{overflow-wrap:anywhere;min-width:0}.tag__price{color:var(--pine);flex:none}.tag__price--over{color:var(--warn-text)}.tag__body{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.tag__link{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;text-decoration:none;overflow:hidden}a.tag__link:hover{color:var(--pine);text-decoration:underline}.tag__image{object-fit:cover;background:var(--surface-muted);border-radius:10px;flex:none;width:44px;height:44px}.tag__actions{align-items:center;gap:4px;margin-left:-12px;display:flex}.tag__actions .spacer{flex:1}.chip--warn{background:var(--warn-bg);color:var(--warn-text);border:1.5px solid var(--warn-border);align-self:flex-start;padding:1px 9px}.link-btn{min-height:var(--tap);color:var(--pine);font:inherit;cursor:pointer;background:0 0;border:none;padding:0 12px;font-size:13px;font-weight:700;text-decoration:underline}.link-btn--danger{color:var(--berry)}.icon-btn{width:var(--tap);height:var(--tap);color:var(--pine);border-radius:var(--radius-input);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:disabled{color:#b9ab98;cursor:default}.icon-btn:not(:disabled):hover{background:var(--surface-muted)}.add-card{background:var(--surface-dashed);border:1.5px dashed var(--border-strong);border-radius:var(--radius-card);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.add-card__title{font-family:var(--font-heading);margin:0;font-size:17px;font-weight:700}.grid-link-price{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:8px;display:grid}.btn--save{height:48px;font-size:15px}.form-actions{gap:8px;display:flex}.form-actions>*{flex:1}.band--compact{gap:6px;padding-top:6px;padding-bottom:20px}.band__back{min-height:var(--tap);color:var(--gold);align-items:center;font-size:14px;font-weight:700;text-decoration:none;display:flex}.band__back:hover{color:#fff}.band__badge{color:var(--gold);border:1.5px solid var(--gold);border-radius:12px;padding:2px 10px;font-size:12px;font-weight:700}.grid-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-card);padding:10px;overflow-x:auto}.xgrid{align-items:center;gap:4px;display:grid}.xgrid__corner{color:var(--muted);align-self:end;font-size:10px;line-height:1.1}.xgrid__col,.xgrid__row{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:700;overflow:hidden}.xgrid__col{text-align:center;align-self:end}.xgrid__row{background:var(--surface);position:sticky;left:0}.cell{height:var(--tap);min-width:var(--tap);border:1.5px dashed var(--border-strong);background:var(--surface);color:#fff;font:inherit;cursor:pointer;border-radius:10px;padding:0;font-size:18px;font-weight:700}.cell--blocked{border:1.5px solid var(--berry);background:var(--berry)}.cell--self{border:1.5px solid var(--border);background:var(--cell-disabled);cursor:default}.cell:not(:disabled):hover{border-color:var(--pine)}.cell--blocked:not(:disabled):hover{border-color:var(--berry-tint-text)}.option-row{align-items:center;gap:10px;min-height:44px;font-size:14px;display:flex}.option-row input{width:22px;height:22px;accent-color:var(--pine);flex-shrink:0;margin:0}.picker{flex-wrap:wrap;gap:8px;display:flex}.picker__person{min-height:var(--tap);border:1.5px solid var(--border-strong);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;border-radius:22px;padding:0 14px;font-size:14px;font-weight:500}.picker__person[aria-pressed=true]{background:var(--pine);border-color:var(--pine);color:#fff}.verdict{color:var(--pine);align-items:flex-start;gap:8px;font-size:13px;font-weight:700;display:flex}.verdict svg{flex:none;margin-top:1px}.verdict--bad{color:var(--berry)}.dialog-backdrop{z-index:10;background:#2b211873;justify-content:center;align-items:flex-end;padding:16px;display:flex;position:fixed;inset:0}.dialog{background:var(--cream);border-radius:20px;flex-direction:column;gap:12px;width:100%;max-width:448px;padding:20px;display:flex}.dialog__title{font-family:var(--font-heading);margin:0;font-size:20px}.dialog__body{color:var(--ink-soft);margin:0}@media (width>=600px){.dialog-backdrop{align-items:center}}.people__head-aside{align-items:center;gap:4px;display:flex}.people__head-aside .link-btn{margin-right:-12px}.add-person{border-top:1.5px solid var(--border-row);flex-direction:column;gap:8px;padding:10px 0 8px;display:flex}.drawn-card .row-card__text strong{font-family:var(--font-heading);font-size:18px}.reveal{text-align:center;flex-direction:column;align-items:center;gap:4px;padding:14px 0 4px;display:flex}.reveal__lead{color:var(--on-pine-muted);font-size:14px}.reveal__name{font-family:var(--font-heading);color:#fff;overflow-wrap:anywhere;margin:0;font-size:60px;font-weight:700;line-height:1.05}.reveal .band__pills{justify-content:center;margin-top:8px}.band--reveal{padding-bottom:28px}.update-note{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-button);align-items:center;gap:10px;padding:8px 12px;font-size:14px;display:flex}.badge-new{color:#fff;background:var(--berry);border-radius:10px;padding:2px 9px;font-size:12px;font-weight:700}.section-title{font-family:var(--font-heading);overflow-wrap:anywhere;margin:4px 0 0;font-size:20px}.gtag{background:var(--surface);border:1.5px solid var(--border);border-radius:6px 18px 18px;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px 12px 40px;display:flex;position:relative}.gtag:before{content:"";background:var(--cream);border:1.5px solid #cdbfa8;border-radius:50%;width:12px;height:12px;position:absolute;top:14px;left:14px}.gtag__text{flex-direction:column;gap:4px;min-width:0;display:flex}.gtag__title{overflow-wrap:anywhere;font-weight:700}.gtag__price{color:var(--pine);font-size:13px;font-weight:700}.gtag__end{flex-shrink:0;align-items:center;gap:8px;display:flex}.note-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-card);margin:0;padding:14px}.link-card{justify-content:space-between}@media (prefers-reduced-motion:no-preference){.band--falling .band__snow{animation:9s linear infinite snowfall}.band--falling .band__snow:nth-child(2n){animation-duration:12s;animation-delay:-4s}.band--falling .band__snow:nth-child(3n){animation-duration:10s;animation-delay:-7s}@keyframes snowfall{0%{opacity:0;transform:translateY(-40px)}15%{opacity:1}to{opacity:0;transform:translate(-18px,220px)}}.reveal__name{animation:.7s cubic-bezier(.2,.9,.3,1.2) .15s both unwrap}.reveal .band__pills{animation:.4s ease-out .65s both fade-up}@keyframes unwrap{0%{opacity:0;filter:blur(6px);transform:scale(.4)rotate(-6deg)}to{opacity:1;filter:none;transform:none}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}}.confetti{pointer-events:none;z-index:20;position:fixed;inset:0;overflow:hidden}.confetti span{border-radius:2px;width:8px;height:12px;animation:1.1s cubic-bezier(.15,.6,.4,1) both confetti;position:absolute;top:55%;left:50%}@keyframes confetti{0%{opacity:1;transform:translate(-50%)rotate(0)}to{transform:translate(var(--x), var(--y)) rotate(var(--r));opacity:0}}}.stack{flex-direction:column;gap:10px;display:flex}.content--tight{gap:10px;padding-top:14px}.band__title--sub{font-size:28px}.saved{gap:4px;padding:12px 14px 6px}.saved__list{margin:0;padding:0;list-style:none}.saved__row{border-top:1.5px solid var(--border-row);align-items:center;gap:4px;display:flex}.saved__row:first-child{border-top:none}.saved__link{min-width:0;min-height:var(--tap);color:var(--ink);flex-direction:column;flex:1;justify-content:center;padding:8px 0;text-decoration:none;display:flex}.saved__link:hover .saved__name{color:var(--berry)}.saved__name{color:var(--pine);overflow-wrap:anywhere;font-weight:700}.saved__meta{color:var(--muted);font-size:13px}.layout,.layout--interleave .layout__main,.layout--interleave .layout__side{display:contents}.layout--form .layout__main,.layout--form .layout__side{flex-direction:column;gap:10px;display:flex}.m-first,.layout__side--first{order:-1}.desk-only{display:none}@media (width>=900px){.page{--desk:1080px;max-width:none;padding-bottom:56px}.page--medium{--desk:760px}.page--narrow{--desk:560px}.band{padding:22px max(32px, calc((100% - var(--desk)) / 2 + 32px)) 34px;border-radius:0 0 40px 40px;gap:12px}.band--tall{padding-bottom:44px}.band--compact{padding-top:10px;padding-bottom:28px}.band__title{font-size:40px}.band--tall .band__title{font-size:46px}.band__title--sub{font-size:34px}.band__facts{font-size:15px}.content,.content--form,.content--tight{width:100%;max-width:calc(var(--desk) + 64px);gap:14px;margin:0 auto;padding:28px 32px 0}.layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:24px;display:grid}.page--narrow .layout{grid-template-columns:minmax(0,1fr)}.layout--interleave .layout__main,.layout--interleave .layout__side{flex-direction:column;gap:12px;display:flex}.layout__side{position:sticky;top:24px}.m-first,.layout__side--first{order:0}.desk-only{display:block}.items--grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}}
