:root{--bg:#15130f;--bg-2:#1e1b16;--surface:#26221c;--surface-2:#322d25;--text:#f3ede2;--muted:#b3a994;--accent:#e0a458;--accent-ink:#1b140a;--border:#f3ede21f;--controls-h:72px;color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(ellipse at 50% 30%, var(--bg-2), var(--bg) 70%) fixed var(--bg)}button{font:inherit;color:inherit}a{color:inherit;text-decoration:none}.home{max-width:1100px;padding:max(32px, env(safe-area-inset-top)) 16px 48px;margin:0 auto}.home-header h1{letter-spacing:-.02em;margin:0 0 6px;font-size:clamp(1.8rem,4vw,2.6rem)}.home-header p{color:var(--muted);margin:0 0 28px}.grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;overflow:hidden}.card:hover,.card:focus-visible{border-color:var(--accent);outline:none;transform:translateY(-4px);box-shadow:0 18px 40px #00000073}.card-thumb{aspect-ratio:4/3;background:var(--surface-2);perspective:800px;place-items:center;padding:18px;display:grid}.card-thumb img{border-radius:2px;max-width:100%;max-height:100%;transition:transform .3s;transform:rotateY(-12deg);box-shadow:4px 6px 16px #00000080,2px 2px #ddd,4px 4px #bbb}.card:hover .card-thumb img{transform:rotateY(-4deg)scale(1.03)}.card-placeholder{color:var(--muted);font-size:.9rem}.card-body{padding:14px 16px 16px}.card-body h2{text-transform:capitalize;margin:0 0 4px;font-size:1.05rem}.card-body p{color:var(--muted);margin:0;font-size:.88rem}.badge{color:var(--accent);text-transform:capitalize;background:#e0a45826;border-radius:99px;padding:1px 8px;font-size:.78rem;display:inline-block}.empty{color:var(--muted)}.viewer{flex-direction:column;height:100dvh;display:flex;position:fixed;inset:0;overflow:hidden}.viewer-title{padding:max(10px, env(safe-area-inset-top)) 16px 0;text-align:center;color:var(--muted);text-transform:capitalize;white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;overflow:hidden}.stage{touch-action:none;-webkit-user-select:none;user-select:none;flex:1;place-items:center;min-height:0;display:grid;position:relative}.book{--edge:10px;position:relative}.book-host{filter:drop-shadow(0 24px 30px #0000008c);width:100%;height:100%;position:relative}.book-stack{background:repeating-linear-gradient(90deg,#f4f1ea 0 1px,#cfc8b8 1px 2px);border-radius:2px;transition:width .6s;position:absolute;top:0;bottom:0;box-shadow:0 20px 30px #0006}.book-stack-right{right:calc(var(--edge) * var(--unread) * -1);width:calc(var(--edge) * var(--unread) + 4px);transform:translateY(calc(var(--edge) * var(--unread) * .4))}.book-stack-left{left:calc(var(--edge) * var(--read) * -1);width:calc(var(--edge) * var(--read) + 4px);transform:translateY(calc(var(--edge) * var(--read) * .4))}.flip-page{background:#fff;overflow:hidden}.flip-page img{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.loader{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:44px;height:44px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.progress,.hint{border:1px solid var(--border);color:var(--muted);white-space:nowrap;pointer-events:none;background:#14120ed9;border-radius:99px;padding:6px 14px;font-size:.82rem;position:absolute;left:50%;transform:translate(-50%)}.progress{top:8px}.hint{color:var(--text);pointer-events:auto;cursor:pointer;white-space:normal;text-align:center;max-width:calc(100% - 32px);animation:.4s both hint-in,2.4s ease-in-out .4s infinite hint-pulse;bottom:10px}@keyframes hint-in{0%{opacity:0;transform:translate(-50%,8px)}}@keyframes hint-pulse{50%{border-color:var(--accent)}}.controls{min-height:var(--controls-h);padding:10px max(16px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));border-top:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1e1b16eb;flex:none;justify-content:space-between;align-items:center;gap:8px;display:flex}.ctrl-group{align-items:center;gap:6px;display:flex}.ctrl{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:6px;min-width:44px;height:44px;padding:0 10px;transition:background .15s,border-color .15s,transform .1s;display:inline-flex}.ctrl:hover:not(:disabled){border-color:var(--accent)}.ctrl:active:not(:disabled){transform:scale(.94)}.ctrl:disabled{opacity:.35;cursor:default}.ctrl-main{background:var(--accent);color:var(--accent-ink);border-color:#0000;min-width:52px}.ctrl-label{font-size:.88rem}.page-indicator,.page-form{font-variant-numeric:tabular-nums;justify-content:center;align-items:center;gap:4px;min-width:84px;height:44px;font-size:.95rem;display:inline-flex}.page-indicator{cursor:pointer;background:0 0;border:none;border-radius:10px}.page-indicator:hover{background:var(--surface)}.page-form input{border:1px solid var(--accent);background:var(--bg);width:48px;height:34px;color:var(--text);text-align:center;font:inherit;border-radius:8px}@media (width<=560px){.ctrl-label{display:none}.controls{padding-left:max(8px, env(safe-area-inset-left));padding-right:max(8px, env(safe-area-inset-right));gap:4px}.ctrl-group{gap:2px}.ctrl{min-width:40px;padding:0 6px}.page-indicator,.page-form{min-width:64px}}@media (height<=480px){.viewer-title{display:none}.controls{min-height:56px;padding-top:6px;padding-bottom:max(6px, env(safe-area-inset-bottom))}.ctrl,.page-indicator,.page-form{height:40px}}.rotate-overlay{z-index:100;text-align:center;background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex;position:fixed;inset:0}.rotate-overlay h2{margin:12px 0 0}.rotate-overlay p{max-width:320px;color:var(--muted);margin:0 0 8px;line-height:1.5}.rotate-phone{border:3px solid var(--text);border-radius:12px;width:56px;height:96px;animation:2.2s ease-in-out infinite rotate-to-landscape;position:relative}.rotate-phone span{background:var(--text);border-radius:2px;width:14px;height:3px;margin-left:-7px;position:absolute;bottom:6px;left:50%}.rotate-phone.to-portrait{animation-name:rotate-to-portrait}@keyframes rotate-to-landscape{0%,20%{transform:rotate(0)}60%,to{border-color:var(--accent);transform:rotate(-90deg)}}@keyframes rotate-to-portrait{0%,20%{transform:rotate(-90deg)}60%,to{border-color:var(--accent);transform:rotate(0)}}.btn-primary{background:var(--accent);color:var(--accent-ink);cursor:pointer;border:none;border-radius:12px;padding:12px 22px;font-weight:600;display:inline-block}.viewer-message{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:100dvh;padding:24px;display:flex}.viewer .viewer-message{min-height:0}.viewer-message p{color:var(--muted)}@media (prefers-reduced-motion:reduce){.rotate-phone,.hint{animation:none}}
