:root{--bg:#f7f8fb;--card:#fff;--border:#e5e7eb;--text:#111;--muted:#6b7280;--brand:#2563eb;--reader-bg:#0b0c0e;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--touch:52px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--glass-bg:#ffffff1f;--glass-border:#ffffff38;--glass-highlight:#fff6;--glass-shadow:0 8px 28px #00000047;--glass-blur:blur(24px) saturate(180%)}@media (prefers-color-scheme:dark){:root{--bg:#0b0c0e;--card:#121418;--border:#1e232a;--text:#e5e7eb;--muted:#9ca3af}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);height:100%;color:var(--text);touch-action:manipulation;margin:0;font-family:system-ui;overflow:hidden}body.home{padding:calc(24px + var(--safe-top)) 16px calc(24px + var(--safe-bottom));justify-content:center;align-items:center;min-height:100%;display:flex;overflow:auto}.wrap{background:var(--card);border:1px solid var(--border);text-align:center;border-radius:16px;width:min(560px,100%);padding:30px 26px;box-shadow:0 10px 30px #0000000d}.brand{letter-spacing:-.03em;margin:0 0 6px;font-size:28px;font-weight:700}.tagline{color:var(--muted);margin:0 0 24px;font-size:15px}.dropzone{border:2px dashed var(--border);transition:.2s var(--ease-out);cursor:pointer;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;min-height:140px;padding:36px 20px;display:flex}.dropzone:hover,.dropzone:focus-visible{border-color:var(--brand);outline:none}.dropzone.dragover{border-color:var(--brand);background:#2563eb0f}.dz-message{color:var(--text);font-size:16px}.dz-hint{color:var(--muted);margin-top:10px;font-size:13px}.home-footer{color:var(--muted);justify-content:center;align-items:center;gap:10px;margin-top:20px;font-size:13px;display:flex}.github-link{color:var(--muted);transition:color .15s var(--ease-out), transform .15s var(--ease-out);justify-content:center;align-items:center;display:inline-flex}.github-link:hover,.github-link:focus-visible{color:var(--text);outline:none}.github-icon{display:block}.se-pre-con{z-index:9999;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000b3;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.se-pre-con[hidden]{display:none}.spinner{border:5px solid #fff3;border-top-color:#fff;border-radius:50%;width:56px;height:56px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.progress-text{color:#fff;margin-top:20px;font-size:18px;font-weight:600}.glass-panel{background:linear-gradient(180deg, #fff3 0%, #ffffff14 42%, #ffffff0d 100%), var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border-top:1px solid var(--glass-border);box-shadow:var(--glass-shadow), inset 0 1px 0 var(--glass-highlight);border-bottom:1px solid #ffffff1f;border-left:none;border-right:none}.glass-chip{-webkit-backdrop-filter:blur(18px)saturate(170%);color:#fff;transition:transform 80ms var(--ease-out), background .1s var(--ease-out);background:linear-gradient(160deg,#ffffff47 0%,#ffffff14 55%,#ffffff0a 100%),#14161c59;border:1px solid #ffffff52;box-shadow:0 6px 24px #00000047,inset 0 1px #fff6}.glass-chip:active{background:linear-gradient(160deg,#2563eb8c 0%,#2563eb47 100%),#14161c66;transform:scale(.98)}.reader{background:var(--reader-bg);color:#e5e7eb;-webkit-user-select:none;user-select:none;transition:background-color .35s var(--ease-out);flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.reader.matte-light{color:#1a1d24;--glass-bg:#ffffff9e;--glass-border:#0f12181f;--glass-highlight:#ffffffd9;--glass-shadow:0 8px 28px #0f12181f}.reader.matte-light .glass-panel{background:linear-gradient(180deg, #ffffffb8 0%, #ffffff7a 42%, #f8fafc6b 100%), var(--glass-bg);color:#1a1d24;border-top-color:#0f121814;border-bottom-color:#0f12181a}.reader.matte-light .glass-chip{color:#1a1d24;background:linear-gradient(160deg,#ffffffe0 0%,#ffffff8c 55%,#f1f5f980 100%),#ffffff73;border-color:#0f121824;box-shadow:0 6px 20px #0f12181a,inset 0 1px #ffffffe6}.reader.matte-light .tool-btn{color:#1a1d24;background:#0f12180f}.reader.matte-light .tool-btn:active{background:#0f12181f}.reader.matte-light .reader-meta{color:#1a1d249e}.reader.matte-light .page-placeholder{color:#1a1d2473}.reader.matte-light .page-surface img{box-shadow:0 8px 28px #0f12182e}.reader.matte-light .hotspot-hint{color:#1a1d248c}.reader.matte-light .page-scrubber{accent-color:#1a1d24}.reader[hidden]{display:none}.reader-bar,.reader-dock{width:100%;transition:transform .2s var(--ease-out), opacity .2s var(--ease-out);z-index:30;border-radius:0;margin:0;position:absolute;left:0;right:0}.reader-bar{top:0}.reader-dock{bottom:0}.reader.chrome-hidden .reader-bar{opacity:0;pointer-events:none;transform:translateY(-110%)}.reader.chrome-hidden .reader-dock{opacity:0;pointer-events:none;transform:translateY(110%)}.reader.chrome-hidden .stage .nav-arrow,.reader.chrome-hidden .fs-exit-btn{opacity:0;pointer-events:none}.chrome-reveal{z-index:28;cursor:pointer;background:0 0;border:none;margin:0;padding:0;display:none;position:absolute;left:0;right:0}.reader.chrome-hidden .chrome-reveal{display:block}.chrome-reveal-top{height:calc(64px + var(--safe-top));top:0}.chrome-reveal-bottom{height:calc(72px + var(--safe-bottom));bottom:0}.reader-bar{padding:calc(10px + var(--safe-top)) calc(16px + var(--safe-right)) 12px calc(16px + var(--safe-left));grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;display:grid}.reader-bar-cluster{align-items:center;gap:12px;display:flex}.reader-bar-cluster-end{justify-content:flex-end}.tool-btn{color:#fff;cursor:pointer;min-width:44px;min-height:44px;transition:transform .15s var(--ease-out), background .15s var(--ease-out);background:#ffffff1a;border:none;border-radius:12px;justify-content:center;align-items:center;padding:8px 12px;font-family:inherit;display:flex}.tool-btn:active{background:#ffffff38;transform:scale(.96)}.icon-slot{justify-content:center;align-items:center;line-height:0;display:inline-flex}.tabler-icon{flex-shrink:0;display:block}.reader-title-block{text-align:center;min-width:0;padding:0 4px}.reader-title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.reader-meta{color:#e5e7ebb8;margin-top:2px;font-size:12px}.fs-exit-btn{top:calc(14px + var(--safe-top));right:calc(14px + var(--safe-right));z-index:50;cursor:pointer;min-width:44px;min-height:44px;transition:transform .15s var(--ease-out);border:none;border-radius:12px;justify-content:center;align-items:center;padding:10px;display:flex;position:fixed}.fs-exit-btn[hidden]{display:none}.stage{touch-action:none;flex-direction:column;flex:1;justify-content:center;align-items:stretch;width:100%;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}.stage.is-zoomed .nav-arrow{opacity:.35}.stage.is-zoomed .hotspot{pointer-events:none;opacity:0}.page-frame{flex:1;justify-content:center;align-self:stretch;align-items:center;width:100%;height:auto;min-height:0;padding:0;display:flex;overflow:hidden}.page-surface{box-sizing:border-box;transform-origin:50%;will-change:transform;justify-content:center;align-items:center;width:max-content;max-width:100%;height:100%;max-height:100%;line-height:0;display:flex;position:relative}.page-surface img{object-fit:contain;object-position:center;cursor:grab;width:auto;max-width:100%;height:100%;max-height:100%;display:block;box-shadow:0 8px 32px #00000073}.stage.is-zoomed .page-surface{cursor:grabbing}.page-surface img.page-fade,.page-surface img.loading{opacity:.35}.page-placeholder{color:var(--muted);justify-content:center;align-items:center;min-width:180px;min-height:120px;padding:24px;font-size:15px;line-height:1.4;display:flex;position:absolute;inset:0}.page-placeholder[hidden],.page-surface img[hidden]{display:none}.nav-arrow{z-index:25;cursor:pointer;width:56px;height:56px;transition:opacity .25s var(--ease-out), transform 80ms var(--ease-out), background .1s var(--ease-out);border:none;border-radius:999px;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.nav-arrow:disabled{opacity:.25;pointer-events:none}.nav-arrow:active{transform:translateY(-50%)scale(.98)}.nav-prev{left:calc(10px + var(--safe-left))}.nav-next{right:calc(10px + var(--safe-right))}.hotspot{z-index:5;cursor:pointer;color:#ffffffb3;background:0 0;border:none;justify-content:center;align-items:flex-end;margin:0;padding:0;display:flex;position:absolute}.hotspot-hint{opacity:0;transition:opacity .2s var(--ease-out);text-shadow:0 2px 10px #0000008c;pointer-events:none;margin-bottom:12%;font-size:26px;font-weight:300;line-height:1}.hotspot:active .hotspot-hint{opacity:.9}.stage.is-swiping .hotspot,.stage.is-swiping .hotspot:active{pointer-events:none}.stage.is-swiping .hotspot-hint,.stage.is-swiping .hotspot:active .hotspot-hint{opacity:0}.hotspot-prev{justify-content:flex-start;width:32%;padding-left:4%;top:0;bottom:0;left:0}.hotspot-next{justify-content:flex-end;width:32%;padding-right:4%;top:0;bottom:0;right:0}.reader-dock{grid-template-columns:var(--touch) 1fr var(--touch);padding:10px calc(16px + var(--safe-right)) calc(10px + var(--safe-bottom)) calc(16px + var(--safe-left));align-items:center;gap:12px;display:grid}.dock-btn{width:var(--touch);height:var(--touch);cursor:pointer;transition:transform 80ms var(--ease-out);border:none;border-radius:16px;justify-content:center;align-items:center;display:flex}.dock-btn:disabled{opacity:.3;pointer-events:none}.page-scrubber{width:100%;height:32px;accent-color:var(--brand);cursor:pointer}@media (width>=900px){.nav-arrow{width:64px;height:64px}.hotspot-prev,.hotspot-next{width:28%}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms;animation-duration:.01ms;animation-iteration-count:1}}.host-linux-gnome .reader.chrome-hidden .reader-dock{opacity:1;pointer-events:auto;transform:none}.host-linux-gnome .reader.chrome-hidden .chrome-reveal-bottom,.host-linux-gnome .stage .nav-arrow{display:none}
