/* Horizontal text in both scroll directions. */
:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Noto Sans JP",sans-serif;line-height:1.6;font-synthesis:none;color:#f5f5f5;background:#101010;writing-mode:horizontal-tb}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;min-width:0;background:#101010}
button,input,select{font:inherit}
button,a,select,input{touch-action:manipulation}
button{min-height:44px;padding:.6rem .9rem;border:1px solid #686868;border-radius:7px;background:#262626;color:#fff;cursor:pointer}
button:hover:not(:disabled){background:#363636;border-color:#b6b6b6}
button:disabled{opacity:.5;cursor:default}
a{color:#dedede;text-underline-offset:3px;overflow-wrap:anywhere}
:focus-visible{outline:3px solid #fff;outline-offset:3px}
.app-header{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px max(16px,env(safe-area-inset-right)) 14px max(16px,env(safe-area-inset-left));border-bottom:1px solid #424242;background:#171717}
.home-button{display:flex;align-items:center;justify-content:center;width:46px;height:46px;padding:10px;flex:none}
.home-button svg{width:25px;height:25px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.app-heading{min-width:0;flex:1}
.brand{margin:0;color:#b8b8b8;font-size:.73rem;letter-spacing:.12em}
h1{margin:0;font-size:clamp(1.05rem,3vw,1.5rem);line-height:1.5;overflow-wrap:anywhere}
.header-account{display:flex;align-items:flex-end;flex-direction:column;gap:2px;font-size:.8rem;white-space:nowrap}
.version{color:#b8b8b8}
#walletBalance{font-weight:650;font-variant-numeric:tabular-nums}
main{max-width:1400px;margin:auto;padding:0 max(16px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
.status{margin:0;min-height:2.5rem;padding:.55rem 0;font-size:.9rem;overflow-wrap:anywhere}
.status.error,.dialog-status.error{color:#ffb8b8}
.section-heading,.reader-toolbar,.reader-links,.actions,.reader-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.section-heading{justify-content:space-between;margin:8px 0 14px}
h2{font-size:1.2rem;margin:0;overflow-wrap:anywhere}
.catalog-note{font-size:.88rem;color:#bfbfbf;margin:0 0 20px}
.reference-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:14px}
.reference-card{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:20px;border:1px solid #414141;border-radius:10px;background:#191919}
.reference-card h3{margin:0 0 10px;font-size:1.05rem;overflow-wrap:anywhere}
.reference-card p{margin:2px 0;color:#bfbfbf;font-size:.9rem;overflow-wrap:anywhere}
.reference-card .actions{margin-top:auto;padding-top:18px}
.reference-series{color:#bfbfbf;overflow-wrap:anywhere;font-size:.9rem}
.reader-links{margin:0 0 12px;font-size:.85rem}
.reader-links a{max-width:100%}
.reader-toolbar{justify-content:space-between;margin-bottom:12px}
.reader-toolbar label{display:flex;align-items:center;gap:9px;font-size:.88rem;flex-wrap:wrap}
select{min-height:44px;max-width:100%;padding:.4rem .65rem;background:#202020;border:1px solid #686868;border-radius:7px;color:#fff}
.reader-hint{font-size:.8rem;color:#bfbfbf;margin:0}
.reader-stage{display:flex;direction:rtl;width:100%;height:76vh;height:76dvh;min-height:300px;overflow-x:auto;overflow-y:hidden;overscroll-behavior:contain;scrollbar-gutter:stable;background:#080808;border:1px solid #424242;border-radius:8px;scroll-snap-type:x proximity;touch-action:pan-x pan-y}
.reader-page{position:relative;display:flex;flex-direction:column;flex:0 0 100%;width:100%;height:100%;min-width:0;padding:12px;direction:ltr;writing-mode:horizontal-tb;scroll-snap-align:start}
.page-caption{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;margin:0 0 8px;font-size:.8rem;color:#c5c5c5;flex:none}
.page-ownership{font-variant-numeric:tabular-nums}
.page-media{display:flex;align-items:center;justify-content:center;min-height:0;min-width:0;flex:1;position:relative}
.page-media img,.page-media video{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.page-media video{width:100%;height:100%;background:#080808}
.page-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;max-width:100%;padding:24px 12px;text-align:center;color:#c5c5c5}
.page-placeholder p{margin:0;overflow-wrap:anywhere}
.page-placeholder .price{font-size:1.3rem;color:#fff;font-variant-numeric:tabular-nums}
.page-placeholder button{max-width:100%;white-space:normal}
.page-filename{margin:8px 0 0;flex:none;font-size:.75rem;color:#969696;overflow-wrap:anywhere}
.reader-stage[data-mode="vertical"]{display:block;direction:ltr;overflow-x:hidden;overflow-y:auto;scroll-snap-type:none}
.reader-stage[data-mode="vertical"] .reader-page{height:auto;min-height:0;width:100%;padding:16px 12px;border-bottom:1px solid #363636}
.reader-stage[data-mode="vertical"] .page-media{display:block;flex:none}
.reader-stage[data-mode="vertical"] .page-media img,.reader-stage[data-mode="vertical"] .page-media video{width:auto;height:auto;max-width:100%;max-height:none;margin:0 auto}
.reader-stage[data-mode="vertical"] .page-placeholder{min-height:360px}
.reader-controls{justify-content:space-between;margin:12px 0}
#pagePosition{font-size:.88rem;font-variant-numeric:tabular-nums;text-align:center}
.reader-file-name{margin:0;color:#aaa;font-size:.8rem;overflow-wrap:anywhere}
.empty{color:#bbb;padding:30px 0}
dialog{width:min(440px,calc(100% - 24px));max-height:calc(100dvh - 32px);overflow:auto;margin:auto;padding:24px;border:1px solid #737373;border-radius:12px;color:#fff;background:#202020;box-shadow:0 20px 70px #0009;writing-mode:horizontal-tb;direction:ltr}
dialog::backdrop{background:#000b}
dialog h2{font-size:1.15rem}
.dialog-page{color:#bfbfbf;overflow-wrap:anywhere;font-size:.9rem}
.purchase-summary{margin:20px 0}
.purchase-summary div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #454545}
.purchase-summary dt,.purchase-summary dd{margin:0;font-size:.92rem;font-variant-numeric:tabular-nums}
.dialog-status{min-height:1.5rem;margin:0 0 12px;font-size:.88rem;overflow-wrap:anywhere}
.dialog-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.primary{color:#111;background:#eee;border-color:#eee;font-weight:650}
.primary:hover:not(:disabled){color:#111;background:#fff;border-color:#fff}
.copy-fallback{position:fixed;z-index:5;left:12px;right:12px;bottom:12px;padding:16px;max-width:700px;margin:auto;border:1px solid #737373;border-radius:10px;background:#242424;box-shadow:0 10px 30px #0008}
.copy-fallback label{display:block;font-size:.85rem}
.copy-fallback input{display:block;width:100%;min-height:44px;margin:8px 0 12px;padding:8px;border:1px solid #888;border-radius:5px;background:#101010;color:#fff}
@media(max-width:480px){.app-header{gap:9px;padding-top:10px;padding-bottom:10px}.header-account{flex-direction:row;justify-content:space-between;align-items:center;width:100%;padding-left:55px}.reader-page{padding:8px}.reader-controls{gap:6px}.reader-controls button{font-size:.8rem;padding:.5rem .6rem}.reader-controls #pagePosition{font-size:.8rem}.reader-stage{height:70vh;height:70dvh}.reader-toolbar{align-items:flex-start}.reader-hint{width:100%}dialog{padding:18px}.purchase-summary div{gap:6px}.purchase-summary dt,.purchase-summary dd{font-size:.85rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
