:root{--bg: #131418;--bg-deep: #0c0d10;--surface: #1b1c21;--surface-alt: #24262c;--text: #ffffff;--text-muted: #a6a7ae;--text-faint: #6b6c75;--hairline: rgba(255, 255, 255, .09);--glass: rgba(255, 255, 255, .05);--glass-border: rgba(255, 255, 255, .1);--fill: rgba(255, 255, 255, .055);--fill-2: rgba(255, 255, 255, .09);--fill-strong: rgba(255, 255, 255, .16);--primary: #f3f2f5;--on-primary: #16171b;--danger: #e5484d;--success: #5bc0be;--gold: #e7c26b;--mood: #ff6b9d;--mood-glow: #ff8fb8;--mood-ink: #1a1620;--radius-sm: 12px;--radius-md: 16px;--radius-row: 18px;--radius-chip: 20px;--radius-card: 24px;--radius-pill: 999px;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 20px;--space-xxl: 24px;--space-xl3: 32px;--space-xl4: 44px;--avatar-xs: 24px;--avatar-sm: 40px;--avatar-md: 44px;--avatar-lg: 56px;--avatar-xl: 88px;--font-head: "Hanken Grotesk", system-ui, sans-serif;--font-body: "Inter", system-ui, sans-serif;--fs-h1: 29px;--lh-h1: 36px;--ls-h1: -.5px;--fs-h2: 21px;--lh-h2: 27px;--ls-h2: -.25px;--fs-body: 15px;--lh-body: 24px;--ls-body: -.08px;--fs-micro: 12.5px;--lh-micro: 19px;--fs-eyebrow: 12px;--lh-eyebrow: 17px;--ls-eyebrow: 1.9px}:root[data-theme=light]{--bg: #fbfafe;--bg-deep: #ece9f4;--surface: #ffffff;--surface-alt: #f4f2fb;--text: #1a1530;--text-muted: #5c5575;--text-faint: #948cac;--hairline: rgba(26, 21, 48, .1);--glass: rgba(255, 255, 255, .7);--glass-border: rgba(26, 21, 48, .08);--fill: rgba(26, 21, 48, .04);--fill-2: rgba(26, 21, 48, .07);--fill-strong: rgba(26, 21, 48, .14);--primary: #1b1530;--on-primary: #ffffff;--gold: #c9a24b}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior:none}button{font-family:inherit;cursor:pointer}.h1{font-family:var(--font-head);font-weight:700;font-size:var(--fs-h1);line-height:var(--lh-h1);letter-spacing:var(--ls-h1)}.h2{font-family:var(--font-head);font-weight:600;font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--ls-h2)}.body{font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-body)}.micro{font-family:var(--font-body);font-size:var(--fs-micro);line-height:var(--lh-micro)}.eyebrow{font-family:var(--font-body);font-weight:500;font-size:var(--fs-eyebrow);line-height:var(--lh-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase}.tone-default{color:var(--text)}.tone-muted{color:var(--text-muted)}.tone-faint{color:var(--text-faint)}.tone-primary{color:var(--mood)}.tone-danger{color:var(--danger)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);border:none;border-radius:var(--radius-md);padding:16px 24px;font-family:var(--font-head);font-weight:600;font-size:var(--fs-body);letter-spacing:-.01em;transition:opacity .15s ease,transform .1s ease}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.45;pointer-events:none}.btn-sm{padding:9px 18px;font-size:var(--fs-micro);border-radius:var(--radius-md)}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-ghost{background:var(--fill);color:var(--text);border:1px solid var(--hairline)}.btn-mood{background:var(--mood);color:var(--mood-ink)}.mood-glow{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:color-mix(in srgb,var(--mood) 5.5%,transparent);transition:background .6s ease}.mood-glow:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--mood);opacity:.9}.moodmark{display:flex;flex-direction:column;align-items:center}.moodmark-word{font-family:var(--font-head);font-weight:700;line-height:1;letter-spacing:-.045em;color:var(--text)}.moodmark-dots{display:flex;gap:9px;align-items:center}.moodmark-dots span{width:7px;height:7px;border-radius:50%;flex-shrink:0}.moodmark-bar{display:flex;width:150px;height:6px;border-radius:999px;overflow:hidden}.moodmark-bar span{flex:1;height:100%}.glass{background:var(--glass);border:1px solid var(--glass-border)}.fade-up{animation:fadeUp .45s cubic-bezier(.22,1,.36,1) both}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.stage{position:relative;min-height:100dvh;display:flex;flex-direction:column;align-items:center;background:var(--bg-deep);overflow:hidden}.stage:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(55% 50% at 22% 12%,color-mix(in srgb,var(--mood-glow) 38%,transparent),transparent 55%),radial-gradient(55% 50% at 78% 85%,color-mix(in srgb,var(--mood) 32%,transparent),transparent 55%),radial-gradient(80% 60% at 50% 50%,color-mix(in srgb,var(--mood) 10%,transparent),transparent 70%);filter:blur(8px);transition:background .6s ease}.frame{position:relative;z-index:1;width:100%;max-width:440px;margin:0 auto;flex:1;display:flex;flex-direction:column;min-height:100dvh;background:var(--bg)}@media(min-width:480px){.frame{border-left:1px solid var(--hairline);border-right:1px solid var(--hairline)}}.frame-body{flex:1;display:flex;flex-direction:column;position:relative;overflow:hidden}.center-screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-xl3) var(--space-xl);gap:var(--space-lg);position:relative;z-index:1}.avatar{border-radius:var(--radius-pill);background:var(--mood);display:flex;align-items:center;justify-content:center;color:var(--mood-ink);font-family:var(--font-head);font-weight:700;flex-shrink:0}.redeem-splash{justify-content:space-between;padding-top:var(--space-xl4);padding-bottom:var(--space-xl4)}.redeem-foot{display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.splash-loader{position:relative;width:130px;height:2px;border-radius:999px;overflow:hidden;background:var(--fill-strong)}.splash-loader span{position:absolute;top:0;left:0;height:100%;width:42%;border-radius:999px;background:var(--mood);animation:splashTravel 1.5s cubic-bezier(.5,0,.5,1) infinite}@keyframes splashTravel{0%{left:-42%}to{left:100%}}.spinner{width:36px;height:36px;border-radius:50%;border:3px solid var(--fill-2);border-top-color:var(--mood);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.funnel-bar{flex-shrink:0;display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-lg);background:var(--surface);border-bottom:1px solid var(--hairline);z-index:5}.funnel-bar .moodmark{flex-shrink:0}.funnel-bar .moodmark-dots{gap:4px}.funnel-bar .moodmark-dots span{width:4px;height:4px}.funnel-sub{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.funnel-cta{flex-shrink:0;display:inline-flex;align-items:center;height:34px;padding:0 16px;border-radius:var(--radius-pill);background:var(--mood);color:var(--mood-ink);font-family:var(--font-head);font-weight:600;font-size:var(--fs-micro);text-decoration:none;white-space:nowrap}.store-badges{display:flex;gap:var(--space-sm)}.store-badge{display:inline-flex;flex-direction:column;justify-content:center;height:36px;padding:0 12px;border-radius:9px;background:#000;border:1px solid rgba(255,255,255,.16);color:#fff;text-decoration:none;white-space:nowrap}.store-badge .sub{font-size:8.5px;opacity:.78;line-height:1}.store-badge .main{font-size:12px;font-weight:600;line-height:1.1}.chat{flex:1;display:flex;flex-direction:column;min-height:0;position:relative;z-index:1}.chat-header{flex-shrink:0;display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--hairline)}.chat-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-lg)}.bubble{max-width:78%;padding:10px 14px;border-radius:var(--radius-card);word-break:break-word}.bubble.mine{align-self:flex-end;background:var(--mood);color:var(--mood-ink);border-bottom-right-radius:var(--radius-sm)}.bubble.theirs{align-self:flex-start;background:var(--surface-alt);color:var(--text);border-bottom-left-radius:var(--radius-sm)}.bubble .time{font-size:10.5px;opacity:.6;margin-top:3px}.composer{flex-shrink:0;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-top:1px solid var(--hairline)}.composer input[type=text]{flex:1;height:44px;padding:0 var(--space-lg);border-radius:var(--radius-pill);border:1px solid var(--hairline);background:var(--fill);color:var(--text);font-family:var(--font-body);font-size:var(--fs-body)}.composer input::placeholder{color:var(--text-faint)}.icon-btn{width:44px;height:44px;border-radius:var(--radius-pill);border:none;display:flex;align-items:center;justify-content:center;background:var(--mood);color:var(--mood-ink);flex-shrink:0}.voice{display:flex;align-items:center;gap:10px}.voice .play{width:32px;height:32px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;background:currentColor;color:var(--mood-ink);flex-shrink:0}.bubble.mine .voice .play{color:var(--mood-ink)}.bubble.mine .voice .play svg{color:var(--mood)}.bubble.theirs .voice .play svg{color:var(--surface)}.wave{display:flex;align-items:center;gap:2.5px;height:26px}.wave>i{display:block;width:3px;border-radius:3px;background:currentColor;opacity:.4}.recording{display:flex;align-items:center;gap:var(--space-sm);flex:1}.rec-dot{width:10px;height:10px;border-radius:50%;background:var(--danger);animation:recPulse 1.1s ease-in-out infinite}@keyframes recPulse{0%,to{opacity:1}50%{opacity:.35}}.agegate{justify-content:center}.inviter-chip{display:inline-flex;align-items:center;gap:var(--space-md);padding:9px 16px 9px 9px;border-radius:var(--radius-pill);margin-bottom:var(--space-sm)}.inviter-orb{width:34px;height:34px;border:2px solid var(--mood)}.agegate-card{display:flex;align-items:center;gap:14px;text-align:left;width:100%;padding:16px 18px;border-radius:18px;background:var(--fill);border:1.5px solid var(--hairline);transition:all .22s ease}.agegate-card.on{background:color-mix(in srgb,var(--mood) 12%,transparent);border-color:color-mix(in srgb,var(--mood) 85%,transparent)}.agegate-box{width:26px;height:26px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:2px solid var(--text-faint);color:var(--mood-ink);font-weight:700;font-size:15px}.agegate-card.on .agegate-box{border:none;background:var(--mood)}.agegate-link{text-decoration:underline;color:var(--text-muted)}.error-banner{width:100%;text-align:center;padding:10px 14px;border-radius:var(--radius-md);background:color-mix(in srgb,var(--danger) 18%,transparent);border:1px solid color-mix(in srgb,var(--danger) 55%,transparent);color:#fff;font-size:var(--fs-micro)}.agegate-footer{width:100%;margin-top:var(--space-sm)}.agegate-anon{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:var(--space-md)}.col{display:flex;flex-direction:column}.row{display:flex;align-items:center}.deadend-orb{position:relative;width:92px;height:92px;margin-bottom:var(--space-md)}.deadend-orb-fill{position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:50%;background:var(--mood);filter:grayscale(.5);opacity:.55}.deadend-orb-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:2px dashed var(--text-faint);opacity:.5}.deadend-store{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);margin-top:var(--space-sm)}
