:root{--bg: #fff8f1;--bg-dots: #ffe3d3;--surface: #ffffff;--surface-2: #fff3ea;--text: #3a2440;--muted: #8a7690;--line: #f1dfd6;--brand: #ff6b6b;--brand-ink: #ffffff;--brand-soft: #ffe1e1;--accent: #20c997;--accent-soft: #d3f9ec;--gold: #fab005;--gold-soft: #fff3bf;--danger: #e03131;--shadow: 0 1px 2px rgba(58, 36, 64, .06), 0 8px 24px -12px rgba(58, 36, 64, .25);--radius: 18px;--font: ui-rounded, "SF Pro Rounded", "Nunito", "Quicksand", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #1d1522;--bg-dots: #2a1f31;--surface: #2a2030;--surface-2: #33283a;--text: #f6ecf8;--muted: #b6a3bc;--line: #3f3246;--brand: #ff8787;--brand-ink: #2a1016;--brand-soft: #4a2a33;--accent: #38d9a9;--accent-soft: #1f4038;--gold: #ffd43b;--gold-soft: #4a3f1a;--danger: #ff6b6b;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 30px -14px rgba(0, 0, 0, .7);color-scheme:dark}}:root[data-theme=dark]{--bg: #1d1522;--bg-dots: #2a1f31;--surface: #2a2030;--surface-2: #33283a;--text: #f6ecf8;--muted: #b6a3bc;--line: #3f3246;--brand: #ff8787;--brand-ink: #2a1016;--brand-soft: #4a2a33;--accent: #38d9a9;--accent-soft: #1f4038;--gold: #ffd43b;--gold-soft: #4a3f1a;--danger: #ff6b6b;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 30px -14px rgba(0, 0, 0, .7);color-scheme:dark}*{box-sizing:border-box}h1,h2{font-weight:800}h3,h4{font-weight:700}html{-webkit-text-size-adjust:100%;scrollbar-gutter:stable}body{margin:0;min-height:100vh;display:flex;flex-direction:column;font-family:var(--font);color:var(--text);background-color:var(--bg);background-image:linear-gradient(90deg,transparent calc(50% - 640px),var(--bg) calc(50% - 560px),var(--bg) calc(50% + 560px),transparent calc(50% + 640px)),radial-gradient(var(--bg-dots) 1.6px,transparent 1.6px);background-size:100% 100%,26px 26px;background-attachment:fixed,scroll;line-height:1.45}a{color:inherit}button,input{font:inherit;color:inherit}img{max-width:100%;display:block}.boot{font-size:64px;text-align:center;padding-top:30vh;animation:wiggle 1.2s ease-in-out infinite}.wrap{width:100%;max-width:1040px;margin:0 auto;padding:0 16px 80px}.narrow{max-width:520px}.wrap.medium{max-width:792px}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));background:color-mix(in srgb,var(--bg) 85%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.topbar .title{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.15rem;text-decoration:none;min-width:0}.topbar .title span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .spacer{flex:1}.big-emoji{font-size:1.6rem;line-height:1}.hero{text-align:center;padding:56px 0 24px}.hero .logo{font-size:72px;display:inline-block;animation:wiggle 3s ease-in-out infinite}.hero h1{font-size:clamp(2rem,6vw,3rem);margin:8px 0 6px;letter-spacing:-.02em}.hero p{color:var(--muted);margin:0 auto;max-width:30em;font-size:1.05rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card+.card{margin-top:16px}.card h2{margin:0 0 4px;font-size:1.2rem}.card .sub{color:var(--muted);margin:0 0 16px;font-size:.95rem}.stack{display:grid;gap:12px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.grow{flex:1;min-width:0}label.field{display:grid;gap:6px;font-weight:700;font-size:.92rem}label.field small{font-weight:500;color:var(--muted)}input[type=text],input[type=password],input[type=url],input[type=search]{width:100%;padding:12px 14px;border-radius:12px;border:2px solid var(--line);background:var(--surface-2);outline:none;transition:border-color .15s,background .15s}input:focus{border-color:var(--brand);background:var(--surface)}input::placeholder{color:var(--muted);opacity:.8}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 18px;border-radius:999px;border:2px solid transparent;background:var(--brand);color:var(--brand-ink);font-weight:700;cursor:pointer;text-decoration:none;white-space:nowrap;transition:transform .08s ease,filter .15s,background .15s;-webkit-tap-highlight-color:transparent}.btn:hover{filter:brightness(1.05)}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.55;cursor:default;transform:none}.btn.ghost{background:transparent;color:var(--text);border-color:var(--line)}.btn.ghost:hover{background:var(--surface-2)}.btn.soft{background:var(--brand-soft);color:var(--text)}.btn.green{background:var(--accent);color:#0b2b22}.btn.outline{background:var(--surface);color:var(--text);border-color:var(--line)}.btn.outline:hover{background:var(--brand-soft);border-color:color-mix(in srgb,var(--brand) 40%,transparent);filter:none}.btn.text{background:transparent;color:var(--muted);border-color:transparent}.btn.text:hover{color:var(--text);background:var(--surface-2);filter:none}.btn.danger{background:transparent;color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,transparent)}.btn.small{padding:7px 12px;font-size:.88rem}button:focus:not(:focus-visible),a:focus:not(:focus-visible){outline:none}button:focus-visible,a:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.btn.block{width:100%}.btn.icon{padding:8px;width:38px;height:38px;border-radius:50%}.link{background:none;border:0;padding:0;color:var(--brand);font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.tabs{display:flex;gap:6px;background:var(--surface-2);padding:5px;border-radius:999px;margin-bottom:18px}.tabs button{flex:1;border:0;background:transparent;padding:9px 12px;border-radius:999px;font-weight:700;cursor:pointer;color:var(--muted)}.tabs button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.emoji-pick{display:flex;flex-wrap:wrap;gap:6px}.emoji-pick button{font-size:1.35rem;width:44px;height:44px;border-radius:12px;cursor:pointer;border:2px solid var(--line);background:var(--surface-2);transition:transform .1s}.emoji-pick button:hover{transform:scale(1.08)}.emoji-pick button.on{border-color:var(--brand);background:var(--brand-soft);transform:scale(1.08)}.emoji-pick button.neutral{color:var(--muted);opacity:.85}.project-link{display:flex;align-items:center;gap:14px;padding:14px;border-radius:14px;text-decoration:none;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);transition:border-color .15s,transform .1s}.project-link .group-emoji{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--surface-2);font-size:1.4rem;flex:none}.new-group{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:12px;padding:16px;border:2px dashed color-mix(in srgb,var(--brand) 40%,transparent);border-radius:14px;background:none;color:var(--muted);font:inherit;font-weight:700;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.new-group:hover{color:var(--text);border-color:var(--brand);background:color-mix(in srgb,var(--brand) 5%,transparent)}.project-link:hover{border-color:var(--brand);transform:translateY(-1px)}.project-link .big-emoji{font-size:2rem}.project-link b{display:block}.project-link small{color:var(--muted)}.avatar{--c: var(--brand);display:inline-grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;font-size:1.3rem;line-height:1;background:color-mix(in srgb,var(--c) 22%,var(--surface));box-shadow:inset 0 0 0 3px var(--c)}.avatar.lg{width:64px;height:64px;font-size:2.1rem}.avatar.sm{width:26px;height:26px;font-size:.9rem;box-shadow:inset 0 0 0 2px var(--c)}button.avatar{border:0;cursor:pointer;padding:0}.people{display:flex;gap:10px;overflow-x:auto;padding:16px 2px 14px;scrollbar-width:none;scroll-snap-type:x proximity}.people::-webkit-scrollbar{display:none}.people{--fade-l: 0px;--fade-r: 0px;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 var(--fade-l),#000 calc(100% - var(--fade-r)),transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 var(--fade-l),#000 calc(100% - var(--fade-r)),transparent 100%)}.people.more-left{--fade-l: 24px}.people.more-right{--fade-r: 24px}@media(max-width:600px){.people{margin-inline:-16px;padding-inline:16px;scroll-padding-inline:16px}}.people-wrap{position:relative}.group-tabs{display:flex;gap:4px;margin:14px 0 4px;border-bottom:1px solid var(--line)}.tab{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;margin-bottom:-1px;border:0;border-bottom:3px solid transparent;background:none;font:inherit;font-weight:700;font-size:.95rem;color:var(--muted);text-decoration:none;cursor:pointer;white-space:nowrap}.tab:hover{color:var(--text)}.tab.on{color:var(--text);border-bottom-color:var(--brand);font-weight:800}.tab-count{font-size:.75rem;font-weight:700;padding:1px 7px;border-radius:999px;background:var(--surface-2);color:var(--muted)}.tab.on .tab-count{background:var(--brand-soft);color:var(--text)}@media(max-width:520px){.group-tabs{gap:0}.tab{flex:1 1 0;min-width:0;justify-content:center;padding:10px 2px;font-size:.86rem;gap:5px}.tab-count{padding:1px 6px}}.people-arrow{position:absolute;top:50%;z-index:3;transform:translateY(-50%);display:none;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--text);box-shadow:var(--shadow);cursor:pointer}.people-arrow:hover{color:var(--brand);border-color:var(--brand)}.people-arrow.left{left:-6px}.people-arrow.right{right:-6px}@media(hover:hover)and (pointer:fine){.people-arrow{display:grid}.people.more-left{--fade-l: 56px}.people.more-right{--fade-r: 56px}}.person{display:flex;flex-direction:column;align-items:center;gap:6px;flex:none;width:var(--person-w);padding:10px 4px 8px;border-radius:16px;text-decoration:none;scroll-snap-align:start;border:2px solid transparent;transition:background .15s,border-color .15s}.person:hover{background:var(--surface)}.person.on{background:var(--surface);border-color:var(--brand);box-shadow:var(--shadow)}.person .name{font-weight:700;font-size:.88rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person .count{font-size:.75rem;color:var(--muted);margin-top:-4px}.person .avatar{width:50px;height:50px;font-size:1.6rem;background:var(--surface);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--c) 70%,transparent)}.people{--person-w: 108px}@media(max-width:600px){.people{--person-w: clamp(84px, calc((100vw - 16px - 30px) / 3.5), 120px)}}@media(min-width:720px){.people{--person-w: 128px}}.person.special{width:auto;min-width:var(--person-w);padding-inline:12px}.person.special .avatar{box-shadow:inset 0 0 0 3px var(--line);background:var(--surface-2)}.list-head{display:flex;align-items:center;gap:14px;margin:18px 0;flex-wrap:wrap;min-height:38px}.list-head h1{margin:0;font-size:clamp(1.4rem,4vw,1.9rem);letter-spacing:-.01em}.list-head p{margin:0;color:var(--muted)}.list-head .grow>p:first-child:not(:only-child){color:var(--text);font-weight:700}.spoiler-toggle{display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:8px 14px 8px 8px;border-radius:999px;background:var(--surface);border:2px solid var(--line);font-weight:700;font-size:.92rem}.spoiler-toggle .knob{width:42px;height:24px;border-radius:999px;background:var(--line);position:relative;transition:background .2s}.spoiler-toggle .knob:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--surface);transition:transform .2s;box-shadow:0 1px 3px #00000040}.spoiler-toggle.on{border-color:var(--accent)}.spoiler-toggle.on .knob{background:var(--accent)}.spoiler-toggle.on .knob:after{transform:translate(18px)}.spoiler-toggle{white-space:nowrap}.spoiler-toggle.compact{gap:8px;height:36px;padding:0 12px 0 6px;font-size:.88rem}.spoiler-toggle.compact .knob{width:34px;height:20px}.spoiler-toggle.compact .knob:after{top:3px;left:3px;width:14px;height:14px}.spoiler-toggle.compact.on{background:var(--accent-soft)}.spoiler-toggle.compact.on .knob:after{transform:translate(14px)}@media(max-width:480px){.spoiler-toggle.compact{padding:0;width:36px;height:36px;justify-content:center}.spoiler-toggle.compact .knob{display:none}.spoiler-toggle.compact.on{background:var(--accent);color:#0b2b22}}.list-head .claims-note{font-size:.85rem;margin-top:2px;line-height:1.5}.claims-note svg{display:inline;vertical-align:-2px;margin-right:5px}.claims-note span[aria-hidden]{margin:0 6px}.link-muted{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.link-muted:hover{color:var(--text)}.tip{display:flex;align-items:flex-start;gap:10px;margin:-6px 0 16px;padding:10px 10px 10px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--line);color:var(--muted);font-size:.9rem;line-height:1.5}.tip span{flex:1}.tip-close{flex:none;display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:50%;background:none;color:var(--muted);cursor:pointer}.tip-close:hover{background:var(--surface-2);color:var(--text)}.hint{display:flex;gap:12px;align-items:center;padding:12px 16px;border-radius:14px;background:var(--gold-soft);margin-bottom:18px;font-size:.95rem}.hint .big-emoji{font-size:1.5rem}.add{background:var(--surface);border:2px dashed color-mix(in srgb,var(--brand) 50%,var(--line));border-radius:var(--radius);padding:14px;margin-bottom:22px}.add .main{display:flex;gap:8px}.add .extra{display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-top:10px}.add .opts{display:flex;gap:8px;margin-top:10px;align-items:center;flex-wrap:wrap}@media(max-width:560px){.add .extra{grid-template-columns:1fr}}.chip-toggle{border:2px solid var(--line);background:var(--surface-2);border-radius:999px;padding:6px 12px;font-weight:700;cursor:pointer;font-size:.88rem}.chip-toggle.on{border-color:var(--gold);background:var(--gold-soft)}.gifts{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}@media(max-width:520px){.gifts{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}.gift{position:relative;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;animation:pop .3s ease both}.gift .pic{aspect-ratio:4 / 3;background:var(--surface-2);display:grid;place-items:center;overflow:hidden}.gift .pic img{width:100%;height:100%;object-fit:contain;background:#fff}.gift .pic .ph{color:var(--muted);opacity:.35;display:grid;place-items:center}.gift .pic:has(.ph){background:color-mix(in srgb,var(--muted) 7%,var(--surface))}.gift .body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:8px;flex:1}.gift .t{font-weight:700;font-size:1rem;word-break:break-word}.gift .shop{align-self:flex-start;display:inline-flex;gap:4px;align-items:center;max-width:100%;font-size:.8rem;font-weight:700;padding:3px 10px;border-radius:999px;text-decoration:none;background:var(--surface-2);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gift .shop:hover{color:var(--brand)}.gift .foot{margin-top:auto;display:flex;flex-direction:column;gap:8px;padding-top:4px}.gift .foot:empty{display:none}.gift .actions{display:flex;gap:6px;flex-wrap:wrap}.gift .actions .btn{flex:1;padding-left:8px;padding-right:8px}.gift .badge-top{position:absolute;top:10px;left:10px;z-index:2;background:var(--gold);color:#3b2b00;font-weight:700;font-size:.75rem;padding:3px 9px;border-radius:999px;box-shadow:0 2px 6px #00000026}.gift .status{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:700;padding:7px 10px;border-radius:12px;background:var(--surface-2)}.gift .status{background:none;padding:0;border-radius:0;color:var(--muted);font-weight:600;min-height:36px}.gift .status.mine{color:var(--brand);font-weight:700}.gift.bought .status.mine{color:color-mix(in srgb,var(--accent) 70%,var(--text))}.gift.bought .t{text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:var(--accent);opacity:.7}.gift.bought .pic{filter:grayscale(.7);opacity:.65}.gift.taken{opacity:.75}.gift.gone{outline:2px dashed var(--danger);outline-offset:-2px}.gift.editing{outline:3px solid var(--brand);outline-offset:-3px}.gift.own{transition:border-color .15s,box-shadow .15s}.gift.own:hover{border-color:color-mix(in srgb,var(--brand) 45%,var(--line))}.card-hit{position:absolute;inset:0;z-index:1;border:0;background:none;cursor:pointer;border-radius:inherit}.card-hit:focus-visible{outline-offset:-3px}.gift.own a{position:relative;z-index:2}.edit-hint{position:absolute;top:10px;right:10px;z-index:2;pointer-events:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--surface);color:var(--muted);box-shadow:0 1px 4px #0000001f;opacity:0;transition:opacity .15s}.gift.own:hover .edit-hint,.card-hit:focus-visible~.edit-hint{opacity:1}@media(hover:none){.edit-hint{opacity:.85}}.gifts.list .gift .edit-hint{top:50%;transform:translateY(-50%);right:14px}.btn.text.danger-text{color:var(--danger)}.btn.text.danger-text:hover{background:color-mix(in srgb,var(--danger) 8%,transparent);color:var(--danger)}.foot .push-left{margin-right:auto}.kind-choice{border:0;padding:0;margin:0;display:grid;gap:8px}.kind-choice legend{font-weight:700;font-size:.92rem;margin-bottom:6px;padding:0}.kind-option{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:12px;cursor:pointer;border:2px solid var(--line);background:var(--surface)}.kind-option:has(input:checked){border-color:var(--brand);background:color-mix(in srgb,var(--brand) 5%,var(--surface))}.kind-option input{margin-top:3px;accent-color:var(--brand)}.kind-option b{display:block}.kind-option small{display:block;color:var(--muted);font-weight:400}.role-tag.recipient{background:var(--accent-soft)}.about-group{display:flex;align-items:center;gap:14px;margin-bottom:14px}.about-group b{font-size:1.05rem}.about-group p{margin:2px 0 0;font-size:.9rem}.about-emoji{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--surface-2);font-size:1.6rem;flex:none}.about-line{margin:6px 0 0;font-size:.92rem}.gift .info{display:flex;flex-direction:column;gap:8px;min-width:0}.gifts.list{display:flex;flex-direction:column;gap:10px}.gifts.list .gift{flex-direction:row;align-items:center}.gifts.list .gift .pic{flex:none;width:76px;aspect-ratio:1;margin:8px 0 8px 8px;border-radius:12px}.gifts.list .gift .body{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 14px;min-width:0}.gifts.list .gift .info{flex:1 1 220px;gap:4px}.gifts.list .gift .foot{flex-direction:row;align-items:center;gap:12px;margin:0 0 0 auto;padding:0}.gifts.list .gift .status{flex:none}.gifts.list .gift .actions{flex:none;flex-wrap:nowrap}.gifts.list .gift .actions .btn{flex:none}.gifts.list .gift .badge-top{top:4px;left:4px;padding:4px;font-size:0}.gifts.list .gift .badge-check{top:4px;left:58px;right:auto;width:24px;height:24px}@media(max-width:520px){.gifts.list .gift .pic{width:60px}.gifts.list .gift .badge-check{left:44px}}.seg{display:inline-flex;padding:3px;gap:2px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);flex:none}.seg button{display:grid;place-items:center;width:34px;height:30px;border:0;border-radius:999px;background:none;color:var(--muted);cursor:pointer}.seg.labels button{width:auto;padding:0 14px;gap:6px;display:inline-flex;align-items:center;font-weight:700;font-size:.9rem}.seg button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 4px #0000001f}.empty{text-align:center;padding:40px 16px;color:var(--muted)}.empty .big-emoji{font-size:3.5rem;display:block;margin-bottom:8px}.shop-group{margin-bottom:24px}@media(min-width:900px){.group-tabs{margin-top:20px}.list-head{margin:26px 0 28px}.gifts{gap:22px}.gifts.list{gap:12px}.shop-group{margin-bottom:36px}.shop-group h3{margin-bottom:14px}.shop-row{padding:12px 16px;margin-bottom:10px}.people{padding-top:22px;padding-bottom:6px}}.shop-group h3{display:flex;align-items:center;gap:10px;margin:0 0 10px}.shop-row{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;margin-bottom:8px}.shop-row .thumb{width:48px;height:48px;border-radius:10px;background:var(--surface-2);display:grid;place-items:center;overflow:hidden;flex:none;font-size:1.4rem}.shop-row .thumb img{width:100%;height:100%;object-fit:cover}.shop-row.bought .t{text-decoration:line-through;opacity:.6}.check{width:30px;height:30px;border-radius:9px;border:2px solid var(--line);background:var(--surface-2);cursor:pointer;display:grid;place-items:center;font-weight:900;flex:none;color:#0b2b22}.check.on{background:var(--accent);border-color:var(--accent)}.menu-wrap{position:relative}.menu{position:absolute;right:0;top:calc(100% + 8px);min-width:230px;z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:6px;animation:pop .15s ease both}.menu button,.menu a{display:flex;gap:10px;align-items:center;width:100%;text-align:left;padding:10px 12px;border:0;background:none;border-radius:10px;cursor:pointer;font-weight:700;text-decoration:none}.menu button:hover,.menu a:hover{background:var(--surface-2)}.menu hr{border:0;border-top:1px solid var(--line);margin:6px 4px}.menu .who{padding:8px 12px 10px;color:var(--muted);font-size:.85rem}dialog{border:0;border-radius:22px;padding:0;width:min(460px,calc(100vw - 32px));background:var(--surface);color:var(--text);box-shadow:0 30px 80px -20px #00000080}dialog.wide{width:min(640px,calc(100vw - 32px))}dialog::backdrop{background:#1e0f2373;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}dialog .inner{padding:22px;position:relative}.modal-x{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:50%;background:none;color:var(--muted);cursor:pointer}.modal-x:hover{background:var(--surface-2);color:var(--text)}dialog h2:has(+*){padding-right:36px}dialog h2{margin:0 0 6px}dialog .foot{display:flex;gap:8px;justify-content:flex-end;margin-top:18px;flex-wrap:wrap}.invite-box{display:flex;gap:8px}.invite-box input{font-size:.9rem}.invite-box .btn.icon-only{align-self:stretch;height:auto;width:48px;flex:none;border-radius:12px}.member-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.member-row:last-child{border-bottom:0}.who-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}.who-grid button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;border-radius:16px;border:2px solid var(--line);background:var(--surface-2);cursor:pointer;font-weight:700}.who-grid button:hover{border-color:var(--brand)}.who-grid button.on{border-color:var(--brand);background:var(--brand-soft)}.who-grid button span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}#toasts[popover]{margin:0;padding:0;border:0;background:none;overflow:visible;top:auto;right:auto}#toasts{position:fixed;left:50%;bottom:max(20px,env(safe-area-inset-bottom));transform:translate(-50%);z-index:100;display:grid;gap:8px;width:min(420px,calc(100vw - 32px))}.toast{background:var(--text);color:var(--bg);padding:12px 16px;border-radius:14px;font-weight:700;box-shadow:0 10px 30px -10px #00000080;animation:rise .25s ease both}.toast.err{background:var(--danger);color:#fff}.confetti{position:fixed;pointer-events:none;z-index:200;width:8px;height:12px;border-radius:2px;animation:burst 1s cubic-bezier(.2,.7,.3,1) forwards}.confetti.round{width:9px;height:9px;border-radius:50%}.muted{color:var(--muted)}.center{text-align:center}.mt{margin-top:16px}.footer{text-align:center;color:var(--muted);font-size:.85rem;margin-top:40px}@keyframes pop{0%{transform:scale(.94);opacity:0}to{transform:none;opacity:1}}@keyframes rise{0%{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}@keyframes burst{0%{transform:translate(0) rotate(0) scale(.6);opacity:1}to{transform:translate(var(--dx),var(--dy)) rotate(var(--rot)) scale(1);opacity:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.site-footer{display:flex;gap:14px;justify-content:center;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:.88rem;padding:32px 16px 40px;margin-top:auto}.site-footer form{display:inline}.site-footer button,.site-footer a{background:none;border:0;color:inherit;cursor:pointer;font:inherit;text-decoration:underline;text-underline-offset:3px;padding:0}.site-footer a.kofi{display:inline-flex;align-items:center;gap:5px;text-decoration:none}.site-footer a.kofi span{text-decoration:underline;text-underline-offset:3px}.how{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:8px 0 28px}.how .card{text-align:center;padding:18px}.how .card+.card{margin-top:0}.how .big-emoji{font-size:2.2rem;display:block;margin-bottom:6px}.how h3{margin:0 0 4px;font-size:1.05rem}.how p{margin:0;color:var(--muted);font-size:.92rem}.center-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.notice{padding:12px 14px;border-radius:12px;background:var(--surface-2);color:var(--muted);font-size:.9rem}.error-text{color:var(--danger);font-weight:700;font-size:.92rem;margin:0}.code-input{font-size:1.6rem!important;letter-spacing:.4em;text-align:center;font-weight:700}.preview-img{width:96px;height:72px;border-radius:10px;object-fit:contain;background:#fff;border:1px solid var(--line)}.file-btn{position:relative;overflow:hidden}.file-btn input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}.role-tag{font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted)}.section-title{margin:26px 0 10px;font-size:1.05rem}.inline-form{display:inline}.stack-sm{display:grid;gap:8px}input[type=email],select{width:100%;padding:12px 14px;border-radius:12px;border:2px solid var(--line);background:var(--surface-2);outline:none;font:inherit;color:inherit}input[type=email]:focus,select:focus{border-color:var(--brand);background:var(--surface)}.prose{line-height:1.6}.prose h2{margin-top:28px;font-size:1.15rem}.prose li{margin:4px 0}.topbar .title{color:inherit}.dash-actions{display:flex;gap:8px}@media(max-width:480px){.hide-sm{display:none}}:root{--chart: #e8590c;--grid: #eadbd3}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--chart: #e8590c;--grid: #3f3246}}:root[data-theme=dark]{--chart: #e8590c;--grid: #3f3246}.stat-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.stat-grid .card+.card{margin-top:0}.stat-grid h2,.chart-title{font-size:1rem;margin-bottom:12px;display:flex;align-items:center;gap:8px}.stats{display:grid;grid-template-columns:1fr auto;gap:8px 12px;margin:0;align-items:baseline}.stats dt{color:var(--muted);font-size:.9rem}.stats dd{margin:0;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}.stats .hero-num{font-size:1.8rem;line-height:1}.status-bad{color:var(--danger)}.chart{position:relative;margin-top:8px}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart .axis{stroke:var(--grid);stroke-width:1}.chart .bar{fill:var(--chart);transition:opacity .15s}.chart .bar.dim{opacity:.35}.chart .hit{fill:transparent}.chart .tick{fill:var(--muted);font-size:11px;font-family:var(--font)}.chart .val{fill:var(--text);font-size:12px;font-weight:700;font-family:var(--font)}.chart .tip{position:absolute;top:-6px;transform:translate(-50%,-100%);pointer-events:none;white-space:nowrap;background:var(--text);color:var(--bg);padding:6px 10px;border-radius:10px;font-size:.85rem}.data-table{width:100%;border-collapse:collapse;margin-top:12px;font-size:.9rem}.data-table td{padding:6px 4px;border-bottom:1px solid var(--line)}.data-table td:last-child{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}svg.lucide{flex:none}.btn svg,.chip-toggle svg,.menu svg{flex:none}.chip-toggle{display:inline-flex;align-items:center;gap:6px}.btn.icon-only{padding:7px;width:34px;height:34px}.app-header{position:sticky;top:0;z-index:30;padding:12px max(16px,calc((100vw - 1040px)/2 + 16px));padding-top:max(12px,env(safe-area-inset-top));background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.app-header .spacer{flex:1}.app-header-row{display:flex;align-items:center;gap:10px;min-height:44px}.brand-sep{width:1px;height:24px;background:var(--line);margin:0 4px;flex:none}.app-header.in-group .brand-name small{display:none}@media(max-width:680px){.app-header.in-group .brand-name{display:none}}.app-header.has-below{padding-bottom:0}.app-header .group-tabs{margin:8px 0 -1px;border-bottom:0}.app-header .bar-btn,.app-header .spoiler-toggle.compact{height:36px;padding-block:0}.group-switch-wrap{min-width:0}.group-switch{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:6px 10px 6px 6px;border-radius:12px;border:0;background:none;font:inherit;font-weight:800;font-size:1.1rem;color:var(--text);cursor:pointer}.group-switch:hover,.group-switch[aria-expanded=true]{background:var(--surface-2)}.group-switch .group-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.group-switch svg{flex:none;color:var(--muted)}.menu.left{right:auto;left:0}.menu a.current{background:var(--surface-2)}.menu .group-emoji{font-size:1.1rem}@media(max-width:760px){.hide-md{display:none}}.only-sm{display:none!important}@media(max-width:480px){.app-header.in-group .brand,.app-header.in-group .brand-sep,.app-header .bar-btn,.app-header .bar-sep{display:none}.only-sm{display:flex!important}hr.only-sm{display:block!important}.list-head{margin-top:18px}.group-switch{font-size:1rem}}.brand{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:1.05rem;text-decoration:none}.brand-name{display:inline-flex;align-items:baseline;gap:6px}.brand-name small{font-size:.72rem;font-weight:600;color:var(--muted);letter-spacing:.01em}.logo-mark{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--brand);color:var(--brand-ink);flex:none}.logo-mark.lg{width:76px;height:76px;border-radius:24px;box-shadow:0 10px 30px -12px color-mix(in srgb,var(--brand) 70%,transparent)}.user-btn{display:inline-flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border-radius:999px;border:1px solid transparent;background:none;cursor:pointer;font-weight:700;color:var(--text)}.user-btn:hover,.user-btn[aria-expanded=true]{border-color:var(--line);background:var(--surface-2)}.app-header.in-group .user-name{display:none}.icon-btn{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:var(--muted);text-decoration:none;transition:background .15s,color .15s}.icon-btn:hover,.icon-btn.active{background:var(--surface-2);color:var(--text)}.user-btn:hover{border-color:color-mix(in srgb,var(--brand) 50%,var(--line))}.user-btn .avatar.sm{width:30px;height:30px;font-size:1rem}.user-name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:480px){.user-name{display:none}}.menu form{margin:0}.menu .who{overflow:hidden;text-overflow:ellipsis}.group-bar{background:var(--surface);border-bottom:1px solid var(--line)}.group-bar-inner{display:flex;align-items:center;gap:8px;padding-top:12px;padding-bottom:12px}.group-bar .spacer{flex:1}.group-bar-inner>.btn{height:36px;padding-block:0}.bar-sep{width:1px;height:22px;background:var(--line);margin:0 4px}.crumb{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-weight:700;font-size:.92rem;text-decoration:none;white-space:nowrap;flex:none}.crumb:hover{color:var(--text)}.group-bar-inner .crumb-back{display:none}.group-bar-inner .crumb-sep{color:var(--muted);opacity:.6;flex:none}@media(max-width:600px){.crumb{width:32px;height:32px;justify-content:center;border-radius:50%;margin-left:-6px}.crumb:hover{background:var(--surface-2)}.crumb-text{display:none}.group-bar-inner .crumb-back{display:block}.group-bar-inner .crumb-sep{display:none}}.group-title{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:1.15rem;text-decoration:none;min-width:0}.group-title span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-emoji{font-size:1.5rem;line-height:1}.btn.active{background:var(--surface-2);border-color:var(--brand)}.back-link{display:inline-flex;align-items:center;gap:6px;margin:18px 0 12px;color:var(--muted);font-weight:700;text-decoration:none}.back-link:hover{color:var(--text)}.settings{max-width:760px;margin:0 auto}.settings .card+.card{margin-top:20px}.settings .card h2{margin-bottom:14px}.settings .card>.muted:first-of-type{margin-top:-6px}.settings .section-title{margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}.settings .sub-title{margin:20px 0 6px;font-size:.95rem}.settings .section-title+.sub-title{margin-top:0}.settings h2+.sub-title{margin-top:0}.settings .pending{margin-bottom:18px;padding:4px 12px;border-radius:14px;background:var(--gold-soft)}.settings .pending .member-row{border-color:color-mix(in srgb,var(--text) 8%,transparent)}.field>span{font-weight:700;font-size:.92rem}div.field{display:grid;gap:6px}.field small{font-size:.82rem}.field input,.field select,.field textarea{font-weight:400}.page-title:has(+.page-sub){margin-bottom:4px}.page-sub{display:flex;align-items:center;gap:6px;margin:0 0 18px;color:var(--muted);font-size:.92rem}.page-sub svg{flex:none}@media(min-width:900px){.settings .card{padding:28px 32px}.settings .card+.card{margin-top:24px}.member-row{padding:12px 0}}.person.special .avatar,.icon-avatar{box-shadow:inset 0 0 0 2px var(--line);background:var(--surface-2);color:var(--muted)}.person.special.on .avatar{color:var(--brand);box-shadow:inset 0 0 0 2px var(--brand)}button.person{border:0;background:none;cursor:pointer;font:inherit;color:inherit}.list-head .grow{flex:1 1 220px;min-width:0}@media(max-width:560px){.list-head .avatar.lg{width:52px;height:52px;font-size:1.7rem}}.hero .cta{margin-top:22px}.page-title{margin:28px 0 16px;font-size:clamp(1.5rem,4vw,1.9rem);letter-spacing:-.01em}.page-sub{margin:-8px 0 18px}.wrap.reading{max-width:760px}.wrap.reading .prose{padding:28px clamp(20px,4vw,40px)}.hero .logo-mark{margin-bottom:8px}.hero-icon,.empty-icon,.how-icon,.hint-icon{display:inline-grid;place-items:center;border-radius:50%;flex:none;background:var(--brand-soft);color:var(--brand)}.hero-icon{width:72px;height:72px;margin-bottom:8px}.hero-avatar{display:inline-grid;place-items:center;width:76px;height:76px;border-radius:24px;background:var(--surface);box-shadow:var(--shadow);font-size:2.6rem;margin-bottom:8px}.empty-icon{width:60px;height:60px;margin:0 auto 12px;display:grid}.how-icon{width:46px;height:46px;margin-bottom:10px}.hint-icon{width:34px;height:34px;background:color-mix(in srgb,var(--gold) 30%,transparent);color:inherit}.empty{display:flex;flex-direction:column;align-items:center}.gift .badge-top{display:inline-flex;align-items:center;gap:4px}.gift .badge-check{position:absolute;top:10px;right:10px;z-index:2;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#0b2b22;box-shadow:0 2px 6px #0003}.gift .shop{gap:6px}.gift .status svg{flex:none}.gift .status.warn{color:var(--danger)}.shop-link{display:inline-flex;align-items:center;gap:4px;font-size:.85rem}.shop-row .thumb .ph{color:var(--muted);opacity:.5;display:grid;place-items:center}.shop-row .thumb:has(.ph){background:color-mix(in srgb,var(--muted) 7%,var(--surface))}.status-bad{display:inline-flex;align-items:center;gap:4px}.notice{display:flex;gap:8px;align-items:center}.confirm.svelte-7e0w24 p:where(.svelte-7e0w24){margin:0;font-size:1.02rem;line-height:1.5}.danger-solid.svelte-7e0w24{background:var(--danger);border-color:var(--danger);color:#fff}
