:root{--bg: #070b14;--bg-secondary: #0f172a;--bg-card: rgba(15, 23, 42, .6);--text: #f1f5f9;--text-secondary: rgba(241, 245, 249, .7);--text-muted: rgba(241, 245, 249, .4);--primary: #7dd3fc;--accent: #c084fc;--accent-color: #7dd3fc;--gradient: linear-gradient(135deg, #7dd3fc, #c084fc);--border: rgba(148, 163, 184, .12);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow: 0 8px 32px rgba(0, 0, 0, .4);--shadow-lg: 0 16px 48px rgba(0, 0, 0, .5);--input-bg: rgba(15, 23, 42, .6);--radius: 16px;--radius-sm: 8px;--transition: .3s cubic-bezier(.4, 0, .2, 1);--font-main: -apple-system, BlinkMacSystemFont, "Microsoft YaHei", "Segoe UI", sans-serif;--font-display: Georgia, "Noto Serif SC", serif;--text-shadow: 0 1px 3px rgba(0, 0, 0, .4);--dialog-bg: rgba(7, 11, 20, .85);--dialog-bg-top: rgba(7, 11, 20, .7);--dialog-border: rgba(148, 163, 184, .15);--dialog-gradient-mask: linear-gradient(to top, rgba(7,11,20,.85) 0%, rgba(7,11,20,.7) 85%, transparent 100%);--name-color: #7dd3fc;--nameplate-bg: linear-gradient(135deg, #7dd3fc, #c084fc);--emotion-color: #c084fc;--send-color: #7dd3fc;--send-hover-color: #38bdf8;--menu-btn-bg: rgba(15, 23, 42, .8);--menu-btn-color: #7dd3fc;--menu-header-bg: #070b14;--big-button-bg: linear-gradient(135deg, #7dd3fc, #c084fc);--slider-track: linear-gradient(to left, #7dd3fc, #c084fc);--slider-thumb-border: 2px solid #7dd3fc}[data-theme=sakura]{--bg: #1a0a14;--bg-secondary: #2a1225;--bg-card: rgba(255, 150, 180, .08);--primary: #ff69b4;--accent: #ff1493;--gradient: linear-gradient(135deg, #ff69b4, #ff1493);--border: rgba(255, 105, 180, .2);--dialog-bg: rgba(26, 10, 20, .88);--dialog-bg-top: rgba(26, 10, 20, .75);--dialog-border: rgba(255, 105, 180, .25);--dialog-gradient-mask: linear-gradient(to top, rgba(26,10,20,.88) 0%, rgba(26,10,20,.75) 85%, transparent 100%);--nameplate-bg: linear-gradient(135deg, #ff69b4, #ff1493);--accent-color: #ff69b4;--name-color: #ff8ec4;--emotion-color: #ff77dd;--send-color: #ff69b4;--send-hover-color: rgba(255, 182, 230, .827);--menu-btn-bg: #ffd6e8;--menu-btn-color: #d63384;--menu-header-bg: #d63384;--big-button-bg: #d63384;--slider-track: linear-gradient(to left, #d63384, #ff8ec4);--slider-thumb-border: 2px solid #d63384}[data-theme=ink-wash]{--bg: #f5f0e8;--bg-secondary: #e8e0d0;--bg-card: rgba(255, 255, 255, .45);--text: #2c2c2c;--text-secondary: rgba(44, 44, 44, .7);--text-muted: rgba(44, 44, 44, .4);--primary: #8b4513;--accent: #2c2c2c;--gradient: linear-gradient(135deg, #8b4513, #2c2c2c);--border: rgba(139, 69, 19, .2);--shadow: 0 8px 32px rgba(0, 0, 0, .1);--dialog-bg: rgba(245, 240, 232, .75);--dialog-bg-top: rgba(245, 240, 232, .65);--dialog-border: rgba(139, 69, 19, .25);--dialog-gradient-mask: linear-gradient(to top, rgba(245,240,232,.75) 0%, rgba(245,240,232,.65) 85%, transparent 100%);--nameplate-bg: linear-gradient(135deg, #8b4513, #2c2c2c);--input-bg: rgba(255, 255, 255, .5);--accent-color: #8b4513;--name-color: #6b5b3a;--emotion-color: #a0522d;--send-color: #8b4513;--send-hover-color: rgba(139, 69, 19, .7);--menu-btn-bg: #e8dcc8;--menu-btn-color: #5c3a1e;--menu-header-bg: #5c3a1e;--big-button-bg: #5c3a1e;--slider-track: linear-gradient(to left, #8b4513, #c4956a);--slider-thumb-border: 2px solid #8b4513;--text-shadow: none}[data-theme=cyberpunk]{--bg: #0d0d0d;--bg-secondary: #1a1a1a;--bg-card: rgba(0, 255, 65, .05);--primary: #00ff41;--accent: #ff0090;--gradient: linear-gradient(135deg, #00ff41, #ff0090);--border: rgba(0, 255, 65, .2);--dialog-bg: rgba(13, 13, 13, .9);--dialog-bg-top: rgba(13, 13, 13, .8);--dialog-border: rgba(0, 255, 65, .25);--dialog-gradient-mask: linear-gradient(to top, rgba(13,13,13,.9) 0%, rgba(13,13,13,.8) 85%, transparent 100%);--nameplate-bg: linear-gradient(135deg, #00ff41, #ff0090);--accent-color: #00ff41;--name-color: #00ff41;--emotion-color: #ff0090;--send-color: #00ff41;--send-hover-color: rgba(0, 255, 136, .827);--menu-btn-bg: #0d2b0d;--menu-btn-color: #00ff41;--menu-header-bg: #1a3a1a;--big-button-bg: #00cc33;--slider-track: linear-gradient(to left, #00ff41, #a8ffca);--slider-thumb-border: 2px solid #00ff41}[data-theme=vaporwave]{--bg: #1a0030;--bg-secondary: #2a0050;--bg-card: rgba(255, 0, 200, .06);--primary: #ff6ec7;--accent: #7b68ee;--gradient: linear-gradient(135deg, #ff6ec7, #7b68ee, #00ffff);--border: rgba(255, 110, 199, .2);--dialog-bg: rgba(26, 0, 48, .88);--dialog-bg-top: rgba(26, 0, 48, .75);--dialog-border: rgba(255, 110, 199, .25);--dialog-gradient-mask: linear-gradient(to top, rgba(26,0,48,.88) 0%, rgba(26,0,48,.75) 85%, transparent 100%);--nameplate-bg: linear-gradient(135deg, #ff6ec7, #7b68ee);--accent-color: #ff6ec7;--name-color: #c8a2ff;--emotion-color: #ff77dd;--send-color: #ff6ec7;--send-hover-color: rgba(255, 182, 230, .827);--menu-btn-bg: #2d1048;--menu-btn-color: #ff6ec7;--menu-header-bg: #4a1a7a;--big-button-bg: #7b68ee;--slider-track: linear-gradient(to left, #ff6ec7, #c8a2ff);--slider-thumb-border: 2px solid #ff6ec7}[data-day-night=night]{--bg: #070b14;--bg-card: rgba(15, 23, 42, .8);--bg-secondary: #0f172a;--text: #e0e0e0;--text-secondary: #b0b0b0;--text-muted: #707070;--border: rgba(100, 100, 140, .25);--text-shadow: 0 1px 3px rgba(0, 0, 0, .4)}[data-day-night=night] #title-screen{background:#070b14}[data-day-night=night] #dialog-box{background:linear-gradient(to top,rgba(7,11,20,.9) 0%,rgba(7,11,20,.75) 85%,transparent 100%)}[data-day-night=night] #title-bg{opacity:.2}[data-day-night=night] .save-slot{background:#0f172acc;border-color:#64648c4d}[data-day-night=night] #chat-header,[data-day-night=night] #chat-input-area{background:#070b14e6;border-color:#64648c4d}[data-day-night=night] .chat-msg{background:#0f172acc}[data-day-night=night] #scene-overlay{background:linear-gradient(to top,#070b14b3,#070b1426 40%,#070b140d,#070b144d)}[data-day-night=day]{--bg: #f8f9fc;--bg-card: rgba(255, 255, 255, .75);--bg-secondary: #eef0f5;--text: #1a1a2e;--text-secondary: rgba(26, 26, 46, .7);--text-muted: rgba(26, 26, 46, .4);--border: rgba(0, 0, 0, .08);--shadow: 0 8px 32px rgba(0, 0, 0, .08);--input-bg: rgba(255, 255, 255, .7);--text-shadow: none}[data-day-night=day] #dialog-box{background:linear-gradient(to top,rgba(248,249,252,.82) 0%,rgba(248,249,252,.7) 85%,transparent 100%);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%)}[data-day-night=day] #title-screen{background:#070b14}[data-day-night=day] #title-bg{opacity:.4}[data-day-night=day] .title-footer{color:#1a1a2e80}[data-day-night=day] .save-slot{background:#fffc;border-color:#00000014}[data-day-night=day] #chat-header,[data-day-night=day] #chat-input-area{background:#ffffffd9;border-color:#0000000f}[data-day-night=day] .chat-msg{background:#ffffffbf}[data-day-night=day] .chat-msg.ai{background:#fffc;border-color:#00000014;color:#333}[data-day-night=day] .chat-msg.player{background:#0000000d;border-color:#0000001a;color:#333}[data-day-night=day] #scene-overlay{background:linear-gradient(to top,rgba(248,249,252,.3) 0%,rgba(248,249,252,.05) 40%,transparent 70%,rgba(248,249,252,.1) 100%)}[data-day-night=day] .choice-btn{background:#ffffffb3;border-color:#0000001a;color:#333}[data-day-night=day] .toolbar-btn{background:#ffffff80;color:#00000080;border-color:#0000000f}[data-day-night=day] .toolbar-btn:hover{background:#fffc;color:#333}[data-day-night=day] .api-dot{box-shadow:0 0 4px #00c80066}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100vh;height:100dvh;overflow:hidden;font-family:var(--font-main);background-color:var(--bg);background-size:cover;background-position:center bottom;background-attachment:fixed;color:var(--text);text-shadow:var(--text-shadow);-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{width:100%;height:100%;position:relative}.screen{position:absolute;inset:0;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .6s cubic-bezier(.4,0,.2,1),visibility 0s .6s}.screen.active{visibility:visible;opacity:1;pointer-events:auto;display:flex;transition:opacity .6s cubic-bezier(.4,0,.2,1),visibility 0s 0s}.hidden{display:none!important}#title-screen{flex-direction:column;align-items:flex-start;justify-content:center;background:var(--bg);position:relative;overflow:hidden}#title-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}#title-bg{position:absolute;inset:0;background:url(sprites/background/pic1.png) center bottom/cover no-repeat;z-index:0;opacity:.4}#title-bg:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 20%,var(--bg) 75%)}#title-character{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:280px;height:460px;background-size:contain;background-repeat:no-repeat;background-position:center bottom;z-index:1;pointer-events:none;filter:drop-shadow(0 0 24px rgba(125,211,252,.3)) drop-shadow(0 0 48px rgba(192,132,252,.15));animation:titleCharBreathing 4s ease-in-out infinite}@keyframes titleCharBreathing{0%,to{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.008)}}#title-logo{position:absolute;top:5vh;right:5vw;z-index:5;text-align:right;animation:titleLogoIn 1s cubic-bezier(.4,0,.2,1)}@keyframes titleLogoIn{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.title-icon{font-size:2.5rem;display:block;margin-bottom:.3rem;filter:drop-shadow(0 2px 12px rgba(125,211,252,.5));animation:iconPulse 3s ease-in-out infinite}@keyframes iconPulse{0%,to{filter:drop-shadow(0 2px 8px rgba(125,211,252,.3))}50%{filter:drop-shadow(0 2px 20px rgba(125,211,252,.6))}}.title-text{font-family:var(--font-display);font-size:clamp(36px,5vw,72px);font-weight:700;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3),0 0 40px rgba(125,211,252,.2);letter-spacing:.15em;line-height:1.2}.title-subtitle{font-size:clamp(12px,1.5vw,18px);color:#f1f5f999;letter-spacing:.3em;margin-top:.3rem;text-shadow:0 1px 2px rgba(0,0,0,.3)}#title-menu{position:absolute;left:10vw;top:50%;transform:translateY(-50%);z-index:5;display:flex;flex-direction:column;gap:0;animation:titleMenuIn .8s cubic-bezier(.4,0,.2,1) .3s both}@keyframes titleMenuIn{0%{opacity:0;transform:translateY(-50%) translate(-40px)}to{opacity:1;transform:translateY(-50%) translate(0)}}.title-menu-btn{background:var(--menu-btn-bg);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);color:#fff;border:1px solid rgba(255,255,255,.08);padding:5px 0;font-size:clamp(28px,3.5vw,56px);font-family:var(--font-display);font-weight:600;cursor:pointer;text-align:left;white-space:nowrap;text-shadow:0 2px 4px rgba(0,0,0,.3);transition:transform .4s cubic-bezier(.18,.89,.32,1.28),color var(--transition),text-shadow var(--transition),background var(--transition);position:relative}.title-menu-btn:hover{color:var(--accent-color);text-shadow:0 0 10px rgba(125,211,252,.4),0 2px 4px rgba(0,0,0,.3);transform:translateY(-6px) scale(1.03);background:#0f172af2}.title-menu-btn:active{transform:translateY(-2px) scale(1.01)}.title-footer{position:absolute;bottom:2vh;left:50%;transform:translate(-50%);z-index:5;font-size:.75rem;color:#f1f5f959;letter-spacing:.15em}#game-screen{flex-direction:column;background:var(--bg)}#outline-select-btn{position:absolute;top:50px;left:10px;z-index:20;padding:.3rem .6rem;background:#070b1499;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.75rem;cursor:pointer;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:all var(--transition)}#outline-select-btn:hover{background:#7dd3fc26;border-color:var(--primary)}#outline-chapter-display{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:20;padding:.3rem .8rem;background:#070b1499;border:1px solid var(--border);border-radius:20px;color:var(--text-secondary);font-size:.7rem;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);white-space:nowrap;max-width:80%;overflow:hidden;text-overflow:ellipsis;pointer-events:none}#character-sprite{position:absolute;bottom:0;left:50%;width:280px;height:460px;background-size:contain;background-repeat:no-repeat;background-position:center bottom;z-index:1;pointer-events:none;filter:drop-shadow(0 0 16px rgba(125,211,252,.2)) drop-shadow(0 0 32px rgba(192,132,252,.1));transform:translate(-50%);transform-origin:bottom center;transition:opacity .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1)}#character-sprite.sprite-enter{animation:spriteEnter .5s ease-out}#character-sprite.sprite-exit{animation:spriteExit .4s ease-in forwards}#character-sprite.sprite-switch{animation:spriteSwitch .3s ease}@keyframes spriteEnter{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes spriteExit{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(20px)}}@keyframes spriteSwitch{0%{opacity:1}50%{opacity:.5}to{opacity:1}}#sprite-toggle-btn{position:absolute;top:60px;left:12px;z-index:20;width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--bg-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-size:1rem;cursor:pointer;transition:all var(--transition);display:flex;align-items:center;justify-content:center;color:var(--text)}#sprite-toggle-btn:hover{background:#7dd3fc26;border-color:var(--primary);transform:scale(1.1)}#sprite-selector{position:absolute;top:100px;left:12px;z-index:20;background:#070b14d9;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--border);border-radius:var(--radius);padding:.8rem;min-width:180px;box-shadow:var(--shadow)}#sprite-selector-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.6rem;font-size:.85rem;color:var(--text);font-weight:600}#sprite-selector-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1rem;padding:0 .2rem;transition:color var(--transition)}#sprite-selector-close:hover{color:var(--text)}#sprite-char-list,#sprite-expr-list{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem}#sprite-expr-list{margin-bottom:0}.sprite-char-btn,.sprite-expr-btn{padding:.3rem .7rem;border-radius:6px;border:1px solid var(--border);background:var(--input-bg);color:var(--text);font-size:.78rem;cursor:pointer;transition:all var(--transition)}.sprite-char-btn.active,.sprite-expr-btn.active{background:var(--primary);color:#070b14;border-color:var(--primary);font-weight:600}.sprite-char-btn:hover,.sprite-expr-btn:hover{border-color:var(--primary)}#scene-layer{position:absolute;inset:0;z-index:0}#scene-download-btn{position:absolute;top:0;left:0;z-index:11;padding:.3rem .6rem;border:none;border-radius:0 0 6px;background:#070b1499;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text-secondary);font-size:.7rem;cursor:pointer;opacity:0;transition:opacity var(--transition)}#scene-layer:hover #scene-download-btn{opacity:.7}#scene-download-btn:hover{opacity:1!important;background:#070b14cc}#scene-bg{position:absolute;inset:0;background-size:cover;background-position:center center;background-repeat:no-repeat;background-image:url(sprites/background/pic1.png);transition:opacity 1.2s cubic-bezier(.4,0,.2,1)}#scene-bg.fade-out{opacity:0}#scene-bg-next{position:absolute;inset:0;background-size:cover;background-position:center center;background-repeat:no-repeat;opacity:0;transition:opacity 1.2s cubic-bezier(.4,0,.2,1);z-index:1}#scene-bg-next.active{opacity:1}#scene-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(7,11,20,.7) 0%,transparent 40%,transparent 70%,rgba(7,11,20,.3) 100%);pointer-events:none}#game-toolbar{position:absolute;top:0;right:0;z-index:10;display:flex;gap:.3rem;padding:.5rem;padding-top:calc(.5rem + env(safe-area-inset-top,0px));opacity:.4;transition:opacity var(--transition)}#game-toolbar:hover{opacity:1}.toolbar-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;border-radius:6px;background:#070b1480;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#f1f5f999;font-size:.9rem;cursor:pointer;transition:all var(--transition)}.toolbar-btn:hover{background:#070b14b3;color:var(--primary);transform:scale(1.05);box-shadow:0 0 12px #7dd3fc33}#bgm-track-name{position:absolute;top:50px;right:10px;z-index:20;padding:.2rem .5rem;background:#070b1499;border-radius:10px;color:var(--text-muted);font-size:.65rem;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);white-space:nowrap;pointer-events:none}#api-indicator{width:auto;padding:0 .5rem;gap:.3rem;font-size:.7rem}.api-dot{width:6px;height:6px;border-radius:50%;background:#555;transition:background var(--transition)}.api-dot.connected{background:#00ff41;box-shadow:0 0 6px #00ff4166}.api-dot.error{background:#ff0040;box-shadow:0 0 6px #ff004066}.api-dot.loading{background:#fa0;animation:dotPulse 1s infinite}@keyframes dotPulse{0%,to{opacity:1}50%{opacity:.3}}.api-label{font-size:.7rem;color:var(--text-muted)}#info-badge{position:absolute;bottom:calc(1rem + env(safe-area-inset-bottom,0px));left:1rem;z-index:10;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:.85rem;border-radius:50%;background:#070b1499;border:1px solid var(--border);cursor:pointer;opacity:.5;transition:opacity var(--transition);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}#info-badge:hover,#info-badge.active{opacity:1}#info-tooltip{display:none;position:absolute;bottom:36px;left:0;min-width:200px;padding:.8rem;background:#070b14e6;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-radius:var(--radius-sm);border:1px solid var(--border);font-size:.78rem;pointer-events:none}#info-badge.active #info-tooltip{display:block;pointer-events:auto}.info-row{display:flex;justify-content:space-between;gap:1rem;padding:.25rem 0;border-bottom:1px solid rgba(148,163,184,.08)}.info-row:last-child{border-bottom:none}.info-label{color:var(--text-muted)}.info-value{color:var(--text);font-weight:500;text-align:right;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#choices-box{position:absolute;bottom:200px;left:50%;transform:translate(-50%);z-index:15;display:flex;flex-direction:column;gap:.6rem;width:90%;max-width:600px;pointer-events:auto;max-height:35vh;overflow-y:auto;padding-bottom:.5rem}.choice-btn{padding:.8rem 1.2rem;border:1px solid transparent;border-radius:var(--radius-sm);background:#070b1499;backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);color:var(--text);font-size:.95rem;cursor:pointer;transition:all var(--transition);font-family:var(--font-main);text-align:left;animation:choiceAppear .4s cubic-bezier(.4,0,.2,1) backwards;letter-spacing:.05em;text-shadow:var(--text-shadow);position:relative;background-clip:padding-box}.choice-btn:before{content:"";position:absolute;inset:0;border-radius:var(--radius-sm);padding:1px;background:linear-gradient(135deg,#7dd3fc4d,#c084fc4d);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;transition:background var(--transition)}.choice-btn:nth-child(1){animation-delay:.1s}.choice-btn:nth-child(2){animation-delay:.2s}.choice-btn:nth-child(3){animation-delay:.3s}.choice-btn:nth-child(4){animation-delay:.4s}@keyframes choiceAppear{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.choice-btn:hover{background:#070b14cc;transform:translate(6px);color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.5);box-shadow:0 0 20px #7dd3fc26,0 0 40px #c084fc14}.choice-btn:hover:before{background:linear-gradient(135deg,#7dd3fc99,#c084fc99)}.choice-btn:after{content:"▸ ";color:var(--primary);font-size:.85em}.custom-choice-btn{border-color:var(--primary)!important;color:var(--primary)!important;opacity:.8}.custom-choice-btn:hover{opacity:1}#custom-input-box{position:absolute;bottom:220px;left:50%;transform:translate(-50%);z-index:8;display:flex;gap:.5rem;width:90%;max-width:500px;padding:.5rem;background:#070b14cc;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-radius:var(--radius-sm);border:1px solid var(--border)}#custom-input{flex:1;padding:.6rem 1rem;border:1px solid var(--border);border-radius:6px;background:var(--input-bg);color:var(--text);font-size:.9rem;font-family:var(--font-main);outline:none;transition:border-color var(--transition)}#custom-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #7dd3fc1a}#custom-input-send{padding:.6rem 1.2rem;border:none;border-radius:6px;background:var(--gradient);color:#fff;font-weight:500;font-size:.9rem;cursor:pointer;font-family:var(--font-main);white-space:nowrap;transition:all var(--transition)}#custom-input-send:hover{opacity:.9;box-shadow:0 0 16px #7dd3fc4d}#back-to-choices-btn{background:#ffffff1a;border:1px dashed var(--primary)}#dialog-box{position:absolute;bottom:0;left:0;right:0;z-index:2;display:flex;justify-content:center;padding:12px 20px 16px;min-height:180px;background:var(--dialog-gradient-mask);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);transition:all .5s cubic-bezier(.4,0,.2,1)}#dialog-box:before{content:"";position:absolute;top:-30px;left:0;right:0;height:30px;background:linear-gradient(to bottom,transparent,rgba(7,11,20,.3));pointer-events:none}#dialog-box.clickable{cursor:pointer}#dialog-inner{width:70%;display:flex;flex-direction:column}#dialog-nameplate{display:flex;align-items:baseline;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid rgba(148,163,184,.15)}#dialog-name{font-size:20px;font-weight:700;color:var(--name-color);margin-right:12px;text-shadow:0 1px 3px rgba(0,0,0,.6)}#dialog-subtitle{font-size:14px;font-weight:400;color:var(--text-secondary);text-shadow:0 1px 2px rgba(0,0,0,.4)}#emotion-indicator{font-size:16px;margin-left:auto;transition:transform var(--transition);filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}#emotion-indicator.emotion-happy{animation:happyBounce .6s cubic-bezier(.175,.885,.32,1.275) 1}#emotion-indicator.emotion-sad{animation:emotionSway .8s ease}#emotion-indicator.emotion-angry{animation:angryJump .8s ease-out 1}#emotion-indicator.emotion-shy{animation:embarrassedEmo .3s cubic-bezier(.175,.885,.32,1.275) 1}#emotion-indicator.emotion-excited{animation:heartBeat .8s cubic-bezier(.175,.885,.32,1.275) 1}#emotion-indicator.emotion-tsundere{animation:naughtyBounce .3s cubic-bezier(.175,.885,.32,1.275) 1}@keyframes emotionSway{0%,to{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}#dialog-divider{height:1px;background:#94a3b81f;margin:4px 0}#dialog-text-area{padding:.6rem 0;min-height:60px;max-height:22vh;overflow-y:auto;font-size:18px;line-height:1.8;color:var(--text);letter-spacing:.05em;-webkit-overflow-scrolling:touch;flex-shrink:1;text-shadow:var(--text-shadow)}.cursor-blink{animation:cursorBlink 1s step-end infinite;color:var(--text-secondary);font-weight:300}@keyframes cursorBlink{50%{opacity:0}}#dialog-input-area{display:flex;align-items:center;gap:8px;margin-top:4px;padding-top:6px;border-top:1px solid rgba(148,163,184,.1)}#dialog-input{flex:1;width:100%;min-height:32px;background:transparent;border:none;color:var(--text);font-size:16px;resize:none;margin:0;outline:none;padding:4px 0;font-family:var(--font-main);transition:all var(--transition)}#dialog-input::placeholder{color:var(--text-muted)}#dialog-input:read-only{opacity:.5;cursor:default}#dialog-send-btn{align-self:flex-end;background:transparent;color:var(--send-color);border:none;padding:4px 8px;border-radius:6px;cursor:pointer;font-size:16px;transition:all var(--transition)}#dialog-send-btn:hover{color:var(--send-hover-color);text-shadow:0 0 8px rgba(125,211,252,.3)}#dialog-send-btn:disabled{opacity:.3;cursor:not-allowed}#ai-generating{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:8;display:flex;align-items:center;gap:.8rem;padding:1rem 2rem;background:#070b14d9;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-radius:var(--radius);border:1px solid var(--border);color:var(--text-secondary);font-size:.9rem;box-shadow:var(--shadow)}.ai-thinking-indicator{display:flex;align-items:center;gap:.6rem}.thinking-dots{display:flex;gap:4px;align-items:center}.thinking-dot{width:6px;height:6px;border-radius:50%;background:var(--primary);animation:thinkingBounce 1.4s ease-in-out infinite}.thinking-dot:nth-child(2){animation-delay:.2s}.thinking-dot:nth-child(3){animation-delay:.4s}.thinking-text{font-size:.9rem;color:var(--text-muted);animation:thinkingFade 2s ease-in-out infinite}@keyframes thinkingBounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1.2);opacity:1}}@keyframes thinkingFade{0%,to{opacity:.7}50%{opacity:1}}#chat-screen{display:flex;flex-direction:column;height:100vh;height:100dvh;background:var(--bg);position:relative}#chat-screen:not(.active){display:none}#chat-screen.active{display:flex}#chat-screen-bg{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;background-size:cover;background-position:center;background-repeat:no-repeat;opacity:.3;pointer-events:none}#chat-screen-bg:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(to bottom,#070b144d,#070b141a,#070b144d)}#chat-header,#chat-input-area,#chat-messages{position:relative;z-index:1}#chat-header{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;background:#070b1499;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid var(--border);flex-shrink:0}#chat-header-info{flex:1;display:flex;flex-direction:column}#chat-char-name{font-weight:600;font-size:1rem;color:var(--text)}#chat-char-status{font-size:.7rem;color:var(--accent-color)}#chat-messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.8rem;scroll-behavior:smooth}.chat-msg{max-width:80%;padding:.8rem 1rem;border-radius:var(--radius);line-height:1.6;font-size:.95rem;animation:chatMsgIn .3s cubic-bezier(.4,0,.2,1);word-break:break-word}@keyframes chatMsgIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.chat-msg.ai{align-self:flex-start;background:#0f172a99;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);color:var(--text);border-bottom-left-radius:6px;box-shadow:var(--shadow-sm)}.chat-msg.player{align-self:flex-end;background:#7dd3fc1a;border:1px solid rgba(125,211,252,.15);color:var(--text);border-bottom-right-radius:6px;font-weight:500;box-shadow:var(--shadow-sm)}.chat-msg .msg-name{font-size:.75rem;color:var(--accent-color);margin-bottom:.3rem;font-weight:600}.chat-msg.player .msg-name{color:var(--text-secondary)}.chat-thinking{opacity:.8}.thinking-inline{display:flex;align-items:center;gap:.5rem;padding:.3rem 0}.thinking-inline .thinking-dots{display:flex;gap:3px;align-items:center}.thinking-inline .thinking-dot{width:5px;height:5px;border-radius:50%;background:var(--accent-color);animation:thinkingBounce 1.4s ease-in-out infinite}.thinking-inline .thinking-dot:nth-child(2){animation-delay:.2s}.thinking-inline .thinking-dot:nth-child(3){animation-delay:.4s}.thinking-inline .thinking-text{font-size:.85rem;color:var(--text-muted);animation:thinkingFade 2s ease-in-out infinite}#chat-input-area{flex-shrink:0;padding:.8rem 1rem;background:#070b1499;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid var(--border)}#chat-quick-actions{display:flex;gap:.4rem;margin-bottom:.5rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.quick-action-btn{padding:.3rem .7rem;border:1px solid var(--border);border-radius:6px;background:#0f172a66;color:var(--text-secondary);font-size:.75rem;cursor:pointer;white-space:nowrap;transition:all var(--transition)}.quick-action-btn:hover,.quick-action-btn:active{background:#7dd3fc1a;border-color:#7dd3fc4d;color:var(--text)}#chat-input-row{display:flex;gap:.5rem}#chat-input{flex:1;padding:.7rem 1rem;border:1px solid var(--border);border-radius:6px;background:var(--input-bg);color:var(--text);font-size:.9rem;font-family:var(--font-main);outline:none;transition:border-color var(--transition)}#chat-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #7dd3fc1a}#chat-input::placeholder{color:var(--text-muted)}#chat-send-btn{padding:.7rem 1.2rem;border:none;border-radius:6px;background:var(--gradient);color:#fff;font-size:.9rem;cursor:pointer;transition:all var(--transition);font-weight:500}#chat-send-btn:hover{opacity:.9;box-shadow:0 0 16px #7dd3fc4d}.modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center}.modal-backdrop{position:absolute;inset:0;background:#070b1499;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.modal-content{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1;width:90%;max-width:600px;max-height:85vh;background-color:#0f172ad9;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);box-shadow:var(--shadow-lg);border-radius:var(--radius);border:1px solid var(--border);display:flex;flex-direction:column;animation:modalIn .3s cubic-bezier(.4,0,.2,1);overflow:hidden;color:var(--text)}@keyframes modalIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#070b1480;border-bottom:1px solid rgba(148,163,184,.08);flex-shrink:0}.modal-header h2{font-size:1rem;font-weight:600;color:var(--text)}.modal-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;border-radius:6px;background:transparent;color:var(--text-muted);font-size:1rem;cursor:pointer;transition:all var(--transition)}.modal-close:hover{background:#f1f5f91a;color:var(--text)}.modal-body{padding:1rem;overflow-y:auto;flex:1;color:var(--text-secondary)}#outline-modal .modal-content{max-width:600px;max-height:85vh}.outline-card{padding:1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);margin-bottom:.6rem;cursor:pointer;transition:all var(--transition)}.outline-card:hover{border-color:var(--primary);background:#0f172acc}#outline-chapters-label,.form-label{display:block;font-size:14px;color:var(--text-secondary);margin-bottom:.4rem;font-weight:500}.chapter-title{padding:.5rem .8rem;border:1px solid var(--border);border-radius:6px;background:var(--input-bg);color:var(--text);font-size:.9rem;width:100%;margin-bottom:.3rem;outline:none;transition:border-color var(--transition)}.chapter-title:focus{border-color:var(--primary)}.chapter-summary{padding:.5rem .8rem;border:1px solid var(--border);border-radius:6px;background:var(--input-bg);color:var(--text);font-size:.85rem;width:100%;min-height:50px;resize:vertical;margin-bottom:.3rem;outline:none;font-family:var(--font-main);transition:border-color var(--transition)}.chapter-summary:focus{border-color:var(--primary)}.chapter-mood{padding:.3rem .6rem;border:1px solid var(--border);border-radius:6px;background:var(--input-bg);color:var(--text);font-size:.8rem;outline:none;transition:border-color var(--transition)}.remove-chapter-btn{padding:.2rem .5rem;border:1px solid rgba(244,67,54,.3);border-radius:4px;background:#f443361a;color:#f44336;font-size:.75rem;cursor:pointer;transition:all var(--transition)}.remove-chapter-btn:hover{background:#f4433633;border-color:#f4433680}#outline-preview-modal .modal-content{max-width:600px;max-height:85vh}.outline-preview-content{line-height:1.8;color:var(--text-secondary)}.settings-backdrop{position:fixed;inset:0;z-index:99;background:#070b1473;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;transition:opacity var(--transition);pointer-events:none}.modal:not(.hidden) .settings-backdrop{opacity:1;pointer-events:auto}.settings-panel-fullscreen{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;color:var(--text);background:transparent;opacity:0;transform:translateY(10px);transition:opacity var(--transition),transform var(--transition);pointer-events:none}.modal:not(.hidden) .settings-panel-fullscreen{opacity:1;transform:translateY(0);pointer-events:auto}.settings-nav{display:flex;align-items:center;padding:.8rem 1.5rem;background:#070b14b3;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid rgba(125,211,252,.12);flex-shrink:0;position:relative;gap:0}@supports not (backdrop-filter: blur(1px)){.settings-nav,.settings-body{background:#070b14f2}.settings-card{background:#0f172acc}.settings-backdrop{background:#070b14cc;-webkit-backdrop-filter:none;backdrop-filter:none}}.settings-nav-inner{display:flex;gap:0;position:relative;flex:1}.settings-nav-btn{display:flex;align-items:center;gap:8px;padding:10px 18px;background:none;border:none;color:var(--text-secondary);font-size:15px;font-weight:600;cursor:pointer;border-radius:var(--radius-sm);transition:color var(--transition),background-color var(--transition);font-family:var(--font-main);text-shadow:0 1px 2px rgba(0,0,0,.2);position:relative;z-index:1}.settings-nav-btn:hover{color:var(--accent-color);background:#7dd3fc0d}.settings-nav-btn.active{color:var(--accent-color);background:#7dd3fc1a}.settings-nav-btn svg{flex-shrink:0}.settings-nav-indicator{position:absolute;bottom:0;left:0;height:3px;background:var(--gradient);border-radius:2px;box-shadow:0 0 10px #7dd3fc66;transition:all .3s cubic-bezier(.18,.89,.32,1);width:0;z-index:2}.settings-close-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:none;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition);margin-left:auto}.settings-close-btn:hover{color:var(--accent-color);background:#7dd3fc1a;transform:rotate(90deg)}.settings-body{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-wrap:wrap;gap:1rem;align-content:flex-start;justify-content:center;background:#070b1480;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%)}.tab-content{display:none;width:100%;max-width:700px}.tab-content.active{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;animation:tabFade .3s cubic-bezier(.4,0,.2,1)}@keyframes tabFade{0%{opacity:0}to{opacity:1}}.settings-card{background:#0f172a99;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-sm),inset 0 1px 1px #f1f5f908;transition:border-color var(--transition)}.settings-card:hover{border-color:#7dd3fc33}.settings-card.large{width:100%;max-width:700px}.settings-card.small{width:calc(50% - .5rem);max-width:345px;min-width:280px}.settings-card-title{display:flex;align-items:center;gap:8px;margin-bottom:1rem;padding-bottom:.6rem;border-bottom:2px solid var(--accent-color)}.settings-card-title svg{color:var(--accent-color);flex-shrink:0}.settings-card-title h4{font-size:17px;font-weight:600;color:var(--text);margin:0;text-shadow:0 0 2px rgba(0,0,0,.5)}.settings-card-title .direct-tag{font-size:.65rem;padding:1px 6px;border-radius:4px;background:#00d26426;color:#00d264;font-weight:500;vertical-align:middle;margin-left:4px}.form-group{margin-bottom:1rem}.form-group label,.form-group .form-label{display:block;font-size:14px;color:var(--text-secondary);margin-bottom:.4rem;font-weight:500}.form-group input[type=text],.form-group input[type=password],.form-group input[type=number],.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid rgba(148,163,184,.15);border-radius:6px;background:var(--input-bg);color:var(--text);font-size:15px;font-family:var(--font-main);transition:border-color var(--transition),box-shadow var(--transition)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #7dd3fc1a;background:#0f172acc}.form-group input::placeholder{color:var(--text-muted)}.form-group select option{background:var(--bg-secondary);color:var(--text)}.form-group small{display:block;font-size:.75rem;color:var(--text-muted);margin-top:.3rem}.form-group input[type=range]{width:100%;-webkit-appearance:none;appearance:none;height:6px;border-radius:3px;background:var(--slider-track);outline:none}.form-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--text);border:var(--slider-thumb-border);cursor:pointer;box-shadow:0 0 8px #7dd3fc4d}.form-group input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--text);border:var(--slider-thumb-border);cursor:pointer;box-shadow:0 0 8px #7dd3fc4d}.form-group input[type=checkbox]{margin-right:.5rem;accent-color:var(--accent-color)}.form-group input[type=color]{width:48px;height:32px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;cursor:pointer}.settings-panel-fullscreen .form-group label{color:var(--text-secondary)}.settings-panel-fullscreen .form-group small{color:var(--text-muted)}.settings-panel-fullscreen .form-group input[type=text],.settings-panel-fullscreen .form-group input[type=password],.settings-panel-fullscreen .form-group input[type=number],.settings-panel-fullscreen .form-group select,.settings-panel-fullscreen .form-group textarea{background:#0f172a99;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(148,163,184,.15);color:var(--text);box-shadow:var(--shadow-sm),inset 0 1px 1px #f1f5f908}.settings-panel-fullscreen .form-group input:focus,.settings-panel-fullscreen .form-group select:focus,.settings-panel-fullscreen .form-group textarea:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px #7dd3fc26;background:#0f172acc}.settings-panel-fullscreen .form-group input::placeholder{color:var(--text-muted)}.settings-panel-fullscreen .form-group select option{background:var(--bg-secondary);color:var(--text)}.settings-panel-fullscreen .form-group input[type=checkbox]{accent-color:var(--accent-color)}.model-tags{display:inline-flex;gap:.3rem;margin-left:.5rem;vertical-align:middle}.tag{display:inline-block;padding:.1rem .4rem;border-radius:4px;font-size:.65rem;font-weight:700;letter-spacing:.05em;line-height:1.4}.tag-free{background:#4caf5026;color:#81c784;border:1px solid rgba(76,175,80,.3)}.tag-thinking{background:#c084fc26;color:#c084fc;border:1px solid rgba(192,132,252,.3)}.tag-vision{background:#7dd3fc26;color:#7dd3fc;border:1px solid rgba(125,211,252,.3)}.tag-image{background:#ffb74d26;color:#ffcc80;border:1px solid rgba(255,183,77,.3)}.model-legend{display:flex;flex-wrap:wrap;gap:.8rem;padding:.8rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:#0f172a66;margin-top:.5rem}.legend-item{display:flex;align-items:center;gap:.3rem;font-size:.75rem;color:var(--text-muted)}.api-quota{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.8rem;margin-top:.5rem}.quota-label{color:var(--text-muted)}.quota-value{color:var(--accent-color);font-weight:600}.theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.theme-card{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.6rem;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);font-size:.8rem;color:var(--text-secondary)}.theme-card:hover{border-color:#7dd3fc4d;background:#7dd3fc0d}.theme-card.active{border-color:#7dd3fc66;background:#7dd3fc14}.theme-preview{width:100%;aspect-ratio:16/9;border-radius:6px;overflow:hidden}.dark-star-preview{background:linear-gradient(135deg,#070b14,#0f172a);box-shadow:inset 0 0 20px #7dd3fc4d}.sakura-preview{background:linear-gradient(135deg,#1a0a14,#2a1225);box-shadow:inset 0 0 20px #ff69b44d}.ink-wash-preview{background:linear-gradient(135deg,#f5f0e8,#e8e0d0);box-shadow:inset 0 0 20px #8b451333}.cyberpunk-preview{background:linear-gradient(135deg,#0d0d0d,#1a1a1a);box-shadow:inset 0 0 20px #00ff414d}.vaporwave-preview{background:linear-gradient(135deg,#1a0030,#2a0050);box-shadow:inset 0 0 20px #ff6ec74d}.custom-preview{background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:1.5rem}.storage-bar-wrap{display:flex;align-items:center;gap:.6rem}.storage-bar{flex:1;height:8px;background:#0f172a66;border-radius:4px;overflow:hidden}.storage-bar-fill{height:100%;background:var(--gradient);border-radius:3px;transition:width var(--transition);width:0%}.btn-row{display:flex;gap:.6rem}.btn-row .action-btn{flex:1}.action-btn{padding:8px 15px;background-color:#0f172a99;color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:.9em;transition:all var(--transition);font-family:var(--font-main)}.action-btn:hover{background-color:#0f172acc;color:var(--text);border-color:#7dd3fc4d}.action-btn.danger{background-color:#f4433626;color:#f44336;border-color:#f443364d}.action-btn.danger:hover{background-color:#f4433640;color:#ff5252}.action-btn.primary{background:var(--gradient);color:#fff;font-weight:500;border:none}.action-btn.primary:hover{opacity:.9;box-shadow:0 0 16px #7dd3fc4d}.action-btn.secondary{background-color:#0f172a66;color:var(--text-muted);border-color:#94a3b81a}.action-btn.secondary:hover{background-color:#0f172a99;color:var(--text-secondary)}.settings-footer{display:flex;justify-content:flex-end;gap:.8rem;padding:.8rem 1.5rem;background:#070b1480;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid rgba(148,163,184,.08);flex-shrink:0}.save-panel{max-width:560px}#save-slots{display:grid;gap:.6rem}.save-slot{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);cursor:pointer;transition:all var(--transition)}.save-slot:hover{border-color:var(--primary);background:#0f172acc}.slot-number{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--gradient);color:#fff;font-weight:700;font-size:.9rem;flex-shrink:0}.slot-info{flex:1}.slot-title{font-weight:600;font-size:.9rem}.slot-detail{font-size:.75rem;color:var(--text-muted);margin-top:.2rem}.slot-actions{display:flex;gap:.3rem}.slot-load,.slot-delete{padding:.3rem .6rem;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text-secondary);font-size:.75rem;cursor:pointer;transition:all var(--transition)}.slot-load:hover{border-color:var(--primary);color:var(--primary)}.slot-delete:hover{border-color:#f44336;color:#f44336}.save-slot-new{border:2px dashed var(--border);background:transparent;min-height:50px;display:flex;align-items:center;justify-content:center;transition:all var(--transition);padding:1rem;border-radius:var(--radius-sm);cursor:pointer}.save-slot-new:hover{border-color:var(--primary);background:#7dd3fc0d}.history-panel{max-width:600px}#history-list{display:flex;flex-direction:column;gap:.5rem;max-height:60vh;overflow-y:auto}.history-item{padding:.6rem .8rem;border-radius:var(--radius-sm);font-size:.85rem;line-height:1.5}.history-item .history-name{font-weight:700;color:var(--primary);margin-right:.5rem}.history-item.player{background:#7dd3fc14;border-left:3px solid var(--primary)}.history-item.ai{background:var(--bg-card);border-left:3px solid var(--accent)}.gallery-panel{max-width:800px}#gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.8rem}.gallery-item{position:relative;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border);aspect-ratio:1;cursor:pointer;transition:all var(--transition)}.gallery-item:hover{border-color:#7dd3fc4d;transform:scale(1.03);box-shadow:0 0 16px #7dd3fc26}.gallery-item img{width:100%;height:100%;object-fit:cover}.gallery-overlay{position:absolute;inset:0;background:#070b1499;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;gap:.5rem;opacity:0;transition:opacity var(--transition)}.gallery-item:hover .gallery-overlay{opacity:1}.gallery-delete-btn{padding:.4rem .8rem;border:1px solid rgba(241,245,249,.2);border-radius:6px;background:#0f172a99;color:var(--text);font-size:.75rem;cursor:pointer;transition:all var(--transition)}.gallery-delete-btn:hover{background:#f443364d;border-color:#f44336;color:#ff5252}#gallery-empty{text-align:center;color:var(--text-muted);padding:2rem;font-size:.9rem}.api-status-panel{max-width:500px}#api-status-content{display:flex;flex-direction:column;gap:1rem}.api-status-card{padding:1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.api-status-card h3{font-size:.9rem;margin-bottom:.5rem}.status-row{display:flex;justify-content:space-between;font-size:.8rem;padding:.3rem 0}.status-label{color:var(--text-muted)}.status-value{font-weight:600}.status-ok{color:#00ff41}.status-err{color:#ff0040}.continue-dialog-panel{max-width:440px}.continue-dialog-desc{font-size:.95rem;color:var(--text-secondary);text-align:center;margin-bottom:1.5rem;line-height:1.6}.continue-dialog-actions{display:flex;flex-direction:column;gap:.8rem}.continue-btn,.restart-btn{display:flex;align-items:center;gap:.6rem;padding:1rem 1.5rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.95rem;font-family:var(--font-main);transition:all var(--transition);border:1px solid var(--border);background:var(--bg-card);color:var(--text);text-align:left}.continue-btn{background:var(--big-button-bg);color:#fff;border:none;font-weight:600}.continue-btn:hover{opacity:.9;box-shadow:0 0 20px #7dd3fc4d;transform:translateY(-2px)}.restart-btn{background-color:#f4433626;color:#f44336;border:1px solid rgba(244,67,54,.3)}.restart-btn:hover{background-color:#f4433640;border-color:#f4433680;box-shadow:0 6px 12px #f4433626;transform:translateY(-2px)}.restart-btn small{color:#f44336;opacity:.7}.btn-icon{font-size:1.4rem}#toast-container{position:fixed;top:1rem;left:50%;transform:translate(-50%);z-index:200;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}.toast{padding:.7rem 1.5rem;border-radius:var(--radius-sm);background:#070b14e6;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--border);color:var(--text);font-size:.85rem;box-shadow:var(--shadow);animation:toastIn .3s cubic-bezier(.4,0,.2,1),toastOut .3s ease-in 2.7s forwards;pointer-events:auto}.toast-success{border-left:3px solid #4caf50}.toast-error{border-left:3px solid #f44336}.toast-info{border-left:3px solid var(--primary)}.toast-warning{border-left:3px solid #ffaa00}@keyframes toastIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes toastOut{0%{opacity:1}to{opacity:0;transform:translateY(-10px)}}.scene-transition{position:absolute;inset:0;z-index:20;background:var(--bg);animation:sceneFade 1.2s cubic-bezier(.4,0,.2,1);pointer-events:none}@keyframes sceneFade{0%{opacity:0}40%{opacity:1}60%{opacity:1}to{opacity:0}}.sprite-breathing{animation:breathing 4s ease-in-out infinite}.sprite-angry{animation:angryJump .8s ease-out 1}.sprite-happy{animation:happyBounce .6s cubic-bezier(.175,.885,.32,1.275) 1}.sprite-heartbeat{animation:heartBeat .8s cubic-bezier(.175,.885,.32,1.275) 1}.sprite-serious{animation:seriousThink .6s cubic-bezier(.175,.885,.32,1.275) 1}.sprite-embarrassed{animation:embarrassedEmo .3s cubic-bezier(.175,.885,.32,1.275) 1}.sprite-naughty{animation:naughtyBounce .3s cubic-bezier(.175,.885,.32,1.275) 1}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes breathing{0%,to{transform:scale(1)}50%{transform:scale(1.005)}}@keyframes angryJump{0%{transform:scale(1)}20%{transform:scale(1.15) rotate(-2deg)}40%{transform:scale(.95) rotate(2deg)}60%{transform:scale(1.08) rotate(-1deg)}80%{transform:scale(.98) rotate(1deg)}to{transform:scale(1)}}@keyframes happyBounce{0%{transform:scale(1)}30%{transform:scale(1.2)}50%{transform:scale(.9)}70%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes heartBeat{0%{transform:scale(1)}25%{transform:scale(1.15)}40%{transform:scale(1)}55%{transform:scale(1.1)}70%{transform:scale(1)}}@keyframes seriousThink{0%{transform:scale(1) rotate(0)}30%{transform:scale(1.05) rotate(-3deg)}60%{transform:scale(.98) rotate(2deg)}to{transform:scale(1) rotate(0)}}@keyframes embarrassedEmo{0%{transform:scale(1) rotate(0)}30%{transform:scale(.95) rotate(-5deg)}60%{transform:scale(1.02) rotate(3deg)}to{transform:scale(1) rotate(0)}}@keyframes naughtyBounce{0%{transform:scale(1) translateY(0)}30%{transform:scale(1.1) translateY(-5px)}60%{transform:scale(.95) translateY(3px)}to{transform:scale(1) translateY(0)}}[data-theme=cyberpunk] #dialog-box:before{border-top:1px solid rgba(0,255,65,.4);box-shadow:0 -2px 20px #00ff411a}[data-theme=cyberpunk] .choice-btn:hover{text-shadow:0 0 8px rgba(0,255,65,.5)}[data-theme=cyberpunk] #dialog-nameplate{clip-path:polygon(0 0,100% 0,95% 100%,5% 100%)}[data-theme=ink-wash] #dialog-box:before{background:#f5f0e8bf;border-top:1px solid rgba(139,69,19,.3);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}[data-theme=ink-wash] .choice-btn{border-style:dashed}[data-theme=ink-wash] .choice-btn:after{content:"◆ ";color:var(--primary)}[data-theme=vaporwave] #scene-overlay{background:linear-gradient(to top,rgba(26,0,48,.7) 0%,transparent 40%,rgba(255,110,199,.05) 70%,rgba(123,104,238,.1) 100%)}[data-theme=vaporwave] .choice-btn:hover{text-shadow:0 0 10px rgba(255,110,199,.6);box-shadow:0 0 20px #ff6ec733}[data-action=toggle-tts].tts-active{background:#7dd3fc33;border-radius:var(--radius-sm)}.settings-panel{max-width:640px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#94a3b826;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b840}.clickable{cursor:pointer}@media(max-width:768px){#title-logo{top:3vh;right:3vw}.title-text{font-size:clamp(28px,6vw,48px)}#title-menu{left:5vw}.title-menu-btn{font-size:clamp(24px,5vw,42px)}#title-character{width:200px;height:340px}#dialog-box{padding:0 1rem 1rem;min-height:150px;max-height:40vh}#dialog-text-area{font-size:.95rem;line-height:1.7;max-height:20vh}#choices-box{bottom:170px;max-width:95%}.choice-btn{padding:.8rem 1.2rem;font-size:.9rem}#character-sprite{width:200px;height:340px}.settings-card.small{width:100%;max-width:700px;min-width:0}.settings-body{padding:1rem}.settings-nav-btn{padding:8px 12px;font-size:13px}.settings-nav-btn svg{width:16px;height:16px}.theme-grid{grid-template-columns:repeat(2,1fr)}#dialog-nameplate{padding:.3rem 1rem}#dialog-name{font-size:18px}#dialog-subtitle,#emotion-indicator{font-size:.75rem}.form-group input[type=text],.form-group input[type=password],.form-group input[type=number],.form-group select,.form-group textarea{font-size:16px}#scene-download-btn{padding:.4rem .8rem;font-size:.75rem}#gallery-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.settings-footer{padding:.8rem 1rem}.settings-footer .action-btn{flex:1;padding:.7rem}#custom-input{font-size:16px}#custom-input-box{bottom:190px;width:94%}.btn-row{flex-direction:column}.storage-bar-wrap{flex-wrap:wrap}.chat-msg{max-width:90%}#chat-quick-actions{padding-bottom:.2rem}#dialog-inner{width:85%}}@media(max-width:480px){#title-logo{top:2vh;right:2vw}.title-text{font-size:clamp(24px,8vw,40px)}#title-menu{left:3vw}.title-menu-btn{font-size:clamp(22px,7vw,36px)}#title-character{width:150px;height:260px}.toolbar-btn{width:30px;height:30px;font-size:.85rem}#game-toolbar{gap:.15rem;padding:.3rem}#dialog-box{min-height:130px;max-height:35vh}#dialog-text-area{font-size:.88rem;min-height:40px;max-height:18vh}#choices-box{bottom:150px}.choice-btn{padding:.7rem 1rem;font-size:.85rem}#character-sprite{width:160px;height:280px}.settings-card.small{width:100%;max-width:700px;min-width:0}.settings-body{padding:.8rem}.settings-nav-btn{padding:6px 8px;font-size:12px;gap:4px}.settings-nav-btn svg{width:14px;height:14px}#gallery-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}#custom-input-box{bottom:170px}#info-badge{top:8px;right:8px;font-size:.9rem}#dialog-inner{width:92%}#dialog-name{font-size:16px}#dialog-subtitle{font-size:12px}#emotion-indicator{font-size:14px}#dialog-input,#dialog-send-btn{font-size:16px}}
