:root,html[data-skin=cream]{--bg-top: #ffeef5;--bg-mid: #fdf2f8;--bg-bottom: #e9f4ff;--panel: #ffffff;--panel-soft: #fff7fa;--panel-glass: rgba(255, 255, 255, .92);--ink: #4a4458;--ink-soft: #9b93ad;--accent: #ff7fa5;--accent-deep: #f2688f;--accent-2: #6db5ff;--grad: linear-gradient(135deg, #ff8fb1 0%, #7cb9ff 100%);--line: #ffd9e5;--danger: #ff6b81;--hover-bg: #fff0f6;--active-grad: linear-gradient(135deg, rgba(255, 143, 177, .16), rgba(124, 185, 255, .14));--bubble-border: #ffe0eb;--bubble-user-grad: linear-gradient(135deg, #ff9ebd, #ff7fa5);--code-bg: rgba(0, 0, 0, .06);--code-bg-user: rgba(255, 255, 255, .2);--avatar-grad: linear-gradient(160deg, #ffe3ee, #dcecff);--avatar-border: #ffd0e0;--scrollbar: #ffc9da;--input-fade: rgba(255, 240, 246, .9);--system-text: #d1567e;--warn-text: #b46b28;--warn-bg: #fdf1e3;--warn-line: #f2d9b6;--blob-1: #ffc7dc;--blob-2: #c9e4ff;--blob-3: #ffe0ec;--shadow: rgba(255, 127, 165, .16);--shadow-strong: rgba(255, 127, 165, .34);--card-border: #ffffff;--now-bg: #fdf3ec;--now-line: #f0b591;--now-text: #8a5a3b;--now-soft: rgba(224, 120, 86, .08);--now-ring: rgba(255, 127, 165, .18);--done-text: #4c7a5d;--done-bg: #e8f2ec;--r-xl: 24px;--r-lg: 22px;--r-md: 16px;--r-sm: 12px}html[data-skin=sakura]{--bg-top: #fff0f3;--bg-mid: #ffe8ee;--bg-bottom: #fff5ef;--panel: #fffdfd;--panel-soft: #fff2f5;--panel-glass: rgba(255, 250, 251, .93);--ink: #574250;--ink-soft: #b092a2;--accent: #ff6d9c;--accent-deep: #ef5a8a;--accent-2: #ffb38a;--grad: linear-gradient(135deg, #ff6d9c 0%, #ffb38a 100%);--line: #ffd4df;--danger: #ff6b81;--hover-bg: #ffeef3;--active-grad: linear-gradient(135deg, rgba(255, 109, 156, .15), rgba(255, 179, 138, .13));--bubble-border: #ffdbe6;--bubble-user-grad: linear-gradient(135deg, #ff87ab, #ff6d9c);--code-bg: rgba(0, 0, 0, .06);--code-bg-user: rgba(255, 255, 255, .2);--avatar-grad: linear-gradient(160deg, #ffe0ea, #ffe9dc);--avatar-border: #ffc4d4;--scrollbar: #ffbccc;--input-fade: rgba(255, 238, 243, .9);--system-text: #d1567e;--warn-text: #b46b28;--warn-bg: #fdf1e3;--warn-line: #f2d9b6;--blob-1: #ffbcd2;--blob-2: #ffd9c2;--blob-3: #ffe0ec;--shadow: rgba(255, 109, 156, .16);--shadow-strong: rgba(255, 109, 156, .32);--card-border: #fffdfd;--now-bg: #fff4ec;--now-line: #ffb38a;--now-text: #a05a2c;--now-soft: rgba(255, 179, 138, .1);--now-ring: rgba(255, 109, 156, .18);--done-text: #4c7a5d;--done-bg: #e8f2ec}html[data-skin=neon]{--bg-top: #171321;--bg-mid: #1d1730;--bg-bottom: #140f1f;--panel: #241d38;--panel-soft: #2a2244;--panel-glass: rgba(30, 24, 48, .88);--ink: #f0eaff;--ink-soft: #9d93bd;--accent: #ff6eb5;--accent-deep: #e5579f;--accent-2: #b28dff;--grad: linear-gradient(135deg, #ff6eb5 0%, #b28dff 100%);--line: #3d3159;--danger: #ff5c7a;--hover-bg: rgba(178, 141, 255, .12);--active-grad: linear-gradient(135deg, rgba(255, 110, 181, .18), rgba(178, 141, 255, .16));--bubble-border: #3d3159;--bubble-user-grad: linear-gradient(135deg, #ff6eb5, #a05ce8);--code-bg: rgba(255, 255, 255, .09);--code-bg-user: rgba(255, 255, 255, .18);--avatar-grad: linear-gradient(160deg, #3a2d55, #2c2347);--avatar-border: #4d3d75;--scrollbar: #4d3d75;--input-fade: rgba(26, 20, 42, .9);--system-text: #ff8fc4;--warn-text: #ffce8a;--warn-bg: rgba(255, 206, 138, .1);--warn-line: rgba(255, 206, 138, .3);--blob-1: #35244d;--blob-2: #241f42;--blob-3: #2c1f3d;--shadow: rgba(0, 0, 0, .4);--shadow-strong: rgba(255, 110, 181, .25);--card-border: #3d3159;--now-bg: #2e2140;--now-line: #b28dff;--now-text: #e0d0ff;--now-soft: rgba(178, 141, 255, .12);--now-ring: rgba(178, 141, 255, .22);--done-text: #8fd9b0;--done-bg: rgba(143, 217, 176, .1)}html[data-skin=pixel]{--bg-top: #f7f1e3;--bg-mid: #f2e9d8;--bg-bottom: #eef4ec;--panel: #fffdf6;--panel-soft: #faf4e6;--panel-glass: rgba(255, 253, 246, .94);--ink: #5a4a3a;--ink-soft: #a89880;--accent: #e8975a;--accent-deep: #d4834a;--accent-2: #5aa87a;--grad: linear-gradient(135deg, #e8975a 0%, #5aa87a 100%);--line: #e8d9bd;--danger: #e05a5a;--hover-bg: #faf0dc;--active-grad: linear-gradient(135deg, rgba(232, 151, 90, .16), rgba(90, 168, 122, .13));--bubble-border: #ecdec2;--bubble-user-grad: linear-gradient(135deg, #f0a96f, #e8975a);--code-bg: rgba(0, 0, 0, .06);--code-bg-user: rgba(255, 255, 255, .2);--avatar-grad: linear-gradient(160deg, #fdeeda, #e4f0e6);--avatar-border: #ecd5ae;--scrollbar: #d9c49a;--input-fade: rgba(250, 244, 230, .92);--system-text: #b06a2c;--warn-text: #b46b28;--warn-bg: #faf0dc;--warn-line: #ecd9ae;--blob-1: #f5d9b0;--blob-2: #cfe6d4;--blob-3: #f0e2c4;--shadow: rgba(168, 132, 80, .18);--shadow-strong: rgba(232, 151, 90, .3);--card-border: #fffdf6;--now-bg: #faf0dc;--now-line: #e8975a;--now-text: #8a5a28;--now-soft: rgba(232, 151, 90, .1);--now-ring: rgba(232, 151, 90, .2);--done-text: #4c7a5d;--done-bg: #e8f2e8;--r-xl: 12px;--r-lg: 10px;--r-md: 8px;--r-sm: 6px}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;color:var(--ink);background:radial-gradient(circle at 15% 12%,rgba(255,255,255,.85),transparent 42%),radial-gradient(circle at 85% 90%,rgba(255,255,255,.7),transparent 40%),linear-gradient(180deg,var(--bg-top) 0%,var(--bg-mid) 45%,var(--bg-bottom) 100%);background-attachment:fixed;overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent;overflow-x:hidden;transition:color .3s}html[data-skin=neon] body{background:radial-gradient(circle at 15% 12%,rgba(178,141,255,.08),transparent 42%),radial-gradient(circle at 85% 90%,rgba(255,110,181,.07),transparent 40%),linear-gradient(180deg,var(--bg-top) 0%,var(--bg-mid) 45%,var(--bg-bottom) 100%)}button,[role=button],a,.conv-item,.char-card{touch-action:manipulation}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:8px}::-webkit-scrollbar-track{background:transparent}.layout{display:flex;height:100vh;height:100dvh}.sidebar{width:260px;flex-shrink:0;background:var(--panel-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-right:1px solid var(--line);display:flex;flex-direction:column;transition:background .3s,border-color .3s}.sidebar .brand{padding:20px 18px 14px;font-size:18px;font-weight:800;letter-spacing:1px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.sidebar .brand small{display:block;font-size:12px;color:var(--ink-soft);font-weight:400;margin-top:3px;-webkit-text-fill-color:var(--ink-soft)}.sidebar .section-label{padding:10px 18px 6px;font-size:12px;color:var(--ink-soft);display:flex;justify-content:space-between;align-items:center}.sidebar .conv-list{flex:1;overflow-y:auto;padding:0 10px 10px}.conv-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:14px;cursor:pointer;color:var(--ink);text-decoration:none;transition:background .15s}.conv-item:hover{background:var(--hover-bg)}.conv-item.active{background:var(--active-grad);border:1px solid var(--line)}.conv-item .avatar{font-size:22px;width:30px;text-align:center}.conv-item .meta{min-width:0}.conv-item .name{font-size:14px;font-weight:700}.conv-item .last{font-size:12px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:165px}.dot-unread{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--danger);margin-left:6px;vertical-align:1px;box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 20%,transparent);animation:unreadPulse 1.8s ease-in-out infinite}@keyframes unreadPulse{0%,to{box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 20%,transparent)}50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--danger) 10%,transparent)}}.sidebar .footer{border-top:1px solid var(--line);padding:12px 16px;font-size:13px;display:flex;justify-content:space-between;align-items:center}.sidebar .footer .settings-btn{border:none;background:transparent;color:var(--ink-soft);font-size:13px;font-family:inherit;cursor:pointer;padding:5px 8px;border-radius:10px}.sidebar .footer .settings-btn:hover{color:var(--accent);background:var(--hover-bg)}.mock-chip{font-size:11px;color:var(--warn-text);background:var(--warn-bg);border:1px solid var(--warn-line);padding:2px 8px;border-radius:999px}.main{flex:1;min-width:0;display:flex;flex-direction:column}.page{flex:1;overflow-y:auto;padding:28px 36px}.page h2{margin:4px 0;font-size:24px;font-weight:800}.page .subtitle{color:var(--ink-soft);font-size:14px;margin-bottom:22px}.char-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;max-width:1160px}.char-card{background:var(--panel);border-radius:var(--r-lg);border:2px solid var(--card-border);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 12px 32px var(--shadow);transition:transform .18s ease,box-shadow .18s ease}.char-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px var(--shadow)}.char-visual{position:relative;aspect-ratio:4 / 4.4;background:var(--avatar-grad);overflow:hidden}.char-visual img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}.char-card:hover .char-visual img{transform:scale(1.045)}.char-visual-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:64px}.badge-preset{position:absolute;top:10px;left:10px;font-size:11px;color:#fff;background:var(--grad);padding:3px 10px;border-radius:999px;box-shadow:0 3px 8px var(--shadow-strong)}.char-body{padding:13px 15px 15px;display:flex;flex-direction:column;gap:7px;flex:1}.char-name-row{display:flex;align-items:center;gap:8px}.char-name{font-size:17px;font-weight:800}.char-emoji{font-size:17px}.char-tagline{font-size:12.5px;color:var(--ink-soft)}.char-preview{font-size:13px;color:var(--ink-soft);line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.char-actions{margin-top:auto;display:flex;gap:8px;align-items:center;padding-top:4px}.btn-grad{border:none;color:#fff;background:var(--grad);font-size:13.5px;font-weight:700;padding:8px 18px;border-radius:999px;cursor:pointer;box-shadow:0 5px 14px var(--shadow-strong);transition:transform .12s,box-shadow .12s;font-family:inherit}.btn-grad:hover{transform:translateY(-1px);box-shadow:0 8px 18px var(--shadow)}.btn-ghost{border:1px solid var(--line);background:transparent;color:var(--ink-soft);font-size:12.5px;padding:6px 12px;border-radius:999px;cursor:pointer;font-family:inherit}.btn-ghost:hover{color:var(--accent);border-color:var(--accent)}.btn-ghost.danger:hover{color:var(--danger);border-color:var(--danger)}.chat-wrap{display:flex;flex-direction:column;height:100%;position:relative}.ambient-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:0;transition:opacity .6s ease;overflow:hidden}.chat-wrap.immersive .ambient-bg{opacity:1}.ambient-bg .portrait{position:absolute;right:-6%;top:-3%;width:min(64%,400px);aspect-ratio:3 / 4;object-fit:cover;object-position:top center;filter:blur(1px) saturate(1.05);opacity:.45;-webkit-mask-image:linear-gradient(205deg,rgba(0,0,0,.9),transparent 72%);mask-image:linear-gradient(205deg,rgba(0,0,0,.9),transparent 72%)}.ambient-bg .tint{position:absolute;top:0;right:0;bottom:0;left:0;transition:background 1.2s ease}.ambient-bg.stage-0 .tint{background:linear-gradient(180deg,rgba(109,181,255,.15),transparent 55%)}.ambient-bg.stage-1 .tint{background:linear-gradient(180deg,rgba(255,206,138,.17),transparent 55%)}.ambient-bg.stage-2 .tint{background:linear-gradient(180deg,rgba(255,143,177,.2),transparent 55%)}.ambient-bg.stage-3 .tint{background:linear-gradient(180deg,rgba(160,110,220,.22),transparent 60%)}.chat-wrap.immersive .chat-header{background:transparent;border-bottom-color:transparent}.chat-wrap.immersive .messages,.chat-wrap.immersive .input-bar{position:relative;z-index:1}.chat-wrap.immersive .msg-row.assistant .bubble{background:color-mix(in srgb,var(--panel) 80%,transparent)}.chat-wrap.immersive .input-bar{background:transparent}.chat-header{display:flex;align-items:center;gap:12px;padding:14px 22px;background:var(--panel-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);transition:background .3s,border-color .3s}.chat-portrait{width:44px;height:44px;border-radius:50%;overflow:hidden;flex-shrink:0;border:2px solid var(--avatar-border);box-shadow:0 3px 10px var(--shadow-strong);display:flex;align-items:center;justify-content:center;font-size:24px;background:var(--avatar-grad)}.chat-portrait img{width:100%;height:100%;object-fit:cover;display:block}.chat-header .name{font-weight:800;font-size:16px}.chat-header>div{min-width:0}.chat-header .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-header .tagline{font-size:12.5px;color:var(--ink-soft)}.chat-header .spacer{flex:1}.header-icon-btn{border:1px solid var(--line);background:var(--panel);color:var(--ink-soft);font-size:14px;font-family:inherit;cursor:pointer;padding:6px 12px;border-radius:999px;flex-shrink:0;transition:color .12s,border-color .12s,background .2s}.header-icon-btn:hover{color:var(--accent);border-color:var(--accent)}.header-icon-btn.on{color:#fff;background:var(--grad);border-color:transparent}.messages{flex:1;overflow-y:auto;padding:22px 26px 14px;scroll-behavior:smooth;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.msg-row{display:flex;margin-bottom:16px;align-items:flex-end;gap:9px;animation:bubbleIn .32s cubic-bezier(.34,1.56,.64,1) both}@keyframes bubbleIn{0%{transform:translateY(8px) scale(.96);opacity:0}to{transform:none;opacity:1}}.msg-row.user{justify-content:flex-end}.row-avatar{width:34px;height:34px;border-radius:50%;overflow:hidden;flex-shrink:0;border:2px solid var(--avatar-border);display:flex;align-items:center;justify-content:center;font-size:18px;background:var(--avatar-grad)}.row-avatar img{width:100%;height:100%;object-fit:cover;display:block}.bubble{max-width:72%;padding:11px 15px;border-radius:var(--r-md);font-size:14.5px;line-height:1.65;word-break:break-word}.msg-row.assistant .bubble{background:var(--panel);border:2px solid var(--bubble-border);border-bottom-left-radius:6px;box-shadow:0 4px 14px var(--shadow);transition:background .3s,border-color .3s}.msg-row.user .bubble{background:var(--bubble-user-grad);color:#fff;border-bottom-right-radius:6px;box-shadow:0 5px 16px var(--shadow-strong)}.bubble p{margin:0 0 6px}.bubble p:last-child{margin-bottom:0}.bubble code{background:var(--code-bg);padding:1px 5px;border-radius:4px}.msg-row.user .bubble code{background:var(--code-bg-user)}.proactive-wrap{display:flex;flex-direction:column;align-items:flex-start;min-width:0;max-width:72%}.proactive-wrap .bubble{max-width:100%}.proactive-tag{font-size:11.5px;color:var(--ink-soft);margin:0 0 4px 2px}.msg-row.assistant .bubble.proactive{border-color:color-mix(in srgb,var(--accent) 40%,var(--bubble-border));box-shadow:0 4px 14px var(--shadow),inset 0 0 0 1px color-mix(in srgb,var(--accent) 10%,transparent)}.chips-row{display:flex;gap:8px;align-items:center;padding:8px 22px 0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.chips-row::-webkit-scrollbar{display:none}.chip{flex-shrink:0;border:1.5px solid var(--line);background:var(--panel);color:var(--ink);font-family:inherit;font-size:13px;line-height:1.4;padding:6px 14px;border-radius:999px;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.chip:hover{color:var(--accent);border-color:var(--accent);background:var(--hover-bg)}.chip-refresh{padding:6px 11px;color:var(--ink-soft);font-size:14px}.typing-dots{display:inline-flex;gap:4px;align-items:center;height:1.1em;padding:2px 0}.typing-dots i{width:6px;height:6px;border-radius:50%;background:var(--ink-soft);animation:dotBreath 1.2s ease-in-out infinite}.typing-dots i:nth-child(2){animation-delay:.18s}.typing-dots i:nth-child(3){animation-delay:.36s}@keyframes dotBreath{0%,to{transform:scale(.72);opacity:.45}50%{transform:scale(1);opacity:1}}.tts-btn{border:1px solid var(--line);background:var(--panel);border-radius:50%;width:30px;height:30px;cursor:pointer;font-size:13px;flex-shrink:0;align-self:center;display:flex;align-items:center;justify-content:center;color:var(--ink-soft);transition:color .12s,border-color .12s,transform .12s}.tts-btn:hover{color:var(--accent);border-color:var(--accent);transform:scale(1.08)}.msg-row.user .tts-btn{display:none}.sticker-card{width:116px;padding:15px 10px 10px;text-align:center;border-radius:var(--r-md);background:linear-gradient(160deg,var(--panel),var(--panel-soft));border:2px solid var(--bubble-border);box-shadow:0 6px 18px var(--shadow)}.sticker-card .emo{font-size:50px;line-height:1.15;display:block;animation:stickerBounce .6s cubic-bezier(.34,1.56,.64,1) both}@keyframes stickerBounce{0%{transform:scale(.3) rotate(-12deg);opacity:0}to{transform:none;opacity:1}}.sticker-card .lab{font-size:12px;color:var(--ink-soft);margin-top:4px}.scene-modal-panel{width:min(760px,94vw);max-height:80vh;display:flex;flex-direction:column;background:var(--panel);border:2px solid var(--card-border);border-radius:var(--r-xl);padding:22px 24px 24px;box-shadow:0 24px 60px #00000038}.scene-modal-title{margin:0;font-size:20px;font-weight:800}.scene-modal-sub{margin:6px 0 16px;font-size:12.5px;color:var(--ink-soft)}.scene-modal-note{padding:40px 0;text-align:center;color:var(--ink-soft);font-size:13.5px}.scene-rail{display:flex;gap:14px;overflow-x:auto;padding:4px 2px 10px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.scene-card{flex:0 0 210px;display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel-soft);padding:14px;transition:border-color .15s,box-shadow .15s}.scene-card:hover{border-color:var(--accent);box-shadow:0 6px 18px var(--shadow)}.scene-card-title{font-weight:800;font-size:15px}.scene-card-desc{font-size:12.5px;color:var(--ink-soft);line-height:1.65;flex:1}.scene-card-btn{border:none;color:#fff;background:var(--grad);font-family:inherit;font-size:13px;font-weight:700;padding:8px 0;border-radius:999px;cursor:pointer;box-shadow:0 4px 12px var(--shadow-strong);transition:transform .12s,box-shadow .12s}.scene-card-btn:hover{transform:translateY(-1px)}.scene-card-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.scene-capsule{display:flex;align-items:center;gap:8px;width:fit-content;max-width:calc(100% - 44px);margin:8px 22px 0;padding:5px 8px 5px 14px;border:1px solid var(--line);border-radius:999px;background:var(--panel);font-size:13px;color:var(--ink);box-shadow:0 3px 10px var(--shadow);white-space:nowrap}.scene-capsule-text{overflow:hidden;text-overflow:ellipsis}.scene-capsule-sep{color:var(--ink-soft);flex-shrink:0}.scene-capsule-end{border:none;background:var(--hover-bg);color:var(--danger);font-family:inherit;font-size:12.5px;font-weight:600;padding:3px 10px;border-radius:999px;cursor:pointer;flex-shrink:0;transition:background .15s,color .15s}.scene-capsule-end:hover{background:var(--danger);color:#fff}.scene-capsule-end:disabled{opacity:.6;cursor:wait}.scene-msg-wrap{display:flex;flex-direction:column;gap:6px;min-width:0;max-width:72%}.scene-msg-wrap .bubble{max-width:100%}.scene-banner{align-self:center;max-width:100%;text-align:center;font-size:12.5px;color:var(--system-text);background:var(--active-grad);border:1px solid var(--line);border-radius:999px;padding:5px 18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;animation:pop .45s ease}.msg-row.system{justify-content:center}.msg-row.system .row-avatar{display:none}.msg-row.system .bubble{background:var(--active-grad);border:1px solid var(--line);color:var(--system-text);font-size:12.5px;border-radius:999px;padding:6px 18px;animation:pop .45s ease}@keyframes pop{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}.input-bar{display:flex;gap:10px;align-items:flex-end;padding:14px 22px 18px;background:linear-gradient(transparent,var(--input-fade) 30%);transition:background .3s}.input-bar textarea{flex:1;resize:none;border:2px solid var(--line);border-radius:var(--r-md);padding:11px 14px;font-size:14.5px;font-family:inherit;outline:none;background:var(--panel);max-height:140px;color:var(--ink);transition:border-color .15s,background .3s}.input-bar textarea:focus{border-color:var(--accent)}.input-bar .send-btn{border:none;color:#fff;background:var(--grad);font-size:14px;font-weight:700;padding:11px 22px;border-radius:var(--r-md);cursor:pointer;box-shadow:0 5px 14px var(--shadow-strong);font-family:inherit}.input-bar .send-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.stage-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:flex;align-items:center;justify-content:center;background:#140a1973;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .3s both;cursor:pointer}@keyframes fadeIn{0%{opacity:0}}.petals{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.petal{position:absolute;top:-5vh;width:13px;height:13px;border-radius:80% 0;opacity:.85;animation:petalFall linear infinite}@keyframes petalFall{to{transform:translateY(115vh) translate(var(--sway, 40px)) rotate(540deg)}}.stage-card-pop{position:relative;background:var(--panel);border-radius:var(--r-xl);padding:34px 30px 24px;width:min(86vw,360px);text-align:center;box-shadow:0 24px 60px #00000059;border:2px solid var(--line);animation:stagePop .55s cubic-bezier(.34,1.56,.64,1) .15s both}@keyframes stagePop{0%{transform:scale(.6) translateY(30px);opacity:0}}.stage-card-pop .kicker{font-size:12.5px;letter-spacing:5px;color:var(--accent);font-weight:700}.stage-card-pop .stage-big{font-size:30px;font-weight:800;margin:10px 0 6px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.stage-card-pop .stage-reason{font-size:13.5px;color:var(--ink-soft);line-height:1.7}.stage-card-pop .stage-unlock-box{margin-top:12px;font-size:12.5px;background:var(--now-soft);border:1px dashed var(--now-line);color:var(--now-text);border-radius:var(--r-sm);padding:10px 12px;line-height:1.6;text-align:left}.stage-card-pop .tip{font-size:11.5px;color:var(--ink-soft);margin-top:14px}.sparkle{position:absolute;color:#ffd76e;font-size:18px;animation:twinkle 1.6s ease-in-out infinite;pointer-events:none}@keyframes twinkle{0%,to{transform:scale(.7);opacity:.4}50%{transform:scale(1.15);opacity:1}}.journey{position:relative;padding-left:32px}.journey:before{content:"";position:absolute;left:11px;top:10px;bottom:10px;width:3px;border-radius:3px;background:var(--line)}.journey-node{position:relative;margin-bottom:14px}.journey-dot{position:absolute;left:-32px;top:12px;width:25px;height:25px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;background:var(--panel);border:2px solid var(--line);z-index:1}.journey-node.done .journey-dot{background:var(--grad);border:none;color:#fff}.journey-node.now .journey-dot{border-color:var(--accent);animation:nowPulse 2s ease-in-out infinite}@keyframes nowPulse{0%,to{box-shadow:0 0 0 4px var(--now-ring)}50%{box-shadow:0 0 0 8px var(--now-ring)}}.journey-progress{height:8px;border-radius:999px;background:var(--hover-bg);overflow:hidden;margin:10px 0 18px}.journey-progress .fill{height:100%;border-radius:999px;background:var(--grad);transition:width .8s cubic-bezier(.34,1.3,.64,1)}.share-wrap{text-align:center}.share-wrap canvas{display:none}.share-wrap img.preview{width:min(68vw,300px);border-radius:14px;box-shadow:0 12px 34px #00000047}.share-tip{font-size:12px;color:var(--ink-soft);margin-top:10px;line-height:1.7}.share-option{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:12px;font-size:13px;color:var(--ink);cursor:pointer}.share-actions{display:flex;gap:10px;justify-content:center;margin-top:14px;flex-wrap:wrap}.memory-card{background:var(--panel-soft);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--r-sm);padding:10px 12px;margin-bottom:10px;display:flex;gap:8px;align-items:flex-start;animation:bubbleIn .3s ease both}.memory-card .txt{flex:1;font-size:13.5px;line-height:1.65}.memory-card .src{font-size:11px;color:var(--ink-soft);margin-top:4px}.empty-hero{max-width:420px;margin:10vh auto 0;text-align:center;animation:pop .5s ease both}.empty-hero .orb{width:96px;height:96px;margin:0 auto 18px;border-radius:50%;background:var(--avatar-grad);border:2px solid var(--card-border);box-shadow:0 14px 34px var(--shadow);display:flex;align-items:center;justify-content:center;font-size:44px;animation:floaty 5s ease-in-out infinite}.empty-hero .t1{font-size:18px;font-weight:800;margin-bottom:8px}.empty-hero .t2{font-size:13.5px;color:var(--ink-soft);line-height:1.8;margin-bottom:18px}.empty-hint{color:var(--ink-soft);text-align:center;margin-top:60px;font-size:14px;line-height:2}.album-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:960px}.album-card{position:relative;background:var(--panel);border:2px solid var(--card-border);border-radius:var(--r-lg);overflow:hidden;cursor:pointer;box-shadow:0 8px 22px var(--shadow);transition:transform .18s ease,box-shadow .18s ease}.album-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px var(--shadow)}.album-thumb{position:relative;aspect-ratio:1 / 1;background:var(--avatar-grad);overflow:hidden}.album-thumb img{width:100%;height:100%;object-fit:cover;display:block}.album-cap{padding:9px 12px;font-size:12.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.album-skeleton{cursor:default;pointer-events:none}.album-skeleton .album-thumb{animation:albumPulse 1.4s ease-in-out infinite}.album-skeleton .album-cap-line{height:12px;margin:11px 12px;border-radius:999px;background:var(--hover-bg);animation:albumPulse 1.4s ease-in-out infinite}@keyframes albumPulse{0%,to{opacity:1}50%{opacity:.45}}.album-modal-panel{width:min(92vw,520px);max-height:88dvh;overflow-y:auto;background:var(--panel);border:2px solid var(--card-border);border-radius:var(--r-xl);padding:16px;box-shadow:0 18px 48px var(--shadow-strong);text-align:center}.album-modal-imgbox img{max-width:100%;max-height:56dvh;border-radius:var(--r-md);display:block;margin:0 auto;box-shadow:0 10px 28px var(--shadow)}.album-modal-cap{margin-top:12px;font-size:14px;color:var(--ink);line-height:1.7;word-break:break-word}.album-modal-meta{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:8px;font-size:12px;color:var(--ink-soft)}.album-modal-char{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--ink)}.album-modal-char img,.album-modal-char span{width:22px;height:22px;border-radius:50%;object-fit:cover;background:var(--avatar-grad);display:inline-flex;align-items:center;justify-content:center;font-size:12px;border:1px solid var(--avatar-border)}.album-modal-date{font-size:11.5px}.album-modal-meta .badge-preset{position:static;box-shadow:none}.album-modal-actions{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:14px}.album-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-family:inherit}.album-btn:disabled{opacity:.6;cursor:default}@media (max-width: 768px){.album-grid{grid-template-columns:repeat(2,1fr);gap:10px}.album-modal-panel{width:min(94vw,520px);padding:12px}}.skin-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.skin-option{border:2px solid var(--line);border-radius:14px;padding:10px;cursor:pointer;text-align:left;background:var(--panel);transition:border-color .15s,box-shadow .15s}.skin-option.on{border-color:var(--accent);box-shadow:0 4px 14px var(--shadow-strong)}.skin-option .dots{display:flex;gap:4px;margin-bottom:7px}.skin-option .dot{width:16px;height:16px;border-radius:50%;border:1px solid rgba(0,0,0,.06)}.skin-name{font-size:13.5px;font-weight:700}.skin-desc{font-size:11px;color:var(--ink-soft);margin-top:2px;line-height:1.45}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:12px 2px;border-bottom:1px dashed var(--line)}.setting-row .lab{font-size:13.5px;font-weight:600}.setting-row .sub{font-size:11.5px;color:var(--ink-soft);margin-top:2px}.login-bg-blob{position:fixed;border-radius:50%;filter:blur(2px);opacity:.6;animation:floaty 7s ease-in-out infinite;pointer-events:none}.login-bg-blob.b1{width:220px;height:220px;background:var(--blob-1);top:-60px;left:-50px}.login-bg-blob.b2{width:160px;height:160px;background:var(--blob-2);bottom:80px;right:-40px;animation-delay:1.6s}.login-bg-blob.b3{width:90px;height:90px;background:var(--blob-3);bottom:-20px;left:24%;animation-delay:3s}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-18px)}}.n-modal{max-width:94vw}.n-drawer{max-width:92vw}.char-section{margin-bottom:28px}.sec-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 12px}.sec-title{font-size:16px;font-weight:800}.sec-more{font-size:12.5px;font-weight:600;color:var(--accent);text-decoration:none}.sec-more:hover{color:var(--accent-deep)}.char-creator{font-size:12px;color:var(--ink-soft);margin-top:-3px}.hot-section{margin-bottom:26px}.hot-track{display:flex;gap:12px;overflow-x:auto;padding:2px 2px 10px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.hot-track::-webkit-scrollbar{display:none}.hot-card{flex:0 0 108px;display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 8px 12px;border-radius:var(--r-md);background:var(--panel);border:2px solid var(--card-border);box-shadow:0 6px 16px var(--shadow);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.hot-card:hover{transform:translateY(-3px);box-shadow:0 10px 22px var(--shadow)}.hot-avatar{position:relative;width:76px;height:76px;border-radius:16px;overflow:hidden;background:var(--avatar-grad);border:2px solid var(--avatar-border);display:flex;align-items:center;justify-content:center;font-size:34px;flex-shrink:0}.hot-avatar img{width:100%;height:100%;object-fit:cover;display:block}.hot-rank{position:absolute;top:4px;left:4px;min-width:20px;height:20px;padding:0 6px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:var(--ink);background:color-mix(in srgb,var(--panel) 88%,transparent)}.hot-rank.rank-1{background:linear-gradient(135deg,#ffd76e,#f5a623);color:#fff}.hot-rank.rank-2{background:linear-gradient(135deg,#e8edf4,#a9b6c8);color:#fff}.hot-rank.rank-3{background:linear-gradient(135deg,#e8b088,#c97f4a);color:#fff}.hot-name{font-size:13px;font-weight:700;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hot-count{font-size:11.5px;font-weight:700;color:var(--ink-soft)}.hot-empty{padding:22px 0;text-align:center;font-size:13px;color:var(--ink-soft);background:var(--panel-soft);border:1px dashed var(--line);border-radius:var(--r-md)}.hot-card.skeleton{height:132px;cursor:default;background:var(--hover-bg);border:2px solid var(--line);animation:albumPulse 1.4s ease-in-out infinite}.badge-hot{position:absolute;top:10px;right:10px;font-size:11px;font-weight:700;color:var(--warn-text);background:var(--warn-bg);border:1px solid var(--warn-line);padding:3px 9px;border-radius:999px}.badge-public{position:absolute;top:10px;left:10px;font-size:11px;color:#fff;background:var(--grad);padding:3px 10px;border-radius:999px;box-shadow:0 3px 8px var(--shadow-strong)}.rank-tabs{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--hover-bg);border:1px solid var(--line);margin-bottom:18px}.rank-tab{border:none;background:transparent;font-family:inherit;font-size:13px;font-weight:700;color:var(--ink-soft);padding:7px 20px;border-radius:999px;cursor:pointer;transition:color .15s,background .15s}.rank-tab.on{background:var(--grad);color:#fff;box-shadow:0 4px 10px var(--shadow-strong)}.rank-spin{min-height:140px}.rank-list{display:flex;flex-direction:column;gap:10px;max-width:720px}.rank-row{display:flex;align-items:center;gap:14px;min-width:0;padding:12px 16px;border-radius:var(--r-lg);background:var(--panel);border:2px solid var(--card-border);box-shadow:0 6px 16px var(--shadow);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.rank-row:hover{transform:translateY(-2px);box-shadow:0 10px 24px var(--shadow)}.rank-badge{width:30px;height:30px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:var(--ink-soft);background:var(--hover-bg);border:1px solid var(--line)}.rank-badge.r1{background:linear-gradient(135deg,#ffd76e,#f5a623);color:#fff;border:none;box-shadow:0 3px 8px #f5a62366}.rank-badge.r2{background:linear-gradient(135deg,#e8edf4,#a9b6c8);color:#fff;border:none}.rank-badge.r3{background:linear-gradient(135deg,#e8b088,#c97f4a);color:#fff;border:none}.rank-avatar{width:52px;height:52px;border-radius:50%;overflow:hidden;flex-shrink:0;border:2px solid var(--avatar-border);background:var(--avatar-grad);display:flex;align-items:center;justify-content:center;font-size:26px}.rank-avatar img{width:100%;height:100%;object-fit:cover;display:block}.rank-info{flex:1;min-width:0}.rank-name{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:15px;font-weight:800}.rank-name .rank-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.rank-name .badge-preset{position:static;box-shadow:none;flex-shrink:0}.rank-owner{font-size:11.5px;font-weight:600;color:var(--ink-soft);flex-shrink:0}.rank-tagline{font-size:12.5px;color:var(--ink-soft);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-flame{flex-shrink:0;font-size:14px;font-weight:800;color:var(--warn-text)}.rank-flame small{font-size:11px;font-weight:600;color:var(--ink-soft);margin-left:2px}.rank-empty{padding:60px 0;text-align:center;font-size:14px;color:var(--ink-soft);line-height:2}@media (max-width: 768px){.char-section,.hot-section{margin-bottom:22px}.hot-card{flex:0 0 96px;padding:8px 6px 10px}.hot-avatar{width:64px;height:64px;font-size:28px;border-radius:13px}.hot-name{font-size:12px}.hot-count{font-size:11px}.rank-row{padding:10px 12px;gap:10px}.rank-avatar{width:44px;height:44px;font-size:22px}.rank-badge{width:26px;height:26px;font-size:12px}.rank-name{font-size:14px}.rank-tagline{font-size:12px}.rank-flame{font-size:13px}}.menu-toggle{display:none}@media (max-width: 768px){.layout{height:100dvh}.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:40;width:282px;transform:translate(-105%);transition:transform .25s ease;box-shadow:8px 0 30px #5a32462e;padding-bottom:env(safe-area-inset-bottom)}.sidebar.open{transform:none}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#4a445861}.menu-toggle{display:flex;align-items:center;justify-content:center;position:fixed;top:calc(10px + env(safe-area-inset-top));left:12px;z-index:25;width:38px;height:38px;border-radius:13px;border:1px solid var(--line);background:var(--panel-glass);color:var(--ink);font-size:17px;box-shadow:0 3px 10px var(--shadow);cursor:pointer}.page{padding:calc(58px + env(safe-area-inset-top)) 16px 20px}.page h2{font-size:20px}.chat-header{padding:calc(10px + env(safe-area-inset-top)) 12px 10px 56px;gap:8px}.chat-header .tagline{display:none}.chat-header .name{white-space:nowrap}.chat-header .btn-label{display:none}.chat-portrait{width:38px;height:38px}.ambient-bg .portrait{width:min(88%,340px);right:-14%;opacity:.4}.messages{padding:16px 12px 10px}.bubble{max-width:84%;font-size:15.5px}.proactive-wrap{max-width:84%}.chips-row{padding:6px 12px 0}.chip{font-size:12.5px;padding:6px 12px}.msg-row{gap:7px;margin-bottom:13px}.row-avatar{width:30px;height:30px;font-size:16px}.tts-btn{width:34px;height:34px}.input-bar textarea{font-size:16px;overflow:hidden}.input-bar{padding:10px 14px calc(12px + env(safe-area-inset-bottom))}.char-grid{grid-template-columns:repeat(2,1fr);gap:10px}.char-visual{aspect-ratio:3 / 3.3}.char-body{padding:9px 10px 11px}.char-name{font-size:15px}.char-tagline{font-size:11.5px}.char-preview{display:none}.char-actions{flex-wrap:wrap;gap:6px}.btn-grad{font-size:12.5px;padding:7px 14px}.char-card.create-card{min-height:200px}.scene-modal-panel{width:min(94vw,560px);padding:16px 14px 18px;max-height:82dvh}.scene-modal-title{font-size:18px}.scene-modal-sub{font-size:12px;margin-bottom:12px}.scene-card{flex-basis:176px;padding:12px}.scene-card-title{font-size:14px}.scene-card-desc{font-size:12px}.scene-capsule{max-width:calc(100% - 24px);margin:6px 12px 0;padding:4px 6px 4px 12px;font-size:12px}.scene-capsule-end{font-size:12px;padding:3px 9px}.scene-msg-wrap{max-width:84%}.scene-banner{font-size:12px;padding:4px 14px}.share-option{font-size:12.5px}}.tabbar{display:none}@media (max-width: 768px){.tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:28;height:calc(58px + env(safe-area-inset-bottom));padding:0 6px env(safe-area-inset-bottom);background:var(--panel-glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line)}.tabbar .tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:var(--ink-soft);-webkit-tap-highlight-color:transparent}.tabbar .tab-ico{font-size:21px;line-height:1.15;position:relative;filter:grayscale(.55);opacity:.8;transition:filter .15s,opacity .15s,transform .15s}.tabbar .tab-txt{font-size:10.5px;font-weight:600}.tabbar .tab.on{color:var(--accent-deep)}.tabbar .tab.on .tab-ico{filter:none;opacity:1;transform:translateY(-1px)}.tabbar .tab-dot{position:absolute;top:-1px;right:-7px;width:9px;height:9px;border-radius:50%;background:var(--danger);border:2px solid var(--panel);animation:dotBreath 1.6s ease-in-out infinite}.page{padding-bottom:calc(72px + env(safe-area-inset-bottom))}}
