:root{--bg:#0b0708;--page:#050304;--surface:#160d0f;--surface-2:#120a0c;--line-soft:#2a1a1d;--line:#3a1a1f;--line-strong:#6b2a33;--red:#b3122e;--red-text:#e5485f;--red-hover:#c91a38;--gold:#c9a45c;--bone:#ede3d6;--muted:#a8958c;--placeholder:#9a8780;--holly:#2e5a3e;--online:#5fbf7a;--plum:#4a2a30;--display:"Pirata One", "Old English Text MT", serif;--body:"EB Garamond", Georgia, serif;--app-w:480px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--page);color:var(--bone);font-family:var(--body);-webkit-tap-highlight-color:transparent;margin:0;font-size:18px}a{color:var(--red-text);text-decoration:none}a:hover{color:#f07a8c}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}input::placeholder,textarea::placeholder{color:var(--placeholder)}.app{max-width:var(--app-w);background:var(--bg);min-height:100dvh;margin:0 auto;position:relative;overflow-x:hidden}.screen{flex-direction:column;gap:18px;padding:20px 20px 120px;display:flex}.screen.no-nav{padding-bottom:110px}.display{font-family:var(--display);margin:0;font-weight:400;line-height:1.05}h1.display{font-size:40px}h2.display{font-size:26px}.overline{letter-spacing:.22em;color:var(--gold);text-transform:uppercase;font-size:12px;font-weight:600}.label{letter-spacing:.16em;color:var(--muted);text-transform:uppercase;font-size:13px}.muted{color:var(--muted)}.small{font-size:15px}.italic{font-style:italic}.num{font-variant-numeric:lining-nums tabular-nums}.red{color:var(--red-text)}.gold{color:var(--gold)}.row{align-items:center;gap:12px;display:flex}.between{justify-content:space-between;align-items:center;gap:12px;display:flex}.stack{flex-direction:column;gap:8px;display:flex}.grow{flex:1;min-width:0}.topbar{justify-content:space-between;align-items:center;margin:-8px -8px 0;display:flex}.icon-btn{width:44px;height:44px;color:var(--muted);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.back{align-items:center;gap:4px;min-height:44px;font-size:17px;display:inline-flex}.card{background:var(--surface);border:1px solid var(--line);border-radius:2px;padding:16px}.bar{background:var(--line-soft);border-radius:3px;height:6px;overflow:hidden}.bar>span{background:var(--red);height:100%;transition:width .3s;display:block}.bar.over>span{background:var(--red-text)}.stats{text-align:center;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.stats>div{padding:6px 0}.stats>div+div{border-left:1px solid var(--line)}.stats .display{font-size:28px}.avatar{width:40px;height:40px;font-family:var(--display);border:1.5px solid var(--red);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:20px;display:inline-flex}.avatar.sm{width:24px;height:24px;font-family:var(--body);border:0;font-size:12px;font-weight:600}.avatar.me{background:var(--red);border-color:var(--red)}.avatar.partner{background:var(--plum);border-color:var(--plum)}.avatar.nobody{background:var(--line-soft);border-color:var(--line-soft)}.avatars{display:flex}.avatars .avatar{border:2px solid var(--bg);width:34px;height:34px;font-size:15px}.avatars .avatar+.avatar{margin-left:-8px}.dot{background:var(--online);border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.dot.off{background:var(--line-strong)}.recipient{border:1px solid var(--line-soft);min-height:44px;color:var(--bone);background:#110a0b;border-radius:2px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.recipient:hover{color:var(--bone);border-color:var(--line)}.recipient.secret{border:1px dashed var(--line-strong);background:var(--surface-2)}.recipient.secret .avatar{border-color:var(--gold);color:var(--gold)}.recipient .name{font-size:19px;font-weight:500;display:block}.recipient .meta{color:var(--muted);font-size:14px;display:block}.recipient .bar{height:3px}.chips{scrollbar-width:none;gap:8px;margin:0 -20px;padding:0 20px;display:flex;overflow-x:auto}.chip{white-space:nowrap;border:1px solid var(--line);background:0 0;border-radius:18px;min-height:36px;padding:0 14px;font-size:16px}.chip[aria-pressed=true]{background:var(--red);border-color:var(--red)}.gifts{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.gift{background:var(--surface-2);border:1px solid var(--line-soft);border-left:3px solid var(--line);flex-direction:column;gap:6px;padding:14px 14px 4px;display:flex}.gift.bought{border-left-color:var(--red)}.gift.done{border-left-color:var(--gold)}.gift.given{opacity:.6}.gift .gname{color:var(--bone);text-align:left;background:0 0;border:0;padding:0;font-size:19px;font-weight:500;line-height:1.2}.gift .price{font-family:var(--display);flex-shrink:0;font-size:24px}.gift .who{color:var(--muted);text-align:left;background:0 0;border:0;align-items:center;gap:8px;min-height:32px;padding:4px 0;font-size:15px;display:flex}.gift .checks{border-top:1px solid var(--line-soft);gap:20px;margin-top:2px;display:flex}.check{cursor:pointer;align-items:center;gap:10px;min-height:44px;font-size:17px;display:inline-flex;position:relative}.check input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.check .box{border:1.5px solid var(--line-strong);color:#0000;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.check input:checked+.box{background:var(--red);border-color:var(--red);color:var(--bone)}.check.gold input:checked+.box{background:var(--gold);border-color:var(--gold);color:var(--bg)}.check input:focus-visible+.box{outline:2px solid var(--gold);outline-offset:2px}.banner{background:var(--surface);border:1px solid var(--line);color:var(--muted);align-items:center;gap:8px;padding:8px 10px;font-size:15px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.input{background:var(--surface);border:1px solid var(--line);border-radius:2px;width:100%;height:48px;padding:0 14px;font-size:19px}textarea.input{resize:vertical;height:auto;min-height:72px;padding:12px 14px}.input:focus{border-color:var(--line-strong);outline:none}.input:focus-visible{outline:2px solid var(--gold);outline-offset:0}.two{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}fieldset{border:0;min-width:0;margin:0;padding:0}legend{margin-bottom:6px;padding:0}.seg{border:1px solid var(--line);border-radius:2px;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid;overflow:hidden}.seg button{background:var(--surface);border:0;height:46px;font-size:17px}.seg button+button{border-left:1px solid var(--line)}.seg button[aria-pressed=true]{background:var(--red)}.option{text-align:left;background:var(--surface-2);border:1px solid var(--line);border-radius:2px;align-items:center;gap:12px;width:100%;min-height:52px;padding:8px 14px;display:flex}.option[aria-pressed=true]{border-color:var(--gold)}.option .radio{border:1.5px solid var(--line-strong);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.option[aria-pressed=true] .radio{border-color:var(--gold)}.option[aria-pressed=true] .radio:after{content:"";background:var(--gold);border-radius:50%;width:8px;height:8px}.option:disabled{opacity:.55;cursor:not-allowed}.btn{border:1px solid var(--line-strong);min-height:48px;color:var(--bone);background:0 0;border-radius:2px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:17px;display:inline-flex}.btn:hover{color:var(--bone);border-color:var(--red)}.btn.primary{background:var(--red);border-color:var(--red);font-family:var(--display);height:52px;font-size:22px}.btn.primary:hover{background:var(--red-hover)}.btn.danger{color:var(--red-text);border-color:var(--line)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.block{width:100%}.link-btn{color:var(--red-text);background:0 0;border:0;min-height:44px;padding:0;font-size:16px}.bottom-bar{width:min(100%, var(--app-w));padding:14px 20px calc(18px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line);z-index:10;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tabbar{width:min(100%, var(--app-w));z-index:10;height:calc(76px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--bg);border-top:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;padding-top:8px;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tabbar a{min-height:44px;color:var(--muted);flex-direction:column;align-items:center;gap:2px;font-size:13px;display:flex}.tabbar a[aria-current=page]{color:var(--red-text)}.fab-wrap{justify-content:center;display:flex}.fab{background:var(--red);border:3px solid var(--bg);width:58px;height:58px;box-shadow:0 0 0 1px var(--line-strong);border-radius:50%;justify-content:center;align-items:center;margin-top:-28px;color:var(--bone)!important;display:flex!important}.switch{background:var(--line);border:0;border-radius:15px;flex-shrink:0;width:52px;height:30px;padding:3px;display:flex}.switch[aria-checked=true]{background:var(--red);justify-content:flex-end}.switch:after{content:"";background:var(--bone);border-radius:50%;width:24px;height:24px}.feed-item{border-bottom:1px solid #1e1214;gap:12px;padding:10px 0;font-size:17px;line-height:1.3;display:flex}.split{border-radius:2px;gap:2px;height:10px;display:flex;overflow:hidden}.toast{z-index:30;background:var(--surface);border:1px solid var(--red);max-width:90vw;padding:10px 16px;font-size:16px;position:fixed;bottom:100px;left:50%;transform:translate(-50%)}.error{color:var(--red-text);margin:0;font-size:16px}.empty{text-align:center;border:1px dashed var(--line);color:var(--muted);padding:28px 12px}.center-screen{flex-direction:column;justify-content:center;gap:20px;min-height:100dvh;padding:32px 24px;display:flex}.loading{min-height:100dvh;font-family:var(--display);color:var(--muted);justify-content:center;align-items:center;font-size:28px;display:flex}.demo-flag{background:var(--gold);color:var(--bg);letter-spacing:.1em;z-index:40;padding:2px 8px;font-size:12px;font-weight:600;position:fixed;top:0;right:0}.snow{pointer-events:none;opacity:.5;height:260px;position:absolute;inset:0 0 auto}@media (prefers-reduced-motion:reduce){.bar>span{transition:none}}
