:root{--persona-h: 280;--night-top: rgb(20, 20, 36);--night-bottom: rgb(36, 31, 56);--night-gradient: linear-gradient(to bottom, var(--night-top), var(--night-bottom));--persona-accent: hsl(var(--persona-h), 55%, 58%);--persona-glow: hsla(var(--persona-h), 70%, 65%, .45);--ai-bubble: hsl(28, 8%, 18%);--user-bubble: hsl(var(--persona-h), 35%, 28%);--bg-primary: #0f0e14;--bg-secondary: #1a1822;--bg-elevated: #22202c;--bg-translucent: rgba(15, 14, 20, .72);--text-primary: #f5f4f0;--text-secondary: #a4a1ae;--text-tertiary: #6b6876;--text-placeholder: #4d4a55;--border-subtle: rgba(255, 255, 255, .08);--accent-persona: hsl(var(--persona-h), 70%, 65%);--accent-warm: #f2a87e;--success: #7bc9a8;--warning: #e8b770;--danger: #d88585;--font-brand: "SF Pro Rounded", -apple-system, "PingFang SC", system-ui, sans-serif;--font-text: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", system-ui, sans-serif;--font-mono: ui-monospace, "SF Mono", "SFMono-Regular", Menlo, monospace;--fs-display-lg: 40px;--lh-display-lg: 48px;--fs-display-md: 32px;--lh-display-md: 40px;--fs-title-lg: 24px;--lh-title-lg: 32px;--fs-title-md: 20px;--lh-title-md: 28px;--fs-title-sm: 17px;--lh-title-sm: 24px;--fs-body: 17px;--lh-body: 26px;--fs-body-relaxed: 17px;--lh-body-relaxed: 30px;--fs-callout: 16px;--lh-callout: 22px;--fs-subhead: 15px;--lh-subhead: 20px;--fs-footnote: 13px;--lh-footnote: 18px;--fs-caption: 12px;--lh-caption: 16px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-xxl: 48px;--screen-pad: 20px;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-pill: 999px;--shadow-subtle: 0 2px 8px rgba(0, 0, 0, .18);--shadow-card: 0 4px 16px rgba(0, 0, 0, .24);--shadow-modal: 0 8px 32px rgba(0, 0, 0, .42);--glow-persona: 0 0 32px hsla(var(--persona-h), 70%, 60%, .3);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--font-scale: 1}:root[data-theme=light]{color-scheme:light;--bg-primary: #fafaf7;--bg-secondary: #f2f1ed;--bg-elevated: #ffffff;--bg-translucent: rgba(250, 250, 247, .72);--text-primary: #1c1b20;--text-secondary: #615f6a;--text-tertiary: #9b98a5;--text-placeholder: #c4c2cc;--border-subtle: rgba(0, 0, 0, .06);--accent-persona: hsl(var(--persona-h), 65%, 55%);--accent-warm: #e89b73;--success: #5ba889;--warning: #d9a45c;--danger: #c46e6e}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-text);font-size:calc(var(--fs-body) * var(--font-scale));line-height:var(--lh-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior:none}#root{max-width:480px;margin:0 auto;position:relative;overflow:hidden;background:var(--bg-primary);box-shadow:0 0 64px #0006}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea{font-family:inherit;color:inherit}a{color:var(--accent-persona);text-decoration:none}.legal-footer{position:fixed;z-index:1000;right:0;bottom:max(8px,var(--safe-bottom));left:0;display:flex;justify-content:center;pointer-events:none;font-size:12px;line-height:20px}.legal-footer a{pointer-events:auto;color:var(--text-secondary);opacity:.78;text-decoration:underline;text-underline-offset:2px}::-webkit-scrollbar{display:none}*{scrollbar-width:none}@keyframes boot-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes typing-breathe{0%,to{opacity:.35;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}@keyframes typing-dot{0%,to{opacity:.3;transform:scale(.5)}50%{opacity:1;transform:scale(1)}}@keyframes speak-bar{0%,to{transform:scaleY(.5)}50%{transform:scaleY(1)}}@keyframes calling-dot{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:.9;transform:scale(1.2)}}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important}}
