.book-viewport{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.book-spread--single{justify-content:center;align-items:center;height:100%;display:flex}.book-spread--single .book-page{aspect-ratio:1;border-radius:6px;height:100%;max-height:70vh;overflow:hidden;box-shadow:0 8px 40px #0000001f,0 2px 8px #0000000f}.book-spread--double{aspect-ratio:2;border-radius:6px;justify-content:center;align-items:stretch;gap:0;width:min(140vh,100%);max-width:100%;max-height:70vh;display:flex;overflow:hidden;box-shadow:0 8px 40px #0000001f,0 2px 8px #0000000f}.book-spread--double .book-page{aspect-ratio:1;flex:1;min-width:0;height:auto;overflow:hidden}.book-spread--double .book-page--illustration,.book-spread--double .book-page:first-child{border-radius:0}.book-spread--double .book-page--text,.book-spread--double .book-page:last-child{border-left:1px solid #00000012;border-radius:0}.book-page--blank{background:#fffdf7}.book-page--cover{background:linear-gradient(145deg,#f3e8ff,#fce7f3);justify-content:center;align-items:center;display:flex}.book-page__img{object-fit:cover;width:100%;height:100%}.book-page__fallback{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:32px;display:flex}.book-page__emoji{font-size:3.5rem}.book-page__title{color:var(--text-primary);font-size:1.6rem;font-weight:800;font-family:var(--font-display);line-height:1.2}.book-page__subtitle{color:var(--text-muted);font-size:.85rem}.book-page__back-title{color:var(--text-primary);font-size:1.15rem;font-weight:700;font-family:var(--font-display)}.book-page__synopsis{color:var(--text-secondary);max-width:260px;font-size:.8rem;font-style:italic;line-height:1.6}.book-page__brand{color:var(--text-muted);margin-top:8px;font-size:.7rem}.book-page--title{text-align:center;background:#fffdf7;flex-direction:column;justify-content:center;align-items:center;padding:32px;display:flex}.book-page--illustration{background:#fff;position:relative}.book-page--illustration .book-page__img{object-fit:cover;width:100%;height:100%}.book-page__placeholder{width:100%;height:100%;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:.85rem;display:flex}.book-page--text{background:#fffdf7;flex-direction:column;justify-content:center;padding:32px 36px;display:flex;position:relative;overflow-y:auto}.book-page__text-content{color:var(--text-primary);white-space:pre-line;font-size:1.1rem;line-height:1.85;font-family:var(--font-body)}.book-page__num{color:var(--text-muted);opacity:.6;font-size:.7rem;position:absolute;bottom:10px;right:14px}.book-page__num--left{color:var(--text-muted);opacity:.6;font-size:.7rem;position:absolute;bottom:10px;left:14px;right:auto}.book-page--credits{text-align:center;color:var(--text-muted);background:#fffdf7;justify-content:center;align-items:center;font-size:.95rem;font-style:italic;display:flex}.mobile-page{background:#fffdf7;border-radius:12px;flex-direction:column;width:100%;max-width:480px;height:100%;display:flex;overflow:hidden;box-shadow:0 4px 24px #00000014,0 1px 4px #0000000a}.mobile-page--cover{background:linear-gradient(135deg,#f3e8ff,#fce7f3);justify-content:center;align-items:center}.mobile-page__img{object-fit:cover;width:100%;height:100%}.mobile-page__fallback{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:32px;display:flex}.mobile-page__emoji{font-size:4rem}.mobile-page__title{color:var(--text-primary);font-size:1.75rem;font-weight:800;font-family:var(--font-display);line-height:1.2}.mobile-page__subtitle{color:var(--text-muted);margin-top:12px;font-size:.875rem}.mobile-page--title{text-align:center;justify-content:center;align-items:center;padding:32px}.mobile-page--story{flex-direction:column;height:100%;display:flex}.mobile-page__illustration{background:#f8f6f1;flex:0 0 58%;min-height:0;position:relative;overflow:hidden}.mobile-page__placeholder{width:100%;height:100%;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:.875rem;display:flex}.mobile-page__text-block{background:#fffdf7;border-top:1px solid #0000000a;flex-direction:column;flex:1;min-height:0;padding:12px 16px;display:flex;position:relative;overflow:hidden}.mobile-page__text{color:var(--text-primary);white-space:pre-line;font-size:1rem;line-height:1.75;font-family:var(--font-body)}.mobile-page__num{color:var(--text-muted);font-size:.65rem;position:absolute;bottom:6px;right:10px}.mobile-page--credits{text-align:center;color:var(--text-muted);justify-content:center;align-items:center;font-size:.95rem;font-style:italic}.mobile-page__back-title{color:var(--text-primary);font-size:1.25rem;font-weight:700;font-family:var(--font-display)}.mobile-page__synopsis{color:var(--text-secondary);max-width:280px;font-size:.8rem;font-style:italic;line-height:1.6}.mobile-page__brand{color:var(--text-muted);margin-top:8px;font-size:.7rem}.pagination-dot{transition:background .3s;display:block}.pagination-btn{cursor:pointer;font-size:.85rem;font-weight:600;font-family:var(--font-body);border:none;border-radius:12px;align-items:center;gap:6px;padding:8px 16px;transition:all .2s;display:flex}.pagination-btn:disabled{opacity:.3;cursor:not-allowed;transform:none!important}.pagination-btn--prev{color:var(--text-secondary);background:#0000000a}.pagination-btn--prev:not(:disabled):hover{color:var(--text-primary);background:#00000014}.pagination-btn--next{color:#fff;background:linear-gradient(135deg,#a78bfa,#8b5cf6);box-shadow:0 2px 12px #8b5cf64d}.pagination-btn--next:not(:disabled):hover{box-shadow:0 4px 20px #8b5cf673}@media (max-width:767px){.pagination-btn{border-radius:10px;padding:6px 12px;font-size:.8rem}}.book-arrow-btn{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:44px;height:64px;color:var(--text-secondary);cursor:pointer;opacity:.7;background:#ffffffd9;border:none;border-radius:12px;justify-content:center;align-items:center;transition:background .18s,color .18s,box-shadow .18s,transform .18s,opacity .18s;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 2px 16px #0000001a}.book-arrow-btn:hover:not(:disabled){color:var(--purple-deep);opacity:1;background:#fffffffa;transform:translateY(-50%)scale(1.06);box-shadow:0 4px 24px #8b5cf62e}.book-arrow-btn:disabled{opacity:.2;cursor:not-allowed}.book-arrow-btn--left{left:6px}.book-arrow-btn--right{right:6px}@media (max-width:767px){.book-viewport{align-items:stretch}}@media (max-height:500px) and (orientation:landscape){.book-spread--double{width:min(176vh,100%);max-height:88vh}.book-spread--single .book-page{height:88vh;max-height:88vh}}.edit-text-wrapper{flex-direction:column;flex:1;min-height:0;padding:24px 28px;display:flex}.edit-text-area{resize:none;width:100%;color:var(--text-primary);font-size:1.05rem;line-height:1.8;font-family:var(--font-body);white-space:pre-line;background:#a78bfa0a;border:2px dashed #a78bfa59;border-radius:8px;outline:none;flex:1;padding:16px;transition:border-color .2s}.edit-text-area:focus{background:#a78bfa0f;border-color:#a78bfab3}.edit-text-actions{justify-content:flex-end;min-height:36px;padding-top:8px;display:flex}.edit-save-btn{color:#fff;cursor:pointer;font-size:.8rem;font-weight:600;font-family:var(--font-body);background:linear-gradient(135deg,#a78bfa,#8b5cf6);border:none;border-radius:8px;align-items:center;gap:5px;padding:6px 14px;transition:box-shadow .2s;display:flex;box-shadow:0 2px 8px #8b5cf64d}.edit-save-btn:hover{box-shadow:0 4px 16px #8b5cf673}.edit-save-img-btn{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;cursor:pointer;font-size:.85rem;font-weight:700;font-family:var(--font-body);background:#ffffff26;border:2px solid #ffffffd9;border-radius:12px;align-items:center;gap:8px;padding:9px 20px;transition:background .2s,border-color .2s,transform .15s;display:flex;box-shadow:0 2px 16px #0003}.edit-save-img-btn:hover:not(:disabled){background:#ffffff47;border-color:#fff;transform:scale(1.04)}.edit-save-img-btn:disabled{cursor:wait;opacity:.7}.edit-image-overlay{z-index:5;border-radius:inherit;background:#00000073;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.edit-regen-btn{color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;font-family:var(--font-body);background:linear-gradient(135deg,#a78bfa,#8b5cf6);border:none;border-radius:12px;align-items:center;gap:8px;padding:10px 22px;transition:box-shadow .2s,transform .15s;display:flex;box-shadow:0 4px 20px #8b5cf680}.edit-regen-btn:hover:not(:disabled){transform:scale(1.04);box-shadow:0 6px 28px #8b5cf6a6}.edit-regen-btn:disabled{cursor:wait;opacity:.75}.edit-gallery-bar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:6;scrollbar-width:none;background:#0000008c;border-radius:10px;gap:6px;padding:6px 8px;display:flex;position:absolute;bottom:8px;left:8px;right:8px;overflow-x:auto}.edit-gallery-bar::-webkit-scrollbar{display:none}.edit-gallery-thumb{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:6px;flex-shrink:0;width:52px;height:52px;padding:0;transition:border-color .2s,transform .15s;position:relative;overflow:hidden}.edit-gallery-thumb:hover{transform:scale(1.08)}.edit-gallery-thumb--active{border-color:#a78bfa;box-shadow:0 0 0 1px #a78bfa80}.edit-gallery-thumb img{object-fit:cover;width:100%;height:100%}.edit-gallery-label{text-align:center;color:#fff;background:#00000080;padding:1px 0;font-size:.55rem;font-weight:600;position:absolute;bottom:1px;left:0;right:0}.edit-undo-btn{color:var(--purple-deep);cursor:pointer;font-size:.8rem;font-weight:600;font-family:var(--font-body);background:0 0;border:1.5px solid #a78bfa66;border-radius:8px;align-items:center;gap:5px;padding:6px 14px;transition:background .2s,border-color .2s;display:flex}.edit-undo-btn:hover:not(:disabled){background:#a78bfa14;border-color:#a78bfab3}.edit-undo-btn:disabled{opacity:.4;cursor:not-allowed}.book-page__back-text-overlay{z-index:2;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:28px 32px;display:flex;position:absolute;inset:0}.book-page__back-text-overlay .book-page__emoji{filter:drop-shadow(0 2px 6px #0006);font-size:2.4rem}.book-page__back-text-overlay .book-page__back-title{text-shadow:0 1px 8px #00000080}.book-page__back-text-overlay .book-page__synopsis{text-shadow:0 1px 5px #0006}.book-page__back-text-overlay .mobile-page__emoji{filter:drop-shadow(0 2px 8px #0006);font-size:3rem}.book-page__back-text-overlay .mobile-page__back-title{text-shadow:0 1px 8px #00000080}.book-page__back-text-overlay .mobile-page__synopsis{text-shadow:0 1px 5px #0006}.edit-color-row{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff1a;border:1px solid #ffffff2e;border-radius:16px;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:280px;padding:14px 18px;display:flex}.edit-color-label{letter-spacing:.06em;text-transform:uppercase;color:#ffffffbf;font-size:.72rem;font-weight:700;font-family:var(--font-body)}.edit-color-swatches{flex-wrap:nowrap;align-items:center;gap:8px;display:flex}.edit-color-swatch{cursor:pointer;border:2px solid #ffffff40;border-radius:50%;outline:none;flex-shrink:0;width:26px;height:26px;padding:0;transition:transform .18s,border-color .18s,box-shadow .18s}.edit-color-swatch:hover{border-color:#ffffffb3;transform:scale(1.25);box-shadow:0 0 0 2px #fff3}.edit-color-swatch--active{border-color:#fff;transform:scale(1.2);box-shadow:0 0 0 3px #ffffff59}.edit-color-custom{cursor:pointer;background:conic-gradient(red,#ffbf00,#80ff00,#00ff40,#0ff,#0040ff,#8000ff,#ff00bf,red);border:2px solid #ffffff40;border-radius:50%;flex-shrink:0;width:26px;height:26px;padding:0;transition:transform .18s,border-color .18s;overflow:hidden}.edit-color-custom:hover{border-color:#ffffffb3;transform:scale(1.25)}.edit-color-custom::-webkit-color-swatch-wrapper{opacity:0;padding:0}.edit-color-custom::-webkit-color-swatch{border:none}.edit-color-custom::-moz-color-swatch{opacity:0;border:none}.edit-cover-overlay{z-index:5;border-radius:inherit;background:#00000080;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;display:flex;position:absolute;inset:0}.edit-cover-title-input{width:100%;max-width:280px;color:var(--text-primary);font-size:.9rem;font-weight:600;font-family:var(--font-body);text-align:center;background:#ffffffeb;border:2px solid #a78bfa80;border-radius:10px;outline:none;padding:10px 16px;transition:border-color .2s}.edit-cover-title-input:focus{border-color:#a78bfa}
