:root{color:#2c2a26;background:#f3eee5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--paper: #f3eee5;--ink: #2c2a26;--muted: #898277;--line: #d9d1c3;--accent: #b45d3e;--accent-soft: #ead7ca;--serif: Georgia, "Songti SC", "STSong", serif}*{box-sizing:border-box}html{scrollbar-color:var(--accent) var(--paper);scrollbar-width:thin}*::-webkit-scrollbar{height:8px;width:8px}*::-webkit-scrollbar-track{background:var(--paper)}*::-webkit-scrollbar-thumb{background:var(--accent);border:2px solid var(--paper);border-radius:999px}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.app-layout{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100vh}.project-rail{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:100vh;padding:30px 22px 22px;background:#fffcf659}.rail-header{display:block}.brand-mark{align-items:center;background:transparent;color:var(--ink);display:flex;gap:10px;margin:0 0 46px;padding:0;text-align:left;width:max-content}.brand-mark span{align-items:center;background:var(--ink);border-radius:50%;color:var(--paper);display:inline-flex;font-size:10px;font-weight:700;height:29px;justify-content:center;letter-spacing:-.08em;width:29px}.brand-mark strong{font-family:var(--serif);font-size:18px;font-weight:500;letter-spacing:-.04em}.new-story{background:var(--ink);border-radius:3px;color:#fffaf2;font-size:13px;margin-bottom:40px;padding:12px 14px;text-align:left;transition:transform .2s,background .2s}.new-story:hover{background:var(--accent);transform:translateY(-2px)}.rail-label,.section-kicker{color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.rail-label{border-bottom:1px solid var(--line);color:var(--muted);padding-bottom:11px}.empty-rail{color:var(--muted);font-family:var(--serif);font-size:13px;line-height:1.65}.project-link{background:transparent;border-bottom:1px solid rgba(217,209,195,.55);color:var(--ink);display:block;padding:14px 7px 12px;text-align:left;width:100%}.project-link span{display:block;font-family:var(--serif);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-link small{color:var(--muted);display:block;font-size:11px;margin-top:4px}.project-link:hover,.project-link.active{color:var(--accent)}.project-link.active{border-left:2px solid var(--accent);padding-left:12px}.rail-footer{color:var(--muted);font-size:10px;letter-spacing:.08em;margin-top:14px}.rail-drawer{display:flex;flex:1;flex-direction:column;min-height:0}.rail-account{border-top:1px solid var(--line);margin-top:auto;padding-top:17px}.rail-account-kicker{color:var(--muted);display:block;font-size:10px;letter-spacing:.16em}.rail-account-button{align-items:flex-start;background:transparent;color:var(--ink);display:flex;flex-direction:column;gap:4px;padding:10px 0 0;text-align:left;width:100%}.rail-account-button:hover:not(:disabled){color:var(--accent)}.rail-account-button strong{font-family:var(--serif);font-size:14px;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.rail-account-button small{color:var(--muted);font-size:11px;line-height:1.45}.rail-account-button:disabled{color:var(--muted);opacity:.65}.mobile-rail-scrim{background:#2c2a2657;cursor:pointer;inset:0;position:fixed;z-index:40}.mobile-stories-toggle{display:none}.main-stage{min-width:0;padding:26px clamp(22px,4vw,74px) 70px}.topline{color:var(--muted);display:flex;font-size:11px;letter-spacing:.1em;margin-bottom:52px;text-transform:uppercase}.topline-right{align-items:center;display:inline-flex;gap:16px}.account-button{background:transparent;border-bottom:1px solid rgba(180,93,62,.55);color:var(--accent);font-size:10px;letter-spacing:.02em;padding:2px 0 4px;text-transform:none}.account-button:disabled{border-bottom-color:transparent;color:var(--muted);cursor:not-allowed;opacity:.65}.status-message{background:#f0d9d1;color:#843c2b;font-size:13px;margin:0 0 20px;padding:12px 14px}.sync-strip{align-items:center;color:var(--accent);display:flex;font-size:11px;gap:8px;margin:-30px 0 24px}.sync-spinner{animation:spin .8s linear infinite;border:1.5px solid var(--accent-soft);border-radius:50%;border-top-color:var(--accent);display:inline-block;height:12px;width:12px}.loading-screen{align-items:center;background:var(--paper);color:var(--muted);display:flex;font-family:var(--serif);height:100vh;justify-content:center}.story-form{animation:rise .5s ease both;max-width:920px;padding:2vh 0}.form-intro{margin-bottom:46px}.form-intro h2{font-family:var(--serif);font-size:clamp(3rem,7vw,6.8rem);font-weight:400;letter-spacing:-.09em;line-height:.9;margin:20px 0 26px}.form-intro h2 em{color:var(--accent);font-style:normal}.form-intro p{color:var(--muted);font-size:14px;line-height:1.8;margin:0;max-width:330px}.story-form label{color:var(--muted);display:block;font-size:12px;letter-spacing:.04em;margin-bottom:24px}.story-form input,.story-form select,.story-form textarea{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;color:var(--ink);display:block;font-size:16px;margin-top:9px;outline:0;padding:10px 0;transition:border-color .2s;width:100%}.story-form textarea{min-height:108px;resize:vertical}.story-form input:focus,.story-form select:focus,.story-form textarea:focus{border-color:var(--accent)}.story-form input::placeholder,.story-form textarea::placeholder{color:#b5ada1}.form-row{display:grid;gap:34px;grid-template-columns:1fr 1fr}.form-footer{align-items:center;display:flex;gap:20px;justify-content:space-between;margin-top:22px;padding-top:0}.form-footer span{color:var(--muted);font-size:12px;line-height:1.5;max-width:240px}.form-footer button,.header-actions button:not(.quiet-button){background:var(--ink);color:#fffaf2;padding:13px 18px;transition:background .2s,transform .2s}.form-footer button:hover,.header-actions button:not(.quiet-button):hover{background:var(--accent);transform:translateY(-2px)}.workspace{animation:rise .45s ease both;max-width:1280px;width:100%}.workspace-header{align-items:center;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;min-height:53px;padding-bottom:18px}.workspace-header .muted{color:var(--muted);font-size:12px;margin:9px 0 0}.outline-meta{min-width:0}.outline-status{align-items:center;display:flex;flex-wrap:wrap;gap:10px 14px;justify-content:space-between}.outline-status .muted{white-space:normal}.outline-meta-actions{align-items:center;display:flex;flex-shrink:0;gap:10px}.story-edit-link{background:transparent;color:var(--accent);font-size:11px;padding:0;white-space:nowrap}.story-edit-link:hover{text-decoration:underline;text-underline-offset:3px}.story-delete-link{background:transparent;color:var(--muted);font-size:11px;padding:0;white-space:nowrap}.story-delete-link:hover{color:#8d2f22;text-decoration:underline;text-underline-offset:3px}.header-actions{align-items:center;display:flex;flex-shrink:0;gap:12px}.header-actions button,.back-button{background:transparent;color:var(--ink);font-size:12px;padding:8px 0}.header-actions .quiet-button{color:var(--accent)}.outline-heading{margin:70px 0 50px;max-width:760px}.outline-heading h1{font-family:var(--serif);font-size:clamp(2.7rem,6vw,6rem);font-weight:400;letter-spacing:-.08em;line-height:.92;margin:0 0 24px}.outline-heading p{color:var(--muted);font-family:var(--serif);font-size:16px;line-height:1.8;margin:0;max-width:640px}.outline-grid{border-top:1px solid var(--line);display:grid;gap:8vw;grid-template-columns:minmax(170px,.65fr) minmax(0,1.4fr);padding-top:22px}.character-column-heading{align-items:center;display:flex;gap:14px;justify-content:space-between}.character-column-heading button,.role-config-button{background:transparent;color:var(--accent);font-size:10px;padding:3px 0;white-space:nowrap}.character-column-heading button:hover,.role-config-button:hover{text-decoration:underline;text-underline-offset:3px}.character-column-heading button:disabled{color:var(--muted);cursor:not-allowed;text-decoration:none}.character-line{border-bottom:1px solid var(--line);margin-top:22px;padding-bottom:20px}.character-line-heading{align-items:center;display:flex;gap:10px;justify-content:space-between}.character-line-heading>div{align-items:center;display:flex;gap:9px;min-width:0}.character-reference-thumb{background:#272b34;border-radius:50%;flex:0 0 auto;height:32px;object-fit:cover;width:32px}.character-reference-empty,.narrator-avatar{align-items:center;color:#fffaf2cc!important;display:inline-flex;font-family:var(--serif);font-size:14px!important;justify-content:center}.narrator-avatar{background:var(--accent);border-radius:50%;flex:0 0 auto;height:32px;width:32px}.narrator-line{background:#efdcd338;margin-left:-9px;margin-right:-9px;padding:14px 9px 20px}.character-line strong{display:block;font-family:var(--serif);font-size:22px;font-weight:400}.character-line span{color:var(--accent);font-size:10px}.character-line p{color:var(--muted);font-size:12px;line-height:1.65;margin:12px 0 0}.character-reference-button,.clear-reference-button{background:transparent;color:var(--accent);font-size:10px;padding:3px 0;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}.scene-list{margin-top:10px}.scene-row{align-items:center;border-bottom:1px solid var(--line);display:grid;gap:20px;grid-template-columns:42px minmax(0,1fr) auto 28px;padding:22px 0;position:relative;transition:padding .25s,color .25s}.scene-row:hover{color:var(--accent);padding-left:10px}.scene-open{background:transparent;border-radius:0;cursor:pointer;inset:0;padding:0;position:absolute;z-index:1}.scene-open:focus-visible{outline:1px solid var(--accent);outline-offset:3px}.scene-row>:not(.scene-open){pointer-events:none;position:relative;z-index:2}.scene-row>.scene-row-actions{align-items:flex-end;display:flex;gap:10px;pointer-events:auto}.scene-number{color:var(--accent);font-family:var(--serif);font-size:17px}.scene-row h3{font-family:var(--serif);font-size:20px;font-weight:400;margin:0 0 8px}.scene-row p{color:var(--muted);font-size:12px;line-height:1.6;margin:0}.scene-arrow{color:var(--muted);font-size:18px;text-align:right}.scene-row>.scene-delete{pointer-events:auto}.scene-delete{background:transparent;color:#a06b5b;font-size:10px;opacity:.7;padding:5px 0;white-space:nowrap}.scene-delete:hover{color:#8d2f22;opacity:1;text-decoration:underline;text-underline-offset:3px}.scene-rewrite{background:transparent;color:var(--accent);font-size:10px;padding:5px 0;white-space:nowrap}.scene-rewrite:hover{text-decoration:underline;text-underline-offset:3px}.job-strip{align-items:center;border-bottom:1px solid var(--line);color:var(--muted);display:flex;font-size:11px;gap:9px;padding:13px 0}.job-dot{background:var(--muted);border-radius:50%;height:6px;width:6px}.job-dot.running{animation:pulse 1s infinite;background:var(--accent)}.job-dot.succeeded{background:#5f856d}.progress{background:var(--line);height:2px;margin-left:auto;overflow:hidden;width:130px}.progress i{background:var(--accent);display:block;height:100%;transition:width .3s}.reader-view{max-width:1280px;width:100%}.reader-count{color:var(--muted);font-family:var(--serif);font-size:13px}.reader-controls{align-items:center;display:flex;gap:15px}.reader-controls select{background:transparent;border:1px solid var(--line);color:var(--muted);font-size:11px;outline:0;padding:7px 9px}.reader-controls select:focus{border-color:var(--accent)}.danger-link{background:transparent;color:#9a4939;font-size:10px;padding:7px 0}.header-actions button.danger-link{background:transparent;color:#9a4939;padding:8px 0}.danger-link:hover{color:#7f251a;text-decoration:underline;text-underline-offset:3px}.reader-empty{color:var(--muted);font-family:var(--serif);padding-top:80px}.reader-empty button{background:transparent;color:var(--accent);margin-top:15px;padding:0}.reader-layout{display:grid;gap:clamp(40px,8vw,120px);grid-template-columns:minmax(0,.95fr) minmax(240px,.8fr);padding-top:70px}.reader-text{max-width:580px}.reader-scene-heading{align-items:flex-start;display:flex;gap:18px;justify-content:space-between}.reader-text h1{font-family:var(--serif);font-size:clamp(2.8rem,5vw,5.5rem);font-weight:400;letter-spacing:-.08em;line-height:.94;margin:20px 0}.scene-rewrite-button{background:transparent;color:var(--accent);font-size:11px;margin-top:28px;padding:5px 0;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}.scene-summary{color:var(--accent);font-family:var(--serif);font-size:17px;line-height:1.7;margin:0 0 46px}.body-copy{font-family:var(--serif);font-size:17px;line-height:2.1}.body-copy p{margin:0 0 24px}.reader-nav{border-top:1px solid var(--line);display:flex;gap:25px;margin-top:52px;padding-top:17px}.reader-nav button{background:transparent;color:var(--ink);font-size:12px;padding:0}.reader-nav .continue-reading{color:var(--accent)}.scene-audio-panel{border-top:1px solid var(--line);margin-top:38px;padding-top:19px}.scene-audio-heading{align-items:baseline;display:flex;gap:15px;justify-content:space-between}.scene-audio-heading h2{font-family:var(--serif);font-size:24px;font-weight:400;letter-spacing:-.04em;margin:8px 0 0}.scene-audio-status{color:var(--muted);font-size:10px}.scene-audio-description{color:var(--muted);font-size:11px;line-height:1.6;margin:10px 0 15px}.scene-audio-progress{align-items:center;color:var(--accent);display:flex;font-size:11px;gap:8px;margin:12px 0}.scene-audio-error{background:#f0d9d1;border-left:2px solid #9a4939;color:#713628;font-size:11px;line-height:1.55;margin:12px 0;padding:10px 12px}.scene-audio-error p{margin:4px 0}.scene-audio-error small{color:#843c2b;display:block}.scene-audio-warning{background:#efdcd38c;border-left:2px solid var(--accent);color:#84412f;font-size:10px;line-height:1.55;margin:12px 0;padding:9px 11px}.scene-audio-warning strong{font-weight:600}.scene-audio-warning p{margin:4px 0 0}.scene-audio-player{background:#fffcf66b;border:1px solid var(--line);margin:14px 0;padding:10px 12px}.scene-audio-player audio{display:block;width:100%}.scene-audio-player-meta{align-items:center;color:var(--muted);display:flex;font-size:10px;justify-content:space-between;margin-top:8px}.scene-audio-player-meta select{background:transparent;border:1px solid var(--line);color:var(--ink);font-size:10px;margin-left:5px;padding:3px 5px}.scene-audio-voices{color:var(--muted);font-size:10px;margin:13px 0}.scene-audio-voices summary{cursor:pointer;color:var(--accent)}.scene-audio-voice-grid{display:flex;flex-wrap:wrap;gap:9px;margin-top:10px}.scene-audio-voice-grid label{align-items:center;display:flex;gap:5px}.scene-audio-voice-grid select{background:transparent;border:1px solid var(--line);color:var(--ink);font-size:10px;padding:4px 5px}.scene-audio-generate{background:transparent;border:1px solid var(--line);color:var(--accent);font-size:11px;padding:8px 11px}.scene-audio-generate:hover{background:var(--accent-soft);border-color:var(--accent)}.continuation-hint{color:var(--muted);font-size:11px;line-height:1.6;margin:17px 0 0}.custom-continuation-link{background:transparent;color:var(--accent);font-size:11px;margin-left:14px;padding:0;text-decoration:underline;text-underline-offset:3px}.modal-backdrop{align-items:center;background:#2c2a267a;display:flex;inset:0;justify-content:center;overflow-y:auto;overscroll-behavior:contain;padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));position:fixed;z-index:100}.continuation-modal{animation:rise .25s ease both;background:var(--paper);box-shadow:0 24px 80px #2c2a2633;margin:auto 0;max-height:min(760px,calc(100dvh - max(40px,env(safe-area-inset-top) + env(safe-area-inset-bottom))));max-width:620px;overflow:auto;padding:clamp(25px,5vw,48px);width:100%}.auth-modal-backdrop{z-index:180}.auth-modal{max-width:510px}.profile-modal{max-width:560px}.profile-phone{align-items:baseline;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;margin:0 0 2px;padding:0 0 14px}.profile-phone span{color:var(--muted);font-size:12px}.profile-phone strong{color:var(--ink);font-family:var(--serif);font-size:16px;font-weight:400}.profile-logout-confirm{align-items:center;background:#efdcd37a;color:#843c2b;display:flex;flex-wrap:wrap;font-size:11px;gap:10px;justify-content:flex-end;margin-top:14px;padding:10px 12px}.profile-logout-confirm span{margin-right:auto}.profile-logout-confirm button{background:transparent;color:#843c2b;font-size:11px;padding:2px 0;text-decoration:underline;text-underline-offset:3px}.profile-logout-confirm button:last-child{color:#7f251a;font-weight:600}.auth-form{margin-top:26px}.auth-code-row{align-items:end;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto;margin-top:18px}.auth-code-row .modal-input-label{margin-top:0}.auth-send-button{background:transparent;border:1px solid var(--line);color:var(--ink);font-size:11px;min-height:42px;padding:0 12px;white-space:nowrap}.auth-send-button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.auth-send-button:disabled{color:var(--muted);cursor:not-allowed;opacity:.62}.auth-hint{color:var(--muted);font-size:10px;line-height:1.5;margin:10px 0 0}.auth-error{background:#f0d9d1;border-left:2px solid #9a4939;color:#843c2b;font-size:11px;line-height:1.5;margin:15px 0 -5px;padding:10px 12px}.reference-picker-backdrop{z-index:140}.project-editor-backdrop{z-index:110}.scene-history-backdrop{z-index:130}.modal-heading{align-items:flex-start;display:flex;justify-content:space-between}.modal-heading h2{font-family:var(--serif);font-size:clamp(2rem,5vw,3.7rem);font-weight:400;letter-spacing:-.08em;line-height:.95;margin:18px 0 0}.modal-heading em{color:var(--accent);font-style:normal}.modal-close{background:transparent;color:var(--muted);font-size:28px;line-height:1;padding:0}.modal-description{color:var(--muted);font-size:12px;line-height:1.7;margin:25px 0;max-width:440px}.direction-options{display:grid;gap:7px}.direction-options label{border:1px solid var(--line);color:var(--ink);cursor:pointer;font-size:12px;line-height:1.45;padding:12px 14px;transition:border-color .2s,background .2s,color .2s}.direction-options label:hover,.direction-options label.selected{background:var(--accent-soft);border-color:var(--accent);color:#7f3d2b}.direction-options input{accent-color:var(--accent);margin:0 9px 0 0;vertical-align:-1px}.modal-input-label{color:var(--muted);display:block;font-size:11px;margin-top:25px}.modal-input-label span{color:#b5ada1;margin-left:5px}.modal-input-label input{background:transparent;border:1px solid var(--line);color:var(--ink);display:block;font-size:15px;line-height:1.4;margin-top:9px;min-height:42px;outline:0;padding:10px 12px;width:100%}.modal-input-label input:focus{border-color:var(--accent)}.modal-input-label input::placeholder{color:#b5ada1}.modal-input-label textarea{background:transparent;border:1px solid var(--line);color:var(--ink);display:block;font-size:13px;line-height:1.7;margin-top:9px;min-height:94px;outline:0;padding:12px;resize:vertical;width:100%}.modal-input-label textarea:focus{border-color:var(--accent)}.modal-input-label textarea::placeholder{color:#b5ada1}.reference-image-section{margin-top:25px}.reference-image-section>.modal-input-label{margin-top:0}.reference-image-upload{align-items:center;border:1px dashed var(--line);color:var(--muted);cursor:pointer;display:flex;flex-direction:column;gap:5px;margin-top:9px;padding:20px 14px;text-align:center;transition:background .2s,border-color .2s,color .2s}.reference-image-upload:hover{background:#ead7ca59;border-color:var(--accent);color:var(--accent)}.reference-image-upload input{display:none}.reference-image-upload span{color:var(--accent);font-size:24px;line-height:1}.reference-image-upload strong{font-size:12px;font-weight:500}.reference-image-upload small,.reference-image-hint{color:var(--muted);font-size:10px;line-height:1.5}.reference-image-preview{align-items:center;border:1px solid var(--line);display:flex;gap:12px;margin-top:9px;padding:8px}.reference-image-preview img{background:#272b34;height:72px;object-fit:cover;width:54px}.reference-image-preview div{display:flex;flex:1;flex-direction:column;gap:8px;min-width:0}.reference-image-preview strong{font-size:11px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reference-image-preview button{align-self:flex-start;background:transparent;color:var(--accent);font-size:10px;padding:0;text-decoration:underline;text-underline-offset:3px}.reference-image-error{color:#8d2f22;font-size:10px;line-height:1.5;margin:8px 0 0}.image-generation-error{background:#f0d9d1;border-left:2px solid #9a4939;color:#713628;margin:18px 0 20px;padding:13px 14px}.image-generation-error-heading{align-items:baseline;display:flex;gap:10px;justify-content:space-between}.image-generation-error-heading strong{font-size:12px;font-weight:600}.image-generation-error-heading span{color:#9a4939;font-size:9px;letter-spacing:.08em}.image-generation-error p{font-size:11px;line-height:1.6;margin:7px 0 0}.image-generation-error b{font-weight:600}.image-generation-error code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;margin-top:9px;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.reference-image-hint{margin:8px 0 0}.reference-asset-grid{display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:9px}.reference-assets-empty{border:1px dashed var(--line);color:var(--muted);font-size:11px;margin:9px 0 0;padding:17px 12px;text-align:center}.reference-asset-card{background:#fffcf666;border:1px solid var(--line);color:var(--muted);min-width:0;padding:5px;position:relative;text-align:left}.reference-asset-card:hover,.reference-asset-card.selected{border-color:var(--accent);color:var(--accent)}.reference-asset-card.selected{background:var(--accent-soft)}.reference-asset-card img{background:#272b34;display:block;height:94px;object-fit:cover;width:100%}.reference-asset-card span{display:block;font-size:10px;overflow:hidden;padding:6px 2px 2px;text-overflow:ellipsis;white-space:nowrap}.reference-asset-card i{align-items:center;background:var(--accent);border-radius:50%;color:#fffaf2;display:flex;font-size:10px;font-style:normal;height:18px;justify-content:center;position:absolute;right:8px;top:8px;width:18px}.compact-upload{margin-top:10px;padding:13px 10px}.reference-picker-modal{max-width:700px}.project-details-modal,.narrator-config-modal{max-width:650px}.character-config-modal{max-width:860px}.character-config-grid{display:grid;gap:25px;grid-template-columns:148px minmax(0,1fr)}.character-config-media{align-content:start;display:grid;gap:9px}.character-config-media img,.character-config-media>span{aspect-ratio:3 / 4;background:#272b34;color:#fffaf2ad;display:grid;font-size:11px;object-fit:cover;place-items:center;text-align:center;width:100%}.character-config-media button{background:transparent;color:var(--accent);font-size:10px;justify-self:start;padding:2px 0;text-decoration:underline;text-underline-offset:3px}.character-config-fields{display:grid;gap:0 16px;grid-template-columns:1fr 1fr;min-width:0}.character-config-fields .modal-input-label{margin-top:0}.character-config-description,.character-config-voice{grid-column:1 / -1}.character-config-description{margin-top:18px!important}.configured-voice-row{align-items:center;border:1px solid var(--line);display:flex;gap:18px;justify-content:space-between;margin-top:8px;padding:14px 15px}.configured-voice-row>div:first-child{display:grid;gap:4px;min-width:0}.configured-voice-row>div:first-child span{color:var(--muted);font-size:10px}.configured-voice-row>div:first-child strong{font-family:var(--serif);font-size:19px;font-weight:400}.configured-voice-row>div:first-child small{color:var(--muted);font-size:10px;line-height:1.5}.configured-voice-row>div:last-child{align-items:center;display:flex;flex:0 0 auto;gap:8px}.character-config-voice{margin-top:18px}.voice-select-open{background:var(--accent);color:#fffaf2;font-size:10px;padding:7px 10px}.character-config-actions{align-items:center;justify-content:space-between}.character-config-actions>div{align-items:center;display:flex;gap:10px}.character-config-delete{background:transparent;color:#9a4939;font-size:11px!important;padding-left:0!important}.character-delete-confirm{align-items:center;background:#efdcd38c;color:#843c2b;display:flex;flex-wrap:wrap;font-size:11px;gap:10px;margin-top:16px;padding:11px 13px}.character-delete-confirm span{margin-right:auto}.character-delete-confirm button{background:transparent;color:#843c2b;font-size:10px;padding:2px 0;text-decoration:underline;text-underline-offset:3px}.character-delete-confirm button:last-child{color:#7f251a;font-weight:600}.project-editor-modal{max-width:760px}.project-editor-modal .modal-input-label input,.project-editor-modal .modal-input-label textarea{background:transparent;border:1px solid var(--line);color:var(--ink);display:block;font-size:13px;line-height:1.6;margin-top:9px;outline:0;padding:11px 12px;width:100%}.project-editor-modal .modal-input-label input:focus,.project-editor-modal .modal-input-label textarea:focus{border-color:var(--accent)}.project-editor-modal .modal-input-label textarea{min-height:98px;resize:vertical}.project-editor-cast{border-top:1px solid var(--line);margin-top:28px;padding-top:19px}.project-editor-cast-heading{align-items:center;display:flex;justify-content:space-between}.project-editor-cast-heading .modal-input-label{margin:0}.character-add-button{background:transparent;color:var(--accent);font-size:10px;padding:3px 0}.character-add-button:hover{text-decoration:underline;text-underline-offset:3px}.project-editor-character{border-bottom:1px solid var(--line);padding:18px 0 20px;position:relative}.project-editor-character-heading{align-items:center;display:flex;gap:14px;justify-content:space-between}.project-editor-character-heading strong{font-family:var(--serif);font-size:18px;font-weight:400}.character-remove-button{background:transparent;color:#9a4939;font-size:10px;padding:3px 0}.character-remove-button:hover{text-decoration:underline;text-underline-offset:3px}.project-editor-character-body{display:grid;gap:18px;grid-template-columns:104px minmax(0,1fr);margin-top:14px}.project-editor-character-media{align-content:start;display:grid;gap:8px;min-width:0}.project-editor-character-media img,.project-editor-character-media>span{aspect-ratio:3 / 4;background:#272b34;color:#fffaf2ad;display:grid;font-size:10px;object-fit:cover;place-items:center;text-align:center;width:104px}.project-editor-character-media button{font-size:10px;justify-self:start;padding:3px 0}.project-editor-character-fields{display:grid;gap:14px;grid-template-columns:1fr 1fr;min-width:0}.project-editor-character-description{grid-column:1 / -1}.project-editor-character label{color:var(--muted);display:block;font-size:10px;margin-top:12px}.project-editor-character input,.project-editor-character textarea{background:transparent;border:1px solid var(--line);color:var(--ink);display:block;font-size:12px;line-height:1.5;margin-top:6px;outline:0;padding:9px 10px;width:100%}.project-editor-character textarea{min-height:70px;resize:vertical}.project-editor-character input:focus,.project-editor-character textarea:focus{border-color:var(--accent)}.project-editor-character-voice{grid-column:1 / -1;justify-self:start}.project-editor-error{background:#f0d9d1;color:#843c2b;font-size:11px;line-height:1.5;margin:16px 0 -8px;padding:10px 12px}.rewrite-original{background:#ead7ca59;border-left:2px solid var(--accent);padding:13px 15px}.rewrite-original span{color:var(--muted);display:block;font-size:10px;margin-bottom:6px}.rewrite-original strong{font-family:var(--serif);font-size:19px;font-weight:400}.rewrite-original p{color:var(--muted);font-size:11px;line-height:1.6;margin:7px 0 0}.image-model-section{margin-top:25px}.image-model-section>.modal-input-label{margin-top:0}.image-model-options{margin-top:9px}.image-model-options label{align-items:flex-start;display:flex}.image-model-copy{display:grid;gap:3px}.image-model-copy strong{font-size:12px;font-weight:500}.image-model-copy small{color:var(--muted);font-size:10px;line-height:1.45}.modal-actions{border-top:1px solid var(--line);display:flex;gap:13px;justify-content:flex-end;margin-top:26px;padding-top:18px}.modal-actions button{font-size:12px;padding:11px 16px}.modal-cancel{background:transparent;color:var(--muted)}.modal-submit{background:var(--ink);color:#fffaf2}.modal-submit:hover{background:var(--accent)}.danger-submit{background:#9a4939}.danger-submit:hover{background:#7f251a}.reader-art{min-height:480px}.scene-art-panel{min-width:0}.scene-art-frame{background:#272b34;height:min(70vh,650px);min-height:330px;overflow:hidden;position:relative}.scene-image{display:block;height:100%;object-fit:cover;width:100%}.scene-image.is-hidden{display:none}.scene-image-hit-area{background:transparent;cursor:zoom-in;inset:0;position:absolute}.art-placeholder{align-items:flex-start;background:linear-gradient(145deg,#d8c8b8,#655a59 52%,#252937);color:#fffaf2;display:flex;flex-direction:column;height:min(70vh,650px);justify-content:flex-end;overflow:hidden;padding:27px;position:relative}.art-placeholder-button{border:0;cursor:pointer;text-align:left;width:100%}.art-placeholder-button:hover{filter:saturate(1.08)}.art-placeholder:after{border:1px solid rgba(255,250,242,.32);content:"";inset:14px;pointer-events:none;position:absolute}.art-placeholder span{font-size:10px;letter-spacing:.17em;opacity:.72;position:relative;z-index:1}.art-placeholder strong{font-family:var(--serif);font-size:30px;font-weight:400;line-height:1.1;margin:15px 0;position:relative;z-index:1}.art-placeholder small{font-size:11px;line-height:1.5;max-width:250px;opacity:.68;position:relative;z-index:1}.scene-art-footer{align-items:center;border-bottom:1px solid var(--line);color:var(--muted);display:flex;font-size:10px;justify-content:space-between;padding:11px 0}.scene-art-footer button{background:transparent;color:var(--accent);font-size:10px;padding:0;text-decoration:underline;text-underline-offset:3px}.scene-history-link{background:transparent;color:var(--muted);font-size:10px;padding:0;text-decoration:underline;text-decoration-color:#776d6373;text-underline-offset:3px}.scene-history-link:hover{color:var(--accent);text-decoration-color:var(--accent)}.image-generation-bottomline{align-items:baseline;display:flex;gap:18px;justify-content:space-between}.image-generation-bottomline .image-generation-note{margin:18px 0 0}.image-generation-note{color:var(--muted);font-size:10px;line-height:1.6;margin:18px 0 0}.image-lightbox{align-items:center;animation:rise .2s ease both;background:#17191feb;display:flex;inset:0;justify-content:center;padding:45px 24px 80px;position:fixed;z-index:120}.image-lightbox img{box-shadow:0 22px 80px #00000059;max-height:100%;max-width:min(86vw,700px);object-fit:contain}.lightbox-close{background:transparent;color:#fffaf2;font-size:32px;line-height:1;padding:0;position:absolute;right:25px;top:20px}.lightbox-actions{align-items:center;bottom:20px;color:#fffaf2b8;display:flex;font-size:11px;gap:20px;position:absolute}.lightbox-actions button{background:var(--accent);color:#fffaf2;font-size:11px;padding:9px 13px}.scene-history-modal{max-width:760px}.scene-history-summary{color:var(--accent);font-family:var(--serif);font-size:17px;line-height:1.5;margin:25px 0 20px}.scene-history-summary span{color:var(--muted);font-family:inherit;font-size:11px}.scene-history-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.scene-history-item{background:#fffcf666;border:1px solid var(--line);color:var(--muted);min-width:0;padding:6px;text-align:left;transition:border-color .2s,background .2s,transform .2s}.scene-history-item:hover,.scene-history-item:focus-visible{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.scene-history-item.is-primary{border-color:var(--accent)}.scene-history-image-wrap{aspect-ratio:9 / 16;background:#272b34;display:block;overflow:hidden;position:relative}.scene-history-image-wrap img{display:block;height:100%;object-fit:cover;width:100%}.scene-history-image-wrap i{align-items:center;color:#fffaf2a6;display:flex;font-size:10px;font-style:normal;inset:0;justify-content:center;position:absolute}.scene-history-image-wrap b{background:var(--accent);bottom:6px;color:#fffaf2;font-size:9px;font-weight:500;left:6px;padding:4px 6px;position:absolute}.scene-history-item-meta{display:flex;gap:4px;justify-content:space-between;padding:8px 2px 2px}.scene-history-item-meta strong{color:inherit;font-size:10px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-history-item-meta small{color:var(--muted);font-size:9px;white-space:nowrap}.scene-history-empty{border:1px dashed var(--line);color:var(--muted);font-size:11px;line-height:1.6;padding:32px 16px;text-align:center}.scene-history-error{background:#f0d9d1;border-left:2px solid #9a4939;color:#843c2b;font-size:11px;line-height:1.6;margin:16px 0;padding:10px 12px}.scene-history-lightbox{z-index:150}.scene-history-lightbox-loading{color:#fffaf2b8;font-size:12px}.scene-history-lightbox-actions{gap:18px}.scene-history-lightbox-actions>div{display:flex;gap:8px}.scene-history-lightbox-actions .lightbox-delete{background:transparent;border:1px solid rgba(255,250,242,.35)}.voice-library-backdrop{z-index:130}.voice-library-modal{max-width:820px;padding:27px 30px 22px;width:min(820px,100%)}.voice-library-heading h2{font-size:clamp(2.1rem,5vw,3.7rem)}.voice-speaker-tabs{border-bottom:1px solid var(--line);display:flex;gap:19px;margin:24px 0 0;overflow-x:auto}.voice-speaker-tabs button{background:transparent;border-bottom:2px solid transparent;color:var(--muted);flex:0 0 auto;font-size:11px;padding:10px 0 9px}.voice-speaker-tabs button.active{border-color:var(--accent);color:var(--accent);font-weight:700}.voice-library-list{max-height:min(55vh,540px);overflow:auto;padding-right:4px}.voice-library-row{align-items:center;border-bottom:1px solid rgba(217,209,195,.72);display:flex;gap:16px;justify-content:space-between;padding:14px 0}.voice-library-row.is-selected{background:#efdcd34d;margin-left:-10px;margin-right:-10px;padding-left:10px;padding-right:10px}.voice-library-copy{min-width:0}.voice-library-copy strong{font-family:var(--serif);font-size:17px;font-weight:400}.voice-library-copy>span{color:var(--accent);font-size:10px;margin-left:8px}.voice-library-copy>.voice-gender-badge{border:1px solid currentColor;border-radius:999px;display:inline-block;line-height:1;padding:3px 5px}.voice-library-copy>.voice-gender-badge.is-male{color:#506e8d}.voice-library-copy>.voice-gender-badge.is-female{color:#a64f67}.voice-library-copy small{color:var(--muted);display:block;font-size:10px;line-height:1.5;margin-top:4px}.voice-library-actions{align-items:center;display:flex;flex:0 0 auto;gap:8px}.voice-preview-button,.voice-select-button{background:transparent;border:1px solid var(--line);color:var(--ink);font-size:10px;padding:7px 9px}.voice-preview-button:hover,.voice-select-button:hover{border-color:var(--accent);color:var(--accent)}.voice-select-button{background:var(--accent);border-color:var(--accent);color:#fffaf2}.voice-select-button:disabled{cursor:wait;opacity:.62}.voice-current-mark{color:var(--accent);font-size:10px;min-width:31px;text-align:center}.voice-preview-player{display:block;height:30px;margin-top:9px;max-width:300px;width:100%}.voice-preview-audio-wrap{display:block;min-width:0}.voice-preview-loading{color:var(--accent);display:block;font-size:9px;line-height:1.45;margin-top:7px}.voice-library-error{background:#f0d9d1;border-left:2px solid #9a4939;color:#843c2b;font-size:11px;line-height:1.5;margin:12px 0;padding:9px 11px}.voice-library-footnote{border-top:1px solid var(--line);color:var(--muted);font-size:10px;line-height:1.55;margin:16px 0 0;padding-top:12px}.voice-config-link{background:transparent;color:var(--accent);font-size:10px;padding:0;text-decoration:underline;text-underline-offset:3px}.character-line-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.character-voice-note{color:var(--muted);font-size:10px}.project-editor-audio-config{border-bottom:1px solid var(--line);border-top:1px solid var(--line);margin-top:24px;padding:17px 0 3px}.project-editor-audio-heading{align-items:center;display:flex;justify-content:space-between}.project-editor-audio-heading strong{font-family:var(--serif);font-size:18px;font-weight:400}.project-editor-audio-heading small{color:var(--muted);font-size:10px}.project-editor-audio-entries{display:flex;flex-wrap:wrap;gap:8px 15px;margin:12px 0 15px}.project-editor-audio-entries button{background:transparent;color:var(--accent);font-size:10px;padding:0;text-decoration:underline;text-underline-offset:3px}.project-editor-audio-entry{align-items:center;display:flex;gap:10px}.project-editor-audio-hint{color:var(--muted);font-size:10px;width:100%}.project-editor-character-voice-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.voice-inline-preview{align-items:center;display:inline-flex;flex-wrap:wrap;gap:7px}.voice-inline-preview-button{background:transparent!important;border:1px solid var(--line);color:var(--ink)!important;font-size:10px!important;padding:6px 9px!important;text-decoration:none!important}.voice-inline-preview-button:hover{border-color:var(--accent);color:var(--accent)!important}.voice-inline-preview-player{height:29px;max-width:230px;width:230px}.voice-inline-preview-error{color:#843c2b;font-size:10px}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{50%{box-shadow:0 0 0 5px #b45d3e26}}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}@media(max-width:760px){.app-layout{display:block}.project-rail{--mobile-rail-header-height: 78px;min-height:auto;padding:calc(18px + env(safe-area-inset-top)) 20px 18px;position:relative;z-index:50}.rail-header{align-items:center;display:flex;justify-content:space-between;position:relative;z-index:70}.brand-mark{margin-bottom:14px}.mobile-stories-toggle{align-items:center;background:transparent;border:1px solid var(--line);color:var(--ink);display:flex;font-size:16px;gap:6px;justify-content:center;min-height:34px;padding:4px 9px;text-align:center;width:auto}.mobile-stories-toggle small{color:var(--muted);font-size:10px}.rail-drawer{background:var(--paper);border-left:1px solid var(--line);box-shadow:-18px 0 48px #2c2a2629;display:flex;height:calc(100dvh - var(--mobile-rail-header-height) - env(safe-area-inset-top));left:auto;max-width:360px;padding:18px 20px calc(20px + env(safe-area-inset-bottom));position:fixed;right:0;top:calc(var(--mobile-rail-header-height) + env(safe-area-inset-top));transform:translate(100%);transition:transform .22s ease,visibility .22s ease;visibility:hidden;width:min(88vw,360px);z-index:60}.rail-drawer.is-open{transform:translate(0);visibility:visible}.rail-drawer .new-story{margin-bottom:24px}.rail-drawer .rail-label{display:block}.rail-drawer nav{display:block;flex:1;min-height:0;overflow:auto}.rail-drawer .project-link{border-bottom:1px solid rgba(217,209,195,.55);min-width:0;padding:13px 7px 11px}.rail-drawer .rail-account{margin-top:18px}.rail-drawer .rail-footer{display:block;margin-top:14px}.main-stage{padding:22px 20px 50px}.topline{align-items:flex-start;gap:10px;margin-bottom:36px}.topline-right{align-items:flex-end;flex-direction:column;gap:5px;text-align:right}.form-row,.outline-grid,.reader-layout{grid-template-columns:1fr}.form-footer{align-items:flex-start;flex-direction:column}.form-footer button{width:100%}.outline-view .workspace-header{align-items:stretch;flex-direction:column;gap:14px;min-height:0}.outline-status{gap:10px}.outline-meta-actions{gap:8px}.outline-view .header-actions{display:block;width:100%}.outline-view .header-actions button{border:1px solid var(--ink);min-height:44px;padding:11px 8px;text-align:center;width:100%}.outline-view .header-actions button:not(.quiet-button){border-color:var(--ink)}.outline-heading{margin:46px 0 36px}.outline-heading h1{font-size:clamp(2.7rem,15vw,5rem)}.outline-heading p{font-size:14px}.outline-grid{gap:38px}.scene-row{gap:10px;grid-template-columns:32px minmax(0,1fr) auto;padding:18px 0}.scene-row:hover{padding-left:0}.scene-row h3{font-size:17px;margin-bottom:6px}.scene-row p{font-size:11px;line-height:1.55}.scene-arrow{display:none}.scene-delete{font-size:10px}.scene-row>.scene-row-actions{align-items:flex-end;flex-direction:column;gap:3px}.reader-scene-heading{align-items:flex-start;gap:10px}.scene-rewrite-button{margin-top:24px}.reference-asset-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.reference-asset-card img{height:82px}.character-column-heading{align-items:baseline}.character-line-heading{align-items:flex-start}.reader-layout{padding-top:45px}.scene-audio-panel{margin-top:32px}.scene-audio-player-meta{align-items:flex-start;flex-direction:column;gap:8px}.reader-art{min-height:300px;order:-1}.scene-art-frame,.art-placeholder{height:330px;min-height:0}.modal-backdrop{align-items:flex-start;padding:calc(78px + env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.continuation-modal{margin:0 auto;max-height:calc(100dvh - 96px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.image-generation-modal,.project-editor-modal,.project-details-modal,.narrator-config-modal,.character-config-modal{max-height:calc(100dvh - 96px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:25px 20px}.character-config-grid{grid-template-columns:1fr}.character-config-media{align-items:center;grid-template-columns:82px minmax(0,1fr)}.character-config-media img,.character-config-media>span{width:82px}.character-config-fields{grid-template-columns:1fr}.character-config-fields .modal-input-label+.modal-input-label{margin-top:18px}.character-config-description,.character-config-voice{grid-column:auto}.configured-voice-row{align-items:flex-start;flex-direction:column}.configured-voice-row>div:last-child{flex-wrap:wrap;width:100%}.character-config-actions{align-items:stretch;flex-direction:column-reverse}.character-config-actions>div{width:100%}.character-config-actions>div:last-child button{flex:1}.character-config-delete{text-align:left}.project-editor-character-body{grid-template-columns:1fr}.project-editor-character-media{align-items:center;grid-template-columns:72px minmax(0,1fr)}.project-editor-character-media img,.project-editor-character-media>span{width:72px}.project-editor-character-media button{justify-self:start}.project-editor-character-fields{grid-template-columns:1fr}.project-editor-character-description{grid-column:auto}.image-generation-modal .modal-heading h2{font-size:clamp(2rem,11vw,3rem)}.image-generation-bottomline{align-items:flex-start;flex-direction:column;gap:9px}.image-generation-bottomline .image-generation-note{margin-top:18px}.scene-art-footer{align-items:flex-start;gap:10px}.scene-history-modal{padding:25px 18px}.scene-history-grid{gap:9px;grid-template-columns:repeat(2,minmax(0,1fr))}.scene-history-item-meta{align-items:flex-start;flex-direction:column;gap:3px}.modal-actions{align-items:stretch}.modal-actions button{flex:1}.image-lightbox{padding-left:12px;padding-right:12px}.image-lightbox img{max-width:94vw}.lightbox-actions{bottom:15px;flex-direction:column;gap:8px}.scene-history-lightbox-actions{align-items:stretch;width:min(94vw,380px)}.scene-history-lightbox-actions>div{justify-content:stretch;width:100%}.scene-history-lightbox-actions>div button{flex:1}.voice-library-modal{max-height:calc(100dvh - 96px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:22px 18px 16px}.voice-library-list{max-height:none}.voice-library-row{align-items:flex-start;gap:9px}.voice-library-actions{align-items:flex-end;flex-direction:column}.voice-library-copy strong{font-size:16px}.voice-library-copy small{max-width:200px}.voice-preview-player{max-width:220px}.voice-inline-preview-player{max-width:min(230px,72vw);width:min(230px,72vw)}.character-line-actions{align-items:flex-start;flex-direction:column;gap:4px}.auth-code-row{align-items:stretch;grid-template-columns:1fr}.auth-send-button{min-height:42px;width:100%}.auth-modal{padding:25px 20px}.auth-modal .modal-heading h2{font-size:clamp(2.1rem,11vw,3.1rem)}.profile-modal{padding:25px 20px}.profile-logout-confirm{align-items:flex-start;flex-direction:column}.profile-logout-confirm span{margin-right:0}.profile-logout-confirm button{width:100%}}
