
:root{color-scheme:dark;--bg:#101718;--panel:#172021;--line:rgba(191,215,210,.10);--text:#e1ebe7;--muted:#83938e;--mint:#aedbc7;--accent:#a6dbc4;--rail:80px;--font:"Segoe UI","Microsoft YaHei UI","PingFang SC",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px var(--font);letter-spacing:.2px}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{opacity:.4;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--mint);outline-offset:4px}button{border:0;background:none}a{color:inherit;text-decoration:none}[hidden]{display:none!important}i{display:inline-flex;flex-shrink:0}i svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.65;fill:none;stroke-linecap:round;stroke-linejoin:round}.rail{position:fixed;left:0;top:0;bottom:0;width:var(--rail);border-right:1px solid var(--line);background:#11191a;display:flex;flex-direction:column;align-items:center;z-index:10}.brandmark{height:88px;display:grid;place-items:center;font-size:39px;color:#bddbc8}.brandmark span{display:block;transform:rotate(12deg)}.rail-links{display:flex;flex-direction:column;gap:15px;margin-top:35px;width:100%;align-items:center}.nav-btn{width:58px;height:62px;border-radius:15px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#748680;font-size:10px;transition:.2s}.nav-btn i svg{width:22px;height:22px}.nav-btn:hover,.nav-btn.active{background:#24332f;color:var(--mint)}.rail-bottom{margin-top:auto;margin-bottom:22px}.workspace{margin-left:var(--rail)}.topbar{height:88px;padding:0 38px;display:flex;align-items:center;justify-content:space-between}.wordmark{font-size:20px;font-weight:600;display:flex;align-items:center;gap:18px}.brand-divider{height:17px;width:1px;background:#3a4945}.subtitle{font-size:12px;font-weight:400;color:#9babA5;letter-spacing:2px}.header-right{display:flex;align-items:center;gap:23px}.local-badge{color:#869990;font-size:11px;letter-spacing:1px}.connection{display:flex;align-items:center;gap:9px;font-size:12px;color:#c0d6cb}.connection b,.name-line b{height:6px;width:6px;background:#a2d9bb;border-radius:50%;box-shadow:0 0 12px #8bcaa77a}.connection.offline{color:#d1a18b}.connection.offline b{background:#d1a18b}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;color:#90a49a;border-radius:10px}.icon-btn:hover{background:#2a3632;color:var(--text)}main{max-width:1600px;margin:auto;padding:0 38px 15px}.stage{height:clamp(390px,53vh,610px);min-height:390px;position:relative;overflow:hidden;border-radius:23px;border:1px solid #35433c;background:radial-gradient(ellipse at 57% 60%,#354b40 0%,#253b33 28%,#1c2c28 54%,#182323 90%);isolation:isolate}.stage-grain{position:absolute;inset:0;opacity:.04;pointer-events:none;z-index:8;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.4' filter='url(%23n)'/%3E%3C/svg%3E")}.stage-grid{position:absolute;inset:0;background-image:linear-gradient(#93bc9d06 1px,transparent 1px),linear-gradient(90deg,#93bc9d06 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(90deg,transparent,#000,transparent)}.ambient{position:absolute;filter:blur(70px);border-radius:50%;opacity:.18;pointer-events:none}.ambient-one{width:350px;height:350px;right:12%;top:0;background:#9fc7a5}.ambient-two{width:200px;height:180px;left:15%;bottom:-140px;background:#b8b58e}.scene-heading{position:absolute;left:40px;top:37px;z-index:3}.eyebrow{font-size:9px;font-weight:500;letter-spacing:2.5px;color:#a9c5b5}.tiny-star{font-size:16px;margin-right:7px}.scene-heading h1{font-size:clamp(28px,3.1vw,43px);line-height:1.55;font-weight:400;letter-spacing:3px;margin:20px 0 14px}.mint-dot{color:#afd7bc}.scene-heading p{font-size:12px;line-height:2.2;letter-spacing:1.5px;color:#99b0a2}.scene-top-right{position:absolute;top:27px;right:28px;display:flex;flex-direction:column;align-items:flex-end;gap:12px;color:#6e8a78;font-size:10px;z-index:3}.scene-tag{display:flex;align-items:center;gap:7px;font-size:10px;color:#b3c3b6;letter-spacing:1px}.scene-tag i svg{width:13px;height:13px}.avatar-wrap{position:absolute;left:50%;bottom:-4%;height:102%;width:48%;transform:translateX(-30%);z-index:2;display:flex;align-items:flex-end;justify-content:center;pointer-events:none}.avatar-wrap canvas{height:100%;width:100%;object-fit:contain;filter:drop-shadow(0 12px 22px #08150b40)}.avatar-halo{position:absolute;border:1px solid #b8d9a91a;border-radius:50%;width:360px;height:360px;left:58%;top:47%;transform:translate(-50%,-50%);z-index:0}.halo-two{width:450px;height:450px;border-color:#b8d9a90b}.avatar-floor{position:absolute;bottom:2%;left:58%;width:340px;height:35px;background:#08170f55;filter:blur(18px);border-radius:50%;transform:translateX(-25%)}.character-name{position:absolute;right:8%;top:44%;z-index:3;display:flex;flex-direction:column;gap:10px}.name-line{display:flex;align-items:center;gap:8px}.name-line strong{font-size:16px;letter-spacing:3px;font-weight:500}.name-line>span{font-size:8px;color:#a6c7b0;border:1px solid #809c7950;border-radius:4px;padding:3px 5px}.character-caption{font-size:10px;color:#91ac9b;max-width:150px;line-height:1.8}.scene-bottom-left{position:absolute;bottom:27px;left:35px;z-index:3}.mood-line{display:flex;align-items:center;gap:9px;font-size:11px;color:#c2d5c6;letter-spacing:1px}.mood-orb{width:9px;height:9px;background:#c6dcaf;border-radius:50%;box-shadow:0 0 14px #b3d7998a;animation:breathe 4s infinite}.scene-note{display:block;font-size:9px;letter-spacing:1px;color:#78947f;margin-top:11px}.scene-bottom-right{position:absolute;right:30px;bottom:30px;display:flex;align-items:center;gap:12px;font-size:10px;color:#8ea897;z-index:4}.call-timer{font-variant-numeric:tabular-nums;color:#b6d9bf}.call-controls{position:absolute;bottom:23px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:6px;padding:7px;background:#172820c9;backdrop-filter:blur(15px);border:1px solid #9eb69f29;border-radius:40px;z-index:5;box-shadow:0 5px 30px #0b1e1b30}.call-control{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;color:#c0d4c4;background:#ffffff07}.call-control:hover,.call-control.on{background:#b2d4ba;color:#1e3928}.call-control i svg{width:17px;height:17px}.control-divider{width:1px;height:20px;background:#70816d40;margin:0 4px}.end-call{background:#9b504e;color:white}.self-preview{position:absolute;right:22px;top:80px;width:158px;z-index:6;border:1px solid #72978370;border-radius:12px;overflow:hidden;background:#15201b;box-shadow:0 10px 30px #0005}.self-preview video{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transform:scaleX(-1)}.self-preview span{display:block;font-size:9px;padding:7px;color:#a7beb0}.self-preview button{font-size:10px;background:#375343;display:block;width:100%;padding:8px}.conversation{margin-top:23px}.conversation-header{display:flex;align-items:center;justify-content:space-between;font-size:11px;margin-bottom:7px}.conversation-header>div{display:flex;align-items:center;gap:11px}.conversation-header strong{font-weight:500;color:#bfcfc7}.conversation-header i{color:#91ae9e}.conversation-header i svg{width:16px;height:16px}.conversation-header span{color:#667e71;font-size:10px}.small-dot{width:3px;height:3px;background:#536b5c;border-radius:50%}.text-btn{color:#91a999;font-size:10px;display:inline-flex;align-items:center;gap:7px;padding:6px}.text-btn:hover{color:#d2e9d9}.text-btn i svg{width:14px;height:14px}.messages{height:126px;min-height:110px;overflow-y:auto;padding:14px 3px 10px;scrollbar-width:thin;scrollbar-color:#3c5047 transparent}.conversation-empty{display:flex;align-items:center;gap:16px;padding:20px 8px;color:#b8c9be}.empty-symbol{display:grid;place-items:center;width:37px;height:37px;border:1px solid #35463c;border-radius:13px;color:#a7c6af;font-size:24px}.conversation-empty strong{font-size:12px;font-weight:400}.conversation-empty p{font-size:10px;color:#7c9285;margin-bottom:0}.message{display:flex;gap:11px;align-items:flex-start;margin-bottom:15px;max-width:90%}.message.user{margin-left:auto;flex-direction:row-reverse}.message-avatar{display:grid;place-items:center;flex-shrink:0;background:#293c30;border-radius:10px;color:#b9d5bb;font-size:12px;width:29px;height:29px}.message.user .message-avatar{background:#30383c;color:#b6c2ce}.message-content{min-width:0}.message-label{font-size:9px;color:#789181;margin-bottom:5px;display:flex;gap:10px}.message.user .message-label{justify-content:flex-end}.bubble{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9;font-size:12px;background:#1e2c25;padding:11px 16px;border:1px solid #56715b20;border-radius:0 12px 12px 12px}.message.user .bubble{background:#243732;border-color:#4a70604d;border-radius:12px 0 12px 12px}.message.failed .bubble{border-color:#b3735860}.message-action{font-size:10px;color:#c7a38e;padding:6px}.composer{display:flex;gap:8px;align-items:center;background:#1b2524;border:1px solid #34483c;border-radius:15px;padding:10px 12px;transition:border-color .2s}.composer:focus-within{border-color:#7b9e86}.composer-inner{flex:1;min-width:0}textarea#message-input{display:block;resize:none;color:#e1ece4;background:none;border:0;outline:none;width:100%;max-height:110px;font-size:12px;line-height:1.7;padding:5px 0;scrollbar-width:thin}textarea::placeholder{color:#708779;letter-spacing:1px}.send-btn{width:35px;height:35px;border-radius:10px;display:grid;place-items:center;background:#b2d1b9;color:#183322}.send-btn:hover{background:#cde4d0}.send-btn i svg{width:18px;height:18px}.composer-footer{display:flex;justify-content:space-between;color:#637b6d;font-size:9px;margin:10px 5px 0;letter-spacing:.5px}.composer-footer>span:last-child{display:flex;align-items:center;gap:6px}.tiny-dot{width:4px;height:4px;background:#698c76;border-radius:50%}.space-footer{border-top:1px solid var(--line);margin-top:22px;padding-top:17px;display:flex;align-items:center;justify-content:space-between;color:#759080;font-size:10px}.space-footer button{display:flex;gap:9px;align-items:center;color:#97b19f;font-size:10px;padding:0}.space-footer i svg{width:14px;height:14px}.space-footer b{font-weight:400;color:#c3d8c9}.footer-quote{color:#536e5c;letter-spacing:1px}.working{display:flex;align-items:center;gap:10px;color:#b0cbb9;font-size:10px;padding:8px 3px}.working button{color:#acbcb2;border:1px solid #546f5c55;border-radius:6px;font-size:10px;margin-left:auto;padding:3px 9px}.thinking-dots{display:flex;gap:3px}.thinking-dots b{height:3px;width:3px;background:#b4d3bf;border-radius:50%;animation:breathe 1s infinite}.thinking-dots b:nth-child(2){animation-delay:.2s}.thinking-dots b:nth-child(3){animation-delay:.4s}#attachment-label{font-size:10px;color:var(--mint);padding-bottom:4px;cursor:pointer}.drawer-backdrop{position:fixed;inset:0;background:#050c0b73;backdrop-filter:blur(3px);z-index:20}.drawer{position:fixed;right:0;top:0;bottom:0;width:min(560px,100%);background:#141e1e;border-left:1px solid #3b4c44;z-index:21;box-shadow:-20px 0 80px #0003;display:flex;flex-direction:column}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:28px 30px;border-bottom:1px solid var(--line)}h2{font-size:23px;font-weight:400;letter-spacing:2px;margin:9px 0 0}.drawer-body{padding:24px 28px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#344d41 transparent}.panel-intro{font-size:12px;line-height:1.9;color:#91aa9c;margin:0 0 20px}.panel-card{padding:17px 18px;border:1px solid #3e56443f;border-radius:13px;background:#1a2722;margin-bottom:15px}.panel-card h3{margin:0 0 10px;font-size:13px;font-weight:500}.panel-card p{font-size:11px;color:#96ad9e;line-height:1.9;margin:7px 0}.panel-card .number{font-size:32px;font-weight:300;color:#c5e1cd}.panel-card .caption{font-size:10px;color:#8ba794}.metric-row{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.metric-row .panel-card{padding:14px}.metric-row .number{font-size:25px}.form-label{display:block;font-size:11px;color:#a9c4b1;margin:15px 0 7px}.field{width:100%;border:1px solid #385244;background:#111d18;color:#d5e6dc;border-radius:8px;padding:10px;font-size:12px}.field option{background:#17241f}textarea.field{resize:vertical;min-height:75px;line-height:1.8}.form-row{display:flex;gap:10px;margin:12px 0}.form-row>*{flex:1;min-width:0}.primary-btn,.secondary-btn,.danger-btn{padding:10px 15px;border-radius:8px;font-size:11px;display:inline-flex;align-items:center;justify-content:center;gap:7px;line-height:1.5}.primary-btn{background:#b6d4bd;color:#1a3522}.secondary-btn{background:#22372c;border:1px solid #3d5747;color:#bcd4c5}.danger-btn{color:#ddab9e;border:1px solid #794c3c80;background:#3b2822}.wide{width:100%}.small-help{font-size:10px;line-height:1.85;color:#799584}.section-label{font-size:10px;letter-spacing:1.5px;color:#94b39d;margin:25px 0 14px;display:block}.chem-row{margin:19px 0}.chem-label{display:flex;justify-content:space-between;align-items:center;font-size:11px}.chem-label small{color:#789081;font-size:9px;margin-left:7px}.chem-track{height:5px;background:#2a3931;border-radius:10px;margin-top:9px;position:relative}.chem-fill{height:100%;border-radius:10px}.chem-baseline{position:absolute;height:9px;width:1px;background:#d9e6ce7a;top:-2px}.emotion-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.emotion-chip{padding:10px;background:#203128;border:1px solid #41534060;border-radius:8px;display:flex;justify-content:space-between;font-size:10px;color:#9db9a5}.emotion-chip b{font-weight:400;color:#c6ddc9}.toggle-row{display:flex;justify-content:space-between;align-items:center;margin:15px 0;font-size:12px;color:#b5cdbd;gap:12px}.toggle-row input{accent-color:#a4cdb0;width:17px;height:17px}.graph-shell{height:320px;background:radial-gradient(ellipse,#20352d,#111c19);border:1px solid #3c574566;border-radius:15px;overflow:hidden;position:relative;margin:15px 0}.graph-shell canvas{width:100%;height:100%;touch-action:none}.graph-hint{position:absolute;bottom:12px;left:14px;font-size:9px;color:#678a71;pointer-events:none}.graph-tools{position:absolute;right:10px;bottom:9px;display:flex;gap:4px}.graph-tools button{background:#243b2e;border-radius:6px;width:27px;height:26px;color:#adcbb6}.graph-tooltip{position:absolute;pointer-events:none;max-width:230px;padding:9px 11px;border-radius:8px;background:#0e1a15ed;color:#c5dfce;font-size:10px;border:1px solid #4b7454;line-height:1.6;z-index:2}.brain-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:9px;color:#98b09f}.brain-legend span{display:flex;align-items:center;gap:5px}.brain-legend b{width:5px;height:5px;border-radius:50%}.memory-item{display:block;width:100%;text-align:left;border:1px solid #3f56474a;padding:13px 14px;border-radius:10px;margin-top:9px;background:#1b2922}.memory-item:hover{border-color:#789981}.memory-item p{font-size:11px;line-height:1.8;margin:7px 0;color:#c6d9ca}.memory-meta{display:flex;gap:10px;justify-content:space-between;font-size:9px;color:#809f8a}.memory-detail{border:1px solid #627e5c77;padding:15px;border-radius:12px;background:#23372b;margin:15px 0}.memory-detail p{line-height:1.85;font-size:12px}.memory-detail small{color:#91b29b;font-size:10px}.source-quote{border-left:2px solid #66896e;padding:10px;background:#17251c;color:#a9c7b0;font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere}.trace-item{position:relative;padding:0 0 22px 22px;border-left:1px solid #3e634a;margin-left:7px}.trace-item:before{content:'';position:absolute;left:-4px;top:3px;width:7px;height:7px;border-radius:50%;background:#b4d6ba;box-shadow:0 0 10px #90bf9360}.trace-item h3{font-size:12px;font-weight:500;margin:0 0 8px}.trace-item p{color:#89a992;font-size:11px;line-height:1.8}.trace-item small{font-size:9px;color:#668470}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:min(520px,90vw);background:#2e4438;border:1px solid #708b70;color:#e1efdf;border-radius:12px;box-shadow:0 8px 35px #0006;padding:14px 20px;z-index:50;font-size:12px;line-height:1.7}dialog{background:#1b2b22;color:#d4e7d6;border:1px solid #5c795f;border-radius:18px;padding:27px;max-width:min(460px,92vw);width:100%;box-shadow:0 25px 100px #0008}dialog::backdrop{background:#0009;backdrop-filter:blur(4px)}dialog h3{font-size:19px;font-weight:400;margin:0 0 16px}dialog p{font-size:12px;color:#a5c4ad;line-height:1.9}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.stage:fullscreen{width:100vw;height:100vh;border-radius:0}.stage:fullscreen .avatar-wrap{height:90%}.reduced-motion *{animation:none!important;transition:none!important}@keyframes breathe{0%,100%{opacity:.55}50%{opacity:1}}@media(min-height:950px){.messages{height:180px}.stage{height:55vh}}@media(max-width:1100px){.scene-heading{left:25px}.scene-heading h1{font-size:30px}.character-name{right:4%}.character-caption{max-width:95px}.footer-quote{display:none}.scene-note{display:none}.scene-bottom-right{right:20px}.avatar-wrap{left:49%;width:53%}.topbar{padding:0 25px}main{padding:0 25px 15px}}@media(max-width:760px){:root{--rail:0px}.rail{top:auto;bottom:0;right:0;width:100%;height:65px;padding-bottom:env(safe-area-inset-bottom);flex-direction:row;justify-content:center;background:#121d19f5;backdrop-filter:blur(15px);border-right:0;border-top:1px solid var(--line)}.brandmark,.rail-bottom{display:none}.rail-links{margin:0;display:flex;flex-direction:row;justify-content:space-around;gap:0}.nav-btn{height:51px;width:65px;border-radius:9px;font-size:9px;gap:4px}.nav-btn i svg{height:19px;width:19px}.topbar{height:65px;padding:0 16px}.wordmark{font-size:18px;gap:12px}.subtitle{font-size:10px;letter-spacing:1px}.header-right{gap:10px}.local-badge{display:none}.connection{font-size:10px;gap:6px}.header-right .icon-btn{width:22px}main{padding:0 12px 145px}.stage{height:46svh;min-height:320px;border-radius:17px}.scene-heading{top:23px;left:22px}.scene-heading .eyebrow{font-size:7px;letter-spacing:1px}.scene-heading h1{font-size:25px;line-height:1.6;margin-top:15px;letter-spacing:1px}.scene-heading p{display:none}.scene-top-right{right:15px;top:21px}.scene-tag{font-size:8px;letter-spacing:0}.scene-tag i svg{height:10px;width:10px}#scene-clock{display:none}.avatar-wrap{height:93%;width:80%;left:40%;transform:translateX(-17%);bottom:1%}.avatar-halo{width:270px;height:270px;left:65%;top:48%}.halo-two{width:330px;height:330px}.character-name{right:19px;top:auto;bottom:94px}.character-caption{display:none}.name-line strong{font-size:12px}.name-line>span{display:none}.name-line b{width:4px;height:4px}.scene-bottom-left{left:20px;bottom:27px}.mood-line{font-size:9px;gap:7px}.mood-orb{width:6px;height:6px}.scene-bottom-right{right:17px;bottom:28px;font-size:8px;max-width:65px;text-align:right;flex-direction:column;gap:6px}.call-controls{bottom:15px;gap:2px;padding:5px}.call-control{height:33px;width:33px}.call-control i svg{width:15px;height:15px}.control-divider{margin:0 2px}.conversation{margin:18px 4px 0}.conversation-header{font-size:10px}.conversation-header>div{gap:7px}.conversation-header span{font-size:8px}.text-btn{font-size:9px}.messages{height:auto;max-height:34svh;min-height:140px;padding-top:13px}.conversation-empty{padding:25px 5px}.composer{position:fixed;left:12px;right:12px;bottom:calc(75px + env(safe-area-inset-bottom));z-index:12;padding:8px;background:#1d2b24fa;box-shadow:0 -5px 30px #101718}.composer-footer{display:none}.space-footer{padding-top:13px;margin-top:13px;font-size:9px}.space-footer button{font-size:9px;gap:5px}.space-footer button:last-child{display:none}.bubble{font-size:12px;padding:10px 12px}.message{max-width:95%}.working{position:fixed;bottom:calc(137px + env(safe-area-inset-bottom));left:16px;right:16px;background:#18291fee;z-index:12;padding:8px;border-radius:7px}.drawer-header{padding:22px}.drawer-body{padding:20px}.drawer{padding-bottom:env(safe-area-inset-bottom)}.graph-shell{height:300px}.self-preview{width:110px;right:13px;top:50px}.self-preview span{font-size:8px}.self-preview button{font-size:8px}.toast{bottom:150px}.stage:fullscreen .avatar-wrap{height:85%;width:100%;left:0;transform:none}.stage:fullscreen .scene-heading{top:35px}.stage:fullscreen .scene-bottom-right{bottom:30px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}
@media(max-width:760px){.keyboard-open .rail{visibility:hidden}.keyboard-open .composer{bottom:calc(var(--keyboard-offset,0px) + 10px)}.keyboard-open .working{bottom:calc(var(--keyboard-offset,0px) + 75px)}}
