:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--c-bg:#090a0f;--c-surface:#17181f;--c-surface-2:#1f2028;--c-surface-3:#2a2b33;--c-border:#2a2b33;--c-border-input:#6e707a;--c-text:#f4f2ef;--c-text-muted:#9a9ba4;--c-text-on-photo:#fff;--c-accent:#e6b94f;--c-accent-strong:#f6d57a;--c-accent-surface:#2b261c;--c-on-accent:#17130a;--c-like:#ec4a77;--c-on-like:#fff;--c-superlike:#4fa3ff;--c-danger:#ff6b70;--c-danger-surface:#2a1517;--c-success:#4ed18d;--c-success-surface:#12291f;--c-badge-hot:#c9363b;--c-on-badge-hot:#fff;--c-focus:#f6d57a;--c-hairline:#ffffff14;--c-glass:#17181fb8;--c-scrim:#00000073;--c-backdrop:#090a0feb;--c-accent-glow:#e6b94f61;--g-accent:var(--c-accent);--g-photo-scrim:linear-gradient(180deg, #0000 45%, #0000008c 75%, #000000d9 100%);--g-blur-lock:linear-gradient(180deg, #090a0f33, #090a0fb3);--font-sans:Manrope, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, system-ui, sans-serif;--font-display:Unbounded, Manrope, system-ui, sans-serif;--t-caption:600 12px/16px var(--font-sans);--t-sm:500 14px/20px var(--font-sans);--t-base:500 16px/22px var(--font-sans);--t-lg:700 20px/26px var(--font-sans);--t-xl:800 26px/30px var(--font-display);--t-display:800 32px/36px var(--font-display);--s-0:0;--s-0_5:2px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--gutter:16px;--tabbar-h:64px;--tabbar-inset:12px;--header-h:56px;--action-btn:64px;--action-btn-primary:72px;--touch-min:44px;--max-w:480px;--tg-safe-top:env(safe-area-inset-top,0px);--tg-safe-bottom:env(safe-area-inset-bottom,0px);--tg-content-top:0px;--r-xs:8px;--r-sm:12px;--r-md:16px;--r-lg:20px;--r-xl:28px;--r-pill:999px;--sh-card:0 10px 30px #00000073;--sh-pop:0 18px 48px #0009;--sh-glow-accent:none;--sh-glow-like:0 6px 16px #00000059;--m-fast:.12s;--m-base:.2s;--m-slow:.32s;--m-ease:cubic-bezier(.2,.8,.2,1);--z-card:10;--z-actions:20;--z-tabbar:30;--z-sheet:40;--z-toast:50;--z-celebration:60}@media (prefers-reduced-motion:reduce){:root{--m-fast:0s;--m-base:0s;--m-slow:0s}}:root,:root[data-theme=turquoise]{--c-accent:#2ec4b6;--c-accent-strong:#6fe3d6;--c-accent-surface:#0f2e2b;--c-on-accent:#04201d;--c-focus:#6fe3d6;--c-accent-glow:#2ec4b661;--g-accent:var(--c-accent);--sh-glow-accent:none}:root[data-theme=pomegranate]{--c-accent:#ff7a59;--c-accent-strong:#ffa58c;--c-accent-surface:#33170f;--c-on-accent:#2a0d06;--c-focus:#ffa58c;--c-accent-glow:#ff7a5961;--g-accent:var(--c-accent);--sh-glow-accent:none}:root[data-theme=lavender]{--c-accent:#a78bfa;--c-accent-strong:#c9b8ff;--c-accent-surface:#231b3b;--c-on-accent:#170f33;--c-focus:#c9b8ff;--c-accent-glow:#a78bfa61;--g-accent:var(--c-accent);--sh-glow-accent:none}:root[data-theme=gold]{--c-accent:#e6b94f;--c-accent-strong:#f6d57a;--c-accent-surface:#2b261c;--c-on-accent:#17130a;--c-focus:#f6d57a;--c-accent-glow:#e6b94f61;--g-accent:var(--c-accent);--sh-glow-accent:none}html,body{background:var(--c-bg);color:var(--c-text);font:var(--t-base)}:focus-visible{outline:2px solid var(--c-focus);outline-offset:2px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}html,body{overscroll-behavior:none;overflow:hidden}@media (display-mode:standalone){html,body,#root{height:100vh}}body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;overscroll-behavior:none;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:default}img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;max-width:100%;display:block}h1,h2,h3,p{margin:0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--c-text-muted);font:var(--t-sm)}.app{max-width:var(--max-w);height:var(--tg-viewport-stable-height,100dvh);padding-top:calc(var(--tg-safe-top) + var(--tg-content-top));flex-direction:column;margin:0 auto;display:flex;position:relative;overflow:hidden}.screen{overscroll-behavior:contain;min-height:0;padding:var(--s-4) var(--gutter) var(--s-6);gap:var(--s-4);flex-direction:column;flex:1;display:flex;overflow-y:auto}.app.has-tabbar .screen{padding-bottom:calc(var(--tabbar-h) + var(--tabbar-inset) * 2 + var(--tg-safe-bottom) + var(--s-4))}.screen-title{font:var(--t-lg)}.section-label{font:var(--t-caption);text-transform:uppercase;letter-spacing:.08em;color:var(--c-text-muted)}.center-fill{flex:1;place-items:center;min-height:160px;display:grid}.btn{justify-content:center;align-items:center;gap:var(--s-2);border-radius:var(--r-pill);transition:transform var(--m-fast) var(--m-ease), filter var(--m-fast) var(--m-ease), opacity var(--m-fast);font-weight:700;display:inline-flex}.btn-md{min-height:48px;padding:0 var(--s-6);font-size:16px}.btn-sm{min-height:36px;padding:0 var(--s-4);font-size:14px}.btn-block{width:100%}.btn:active:not(:disabled){filter:brightness(.92);transform:scale(.98)}.btn:disabled{opacity:.45}.btn-primary{background:var(--g-accent);color:var(--c-on-accent);box-shadow:var(--sh-glow-accent)}.btn-secondary{background:var(--c-surface-2);color:var(--c-text);border:1px solid var(--c-hairline)}.btn-ghost{color:var(--c-text-muted)}.btn-danger{color:var(--c-danger);border:1px solid var(--c-danger)}.btn-label-loading{opacity:.7}.spinner{border:3px solid var(--c-surface-3);border-top-color:var(--c-accent);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}.spinner-sm{border-width:2px;border-color:var(--c-on-accent);border-top-color:#0000;width:16px;height:16px}@keyframes spin{to{transform:rotate(360deg)}}.loader-heart{width:44px;height:44px;filter:drop-shadow(0 0 12px color-mix(in srgb, var(--c-accent) 45%, transparent));animation:1.1s ease-in-out infinite heartbeat}@keyframes heartbeat{0%,to{opacity:.85;transform:scale(1)}15%{opacity:1;transform:scale(1.16)}30%{transform:scale(.98)}45%{transform:scale(1.1)}60%{transform:scale(1)}}.chat-skeleton{gap:var(--s-2);padding:var(--s-3) 0;flex-direction:column;display:flex}.skeleton-bubble{background:linear-gradient(90deg, var(--c-surface-2) 0%, var(--c-surface-3) 50%, var(--c-surface-2) 100%);background-size:200% 100%;border-radius:18px 18px 18px 6px;align-self:flex-start;height:38px;animation:1.3s ease-in-out infinite shimmer}.skeleton-bubble.is-mine{background-image:linear-gradient(90deg, color-mix(in srgb, var(--c-accent) 18%, var(--c-surface-2)) 0%, color-mix(in srgb, var(--c-accent) 30%, var(--c-surface-3)) 50%, color-mix(in srgb, var(--c-accent) 18%, var(--c-surface-2)) 100%);border-radius:18px 18px 6px;align-self:flex-end}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.chips{gap:var(--s-2);flex-wrap:wrap;display:flex}.chip{min-height:32px;padding:0 var(--s-3);border-radius:var(--r-pill);font:var(--t-sm);align-items:center;display:inline-flex}.chip-interest{border:1px solid var(--c-accent);color:var(--c-accent);background:var(--c-glass)}.chip-select{border:1px solid var(--c-border);color:var(--c-text);background:var(--c-surface);min-height:36px}.chip-select.is-selected{background:var(--c-accent-surface);border-color:var(--c-accent);color:var(--c-accent)}.verified{color:var(--c-accent);vertical-align:middle;display:inline-flex}.progress-label{font:var(--t-caption);color:var(--c-accent);margin-bottom:var(--s-2)}.progress-track{border-radius:var(--r-pill);background:var(--c-surface-3);height:4px;overflow:hidden}.progress-fill{background:var(--g-accent);height:100%;transition:width var(--m-slow) var(--m-ease)}.empty{text-align:center;justify-content:center;align-items:center;gap:var(--s-3);padding:var(--s-8) var(--s-4);flex-direction:column;flex:1;display:flex}.empty-icon{font-size:56px;line-height:1}.empty-title{font:var(--t-lg)}.empty-text{font:var(--t-sm);color:var(--c-text-muted);max-width:320px}.empty-actions{gap:var(--s-2);margin-top:var(--s-2);flex-direction:column;display:flex}.toasts{left:0;right:0;top:calc(var(--tg-safe-top) + var(--tg-content-top) + var(--s-3));align-items:center;gap:var(--s-2);z-index:var(--z-toast);pointer-events:none;padding:0 var(--gutter);flex-direction:column;display:flex;position:fixed}.toast{max-width:440px;padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--c-surface-3);box-shadow:var(--sh-pop);font:var(--t-sm);animation:toast-in var(--m-base) var(--m-ease)}.toast-error{border:1px solid var(--c-danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}}.icon-btn{width:var(--touch-min);height:var(--touch-min);color:var(--c-text);border-radius:50%;place-items:center;display:grid}.avatar{object-fit:cover;background:var(--c-surface-2);border-radius:50%;flex:none;width:56px;height:56px}.avatar-sm{width:40px;height:40px}.tabbar{z-index:var(--z-tabbar);left:var(--tabbar-inset);right:var(--tabbar-inset);bottom:calc(var(--tabbar-inset) + var(--tg-safe-bottom));height:var(--tabbar-h);background:var(--c-glass);-webkit-backdrop-filter:blur(20px);border:1px solid var(--c-hairline);border-radius:var(--r-xl);grid-template-columns:repeat(4,1fr);display:grid;position:absolute}.tab{justify-content:center;align-items:center;gap:var(--s-0_5);color:var(--c-text-muted);flex-direction:column;display:flex}.tab.is-active{color:var(--c-accent)}.tab:active{transform:scale(.96)}.tab-icon{display:inline-flex;position:relative}.tab-label{font:var(--t-caption)}.tab-badge{border-radius:var(--r-pill);background:var(--c-accent);min-width:18px;height:18px;color:var(--c-on-accent);font:var(--t-caption);text-align:center;padding:0 5px;line-height:18px;position:absolute;top:-6px;right:-12px}.feed{gap:var(--s-3);overflow:hidden}.feed-header{justify-content:space-between;align-items:center;display:flex}.logo{font-family:var(--font-display);color:var(--c-text);align-items:center;gap:var(--s-2);font-size:20px;font-weight:800;display:inline-flex}.logo-mark{width:26px;height:26px}.quota{font:var(--t-caption);color:var(--c-text-muted)}.deck{flex:1;min-height:0;position:relative}.card{border-radius:var(--r-xl);background:var(--c-surface);box-shadow:var(--sh-card);z-index:var(--z-card);-webkit-user-select:none;user-select:none;touch-action:pan-y;cursor:grab;position:absolute;inset:0;overflow:hidden}.card-under{opacity:.6;z-index:0;transform:scale(.95)translateY(10px)}.card-skeleton{flex:1;position:relative}.card-photo{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.card:after{content:"";background:var(--g-photo-scrim);pointer-events:none;position:absolute;inset:0}.card-dots{top:var(--s-2);left:var(--s-3);right:var(--s-3);gap:var(--s-1);z-index:2;display:flex;position:absolute}.card-dots span{border-radius:var(--r-pill);background:var(--c-hairline);flex:1;height:3px}.card-dots span.is-on{background:var(--c-text-on-photo)}.card-info{z-index:2;padding:var(--s-4) calc(var(--s-4) + 40px + var(--s-3)) calc(var(--action-btn-primary) / 2 + var(--s-6)) var(--s-4);color:var(--c-text-on-photo);gap:var(--s-2);flex-direction:column;display:flex;position:absolute;bottom:0;left:0;right:0}.card-name{font:var(--t-display);align-items:center;gap:var(--s-2);display:flex}.card-city,.card-goal{font:var(--t-sm)}.card-about{font:var(--t-sm);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.card-more{right:var(--s-4);bottom:calc(var(--action-btn-primary) / 2 + var(--s-6));border:1px solid var(--c-accent);width:40px;height:40px;color:var(--c-accent);background:var(--c-glass);border-radius:50%;place-items:center;display:grid;position:absolute}.stamp{top:var(--s-10);z-index:3;padding:var(--s-1) var(--s-3);font:var(--t-xl);letter-spacing:.04em;border-radius:var(--r-sm);pointer-events:none;border:3px solid;position:absolute}.stamp-like{left:var(--s-6);color:var(--c-like);transform:rotate(-14deg)}.stamp-nope{right:var(--s-6);color:var(--c-text);transform:rotate(14deg)}.actions{z-index:var(--z-actions);justify-content:center;align-items:center;gap:var(--s-5);margin-top:calc(var(--action-btn-primary) / -2 - var(--s-3));display:flex;position:relative}.action{transition:transform var(--m-fast) var(--m-ease);border-radius:50%;place-items:center;display:grid}.action:active:not(:disabled){transform:scale(.92)}.action:disabled{opacity:.4}.action-pass{width:var(--action-btn);height:var(--action-btn);background:var(--c-glass);border:1px solid var(--c-hairline);color:var(--c-text-muted);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.action-gift{width:var(--action-btn-primary);height:var(--action-btn-primary);background:var(--g-accent);color:var(--c-on-accent);box-shadow:var(--sh-glow-accent)}.action-like{width:var(--action-btn);height:var(--action-btn);background:var(--c-like);color:var(--c-on-like);box-shadow:var(--sh-glow-like)}.details{z-index:var(--z-sheet);background:var(--c-bg);max-width:var(--max-w);flex-direction:column;margin:0 auto;display:flex;position:fixed;inset:0}.details-scroll{overscroll-behavior:contain;padding-bottom:calc(var(--action-btn-primary) + var(--s-12) + var(--tg-safe-bottom));flex:1;overflow-y:auto}.details-photos{scroll-snap-type:x mandatory;display:flex;overflow-x:auto}.details-photos img{aspect-ratio:3/4;object-fit:cover;scroll-snap-align:start;flex:none;width:100%}.details-body{padding:var(--s-4) var(--gutter);gap:var(--s-4);flex-direction:column;display:flex}.details-name{font:var(--t-xl);align-items:center;gap:var(--s-2);display:flex}.details-close{top:calc(var(--tg-safe-top) + var(--tg-content-top) + var(--s-3));right:var(--s-3);background:var(--c-glass);position:absolute}.details-actions{left:0;right:0;bottom:calc(var(--s-4) + var(--tg-safe-bottom));position:absolute}.details-actions .actions{margin-top:0}.goal-pill{align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);border-radius:var(--r-md);background:var(--c-surface);border:1px solid var(--c-hairline);align-self:flex-start;font-weight:700;display:inline-flex}.section{gap:var(--s-2);padding:var(--s-4);border-radius:var(--r-lg);background:var(--c-surface);flex-direction:column;display:flex}.celebration{z-index:var(--z-celebration);background:var(--c-backdrop);-webkit-backdrop-filter:blur(16px);justify-content:center;align-items:center;gap:var(--s-4);padding:var(--s-6) var(--gutter);text-align:center;flex-direction:column;display:flex;position:fixed;inset:0}.celebration-photos{margin-bottom:var(--s-4);justify-content:center;display:flex}.celebration-photos img{aspect-ratio:3/4;object-fit:cover;border-radius:var(--r-lg);border:3px solid var(--c-accent);width:132px;box-shadow:var(--sh-pop);margin:0 calc(var(--s-3) * -1)}.celebration-title{font:var(--t-display);color:var(--c-accent)}.celebration-text{color:var(--c-text-muted);max-width:300px}.celebration-actions{gap:var(--s-2);width:100%;max-width:320px;margin-top:var(--s-4);flex-direction:column;display:flex}.rail{gap:var(--s-3);margin:0 calc(var(--gutter) * -1);padding:0 var(--gutter);scrollbar-width:none;display:flex;overflow-x:auto}.rail-item{gap:var(--s-1);text-align:left;flex-direction:column;flex:none;width:92px;display:flex}.rail-item img{object-fit:cover;border-radius:var(--r-md);border:1px solid var(--c-accent);width:92px;height:120px}.rail-name{font:var(--t-caption);align-items:center;gap:var(--s-1);display:flex}.chat-list{gap:var(--s-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.chat-row{align-items:center;gap:var(--s-3);width:100%;padding:var(--s-3);border-radius:var(--r-lg);background:var(--c-surface);text-align:left;min-height:76px;display:flex}.chat-row-main{gap:var(--s-0_5);flex-direction:column;flex:1;min-width:0;display:flex}.chat-row-name{font-weight:700}.chat-row-preview{font:var(--t-sm);color:var(--c-text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.chat-row.is-unread .chat-row-preview{color:var(--c-text)}.chat-row-meta{align-items:flex-end;gap:var(--s-1);flex-direction:column;display:flex}.chat-row-time{font:var(--t-caption);color:var(--c-text-muted)}.count{border-radius:var(--r-pill);background:var(--c-accent);min-width:20px;height:20px;color:var(--c-on-accent);font:var(--t-caption);text-align:center;padding:0 6px;line-height:20px}.chat{gap:0;padding:0;overflow:hidden}.chat-header{align-items:center;gap:var(--s-1);padding:var(--s-2) var(--s-2);border-bottom:1px solid var(--c-hairline);display:flex}.chat-peer{align-items:center;gap:var(--s-2);min-height:var(--touch-min);display:flex}.chat-peer-name{align-items:center;gap:var(--s-1);font-weight:700;display:flex}.chat-scroll{overscroll-behavior:contain;padding:var(--s-4) var(--gutter);gap:var(--s-2);flex-direction:column;flex:1;display:flex;overflow-y:auto}.safety{padding:var(--s-4);border-radius:var(--r-lg);background:var(--c-surface);border:1px solid var(--c-hairline);gap:var(--s-1);text-align:center;margin-bottom:var(--s-2);flex-direction:column;display:flex}.safety p{font:var(--t-sm);color:var(--c-text-muted)}.chat-hint{font:var(--t-sm);color:var(--c-text-muted);text-align:center}.bubble{max-width:78%;padding:var(--s-2) var(--s-3);border-radius:var(--r-lg);gap:var(--s-0_5);flex-direction:column;display:flex}.bubble-in{background:var(--c-surface-2);border-bottom-left-radius:var(--r-xs);align-self:flex-start}.bubble-out{background:var(--c-accent-surface);border-bottom-right-radius:var(--r-xs);align-self:flex-end}.bubble.is-failed{border:1px solid var(--c-danger)}.bubble-text{white-space:pre-wrap;overflow-wrap:anywhere}.bubble-meta{font:var(--t-caption);color:var(--c-text-muted);align-self:flex-end}.bubble-retry{font:var(--t-caption);color:var(--c-danger);text-align:left}.chat-banned{padding:var(--s-3) var(--gutter) calc(var(--s-3) + var(--tg-safe-bottom));border-top:1px solid var(--c-hairline);font:var(--t-sm);color:var(--c-text-muted);text-align:center;margin:0}.starters{gap:var(--s-2);padding:var(--s-2) var(--gutter);scrollbar-width:none;display:flex;overflow-x:auto}.starters .chip{flex:none}.composer{align-items:flex-end;gap:var(--s-2);padding:var(--s-2) var(--gutter) calc(var(--s-2) + var(--tg-safe-bottom));border-top:1px solid var(--c-hairline);display:flex}.composer-input{min-height:var(--touch-min);resize:none;max-height:120px;padding:11px var(--s-4);border-radius:var(--r-lg);border:1px solid var(--c-border);background:var(--c-surface-2);flex:1}.composer-input:focus{border-color:var(--c-accent);outline:none}.composer-send{width:var(--touch-min);height:var(--touch-min);background:var(--g-accent);color:var(--c-on-accent);border-radius:50%;place-items:center;display:grid}.composer-send:disabled{opacity:.4}.composer-gift{width:var(--touch-min);height:var(--touch-min);background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:50%;flex:none;place-items:center;font-size:22px;display:grid}.onboarding{gap:var(--s-6)}.step{gap:var(--s-4);flex-direction:column;display:flex}.step-title{font:var(--t-xl)}.step-footer{padding-bottom:var(--tg-safe-bottom);margin-top:auto}.field{gap:var(--s-2);border:0;flex-direction:column;min-width:0;margin:0;padding:0;display:flex}.field-label{font:var(--t-caption);text-transform:uppercase;letter-spacing:.08em;color:var(--c-text-muted);padding:0}.field-hint{font:var(--t-caption);color:var(--c-text-muted)}.field-error{font:var(--t-sm);color:var(--c-danger)}.input{width:100%;min-height:48px;padding:0 var(--s-4);border-radius:var(--r-md);border:1px solid var(--c-border);background:var(--c-surface-2);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.input:focus{border-color:var(--c-accent);outline:none}.input[aria-invalid=true]{border-color:var(--c-danger)}.textarea{padding:var(--s-3) var(--s-4);resize:vertical;min-height:110px}.segmented{gap:var(--s-2);grid-template-columns:1fr 1fr;display:grid}.segment{border-radius:var(--r-md);background:var(--c-surface-2);min-height:48px;color:var(--c-text-muted);border:1px solid #0000;font-weight:700}.segment.is-selected{background:var(--c-accent-surface);border-color:var(--c-accent);color:var(--c-accent)}.segment:disabled:not(.is-selected){opacity:.45}.options{gap:var(--s-2);flex-direction:column;display:flex}.option{min-height:52px;padding:0 var(--s-4);border-radius:var(--r-md);background:var(--c-surface);border:1px solid var(--c-hairline);text-align:left;font-weight:600}.option.is-selected{background:var(--c-accent-surface);border-color:var(--c-accent);color:var(--c-accent)}.photo-grid{gap:var(--s-2);grid-template-columns:repeat(3,1fr);display:grid}.photo-slot{aspect-ratio:3/4;border-radius:var(--r-md);background:var(--c-surface-2);position:relative;overflow:hidden}.photo-slot img{object-fit:cover;width:100%;height:100%}.photo-empty{border:1.5px dashed var(--c-border-input);color:var(--c-text-muted);place-items:center;font-size:28px;display:grid}.photo-main{left:var(--s-1);bottom:var(--s-1);padding:2px var(--s-2);border-radius:var(--r-pill);background:var(--c-accent);color:var(--c-on-accent);font:var(--t-caption);position:absolute}.photo-action{top:var(--s-1);background:var(--c-glass);width:28px;height:28px;color:var(--c-text);font:var(--t-caption);border-radius:50%;place-items:center;display:grid;position:absolute}.photo-remove{right:var(--s-1)}.photo-make-main{left:var(--s-1);color:var(--c-accent)}.profile-head{align-items:center;gap:var(--s-2);text-align:center;padding-top:var(--s-4);flex-direction:column;display:flex}.profile-avatar{object-fit:cover;border:2px solid var(--c-accent);background:var(--c-surface-2);border-radius:50%;width:112px;height:112px}.profile-name{font:var(--t-xl);align-items:center;gap:var(--s-2);display:flex}.stats{padding:var(--s-4);border-radius:var(--r-lg);background:var(--c-surface);grid-template-columns:repeat(3,1fr);display:grid}.stats div{align-items:center;gap:var(--s-1);flex-direction:column;display:flex}.stats strong{font:var(--t-xl);color:var(--c-accent)}.stats span{font:var(--t-caption);text-transform:uppercase;letter-spacing:.06em;color:var(--c-text-muted);text-align:center}.panel{padding:var(--s-4);border-radius:var(--r-lg);background:var(--c-surface)}.menu{padding:var(--s-1) 0}.menu-row{align-items:center;gap:var(--s-3);width:100%;padding:var(--s-3) var(--s-4);text-align:left;min-height:64px;display:flex}.menu-row+.menu-row{border-top:1px solid var(--c-hairline)}.menu-icon{border-radius:var(--r-sm);background:var(--c-surface-2);width:36px;height:36px;color:var(--c-accent);flex:none;place-items:center;display:grid}.menu-text{flex-direction:column;flex:1;display:flex}.menu-text small{font:var(--t-sm);color:var(--c-text-muted)}.soon{font:var(--t-caption);color:var(--c-accent);padding:2px var(--s-2);border:1px solid var(--c-accent);border-radius:var(--r-pill)}.sheet-layer{z-index:var(--z-sheet);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet-scrim{background:var(--c-scrim);position:absolute;inset:0}.sheet{width:100%;max-width:var(--max-w);overscroll-behavior:contain;background:var(--c-surface);border-radius:var(--r-xl) var(--r-xl) 0 0;max-height:88%;box-shadow:var(--sh-pop);padding:var(--s-3) var(--gutter) calc(var(--s-6) + var(--tg-safe-bottom));gap:var(--s-3);flex-direction:column;display:flex;position:relative;overflow-y:auto}.sheet-handle{border-radius:var(--r-pill);background:var(--c-surface-3);align-self:center;width:36px;height:4px}.sheet-title{font:var(--t-lg)}.check{align-items:flex-start;gap:var(--s-3);font:var(--t-sm);color:var(--c-text-muted);padding:var(--s-1) 0;display:flex}.check input{width:20px;height:20px;accent-color:var(--c-accent);flex:none;margin:0}.range-head{justify-content:space-between;align-items:baseline;display:flex}.range-head strong{color:var(--c-accent)}.range{height:32px;position:relative}.range:before,.range:after{content:"";border-radius:var(--r-pill);height:4px;position:absolute;top:14px}.range:before{background:var(--c-surface-3);left:0;right:0}.range:after{left:var(--from);right:calc(100% - var(--to));background:var(--c-accent)}.range input{pointer-events:none;appearance:none;z-index:1;background:0 0;width:100%;margin:0;position:absolute;inset:0}.range input::-webkit-slider-thumb{pointer-events:auto;-webkit-appearance:none;background:var(--c-text);border:2px solid var(--c-accent);cursor:pointer;border-radius:50%;width:28px;height:28px}.range input::-moz-range-thumb{pointer-events:auto;background:var(--c-text);border:2px solid var(--c-accent);cursor:pointer;border-radius:50%;width:24px;height:24px}.range input:focus-visible::-webkit-slider-thumb{outline:2px solid var(--c-focus);outline-offset:2px}.range-single{width:100%;accent-color:var(--c-accent);min-height:var(--touch-min)}fieldset:disabled .segment{opacity:.45}.feed-tools{align-items:center;gap:var(--s-1);display:flex}.card-report{top:var(--s-5);right:var(--s-3);z-index:3;background:var(--c-glass);width:36px;height:36px;color:var(--c-text-on-photo);position:absolute}.chat-menu,.chat-translate{color:var(--c-text-muted);margin-left:auto}.chat-translate.is-on{color:var(--c-accent)}.chat-translate+.chat-menu{margin-left:0}.bubble-row{flex-direction:column;max-width:78%;display:flex;position:relative}.bubble-row.is-in{align-self:flex-start;align-items:flex-start}.bubble-row.is-out{align-self:flex-end;align-items:flex-end}.bubble-row .bubble{align-self:auto;max-width:100%}.bubble-row.is-flash .bubble{outline:2px solid var(--c-accent);outline-offset:2px}.bubble-gesture{touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;max-width:100%;transition:transform .2s;position:relative}.bubble-reply-hint{background:var(--c-surface-2);width:28px;height:28px;color:var(--c-text-muted);opacity:.6;border-radius:50%;place-items:center;display:grid;position:absolute;top:50%;right:-36px;transform:translateY(-50%)}.bubble-reply-hint.is-armed{opacity:1;background:var(--c-accent);color:var(--c-on-accent)}.bubble-quote{max-width:100%;padding:var(--s-1) var(--s-2);border-left:3px solid var(--c-accent);border-radius:var(--r-xs);background:var(--c-surface-3);font:var(--t-caption);text-align:left;flex-direction:column;align-items:flex-start;gap:1px;display:flex}.bubble-quote strong{color:var(--c-accent)}.bubble-quote span,.reply-bar-text span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--c-text-muted);overflow:hidden}.reactions{gap:var(--s-1);margin-top:calc(-1 * var(--s-1));padding:0 var(--s-2);z-index:1;display:flex}.reaction{min-height:26px;padding:0 var(--s-2);border-radius:var(--r-pill);background:var(--c-surface-2);border:1px solid var(--c-hairline);align-items:center;gap:2px;font-size:15px;display:inline-flex}.reaction.is-mine{border-color:var(--c-accent);background:var(--c-accent-surface)}.reaction-n{font:var(--t-caption);color:var(--c-text-muted)}.bubble-menu{bottom:calc(100% + var(--s-1));z-index:6;gap:var(--s-1);padding:var(--s-1);border-radius:var(--r-lg);background:var(--c-surface);border:1px solid var(--c-hairline);flex-direction:column;display:flex;position:absolute;box-shadow:0 8px 24px #00000040}.bubble-row.is-in .bubble-menu{left:0}.bubble-row.is-out .bubble-menu{right:0}.bubble-menu-reactions{gap:2px;display:flex}.bubble-menu-emoji{border-radius:50%;place-items:center;width:40px;height:40px;font-size:22px;display:grid}.bubble-menu-emoji.is-mine{background:var(--c-accent-surface)}.bubble-menu-item{min-height:var(--touch-min);padding:0 var(--s-3);border-radius:var(--r-md);text-align:left;font:var(--t-sm)}.bubble-menu-item:hover,.bubble-menu-emoji:hover{background:var(--c-surface-2)}.bubble-menu-backdrop{z-index:5;background:0 0;position:fixed;inset:0}.reply-bar{align-items:center;gap:var(--s-2);padding:var(--s-2) var(--gutter);border-top:1px solid var(--c-hairline);display:flex}.reply-bar-icon{color:var(--c-accent);font-size:18px}.reply-bar-text{min-width:0;padding-left:var(--s-2);border-left:3px solid var(--c-accent);font:var(--t-caption);text-align:left;flex-direction:column;flex:1;align-items:flex-start;display:flex}.reply-bar-text strong{color:var(--c-accent)}.bubble-translated{font:var(--t-caption);color:var(--c-text-muted);text-underline-offset:2px;text-align:left;align-self:flex-start;text-decoration:underline}.report-link{font:var(--t-sm);color:var(--c-text-muted);padding:var(--s-2) 0;min-height:var(--touch-min);align-self:flex-start}.admin-head{align-items:center;gap:var(--s-2);display:flex}.admin-list{gap:var(--s-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.admin-item{gap:var(--s-2);flex-direction:column;display:flex}.admin-item.is-urgent{border:1px solid var(--c-danger)}.admin-target{align-items:center;gap:var(--s-3);display:flex}.admin-about{font:var(--t-sm);padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);background:var(--c-surface-2);overflow-wrap:anywhere}.ai-hint{font:var(--t-sm);padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);background:var(--c-surface-2);border-left:3px solid var(--c-text-muted)}.ai-hint--approve{border-left-color:var(--c-like)}.ai-hint--reject{border-left-color:var(--c-danger)}.ai-hint--doubtful{border-left-color:var(--c-superlike)}.ai-hint-title{font-weight:600}.ai-hint ul{margin:var(--s-1) 0 0;padding-left:1.2em}.admin-actions{gap:var(--s-2);flex-wrap:wrap;display:flex}.admin-user-main{overflow-wrap:anywhere;flex:1;min-width:0}.segmented-3{grid-template-columns:repeat(3,1fr)}.segmented-4{grid-template-columns:repeat(4,1fr)}.admin-tabs{gap:var(--s-2);scrollbar-width:none;margin:0 calc(var(--gutter) * -1);padding:0 var(--gutter);display:flex;overflow-x:auto}.admin-tabs .segment{padding:0 var(--s-4);min-height:40px;font:var(--t-sm);flex:none;font-weight:700}.gift-grid{gap:var(--s-2);grid-template-columns:repeat(3,1fr);display:grid}.gift-tile{align-items:center;gap:var(--s-1);padding:var(--s-3) var(--s-2);border-radius:var(--r-md);background:var(--c-surface-2);border:1.5px solid var(--c-hairline);flex-direction:column;display:flex}.gift-tile.is-selected{background:var(--c-accent-surface);border-color:var(--c-accent)}.gift-emoji{font-size:40px;line-height:1}.gift-tile{isolation:isolate;position:relative}.gift-tile:before{content:"";z-index:-1;left:50%;top:var(--s-2);background:linear-gradient(90deg, var(--c-accent) 50%, var(--c-like) 50%);opacity:0;width:64px;height:64px;margin-left:-32px;transition:opacity .25s,transform .35s cubic-bezier(.2,1.4,.4,1);position:absolute;transform:scale(.5);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 97.2 98'%3E%3Cpath d='M48.6 88 L17 55 C6 42 15 24 32 10 C42 18 48.6 26 48.6 37 Z M48.6 88 L80.2 55 C91.2 42 82.2 24 65.2 10 C55.2 18 48.6 26 48.6 37 Z'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 97.2 98'%3E%3Cpath d='M48.6 88 L17 55 C6 42 15 24 32 10 C42 18 48.6 26 48.6 37 Z M48.6 88 L80.2 55 C91.2 42 82.2 24 65.2 10 C55.2 18 48.6 26 48.6 37 Z'/%3E%3C/svg%3E") 50%/contain no-repeat}.gift-tile.is-selected:before{opacity:.24;transform:scale(1)}.gift-tile.is-selected{box-shadow:0 0 0 3px var(--c-accent-glow)}@media (prefers-reduced-motion:no-preference){.gift-tile.is-selected .gift-emoji{animation:.45s cubic-bezier(.2,1.4,.4,1) gift-pick}}@keyframes gift-pick{0%{transform:scale(1)}40%{transform:scale(1.18)translateY(-4px)}to{transform:scale(1)}}.action-small{background:var(--c-glass);border:1px solid var(--c-hairline);width:44px;height:44px;color:var(--c-text-muted);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:relative}.action-super{color:var(--c-superlike);border-color:var(--c-superlike)}.action-count{border-radius:var(--r-pill);background:var(--c-superlike);min-width:18px;height:18px;color:var(--c-bg);font:var(--t-caption);text-align:center;line-height:18px;position:absolute;top:-4px;right:-4px}.like-card.is-super{outline:2px solid var(--c-superlike)}.super-badge{top:var(--s-2);left:var(--s-2);padding:2px var(--s-2);border-radius:var(--r-pill);background:var(--c-superlike);color:var(--c-bg);font:var(--t-caption);position:absolute}.segmented-4 .segment{font:var(--t-sm);padding:0 var(--s-1);font-weight:700}.selfie-compare{gap:var(--s-2);grid-template-columns:1fr 1fr;display:grid}.selfie-compare figure{gap:var(--s-1);flex-direction:column;margin:0;display:flex}.selfie-compare img{aspect-ratio:3/4;object-fit:cover;border-radius:var(--r-md);background:var(--c-surface-2);width:100%}.selfie-compare figcaption{font:var(--t-caption);color:var(--c-text-muted);text-align:center}.pose{align-items:center;gap:var(--s-2);padding:var(--s-6);border-radius:var(--r-lg);background:var(--c-accent-surface);border:1px solid var(--c-accent);text-align:center;flex-direction:column;display:flex}.pose-emoji{font-size:72px;line-height:1}.rules{padding-left:var(--s-5);gap:var(--s-1);font:var(--t-sm);color:var(--c-text-muted);flex-direction:column;margin:0;display:flex}.stat-grid{gap:var(--s-2);grid-template-columns:1fr 1fr;display:grid}.stat-cell{padding:var(--s-3) var(--s-4);border-radius:var(--r-lg);background:var(--c-surface);gap:var(--s-1);flex-direction:column;display:flex}.stat-cell strong{font:var(--t-xl);color:var(--c-accent)}.money-total{margin-bottom:var(--s-3)}.stat-cell span{font:var(--t-caption);color:var(--c-text-muted)}.theme-picker{gap:var(--s-2);margin-bottom:var(--s-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.theme-btn{align-items:center;gap:var(--s-1);padding:var(--s-2) var(--s-1);border-radius:var(--r-md);background:var(--c-surface-2);font:var(--t-caption);color:var(--c-text-muted);border:1.5px solid #0000;flex-direction:column;display:flex}.theme-btn.is-selected{border-color:var(--c-accent);color:var(--c-text)}.theme-swatch{width:28px;height:28px;box-shadow:inset 0 0 0 2px var(--c-hairline);border-radius:50%}.lang-switch{gap:var(--s-2);grid-template-columns:repeat(2,1fr);display:grid}.lang-btn{border-radius:var(--r-pill);background:var(--c-surface-2);min-height:40px;color:var(--c-text-muted);font:var(--t-sm);border:1px solid #0000;font-weight:700}.lang-btn.is-selected{background:var(--c-accent-surface);border-color:var(--c-accent);color:var(--c-accent)}.perks{gap:var(--s-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.perks li{padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--c-surface-2);flex-direction:column;display:flex}.perks li span{font:var(--t-sm);color:var(--c-text-muted)}.plans{gap:var(--s-2);grid-template-columns:repeat(auto-fit,minmax(96px,1fr));display:grid}.plan{align-items:center;gap:var(--s-1);padding:var(--s-5) var(--s-2) var(--s-3);border-radius:var(--r-md);background:var(--c-surface-2);border:1.5px solid var(--c-hairline);flex-direction:column;display:flex;position:relative}.plan.is-selected{background:var(--c-accent-surface);border-color:var(--c-accent)}.plan-price{color:var(--c-accent);font-weight:800}.plan-uzs{font:var(--t-caption);color:var(--c-text-muted)}.plan-tag{top:calc(var(--s-2) * -1);padding:2px var(--s-2);border-radius:var(--r-pill);background:var(--c-accent);color:var(--c-on-accent);font:var(--t-caption);white-space:nowrap;position:absolute}.plan-tag-hot{background:var(--c-badge-hot);color:var(--c-on-badge-hot)}.pay-alt{gap:var(--s-2);grid-template-columns:1fr 1fr;display:grid}.menu-row-premium .menu-icon{background:var(--g-accent);color:var(--c-on-accent)}.like-grid{gap:var(--s-3);grid-template-columns:1fr 1fr;display:grid}.like-card{border-radius:var(--r-lg);background:var(--c-surface);flex-direction:column;display:flex;position:relative;overflow:hidden}.like-open{text-align:left;display:block;position:relative}.like-open img,.like-card.is-locked img{aspect-ratio:3/4;object-fit:cover;width:100%}.like-card.is-locked img{filter:blur(24px);transform:scale(1.15)}.like-info{padding:var(--s-6) var(--s-3) var(--s-2);background:var(--g-photo-scrim);color:var(--c-text-on-photo);flex-direction:column;display:flex;position:absolute;bottom:0;left:0;right:0}.like-name{align-items:center;gap:var(--s-1);font-weight:700;display:flex}.like-city{font:var(--t-caption)}.like-actions{gap:var(--s-2);padding:var(--s-2);grid-template-columns:1fr 1fr;display:grid}.like-btn{border-radius:var(--r-sm);background:var(--c-surface-2);min-height:40px;color:var(--c-text-muted);font-size:18px}.like-btn-like{background:var(--c-like);color:var(--c-on-like)}.locked-note{gap:var(--s-2);flex-direction:column;display:flex}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2s}.loader-heart,.skeleton-bubble,.toast{animation:none}}.card-reason{font:var(--t-caption);padding:2px var(--s-2);border-radius:var(--r-pill);background:var(--c-glass);color:var(--c-accent-strong);border:1px solid var(--c-accent-surface);align-self:flex-start}.coach{z-index:5;border-radius:var(--r-xl);justify-content:center;align-items:center;gap:var(--s-2);background:var(--c-backdrop);color:var(--c-text);text-align:center;padding:var(--s-6);font:var(--t-sm);flex-direction:column;display:flex;position:absolute;inset:0}.coach strong{font:var(--t-xl)}.coach small{color:var(--c-text-muted)}.coach-hand{font-size:44px;animation:1.6s ease-in-out infinite coach-swipe}.coach-ok{margin-top:var(--s-4);padding:var(--s-2) var(--s-5);border-radius:var(--r-pill);background:var(--g-accent);color:var(--c-on-accent);font-weight:700}@keyframes coach-swipe{0%,to{transform:translate(-40px)rotate(-10deg)}50%{transform:translate(40px)rotate(10deg)}}@media (prefers-reduced-motion:reduce){.coach-hand{animation:none}}.consent{gap:var(--s-3);font:var(--t-sm);color:var(--c-text-muted);margin-top:var(--s-4);cursor:pointer;align-items:flex-start;display:flex}.consent input{width:22px;height:22px;accent-color:var(--c-accent);flex:none;margin:1px 0 0}.consent a,.link{color:var(--c-accent);text-underline-offset:2px;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.consent.is-invalid{color:var(--c-danger)}.consent-gate{gap:var(--s-4);min-height:100%;padding:var(--s-6) var(--s-4);flex-direction:column;justify-content:center;display:flex}.consent-mark{align-self:center;width:72px;height:72px}.legal-links{gap:var(--s-1) var(--s-3);flex-wrap:wrap;display:flex}.menu-toggle{cursor:pointer}.menu-static{cursor:default}.sheet .panel{background:var(--c-surface-2)}.menu-price{font:var(--t-sm);color:var(--c-text-muted);white-space:nowrap;flex:none}.switch{appearance:none;border-radius:var(--r-pill);background:var(--c-border);cursor:pointer;flex:none;width:48px;height:28px;transition:background .2s;position:relative}.switch:after{content:"";background:var(--c-text);border-radius:50%;width:22px;height:22px;transition:transform .2s;position:absolute;top:3px;left:3px}.switch:checked{background:var(--c-accent)}.switch:checked:after{background:var(--c-on-accent);transform:translate(20px)}.switch:focus-visible{outline:2px solid var(--c-focus);outline-offset:2px}.selfie-cam{gap:var(--s-3);flex-direction:column;display:flex}.selfie-frame{aspect-ratio:3/4;border-radius:var(--r-xl);background:var(--c-surface);border:1px solid var(--c-accent-surface);place-items:center;width:100%;max-height:60vh;display:grid;position:relative;overflow:hidden}.selfie-video,.selfie-shot{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.selfie-placeholder{opacity:.6;font-size:64px}.admin-tabs,.rail,.starters,.details-photos{flex-shrink:0}.admin-tabs{top:calc(var(--s-4) * -1);z-index:3;background:var(--c-bg);padding-top:var(--s-2);padding-bottom:var(--s-2);position:sticky}@media (hover:hover) and (pointer:fine){.admin-tabs{flex-wrap:wrap;overflow-x:visible}.rail,.starters,.details-photos,.review-photos{scrollbar-width:thin;scrollbar-color:var(--c-surface-3) transparent}}.bubble-hidden{border:1px dashed var(--c-border-input);border-radius:var(--r-sm);padding:var(--s-2);color:var(--c-text-muted);font:var(--t-sm);text-align:left;cursor:pointer;background:0 0}.bubble-warning{margin-top:var(--s-1);font:var(--t-caption);color:var(--c-danger);display:block}.gift-rail{padding-bottom:var(--s-1)}.gift-from{width:92px;color:var(--c-text);cursor:pointer;background:0 0;border:0;flex-direction:column;flex:none;align-items:center;gap:4px;padding:0;display:flex}.gift-from-photo{background:linear-gradient(135deg, #ff9ab8, var(--c-like));border-radius:50%;width:76px;height:76px;padding:3px;position:relative}.gift-from-photo img{object-fit:cover;border:2px solid var(--c-bg);border-radius:50%;width:100%;height:100%}.gift-from-emoji{background:var(--c-surface);border:2px solid var(--c-bg);border-radius:50%;place-items:center;width:30px;height:30px;font-size:17px;display:grid;position:absolute;bottom:-4px;right:-4px}.gift-from-name{font:var(--t-caption);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:700;overflow:hidden}.gift-from-note{font:var(--t-caption);color:var(--c-text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.review-banner{gap:var(--s-2);padding:var(--s-2) var(--s-3);border-radius:var(--r-md);background:var(--c-surface-2);border:1px solid var(--c-hairline);font:var(--t-sm);align-items:flex-start;display:flex}.review-banner.is-rejected{border-color:var(--c-danger)}.review-actions{gap:var(--s-2);margin-top:var(--s-2);flex-wrap:wrap;display:flex}.review-photos{gap:var(--s-2);flex-shrink:0;display:flex;overflow-x:auto}.review-photos img{object-fit:cover;border-radius:var(--r-md);flex:none;width:96px;height:128px}.coach-keys{opacity:.85}.is-desktop ::-webkit-scrollbar{width:8px;height:8px}.is-desktop ::-webkit-scrollbar-thumb{background:var(--c-surface-3);border-radius:var(--r-pill)}.is-desktop ::-webkit-scrollbar-track{background:0 0}@media (hover:hover){.is-desktop .btn:hover:not(:disabled),.is-desktop .action:hover:not(:disabled){filter:brightness(1.12)}.is-desktop .icon-btn:hover,.is-desktop .menu-row:hover,.is-desktop .segment:hover:not(.is-selected),.is-desktop .chip-select:hover{background:var(--c-surface-2)}.is-desktop .tab:hover:not(.is-active){color:var(--c-text)}.is-desktop .like-card:hover img,.is-desktop .gift-from:hover img{filter:brightness(1.08)}.is-desktop .card:active{cursor:grabbing}}@media (width>=640px){html.is-desktop{--max-w:520px}.is-desktop .app{border-left:1px solid var(--c-hairline);border-right:1px solid var(--c-hairline)}}@media (width>=640px) and (height>=900px){html.is-desktop{--max-w:560px}}.admin-gender{margin:var(--s-3) 0}.gender-mark{font-weight:700}.gender-male{color:#5aa9ff}.gender-female{color:#ff6fa8}.admin-more{padding:var(--s-3) 0;justify-content:center;display:flex}.bubble.is-gift{padding:var(--s-2);background:linear-gradient(160deg, var(--c-accent-surface), var(--c-surface-2));border:1px solid var(--c-accent-glow)}.gift-card{min-width:180px;max-width:240px;padding:var(--s-3) var(--s-3) var(--s-1);text-align:center;flex-direction:column;align-items:center;gap:2px;display:flex}.gift-card-art{width:96px;height:96px;margin-bottom:var(--s-2);background:radial-gradient(circle, var(--c-accent-glow) 0%, transparent 70%);border-radius:50%;place-items:center;font-size:64px;line-height:1;display:grid}.gift-card-title{font:var(--t-lg);color:var(--c-text)}.gift-card-from{font:var(--t-sm);color:var(--c-text-muted)}.gift-card-note{margin:var(--s-2) 0 0;padding:var(--s-2) var(--s-3);border-radius:var(--r-md);background:var(--c-hairline);font:var(--t-base);overflow-wrap:anywhere}@media (prefers-reduced-motion:no-preference){.gift-card-art{animation:.5s cubic-bezier(.2,1.4,.4,1) both gift-pop}}@keyframes gift-pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.gift-card-art:has(.gift-reveal.is-playing){animation:none}.gift-reveal{place-items:center;width:100%;height:100%;display:grid;position:relative}.gift-reveal-fx{pointer-events:none;z-index:1;position:absolute;inset:0}.gift-reveal-fx>*{opacity:0;position:absolute}.gift-reveal-mark{width:116%;height:116%;inset:-8%;overflow:visible}.gift-reveal-l,.gift-reveal-r{transform-box:fill-box}.gift-reveal-l{fill:var(--c-accent);transform-origin:100% 95%}.gift-reveal-r{fill:var(--c-like);transform-origin:0 95%}.gift-reveal-ring{border:3px solid var(--c-accent);border-radius:50%;inset:0}.gift-reveal-heart{background:var(--c-accent);width:14px;height:13px;margin:-6px 0 0 -7px;top:50%;left:50%;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 22'%3E%3Cpath d='M12 21 C5 15 0 11 0 6 C0 2.5 2.7 0 6 0 C8.4 0 10.6 1.3 12 3.3 C13.4 1.3 15.6 0 18 0 C21.3 0 24 2.5 24 6 C24 11 19 15 12 21 Z'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 22'%3E%3Cpath d='M12 21 C5 15 0 11 0 6 C0 2.5 2.7 0 6 0 C8.4 0 10.6 1.3 12 3.3 C13.4 1.3 15.6 0 18 0 C21.3 0 24 2.5 24 6 C24 11 19 15 12 21 Z'/%3E%3C/svg%3E") 50%/contain no-repeat}.gift-reveal-heart.is-pink{background:var(--c-like)}.gift-reveal.is-playing .gift-reveal-mark{opacity:1}.gift-reveal.is-playing .gift-reveal-l{animation:1.7s cubic-bezier(.3,.7,.3,1) both gr-half-l}.gift-reveal.is-playing .gift-reveal-r{animation:1.7s cubic-bezier(.3,.7,.3,1) both gr-half-r}.gift-reveal.is-playing .gift-reveal-ring{animation:1.7s ease-out both gr-ring}.gift-reveal.is-playing .gift-reveal-heart{animation:1.7s cubic-bezier(.2,.8,.3,1) both gr-heart}.gift-reveal.is-playing .gift-reveal-art{animation:1.7s ease-out both gr-art}.gift-reveal-art{place-items:center;display:grid}@keyframes gr-half-l{0%{opacity:0;transform:translate(-60%)rotate(-24deg)}24%{opacity:1;transform:none}34%{opacity:1;transform:scale(1.06)}42%{opacity:1;transform:none}64%{opacity:0;transform:translate(-46%)rotate(-30deg)}to{opacity:0;transform:translate(-46%)rotate(-30deg)}}@keyframes gr-half-r{0%{opacity:0;transform:translate(60%)rotate(24deg)}24%{opacity:1;transform:none}34%{opacity:1;transform:scale(1.06)}42%{opacity:1;transform:none}64%{opacity:0;transform:translate(46%)rotate(30deg)}to{opacity:0;transform:translate(46%)rotate(30deg)}}@keyframes gr-art{0%,40%{opacity:0;transform:scale(.2)}56%{opacity:1;transform:scale(1.16)}70%{transform:scale(.95)}82%,to{opacity:1;transform:scale(1)}}@keyframes gr-ring{0%,42%{opacity:0;transform:scale(.4)}48%{opacity:.9}to{opacity:0;transform:scale(1.7)}}@keyframes gr-heart{0%,44%{transform:rotate(var(--a)) translateY(0) scale(0);opacity:0}52%{opacity:1;transform:rotate(var(--a)) translateY(calc(var(--d) * -.4)) scale(1)}to{transform:rotate(var(--a)) translateY(calc(var(--d) * -1)) scale(.5);opacity:0}}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{overflow-x:hidden}.bubble-text,.card-about,.details-body,.admin-user-main{overflow-wrap:anywhere}@media (width<=360px){:root{--gutter:12px;--action-btn:56px;--action-btn-primary:64px;--t-display:800 26px/30px var(--font-display)}.actions{gap:var(--s-3)}}@media (orientation:landscape) and (height<=520px){:root{--max-w:680px;--tabbar-h:50px;--tabbar-inset:6px;--action-btn:46px;--action-btn-primary:54px;--t-display:800 22px/26px var(--font-display)}.screen{padding-top:var(--s-2);gap:var(--s-2)}.card-about,.card-goal,.card-reason{display:none}.card-info{gap:var(--s-1)}.sheet{max-height:96%}.safety p{display:none}.safety{padding:var(--s-2) var(--s-3)}.composer-input{max-height:72px}.details-photos img{aspect-ratio:auto;height:75vh}.selfie-frame{max-height:72vh}.celebration{place-content:center;column-gap:var(--s-6);row-gap:var(--s-2);text-align:left;grid-template-columns:auto minmax(0,340px);display:grid}.celebration-photos{grid-row:1/span 3;margin:0}.celebration-photos img{width:104px}.celebration-actions{margin-top:var(--s-2)}}.celebration .sheet{text-align:left}.edge-back{z-index:1000;pointer-events:none;width:40px;height:40px;color:var(--c-text);background:color-mix(in srgb, var(--c-text) 12%, transparent);-webkit-backdrop-filter:blur(8px);border-radius:50%;place-items:center;padding-bottom:3px;font-size:30px;line-height:1;transition:background-color .15s,color .15s;display:grid;position:fixed;top:50%;left:0}.edge-back.is-ready{background:var(--c-accent);color:#fff}.app-layer{left:0;right:0;top:var(--vv-top,0px);height:var(--vv-h,var(--tg-viewport-stable-height,100dvh));z-index:calc(var(--z-sheet) - 1);background:var(--c-bg);width:100%;position:fixed;bottom:auto}.app-layer.is-dragged,.details.is-dragged{will-change:transform;box-shadow:-12px 0 32px #00000059}.edge-shade{pointer-events:none;background:#000;position:fixed;inset:0}.card-info>:not(.card-more){zoom:calc(1 / var(--text-zoom,1))}.card-info .chips{max-height:32px;overflow:hidden}.admin-open{cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;padding:0}.admin-user-main[role=button]{cursor:pointer}.admin-card{gap:var(--s-3);text-align:left;flex-direction:column;display:flex}.admin-card-photos{gap:var(--s-2);padding-top:6px;display:flex;overflow-x:auto}.admin-card-photo{flex:none;position:relative}.admin-card-photo img{aspect-ratio:3/4;object-fit:cover;border-radius:var(--r-md);cursor:pointer;width:96px;display:block}.admin-photo-del{background:var(--c-danger);color:#fff;cursor:pointer;border:0;border-radius:50%;place-items:center;width:28px;height:28px;font-weight:700;display:grid;position:absolute;top:4px;right:4px}.admin-photo-del:disabled{opacity:.5}.admin-card-stats{gap:var(--s-1);margin:0;display:grid}.admin-card-stats>div{justify-content:space-between;gap:var(--s-3);padding:var(--s-1) 0;border-bottom:1px solid var(--c-hairline);display:flex}.admin-card-stats dt{color:var(--c-text-muted);font:var(--t-sm)}.admin-card-stats dd{font:var(--t-sm);text-align:right;margin:0;font-weight:700}.admin-card-h{font:var(--t-base);margin-top:var(--s-2);font-weight:700}.admin-card-list{padding-left:var(--s-5);gap:var(--s-1);font:var(--t-sm);flex-direction:column;margin:0;display:flex}.admin-card-screen{padding-top:calc(var(--tg-safe-top) + var(--tg-content-top))}.admin-card-head{padding:var(--s-2) var(--gutter)}.admin-card-scroll{padding:var(--s-2) var(--gutter) calc(var(--s-8) + var(--tg-safe-bottom))}.photo-viewer{z-index:calc(var(--z-sheet) + 2);background:#000;max-width:none}.photo-viewer-strip{scroll-snap-type:x mandatory;scrollbar-width:none;flex:1;display:flex;overflow-x:auto}.photo-viewer-strip::-webkit-scrollbar{display:none}.photo-viewer-slide{scroll-snap-align:start;flex:none;place-items:center;width:100%;height:100%;display:grid}.photo-viewer-slide img{object-fit:contain;-webkit-user-select:none;user-select:none;max-width:100%;max-height:100%}.photo-viewer-close{top:calc(var(--tg-safe-top) + var(--tg-content-top) + var(--s-3));right:var(--s-3);background:var(--c-glass);color:#fff;position:absolute}.photo-viewer-count{left:50%;bottom:calc(var(--s-6) + var(--tg-safe-bottom));background:var(--c-glass);color:#fff;border-radius:999px;padding:4px 12px;font-size:14px;position:absolute;transform:translate(-50%)}.review-photos img,.admin-card-photo img{cursor:zoom-in}.admin-reply{white-space:pre-wrap;border-left:3px solid var(--c-accent,#e8c25a);padding-left:var(--s-2)}.admin-tab-count{border-radius:var(--r-pill);background:var(--c-danger);color:#fff;min-width:18px;height:18px;font:var(--t-caption);text-align:center;vertical-align:1px;margin-left:6px;padding:0 5px;font-weight:700;line-height:18px;display:inline-block}.menu-row .admin-tab-count{margin:0 var(--s-2) 0 0;flex:none}.daily-grid{gap:var(--s-2);margin:0;margin-bottom:var(--s-2);grid-template-columns:repeat(4,minmax(0,1fr));padding:0;list-style:none;display:grid}.daily-cell{align-items:center;gap:var(--s-1);padding:var(--s-2) var(--s-1);border-radius:var(--r-md);background:var(--c-surface);border:1px solid var(--c-hairline);text-align:center;flex-direction:column;display:flex}.daily-cell.is-big{grid-column:span 2}.daily-day{font-size:var(--t-caption);color:var(--c-text-muted);white-space:nowrap}.daily-icon{height:24px;color:var(--c-like);place-items:center;font-size:22px;line-height:1;display:grid}.daily-prize{font-size:var(--t-caption);text-align:center;text-wrap:balance;justify-content:center;align-items:flex-start;min-height:2.4em;font-weight:600;line-height:1.2;display:flex}.daily-cell.is-today{background:var(--c-accent-surface);border-color:var(--c-accent);box-shadow:var(--sh-glow-accent)}.daily-cell.is-done{opacity:.55}.daily-cell.is-done .daily-icon{color:var(--c-success)}.gift-art{place-items:center;line-height:1;display:inline-grid;position:relative}.gift-art-emoji{will-change:transform;display:block}.gift-spark{color:#ffd76a;opacity:0;pointer-events:none;text-shadow:0 0 6px #ffd76acc;font-size:.28em;font-style:normal;position:absolute}.gift-spark.s1{top:-6%;right:-4%}.gift-spark.s2{font-size:.2em;bottom:8%;left:-10%}.gift-spark.s3{font-size:.16em;top:18%;left:-6%}.gift-bubble{opacity:0;pointer-events:none;background:#fff4c8e6;border-radius:50%;width:.1em;height:.1em;position:absolute;top:6%;left:58%}.gift-bubble.b2{width:.07em;height:.07em;left:66%}.gift-bubble.b3{width:.06em;height:.06em;left:52%}.gift-petal{opacity:0;pointer-events:none;background:#ff5d7a;border-radius:60% 0;width:.14em;height:.1em;position:absolute;top:20%;left:50%}.gift-petal.p2{background:#ff8aa3;left:30%}@media (prefers-reduced-motion:no-preference){.gift-art-heart .gift-art-emoji{animation:1.4s ease-in-out infinite g-beat}.gift-art-bear .gift-art-emoji{transform-origin:50% 90%;animation:2.2s ease-in-out infinite g-wiggle}.gift-art-box .gift-art-emoji{transform-origin:50% 100%;animation:2.6s ease-in-out infinite g-shake}.gift-art-rose .gift-art-emoji,.gift-art-bouquet .gift-art-emoji{transform-origin:50% 100%;animation:3s ease-in-out infinite g-sway}.gift-art-cake .gift-art-emoji{transform-origin:50% 100%;animation:2s ease-in-out infinite g-hop}.gift-art-champagne .gift-art-emoji{transform-origin:50% 100%;animation:2.4s ease-in-out infinite g-tilt}.gift-art-ring .gift-art-emoji{animation:3.2s ease-in-out infinite g-spin}.gift-art-diamond .gift-art-emoji{animation:2.8s ease-in-out infinite g-float}.gift-art .gift-art-emoji{animation-delay:var(--gift-delay,0s)}.gift-spark{animation:2.2s ease-in-out infinite g-twinkle;animation-delay:calc(var(--gift-delay,0s) + .2s)}.gift-spark.s2{animation-delay:calc(var(--gift-delay,0s) + .9s)}.gift-spark.s3{animation-delay:calc(var(--gift-delay,0s) + 1.5s)}.gift-bubble{animation:1.8s ease-out infinite g-bubble;animation-delay:calc(var(--gift-delay,0s) + .3s)}.gift-bubble.b2{animation-delay:calc(var(--gift-delay,0s) + .9s)}.gift-bubble.b3{animation-delay:calc(var(--gift-delay,0s) + 1.4s)}.gift-petal{animation:3.6s ease-in infinite g-petal;animation-delay:calc(var(--gift-delay,0s) + .5s)}.gift-petal.p2{animation-delay:calc(var(--gift-delay,0s) + 2.2s)}.gift-tile.is-selected .gift-art-emoji{animation-duration:1.1s}}@keyframes g-beat{0%,40%,to{transform:scale(1)}15%{transform:scale(1.14)}28%{transform:scale(1.04)}}@keyframes g-wiggle{0%,to{transform:rotate(0)translateY(0)}20%{transform:rotate(-9deg)}40%{transform:rotate(8deg)translateY(-6%)}60%{transform:rotate(-5deg)}80%{transform:rotate(0)translateY(0)}}@keyframes g-shake{0%,55%,to{transform:translateY(0)rotate(0)}62%{transform:rotate(-7deg)}69%{transform:rotate(7deg)}76%{transform:rotate(-4deg)}84%{transform:translateY(-14%)rotate(0)}92%{transform:translateY(0)scale(1.05,.95)}}@keyframes g-sway{0%,to{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}@keyframes g-hop{0%,60%,to{transform:translateY(0)scale(1)}70%{transform:translateY(0)scale(1.08,.92)}82%{transform:translateY(-14%)scale(.96,1.04)}92%{transform:translateY(0)scale(1.04,.96)}}@keyframes g-tilt{0%,to{transform:rotate(0)}30%{transform:rotate(-12deg)}45%{transform:rotate(10deg)translateY(-6%)}60%{transform:rotate(0)}}@keyframes g-spin{0%,to{transform:translateY(0)rotateY(0)}50%{transform:translateY(-8%)rotateY(180deg)}}@keyframes g-float{0%,to{filter:brightness();transform:translateY(0)rotate(-4deg)}50%{filter:brightness(1.25);transform:translateY(-9%)rotate(4deg)}}@keyframes g-twinkle{0%,to{opacity:0;transform:scale(.4)rotate(0)}30%{opacity:1;transform:scale(1.1)rotate(45deg)}60%{opacity:0;transform:scale(.6)rotate(90deg)}}@keyframes g-bubble{0%{opacity:0;transform:translateY(0)}15%{opacity:1}to{opacity:0;transform:translate(.08em,-.9em)}}@keyframes g-petal{0%{opacity:0;transform:translate(0)rotate(0)}15%{opacity:.9}to{opacity:0;transform:translate(.25em,.9em)rotate(220deg)}}.gift-lottie{width:1.3em;height:1.3em}.gift-lottie>*{grid-area:1/1}.gift-lottie-box{width:100%;height:100%}.gift-lottie-box svg{display:block}.actions-main .action-like{width:var(--action-btn-primary);height:var(--action-btn-primary)}.actions-main .action-rewind{animation:rewind-in var(--m-fast) var(--m-ease)}@keyframes rewind-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.daily-btn{position:relative}.daily-btn.has-dot:after{content:"";background:var(--c-like);width:8px;height:8px;box-shadow:0 0 0 2px var(--c-bg);border-radius:50%;position:absolute;top:9px;right:9px}.photo-pick{background:0 0;border:0;padding:0;display:block;position:absolute;inset:0}.photo-pick img{object-fit:cover;width:100%;height:100%}.photo-pick-label{left:var(--s-1);right:var(--s-1);bottom:var(--s-1);padding:2px var(--s-2);border-radius:var(--r-pill);background:var(--c-glass);color:var(--c-text);font:var(--t-caption);text-align:center;white-space:nowrap;text-overflow:ellipsis;position:absolute;overflow:hidden}.photo-pick:active img{opacity:.8}.countdown{font-variant-numeric:tabular-nums;color:var(--c-accent);font-weight:600}.profile-avatar-btn{cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0;position:relative}.profile-avatar-btn:active .profile-avatar{opacity:.85}.profile-avatar-count{border-radius:var(--r-pill);background:var(--c-accent);min-width:24px;height:24px;color:var(--c-on-accent,#fff);font:var(--t-caption);box-shadow:0 0 0 2px var(--c-bg);place-items:center;padding:0 6px;font-weight:700;display:grid;position:absolute;bottom:2px;right:2px}.admin-subtitle{font:var(--t-lg);margin:var(--s-4) 0 var(--s-2);font-weight:700}.install-steps{margin:0 0 var(--s-3);gap:var(--s-3);padding:0;list-style:none;display:grid}.install-steps li{align-items:center;gap:var(--s-3);font:var(--t-base);color:var(--c-text);display:flex}.install-icon{border-radius:var(--r-sm);background:var(--c-surface-2);width:40px;height:40px;color:var(--c-accent);flex:none;place-items:center;display:grid}.install-icon img{border-radius:6px}.install-note{margin:0 0 var(--s-4);font:var(--t-sm);color:var(--c-text-muted)}.login-fallback{font:var(--t-sm);color:var(--c-accent);text-decoration:underline}
