:root{color-scheme:light;--ground:#ddbd4d;--ink:#15191b;--muted:#4c5356;--ui:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--ground);color:var(--ink);font:14px/1.5 var(--ui)}
main{position:fixed;inset:0;width:100vw;height:100dvh;overflow:hidden}
canvas{display:block;width:100%;height:100%;cursor:crosshair;touch-action:pinch-zoom;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}
canvas:focus{outline:none}canvas:focus-visible{outline:2px solid var(--ink);outline-offset:-3px}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.reading{position:fixed;z-index:2;left:max(12px,env(safe-area-inset-left));top:max(12px,env(safe-area-inset-top));width:max-content;max-width:min(330px,calc(100vw - 80px));padding:7px 10px 8px;background:rgba(245,233,207,.97);pointer-events:none;font:12.5px/1.45 var(--ui);color:var(--ink);font-variant-numeric:tabular-nums}
.reading p{margin:0}.reading .r-h{font-weight:650;font-size:15px;margin-bottom:2px}
.reading .r-l{color:var(--muted)}.reading .r-l.sel{color:var(--ink)}.reading .r-l b{font-weight:650;color:var(--ink)}
.reading .sw{display:inline-block;width:14px;height:0;margin:0 6px 3px 0;vertical-align:middle;border-top:2px solid var(--ink)}
.reading .r-f{color:var(--muted);font-size:11.5px;margin-top:3px}
.reading.transient{opacity:.9}
.explore{position:fixed;z-index:3;top:max(8px,env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right));width:44px;height:44px;padding:0;border-radius:50%;border:1px solid var(--ink);background:rgba(245,233,207,.8);color:var(--ink);font:600 17px/1 var(--ui);cursor:pointer}
.explore:hover,.explore:focus-visible{background:var(--ink);color:var(--ground)}
.status{position:fixed;left:50%;top:40%;transform:translate(-50%,-50%);z-index:4;width:min(440px,calc(100vw - 40px));text-align:center;color:var(--muted);font:13px/1.6 var(--ui);background:var(--ground);padding:14px;border:1px solid #c3c8c5}
.status p{margin:0 0 10px}.status button{min-height:44px;font:inherit;color:var(--ink);background:#f2f3f1;border:1px solid var(--ink);padding:0 16px;cursor:pointer}
@media(max-width:360px){.reading{font-size:11.5px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media(forced-colors:active){.explore{border-color:ButtonText;color:ButtonText}canvas{border:1px solid CanvasText}.reading{border:1px solid CanvasText}}
