:root{--color-bg:#0a131a;--color-panel:#111e27;--color-ink:#f3eee0;--color-muted:#b5c1c7;--color-accent:#e3bc75;--color-accent-ink:#182027;--color-line:#34434a;--color-error:#ffb7a4;--color-shade:#071018d9;--font-display:Georgia, "Times New Roman", serif;--font-body:"Avenir Next", Avenir, "Segoe UI", sans-serif;--space-sm:.6rem;--space-md:1rem;--space-lg:1.6rem;--space-xl:2.5rem;--radius-control:4px;--dur-fast:.18s;--ease-out:ease-out}*{box-sizing:border-box}html,body{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-body);margin:0;overflow-x:clip}body{min-width:320px}button{font:inherit;color:inherit;cursor:pointer;border:1px solid var(--color-line);border-radius:var(--radius-control);background:var(--color-panel);white-space:nowrap;min-height:44px;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);padding:.75rem 1rem}button:hover{border-color:var(--color-accent)}button:active{transform:translateY(1px)}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--color-accent);color:var(--color-accent-ink);border-color:var(--color-accent)}button.primary:hover{background:var(--color-ink)}button.quiet{background:var(--color-shade)}a{color:var(--color-accent)}[hidden]{display:none!important}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--font-display);overflow-wrap:anywhere;min-width:0;font-style:normal;font-weight:400}p{line-height:1.65}#world{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#shade{pointer-events:none;background:linear-gradient(180deg, var(--color-shade), transparent 24%, transparent 55%, var(--color-shade));position:fixed;inset:0}header{z-index:2;padding:max(1.2rem, env(safe-area-inset-top)) max(1.8rem, env(safe-area-inset-right)) 0 max(1.8rem, env(safe-area-inset-left));justify-content:space-between;align-items:center;gap:1rem;display:flex;position:fixed;inset:0 0 auto}.brand{font-family:var(--font-display);letter-spacing:-.04em;align-items:center;gap:.6rem;font-size:1.55rem;display:flex}.brand svg{width:27px;height:32px;color:var(--color-accent)}header nav{gap:.5rem;display:flex}.eyebrow{color:var(--color-accent);letter-spacing:.2em;text-transform:uppercase;font-size:.68rem;font-weight:600}#intro{z-index:1;max-width:600px;padding-right:1.5rem;position:fixed;bottom:13vh;left:7vw}#intro h1{letter-spacing:-.055em;margin:1.2rem 0;font-size:clamp(3.5rem,7vw,7rem);line-height:.98}#intro .lede{color:var(--color-ink);max-width:410px;text-shadow:0 2px 14px var(--color-bg);font-size:1.05rem}#intro .actions{flex-wrap:wrap;align-items:center;gap:1rem;margin-top:1.6rem;display:flex}.subtle{color:var(--color-muted);font-size:.78rem}#journal{z-index:1;background:var(--color-shade);border:1px solid var(--color-line);width:min(380px,100vw - 4rem);max-height:calc(100dvh - 15rem);padding:1.7rem;position:fixed;bottom:8rem;left:2rem;overflow-y:auto}#journal h1{margin:.7rem 0;font-size:2.4rem;line-height:1.05}#journal .reference{color:var(--color-muted);margin-bottom:.9rem;font-size:.8rem}#journal p{font-size:.88rem}#journal .primary{width:100%}#hint{color:var(--color-muted);margin:.7rem 0 0;font-size:.75rem!important}#question{border-top:1px solid var(--color-line);margin-top:1rem;padding-top:1rem}#question h2{font-family:var(--font-body);font-size:.92rem;line-height:1.5}#answers{gap:.5rem;display:grid}#answers button{text-align:left;white-space:normal;font-size:.83rem}#feedback{color:var(--color-accent);margin:.8rem 0}#timeline{z-index:2;bottom:max(1.5rem, env(safe-area-inset-bottom));background:var(--color-shade);gap:.5rem;max-width:calc(100% - 2rem);padding:.65rem;display:flex;position:fixed;left:50%;transform:translate(-50%)}#timeline button{background:0 0;border-color:#0000;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:48px;height:48px;padding:0;display:flex}#timeline button span{text-transform:uppercase;letter-spacing:.1em;font-size:.5rem}#timeline button[aria-current=step]{border-color:var(--color-accent);color:var(--color-accent)}#timeline button.completed:after{content:"•";color:var(--color-accent);height:4px;line-height:0}#camera-help{color:var(--color-muted);pointer-events:none;font-size:.7rem;position:fixed;bottom:2rem;right:2rem}#status{z-index:4;background:var(--color-panel);text-align:center;max-width:90vw;padding:.7rem 1rem;font-size:.8rem;position:fixed;top:5.5rem;left:50%;transform:translate(-50%)}dialog{color:var(--color-ink);background:var(--color-panel);border:1px solid var(--color-line);border-radius:4px;max-width:min(560px,100vw - 2rem);max-height:calc(100dvh - 3rem);padding:2rem;overflow:auto}dialog::backdrop{background:var(--color-shade)}dialog h2{margin-bottom:1rem;font-size:2.3rem}dialog h3{margin-top:1.6rem;font-size:1.4rem}dialog p{color:var(--color-muted);font-size:.9rem}dialog .close{float:right;margin:-.5rem -.5rem .5rem 1rem}.chapter-row{border-top:1px solid var(--color-line);padding:1.2rem 0}.chapter-row h3{margin:0 0 .6rem}.chapter-row p{margin-bottom:.7rem}#complete h2{font-size:2.8rem}@media (width>=1700px){#journal{left:5vw}}@media (width<=850px){#camera-help{display:none}}@media (width<=600px){header{padding:max(.75rem, env(safe-area-inset-top)) 1rem 0;gap:.4rem}.brand{gap:.35rem;font-size:1.25rem}header nav{gap:.3rem}header button{padding:.65rem .7rem;font-size:.73rem}#intro{bottom:12vh;left:1.5rem}#intro h1{font-size:clamp(3.3rem,15vw,5rem)}#intro .lede{max-width:320px;font-size:.92rem}#journal{width:calc(100vw - 2rem);max-height:44dvh;padding:1.1rem;bottom:6.7rem;left:1rem}#journal h1{margin:.4rem 0;font-size:1.9rem}#journal p{margin-bottom:.7rem;font-size:.82rem}#timeline{bottom:max(.8rem, env(safe-area-inset-bottom));gap:0;padding:.3rem}#timeline button{width:44px;min-width:44px;height:48px}#timeline button span{font-size:.46rem}#status{top:4.3rem}dialog{padding:1.4rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}@media (width<=350px){#timeline{max-width:100%;padding:2px}header{padding-left:.5rem;padding-right:.5rem}}#sound-button{padding-inline:.8rem}.chapter-art{color:var(--color-accent);font-size:2rem;font-family:var(--font-display);margin-bottom:.5rem}#location{pointer-events:none;letter-spacing:.18em;text-transform:uppercase;color:var(--color-ink);text-shadow:0 1px 8px var(--color-bg);font-size:.68rem;position:fixed;top:6rem;left:2rem}#objective{background:var(--color-shade);max-width:290px;color:var(--color-ink);pointer-events:none;padding:.8rem 1rem;font-size:.78rem;line-height:1.5;position:fixed;top:6rem;right:2rem}#walk-controls{left:2rem;bottom:max(1.5rem,env(safe-area-inset-bottom));z-index:3;grid-template-rows:repeat(2,48px);grid-template-columns:repeat(3,48px);gap:4px;display:grid;position:fixed}#walk-controls button{touch-action:none;background:var(--color-shade);-webkit-user-select:none;user-select:none;padding:0}#walk-controls button[data-direction=forward]{grid-column:2}#walk-controls button[data-direction=left]{grid-area:2/1}#walk-controls button[data-direction=back]{grid-area:2/2}#walk-controls button[data-direction=right]{grid-area:2/3}#walk-controls button[aria-pressed=true]{border-color:var(--color-accent);color:var(--color-accent)}#journal.compact #summary,#journal.compact #reference{display:none}#journal-toggle{background:0 0;border-color:#0000;min-width:44px;padding:.4rem;font-size:.8rem;position:absolute;top:.5rem;right:.5rem}#journal.compact{padding:1rem}#journal.compact h1{margin-right:2rem;font-size:1.5rem}#journal.compact #hint{margin-top:.4rem}#version{color:var(--color-muted);pointer-events:none;font-size:.58rem;position:fixed;bottom:.3rem;right:.6rem}@media (hover:hover) and (pointer:fine){:root{--cursor-default:url(/assets/cursors/compass-v1.svg) 4 3, default;--cursor-action:url(/assets/cursors/discover-v1.svg) 15 15, pointer}body{cursor:var(--cursor-default)}button:not(:disabled),a{cursor:var(--cursor-action)}#world{cursor:var(--cursor-default)}#world.discoverable{cursor:var(--cursor-action)}#world:active{cursor:grabbing}#walk-controls{opacity:.8}}@media (width<=600px){header nav{gap:.2rem}header button{padding-inline:.5rem;font-size:.68rem}.brand{font-size:1.15rem}.brand svg{width:21px}#location{max-width:45vw;font-size:.57rem;top:4.7rem;left:1rem}#objective{max-width:46vw;padding:.55rem .7rem;font-size:.68rem;top:4.3rem;right:.7rem}body[data-chapter=galilee] #journal{max-height:32dvh;bottom:11.2rem}body[data-chapter=galilee] #timeline{left:50%;right:auto;bottom:max(.8rem,env(safe-area-inset-bottom));flex-direction:row;padding:.2rem;transform:translate(-50%)}body[data-chapter=galilee] #timeline button{height:44px;min-height:44px}#walk-controls{left:1rem;bottom:calc(5.2rem + env(safe-area-inset-bottom));grid-template-rows:repeat(2,44px);grid-template-columns:repeat(3,44px)}#version{display:none}}@media (width>=601px){body[data-chapter=galilee] #journal{bottom:10rem}}@media (width<=600px){#sound-label{display:none}#sound-button{min-width:44px;padding-inline:.5rem}}@media (width<=360px){.brand svg{display:none}header{padding-inline:.7rem}.brand{font-size:1.05rem}}#biome-controls{z-index:2;background:var(--color-shade);width:245px;padding:.85rem 1rem;position:fixed;top:6rem;right:2rem}#biome-controls label{letter-spacing:.14em;margin-bottom:.5rem;font-size:.6rem;display:block}#biome-select{width:100%;min-height:44px;font:inherit;color:var(--color-ink);background:var(--color-panel);border:1px solid var(--color-line);border-radius:var(--radius-control);padding:.6rem .5rem;font-size:.82rem}#biome-select:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}#biome-select:disabled{opacity:.6;cursor:wait}#biome-controls p{color:var(--color-muted);margin:.5rem 0 0;font-size:.72rem;line-height:1.5}#habitat-progress{color:var(--color-accent)!important}@media (width<=600px){#biome-controls{width:47vw;padding:.6rem;top:4.3rem;right:.7rem}#biome-select{font-size:.7rem}#biome-description{display:none}#biome-controls label{font-size:.5rem}#biome-controls p{font-size:.6rem}}.narration-controls{flex-wrap:wrap;gap:.45rem;margin:.6rem 0;display:flex}.narration-controls button{min-height:44px;padding:.5rem .8rem;font-size:.75rem}#narration-button[aria-pressed=true]{color:var(--color-accent);border-color:var(--color-accent)}
