:root{--text:#4a3f3a;--text-h:#221a15;--bg:#fdf6ee;--surface:#fff;--border:#ecdfd2;--accent:#ff8a4c;--accent-2:#ffb673;--accent-text:#fff;--danger:#e0555a;--glow:255, 138, 76;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font:16px/1.5 system-ui,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#ded4c9;--text-h:#f7f0e6;--bg:#1a1512;--surface:#241d18;--border:#3a2f28;--accent:#ff9a5c;--accent-2:#ffb673;--accent-text:#221a15;--glow:255, 154, 92}}*{box-sizing:border-box}body{margin:0}#root{flex-direction:column;max-width:480px;min-height:100svh;margin:0 auto;display:flex}h1{color:var(--text-h);margin:0 0 4px;font-size:22px}.page{flex-direction:column;flex:1;gap:16px;padding:20px 16px 32px;display:flex}.hint{color:var(--text);opacity:.7;font-size:14px}.error{color:var(--danger);font-size:14px}.photo-picker{border:1px dashed var(--border);background:var(--surface);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;height:220px;display:flex;overflow:hidden}.photo-preview{object-fit:cover;width:100%;height:100%}.form{flex-direction:column;gap:14px;display:flex}label{color:var(--text-h);flex-direction:column;gap:6px;font-size:14px;display:flex}input,textarea,select{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text-h);border-radius:8px;padding:10px 12px}button{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text-h);cursor:pointer;border-radius:8px;padding:10px 14px}button.primary{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:var(--accent-text);border:none;border-radius:999px;padding:14px;font-weight:600}button.primary:disabled{opacity:.6;cursor:default}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:14px;box-shadow:0 2px 10px #0000000f}.topbar{border-bottom:1px solid var(--border);background:var(--bg);z-index:10;justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;display:flex;position:sticky;top:0}.topbar-back,.topbar-home{color:var(--text-h);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:20px;line-height:1;text-decoration:none}.topbar-lang{border:1px solid var(--border);background:var(--surface);color:var(--text-h);cursor:pointer;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.topbar-title{text-align:center;color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:15px;font-weight:600;overflow:hidden}.action-bar-editor{flex-direction:column;gap:8px;font-size:14px;display:flex}.action-row{gap:8px;display:flex}.action-row input{flex:1}.chat-page{justify-content:space-between}.start-overlay{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.character-photo{object-fit:cover;border:1px solid var(--border);border-radius:50%;width:140px;height:140px}.chat-header{align-items:center;gap:10px;display:flex}.avatar{object-fit:cover;border-radius:50%;width:40px;height:40px}.messages{flex-direction:column;flex:1;gap:10px;padding:8px 0;display:flex;overflow-y:auto}.bubble{border-radius:14px;max-width:80%;padding:10px 14px;font-size:15px;line-height:1.4}.bubble.user{background:var(--accent);color:var(--accent-text);align-self:flex-end}.bubble.assistant{background:var(--surface);border:1px solid var(--border);color:var(--text-h);align-self:flex-start}.bubble.pending{opacity:.6}.action-bar{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.action-bar button{white-space:nowrap;border-radius:999px}.mic-button{background:linear-gradient(135deg, var(--accent), var(--accent-2));width:100%;color:var(--accent-text);-webkit-user-select:none;user-select:none;touch-action:none;box-shadow:0 0 0 0 rgba(var(--glow), .5);border:none;border-radius:999px;padding:18px;font-size:16px;font-weight:600;animation:2.4s ease-in-out infinite mic-breathe}.mic-button.recording{background:var(--danger);animation:1.1s ease-in-out infinite mic-pulse}.mic-button:disabled{opacity:.5;animation:none}@keyframes mic-breathe{0%,to{box-shadow:0 0 0 0 rgba(var(--glow), .35)}50%{box-shadow:0 0 0 14px rgba(var(--glow), 0)}}@keyframes mic-pulse{0%,to{box-shadow:0 0 0 0 rgba(var(--glow), .5)}50%{box-shadow:0 0 0 10px rgba(var(--glow), 0)}}.character-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.character-card{text-align:center;color:inherit;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;text-decoration:none;display:flex}.character-card img,.character-card .placeholder-avatar{object-fit:cover;border:1px solid var(--border);background:var(--bg);border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;font-size:24px;display:flex}.character-card span{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13px;overflow:hidden}.empty-state{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:48px 16px;display:flex}.link-card{color:inherit;justify-content:space-between;align-items:center;gap:10px;text-decoration:none;display:flex}.link-card .chev{opacity:.4}.record-circle{background:linear-gradient(135deg, var(--accent), var(--accent-2));width:160px;height:160px;color:var(--accent-text);border:none;border-radius:50%;justify-content:center;align-items:center;margin:24px auto;font-size:18px;font-weight:600;display:flex}.record-circle.recording{background:var(--danger);animation:1.1s ease-in-out infinite mic-pulse}.story-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.story-card{text-align:left;flex-direction:column;gap:8px;display:flex;overflow:hidden}.story-cover{aspect-ratio:3/4;object-fit:cover;background:var(--bg);border-radius:10px;width:100%}.page-review-card{flex-direction:column;gap:8px;display:flex}.page-review-card img{object-fit:cover;border-radius:10px;width:100%;max-height:160px}.slot-row{gap:8px;display:flex}.slot-row button{border-radius:10px;flex:1;font-size:13px}.slot-row button.active{background:var(--accent);color:var(--accent-text);border-color:#0000}
