@font-face{font-family:Fraunces;src:url(/assets/fraunces-variable-BOz5zopO.woff2)format("woff2");font-weight:400 600;font-style:normal;font-display:swap}@font-face{font-family:Atkinson Hyperlegible;src:url(/assets/atkinson-hyperlegible-400-Kk6lkzH4.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Atkinson Hyperlegible;src:url(/assets/atkinson-hyperlegible-700-BfnuZ9Vb.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--bg:#171730;--bg-deep:#101024;--panel:#23233f;--panel-2:#2b2b4d;--text:#f4eedc;--text-dim:#a9a4c0;--gold:#e8aa57;--gold-soft:#f3ce97;--rose:#d98a93;--frame:#3b3b63;--shadow:#00000073;--font-display:"Fraunces", ui-serif, Georgia, serif;--font-body:"Atkinson Hyperlegible", ui-rounded, "Nunito", system-ui, sans-serif;--glow-app:radial-gradient(ellipse at 50% -10%, #e8aa571a, transparent 55%);--glow-frame:radial-gradient(ellipse at 50% 30%, #e8aa5724, transparent 65%)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg-deep);height:100%;font-family:var(--font-body);color:var(--text);overscroll-behavior:none;margin:0;padding:0}#root{background:var(--glow-app), var(--bg);max-width:560px;min-height:100vh;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);margin:0 auto;position:relative}.btn{font-family:var(--font-body);cursor:pointer;color:var(--bg-deep);background:var(--gold);border:none;border-radius:14px;padding:14px 20px;font-size:16px;font-weight:700;box-shadow:0 4px 14px #e8aa5740}.btn:active{background:var(--gold-soft)}.btn.secondary{color:var(--text);border:1px solid var(--frame);box-shadow:none;background:0 0}.btn.block{width:100%}.btn:disabled{opacity:.4}.iconbtn{background:var(--panel);border:1px solid var(--frame);width:44px;height:44px;color:var(--gold-soft);cursor:pointer;border-radius:14px;justify-content:center;align-items:center;display:flex}.iconbtn:active{background:var(--panel-2)}.iconbtn svg{width:20px;height:20px}input[type=text],textarea{width:100%;font-family:var(--font-body);background:var(--panel);border:1px solid var(--frame);color:var(--text);border-radius:12px;outline:none;padding:12px 14px;font-size:16px}input[type=text]:focus,textarea:focus,select:focus{border-color:var(--gold)}textarea{resize:vertical;line-height:1.5}label{color:var(--text-dim);letter-spacing:.3px;text-transform:uppercase;margin-bottom:6px;font-size:13px;font-weight:700;display:block}select{font-family:var(--font-body);background:var(--panel);color:var(--text);border:1px solid var(--frame);border-radius:10px;width:100%;padding:10px 12px;font-size:15px}.topbar{justify-content:space-between;align-items:center;padding:22px 20px 10px;display:flex}.hint{color:var(--text-dim);margin-top:6px;font-size:13px;line-height:1.4}::selection{background:#e8aa574d}.brand{align-items:center;gap:10px;display:flex}.brand svg{width:26px;height:26px}.brand-name{font-family:var(--font-display);letter-spacing:.2px;font-size:22px;font-weight:600}.content{flex:1;padding:6px 20px 100px}.topbar-actions{gap:8px;display:flex}.backup-panel{background:var(--panel);border:1px solid var(--frame);border-radius:14px;margin:0 20px 10px;padding:14px}.backup-actions{gap:8px;margin-top:12px;display:flex}.backup-actions .btn{flex:1}.backup-error{color:var(--rose)}.empty{text-align:center;color:var(--text-dim);margin-top:60px}.empty svg{opacity:.5;width:64px;height:64px;margin-bottom:14px}.empty p{max-width:260px;margin:0 auto;font-size:15px;line-height:1.5}.grid{grid-template-columns:1fr 1fr;gap:14px;margin-top:10px;display:grid}.card{background:var(--panel);border:1px solid var(--frame);cursor:pointer;border-radius:18px;flex-direction:column;display:flex;overflow:hidden}.card:active{background:var(--panel-2)}.card-cover{aspect-ratio:1;background:linear-gradient(160deg, var(--panel-2), var(--bg-deep));justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.card-cover img{object-fit:cover;width:100%;height:100%}.card-cover svg{opacity:.35;width:40%;height:40%}.card-edit{background:#23233fb3;border-color:#0000;border-radius:10px;width:32px;height:32px;position:absolute;top:8px;right:8px}.card-edit svg{width:16px;height:16px}.card-body{padding:10px 12px 14px}.card-title{font-family:var(--font-display);font-size:16px;font-weight:600;line-height:1.25}.card-sub{color:var(--text-dim);margin-top:4px;font-size:12px}.fab{pointer-events:none;justify-content:center;width:100%;max-width:560px;display:flex;position:fixed;bottom:26px;left:50%;transform:translate(-50%)}.fab button{pointer-events:all;background:var(--gold);color:var(--bg-deep);cursor:pointer;border:none;border-radius:999px;align-items:center;gap:8px;padding:15px 24px;font-size:15px;font-weight:800;display:flex;box-shadow:0 8px 22px #0006}.fab button svg{width:18px;height:18px}.image-paste-input{flex-direction:column;align-items:center;display:flex}.image-paste-well{border:1px dashed var(--frame);background:var(--panel);cursor:pointer;text-align:center;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:100%;padding:28px 20px;display:flex}.image-paste-well:active{background:var(--panel-2);border-color:var(--gold)}.image-paste-well__label{font-family:var(--font-body);color:var(--text);font-size:16px;font-weight:700}.image-paste-well__hint{font-family:var(--font-body);color:var(--text-dim);font-size:13px}.image-paste-input__choose{font-family:var(--font-body);color:var(--gold);cursor:pointer;background:0 0;border:none;margin-top:8px;padding:6px;font-size:13px}.image-paste-input__choose:active{color:var(--gold-soft)}.image-paste-input__file{display:none}.characters-screen{flex-direction:column;min-height:100vh;display:flex}.characters-screen__title{font-family:var(--font-display);letter-spacing:.2px;font-size:22px;font-weight:600}.characters-screen__spacer{width:44px}.characters-screen__content{flex:1;padding:6px 20px 100px}.characters-screen__hint,.characters-screen__empty{margin-bottom:16px}.characters-screen__list{margin-bottom:8px}.characters-screen__new{margin-top:18px}.characters-screen__field{margin-bottom:12px}.characters-screen__new-preview{object-fit:cover;background:var(--bg-deep);border-radius:10px;width:44px;height:44px;margin-bottom:12px}.char-card{background:var(--panel);border:1px solid var(--frame);border-radius:14px;margin-bottom:10px;padding:10px 12px}.char-row{width:100%;min-height:44px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:12px;padding:0;display:flex}.char-row img,.char-row__placeholder{object-fit:cover;background:var(--bg-deep);border-radius:12px;flex-shrink:0;width:48px;height:48px}.char-row__placeholder{font-family:var(--font-display);color:var(--text-dim);justify-content:center;align-items:center;font-size:20px;display:flex}.char-row .name{flex:1;font-size:15px;font-weight:700}.char-row__chevron{width:18px;height:18px;color:var(--text-dim);flex-shrink:0;transition:transform .15s}.char-row__chevron--open{color:var(--gold-soft);transform:rotate(90deg)}.char-row__panel{border-top:1px dashed var(--frame);flex-direction:column;gap:12px;margin-top:10px;padding-top:10px;display:flex}.char-row__delete{min-height:44px;font-family:var(--font-body);color:var(--rose);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:8px 4px;font-size:14px;font-weight:700}.char-row__error,.characters-screen__error{color:var(--rose);margin:0 0 10px}.character-picker{flex-direction:column;gap:8px;display:flex}.character-picker__row{align-items:center;gap:10px;display:flex}.character-picker__thumb{object-fit:cover;background:var(--bg-deep);border-radius:10px;flex-shrink:0;width:40px;height:40px}.character-picker__thumb--empty{background:var(--panel-2);border:1px solid var(--frame)}.character-picker__select{flex:1}.character-picker__new{border-top:1px dashed var(--frame);flex-direction:column;gap:8px;margin-top:10px;padding-top:10px;display:flex}.character-picker__new-actions{align-items:center;gap:14px;margin-top:2px;display:flex}.character-picker__add{padding:8px 18px;font-size:14px}.character-picker__cancel{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:6px;font-size:13px}.character-picker__error{color:var(--rose);margin:0}.story-editor{flex-direction:column;min-height:100vh;display:flex}.story-editor__brand{font-family:var(--font-display);letter-spacing:.2px;font-size:22px;font-weight:600}.story-editor__content{flex:1;padding:6px 20px 100px}.story-editor__field{margin-bottom:16px}.story-editor__page-row{background:var(--panel);border:1px solid var(--frame);border-radius:14px;margin-bottom:12px;padding:14px}.story-editor__page-num{color:var(--gold-soft);letter-spacing:.4px;text-transform:uppercase;margin-bottom:6px;font-size:12px;font-weight:800}.story-editor__page-snippet{color:var(--text-dim);margin-bottom:10px;font-size:14px;line-height:1.4}.story-editor__delete{color:var(--rose);border-color:var(--rose);margin-top:12px}.frame-window{background:var(--glow-frame), var(--panel);border:1px solid var(--frame);aspect-ratio:4/3;box-shadow:0 10px 30px var(--shadow);border-radius:28px;margin:0 20px 4px;position:relative;overflow:hidden}.frame-window-placeholder{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.frame-window-placeholder svg{opacity:.3;width:30%;height:30%}.img-layer{justify-content:center;align-items:center;transition:transform .45s cubic-bezier(.4,0,.2,1),opacity .45s;display:flex;position:absolute;inset:0}.img-layer img{object-fit:contain;width:100%;height:100%}.img-layer.state-active{opacity:1;transform:translateY(0)}.img-layer.state-prev{opacity:0;transform:translateY(-100%)}.img-layer.state-next{opacity:0;transform:translateY(100%)}.img-layer-nameplate{flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.img-layer-initial{font-family:var(--font-display);color:var(--gold-soft);opacity:.8;font-size:72px;font-weight:600}.img-layer-name{font-family:var(--font-display);color:var(--text-dim);font-size:20px}.char-strip{scrollbar-width:none;gap:12px;padding:2px 20px 12px;display:flex;overflow-x:auto}.char-strip::-webkit-scrollbar{display:none}.char-chip{cursor:pointer;width:58px;font-family:var(--font-body);background:0 0;border:none;flex-direction:column;flex-shrink:0;align-items:center;gap:5px;padding:0;display:flex}.char-chip .cthumb{object-fit:cover;background:var(--panel);border:2px solid var(--frame);border-radius:50%;width:54px;height:54px;transition:border-color .3s}.char-chip.is-active .cthumb{border-color:var(--gold)}.char-chip .cname{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;max-width:58px;font-size:11px;overflow:hidden}.char-chip .cthumb-initial{font-family:var(--font-display);color:var(--text-dim);justify-content:center;align-items:center;font-size:22px;font-weight:600;display:flex}.lightbox{z-index:50;background:#090914eb;justify-content:center;align-items:center;padding:30px;display:flex;position:fixed;inset:0}.lightbox img{border-radius:20px;max-width:100%;max-height:78vh;box-shadow:0 12px 40px #00000080}.lightbox-name{bottom:calc(40px + env(safe-area-inset-bottom));text-align:center;font-family:var(--font-display);color:var(--gold-soft);font-size:20px;position:absolute;left:0;right:0}.lightbox-close{top:calc(20px + env(safe-area-inset-top));position:absolute;right:20px}.lightbox-initial{font-family:var(--font-display);color:var(--gold-soft);opacity:.85;font-size:120px;font-weight:600}.reader{background:var(--bg-deep);-webkit-overflow-scrolling:touch;height:100dvh;position:relative;overflow-y:auto}.reader-sticky{z-index:5;background:var(--bg-deep);padding-bottom:8px;position:sticky;top:0}.reader-top{justify-content:space-between;align-items:center;padding:18px 18px 6px;display:flex}.dots{flex:1;gap:6px;margin:0 16px;display:flex}.dot{background:var(--frame);border-radius:2px;flex:1;height:4px;transition:background .3s}.dot.done{background:var(--gold)}.page-wrap{padding:6px 26px 60px}.story-title{font-family:var(--font-display);color:var(--gold-soft);margin:20px 0 18px;font-size:22px;font-weight:600}.story-text-block{white-space:pre-wrap;margin-bottom:34px;font-size:21px;line-height:1.65}.nav-hint{text-align:center;color:var(--text-dim);padding-bottom:calc(20px + env(safe-area-inset-bottom));font-size:13px}
