:root{color-scheme:dark;--bg:#101c1d;--ink:#f5e9d4;--accent:#eac491;--muted:#bbcbc4;--line:#4d5850}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 system-ui,sans-serif}main{max-width:1600px;margin:auto}header{display:flex;align-items:center;gap:18px;padding:20px clamp(16px,4vw,62px);border-bottom:1px solid var(--line)}header p{margin:2px 0;color:var(--muted)}h1,h2{font-family:Georgia,serif;font-weight:normal;line-height:1.05;margin:4px 0}h1{font-size:clamp(34px,5vw,59px)}h2{font-size:clamp(25px,4vw,39px)}.seal{border:1px solid #aa916d;border-radius:50%;color:var(--accent);width:52px;height:52px;display:grid;place-items:center;font:31px Georgia}.eyebrow,.stage-caption{font:700 11px/1.4 system-ui;letter-spacing:.18em;color:var(--accent)}#stage{height:clamp(380px,62vh,780px);position:relative;overflow:hidden;background:#476467}#view,#markers{position:absolute;inset:0}#view{touch-action:none;cursor:grab}#view:active{cursor:grabbing}#view canvas{width:100%;height:100%;display:block}#markers{pointer-events:none}.marker{position:absolute;pointer-events:auto;transform:translate(-50%,-50%);border-radius:50%;width:34px;height:34px;padding:0;background:#152120ed;color:#fff3d8;border:1px solid #eac491;box-shadow:0 2px 10px #0009}.stage-caption{pointer-events:none;position:absolute;inset:auto 0 0;display:flex;justify-content:space-between;gap:10px;padding:16px clamp(12px,4vw,60px);background:linear-gradient(transparent,#071011b8);color:#fff2d6}#error{position:absolute;inset:25% 10% auto;background:#132021;padding:24px}.dock,.reading{padding:16px clamp(16px,4vw,62px);border-top:1px solid var(--line)}.controls,#parts{display:flex;flex-wrap:wrap;gap:7px}button{font:600 13px/1.2 system-ui;padding:9px 13px;cursor:pointer;border:1px solid #59675e;background:#1d2c2c;color:var(--ink);border-radius:5px}button:hover{border-color:var(--accent)}button[aria-pressed=true],button[aria-current=true]{background:#eac491;color:#191e1b}button:focus-visible,a:focus-visible,#view:focus-visible,summary:focus-visible{outline:2px solid #ffd799;outline-offset:2px}#help{margin:8px 0 0;font-size:13px;color:var(--muted)}article,details{max-width:76ch;margin:22px 0}article p,details p{color:var(--muted)}summary{cursor:pointer}a{color:var(--accent)}@media(max-width:540px){#stage{height:clamp(350px,58svh,560px)}.stage-caption{font-size:9px;letter-spacing:.11em}}
