:root{--pine:#1d3b2f;--pine-2:#2c5442;--pine-soft:#e3ece5;--berry:#a3302f;--berry-dark:#8a2726;--berry-soft:#f6e3df;--gold:#b8893b;--gold-soft:#f4e8d0;--paper:#f7f1e6;--card:#fffdf8;--ink:#23201b;--soft:#6f675c;--faint:#9a9184;--line:#e7dcc8;--line-strong:#d9cbb2;--serif:-apple-system, BlinkMacSystemFont, "SF Pro Display", system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--radius:18px;--tabbar-h:64px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--ease-out:cubic-bezier(.23, 1, .32, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);min-height:100dvh;color:var(--ink);font:400 16px/1.45 var(--sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;background-image:radial-gradient(#785a280d 1px,#0000 1px);background-size:5px 5px;margin:0}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation}a{color:inherit}img{max-width:100%;display:block}:focus-visible{outline:2.5px solid var(--gold);outline-offset:2px}.app{max-width:560px;padding:calc(14px + var(--safe-t)) 18px calc(var(--tabbar-h) + 34px + var(--safe-b));margin:0 auto}.app.public{padding-bottom:calc(40px + var(--safe-b))}.topbar{justify-content:space-between;align-items:center;gap:12px;min-height:40px;display:flex}.brand{font:600 15px/1 var(--serif);color:var(--pine);align-items:center;gap:7px;text-decoration:none;display:flex}.back{color:var(--soft);background:0 0;border:0;align-items:center;gap:4px;padding:8px 10px 8px 0;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.back svg{width:18px;height:18px}.display{font-family:var(--serif);letter-spacing:-.025em;color:var(--pine);text-wrap:balance;margin:18px 0 6px;font-size:clamp(32px,9vw,42px);font-weight:700;line-height:1.04}.display em{color:var(--berry);font-style:normal;font-weight:700}.display.sm{font-size:clamp(28px,7.6vw,34px)}.lede{color:var(--soft);text-wrap:pretty;margin:0 0 18px;font-size:15px}.h2{font:600 19px/1.2 var(--serif);color:var(--pine);margin:26px 0 10px}.eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin:24px 0 10px;font-size:11.5px;font-weight:700}.muted{color:var(--soft)}.small{font-size:13px}.serif-num{font-family:var(--serif);color:var(--pine);font-variant-numeric:tabular-nums;font-weight:600}.btn{background:var(--berry);color:#fff;white-space:nowrap;min-height:44px;transition:transform .16s var(--ease-out), background-color .16s;border:0;border-radius:999px;justify-content:center;align-items:center;gap:7px;padding:0 18px;font-size:15px;font-weight:650;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.55;pointer-events:none}.btn.pine{background:var(--pine)}.btn.ghost{color:var(--pine);box-shadow:inset 0 0 0 1.5px var(--line-strong);background:0 0}.btn.quiet{color:var(--soft);background:0 0;padding:0 10px}.btn.danger{color:var(--berry);box-shadow:inset 0 0 0 1.5px var(--berry-soft);background:0 0}.btn.sm{min-height:36px;padding:0 14px;font-size:13.5px}.btn.block{width:100%}.btn svg{flex:none;width:17px;height:17px}@media (hover:hover){.btn:hover{background:var(--berry-dark)}.btn.pine:hover{background:var(--pine-2)}.btn.ghost:hover,.btn.quiet:hover,.btn.danger:hover{background:#00000009}}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.stack{gap:12px;display:grid}.field{gap:6px;display:grid}.field>span{color:var(--soft);font-size:13px;font-weight:650}.input,.textarea{background:var(--card);border:1.5px solid var(--line);border-radius:14px;outline:none;width:100%;min-height:48px;padding:12px 14px;font-size:16px;transition:border-color .15s}.textarea{resize:vertical;min-height:84px}.input:focus,.textarea:focus{border-color:var(--pine-2)}.input::placeholder,.textarea::placeholder{color:var(--faint)}.money{position:relative}.money:before{content:"$";color:var(--faint);font-weight:600;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.money .input{padding-left:28px}.error{color:var(--berry);font-size:14px;font-weight:600}.toggle{background:var(--card);border:1.5px solid var(--line);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.toggle b{font-size:15px;font-weight:650;display:block}.toggle small{color:var(--soft);font-size:13px}.switch{appearance:none;background:var(--line-strong);cursor:pointer;border-radius:99px;flex:none;width:48px;height:28px;transition:background .18s;position:relative}.switch:after{content:"";width:22px;height:22px;transition:transform .22s var(--ease-out);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.switch:checked{background:var(--gold)}.switch:checked:after{transform:translate(20px)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.person{text-align:left;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);width:100%;color:inherit;transition:transform .16s var(--ease-out), border-color .16s;align-items:center;gap:14px;padding:14px 16px;text-decoration:none;display:flex}.person:active{transform:scale(.985)}@media (hover:hover){.person:hover{border-color:var(--line-strong)}}.person .who{flex:1;min-width:0}.person .name{font-size:16px;font-weight:650}.person .meta{color:var(--soft);font-size:13px}.person .count{text-align:right;color:var(--soft);font-size:12px;line-height:1.1}.person .count b{font:600 20px/1.1 var(--serif);color:var(--pine);display:block}.people{gap:10px;display:grid}.orn{--size:44px;width:var(--size);height:var(--size);color:#fff;font:600 calc(var(--size) * .4)/1 var(--serif);background-image:radial-gradient(circle at 30% 28%,#ffffff47,#0000 42%);border-radius:50%;flex:none;place-items:center;margin-top:4px;display:grid;position:relative}.orn:before{content:"";background:var(--gold);border-radius:2px 2px 1px 1px;width:30%;height:7px;position:absolute;top:-5px;left:50%;transform:translate(-50%)}.orn.sm{--size:32px;margin-top:3px}.orn.sm:before{height:5px;top:-4px}.orn.lg{--size:72px}.orn.lg:before{height:9px;top:-7px}.pills{flex-wrap:wrap;gap:8px;margin:4px 0 20px;display:flex}.pill{background:var(--pine);color:#f3e9d2;border-radius:999px;align-items:center;gap:6px;min-height:36px;padding:0 14px;font-size:13.5px;font-weight:650;text-decoration:none;display:inline-flex}.pill.alt{color:var(--pine);box-shadow:inset 0 0 0 1.5px var(--line-strong);background:0 0}.items{gap:12px;display:grid}.item{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);gap:14px;padding:12px;display:flex;position:relative}.item.taken .thumb,.item.taken .item-title,.item.taken .price{opacity:.55}.item.tappable{cursor:pointer;transition:transform .16s var(--ease-out)}.item.tappable:active{transform:scale(.985)}.thumb{background:#f1e9db;border-radius:12px;flex:none;place-items:center;width:84px;height:84px;display:grid;overflow:hidden}.thumb img{object-fit:contain;background:#fff;width:100%;height:100%}.thumb.custom{background:repeating-linear-gradient(135deg,#f3eadb 0 8px,#efe4d1 8px 16px)}.thumb.surprise{background:repeating-linear-gradient(135deg,#f6e3df 0 8px,#f1dad5 8px 16px)}.thumb svg{width:36px;height:36px}.item-body{flex-direction:column;flex:1;min-width:0;display:flex}.item-title{overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:15px;font-weight:650;line-height:1.28;display:-webkit-box;overflow:hidden}.item-meta{color:var(--soft);overflow-wrap:anywhere;margin-top:3px;font-size:13px}.item-details{color:var(--ink);white-space:pre-line;overflow-wrap:anywhere;margin-top:4px;font-size:13px}.price{font:600 16px/1.2 var(--serif);color:var(--pine);font-variant-numeric:tabular-nums;margin-top:6px}.item-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.flag{background:var(--gold);color:#fff;letter-spacing:.07em;text-transform:uppercase;border-radius:6px;padding:4px 8px;font-size:10.5px;font-weight:750;position:absolute;top:-9px;right:14px}.flag.secret{background:var(--pine-2);left:14px;right:auto}.stamp{color:var(--pine-2);background:var(--pine-soft);border-radius:8px;align-items:center;gap:6px;padding:6px 10px;font-size:12.5px;font-weight:700;display:inline-flex}.stamp.mine{color:var(--berry);background:var(--berry-soft)}.stamp svg{flex:none;width:14px;height:14px}.linkish{color:var(--soft);background:0 0;border:0;padding:0;font-size:13px;font-weight:650;text-decoration:none}.empty{text-align:center;border:1.5px dashed var(--line-strong);border-radius:var(--radius);color:var(--soft);padding:34px 20px}.empty svg{width:56px;height:56px;margin:0 auto 10px;display:block}.empty b{font:600 18px/1.2 var(--serif);color:var(--pine);margin-bottom:4px;display:block}.tabbar{left:50%;bottom:calc(10px + var(--safe-b));width:min(100% - 24px,520px);height:var(--tabbar-h);background:var(--pine);z-index:20;border-radius:22px;grid-template-columns:repeat(4,1fr);padding:6px;display:grid;position:fixed;transform:translate(-50%);box-shadow:0 14px 30px -14px #14281e8c}.tabbar a{color:#a9c2b3;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11.5px;font-weight:650;text-decoration:none;transition:color .15s,background .15s;display:flex}.tabbar a svg{width:22px;height:22px}.tabbar a.on{color:#fff;background:#ffffff17}.tabbar .badge{background:var(--berry);color:#fff;border-radius:9px;place-items:center;min-width:17px;height:17px;margin:-18px 0 0 22px;padding:0 4px;font-size:10.5px;display:grid;position:absolute}.tabbar a{position:relative}.scrim{z-index:40;animation:fade .2s var(--ease-out);background:#191e1961;position:fixed;inset:0}.sheet{z-index:41;width:min(100%,560px);max-height:calc(100dvh - 24px - var(--safe-t));overscroll-behavior:contain;background:var(--paper);padding:10px 18px calc(22px + var(--safe-b));animation:rise .32s var(--ease-out);border-radius:24px 24px 0 0;position:fixed;bottom:0;left:50%;overflow-y:auto;transform:translate(-50%);box-shadow:0 -10px 40px -10px #00000040}.sheet .grabber{background:var(--line-strong);border-radius:3px;width:40px;height:5px;margin:0 auto 10px}.sheet-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.sheet-head h3{font:700 22px/1.15 var(--serif);letter-spacing:-.015em;color:var(--pine);margin:0}.icon-btn{width:40px;height:40px;color:var(--soft);background:#0000000d;border:0;border-radius:50%;flex:none;place-items:center;display:grid}.icon-btn svg{width:18px;height:18px}@keyframes rise{0%{transform:translate(-50%,100%)}to{transform:translate(-50%)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (width>=640px){.sheet{animation:pop .26s var(--ease-out);border-radius:24px;max-height:calc(100dvh - 80px);top:50%;bottom:auto;transform:translate(-50%,-50%)}.sheet .grabber{display:none}@keyframes pop{0%{opacity:0;transform:translate(-50%,-48%)scale(.97)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}}.choices{grid-template-columns:1fr 1fr;gap:10px;display:grid}.choice{text-align:left;background:var(--card);border:1.5px solid var(--line);transition:border-color .15s, transform .16s var(--ease-out);border-radius:16px;flex-direction:column;align-items:flex-start;gap:6px;padding:14px;display:flex}.choice:active{transform:scale(.98)}.choice b{font-size:15px;font-weight:650}.choice small{color:var(--soft);font-size:12.5px;line-height:1.35}.choice svg{width:26px;height:26px;color:var(--berry)}.choice.wide{grid-column:1/-1}.storechips{flex-wrap:wrap;gap:8px;display:flex}.result{background:var(--card);border:1px solid var(--line);text-align:left;border-radius:14px;align-items:center;gap:12px;width:100%;padding:10px;display:flex}.result img{object-fit:contain;background:#fff;border-radius:10px;flex:none;width:56px;height:56px}.result .t{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.preview-img{border:1px solid var(--line);background:#fff;border-radius:16px;place-items:center;width:100%;height:200px;display:grid;position:relative;overflow:hidden}.preview-img img{object-fit:contain;width:100%;height:100%}.preview-img .icon-btn{background:#ffffffe6;position:absolute;top:8px;right:8px}.budget{background:var(--pine);color:#eef3ee;border-radius:var(--radius);padding:16px}.budget .big{font:700 30px/1.1 var(--serif);letter-spacing:-.02em;color:#fff;font-variant-numeric:tabular-nums}.bar{background:#ffffff26;border-radius:4px;height:8px;margin:12px 0 8px;overflow:hidden}.bar i{background:var(--gold);height:100%;transition:width .4s var(--ease-out);border-radius:4px;display:block}.bar.over i{background:#e07a6c}.seg{background:#efe6d6;border-radius:999px;grid-auto-flow:column;gap:2px;padding:3px;display:inline-grid}.seg button{color:var(--soft);background:0 0;border:0;border-radius:999px;min-height:32px;padding:6px 11px;font-size:12.5px;font-weight:650;transition:background .15s,color .15s}.seg button.on{background:var(--card);color:var(--pine);box-shadow:0 1px 2px #00000014}.group-head{align-items:center;gap:10px;margin:24px 0 10px;display:flex}.group-head h3{font:600 18px/1.2 var(--serif);color:var(--pine);flex:1;margin:0}.reveal{text-align:center;background:var(--pine);color:#f3e9d2;background-image:radial-gradient(circle at 20% 10%,#ffffff14,#0000 40%),radial-gradient(circle at 85% 90%,#b8893b40,#0000 45%);border-radius:22px;padding:34px 20px;position:relative;overflow:hidden}.reveal .who{font:700 40px/1.05 var(--serif);letter-spacing:-.025em;color:#fff;margin:12px 0 6px}.reveal .cover{background:var(--berry);color:#fff;font:600 20px/1.2 var(--serif);transition:transform .6s var(--ease-out);background-image:repeating-linear-gradient(90deg, transparent 0 46%, var(--gold) 46% 54%, transparent 54%), repeating-linear-gradient(0deg, transparent 0 46%, var(--gold) 46% 54%, transparent 54%);border:0;place-items:center;display:grid;position:absolute;inset:0}.reveal .cover span{background:var(--berry);border-radius:12px;padding:10px 16px}.reveal .cover.open{transform:translateY(-101%)}.checks{gap:8px;display:grid}.check{background:var(--card);border:1.5px solid var(--line);border-radius:14px;align-items:center;gap:12px;padding:10px 14px;display:flex}.check input{width:22px;height:22px;accent-color:var(--pine)}.toast{left:50%;bottom:calc(var(--tabbar-h) + 24px + var(--safe-b));z-index:60;background:var(--ink);color:#fff;animation:toast .26s var(--ease-out);text-align:center;border-radius:12px;max-width:calc(100% - 32px);padding:11px 16px;font-size:14px;font-weight:600;position:fixed;transform:translate(-50%);box-shadow:0 10px 30px -10px #0006}@keyframes toast{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.hero-art{margin:28px 0 8px}.hero-art svg{width:100%;height:auto;max-height:180px}.members{flex-wrap:wrap;gap:6px;margin:18px 0 22px;display:flex}.spin{border:2.5px solid;border-right-color:#0000;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{border-radius:var(--radius);background:linear-gradient(90deg,#efe6d6 0%,#f6efe2 50%,#efe6d6 100%) 0 0/200% 100%;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.divider{background:var(--line);border:0;height:1px;margin:22px 0}.copyrow{gap:8px;display:flex}.copyrow .input{color:var(--soft);text-overflow:ellipsis;font-size:16px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important}}
