:root{--bg: #0e0512;--bg-2: #1a0a24;--fg: #f5eef9;--muted: #b8a3c9;--accent: #ff3b6b;--accent-2: #8a3bff;--accent-3: #ffe23b;--bubble-user: linear-gradient(135deg, #ff3b6b 0%, #8a3bff 100%);--bubble-assistant: rgba(255, 255, 255, .07);--border: rgba(255, 255, 255, .1);--rainbow: linear-gradient(90deg, #ff3b6b, #ff9a3b, #ffe23b, #3bd16f, #3b9aff, #8a3bff)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;background:var(--bg);color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}.app{min-height:100%;display:flex;flex-direction:column}.loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center}.loading-orb{width:64px;height:64px;border-radius:50%;background:var(--rainbow);filter:blur(2px);animation:pulse 1.8s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.15);opacity:1}}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:24px}.auth-bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.auth-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.55;animation:float 12s ease-in-out infinite}.auth-orb-1{width:380px;height:380px;background:#ff3b6b;top:-80px;left:-80px}.auth-orb-2{width:340px;height:340px;background:#8a3bff;bottom:-80px;right:-60px;animation-delay:-4s}.auth-orb-3{width:280px;height:280px;background:#3bd16f;top:40%;left:40%;animation-delay:-8s}@keyframes float{0%,to{transform:translate(0)}33%{transform:translate(30px,-40px)}66%{transform:translate(-20px,30px)}}.auth-container{position:relative;z-index:1;width:100%;max-width:420px}.auth-card{background:#1a0a24b3;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:24px;padding:40px 32px;box-shadow:0 20px 60px #00000080}.auth-header{text-align:center;margin-bottom:28px}.auth-header img{margin-bottom:12px}.auth-header h1{font-size:32px;margin:0 0 4px;background:var(--rainbow);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:700;letter-spacing:-.02em}.auth-header p{color:var(--muted);margin:0;font-size:15px}.google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 18px;background:#fff;color:#1f1f1f;border:none;border-radius:12px;font-size:15px;font-weight:500;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.google-btn:hover{transform:translateY(-1px);box-shadow:0 8px 24px #ff3b6b40}.auth-error{margin-top:16px;padding:12px 14px;background:#ff3b6b1f;border:1px solid rgba(255,59,107,.4);border-radius:10px;color:#ffaec0;font-size:14px;cursor:pointer}.auth-footer-note{margin-top:22px;text-align:center;color:var(--muted);font-size:13px}.chat-page{display:flex;flex-direction:column;height:100vh}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border);background:#0e0512cc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:2}.chat-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;background:var(--rainbow);-webkit-background-clip:text;background-clip:text;color:transparent}.chat-user{display:flex;align-items:center;gap:12px}.user-email-sm{color:var(--muted);font-size:13px}.nav-btn{background:transparent;border:1px solid var(--border);color:var(--fg);padding:7px 14px;border-radius:8px;font-size:13px;cursor:pointer;transition:background .12s}.nav-btn:hover{background:#ffffff0f}.chat-main{flex:1;overflow-y:auto;padding:24px 16px 12px;display:flex;flex-direction:column;gap:14px;max-width:820px;width:100%;margin:0 auto}.chat-empty{margin:auto;text-align:center;color:var(--muted)}.chat-empty h2{font-size:28px;margin:0 0 8px;background:var(--rainbow);-webkit-background-clip:text;background-clip:text;color:transparent}.chat-empty p{margin:0;font-size:15px}.chat-msg{display:flex}.chat-msg-user{justify-content:flex-end}.chat-msg-assistant{justify-content:flex-start}.chat-bubble{max-width:78%;padding:12px 16px;border-radius:18px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word;font-size:15px}.chat-msg-user .chat-bubble{background:var(--bubble-user);color:#fff;border-bottom-right-radius:6px}.chat-msg-assistant .chat-bubble{background:var(--bubble-assistant);border:1px solid var(--border);color:var(--fg);border-bottom-left-radius:6px}.chat-typing{color:var(--muted);letter-spacing:3px}.chat-error{padding:10px 14px;background:#ff3b6b26;border:1px solid rgba(255,59,107,.35);border-radius:10px;color:#ffc0cf;font-size:14px}.chat-input-row{display:flex;gap:10px;padding:12px 16px 18px;max-width:820px;width:100%;margin:0 auto;background:#0e0512d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border)}.chat-input-row textarea{flex:1;background:#ffffff0f;border:1px solid var(--border);border-radius:14px;padding:12px 14px;color:var(--fg);font:inherit;resize:none;max-height:180px;outline:none;transition:border-color .12s}.chat-input-row textarea:focus{border-color:#ff3b6b8c}.chat-input-row textarea::placeholder{color:var(--muted)}.chat-send{align-self:flex-end;padding:12px 20px;background:var(--rainbow);background-size:200% 100%;color:#fff;border:none;border-radius:12px;font-weight:600;font-size:14px;cursor:pointer;transition:background-position .6s}.chat-send:hover:not(:disabled){background-position:100% 0}.chat-send:disabled{opacity:.45;cursor:not-allowed}.chat-stop{background:#555}.persona-stage{perspective:1200px;display:flex;justify-content:center;padding:2px 0 6px;flex-shrink:0}.persona-compact{padding:2px 0 4px}.persona-float{position:relative;width:200px;height:270px;transform-style:preserve-3d;animation:persona-float 5.5s ease-in-out infinite;transition:width .4s ease,height .4s ease;--rx: 0deg;--ry: 0deg}.persona-compact .persona-float{width:110px;height:150px;animation-duration:4s}@keyframes persona-float{0%{transform:translateY(0) rotateX(var(--rx)) rotateY(calc(var(--ry) - 4deg)) rotate(-.6deg)}25%{transform:translateY(-4px) rotateX(var(--rx)) rotateY(var(--ry)) rotate(0)}50%{transform:translateY(-8px) rotateX(var(--rx)) rotateY(calc(var(--ry) + 4deg)) rotate(.6deg)}75%{transform:translateY(-4px) rotateX(var(--rx)) rotateY(var(--ry)) rotate(0)}to{transform:translateY(0) rotateX(var(--rx)) rotateY(calc(var(--ry) - 4deg)) rotate(-.6deg)}}.persona-svg-container{width:100%;height:100%;filter:drop-shadow(0 16px 30px rgba(255,59,107,.38)) drop-shadow(0 0 44px rgba(138,59,255,.25));transform:translateZ(20px);animation:persona-breath 3.8s ease-in-out infinite;overflow:visible}.persona-speaking .persona-svg-container{animation:persona-breath-speak .6s ease-in-out infinite}.persona-img{width:100%;height:100%;object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 16px 30px rgba(255,59,107,.38)) drop-shadow(0 0 44px rgba(138,59,255,.25));transform:translateZ(20px);animation:persona-breath 3.8s ease-in-out infinite}.persona-speaking .persona-img{animation:persona-breath-speak .6s ease-in-out infinite}@keyframes persona-breath{0%,to{transform:translateZ(20px) scale(1)}50%{transform:translateZ(20px) scale(1.015)}}@keyframes persona-breath-speak{0%,to{transform:translateZ(20px) scale(1)}50%{transform:translateZ(20px) scale(1.025)}}.persona-halo{position:absolute;top:-12%;right:-18%;bottom:-6%;left:-18%;background:radial-gradient(ellipse at 50% 40%,rgba(255,59,107,.35),rgba(138,59,255,.22) 45%,transparent 70%);filter:blur(18px);transform:translateZ(-30px);animation:persona-halo-pulse 3.2s ease-in-out infinite;pointer-events:none}.persona-speaking .persona-halo{animation:persona-halo-pulse-speak .9s ease-in-out infinite}@keyframes persona-halo-pulse{0%,to{opacity:.7;transform:translateZ(-30px) scale(1)}50%{opacity:1;transform:translateZ(-30px) scale(1.08)}}@keyframes persona-halo-pulse-speak{0%,to{opacity:.75;transform:translateZ(-30px) scale(1)}50%{opacity:1;transform:translateZ(-30px) scale(1.12)}}@keyframes persona-float{0%{transform:translateY(0) rotateY(-6deg) rotate(-.8deg)}25%{transform:translateY(-5px) rotateY(0) rotate(0)}50%{transform:translateY(-9px) rotateY(7deg) rotate(.8deg)}75%{transform:translateY(-5px) rotateY(0) rotate(0)}to{transform:translateY(0) rotateY(-6deg) rotate(-.8deg)}}.persona-svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 16px 32px rgba(255,59,107,.35)) drop-shadow(0 0 44px rgba(138,59,255,.22))}.persona-halo{transform-origin:150px 200px;animation:persona-halo-pulse 3.2s ease-in-out infinite}@keyframes persona-halo-pulse{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}.persona-head{transform-origin:150px 200px;animation:persona-head-sway 5s ease-in-out infinite}@keyframes persona-head-sway{0%,to{transform:rotate(-1.5deg) translateY(0)}50%{transform:rotate(1.5deg) translateY(-2px)}}.persona-torso{transform-origin:150px 400px;animation:persona-breathe 3.6s ease-in-out infinite}@keyframes persona-breathe{0%,to{transform:scaleY(1) scaleX(1)}50%{transform:scaleY(1.015) scaleX(1.008)}}.persona-quiff{transform-origin:150px 90px;animation:persona-quiff-sway 4.5s ease-in-out infinite}@keyframes persona-quiff-sway{0%,to{transform:rotate(-1deg) translateY(0)}50%{transform:rotate(1.2deg) translateY(-1px)}}.persona-strand{transform-origin:205px 80px;animation:persona-strand 3.3s ease-in-out infinite}@keyframes persona-strand{0%,to{transform:rotate(-2deg)}50%{transform:rotate(3deg)}}.persona-hair-wisp{animation:persona-hair-wisp 4s ease-in-out infinite}@keyframes persona-hair-wisp{0%,to{opacity:.7}50%{opacity:1}}.persona-brow{transform-origin:150px 110px;animation:persona-brow-flirt 7s ease-in-out infinite}.persona-brow-r{animation-delay:-3.5s}@keyframes persona-brow-flirt{0%,88%,to{transform:translateY(0)}92%{transform:translateY(-4px)}94%{transform:translateY(-4px)}}.persona-lid{transform-origin:center;transform:scaleY(0);animation:persona-blink 5s ease-in-out infinite}.persona-eye-r .persona-lid{animation-delay:.05s}@keyframes persona-blink{0%,92%,to{transform:scaleY(0)}94%{transform:scaleY(1)}96%{transform:scaleY(0)}}.persona-mouth>*{transition:opacity .08s ease;transform-origin:150px 195px}.persona-arm{transform-origin:220px 285px;animation:persona-arm-idle 6s ease-in-out infinite,persona-arm-snap 5s ease-in-out infinite}@keyframes persona-arm-idle{0%,to{transform:rotate(-1deg)}50%{transform:rotate(2deg)}}@keyframes persona-arm-snap{72%{transform:rotate(-3deg) translate(0) translateY(0)}74%{transform:rotate(5deg) translate(-3px) translateY(2px)}76%{transform:rotate(-1deg) translate(0) translateY(0)}}.persona-snap-burst{transform-origin:245px 117px;transform:scale(0);opacity:0;animation:persona-snap-burst 5s ease-in-out infinite}@keyframes persona-snap-burst{0%,73%,to{transform:scale(0) rotate(0);opacity:0}74%{transform:scale(1.1) rotate(30deg);opacity:1}82%{transform:scale(1.4) rotate(90deg);opacity:.4}86%{transform:scale(.6) rotate(120deg);opacity:0}}.persona-speaking .persona-head{animation:persona-head-speak .5s ease-in-out infinite}@keyframes persona-head-speak{0%,to{transform:rotate(-1deg) translateY(0)}50%{transform:rotate(1deg) translateY(-3px)}}.persona-sparkle{position:absolute;font-size:22px;pointer-events:none;filter:drop-shadow(0 0 6px rgba(255,226,59,.7));animation:persona-sparkle 4.5s ease-in-out infinite}.persona-sparkle-1{top:4%;left:-12%;animation-delay:0s}.persona-sparkle-2{top:38%;right:-10%;animation-delay:-1.6s;font-size:20px}.persona-sparkle-3{bottom:14%;left:-8%;animation-delay:-3s;font-size:18px}.persona-compact .persona-sparkle{font-size:14px}@keyframes persona-sparkle{0%,to{transform:translate(0) scale(.7) rotate(0);opacity:.5}50%{transform:translate(12px,-18px) scale(1.1) rotate(200deg);opacity:1}}@media(max-width:560px){.persona-float{width:200px;height:260px}.persona-compact .persona-float{width:100px;height:130px}}@media(prefers-reduced-motion:reduce){.persona-float,.persona-halo,.persona-head,.persona-torso,.persona-quiff,.persona-strand,.persona-hair-wisp,.persona-brow,.persona-lid,.persona-arm,.persona-snap-burst,.persona-sparkle{animation:none}}
