.character-mention{display:inline;background:none;border:none;color:var(--accent-blue);text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px;padding:0;font-size:inherit;font-weight:600;transition:color .2s ease}.character-mention:hover{color:var(--accent-green);text-decoration-style:solid}.character-mention:active{color:var(--accent-yellow)}.character-mention-text{display:inline;color:inherit;font-size:inherit}.character-description-inline{margin:20px 0;padding:15px;background:#4a9eff1a;border-left:4px solid var(--accent-blue);border-radius:4px;animation:slideIn .3s ease-out}.character-description-inline .description-text{margin:0 0 10px;font-style:italic;color:var(--text-secondary)}.character-description-inline .character-illustration{max-width:100%;height:auto;border-radius:8px;margin-top:10px}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.annotate-button-container{position:fixed;z-index:1000;pointer-events:none}.annotate-button{pointer-events:auto;background:var(--accent-blue);color:#fff;border:none;padding:6px 12px;border-radius:4px;font-size:.85rem;font-weight:500;cursor:pointer;box-shadow:0 2px 8px #0000004d;transition:all .15s ease;display:flex;align-items:center;gap:4px}.annotate-button:hover{background:var(--accent-green);transform:translateY(-1px);box-shadow:0 4px 12px #0006}.annotate-button-icon{font-size:1rem}.annotation-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.annotation-dialog{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;width:90%;max-width:700px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #00000080}.annotation-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:8px 8px 0 0}.annotation-dialog-header h3{margin:0;color:var(--text-primary);font-size:1.1rem}.annotation-dialog-close{background:none;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;padding:0;line-height:1}.annotation-dialog-close:hover{color:var(--accent-red)}.annotation-dialog-body{flex:1;overflow-y:auto;padding:20px}.annotation-quoted-text{background:var(--bg-tertiary);border-left:4px solid var(--accent-yellow);padding:12px 16px;margin-bottom:16px;border-radius:0 4px 4px 0;font-style:italic;color:var(--text-secondary)}.annotation-quoted-text:before{content:'"';font-size:1.5rem;color:var(--accent-yellow);opacity:.7}.annotation-quoted-text:after{content:'"';font-size:1.5rem;color:var(--accent-yellow);opacity:.7}.annotation-critique-section{margin-bottom:20px}.annotation-critique-section label{display:block;margin-bottom:8px;color:var(--text-primary);font-weight:500}.annotation-critique-input{width:100%;min-height:80px;padding:12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-family:inherit;font-size:.95rem;resize:vertical}.annotation-critique-input:focus{outline:none;border-color:var(--accent-blue)}.annotation-critique-input::placeholder{color:var(--text-secondary);opacity:.7}.annotation-conversation{display:flex;flex-direction:column;gap:16px}.annotation-message{padding:12px 16px;border-radius:8px;max-width:95%}.annotation-message.user{background:var(--accent-blue);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}.annotation-message.assistant{background:var(--bg-tertiary);color:var(--text-primary);align-self:flex-start;border-bottom-left-radius:4px;border:1px solid var(--border-color)}.annotation-message-content{white-space:pre-wrap;line-height:1.5}.annotation-message-content strong{color:var(--accent-green)}.annotation-followup-section{margin-top:20px;padding-top:16px;border-top:1px solid var(--border-color)}.annotation-followup-input-row{display:flex;gap:8px}.annotation-followup-input{flex:1;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-family:inherit}.annotation-followup-input:focus{outline:none;border-color:var(--accent-blue)}.annotation-dialog-footer{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-top:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:0 0 8px 8px}.annotation-status-select{padding:6px 10px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:.85rem}.annotation-dialog-actions{display:flex;gap:8px}.annotation-btn{padding:8px 16px;border:none;border-radius:4px;font-size:.9rem;cursor:pointer;transition:all .15s ease}.annotation-btn-primary{background:var(--accent-blue);color:#fff}.annotation-btn-primary:hover{background:var(--accent-green)}.annotation-btn-primary:disabled{background:var(--border-color);cursor:not-allowed}.annotation-btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.annotation-btn-secondary:hover{background:var(--bg-primary)}.annotation-loading{display:flex;align-items:center;gap:10px;padding:16px;color:var(--text-secondary)}.annotation-loading-spinner{width:20px;height:20px;border:2px solid var(--border-color);border-top-color:var(--accent-blue);border-radius:50%;animation:spin .8s linear infinite}.annotation-marker{background:#ffc10740;border-bottom:2px solid var(--accent-yellow);cursor:pointer;transition:background .15s ease;position:relative}.annotation-marker:hover{background:#ffc10766}.annotation-marker.resolved{background:#4caf5026;border-bottom-color:var(--accent-green)}.annotation-marker.noted{background:#9c27b026;border-bottom-color:#9c27b0}.annotation-marker-icon{position:absolute;top:-8px;right:-4px;font-size:.7rem;background:var(--accent-yellow);color:#000;width:14px;height:14px;border-radius:50%;display:flex;align-items:center;justify-content:center}.annotation-marker-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;padding:10px 12px;min-width:200px;max-width:300px;z-index:100;box-shadow:0 4px 12px #0000004d;margin-bottom:8px;pointer-events:none}.annotation-marker-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--border-color)}.annotation-marker-tooltip-critique{font-size:.85rem;color:var(--accent-blue);font-weight:500;margin-bottom:6px;font-style:normal}.annotation-marker-tooltip-preview{font-size:.8rem;color:var(--text-secondary);font-style:normal;line-height:1.4}.annotations-tab{padding:16px}.annotations-tab-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.annotations-tab-header h3{margin:0;color:var(--text-primary)}.annotations-export-btn{padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:.85rem;cursor:pointer}.annotations-export-btn:hover{background:var(--bg-primary)}.annotations-list{display:flex;flex-direction:column;gap:12px}.annotations-empty{text-align:center;padding:40px 20px;color:var(--text-secondary)}.annotations-empty-icon{font-size:2.5rem;opacity:.5;margin-bottom:12px}.annotation-card{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;overflow:hidden}.annotation-card-header{display:flex;justify-content:space-between;align-items:flex-start;padding:12px;cursor:pointer;transition:background .15s ease}.annotation-card-header:hover{background:var(--bg-primary)}.annotation-card-quote{flex:1;font-style:italic;color:var(--text-secondary);font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:12px}.annotation-card-meta{display:flex;align-items:center;gap:8px;flex-shrink:0}.annotation-card-status{padding:2px 8px;border-radius:10px;font-size:.75rem;font-weight:500;text-transform:uppercase}.annotation-card-status.open{background:#ffc10733;color:var(--accent-yellow)}.annotation-card-status.resolved{background:#4caf5033;color:var(--accent-green)}.annotation-card-status.noted{background:#9c27b033;color:#ba68c8}.annotation-card-expand-icon{color:var(--text-secondary);transition:transform .2s ease}.annotation-card-expand-icon.expanded{transform:rotate(180deg)}.annotation-card-body{padding:0 12px 12px;border-top:1px solid var(--border-color)}.annotation-card-critique{padding:12px 0;color:var(--text-primary);font-size:.9rem}.annotation-card-response{background:var(--bg-primary);padding:12px;border-radius:4px;font-size:.85rem;color:var(--text-secondary);max-height:200px;overflow-y:auto}.annotation-card-actions{display:flex;gap:8px;margin-top:12px}.annotation-card-btn{padding:4px 10px;font-size:.8rem;border-radius:4px;cursor:pointer;border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-primary)}.annotation-card-btn:hover{background:var(--bg-secondary)}.annotation-card-btn.primary{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff}.annotation-card-btn.primary:hover{background:var(--accent-green);border-color:var(--accent-green)}.text-annotator{position:relative}.text-annotator.debug-active{cursor:text}.text-annotator.debug-active::selection,.text-annotator.debug-active *::selection{background:#ffc10766}.annotations-filters{display:flex;gap:8px;margin-bottom:12px}.annotations-filter-btn{padding:4px 10px;font-size:.8rem;border-radius:12px;cursor:pointer;border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-secondary);transition:all .15s ease}.annotations-filter-btn:hover{background:var(--bg-primary)}.annotations-filter-btn.active{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff}.narrative-panel{flex:1;overflow-y:auto;padding:24px 24px 60px;background-color:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color);max-height:60vh;position:relative}.narrative-content{max-width:800px}.narrative-entry{margin-bottom:20px;animation:fadeIn .3s ease-in}.narrative-entry p{font-size:1.1rem;line-height:1.8;color:var(--text-primary);margin-bottom:.8em;text-indent:2em}.narrative-entry p:first-child{text-indent:0}.scene-text{color:var(--text-primary)}.consequence-text{padding-left:16px;border-left:4px solid var(--accent-blue);margin-top:16px}.player-action-text{margin-top:24px;margin-bottom:8px}.player-action-text p{color:var(--text-secondary);font-size:1.05rem}.player-action-text em{font-style:italic}.loading-indicator{position:sticky;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:12px;padding:16px 20px;background:linear-gradient(to top,var(--bg-secondary) 60%,transparent);color:var(--text-secondary);font-size:.95rem;z-index:10}.loading-indicator .spinner{width:20px;height:20px;border:2px solid var(--border-color);border-top-color:var(--accent-blue);border-radius:50%;animation:spin 1s linear infinite}.narrative-entry.illustration{margin-bottom:24px;text-align:center}.scene-illustration{max-width:100%;max-height:400px;border-radius:8px;box-shadow:0 4px 12px #0000004d}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.choice-buttons{padding:24px;background-color:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color)}.choices-header{margin-bottom:16px}.choices-header h3{font-size:1.25rem;color:var(--text-primary)}.choices-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.choice-button{padding:16px 20px;background-color:var(--bg-tertiary);color:var(--text-primary);border:2px solid var(--border-color);border-radius:8px;font-size:1rem;font-weight:500;text-align:left;transition:all .2s ease}.choice-button:hover:not(:disabled){background-color:var(--accent-blue);border-color:var(--accent-blue);color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow)}.choice-button:active:not(:disabled){transform:translateY(0)}.choice-button:disabled{opacity:.5;cursor:not-allowed}.write-in-section{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color)}.write-in-toggle{width:100%;padding:12px 16px;background:transparent;color:var(--text-secondary);border:2px dashed var(--border-color);border-radius:8px;font-size:.9rem;font-style:italic;cursor:pointer;transition:all .2s ease}.write-in-toggle:hover:not(:disabled){border-color:var(--accent-blue);color:var(--accent-blue);background:#2196f30d}.write-in-toggle:disabled{opacity:.5;cursor:not-allowed}.write-in-form{display:flex;flex-direction:column;gap:12px}.write-in-input{width:100%;padding:12px 16px;background-color:var(--bg-tertiary);color:var(--text-primary);border:2px solid var(--border-color);border-radius:8px;font-size:1rem;font-family:inherit;resize:vertical;min-height:60px;transition:border-color .2s ease}.write-in-input:focus{outline:none;border-color:var(--accent-blue)}.write-in-input::placeholder{color:var(--text-secondary);font-style:italic}.write-in-input:disabled{opacity:.5;cursor:not-allowed}.write-in-actions{display:flex;gap:12px;justify-content:flex-end}.write-in-cancel{padding:10px 20px;background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.write-in-cancel:hover:not(:disabled){background-color:var(--bg-tertiary);color:var(--text-primary)}.write-in-submit{padding:10px 24px;background-color:var(--accent-blue);color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease}.write-in-submit:hover:not(:disabled){background-color:var(--accent-green);transform:translateY(-1px)}.write-in-submit:disabled{opacity:.5;cursor:not-allowed}.choice-icon{font-size:1.2em;margin-right:.5em;display:inline-block;vertical-align:middle}.choice-text{display:inline-block;vertical-align:middle}.choice-type-dialogue{border-left:4px solid #6c91ff}.choice-type-dialogue:hover:not(:disabled){border-left-color:#6c91ff;box-shadow:0 4px 12px #6c91ff4d}.choice-type-action{border-left:4px solid #ff6b6b}.choice-type-action:hover:not(:disabled){border-left-color:#ff6b6b;box-shadow:0 4px 12px #ff6b6b4d}.choice-type-observation{border-left:4px solid #ffd93d}.choice-type-observation:hover:not(:disabled){border-left-color:#ffd93d;box-shadow:0 4px 12px #ffd93d4d}.choice-type-internal{border-left:4px solid #a78bfa}.choice-type-internal:hover:not(:disabled){border-left-color:#a78bfa;box-shadow:0 4px 12px #a78bfa4d}.mobile-sidebar-toggle{position:fixed;right:0;top:50%;transform:translateY(-50%);writing-mode:vertical-rl;text-orientation:mixed;padding:12px 8px;background-color:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-color);border-right:none;border-radius:8px 0 0 8px;font-size:.875rem;font-weight:500;cursor:pointer;z-index:100;transition:all .2s ease;box-shadow:-2px 0 8px var(--shadow)}.mobile-sidebar-toggle:hover{background-color:var(--bg-tertiary);color:var(--text-primary);padding-left:12px}.character-sidebar{width:300px;background-color:var(--bg-secondary);border-left:1px solid var(--border-color);display:flex;flex-direction:column;transition:transform .3s ease}.character-sidebar.collapsed{position:fixed;right:0;top:0;height:100vh;transform:translate(100%);pointer-events:none}.character-sidebar.expanded{position:fixed;right:0;top:0;height:100vh;z-index:150;box-shadow:-4px 0 16px var(--shadow)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--border-color)}.sidebar-header h2{font-size:1.25rem;color:var(--text-primary)}.toggle-button{background:none;border:none;color:var(--text-secondary);font-size:1.5rem;padding:4px;transition:color .2s ease}.toggle-button:hover{color:var(--text-primary)}.character-list{padding:12px;overflow-y:auto}.character-item{margin-bottom:12px;padding:12px;background-color:var(--bg-tertiary);border-radius:8px;border:1px solid var(--border-color)}.character-portrait{width:100%;max-height:120px;object-fit:cover;border-radius:6px;margin-bottom:8px}.character-name{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;color:var(--accent-blue);font-size:1rem;font-weight:600;text-align:left;transition:color .2s ease;cursor:pointer}.character-name:hover:not(:disabled){color:var(--accent-green)}.character-brief{display:block;margin-top:4px;font-size:.75rem;color:var(--text-secondary);line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.character-role{display:block;margin-top:4px;font-size:.875rem;color:var(--text-secondary)}.loading-spinner{animation:pulse 1s infinite}.start-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%);padding:20px}.start-content{text-align:center;padding:40px;max-width:900px;width:100%}.start-header{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:12px}.start-content h1{font-size:2.5rem;margin:0;background:linear-gradient(135deg,var(--accent-blue),var(--accent-green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.settings-toggle{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;font-size:1.5rem;padding:8px 12px;cursor:pointer;transition:all .2s ease}.settings-toggle:hover{background:#fff3;transform:rotate(30deg)}.settings-panel{background:var(--bg-secondary);border:1px solid var(--border-color, rgba(255, 255, 255, .1));border-radius:12px;padding:20px;margin-bottom:24px;text-align:left}.settings-panel h3{margin:0 0 16px;font-size:1rem;color:var(--text-primary)}.settings-controls{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:12px}.settings-controls label{display:flex;flex-direction:column;gap:6px;font-size:.9rem;color:var(--text-secondary)}.settings-controls select,.settings-controls input[type=text]{padding:8px 12px;border:1px solid var(--border-color, rgba(255, 255, 255, .2));border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:.9rem;min-width:150px}.settings-note{font-size:.85rem;color:var(--text-secondary);margin:0;opacity:.8}.settings-checkbox{display:flex;align-items:center;gap:8px;margin-top:12px;cursor:pointer;font-size:.9rem}.settings-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent-primary, #6B4BA1);cursor:pointer}.settings-checkbox input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.webgpu-settings{margin-top:12px;padding:12px;background:#0003;border-radius:8px}.webgpu-model-select{display:flex;flex-direction:column;gap:6px;font-size:.9rem;color:var(--text-secondary);margin-bottom:12px}.webgpu-model-select select{padding:8px 12px;border:1px solid var(--border-color, rgba(255, 255, 255, .2));border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:.9rem;min-width:200px}.webgpu-model-select select:disabled{opacity:.5;cursor:not-allowed}.webgpu-download{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.download-model-button{padding:8px 16px;background:linear-gradient(135deg,var(--accent-blue),var(--accent-green));border:none;border-radius:6px;color:#fff;font-weight:500;cursor:pointer;transition:all .2s ease}.download-model-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000004d}.clear-cache-button{padding:8px 16px;background:transparent;border:1px solid rgba(244,67,54,.5);border-radius:6px;color:#f44336;font-size:.85rem;cursor:pointer;transition:all .2s ease}.clear-cache-button:hover{background:#f443361a;border-color:#f44336}.webgpu-progress{display:flex;flex-direction:column;gap:8px}.progress-bar{width:100%;height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-blue),var(--accent-green));border-radius:4px;transition:width .3s ease}.progress-text{font-size:.85rem;color:var(--text-secondary);text-align:right}.settings-note.error{color:#f44336}.settings-note.success{color:var(--accent-green, #4caf50)}.experiments-section{margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1)}.experiments-toggle{background:transparent;border:none;color:var(--accent-blue);font-size:.9rem;font-weight:500;cursor:pointer;padding:4px 0;display:flex;align-items:center;gap:6px;transition:color .2s ease}.experiments-toggle:hover{color:var(--accent-green)}.experiments-content{margin-top:12px;padding:12px;background:#0003;border-radius:8px}.experiments-description{font-size:.85rem;color:var(--text-secondary);margin:0 0 12px;line-height:1.5}.config-selector{margin-bottom:12px}.config-selector label{display:flex;flex-direction:column;gap:6px;font-size:.9rem;color:var(--text-secondary)}.config-select{padding:8px 12px;border:1px solid var(--border-color, rgba(255, 255, 255, .2));border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:.9rem;min-width:200px;width:100%}.config-info{padding:12px;background:#2196f31a;border:1px solid rgba(33,150,243,.3);border-radius:6px}.config-description{font-size:.85rem;color:var(--text-primary);margin:0 0 8px;line-height:1.5}.config-hypothesis{font-size:.85rem;color:var(--text-secondary);margin:0 0 8px;line-height:1.5;font-style:italic}.config-hypothesis strong{color:var(--accent-blue);font-style:normal}.config-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.config-tag{font-size:.75rem;color:var(--accent-green);background:#4caf5026;padding:2px 8px;border-radius:4px;text-transform:lowercase}.start-content .subtitle{font-size:1.1rem;color:var(--text-secondary);margin-bottom:32px}.error-notice{background:#ff980026;border:1px solid rgba(255,152,0,.4);color:var(--text-secondary);padding:12px 16px;border-radius:8px;margin-bottom:24px;font-size:.9rem}.empty-state{color:var(--text-secondary);padding:40px 20px;text-align:center;font-size:1rem}.template-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-bottom:24px}.template-card{display:flex;align-items:flex-start;gap:16px;padding:20px;background:var(--bg-secondary);border:2px solid transparent;border-radius:12px;cursor:pointer;transition:all .2s ease;text-align:left}.template-card:hover,.template-card:focus{border-color:var(--accent-blue);transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow);outline:none}.template-card:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}.template-card.selected{border-color:var(--accent-green);background:linear-gradient(135deg,#4caf501a,#2196f31a)}.template-icon{font-size:2.5rem;line-height:1;flex-shrink:0}.template-info{flex:1;min-width:0}.template-info h3{font-size:1.1rem;margin:0 0 4px;color:var(--text-primary)}.template-genre{display:inline-block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--accent-blue);background:#2196f326;padding:2px 8px;border-radius:4px;margin-bottom:8px}.template-tagline{font-size:.9rem;color:var(--text-secondary);margin:0;line-height:1.4}.selected-description{background:var(--bg-secondary);border-radius:12px;padding:20px;margin-bottom:24px;text-align:left}.selected-description p{color:var(--text-primary);line-height:1.6;margin:0 0 12px}.tone-tags{display:flex;flex-wrap:wrap;gap:8px}.tone-tag{font-size:.8rem;color:var(--text-secondary);background:var(--bg-primary);padding:4px 12px;border-radius:16px;text-transform:capitalize}.start-options{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 32px;margin-bottom:24px}.checkbox-label{display:inline-flex;align-items:center;gap:8px;font-size:1rem;color:var(--text-secondary);cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.start-button{padding:16px 48px;font-size:1.25rem;font-weight:600;color:#fff;background:linear-gradient(135deg,var(--accent-blue),var(--accent-green));border:none;border-radius:12px;box-shadow:0 4px 16px var(--shadow);transition:all .3s ease;cursor:pointer}.start-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px var(--shadow)}.start-button:active:not(:disabled){transform:translateY(0)}.start-button:disabled{opacity:.5;cursor:not-allowed}.loading-spinner{color:var(--text-secondary);font-size:1.2rem}.previous-sessions-section{margin-top:32px;padding-top:24px;border-top:1px solid var(--border-color, rgba(255, 255, 255, .1))}.toggle-sessions-button{background:transparent;border:1px solid var(--accent-blue);color:var(--accent-blue);padding:10px 20px;border-radius:8px;cursor:pointer;font-size:.95rem;transition:all .2s ease}.toggle-sessions-button:hover{background:#2196f31a}.previous-sessions-list{margin-top:16px;display:flex;flex-direction:column;gap:12px}.session-card{display:flex;align-items:center;background:var(--bg-secondary);border-radius:10px;overflow:hidden;transition:all .2s ease}.session-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px var(--shadow)}.session-card-main{flex:1;display:flex;align-items:center;gap:14px;padding:14px 16px;cursor:pointer;text-align:left}.session-icon{font-size:1.8rem;flex-shrink:0}.session-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.session-title{font-size:1rem;font-weight:600;color:var(--text-primary)}.session-meta{font-size:.85rem;color:var(--text-secondary)}.session-preview{font-size:.85rem;color:var(--text-secondary);opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:400px}.session-delete-button{background:#f443361a;border:1px solid rgba(244,67,54,.3);border-radius:4px;color:#f44336;font-size:1rem;padding:6px 10px;cursor:pointer;opacity:.8;transition:all .2s ease;flex-shrink:0}.session-delete-button:hover{background:#f4433633;border-color:#f44336;opacity:1}@media (max-width: 600px){.start-content{padding:20px}.start-content h1{font-size:1.8rem}.template-grid{grid-template-columns:1fr}.template-card{padding:16px}.template-icon{font-size:2rem}}.login-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%);padding:20px}.login-content{text-align:center;padding:40px;max-width:400px;width:100%}.login-content h1{font-size:2.5rem;margin-bottom:8px;background:linear-gradient(135deg,var(--accent-blue),var(--accent-green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-content .subtitle{font-size:1rem;color:var(--text-secondary);margin-bottom:32px}.login-form{background:var(--bg-secondary);border-radius:12px;padding:24px;text-align:left}.login-form h2{font-size:1.25rem;color:var(--text-primary);margin:0 0 20px;text-align:center}.login-error{background:#f4433626;border:1px solid rgba(244,67,54,.4);color:#f44336;padding:10px 14px;border-radius:8px;margin-bottom:16px;font-size:.9rem}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:.9rem;color:var(--text-secondary);margin-bottom:6px}.form-group input{width:100%;padding:12px 14px;font-size:1rem;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;transition:border-color .2s ease;box-sizing:border-box}.form-group input:focus{outline:none;border-color:var(--accent-blue)}.form-group input:disabled{opacity:.6;cursor:not-allowed}.form-group .hint{display:block;font-size:.8rem;color:var(--text-secondary);opacity:.7;margin-top:4px}.login-button{width:100%;padding:14px;font-size:1.1rem;font-weight:600;color:#fff;background:linear-gradient(135deg,var(--accent-blue),var(--accent-green));border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;margin-top:8px}.login-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px var(--shadow)}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-switch{margin-top:20px;font-size:.9rem;color:var(--text-secondary)}.login-switch button{background:none;border:none;color:var(--accent-blue);font-size:.9rem;cursor:pointer;padding:0;text-decoration:underline}.login-switch button:hover{color:var(--accent-green)}.login-switch button:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 480px){.login-content{padding:20px}.login-content h1{font-size:2rem}.login-form{padding:20px}}.settings-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:300}.settings-modal{background-color:var(--bg-secondary);border:2px solid var(--border-color);border-radius:12px;width:90%;max-width:480px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 32px var(--shadow)}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:2px solid var(--border-color);background-color:var(--bg-tertiary);border-radius:10px 10px 0 0}.settings-header h2{font-size:1.5rem;color:var(--text-primary);margin:0}.settings-modal .close-button{background:none;border:none;color:var(--text-secondary);font-size:2rem;line-height:1;padding:0;width:32px;height:32px;cursor:pointer;transition:color .2s ease}.settings-modal .close-button:hover{color:var(--text-primary)}.settings-content{flex:1;overflow-y:auto;padding:24px}.settings-section{margin-bottom:28px}.settings-section:last-child{margin-bottom:0}.settings-section h3{font-size:1.125rem;color:var(--text-primary);margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.settings-controls{display:flex;flex-direction:column;gap:16px}.settings-controls .checkbox-label{display:flex;align-items:center;gap:12px;cursor:pointer;color:var(--text-primary);font-size:1rem}.settings-controls .checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--accent-blue)}.settings-controls .select-label,.settings-controls .input-label{display:flex;flex-direction:column;gap:6px;color:var(--text-secondary);font-size:.9rem}.settings-controls .select-label span,.settings-controls .input-label span{font-weight:500}.settings-controls select,.settings-controls input[type=text]{padding:10px 14px;background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:6px;font-size:.95rem;transition:border-color .2s ease}.settings-controls select:focus,.settings-controls input[type=text]:focus{outline:none;border-color:var(--accent-blue)}.settings-controls .help-text{font-size:.8rem;color:var(--text-secondary);font-style:italic;margin-top:2px}.settings-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:2px solid var(--border-color);background-color:var(--bg-tertiary);border-radius:0 0 10px 10px}.settings-footer button{padding:10px 24px;border-radius:6px;font-weight:600;font-size:.95rem;cursor:pointer;transition:background-color .2s ease,transform .1s ease}.settings-footer .cancel-button{background-color:transparent;color:var(--text-secondary);border:1px solid var(--border-color)}.settings-footer .cancel-button:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.settings-footer .save-button{background-color:var(--accent-blue);color:#fff;border:none}.settings-footer .save-button:hover{background-color:var(--accent-green)}.settings-footer .save-button:active,.settings-footer .cancel-button:active{transform:scale(.98)}.experimental-badge{display:inline-block;font-size:.65rem;padding:2px 6px;background-color:var(--accent-purple, #9c27b0);color:#fff;border-radius:4px;margin-left:8px;vertical-align:middle;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.adaptive-info{margin-top:12px;padding:12px;background-color:var(--bg-tertiary);border-radius:6px;border:1px solid var(--border-color)}.adaptive-info .info-label{font-size:.85rem;color:var(--text-secondary);font-weight:500}.adaptive-info .feature-list{margin:8px 0 0;padding-left:20px;font-size:.85rem;color:var(--text-primary)}.adaptive-info .feature-list li{margin-bottom:4px}.adaptive-info .feature-list li::marker{color:var(--accent-green, #4caf50)}.status-row{display:flex;align-items:center;gap:8px;font-size:.95rem}.status-label{color:var(--text-secondary);font-weight:500;min-width:60px}.status-value{color:var(--text-primary)}.status-value.running{color:var(--accent-green, #4caf50);font-weight:600}.status-value.stopped{color:var(--accent-red, #f44336);font-weight:600}.status-value.loading{color:var(--text-secondary);font-style:italic}.button-row{display:flex;gap:8px;margin-top:4px}.control-button{padding:8px 16px;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:background-color .2s ease,opacity .2s ease;border:none}.control-button:disabled{opacity:.5;cursor:not-allowed}.control-button.start{background-color:var(--accent-green, #4caf50);color:#fff}.control-button.start:hover:not(:disabled){background-color:#43a047}.control-button.stop{background-color:var(--accent-red, #f44336);color:#fff}.control-button.stop:hover:not(:disabled){background-color:#e53935}.control-button.refresh{background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.control-button.refresh:hover:not(:disabled){background-color:var(--border-color)}.loading-experience{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;padding:2rem;position:relative;overflow:hidden}.loading-experience.minimal{flex-direction:row;gap:1rem;min-height:auto;padding:1rem}.loading-content{display:flex;flex-direction:column;align-items:center;text-align:center;z-index:2}.loading-icon{position:relative;width:60px;height:60px;margin-bottom:1.5rem}.quill-icon{width:100%;height:100%;animation:quillWrite 2s ease-in-out infinite}.quill-body{fill:var(--accent-primary, #6366f1);opacity:.9}.quill-tip{fill:var(--accent-secondary, #818cf8);animation:tipGlow 1.5s ease-in-out infinite alternate}@keyframes quillWrite{0%,to{transform:translateY(0) rotate(-5deg)}25%{transform:translateY(-2px) rotate(-3deg)}50%{transform:translateY(0) rotate(-7deg)}75%{transform:translateY(-1px) rotate(-4deg)}}@keyframes tipGlow{0%{opacity:.6}to{opacity:1}}.ink-drops{position:absolute;bottom:0;left:50%;transform:translate(-50%)}.ink-drops span{position:absolute;width:4px;height:4px;background:var(--accent-primary, #6366f1);border-radius:50%;opacity:0;animation:inkDrop 2s ease-in infinite}.ink-drops span:nth-child(1){left:-8px;animation-delay:0s}.ink-drops span:nth-child(2){left:0;animation-delay:.3s}.ink-drops span:nth-child(3){left:8px;animation-delay:.6s}@keyframes inkDrop{0%{transform:translateY(0) scale(1);opacity:.8}50%{opacity:.4}to{transform:translateY(20px) scale(.5);opacity:0}}.loading-phase{font-size:1.1rem;font-weight:600;color:var(--text-primary, #e2e8f0);margin:0 0 .75rem;letter-spacing:.02em}.loading-statement{font-size:.95rem;color:var(--text-secondary, #94a3b8);font-style:italic;margin:0 0 1.5rem;min-height:1.5em;transition:opacity .3s ease;max-width:300px}.loading-statement.fade-out{opacity:0}.loading-statement.fade-in{opacity:1}.loading-progress-container{width:100%;max-width:280px}.loading-progress-bar{position:relative;height:6px;background:var(--bg-tertiary, #1e293b);border-radius:3px;overflow:hidden}.loading-progress-fill{position:absolute;top:0;left:0;height:100%;background:linear-gradient(90deg,var(--accent-primary, #6366f1),var(--accent-secondary, #818cf8));border-radius:3px;transition:width .3s ease-out}.loading-progress-shimmer{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.1) 50%,transparent 100%);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.loading-progress-info{display:flex;justify-content:space-between;margin-top:.5rem;font-size:.75rem}.progress-time{color:var(--text-primary, #e2e8f0);font-weight:500}.progress-estimate{color:var(--text-tertiary, #64748b)}.loading-particles{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.loading-particles span{position:absolute;width:3px;height:3px;background:var(--accent-primary, #6366f1);border-radius:50%;opacity:0;animation:particleFloat 4s ease-in-out infinite}.loading-particles span:nth-child(1){left:10%;animation-delay:0s}.loading-particles span:nth-child(2){left:25%;animation-delay:.7s}.loading-particles span:nth-child(3){left:40%;animation-delay:1.4s}.loading-particles span:nth-child(4){left:60%;animation-delay:2.1s}.loading-particles span:nth-child(5){left:75%;animation-delay:2.8s}.loading-particles span:nth-child(6){left:90%;animation-delay:3.5s}@keyframes particleFloat{0%{bottom:-10px;opacity:0;transform:translate(0) scale(1)}20%{opacity:.6}80%{opacity:.3}to{bottom:100%;opacity:0;transform:translate(20px) scale(.5)}}.loading-dots{display:flex;gap:4px}.loading-dots span{width:6px;height:6px;background:var(--accent-primary, #6366f1);border-radius:50%;animation:dotPulse 1.4s ease-in-out infinite}.loading-dots span:nth-child(1){animation-delay:0s}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes dotPulse{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1.2);opacity:1}}.loading-experience[data-genre=romantasy]{--accent-primary: #ec4899;--accent-secondary: #f472b6}.loading-experience[data-genre=mystery]{--accent-primary: #8b5cf6;--accent-secondary: #a78bfa}.loading-experience[data-genre=thriller]{--accent-primary: #ef4444;--accent-secondary: #f87171}@media (prefers-color-scheme: dark){.loading-progress-bar{background:#ffffff1a}}@media (max-width: 480px){.loading-experience{padding:1.5rem;min-height:180px}.loading-icon{width:48px;height:48px;margin-bottom:1rem}.loading-phase{font-size:1rem}.loading-statement{font-size:.9rem}.loading-progress-container{max-width:240px}}.story-viewer{display:flex;min-height:100vh;position:relative}.story-main{flex:1;display:flex;flex-direction:column;max-width:1200px;margin:0 auto;padding:20px;gap:20px}.debug-toggle{position:fixed;bottom:20px;right:20px;padding:12px 20px;background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:8px;font-size:14px;font-weight:500;box-shadow:0 2px 8px var(--shadow);transition:all .2s ease;z-index:100}.debug-toggle:hover{background-color:var(--bg-tertiary);transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow)}.error-notification{position:fixed;top:20px;right:20px;max-width:400px;padding:16px;background-color:var(--accent-red);color:#fff;border-radius:8px;box-shadow:0 4px 12px var(--shadow);z-index:1000}.error-notification strong{display:block;margin-bottom:4px}.story-viewer.loading-session{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%)}.loading-container{text-align:center;padding:40px}.loading-container h2{margin:20px 0 8px;font-size:1.5rem;color:var(--text-primary)}.loading-container p{color:var(--text-secondary);font-size:1rem}.loading-message{color:var(--text-secondary);font-size:1.2rem}.loading-spinner-large{width:60px;height:60px;margin:0 auto;border:4px solid var(--border-color);border-top-color:var(--accent-blue);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.story-header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:rgba(var(--bg-secondary-rgb, 30, 30, 30),.9)}.story-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:70%}.new-story-button{padding:8px 16px;background-color:transparent;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.new-story-button:hover{background-color:var(--bg-tertiary);color:var(--text-primary);border-color:var(--text-secondary)}.header-buttons{display:flex;align-items:center;gap:8px}.settings-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background-color:transparent;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;transition:all .2s ease}.settings-button:hover{background-color:var(--bg-tertiary);color:var(--text-primary);border-color:var(--text-secondary)}.settings-button svg{transition:transform .3s ease}.settings-button:hover svg{transform:rotate(45deg)}.story-viewer:not(.loading-session){flex-direction:column}.story-viewer:not(.loading-session) .story-main{padding-top:10px}@media (min-width: 1024px){.story-viewer.debug-open .story-main{margin-right:520px;margin-left:20px;max-width:none;transition:margin .3s ease}.story-viewer.debug-open .story-header{margin-right:500px;transition:margin .3s ease}}@media (min-width: 768px) and (max-width: 1023px){.story-viewer.debug-open .story-main{margin-right:360px;margin-left:10px;max-width:none}.story-viewer.debug-open .story-header{margin-right:350px}}@media (max-width: 767px){.story-viewer.debug-open .story-main,.story-viewer.debug-open .story-header{opacity:.3;pointer-events:none}}.app{min-height:100vh;display:flex;flex-direction:column}*{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #1a1a1a;--bg-secondary: #2d2d2d;--bg-tertiary: #3d3d3d;--text-primary: #e0e0e0;--text-secondary: #b0b0b0;--accent-blue: #4a9eff;--accent-green: #4ade80;--accent-red: #ef4444;--accent-yellow: #fbbf24;--border-color: #4a4a4a;--shadow: rgba(0, 0, 0, .5)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6}#root{min-height:100vh}button{cursor:pointer;font-family:inherit}button:disabled{cursor:not-allowed;opacity:.5}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-spinner{display:inline-block;margin-left:8px;animation:pulse 1s ease-in-out infinite}
