:root{color-scheme:dark;--ink:#f6ecd9;--muted:#c9c0ab;--gold:#f2cc86;--panel:#14231fee}*{box-sizing:border-box}body{margin:0;background:#223a36;color:var(--ink);font:15px/1.5 system-ui,sans-serif}#stage,canvas{position:fixed;inset:0;width:100%;height:100%;display:block}canvas{touch-action:none}header{position:fixed;top:28px;left:32px;pointer-events:none;text-shadow:0 2px 12px #081511,0 1px 4px #081511}h1,h2{font-family:Georgia,serif;font-weight:400;margin:0;line-height:1.05}h1{font-size:clamp(2rem,4.5vw,4.7rem);margin:.25em 0 .18em}h2{font-size:1.5rem;margin:.2em 0}.eyebrow,small{font-size:.69rem;font-weight:700;letter-spacing:.18em;color:var(--gold)}header p{margin:0;color:#f6ecd9}aside{position:fixed;right:26px;bottom:80px;width:min(310px,calc(100% - 32px));padding:17px;background:var(--panel);border:1px solid #b49c684f;border-radius:10px;max-height:62vh;overflow:auto}nav{display:flex;flex-wrap:wrap;gap:5px;margin:9px 0 13px}button{font:inherit;font-size:.79rem;color:var(--ink);background:#233730;border:1px solid #b49c6877;border-radius:5px;padding:6px 9px;cursor:pointer}button:hover,button[aria-pressed=true]{background:var(--gold);color:#17241f}article{border-top:1px solid #b49c684f;padding-top:9px}article p,details p{color:var(--muted);margin:.55em 0}details{font-size:.82rem}summary{cursor:pointer}a{color:var(--gold)}footer{position:fixed;bottom:16px;left:24px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;background:var(--panel);border-radius:8px;padding:7px}footer span{font-size:.75rem;padding:0 6px}.pin{position:absolute;left:0;top:0;border-radius:50%;width:31px;height:31px;padding:0;font-weight:bold;background:#18342d;color:var(--gold);border:1px solid var(--gold);box-shadow:0 2px 10px #132522}.pin[hidden]{display:none}.error{margin:30vh auto;width:min(30rem,90%);background:var(--panel);padding:1rem}@media(max-width:670px){header{left:14px;top:12px}aside{right:10px;bottom:62px;padding:10px;width:min(345px,calc(100% - 20px));max-height:33vh}footer{left:8px;bottom:8px}footer span{display:none}.pin{width:28px;height:28px}}@media(max-height:500px) and (min-width:671px){aside{bottom:57px;max-height:80vh}}
