*{margin:0;padding:0;box-sizing:border-box}:root{--orb-color:#4a9eff;--orb-glow:rgba(74,158,255,0.3);--bg:#000;--surface-2:#111;--text:#d4d4d4;--text-dim:#555;--accent:#4a9eff}body,html{height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;overflow:hidden}.scene{width:100vw;height:100vh;position:relative}.orb-wrapper{position:fixed;z-index:10;top:50%;left:50%;transform:translate(-50%,-50%);cursor:pointer;transition:top .8s cubic-bezier(.4,0,.1,1),left .8s cubic-bezier(.4,0,.1,1),transform .8s cubic-bezier(.4,0,.1,1)}.orb-wrapper:hover .orb-core{transform:scale(1.08)}.orb-wrapper:hover .orb-glow{opacity:.6}.orb-wrapper.orb-docked{top:24px;left:28px;transform:translate(0) scale(.22);cursor:default;pointer-events:none}.orb-wrapper.orb-docked .orb-core,.orb-wrapper.orb-docked .orb-glow,.orb-wrapper.orb-docked .orb-ring{animation-play-state:running}.orb{position:relative;width:160px;height:160px}.orb-core{inset:20%;background:radial-gradient(circle at 40% 35%,color-mix(in srgb,var(--orb-color) 60%,white) 0,var(--orb-color) 40%,color-mix(in srgb,var(--orb-color) 40%,#0a0a2e) 80%,color-mix(in srgb,var(--orb-color) 15%,#050510) 100%);box-shadow:0 0 30px var(--orb-glow),0 0 60px var(--orb-glow),inset 0 0 20px rgba(255,255,255,.1);animation:pulse 3s ease-in-out infinite;transition:background 2s ease,box-shadow 2s ease,transform .3s ease}.orb-core,.orb-glow{position:absolute;border-radius:50%}.orb-glow{inset:0;background:radial-gradient(circle,var(--orb-glow) 0,transparent 70%);opacity:.4;animation:breathe 3s ease-in-out infinite;transition:background 2s ease,opacity .3s ease}.orb-ring{position:absolute;inset:5%;border-radius:50%;border:1px solid var(--orb-glow);animation:ring-pulse 3s ease-in-out infinite;transition:border-color 2s ease}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes breathe{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.5;transform:scale(1.1)}}@keyframes ring-pulse{0%,to{transform:scale(1);opacity:.3}50%{transform:scale(1.08);opacity:.1}}.chat-panel{position:fixed;inset:0;display:flex;flex-direction:column;background:var(--bg);opacity:0;pointer-events:none;transition:opacity .6s cubic-bezier(.4,0,.1,1)}.chat-panel.chat-visible{opacity:1;pointer-events:auto}.chat-scroll{flex:1 1;overflow-y:auto;padding:72px 24px 24px;display:flex;flex-direction:column;gap:20px;mask-image:linear-gradient(180deg,transparent 0,black 80px,black);-webkit-mask-image:linear-gradient(180deg,transparent 0,black 80px,black)}.chat-scroll::-webkit-scrollbar{width:0}.msg{max-width:680px;width:100%;margin:0 auto;animation:msg-appear .3s ease both}@keyframes msg-appear{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.msg-user .msg-content{color:var(--text);font-size:15px;line-height:1.6;padding:10px 14px;background:var(--surface-2);border-radius:10px;border:1px solid #1a1a1a;display:inline-block}.msg-user{text-align:right}.msg-assistant .msg-content{color:var(--text);font-size:15px;line-height:1.7;white-space:pre-wrap}.chat-input-area{display:flex;align-items:flex-end;gap:8px;padding:16px 24px 28px;max-width:728px;width:100%;margin:0 auto}.chat-input{flex:1 1;background:var(--surface-2);border:1px solid #1a1a1a;border-radius:10px;padding:12px 16px;color:var(--text);font-size:15px;font-family:inherit;resize:none;outline:none;min-height:44px;max-height:160px;line-height:1.5;transition:border-color .2s}.chat-input:focus{border-color:#2a2a2a}.chat-input::placeholder{color:#333}.chat-send{width:44px;height:44px;border-radius:10px;background:var(--accent);color:#000;border:none;font-size:18px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .2s;flex-shrink:0}.chat-send:disabled{opacity:.2;cursor:default}.chat-send:not(:disabled):hover{opacity:.85}@media (max-width:640px){.chat-input-area{padding:12px 16px 20px}.chat-scroll{padding:64px 16px 16px}.orb{width:120px;height:120px}}