*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #08080f;--surface: rgba(255,255,255,.04);--border: rgba(255,255,255,.07);--border-hi: rgba(255,255,255,.13);--text: #e8e8f2;--text-dim: rgba(232,232,242,.38);--accent: #7c3aed;--accent-soft: rgba(124,58,237,.18)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,sans-serif;background:var(--bg);color:var(--text);height:100dvh;display:flex;flex-direction:column;overflow:hidden}#auth-gate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:210;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse 70% 60% at 50% 40%,rgba(88,28,135,.18) 0%,transparent 70%),var(--bg);animation:gate-fade .3s ease}#auth-gate.hidden{display:none}#auth-card{display:flex;flex-direction:column;align-items:center;gap:1.1rem;padding:2.8rem 3.2rem;background:#ffffff0a;border:1px solid rgba(167,139,250,.2);border-radius:28px;-webkit-backdrop-filter:blur(32px);backdrop-filter:blur(32px);box-shadow:0 32px 80px #0009,0 0 0 1px #7c3aed1f,0 0 80px #581c871f,inset 0 1px #ffffff0f;animation:card-up .45s cubic-bezier(.34,1.56,.64,1) .05s both;max-width:340px;width:90%}.auth-status{font-size:.8rem;color:var(--text-dim);text-align:center;min-height:1em;max-width:224px;line-height:1.35}.auth-status.error{color:#fca5a5}.auth-alt{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.45rem;margin-top:-.35rem}.auth-link{background:none;border:none;padding:0;font:inherit;font-size:.78rem;color:#c4b5fdd9;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.auth-link:hover:not(:disabled){color:#ddd6fe}.auth-link:disabled{color:var(--text-dim);cursor:default;text-decoration:none}.auth-sep{font-size:.78rem;color:var(--text-dim)}#bg-scene-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;display:none}#bg-scene-canvas.active{display:block}.bg-swatches{display:flex;gap:.5rem;flex-wrap:wrap}.bg-swatch{width:36px;height:36px;border-radius:10px;border:2px solid transparent;cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s;outline:none;font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center}.bg-swatch-anim{background:#ffffff0f;border-color:var(--border-hi)}.bg-swatch-anim:hover{background:#ffffff1a}.bg-swatch:hover{transform:scale(1.12);border-color:#ffffff4d}.bg-swatch.active{border-color:#7c3aed;box-shadow:0 0 0 2px #7c3aed59}.bg-swatch[data-bg=default]{background:linear-gradient(135deg,#5b21b6,#1e1b4b,#0a0a18)}.bg-swatch[data-bg=midnight]{background:linear-gradient(135deg,#1e40af,#1e3a5f,#060f1a)}.bg-swatch[data-bg=dusk]{background:linear-gradient(135deg,#7c1f5e,#3b0f6e,#1a0828)}.bg-swatch[data-bg=forest]{background:linear-gradient(135deg,#166534,#14532d,#061510)}.bg-swatch[data-bg=ocean]{background:linear-gradient(135deg,#0e7490,#164e63,#060f1e)}.bg-swatch[data-bg=noir]{background:linear-gradient(135deg,#374151,#1f2937,#080808)}#name-gate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse 70% 60% at 50% 40%,rgba(88,28,135,.18) 0%,transparent 70%),var(--bg);animation:gate-fade .3s ease}#name-gate.hidden{display:none}@keyframes gate-fade{0%{opacity:0}to{opacity:1}}#name-card{display:flex;flex-direction:column;align-items:center;gap:1.1rem;padding:2.8rem 3.2rem;background:#ffffff0a;border:1px solid rgba(167,139,250,.2);border-radius:28px;-webkit-backdrop-filter:blur(32px);backdrop-filter:blur(32px);box-shadow:0 32px 80px #0009,0 0 0 1px #7c3aed1f,0 0 80px #581c871f,inset 0 1px #ffffff0f;animation:card-up .45s cubic-bezier(.34,1.56,.64,1) .05s both}@keyframes card-up{0%{opacity:0;transform:translateY(28px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}.name-lotus{width:48px;height:48px;filter:drop-shadow(0 0 8px rgba(167,139,250,.45));animation:logo-glow 3.5s ease-in-out infinite}.name-title{font-size:1.55rem;font-weight:600;color:var(--text);letter-spacing:-.02em;margin-top:-.2rem}.name-sub{font-size:.81rem;color:var(--text-dim);margin-top:-.5rem}.name-field{width:224px;padding:.68rem 1rem;background:#ffffff0e;border:1px solid var(--border-hi);border-radius:12px;color:var(--text);font-size:.97rem;font-family:inherit;text-align:center;outline:none;transition:border-color .2s,box-shadow .2s}.name-field:focus{border-color:#7c3aed8c;box-shadow:0 0 0 3px #7c3aed24}.name-field::placeholder{color:var(--text-dim)}.name-btn{width:224px;padding:.68rem 1rem;background:linear-gradient(135deg,#7c3aed,#4f46e5);border:none;border-radius:12px;color:#fff;font-size:.9rem;font-weight:600;font-family:inherit;cursor:pointer;box-shadow:0 4px 18px #7c3aed61;transition:transform .14s,box-shadow .14s}.name-btn:hover{transform:translateY(-1px);box-shadow:0 6px 24px #7c3aed80}.name-btn:active{transform:scale(.97)}#topbar{display:flex;align-items:center;justify-content:space-between;padding:.65rem 1.25rem;background:#08080fe0;-webkit-backdrop-filter:blur(28px);backdrop-filter:blur(28px);border-bottom:none;flex-shrink:0;z-index:20;box-shadow:0 1px #7c3aed47,0 1px #ffffff09,0 4px 24px #0000004d}.brand{display:flex;align-items:center;gap:.5rem}.topbar-right{display:flex;align-items:center;gap:.55rem}.user-pill{display:flex;align-items:center;padding:.2rem .65rem;background:var(--surface);border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-size:.63rem;font-weight:500;font-family:inherit;letter-spacing:.05em;cursor:pointer;transition:border-color .2s,color .2s,background .2s;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.user-pill:hover{background:#ffffff12;border-color:var(--border-hi);color:var(--text)}.brand-icon{width:22px;height:22px;flex-shrink:0}.brand-name{font-size:.92rem;font-weight:600;letter-spacing:.06em;background:linear-gradient(120deg,#e9d5ff,#c4b5fd,#818cf8 60%,#c4b5fd,#e9d5ff);background-size:250%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:brand-shimmer 5s ease-in-out infinite}.badge{padding:.22rem .72rem;border-radius:999px;font-size:.63rem;font-weight:600;text-transform:uppercase;letter-spacing:.09em;border:1px solid transparent;transition:background .35s,color .35s,border-color .35s}.badge.idle{background:#ffffff0d;color:var(--text-dim);border-color:var(--border)}.badge.recording{background:#ef444424;color:#fca5a5;border-color:#ef444447}.badge.processing{background:#60a5fa24;color:#93c5fd;border-color:#60a5fa47}.badge.speaking{background:#34d39924;color:#6ee7b7;border-color:#34d39947}#avatar-wrap{flex:1;position:relative;min-height:0;overflow:hidden;background:radial-gradient(ellipse 90% 55% at 50% 5%,rgba(88,28,135,.22) 0%,transparent 60%),radial-gradient(ellipse 70% 40% at 15% 50%,rgba(79,70,229,.1) 0%,transparent 55%),radial-gradient(ellipse 60% 40% at 85% 80%,rgba(109,40,217,.1) 0%,transparent 55%),radial-gradient(ellipse 80% 60% at 50% 10%,#1a0f35 0%,transparent 70%),radial-gradient(ellipse 60% 40% at 80% 90%,#0f1a35 0%,transparent 60%),var(--bg)}#avatar-wrap:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle,rgba(124,58,237,.09) 1px,transparent 1px);background-size:32px 32px;pointer-events:none;z-index:0;-webkit-mask-image:radial-gradient(ellipse at center,black 20%,transparent 75%);mask-image:radial-gradient(ellipse at center,black 20%,transparent 75%);opacity:.8}#avatar-wrap:after{content:"";position:absolute;bottom:0;left:0;right:0;height:120px;background:linear-gradient(to bottom,transparent,rgba(8,8,15,.75));pointer-events:none;z-index:2}#avatar-canvas{width:100%;height:100%;display:block;position:relative;z-index:1}#avatar-hint{position:absolute;bottom:14px;left:50%;transform:translate(-50%);font-size:.7rem;color:#252535;text-align:center;white-space:nowrap;pointer-events:none;z-index:2}#avatar-hint code{font-family:monospace;color:#333348}#history-sidebar{position:absolute;top:0;left:0;bottom:0;width:230px;z-index:6;pointer-events:none;opacity:1;transition:opacity .35s ease}#history-sidebar.hidden{opacity:0}#history-scroll{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;padding:1.2rem .9rem 1.5rem 1rem;scrollbar-width:none;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.6) 18%,black 35%);mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.6) 18%,black 35%);display:flex;flex-direction:column;justify-content:flex-end}#history-scroll::-webkit-scrollbar{display:none}#history{display:flex;flex-direction:column;gap:.75rem}.history-entry{font-family:Lora,Georgia,serif;font-size:.82rem;line-height:1.7;color:#ffffff2e;transition:color 1.5s ease;animation:history-in .6s ease forwards}.history-entry:last-child{color:#ffffff73}.history-entry:nth-last-child(2){color:#ffffff4d}.history-entry:nth-last-child(3){color:#ffffff38}@keyframes history-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.history-role{display:block;font-style:italic;font-size:.57rem;letter-spacing:.1em;text-transform:lowercase;margin-bottom:.15rem}.history-entry.user .history-role{color:#a78bfa73}.history-entry.assistant .history-role{color:#94a3b859}.history-entry.user{text-align:right;padding-right:.2rem}.history-entry.assistant{text-align:left;padding-left:.2rem}#bubbles-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:8;pointer-events:none;overflow:hidden}.bubble{position:absolute;max-width:46%;padding:.75rem 1.15rem;font-size:.93rem;line-height:1.5;border-radius:20px;animation:bubble-in .38s cubic-bezier(.34,1.56,.64,1) forwards;word-break:break-word}.bubble.bubble-out{animation:bubble-out .42s ease forwards}.bubble.user{right:5%;bottom:20%;background:linear-gradient(135deg,#7c3aedd1,#4f46e5c7);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(167,139,250,.28);border-radius:22px 22px 5px;color:#fffffff5;box-shadow:0 8px 28px #7c3aed47,0 2px 8px #00000073}.bubble.user:after{content:"";position:absolute;bottom:0;right:-9px;border-width:9px 0 0 10px;border-style:solid;border-color:transparent transparent transparent rgba(88,42,200,.82)}.bubble.assistant{left:11%;top:28%;background:#0e0e1ad1;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.09);border-radius:22px 22px 22px 5px;color:#e8e8f2f2;box-shadow:0 8px 28px #0006,0 2px 8px #00000080}.bubble.assistant:after{content:"";position:absolute;bottom:0;left:-9px;border-width:9px 10px 0 0;border-style:solid;border-color:transparent rgba(14,14,26,.82) transparent transparent}@keyframes bubble-in{0%{opacity:0;transform:translateY(14px) scale(.93)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes bubble-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-12px)}}#controls{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem max(1.2rem,env(safe-area-inset-bottom));background:#06060cf5;-webkit-backdrop-filter:blur(32px);backdrop-filter:blur(32px);border-top:none;flex-shrink:0;gap:1rem;position:relative}#controls:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(109,40,217,.4) 20%,rgba(167,139,250,.65) 40%,rgba(196,181,253,.55) 50%,rgba(167,139,250,.65) 60%,rgba(109,40,217,.4) 80%,transparent 100%)}.ctrl-group-left,.ctrl-group-right{display:flex;gap:.5rem;align-items:center}.orb-group{display:flex;flex-direction:column;align-items:center;gap:.45rem}.orb-track{position:relative;width:84px;height:84px;display:flex;align-items:center;justify-content:center;overflow:visible}.orb-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:2px solid rgba(124,58,237,.35);transition:border-color .4s,box-shadow .4s;pointer-events:none}.orb-ring.idle{border-color:#7c3aed4d;animation:ring-idle-breathe 3.5s ease-in-out infinite}.orb-ring.recording{border-color:#ef444499;box-shadow:0 0 18px #ef444440;animation:ring-rec 1s ease-in-out infinite}.orb-ring.processing{border-color:#60a5fa80;border-top-color:#60a5fa;animation:ring-spin .9s linear infinite}.orb-ring.speaking{border-color:#34d3998c;box-shadow:0 0 18px #34d39933;animation:ring-speak 1.6s ease-in-out infinite}@keyframes ring-rec{0%,to{transform:scale(1);opacity:.7}50%{transform:scale(1.14);opacity:1}}@keyframes ring-spin{to{transform:rotate(360deg)}}@keyframes ring-speak{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}#hint{font-size:.7rem;color:var(--text-dim);letter-spacing:.06em;white-space:nowrap;text-transform:uppercase;animation:hint-pulse 4s ease-in-out infinite}.orb{width:68px;height:68px;border-radius:50%;background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.12) 0%,transparent 45%),radial-gradient(circle at 35% 32%,#a855f7,#3730a3);box-shadow:0 0 28px #7c3aed6b,0 0 60px #7c3aed1a,0 4px 20px #0000008c;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .14s ease,box-shadow .14s ease;flex-shrink:0;position:relative;overflow:hidden;animation:orb-idle-breathe 3.8s ease-in-out infinite}.orb:hover{transform:scale(1.07);box-shadow:0 0 56px #7c3aeda6,0 0 100px #7c3aed26,0 4px 24px #00000080;animation-play-state:paused}.orb.recording{background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.1) 0%,transparent 40%),radial-gradient(circle at 35% 32%,#f87171,#7f1d1d);box-shadow:0 0 30px #ef44448c,0 0 70px #ef44441a,0 4px 20px #00000080;animation:orb-rec 1s ease-in-out infinite}@keyframes orb-rec{0%,to{transform:scale(1);box-shadow:0 0 28px #ef444480}50%{transform:scale(1.08);box-shadow:0 0 52px #ef4444bf}}.icon-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:1px solid var(--border);border-radius:8px;color:var(--text-dim);cursor:pointer;transition:color .18s,background .18s,border-color .18s;flex-shrink:0}.icon-btn svg{width:14px;height:14px}.icon-btn:hover{color:var(--text);background:#ffffff0f;border-color:var(--border-hi)}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:flex;align-items:center;justify-content:center;background:#000000a6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:gate-fade .22s ease}.settings-overlay.hidden{display:none}.settings-card{width:min(520px,94vw);max-height:88dvh;overflow-y:auto;background:#0c0c16f7;border:1px solid var(--border-hi);border-radius:22px;box-shadow:0 32px 80px #000000a6,0 0 0 1px #7c3aed1a;display:flex;flex-direction:column;animation:card-up .32s cubic-bezier(.34,1.56,.64,1) both;scrollbar-width:none;position:relative}.settings-card::-webkit-scrollbar{display:none}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.4rem .8rem}.settings-title{font-size:1rem;font-weight:600;letter-spacing:-.01em}.settings-close{background:none;border:none;color:var(--text-dim);font-size:1.4rem;line-height:1;cursor:pointer;padding:.1rem .3rem;border-radius:6px;transition:color .15s,background .15s}.settings-close:hover{color:var(--text);background:#ffffff12}.settings-section{padding:.6rem 1.4rem 1rem;border-top:1px solid var(--border)}.settings-label{font-size:.63rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);margin-bottom:.7rem}.settings-input{width:100%;padding:.6rem .9rem;background:#ffffff0d;border:1px solid var(--border-hi);border-radius:10px;color:var(--text);font-size:.92rem;font-family:inherit;outline:none;transition:border-color .18s,box-shadow .18s}.settings-input:focus{border-color:#7c3aed80;box-shadow:0 0 0 3px #7c3aed1f}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:.7rem}.gallery-card{border-radius:14px;border:1.5px solid var(--border);overflow:hidden;cursor:pointer;transition:border-color .2s,transform .14s,box-shadow .2s;background:#ffffff06}.gallery-card:not(.unavailable):hover{border-color:var(--border-hi);transform:translateY(-2px);box-shadow:0 8px 24px #00000059}.gallery-card.unavailable{opacity:.42;cursor:not-allowed;filter:grayscale(.5)}.gallery-card.selected{border-color:#7c3aedb3;box-shadow:0 0 0 3px #7c3aed2e,0 8px 24px #00000059}.gallery-thumb{width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;position:relative}.gallery-initial{font-size:2.2rem;font-weight:700;color:#ffffffd9;text-shadow:0 2px 8px rgba(0,0,0,.5);-webkit-user-select:none;user-select:none}.gallery-name{font-size:.78rem;font-weight:600;color:var(--text);padding:.4rem .6rem .1rem;text-align:center}.gallery-desc{font-size:.62rem;color:var(--text-dim);padding:0 .6rem .55rem;text-align:center;line-height:1.4}.settings-select{width:100%;padding:.6rem 2.2rem .6rem .9rem;background:#ffffff0d;border:1px solid var(--border-hi);border-radius:10px;color:var(--text);font-size:.88rem;font-family:inherit;outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='rgba(232,232,242,0.4)' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center;transition:border-color .18s,box-shadow .18s}.settings-select:focus{border-color:#7c3aed80;box-shadow:0 0 0 3px #7c3aed1f}.settings-select option,.settings-select optgroup{background:#16162a;color:var(--text)}.color-row{display:flex;gap:1rem}.color-item{display:flex;flex-direction:column;align-items:center;gap:.4rem;cursor:pointer}.color-item span{font-size:.65rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.07em}.color-swatch{width:40px;height:40px;border-radius:10px;border:1.5px solid var(--border-hi);cursor:pointer;background:none;padding:2px;transition:border-color .18s,transform .14s}.color-swatch:hover{border-color:#7c3aed8c;transform:scale(1.06)}.color-swatch::-webkit-color-swatch-wrapper{padding:0;border-radius:7px}.color-swatch::-webkit-color-swatch{border:none;border-radius:7px}.settings-footer{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.4rem 1.2rem;border-top:1px solid var(--border);gap:1rem;flex-wrap:wrap}.settings-note{font-size:.65rem;color:var(--text-dim);line-height:1.55;flex:1}.settings-note code{font-family:monospace;color:#a78bfaa6}.settings-note strong{color:#a78bfacc;font-weight:500}.apply-btn{flex-shrink:0;padding:.6rem 1.4rem;background:linear-gradient(135deg,#7c3aed,#4f46e5);border:none;border-radius:11px;color:#fff;font-size:.85rem;font-weight:600;font-family:inherit;cursor:pointer;box-shadow:0 4px 16px #7c3aed59;transition:transform .14s,box-shadow .14s,opacity .14s}.apply-btn:hover{transform:translateY(-1px);box-shadow:0 6px 22px #7c3aed80}.apply-btn:active{transform:scale(.97)}.apply-btn:disabled{opacity:.55;cursor:default;transform:none}#memories-panel{position:absolute;top:0;right:0;bottom:0;width:260px;z-index:7;display:flex;flex-direction:column;background:#080812e0;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-left:1px solid var(--border);animation:mem-slide-in .28s cubic-bezier(.22,1,.36,1)}#memories-panel.hidden{display:none}#notebook-panel{position:absolute;top:0;right:0;bottom:0;width:280px;z-index:7;display:flex;flex-direction:column;background:#080812eb;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-left:1px solid var(--border);animation:mem-slide-in .28s cubic-bezier(.22,1,.36,1)}#notebook-panel.hidden{display:none}.nb-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem .75rem 0;border-bottom:1px solid var(--border);flex-shrink:0}.nb-tabs{display:flex;gap:0}.nb-tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-dim);cursor:pointer;font-size:.62rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;padding:.4rem .65rem .45rem;transition:color .15s,border-color .15s}.nb-tab.active{color:var(--text);border-bottom-color:#818cf8}.nb-tab:hover{color:var(--text)}.nb-content{flex:1;overflow-y:auto;padding:.6rem .75rem;display:flex;flex-direction:column;gap:.4rem;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.08) transparent}.nb-content.hidden{display:none}.nb-empty{font-size:.72rem;color:var(--text-dim);text-align:center;padding:1.5rem .5rem;line-height:1.6}.nb-item{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem .6rem;border-radius:10px;background:#ffffff08;border:1px solid rgba(255,255,255,.06)}.nb-item-body{flex:1;min-width:0}.nb-item-text{font-size:.74rem;color:var(--text);line-height:1.4;word-break:break-word}.nb-item-meta{font-size:.61rem;color:var(--text-dim);margin-top:.2rem}.nb-item-actions{display:flex;gap:.2rem;flex-shrink:0;padding-top:.1rem}.nb-action{background:none;border:none;color:var(--text-dim);cursor:pointer;padding:.15rem .2rem;border-radius:5px;font-size:.72rem;line-height:1;transition:color .15s,background .15s}.nb-action:hover{background:#ffffff0f}.nb-action.done:hover{color:#4ade80}.nb-action.del:hover{color:#f87171}@keyframes mem-slide-in{0%{transform:translate(40px);opacity:0}to{transform:translate(0);opacity:1}}.mem-header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem .65rem;border-bottom:1px solid var(--border);flex-shrink:0}.mem-title{font-size:.7rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--text-dim)}.mem-refresh{background:none;border:none;color:var(--text-dim);cursor:pointer;padding:.2rem;border-radius:6px;display:flex;transition:color .18s,background .18s}.mem-refresh svg{width:14px;height:14px}.mem-refresh:hover{color:var(--text);background:#ffffff0f}#memories-list{flex:1;overflow-y:auto;padding:.6rem .75rem;display:flex;flex-direction:column;gap:.45rem;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.08) transparent}.mem-empty{font-size:.72rem;color:var(--text-dim);text-align:center;padding:1.5rem .5rem;line-height:1.6}.mem-row{display:flex;align-items:flex-start;gap:.5rem;padding:.55rem .6rem;border-radius:10px;background:#ffffff08;border:1px solid var(--border);animation:mem-row-in .22s ease forwards}@keyframes mem-row-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.mem-row-out{animation:mem-row-out .22s ease forwards!important}@keyframes mem-row-out{0%{opacity:1;transform:scale(1);max-height:80px}to{opacity:0;transform:scale(.95);max-height:0;padding:0;margin:0}}.mem-text{flex:1;font-size:.72rem;line-height:1.55;color:#e8e8f2b8}.mem-del{flex-shrink:0;background:none;border:none;color:#ffffff38;cursor:pointer;font-size:1rem;line-height:1;padding:0 .1rem;border-radius:4px;transition:color .15s,background .15s;margin-top:.05rem}.mem-del:hover{color:#fca5a5;background:#ef44441f}.mem-del:disabled{opacity:.4;cursor:default}.label-note{font-size:.58rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-dim);opacity:.72}.upload-row{display:flex;gap:.6rem;align-items:center}.upload-row .settings-input{flex:1;min-width:0}.upload-btn{flex-shrink:0;display:inline-flex;align-items:center;padding:.55rem .95rem;background:#7c3aed24;border:1px solid rgba(124,58,237,.35);border-radius:10px;color:#c4b5fd;font-size:.82rem;font-weight:500;font-family:inherit;cursor:pointer;transition:background .18s,border-color .18s;white-space:nowrap}.upload-btn:hover{background:#7c3aed3d;border-color:#7c3aed8c}.upload-toggle{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--text-dim);cursor:pointer;white-space:nowrap}.upload-toggle input{accent-color:var(--accent);cursor:pointer}.upload-toggle:hover{color:var(--text)}.text-btn{background:none;border:none;color:var(--text-dim);font-size:.75rem;font-family:inherit;cursor:pointer;padding:.3rem 0;transition:color .18s;display:block;margin-top:.5rem}.text-btn:hover{color:#fca5a5}.voice-clone-row{display:flex;align-items:center;gap:.5rem;padding:.45rem .6rem;border-radius:10px;background:#ffffff08;border:1px solid var(--border);margin-bottom:.45rem}.voice-clone-row.active{border-color:#7c3aed80;background:#7c3aed14}.voice-clone-name{flex:1;font-size:.82rem;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.voice-clone-dur{font-size:.72rem;color:var(--text-dim);flex-shrink:0}.account-row{display:flex;gap:.5rem;align-items:center;flex:1}.acct-btn{padding:.42rem .85rem;background:#ffffff0d;border:1px solid var(--border-hi);border-radius:9px;color:var(--text-dim);font-size:.78rem;font-weight:500;font-family:inherit;cursor:pointer;transition:background .18s,color .18s,border-color .18s;white-space:nowrap}.acct-btn:hover{background:#ffffff17;color:var(--text);border-color:#fff3}.acct-btn-danger{border-color:#ef44444d;color:#fca5a5}.acct-btn-danger:hover{background:#ef444424;border-color:#ef44448c;color:#fca5a5}.acct-btn-active{border-color:#7c3aed80;color:#c4b5fd;background:#7c3aed1f}.status-note{font-size:.72rem;color:var(--text-dim);margin-top:.45rem;min-height:1em;line-height:1.5}.subpanel{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;background:#0c0c16fa;border-radius:22px;display:flex;flex-direction:column;animation:gate-fade .18s ease}.subpanel.hidden{display:none}.subpanel-header{display:flex;align-items:center;gap:.75rem;padding:1.1rem 1.4rem .75rem;border-bottom:1px solid var(--border);flex-shrink:0}.subpanel-title{font-size:.88rem;font-weight:600;color:var(--text)}.back-btn{background:none;border:none;color:var(--text-dim);font-size:.82rem;font-family:inherit;cursor:pointer;padding:.2rem .4rem;border-radius:6px;transition:color .15s,background .15s;flex-shrink:0}.back-btn:hover{color:var(--text);background:#ffffff12}.subpanel-body{flex:1;overflow-y:auto;padding:.75rem 1.4rem 1.2rem;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.08) transparent}.profile-fact-row{display:flex;gap:.75rem;align-items:flex-start;padding:.5rem 0;border-bottom:1px solid var(--border)}.profile-fact-row:last-child{border-bottom:none}.profile-fact-field{flex-shrink:0;width:110px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);padding-top:.05rem}.profile-fact-value{flex:1;font-size:.82rem;color:var(--text);line-height:1.5}.log-entry{padding:.75rem 0;border-bottom:1px solid var(--border)}.log-entry:last-child{border-bottom:none}.log-entry-date{font-size:.65rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-dim);margin-bottom:.45rem}.log-msg{font-size:.79rem;line-height:1.55;margin-bottom:.2rem;color:#e8e8f2bf}.log-msg-user{color:#c4b5fdd9}.log-msg-assistant{color:#e8e8f2bf}.ctrl-btn{display:flex;flex-direction:column;align-items:center;gap:.3rem;min-width:56px;padding:.55rem .75rem;border-radius:14px;border:1px solid var(--border);background:var(--surface);color:var(--text-dim);cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .12s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-family:inherit}.ctrl-btn svg{width:18px;height:18px;flex-shrink:0}.ctrl-btn span{font-size:.6rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.ctrl-btn:hover{background:#ffffff14;color:var(--text);border-color:#a78bfa4d;transform:translateY(-2px);box-shadow:0 4px 16px #00000040,0 0 12px #7c3aed1a}.ctrl-btn:active{transform:scale(.95) translateY(0);box-shadow:none}.ctrl-btn.active{background:#7c3aed26;color:#c4b5fd;border-color:#7c3aed66;box-shadow:0 0 14px #7c3aed2e,inset 0 0 12px #7c3aed0f}#btn-handsfree.active{border-color:#ef444466;background:#ef44441f;color:#fca5a5}#btn-handsfree.active svg{animation:hf-mic-pulse 2s ease-in-out infinite}@keyframes hf-mic-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.12)}}.profile-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:250;background:#000000b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:flex-start;justify-content:center;padding:1.5rem 1rem env(safe-area-inset-bottom);overflow-y:auto;animation:gate-fade .2s ease}.profile-overlay.hidden{display:none}.profile-panel{width:min(680px,100%);background:#0c0c16fa;border:1px solid var(--border-hi);border-radius:22px;box-shadow:0 32px 80px #000000a6;display:flex;flex-direction:column;overflow:hidden;animation:card-up .3s cubic-bezier(.34,1.56,.64,1) both}.profile-panel-header{display:flex;align-items:center;justify-content:space-between;padding:1.2rem 1.4rem 1rem;border-bottom:1px solid var(--border)}.profile-identity{display:flex;align-items:center;gap:.9rem}.profile-avatar-circle{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#7c3aed,#4f46e5);display:flex;align-items:center;justify-content:center;font-size:1.3rem;font-weight:700;color:#fff;flex-shrink:0}.profile-display-name{font-size:1.1rem;font-weight:600;color:var(--text);margin-bottom:.25rem}.profile-depth-badge{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.profile-stats-row{display:flex;gap:0;border-bottom:1px solid var(--border)}.profile-stat{flex:1;display:flex;flex-direction:column;align-items:center;padding:.85rem .5rem;border-right:1px solid var(--border)}.profile-stat:last-child{border-right:none}.pstat-num{font-size:1.4rem;font-weight:700;color:#a78bfa;line-height:1.2}.pstat-label{font-size:.6rem;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);margin-top:.15rem}.profile-depth-bar-wrap{padding:.75rem 1.4rem .6rem;border-bottom:1px solid var(--border)}.profile-depth-track{height:5px;background:#ffffff0f;border-radius:999px;overflow:hidden}.profile-depth-fill{height:100%;background:linear-gradient(90deg,#7c3aed,#a78bfa);border-radius:999px;transition:width .6s ease}.profile-depth-note{font-size:.62rem;color:var(--text-dim);margin-top:.35rem;text-align:right}.profile-tabs{display:flex;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--border);padding:0 1rem;gap:0}.profile-tabs::-webkit-scrollbar{display:none}.profile-tab{flex-shrink:0;padding:.7rem 1rem;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-dim);font-size:.8rem;font-weight:500;font-family:inherit;cursor:pointer;transition:color .15s,border-color .15s;margin-bottom:-1px}.profile-tab:hover{color:var(--text)}.profile-tab.active{color:#c4b5fd;border-bottom-color:#7c3aed}.profile-tab-content{overflow-y:auto;max-height:55vh;scrollbar-width:thin;scrollbar-color:rgba(124,58,237,.3) transparent}.profile-tab-panel{padding:1rem 1.4rem 1.4rem}.profile-tab-panel.hidden{display:none}.profile-loading{color:var(--text-dim);font-size:.85rem;padding:1rem 0}.profile-empty{color:var(--text-dim);font-size:.85rem;padding:1rem 0;text-align:center}.pf-fact-row{display:flex;align-items:baseline;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--border)}.pf-fact-row:last-child{border-bottom:none}.pf-fact-field{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);min-width:100px;flex-shrink:0}.pf-fact-value{font-size:.9rem;color:var(--text);line-height:1.5}.pf-memory-row{padding:.75rem 0;border-bottom:1px solid var(--border)}.pf-memory-row:last-child{border-bottom:none}.pf-memory-top{display:flex;align-items:center;gap:.6rem;margin-bottom:.35rem}.pf-tag{display:inline-block;padding:.1rem .55rem;border-radius:999px;font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.pf-tag-fact{background:#1e3a5f99;color:#60a5fa}.pf-tag-episodic{background:#3b1e3099;color:#f472b6}.pf-tag-profile{background:#1a3a2a99;color:#4ade80}.pf-memory-date{font-size:.65rem;color:var(--text-dim);margin-left:auto}.pf-memory-text{font-size:.87rem;color:var(--text);line-height:1.55}.pf-mem-del{background:none;border:none;cursor:pointer;color:var(--text-dim);font-size:.75rem;padding:0 .2rem;line-height:1;opacity:.5;transition:opacity .15s}.pf-mem-del:hover{opacity:1;color:#f87171}.pf-doc-section{margin-bottom:1.2rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.pf-doc-header{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin-bottom:.6rem;display:flex;align-items:center;gap:.5rem}.pf-doc-count{font-weight:400;text-transform:none;letter-spacing:0}.pf-doc-upload{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.75rem}.pf-doc-input,.pf-doc-textarea{background:#ffffff0d;border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:.82rem;padding:.5rem .75rem;resize:vertical;outline:none;font-family:inherit}.pf-doc-input:focus,.pf-doc-textarea:focus{border-color:var(--accent)}.pf-doc-btn{align-self:flex-end;background:var(--accent);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.78rem;font-weight:600;padding:.45rem 1rem}.pf-doc-btn:disabled{opacity:.5;cursor:default}.pf-doc-row{display:flex;align-items:center;gap:.6rem;padding:.3rem 0;font-size:.82rem}.pf-doc-title{flex:1;color:var(--text)}.pf-doc-meta{font-size:.68rem;color:var(--text-dim)}.pf-doc-del{background:none;border:none;cursor:pointer;color:var(--text-dim);font-size:.75rem;opacity:.5}.pf-doc-del:hover{opacity:1;color:#f87171}.pf-card{background:#ffffff06;border:1px solid var(--border);border-radius:12px;padding:.85rem 1rem;margin-bottom:.6rem}.pf-card:last-child{margin-bottom:0}.pf-card-title{font-size:.9rem;font-weight:600;color:var(--text);margin-bottom:.3rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.pf-card-desc{font-size:.82rem;color:var(--text-dim);line-height:1.5;margin-bottom:.4rem}.pf-card-tag{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);border:1px solid var(--border);border-radius:6px;padding:.1rem .45rem}.mood-summary{display:flex;align-items:center;gap:.9rem;padding:.9rem 0 .7rem;border-bottom:1px solid var(--border);margin-bottom:.85rem}.mood-overall-emoji{font-size:2.2rem;line-height:1}.mood-overall-label{font-size:1rem;font-weight:600;color:var(--text)}.mood-overall-sub{font-size:.68rem;color:var(--text-dim);margin-top:.15rem}.mood-bar-legend{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .75rem;margin-bottom:1.2rem}.mood-legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.mood-legend-label{font-size:.7rem;color:var(--text-dim)}.mood-chart{display:flex;align-items:flex-end;gap:4px;height:80px;padding-bottom:22px;position:relative}.mood-day{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;cursor:default;position:relative}.mood-day-bar{width:100%;min-height:4px;border-radius:3px 3px 0 0;opacity:.75;transition:opacity .15s}.mood-day:hover .mood-day-bar{opacity:1}.mood-day-dot{width:6px;height:6px;border-radius:50%;margin-top:3px;flex-shrink:0}.mood-day-label{position:absolute;bottom:0;font-size:.55rem;color:var(--text-dim);white-space:nowrap}.pf-conv{background:#ffffff05;border:1px solid var(--border);border-radius:12px;padding:.85rem 1rem;margin-bottom:.6rem}.pf-conv:last-child{margin-bottom:0}.pf-conv-date{font-size:.65rem;color:var(--text-dim);margin-bottom:.6rem;letter-spacing:.03em}.pf-conv-msg{font-size:.82rem;line-height:1.5;margin-bottom:.35rem}.pf-conv-user strong{color:#a78bfa}.pf-conv-assistant strong{color:#4ade80}.pf-conv-more{font-size:.7rem;color:var(--text-dim);font-style:italic;margin-top:.3rem}.admin-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#08080ff7;display:flex;align-items:stretch;justify-content:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.admin-panel{width:100%;max-width:820px;display:flex;flex-direction:column;height:100dvh;overflow:hidden;border-left:1px solid var(--border);border-right:1px solid var(--border)}.admin-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border);flex-shrink:0}.admin-brand{display:flex;align-items:center;gap:.55rem}.admin-title{font-size:1rem;font-weight:600;letter-spacing:.02em}.admin-tabs{display:flex;border-bottom:1px solid var(--border);padding:0 1.25rem;flex-shrink:0}.admin-tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-dim);padding:.65rem 1rem;cursor:pointer;font-size:.83rem;font-family:inherit;margin-bottom:-1px;transition:color .15s,border-color .15s}.admin-tab:hover{color:var(--text)}.admin-tab.active{color:var(--text);border-bottom-color:var(--accent)}.admin-body{flex:1;overflow-y:auto;padding:1.1rem 1.25rem}.admin-tab-panel{display:flex;flex-direction:column;gap:1rem}.admin-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden}.admin-card-hd{display:flex;align-items:center;justify-content:space-between;padding:.65rem 1rem;border-bottom:1px solid var(--border)}.admin-card-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim)}.admin-card-bd{padding:.85rem 1rem;display:flex;flex-direction:column;gap:.65rem}.admin-card-ft{padding:.4rem 1rem .75rem;border-top:1px solid var(--border)}.admin-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.admin-row .settings-input{flex:1;min-width:100px}.admin-list{padding:.25rem 0}.admin-empty{font-size:.8rem;color:var(--text-dim);padding:.75rem 1rem;font-style:italic}.admin-item{display:flex;align-items:center;gap:.65rem;padding:.55rem 1rem;border-bottom:1px solid var(--border);transition:background .12s}.admin-item:last-child{border-bottom:none}.admin-item:hover{background:#ffffff06}.admin-item-name{flex:1;font-size:.84rem;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-item-meta{font-size:.7rem;color:var(--text-dim);white-space:nowrap}.admin-badge{font-size:.62rem;padding:.15em .55em;border-radius:20px;background:var(--accent-soft);color:#c4b5fd;white-space:nowrap;flex-shrink:0}.admin-badge.active-badge{background:#22c55e26;color:#86efac}.icon-btn-sm{background:none;border:none;color:var(--text-dim);cursor:pointer;padding:.2rem;border-radius:4px;display:flex;align-items:center;transition:color .15s,background .15s;flex-shrink:0}.icon-btn-sm svg{width:14px;height:14px}.icon-btn-sm:hover{color:var(--text);background:#ffffff14}.admin-action{background:none;border:1px solid var(--border);border-radius:6px;color:var(--text-dim);font-size:.72rem;padding:.2em .6em;cursor:pointer;font-family:inherit;white-space:nowrap;flex-shrink:0;transition:color .15s,background .15s,border-color .15s}.admin-action:hover{color:var(--text);background:#ffffff12;border-color:var(--border-hi)}.admin-action.use:hover{color:#c4b5fd;border-color:#7c3aed73;background:#7c3aed1a}.admin-action.active{color:#86efac;border-color:#22c55e59;background:#22c55e14}.admin-action.del:hover{color:#fca5a5;border-color:#ef444473;background:#ef44441a}.admin-svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.6rem;padding:.85rem 1rem}.svc-card{display:flex;align-items:center;gap:.55rem;background:#ffffff06;border:1px solid var(--border);border-radius:8px;padding:.6rem .85rem}.svc-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;display:inline-block}.svc-ok{background:#22c55e;box-shadow:0 0 6px #22c55e73}.svc-err{background:#ef4444;box-shadow:0 0 6px #ef444473}.svc-loading{background:#f59e0b;animation:svc-pulse 1.2s ease-in-out infinite}@keyframes svc-pulse{0%,to{opacity:1}50%{opacity:.3}}.svc-name{font-size:.8rem}.svc-detail{font-size:.67rem;color:var(--text-dim)}.mode-grid{display:flex;flex-wrap:wrap;gap:.4rem}.mode-chip{display:flex;align-items:center;gap:.35rem;padding:.38rem .75rem;background:#ffffff0a;border:1px solid var(--border);border-radius:20px;cursor:pointer;font-size:.78rem;font-family:inherit;color:var(--text-dim);transition:border-color .15s,color .15s,background .15s;white-space:nowrap}.mode-chip:hover{border-color:var(--border-hi);color:var(--text);background:#ffffff12}.mode-chip.selected{background:#7c3aed26;border-color:#7c3aed80;color:#c4b5fd}.mode-chip-icon{font-size:.88rem;line-height:1}#discovery-badge{position:absolute;right:14px;bottom:14px;z-index:10;height:30px;padding:0 12px 0 9px;border-radius:30px;border:1px solid rgba(124,58,237,.38);background:#0a0616c7;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 2px 12px #00000073;cursor:pointer;display:flex;align-items:center;gap:6px;transition:border-color .18s,background .18s,transform .13s;white-space:nowrap}#discovery-badge:hover{border-color:#7c3aeda6;background:#140a28e0;transform:translateY(-1px)}#disc-ring-svg{width:16px;height:16px;flex-shrink:0}.disc-ring-bg{stroke:#7c3aed33;stroke-width:4;fill:none}.disc-ring-fill{stroke:#a78bfa;stroke-width:4;fill:none;stroke-linecap:round;stroke-dasharray:0 100;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dasharray .9s cubic-bezier(.4,0,.2,1)}.disc-badge-inner{display:flex;align-items:center;gap:4px}.disc-badge-icon{font-size:.7rem;color:#a78bfa;line-height:1}#disc-badge-pct{font-size:.72rem;font-weight:600;color:#c4b5fd;letter-spacing:.02em}#disc-badge-label{font-size:.68rem;color:#c4b5fd8c;letter-spacing:.01em}#discovery-panel{position:absolute;right:14px;bottom:52px;z-index:20;width:300px;max-height:80vh;overflow-y:auto;overflow-x:hidden;background:#090614eb;border:1px solid rgba(124,58,237,.2);border-radius:18px;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 12px 56px #000000b3,0 0 0 1px #7c3aed14;padding:14px;display:none;transform-origin:bottom right;animation:disc-slide-up .26s cubic-bezier(.34,1.46,.64,1) both}#discovery-panel.open{display:block}@keyframes disc-slide-up{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}#discovery-panel::-webkit-scrollbar{width:3px}#discovery-panel::-webkit-scrollbar-track{background:transparent}#discovery-panel::-webkit-scrollbar-thumb{background:#7c3aed40;border-radius:3px}.disc-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.disc-panel-title{display:flex;align-items:center;gap:6px;font-size:.72rem;font-weight:600;color:#c4b5fdb3;letter-spacing:.06em;text-transform:uppercase}.disc-panel-icon{font-size:.82rem}.disc-close-btn{background:none;border:none;cursor:pointer;color:var(--text-dim);width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:7px;transition:background .15s,color .15s}.disc-close-btn:hover{background:#ffffff12;color:var(--text)}.disc-close-btn svg{width:13px;height:13px}.disc-bond-section{display:flex;flex-direction:column;align-items:center;margin-bottom:12px}.disc-arc-wrap{position:relative;width:140px;height:84px}.disc-arc-svg{width:140px;height:76px;display:block;overflow:visible}.disc-arc-bg{fill:none;stroke:#7c3aed21;stroke-width:8;stroke-linecap:round}.disc-arc-fill{fill:none;stroke:url(#disc-arc-grad);stroke-width:8;stroke-linecap:round;stroke-dasharray:0 100;transition:stroke-dasharray 1s cubic-bezier(.4,0,.2,1);filter:drop-shadow(0 0 7px rgba(124,58,237,.55))}.disc-arc-center{position:absolute;bottom:0;left:50%;transform:translate(-50%);text-align:center}.disc-bond-pct{font-size:1.35rem;font-weight:700;color:#c4b5fd;line-height:1}.disc-bond-level{font-size:.64rem;color:#c4b5fd80;margin-top:2px;white-space:nowrap}.disc-streak-card{background:#ffffff08;border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:10px 12px;margin-bottom:10px}.disc-streak-top{display:flex;align-items:center;gap:10px}.disc-flame-wrap{position:relative;display:flex;align-items:center;justify-content:center;width:48px;height:52px;flex-shrink:0}.disc-flame{font-size:2.4rem;line-height:1;transition:font-size .4s;filter:drop-shadow(0 0 8px rgba(251,146,60,0))}.disc-flame[data-level="0"]{font-size:1.4rem;filter:grayscale(1) opacity(.3)}.disc-flame[data-level="1"]{font-size:1.8rem;filter:drop-shadow(0 0 4px rgba(251,146,60,.3))}.disc-flame[data-level="2"]{font-size:2rem;filter:drop-shadow(0 0 6px rgba(251,146,60,.5))}.disc-flame[data-level="3"]{font-size:2.2rem;filter:drop-shadow(0 0 9px rgba(251,191,36,.6));animation:flame-pulse 2.2s ease-in-out infinite}.disc-flame[data-level="4"]{font-size:2.4rem;filter:drop-shadow(0 0 12px rgba(251,191,36,.7));animation:flame-pulse 1.8s ease-in-out infinite}.disc-flame[data-level="5"]{font-size:2.6rem;filter:drop-shadow(0 0 14px rgba(99,252,255,.6));animation:flame-pulse 1.5s ease-in-out infinite}.disc-flame[data-level="6"]{font-size:2.8rem;filter:drop-shadow(0 0 16px rgba(167,139,250,.7));animation:flame-pulse 1.2s ease-in-out infinite}.disc-flame[data-level="7"]{font-size:3rem;filter:drop-shadow(0 0 20px rgba(167,139,250,.8));animation:flame-pulse 1s ease-in-out infinite}.disc-flame[data-level="8"]{font-size:3.2rem;filter:drop-shadow(0 0 24px rgba(250,204,21,.9));animation:flame-pulse .8s ease-in-out infinite}@keyframes flame-pulse{0%,to{transform:scale(1) rotate(-1deg)}50%{transform:scale(1.08) rotate(1deg)}}.disc-streak-info{flex:1;min-width:0}.disc-streak-number{font-size:1.7rem;font-weight:800;color:var(--text);line-height:1;letter-spacing:-.02em}.disc-streak-unit{font-size:.72rem;color:var(--text-dim);margin-left:2px}.disc-streak-title{font-size:.72rem;font-weight:600;color:#a78bfa;margin-top:2px}.disc-streak-meta{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}.disc-streak-best{font-size:.66rem;color:var(--text-dim);background:#ffffff0d;border:1px solid var(--border);border-radius:6px;padding:2px 7px}.disc-streak-best span{color:var(--text);font-weight:600}.disc-today{display:inline-flex;align-items:center;gap:4px;font-size:.66rem;font-weight:600;padding:2px 8px;border-radius:6px}.disc-today.done{background:#22c55e1f;border:1px solid rgba(34,197,94,.3);color:#86efac}.disc-today.pending{background:#fb923c1f;border:1px solid rgba(251,146,60,.35);color:#fdba74;animation:today-pulse 2.5s ease-in-out infinite}@keyframes today-pulse{0%,to{opacity:1}50%{opacity:.65}}.disc-next-milestone{margin-top:7px;font-size:.64rem;color:var(--text-dim);display:flex;align-items:center;gap:5px}.disc-next-milestone-bar{flex:1;height:3px;background:#a78bfa1f;border-radius:2px;overflow:hidden}.disc-next-milestone-fill{height:100%;background:linear-gradient(90deg,#7c3aed,#a78bfa);border-radius:2px;transition:width .8s cubic-bezier(.4,0,.2,1)}.disc-next-label{white-space:nowrap;color:#a78bfab3}.disc-section-title{font-size:.62rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#c4b5fd59;margin:10px 0 6px}.disc-milestones{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.disc-milestone{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px 5px;border-radius:10px;border:1px solid transparent;cursor:default;transition:border-color .15s,background .15s;position:relative}.disc-milestone.unlocked{background:#7c3aed14;border-color:#7c3aed40}.disc-milestone.unlocked:hover{background:#7c3aed24;border-color:#a78bfa73}.disc-milestone.locked{opacity:.28}.disc-milestone-icon{font-size:1.25rem;line-height:1}.disc-milestone.unlocked .disc-milestone-icon{filter:drop-shadow(0 0 5px rgba(167,139,250,.5))}.disc-milestone-label{font-size:.55rem;color:var(--text-dim);text-align:center;line-height:1.2;max-width:46px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.disc-milestone.unlocked .disc-milestone-label{color:#c4b5fdb3}.disc-milestone[data-tip]:hover:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:#0f0a23f2;border:1px solid rgba(124,58,237,.3);border-radius:7px;padding:4px 8px;font-size:.62rem;color:var(--text-dim);white-space:nowrap;z-index:30;pointer-events:none}.disc-milestones{display:grid;grid-template-columns:1fr 1fr;gap:5px}.disc-mc{display:flex;align-items:center;gap:8px;padding:8px 9px;border-radius:11px;border:1px solid var(--border);background:#ffffff05;transition:border-color .15s,background .15s;position:relative;overflow:hidden}.disc-mc.unlocked{border-color:#7c3aed47;background:#7c3aed0f}.disc-mc.unlocked:hover{border-color:#a78bfa73;background:#7c3aed1a}.disc-mc.locked{opacity:.45}.disc-mc-icon{font-size:1.45rem;line-height:1;flex-shrink:0;filter:grayscale(.2)}.disc-mc.unlocked .disc-mc-icon{filter:drop-shadow(0 0 6px rgba(167,139,250,.55))}.disc-mc-body{flex:1;min-width:0}.disc-mc-name{font-size:.66rem;font-weight:600;color:var(--text-dim);line-height:1.2;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.disc-mc.unlocked .disc-mc-name{color:#c4b5fdd9}.disc-mc-bar-row{display:flex;align-items:center;gap:5px}.disc-mc-bar{flex:1;height:3px;border-radius:2px;background:#ffffff12;overflow:hidden}.disc-mc-bar-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,#5b21b6,#a78bfa);transition:width .9s cubic-bezier(.4,0,.2,1)}.disc-mc.unlocked .disc-mc-bar-fill{background:linear-gradient(90deg,#7c3aed,#c4b5fd)}.disc-mc-val{font-size:.58rem;color:#c4b5fd73;white-space:nowrap;flex-shrink:0}.disc-mc.unlocked .disc-mc-val{color:#c4b5fdb3}.bond-tab-section{margin-bottom:18px}.bond-tab-title{font-size:.65rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#c4b5fd66;margin-bottom:8px}.bond-cat-list{display:flex;flex-direction:column;gap:6px}.bond-cat-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:#ffffff06;border:1px solid var(--border)}.bond-cat-row:hover{border-color:#7c3aed40;background:#7c3aed0a}.bond-cat-icon{font-size:1rem;line-height:1;flex-shrink:0}.bond-cat-body{flex:1;min-width:0}.bond-cat-label{font-size:.73rem;font-weight:500;color:var(--text);margin-bottom:3px}.bond-cat-preview{font-size:.67rem;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-style:italic}.bond-cat-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.bond-cat-count{font-size:.65rem;font-weight:700;color:#a78bfa;background:#7c3aed1f;border-radius:5px;padding:1px 6px}.bond-cat-bar-wrap{width:60px}.bond-cat-bar{height:3px;background:#7c3aed1a;border-radius:2px;overflow:hidden}.bond-cat-bar-fill{height:100%;background:linear-gradient(90deg,#5b21b6,#7c3aed);border-radius:2px;transition:width .6s}.bond-disc-list{display:flex;flex-direction:column;gap:5px}.bond-disc-item{display:flex;align-items:flex-start;gap:8px;padding:7px 10px;border-radius:9px;background:#ffffff05;border:1px solid var(--border)}.bond-disc-dot{width:5px;height:5px;border-radius:50%;background:#7c3aed;opacity:.5;margin-top:6px;flex-shrink:0}.bond-disc-text{font-size:.72rem;color:var(--text-dim);line-height:1.45;flex:1}.bond-disc-ago{font-size:.6rem;color:#e8e8f238;flex-shrink:0;margin-top:1px}.bond-empty{font-size:.72rem;color:var(--text-dim);opacity:.5;font-style:italic;padding:6px 0}.disc-recent{display:flex;flex-direction:column;gap:4px}.disc-recent-item{display:flex;align-items:flex-start;gap:7px;padding:6px 8px;border-radius:8px;background:#ffffff05;border:1px solid var(--border)}.disc-recent-dot{width:5px;height:5px;border-radius:50%;background:#7c3aed;opacity:.55;margin-top:5px;flex-shrink:0}.disc-recent-text{font-size:.7rem;color:var(--text-dim);line-height:1.4;flex:1}.disc-recent-ago{font-size:.6rem;color:#e8e8f238;flex-shrink:0;margin-top:1px}.disc-empty{font-size:.71rem;color:var(--text-dim);text-align:center;padding:8px 0;opacity:.55;font-style:italic}.orb-halo{position:absolute;width:108px;height:108px;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%;border:1px solid rgba(124,58,237,.14);animation:orb-halo-spin 9s linear infinite;pointer-events:none}.orb-halo:before{content:"";position:absolute;width:5px;height:5px;border-radius:50%;background:#c4b5fdd9;box-shadow:0 0 8px 2px #a78bfa99;top:-2.5px;left:50%;transform:translate(-50%)}.orb-ring.recording~* .orb-halo,.orb-ring.processing~* .orb-halo,.orb-ring.speaking~* .orb-halo{opacity:0;transition:opacity .3s}.orb-deco-ring{position:absolute;width:90px;height:90px;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%;border:1px dashed rgba(124,58,237,.18);animation:orb-deco-counter 6s linear infinite;pointer-events:none}.orb-glint{position:absolute;width:24px;height:14px;border-radius:50%;background:#ffffff2e;filter:blur(3px);top:14px;left:16px;animation:glint-drift 5s ease-in-out infinite;pointer-events:none}@keyframes brand-shimmer{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes orb-idle-breathe{0%,to{box-shadow:0 0 28px #7c3aed66,0 0 60px #7c3aed14,0 4px 20px #0000008c;transform:scale(1)}50%{box-shadow:0 0 52px #7c3aed9e,0 0 100px #7c3aed29,0 4px 24px #00000080;transform:scale(1.025)}}@keyframes ring-idle-breathe{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.07)}}@keyframes orb-halo-spin{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes orb-deco-counter{to{transform:translate(-50%,-50%) rotate(-360deg)}}@keyframes glint-drift{0%,to{opacity:.7;transform:translate(0) scale(1)}33%{opacity:.35;transform:translate(4px,2px) scale(.85)}66%{opacity:.9;transform:translate(-2px,-1px) scale(1.1)}}@keyframes hint-pulse{0%,to{opacity:.38;letter-spacing:.06em}50%{opacity:.6;letter-spacing:.09em}}@keyframes logo-glow{0%,to{filter:drop-shadow(0 0 6px rgba(167,139,250,.4))}50%{filter:drop-shadow(0 0 20px rgba(167,139,250,.8))}}.badge.recording{animation:badge-rec-pulse 1.2s ease-in-out infinite}@keyframes badge-rec-pulse{0%,to{box-shadow:0 0 #ef444400}50%{box-shadow:0 0 0 4px #ef44442e}}.icon-btn{border-radius:10px;transition:color .18s,background .18s,border-color .18s,box-shadow .18s}.icon-btn:hover{box-shadow:0 0 10px #7c3aed1f;border-color:#a78bfa40}.brand-icon{filter:drop-shadow(0 0 4px rgba(167,139,250,.3))}.mode-strip-main{display:flex;gap:.4rem;padding:.45rem 1.2rem;overflow-x:auto;scrollbar-width:none;flex-shrink:0;background:#06060ceb;border-top:1px solid rgba(255,255,255,.04)}.mode-strip-main::-webkit-scrollbar{display:none}.mode-strip-main:empty{display:none}.mode-strip-pill{display:flex;align-items:center;gap:.3rem;padding:.3rem .8rem;border-radius:20px;border:1px solid var(--border);background:transparent;color:var(--text-dim);font-size:.7rem;font-weight:500;white-space:nowrap;cursor:pointer;transition:border-color .18s,background .18s,color .18s;flex-shrink:0}.mode-pill-icon{font-size:.82rem;line-height:1}.mode-strip-pill:hover{border-color:var(--border-hi);color:var(--text);background:#ffffff0d}.mode-strip-pill.active{background:#7c3aed26;border-color:#7c3aed80;color:#c4b5fd}.topbar-stats{display:none;align-items:center;gap:.6rem;flex:1;justify-content:center}.tbs-item{font-size:.7rem;font-weight:600;color:#c4b5fda6;letter-spacing:.03em;white-space:nowrap}.tbs-streak{color:#fbbf24bf}.tbs-bond{color:#a78bfabf}@media (max-width: 600px){.topbar-stats{display:flex}#btn-wakeword,.ctrl-btn span{display:none}.ctrl-btn{width:42px;height:42px;padding:0;border-radius:12px;justify-content:center}#controls{padding:.65rem .9rem max(.85rem,env(safe-area-inset-bottom));gap:.35rem}.orb-group{gap:.3rem}#hint{font-size:.6rem}#topbar{padding:.5rem .85rem}#discovery-panel{width:calc(100vw - 24px);right:12px;left:12px;border-radius:16px}#discovery-badge{right:10px;bottom:10px}.mode-strip-pill{font-size:.66rem;padding:.28rem .65rem}}.pricing-card{background:#ffffff0a;border:1px solid var(--border);border-radius:10px;padding:1rem}.pricing-card--highlight{border-color:#7c3aed;background:#7c3aed14}.pricing-card-hd{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.pricing-name{font-size:.95rem;font-weight:600;color:var(--text);display:flex;align-items:center;gap:.4rem}.pricing-badge{font-size:.6rem;background:#7c3aed;color:#fff;padding:.1rem .4rem;border-radius:4px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.pricing-price{font-size:1.2rem;font-weight:700;color:var(--text)}.pricing-period{font-size:.72rem;color:var(--text-dim);font-weight:400}.pricing-features{list-style:none;padding:0;margin:0 0 .75rem;display:flex;flex-direction:column;gap:.3rem}.pricing-features li{font-size:.78rem;color:var(--text-dim);padding-left:1rem;position:relative}.pricing-features li:before{content:"✓";position:absolute;left:0;color:#7c3aed;font-weight:700}.pricing-btn{width:100%;padding:.5rem;border-radius:6px;font-size:.82rem;font-weight:600;cursor:pointer;border:1px solid transparent;transition:opacity .15s}.pricing-btn--current{background:#ffffff0f;color:var(--text-dim);cursor:default}.pricing-btn--primary{background:#7c3aed;color:#fff}.pricing-btn--primary:hover{opacity:.88}.pricing-btn:disabled{opacity:.55;cursor:wait}
