:root{--bg:#faf8f5;--surface:#fffdfb;--surface-2:#fffdfb;--blush:#f7ecec;--ink:#211d1f;--ink-2:#6f6a6e;--accent:#9d2c4a;--accent-soft:rgba(157,44,74,.1);--on-accent:#fffdfb;--plum:#5b2a4a;--ok:#2f7d5b;--danger:#a8323a;--line:rgba(33,29,31,.08);--line-strong:rgba(33,29,31,.14);--radius:22px;--radius-sm:16px;--radius-lg:28px;--shadow:0 1px 2px rgba(33,29,31,.04),0 8px 24px rgba(60,30,40,.06);--shadow-lg:0 2px 6px rgba(33,29,31,.05),0 18px 44px rgba(60,30,40,.1);--shadow-accent:0 8px 20px rgba(157,44,74,.22);--serif:Georgia,"Iowan Old Style","Times New Roman",serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--spring:cubic-bezier(.22,1,.36,1);--dur:.44s;--dur-fast:.18s;--grad:var(--accent);--grad-soft:var(--blush);--rose-soft:var(--blush);--bg2:var(--surface);--label:var(--ink);--label2:var(--ink-2)}@media (prefers-color-scheme:dark){:root{--bg:#171016;--surface:#221a20;--surface-2:#221a20;--blush:#2b1f27;--ink:#f6f1f3;--ink-2:#a99ea6;--accent:#d4607a;--accent-soft:rgba(212,96,122,.14);--on-accent:#1a1014;--plum:#7a3b62;--ok:#5aa982;--danger:#e0727a;--line:rgba(255,255,255,.1);--line-strong:rgba(255,255,255,.18);--shadow:0 1px 2px rgba(0,0,0,.4),0 10px 30px rgba(0,0,0,.45);--shadow-lg:0 2px 8px rgba(0,0,0,.45),0 18px 44px rgba(0,0,0,.55);--shadow-accent:0 8px 20px rgba(212,96,122,.25);--grad:var(--accent);--grad-soft:var(--blush);--rose-soft:var(--blush);--bg2:var(--surface);--label:var(--ink);--label2:var(--ink-2)}}*{box-sizing:border-box}html,body{margin:0;padding:0}html{-webkit-text-size-adjust:100%;overscroll-behavior:none}body{font-family:var(--sans);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;min-height:100dvh}#root,.app{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default;color:inherit}img{-webkit-user-drag:none;user-select:none;max-width:100%}a,button{-webkit-tap-highlight-color:transparent;outline:none}::-webkit-scrollbar{width:0;height:0}*{scrollbar-width:none}button{font:inherit;cursor:pointer;color:inherit}input,textarea,select{font:inherit}input[type=text],input[type=search],input[type=email],input[type=password],input[type=date],textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);padding:13px 14px;background:var(--bg);color:var(--ink);transition:border-color var(--dur-fast) var(--spring),box-shadow var(--dur-fast) var(--spring)}input::placeholder,textarea::placeholder{color:var(--ink-2);opacity:.7}input[type=text]:focus,input[type=search]:focus,input[type=email]:focus,input[type=password]:focus,input[type=date]:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.app{max-width:520px;margin:0 auto;min-height:100dvh;padding-bottom:calc(104px + env(safe-area-inset-bottom));background:var(--bg)}main{padding:16px 16px 24px;animation:routeIn var(--dur) var(--spring) both}.large-title{font-family:var(--serif);font-size:32px;line-height:1.1;letter-spacing:-.02em;font-weight:400;margin:0;color:var(--ink)}.display{font-family:var(--serif);font-weight:400;letter-spacing:-.02em}.overline{display:block;font-size:11px;line-height:1.3;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);font-weight:600;margin:0 0 6px}.small{font-size:13px;color:var(--ink-2);line-height:1.5}.muted{color:var(--ink-2)}.grad{background:none;color:inherit;-webkit-text-fill-color:currentColor}header.top{position:sticky;top:0;z-index:20;backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);background:color-mix(in srgb,var(--bg) 86%,transparent);padding:calc(14px + env(safe-area-inset-top)) 18px 12px;border-bottom:1px solid var(--line)}header.top h1{font-family:var(--serif);font-size:30px;line-height:1.12;letter-spacing:-.02em;font-weight:400;margin:0;color:var(--ink)}header.top h1 .grad{background:none;color:inherit;-webkit-text-fill-color:currentColor}header.top p{color:var(--ink-2);margin:4px 0 0;font-size:13px;line-height:1.45}header.top .overline{margin-bottom:4px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);margin-bottom:14px;animation:fadeUp var(--dur) var(--spring) both}main .card:nth-child(1){animation-delay:0s}main .card:nth-child(2){animation-delay:.05s}main .card:nth-child(3){animation-delay:.1s}main .card:nth-child(4){animation-delay:.15s}main .card:nth-child(5){animation-delay:.2s}main .card:nth-child(6){animation-delay:.25s}main .card:nth-child(7){animation-delay:.3s}main .card:nth-child(8){animation-delay:.35s}.card h2{margin:0 0 8px;font-family:var(--serif);font-weight:400;font-size:22px;letter-spacing:-.01em;color:var(--ink)}.card h3{margin:0 0 6px;font-size:16px;font-weight:600;letter-spacing:-.005em}.card p{margin:6px 0;color:var(--ink-2);line-height:1.55;font-size:14px}.card .small{margin-top:8px}.card.flush{padding:0;overflow:hidden}.card.inset{background:var(--bg);box-shadow:none}.hero{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-lg);padding:22px 20px 20px;box-shadow:var(--shadow-lg);position:relative;overflow:hidden}.hero:before{content:"";position:absolute;left:-40px;right:-40px;bottom:-70px;height:150px;border-radius:50%;background:var(--blush);pointer-events:none}.hero h2,.hero p{color:var(--ink)}.hero .greeting{font-family:var(--serif);font-size:26px;line-height:1.15;letter-spacing:-.02em;margin:0 0 2px;position:relative;z-index:1}.hero .hero-num{font-family:var(--serif);font-size:56px;line-height:1;letter-spacing:-.03em;margin:8px 0 4px;position:relative;z-index:1;color:var(--ink)}.hero .hero-label{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);font-weight:600;position:relative;z-index:1}.hero .hero-note{font-size:14px;color:var(--ink-2);line-height:1.5;margin:10px 0 0;position:relative;z-index:1}.hero .row{position:relative;z-index:1;margin-top:14px}.hero .pill{box-shadow:var(--shadow-accent)}.hero .pill.ghost{background:transparent;color:var(--accent);border:1px solid var(--line-strong);box-shadow:none}.statrow{display:flex;gap:10px;margin-top:16px;position:relative;z-index:1}.stat{flex:1;background:var(--blush);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px}.stat b{display:block;font-family:var(--serif);font-size:22px;font-weight:400;line-height:1.1;letter-spacing:-.01em;color:var(--ink)}.stat span{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin-top:2px;font-weight:600}.chip{display:inline-flex;align-items:center;gap:6px;background:var(--blush);color:var(--accent);border:1px solid var(--line);border-radius:999px;padding:5px 11px;font-size:12px;font-weight:600;letter-spacing:.02em}.chip .dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.pill{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--accent);color:var(--on-accent);border:1px solid transparent;border-radius:999px;padding:12px 20px;min-height:46px;font-size:15px;font-weight:600;letter-spacing:.01em;box-shadow:var(--shadow-accent);transition:transform var(--dur-fast) var(--spring),opacity var(--dur-fast) var(--spring),box-shadow var(--dur-fast) var(--spring)}.pill:active{transform:scale(.97)}.pill:disabled{opacity:.45;box-shadow:none}.pill.ghost{background:transparent;color:var(--accent);border:1px solid var(--line-strong);box-shadow:none}.pill.ghost:active{background:var(--accent-soft)}.pill.secondary{background:var(--blush);color:var(--accent);border:1px solid var(--line);box-shadow:none}.pill.danger{background:transparent;color:var(--danger);border:1px solid var(--line-strong);box-shadow:none}.pill.block{width:100%}.pill.sm{min-height:38px;padding:8px 14px;font-size:13px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.tabbar{position:fixed;left:50%;transform:translate(-50%);bottom:0;width:100%;max-width:520px;z-index:30;display:flex;justify-content:space-around;align-items:stretch;backdrop-filter:blur(22px) saturate(150%);-webkit-backdrop-filter:blur(22px) saturate(150%);background:color-mix(in srgb,var(--bg) 82%,transparent);border-top:1px solid var(--line);padding:8px 6px calc(8px + env(safe-area-inset-bottom))}.tabbar button{position:relative;border:0;background:transparent;color:var(--ink-2);font-size:11px;font-weight:600;letter-spacing:.01em;min-width:52px;min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:14px;padding:4px 6px;transition:color var(--dur-fast) var(--spring),transform var(--dur-fast) var(--spring);animation:tabFade var(--dur) var(--spring) both}.tabbar button span{font-size:19px;line-height:1;display:block}.tabbar button:active{transform:scale(.94)}.tabbar button.active{color:var(--accent);font-weight:700;background:transparent}.tabbar button.active:after{content:"";position:absolute;bottom:3px;left:50%;margin-left:-2px;width:4px;height:4px;border-radius:50%;background:var(--accent)}.chat{display:flex;flex-direction:column;gap:2px;padding:12px 16px 8px;min-height:calc(100dvh - 190px)}.msg{max-width:82%;padding:11px 14px;border-radius:20px;margin:6px 0;line-height:1.5;font-size:15px;word-break:break-word;animation:msgPop var(--dur) var(--spring) both}.msg.me{margin-left:auto;background:var(--accent);color:var(--on-accent);border:1px solid transparent;border-bottom-right-radius:7px;box-shadow:var(--shadow-accent)}.msg.them{background:var(--surface);border:1px solid var(--line);color:var(--ink);border-bottom-left-radius:7px;box-shadow:var(--shadow)}.msg .who{font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;margin-bottom:3px;opacity:.85}.msg.me .who{color:var(--on-accent);opacity:.75}.msg.them .who{color:var(--accent);opacity:.9}.msg .when{font-size:11px;margin-top:4px;opacity:.6}.msg.me .when{color:var(--on-accent);opacity:.7}.msg.them .when{color:var(--ink-2)}.msg img{border-radius:14px;display:block;margin-top:6px;max-width:100%}.msg .bubble-photo{border-radius:14px;overflow:hidden;margin-top:6px}.msg-group-time{align-self:center;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin:14px 0 6px;font-weight:600}.typing{display:inline-flex;gap:5px;align-items:center;padding:13px 16px}.typing i{width:7px;height:7px;border-radius:50%;background:var(--ink-2);animation:blink 1.2s infinite var(--spring)}.typing i:nth-child(2){animation-delay:.18s}.typing i:nth-child(3){animation-delay:.36s}.chatbar{position:sticky;bottom:calc(8px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:8px 8px 8px 14px;box-shadow:var(--shadow-lg);margin:8px 16px 0}.chatbar input[type=text]{border:0;background:transparent;padding:10px 0;box-shadow:none;border-radius:0}.chatbar input[type=text]:focus{box-shadow:none;border:0}.chatbar .iconbtn{width:42px;height:42px;min-width:42px;border-radius:50%;border:1px solid var(--line);background:var(--blush);color:var(--accent);font-size:17px;display:flex;align-items:center;justify-content:center;transition:transform var(--dur-fast) var(--spring)}.chatbar .iconbtn:active{transform:scale(.92)}.chatbar .send{width:42px;height:42px;min-width:42px;border-radius:50%;border:0;background:var(--accent);color:var(--on-accent);font-size:17px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-accent);transition:transform var(--dur-fast) var(--spring),opacity var(--dur-fast) var(--spring)}.chatbar .send:active{transform:scale(.92)}.chatbar .send:disabled{opacity:.4;box-shadow:none}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tile{border-radius:var(--radius);overflow:hidden;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);min-height:120px;display:flex;flex-direction:column;position:relative;animation:fadeUp var(--dur) var(--spring) both;transition:transform var(--dur-fast) var(--spring)}.tile:active{transform:scale(.98)}.tile img{width:100%;height:140px;object-fit:cover;display:block;background:var(--blush)}.tile .tile-body{padding:10px 12px 12px}.tile .tile-body .overline{margin-bottom:2px;font-size:10px}.tile .tile-body b{font-size:14px;font-weight:600;display:block}.tile .fav{position:absolute;top:8px;right:8px;width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:#fffdfbb8;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--accent);font-size:15px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #00000024;transition:transform var(--dur-fast) var(--spring)}.tile .fav:active{transform:scale(.9)}.heroimg{border-radius:var(--radius-lg);overflow:hidden;position:relative;box-shadow:var(--shadow-lg);border:1px solid var(--line);background:var(--blush);margin-bottom:14px}.heroimg img{width:100%;display:block;object-fit:cover;max-height:340px}.heroimg .scrim{position:absolute;inset:0;background:#180e1442;pointer-events:none}.heroimg .cap{position:absolute;left:16px;right:16px;bottom:14px;color:#fff;z-index:2}.heroimg .cap .overline{color:#ffffffd1;margin-bottom:2px}.heroimg .cap b{font-family:var(--serif);font-weight:400;font-size:20px;letter-spacing:-.01em}.heroimg .fav{position:absolute;top:12px;right:12px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:#fffdfbb8;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--accent);font-size:17px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px #0000002e;z-index:2;transition:transform var(--dur-fast) var(--spring)}.heroimg .fav:active{transform:scale(.9)}.disc{width:124px;height:124px;border-radius:50%;margin:6px auto 12px;background:#241a20;border:8px solid rgba(255,253,251,.06);display:flex;align-items:center;justify-content:center;box-shadow:0 14px 30px #1e0f1947,inset 0 0 0 1px #ffffff0f;position:relative;overflow:hidden}.disc:after{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:inset 0 0 0 1px #ffffff14,inset 0 0 0 22px #ffffff08;pointer-events:none}.disc .hole{width:26px;height:26px;border-radius:50%;background:var(--surface);border:3px solid var(--accent);z-index:1}.disc .marker{position:absolute;top:10px;left:50%;margin-left:-5px;width:10px;height:10px;border-radius:50%;background:var(--accent);z-index:1}.disc.spin{animation:spin 9s linear infinite}.album{border-radius:var(--radius-lg);background:var(--blush);border:1px solid var(--line);padding:22px 18px;box-shadow:var(--shadow);text-align:center}.album .track-title{font-family:var(--serif);font-size:22px;letter-spacing:-.01em;line-height:1.25;margin:6px 0 2px;color:var(--ink)}.player{display:flex;align-items:center;gap:12px;margin-top:12px}.playbtn{width:50px;height:50px;min-width:50px;border-radius:50%;border:0;background:var(--accent);color:var(--on-accent);font-size:17px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-accent);flex-shrink:0;transition:transform var(--dur-fast) var(--spring)}.playbtn:active{transform:scale(.92)}.player .track{flex:1;height:5px;border-radius:99px;background:var(--line-strong);cursor:pointer;overflow:hidden}.player .fill{height:100%;background:var(--accent);border-radius:99px;transition:width .2s linear}.player .time{font-size:12px;color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums}.tracklist{border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:var(--surface)}.tracklist .listrow{border-bottom:1px solid var(--line);padding:12px 14px}.tracklist .listrow:last-child{border-bottom:0}.scratchcard{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:18px 16px;min-height:88px;font-weight:600;font-size:15px;text-align:left;width:100%;box-shadow:var(--shadow);transition:transform var(--dur-fast) var(--spring),background var(--dur-fast) var(--spring)}.scratchcard:active{transform:scale(.97)}.scratchcard.revealed{background:var(--blush);color:var(--accent);border:1px solid var(--line);box-shadow:none;font-family:var(--serif);font-weight:400;font-size:17px;letter-spacing:-.01em}.roulette-num{font-family:var(--serif);font-size:34px;font-weight:400;letter-spacing:-.02em;text-align:center;padding:20px 14px;border-radius:var(--radius-sm);background:var(--blush);border:1px solid var(--line);color:var(--ink)}.wax{width:64px;height:64px;border-radius:50%;background:var(--accent);border:1px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--on-accent);margin:0 auto 10px;box-shadow:var(--shadow-accent)}.letter{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;font-family:var(--serif);font-size:16px;line-height:1.7;color:var(--ink);box-shadow:var(--shadow);white-space:pre-wrap}.letter.empty{color:var(--ink-2);font-style:italic}.capsule-row{display:flex;align-items:center;gap:12px;padding:13px 14px;border-bottom:1px solid var(--line);background:var(--surface)}.capsule-row:last-child{border-bottom:0}.callbtn{width:78px;height:78px;border-radius:50%;border:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:22px;color:var(--on-accent);background:var(--accent);box-shadow:var(--shadow-accent);transition:transform var(--dur-fast) var(--spring)}.callbtn:active{transform:scale(.94)}.callbtn small{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-top:2px}.callbtn.vid{background:var(--plum);box-shadow:0 10px 24px #5b2a4a47}.callbtn.quiet{background:var(--blush);color:var(--accent);border:1px solid var(--line);box-shadow:none}.statuspill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 11px;font-size:12px;font-weight:600;letter-spacing:.02em;background:var(--blush);color:var(--accent);border:1px solid var(--line)}.statuspill .dot{width:7px;height:7px;border-radius:50%;background:var(--ok)}.statuspill .dot.red{background:var(--danger);animation:blink 1.4s infinite}.seg{display:flex;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:4px;gap:4px}.seg button{flex:1;border:0;background:transparent;border-radius:999px;padding:10px 8px;font-size:13px;font-weight:600;color:var(--ink-2);transition:background var(--dur-fast) var(--spring),color var(--dur-fast) var(--spring),transform var(--dur-fast) var(--spring)}.seg button:active{transform:scale(.97)}.seg button.on{background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-accent)}.listrow{display:flex;align-items:center;gap:12px;padding:13px 2px;border-bottom:1px solid var(--line);width:100%;text-align:left;background:transparent;border-left:0;border-right:0;border-top:0;color:inherit}.listrow:last-child{border-bottom:0}.listrow .ic{width:36px;height:36px;border-radius:11px;background:var(--blush);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.listrow b{display:block;font-size:15px;font-weight:600;letter-spacing:-.005em}.listrow span{font-size:13px;color:var(--ink-2);line-height:1.4}.listrow .grow{flex:1;min-width:0}.listrow .chev{color:var(--ink-2);font-size:16px;opacity:.6}.listrow.action{cursor:pointer;transition:transform var(--dur-fast) var(--spring)}.listrow.action:active{transform:scale(.99)}.group{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:2px 14px;box-shadow:var(--shadow);margin-bottom:16px}.group .listrow{padding:13px 0}.section-label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);font-weight:600;margin:18px 4px 8px}.gate{min-height:100dvh;background:var(--bg);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(24px + env(safe-area-inset-top)) 20px calc(28px + env(safe-area-inset-bottom))}.gate header.top{background:transparent;border-bottom:0;backdrop-filter:none;-webkit-backdrop-filter:none;position:static;text-align:center;padding:0 0 8px}.gate header.top h1,.gate header.top p{color:var(--ink)}.gate header.top .large-title{font-size:30px}.gate .lock{font-size:44px;text-align:center;margin:4px 0 10px;line-height:1;animation:fadeUp var(--dur) var(--spring) both}.gate .gate-inner{width:100%;max-width:380px}.gate .card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg);color:var(--ink);padding:22px 20px}.gate .card p{color:var(--ink-2)}.gate .gate-note{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);font-weight:600;text-align:center;margin:0 0 18px}.gate .err{color:var(--accent);font-size:13px;text-align:center;margin:10px 0 0;animation:shake .4s var(--spring) both}.gate input[type=text]{background:var(--bg);border-color:var(--line);color:var(--ink);text-align:center;letter-spacing:.08em}.gate input[type=text]::placeholder{color:var(--ink-2);opacity:.65;letter-spacing:normal}.gate .pill{box-shadow:var(--shadow-accent)}.gate .pill.ghost{background:transparent;color:var(--accent);border:1px solid var(--line-strong);box-shadow:none}.gate .pill.secondary{background:var(--blush);color:var(--accent);box-shadow:none}.emoji-keypad{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:6px}.emoji-keypad button{font-size:26px;width:56px;height:56px;border-radius:16px;border:1px solid var(--line);background:var(--surface);color:var(--ink);box-shadow:inset 0 1px #fff9,0 1px 2px #211d1f0d;transition:transform var(--dur-fast) var(--spring),background var(--dur-fast) var(--spring)}.emoji-keypad button:active{transform:scale(.9);background:var(--blush)}@media (prefers-color-scheme:dark){.emoji-keypad button{box-shadow:inset 0 1px #ffffff0d,0 1px 2px #0006}}.sheet-backdrop{position:fixed;inset:0;z-index:60;background:#180e145c;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:fadeIn var(--dur-fast) var(--spring) both}.sheet{position:fixed;left:50%;transform:translate(-50%);bottom:0;z-index:61;width:100%;max-width:520px;max-height:88dvh;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-bottom:0;border-radius:26px 26px 0 0;box-shadow:0 -10px 40px #1e0f192e;padding:10px 20px calc(24px + env(safe-area-inset-bottom));animation:sheetUp var(--dur) var(--spring) both}.sheet .grabber{width:38px;height:5px;border-radius:99px;background:var(--line-strong);margin:0 auto 14px}.sheet h2{font-family:var(--serif);font-weight:400;font-size:24px;letter-spacing:-.01em;margin:0 0 4px}.sheet .sheet-sub{font-size:13px;color:var(--ink-2);margin:0 0 14px;line-height:1.5}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:36px 20px;color:var(--ink-2)}.empty-state .ic{width:72px;height:72px;border-radius:50%;background:var(--blush);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--accent);margin-bottom:14px}.empty-state b{display:block;font-family:var(--serif);font-weight:400;font-size:19px;letter-spacing:-.01em;color:var(--ink);margin-bottom:4px}.empty-state p{font-size:14px;line-height:1.5;margin:0 0 16px;max-width:280px}.small{font-size:13px;color:var(--ink-2)}.divider{height:1px;background:var(--line);margin:14px 0;border:0}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:99px;background:var(--accent);color:var(--on-accent);font-size:11px;font-weight:700}.hug{font-size:40px;display:inline-block;animation:hugBurst .7s var(--spring) both}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes routeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes tabFade{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}@keyframes msgPop{0%{opacity:0;transform:scale(.96) translateY(4px)}to{opacity:1;transform:none}}@keyframes sheetUp{0%{opacity:0;transform:translate(-50%,100%)}to{opacity:1;transform:translate(-50%)}}@keyframes hugBurst{0%{transform:scale(.4);opacity:0}45%{transform:scale(1.22);opacity:1}70%{transform:scale(.96)}to{transform:scale(1);opacity:1}}@keyframes pop{0%{transform:scale(.4)}60%{transform:scale(1.25)}to{transform:scale(1)}}@keyframes blink{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.disc.spin{animation:none!important}}
