/* Sediment. Luke Steuber, 2026. Code: MIT. The caption dialog is styled by ../poem-shell/modal.css. */
:root{color-scheme:dark;--bg:#0d0c0b;--ink:#efe4cb;--muted:#b9ab90;--accent:#7fc4c9;--sans:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none;background:var(--bg);color:var(--ink);font:14px/1.5 var(--sans)}
main{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;overflow:hidden}
canvas{display:block;width:100%;height:100%;cursor:default;touch-action:pinch-zoom;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}
canvas:focus{outline:none}canvas:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
:focus-visible{outline:2px solid var(--accent);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}
/* Reserved reading strip under the deposit; app.js sets its bounds so it never covers a grain. */
.readout{position:absolute;margin:0;overflow:hidden;pointer-events:none;color:var(--muted);font:12px/17px var(--sans)}
.readout.phone{font-size:11px;line-height:15px}
.readout strong{color:var(--ink);font-weight:600}
.readout.live strong{color:var(--accent)}
.explore-open{position:fixed;top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));z-index:4;width:44px;height:44px;padding:0;border-radius:50%;border:1px solid #efe4cb4a;background:#0d0c0bd9;color:#efe4cbd0;font:600 16px/1 var(--sans);cursor:pointer}
.explore-open:hover,.explore-open:focus-visible{color:var(--ink);border-color:#efe4cba0;background:#0d0c0b}
.status{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;width:min(460px,calc(100vw - 48px));margin:0;padding:14px;text-align:center;color:var(--muted);background:var(--bg);font:12px/1.8 var(--sans)}
.status p{margin:0 0 12px}
.status button{min-height:44px;padding:0 16px;font:inherit;color:var(--ink);background:#1d1813;border:1px solid #6b5640;cursor:pointer}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media(forced-colors:active){.explore-open,.status button{border-color:ButtonText;color:ButtonText;background:ButtonFace}canvas{forced-color-adjust:none}.readout{forced-color-adjust:none;background:#0d0c0b}}
