@font-face{font-family:SportovaPortrait;src:url('/assets/portrait-regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
:root{color-scheme:light;--ink:#181817;--subtle:#65635e;--line:#dfdcd5;--chrome:#faf9f6;--scene:#eeeae4;--control:#fff}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;background:var(--chrome);color:var(--ink);font-family:Helvetica,Arial,sans-serif;font-size:16px}
button,select,a{-webkit-tap-highlight-color:transparent}
button,select,.control{font:inherit;font-size:.875rem;color:var(--ink);border:1px solid var(--line);border-radius:0;background:transparent;min-height:38px;padding:7px 11px}
button,.control{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;cursor:pointer;text-decoration:none}
button:hover:not(:disabled),.control:hover{background:var(--control)}
button:disabled,select:disabled{opacity:.4;cursor:default}
button:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
#catalog-viewer{height:100dvh;min-height:440px;display:flex;flex-direction:column;overflow:hidden}
.masthead{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:25px 28px 22px;border-bottom:1px solid var(--line);flex-shrink:0}
.logo{display:block;width:143px;height:auto}
h1{margin:0;font-family:SportovaPortrait,Georgia,serif;font-size:1.1875rem;font-weight:400;line-height:1.2}
.tools{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;padding:12px 24px;background:var(--chrome);border-bottom:1px solid var(--line);flex-shrink:0}
.tools-left,.tools-right{display:flex;align-items:center;gap:10px;min-width:0}
select{min-width:165px;max-width:255px;background:var(--control);padding-right:22px;cursor:pointer}
.current{font-size:.75rem;color:var(--subtle)}
#stage{position:relative;flex:1;min-height:180px;min-width:0;overflow:auto;background:var(--scene);overscroll-behavior:contain;outline-offset:-3px;scrollbar-color:var(--line) var(--scene)}
#sheet-container{min-width:100%;min-height:100%;display:grid;place-items:center;padding:24px}
#paper{position:relative;background:#fff;box-shadow:0 5px 28px #00000010;width:100%;aspect-ratio:16/9;flex-shrink:0}
canvas{display:block;width:100%;height:100%}
#links{position:absolute;inset:0}
.hotspot{position:absolute;display:block;background:transparent;cursor:pointer}
.hotspot:hover{outline:1px solid #18181745;outline-offset:-1px}
.hotspot:focus-visible{outline:2px solid #181817;outline-offset:-2px}
#status{position:sticky;bottom:16px;width:max-content;max-width:calc(100% - 32px);margin:0 auto;padding:8px 12px;background:var(--chrome);color:var(--subtle);border:1px solid var(--line);font-size:.875rem;z-index:2}
#status[hidden]{display:none}
#stage[aria-busy="true"] #links{visibility:hidden}
.foot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;padding:14px 24px;background:var(--chrome);border-top:1px solid var(--line);flex-shrink:0}
.pagination,.zoom{display:flex;align-items:center;gap:9px}
.icon{width:38px;padding:7px}
#count{min-width:69px;text-align:center;font-size:.875rem;font-variant-numeric:tabular-nums}
#zoom-value{min-width:42px;text-align:center;font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--subtle)}
.edition{font-size:.75rem;color:var(--subtle);letter-spacing:.7px;text-transform:uppercase}
#catalog-viewer.expanded .masthead{display:none}
#catalog-viewer.expanded{height:100dvh;width:100%;background:var(--chrome)}
@media(max-width:680px){.masthead{padding:20px}.tools{padding:12px 16px}.current{display:none}.foot{padding:12px 16px}.edition{display:none}h1{font-size:1rem}#sheet-container{padding:14px}}
@media(max-width:410px){.masthead{padding:18px 16px;gap:8px}.logo{width:126px}h1{font-size:.9375rem}.tools{gap:9px}.tools-left{flex:1}select{width:100%;max-width:100%;min-width:0}.tools-right{width:100%;justify-content:flex-end}.foot{justify-content:center;gap:8px}}
@media(pointer:coarse){button,select,.control{min-height:44px}.icon{min-width:44px}select{font-size:1rem}}
@media(max-height:550px) and (min-width:681px){.masthead{padding:12px 24px}.tools{padding:8px 24px}.foot{padding:8px 24px}}
