@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500&family=Inter:wght@400;500&display=swap');
:root{color-scheme:dark;--ocean:#0d2137;--paper:#f4efe6;--bone:#fbf8f1;--gold:#c9a96e;--muted:#a8bec9}*{box-sizing:border-box}body{margin:0;background:var(--ocean);color:var(--paper);font:14px/1.65 Inter,system-ui,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #79909e66;border-radius:3px;background:#163653e8;color:var(--paper);padding:9px 13px;min-height:42px}button:hover{border-color:var(--gold)}button:disabled{opacity:.5;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:3px}[hidden]{display:none!important}#observatory{position:relative;height:100dvh;min-height:780px;overflow:hidden;isolation:isolate}#space{position:absolute;inset:0}#space>canvas{width:100%;height:100%;display:block;touch-action:none}header{position:absolute;top:0;left:0;right:0;z-index:10;padding:24px 32px;display:flex;justify-content:space-between;align-items:center;gap:16px;pointer-events:none}header>*{pointer-events:auto}.brand{display:flex;gap:12px;align-items:center;color:var(--paper);text-decoration:none;font:25px Fraunces,Georgia,serif}.brand img{width:42px;height:42px;background:var(--paper);padding:3px;border-radius:50%}.brand small{display:block;font:9px Inter,sans-serif;letter-spacing:.22em;margin-top:8px;color:var(--muted)}.header-actions{display:flex;gap:8px}.header-actions button{font-size:11px}.scene-heading{position:absolute;left:39%;top:17%;pointer-events:none;max-width:560px}.scene-heading h1{font:400 clamp(36px,4.7vw,72px)/1.05 Fraunces,Georgia,serif;letter-spacing:-.045em;margin:14px 0}.scene-heading p{color:var(--muted);font-size:13px}.eyebrow{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.paper{background:var(--paper);color:#242724;border:1px solid #f4efe622;box-shadow:0 16px 70px #0004;border-radius:3px;padding:25px;z-index:8;color-scheme:light}.paper .eyebrow,.paper small{color:#5c615d}.paper h2{font:400 31px/1.15 Fraunces,Georgia,serif;letter-spacing:-.035em;margin:13px 0}.paper h3{font:24px Fraunces,Georgia,serif}.paper p{font-size:13px;line-height:1.8;margin:12px 0}.paper button{background:#eae3d7;color:#25343b;border-color:#b8b5ab;font-size:12px}.paper .primary{background:var(--ocean);color:var(--paper);width:100%;display:flex;justify-content:space-between;margin:20px 0 12px;padding:13px 16px}.paper input,.paper select,.paper textarea{background:var(--bone);color:#252a2e;border:1px solid #b8b5ab;border-radius:2px;padding:9px 10px;width:100%;min-width:0;font-size:16px}.paper label{display:block;font-size:12px;margin:13px 0 5px}.paper small{display:block;font-size:10px;line-height:1.65;margin-top:7px}.paper details{border-top:1px solid #d5cec1;padding-top:10px;margin-top:14px;font-size:11px}.paper summary{cursor:pointer}.entry{position:absolute;left:32px;top:116px;width:330px;max-height:calc(100% - 154px);overflow:auto}#results{border:1px solid #b8b5ab;max-height:160px;overflow:auto}#results button{display:block;text-align:left;width:100%;border:0;border-radius:0;border-bottom:1px solid #b8b5ab}#error{color:#a3362b;font-size:12px}.reading{position:absolute;right:30px;top:125px;width:320px;max-height:calc(100% - 360px);overflow:auto}.reading-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.reading-top button{padding:2px 10px;min-height:32px;font-size:22px;background:transparent;border:0}.reading blockquote{margin:20px 0 14px;padding:3px 0 3px 15px;border-left:2px solid var(--gold);font:21px/1.4 Fraunces,Georgia,serif}.row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.row button[aria-pressed=true]{background:var(--ocean);color:var(--paper)}.connections{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}.connections button{font-size:11px}#evidence{word-break:break-word;font-size:11px}.arrival{position:absolute;left:50%;top:64%;transform:translate(-50%,-50%);display:grid;text-align:center;gap:13px;z-index:7}.arrival strong{font:42px Fraunces,Georgia,serif;font-variant-numeric:tabular-nums}.arrival button{justify-self:center}.active .scene-heading{left:32px;top:104px;max-width:450px}.active .scene-heading h1{font-size:36px;margin:8px 0}.active .scene-heading p{max-width:420px;font-size:11px}#explore-controls{position:absolute;left:32px;bottom:225px;display:flex;gap:7px;flex-wrap:wrap;z-index:7}#explore-controls button{font-size:11px}#timeline{position:absolute;bottom:55px;left:32px;right:32px;z-index:7;background:#102b42ed;border:1px solid #a8bec930;border-radius:3px;padding:12px 17px;backdrop-filter:blur(12px)}.timeline-top{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.timeline-top button{border:0;padding:2px 0;background:transparent;color:#e8d6b4}.timeline-top small{margin-left:auto;color:var(--muted);font-size:10px}#time-content{margin-top:9px;font-size:11px}#time-content input{width:100%;accent-color:var(--gold);margin:10px 0}#time-content p{margin:8px 0 0;color:var(--paper)}#time-content small{color:var(--muted);font-size:10px}#period-label{margin-left:auto}#period-buttons{display:flex;gap:5px;flex-wrap:wrap}#period-buttons button{font-size:10px;min-height:28px;padding:3px 8px}#period-buttons [aria-pressed=true]{color:var(--ocean);background:var(--gold)}.signature{position:absolute;right:32px;bottom:15px;font:italic 17px Fraunces,Georgia,serif;color:var(--gold)}.node-label{position:absolute;transform:translate(-50%,-50%);background:#0d2137ec;border:1px solid #a8bec950;border-radius:25px;padding:8px 13px;box-shadow:0 0 26px #a8bec917;font-size:12px;white-space:nowrap;z-index:5}.node-label.selected,.node-label.explored{border-color:var(--gold)}.node-label.selected{background:var(--paper);color:var(--ocean)}.planet-label{position:absolute;pointer-events:none;color:var(--muted);font-size:10px;transform:translate(-50%,10px)}.saved-row{border-bottom:1px solid #d5cec1;padding:12px 0}.saved-row button{text-align:left}#offer{border-top:1px solid #d5cec1;margin-top:22px}#offer p{font-size:12px}.file-warning{position:absolute;z-index:30;inset:30% 15%;background:var(--paper);color:#243541;padding:30px}.file-warning a{color:#163653}
@media(max-width:950px){.entry{left:22px;width:310px}.scene-heading{left:40%}.reading{right:20px;width:285px}.active .scene-heading{max-width:330px}.active .scene-heading h1{font-size:30px}}
@media(max-width:650px){#observatory{min-height:820px}header{padding:17px 18px}.brand{font-size:19px}.brand img{width:32px;height:32px}.brand small{font-size:8px}.header-actions{gap:5px}.header-actions button{font-size:10px;padding:6px 8px}.header-actions #about{display:none}.entry{left:18px;right:18px;top:155px;width:auto;max-height:calc(100% - 180px);padding:22px}.scene-heading{left:22px;top:90px}.scene-heading h1{font-size:28px;margin:6px 0}.scene-heading h1 br{display:none}.scene-heading p,.scene-heading .eyebrow{display:none}.active .scene-heading{left:22px;top:90px;max-width:90%}.active .scene-heading h1{font-size:26px}.active .scene-heading .eyebrow{display:block}.active .scene-heading p{display:block;max-width:90%;font-size:10px}.reading{left:18px;right:18px;top:170px;width:auto;max-height:calc(100% - 430px);padding:18px;z-index:9}.reading h2{font-size:25px}.reading p{font-size:12px}.reading blockquote{font-size:19px}#explore-controls{left:18px;right:18px;bottom:245px;gap:5px}#explore-controls button{padding:7px 9px;font-size:10px}#timeline{left:18px;right:18px;bottom:54px;padding:10px 12px}.timeline-top{gap:7px}.timeline-top small{margin:0;width:100%}#time-summary{font-size:11px}.signature{display:none}.node-label{font-size:10px;padding:7px 9px}#time-content small{font-size:9px}.arrival{top:56%;width:90%}.arrival strong{font-size:33px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

#demo-notice{font-size:11px;padding:10px;background:#e5dac6;color:#433c30}#demo-notice a{color:#163653;text-decoration:underline}.fallback-discoveries{position:absolute;top:30%;left:5%;right:40%;display:grid;gap:10px;z-index:5}
@media(max-width:650px){.panel-open .node-label,.panel-open .fallback-discoveries{visibility:hidden}.fallback-discoveries{left:18px;right:18px}.header-actions #about{display:block}.header-actions #edit{max-width:70px;line-height:1.2}.brand{font-size:17px}.brand img{width:29px;height:29px}#period-buttons{gap:3px}#period-buttons button{font-size:9px;padding:2px 5px}}

/* Reserve space for the real dock height, including wrapped mobile controls. */
#observatory{min-height:600px;--timeline-height:70px;--controls-height:42px}
#explore-controls{bottom:calc(var(--timeline-height) + 70px)}
#time-content{max-height:30dvh;overflow:auto}
.reading{max-height:calc(100% - 125px - var(--timeline-height) - var(--controls-height) - 92px)}
@media(max-width:650px){header{gap:6px;align-items:flex-start}.brand{gap:7px;font-size:15px}.brand span{max-width:110px}.brand small{font-size:7px}.header-actions{flex-wrap:wrap;justify-content:flex-end;max-width:165px}.header-actions button{min-height:34px;padding:4px 6px}.reading{max-height:calc(100% - 170px - var(--timeline-height) - var(--controls-height) - 92px)}#time-content{max-height:28dvh}}
@media(max-height:700px){.active .scene-heading{top:86px}.active .scene-heading h1{font-size:25px}.reading{top:148px;max-height:calc(100% - 148px - var(--timeline-height) - var(--controls-height) - 92px)}.entry{top:140px;max-height:calc(100% - 165px)}}

.timeline-open .node-label:not(.timing-related){visibility:hidden}
.connections button{text-align:left}.connections button small{line-height:1.45}
@media(min-width:651px){.reading{max-height:calc(100% - 125px - var(--timeline-height) - 78px)}}
@media(max-height:700px) and (min-width:651px){.entry{top:106px;max-height:calc(100% - 144px);padding:18px 24px}.entry h2{font-size:27px;margin:8px 0}.entry p{margin:8px 0}.entry label{margin-top:9px}.entry details{padding-top:6px;margin-top:9px}.entry input,.entry select{padding:6px 10px}.entry .primary{margin-top:12px}.reading{max-height:calc(100% - 148px - var(--timeline-height) - 78px)}}

.shrine-icon{display:inline-block;width:23px;height:23px;flex:none;vertical-align:middle;margin-right:8px;color:var(--gold)}.node-label{display:flex;align-items:center;min-height:43px}.node-label .shrine-icon{width:24px;height:24px}.node-label.selected .shrine-icon{color:var(--ocean)}.shrine-icon-large{width:42px;height:42px;margin:12px 0 0;color:#8d713e}.connections .shrine-icon,.saved-row .shrine-icon{width:20px;height:20px;color:#8d713e}.connections small{margin-left:28px}#reading-icon+h2{margin-top:8px}@media(max-width:650px){.node-label .shrine-icon{width:20px;height:20px}.shrine-icon-large{width:32px;height:32px;margin-top:6px}}

.reading-top #reading-icon{display:flex}.reading-top .shrine-icon-large{width:30px;height:30px;margin:0}.reading-top #reading-kicker{flex:1}

/* Black sky, open constellations, quiet navigation chrome. */
:root{--ocean:#030509}body{background:#030509}#space{background:#030509}#space>canvas{cursor:grab}.node-label.constellation-label{display:block;background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0;padding:5px 8px;font-size:11px;color:#c7c9d3;min-height:32px;text-shadow:0 2px 7px #000,0 0 16px #000;letter-spacing:.02em}.node-label.constellation-label:hover,.node-label.constellation-label.selected{color:#ffe0a5!important;text-shadow:0 0 18px #d8b870}.node-label.constellation-label:focus-visible{outline:1px solid #c9a96e}.planet-label{pointer-events:auto;background:transparent;border:0;min-height:28px;padding:0 5px;font-size:10px;transform:translate(-50%,0);text-shadow:0 2px 5px #000}.galaxy-label{position:absolute;transform:translate(-50%,0);border:0;background:transparent;color:#bec5dc;font:italic 15px Georgia;letter-spacing:.05em;min-height:32px;text-shadow:0 2px 10px #000;z-index:4}#timeline{background:#0b1019e8}#explore-controls button,.header-actions button{background:#101721db}#destination{max-width:185px;background:#101721;color:#ede9df;border:1px solid #79909e66;padding:8px;font-size:11px;border-radius:3px;min-height:42px}.destination-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}#space-inspector{position:absolute;right:32px;top:150px;width:290px;padding:24px;z-index:9;background:#0a0e16e8;border:1px solid #a8bec933;border-radius:4px;backdrop-filter:blur(12px)}#space-inspector h2{font:38px Georgia;margin:12px 0;color:#f4efe6}#space-inspector p{font-size:12px;color:#bac4d3}#inspect-connections{display:grid;gap:8px;margin-bottom:16px}#inspect-connections button{text-align:left;font-size:12px}.planet-inspection .node-label,.inspecting .galaxy-label{visibility:hidden}.inspecting .scene-heading h1{font-size:28px}.inspecting #timeline{display:none!important}.inspecting #explore-controls{bottom:65px}.inspecting .scene-heading{max-width:340px}@media(max-width:650px){#space-inspector{left:18px;right:18px;top:auto;bottom:135px;width:auto;padding:15px}#space-inspector h2{font-size:27px;margin:6px 0}#space-inspector p{margin:6px 0}#destination{max-width:155px;font-size:10px}.planet-label{font-size:10px}.node-label.constellation-label{font-size:10px;white-space:normal;width:145px}.inspecting #explore-controls{bottom:50px}.inspecting .scene-heading h1{font-size:24px}}

@media(max-width:650px){#space-inspector{bottom:calc(var(--controls-height) + 65px)}}

/* Two chapters in one nearby world. */
#pattern-invitation{position:absolute;left:50%;bottom:calc(var(--timeline-height) + var(--controls-height) + 95px);transform:translateX(-50%);text-align:center;z-index:6;width:340px;padding:22px;background:linear-gradient(180deg,#03050922,#030509df);border-radius:8px}#pattern-invitation p{font:28px/1.25 Fraunces,Georgia,serif;margin:12px 0 20px}#pattern-invitation button{background:#d8bd89;color:#131820;border-color:#d8bd89;padding:12px 22px}#pattern-invitation small{display:block;font-size:10px;color:var(--muted);margin-top:12px}#explore-controls button[aria-pressed=true]{border-color:#d8bd89;color:#f5d5a0;background:#30291fe8}#sky-speed{background:#101721;color:#c7ced8;border:1px solid #79909e66;font-size:10px;border-radius:3px;padding:5px;max-width:125px}#explore-controls{right:32px}.patterns-view .galaxy-label{opacity:.6}.patterns-view .scene-heading{pointer-events:none}.patterns-view .scene-heading h1{font-size:30px}
@media(max-width:650px){#pattern-invitation{width:290px;padding:12px;bottom:calc(var(--timeline-height) + var(--controls-height) + 78px)}#pattern-invitation p{font-size:23px}#explore-controls{right:18px;gap:4px}#sky-speed{max-width:109px}.patterns-view .scene-heading h1{font-size:24px}}

@media(min-width:651px){#pattern-invitation{left:32px;top:270px;bottom:auto;transform:none;text-align:left;width:290px;padding:16px 0;background:linear-gradient(90deg,#030509d9,#03050900)}#pattern-invitation p{font-size:24px}}

@media(max-width:650px){.galaxy-label{max-width:145px;font-size:13px}.node-label.constellation-label{max-width:145px}}

/* Guided exploration: one next step, secondary choices tucked away. */
#tools-toggle{display:flex;align-items:center;gap:12px;font-size:12px}
#tools-panel{position:absolute;z-index:25;top:95px;right:32px;width:340px;max-height:calc(100% - 125px);overflow:auto;padding:22px;background:#10151df5;border:1px solid #a8bec938;border-radius:10px;box-shadow:0 20px 80px #0008;backdrop-filter:blur(20px)}
.tools-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.tools-heading h2{font:25px/1.2 Fraunces,Georgia,serif;margin:0}.tools-heading button{font-size:25px;background:transparent;border:0;padding:0 8px}
#tools-panel h3{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin:25px 0 12px}#tools-panel label{display:block;font-size:11px;color:var(--muted);margin:14px 0 7px}#tools-panel button{font-size:12px}#tools-panel select{max-width:none;width:100%}#tools-panel #sky-speed{width:145px}#tools-panel details{border-top:1px solid #a8bec92d;margin-top:16px;padding-top:16px}#tools-panel summary{cursor:pointer;font-size:12px;min-height:32px}#tools-panel details button{margin:5px 0}#tools-panel p{font-size:11px;color:var(--muted)}#tools-panel #open-timeline{margin-top:14px;width:100%;text-align:left;background:transparent;color:#e3c78f;border-color:#a8bec92d}#tools-panel [aria-pressed=true]{border-color:#c9a96e;color:#edcf9c}
#explore-controls{left:32px;right:32px;bottom:calc(var(--timeline-height) + 64px);display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none}
#explore-controls button{pointer-events:auto;font-size:12px}.journey-actions{display:flex;justify-content:center;align-items:center;gap:10px;max-width:100%}button.journey-primary,#explore-controls button.journey-primary{background:#d8bd89;color:#131820;border:1px solid #d8bd89;border-radius:5px;padding:12px 22px;box-shadow:0 6px 26px #0004;font-size:13px;line-height:1.4;min-height:46px}.journey-primary:hover{filter:brightness(1.09)}#overview{background:#0e151dcc;border-color:#a8bec932}#journey-progress{font-size:10px;color:#a8bec9;letter-spacing:.04em}
#navigation-hint{display:flex;gap:10px;align-items:center;color:#d0d6de;font-size:12px;text-align:center;text-shadow:0 2px 8px #000;background:#070b12a8;border:1px solid #a8bec917;border-radius:30px;padding:8px 16px;max-width:100%}.drag-demo{display:inline-block;font-size:23px;color:#e4c890;line-height:1;animation:teach-drag 1.8s ease-in-out 3}.rotation-learned .drag-demo{animation:none;font-size:18px}.rotation-learned #navigation-hint{background:transparent;border-color:transparent;color:#a8bec9}.panel-open #explore-controls,.inspecting #next-discovery,.inspecting #journey-progress,.tools-open #explore-controls{visibility:hidden}#reading-next{display:block;width:100%;margin:20px 0 6px}.reading #reading-next{background:#153047;color:#f4efe6;border-color:#153047}.reading{max-height:calc(100% - 190px)}.connections{margin-top:8px}
#pattern-invitation{background:transparent;top:auto;bottom:calc(var(--controls-height) + 86px);left:50%;transform:translateX(-50%);text-align:center;padding:16px;width:350px}#pattern-invitation .eyebrow{display:none}#pattern-invitation p{font:27px/1.25 Fraunces,Georgia,serif;margin:0 0 15px}#pattern-invitation small{font-size:11px}#pattern-invitation button{font-size:14px;min-height:48px}.active .scene-heading h1{font-size:30px}.active .scene-heading{max-width:460px}
.node-label.constellation-label{transition:color .18s,text-shadow .18s}.node-label.constellation-label.hovered{color:#ffe0a5;text-shadow:0 0 22px #d8b870}.node-label.hovered::after{content:'Click to discover ↗';display:block;font-size:10px;color:#e4c890;margin-top:3px}.node-label.suggested::before{content:'START HERE';display:block;font-size:9px;letter-spacing:.15em;color:#f4dca8;margin-bottom:3px}.node-label.suggested{color:#f4dca8!important}.planet-label.hovered{color:#f4dca8;text-shadow:0 0 18px #d8b870}.planet-label.hovered::after{content:'Look closer ↗';display:block;font-size:9px;white-space:nowrap}#observatory.tools-open .node-label{pointer-events:none}
@keyframes teach-drag{0%,100%{transform:translateX(-5px);opacity:.65}50%{transform:translateX(5px);opacity:1}}
@media(min-width:651px){#pattern-invitation{left:32px;top:270px;bottom:auto;transform:none;text-align:left;width:310px;padding:12px 0}.reading{max-height:calc(100% - 190px)}}
@media(max-width:650px){#tools-panel{left:18px;right:18px;top:95px;width:auto;max-height:calc(100% - 120px);padding:20px}#tools-toggle{font-size:11px;padding:8px 10px;min-height:40px}.header-actions{max-width:none}.brand span{max-width:110px}#explore-controls{left:18px;right:18px;gap:8px}#navigation-hint{font-size:11px;padding:8px 12px}.journey-actions{flex-wrap:wrap;gap:7px}#explore-controls button.journey-primary{padding:11px 16px;font-size:12px}.reading{top:170px;max-height:calc(100% - 235px)}#pattern-invitation{width:300px}#pattern-invitation p{font-size:24px}.active .scene-heading h1{font-size:25px}.inspecting #explore-controls{bottom:50px}#space-inspector{bottom:145px}.node-label.hovered::after{content:'Open discovery ↗'}}
@media(prefers-reduced-motion:reduce){.drag-demo{animation:none!important}.node-label.constellation-label{transition:none}}

.motion-paused .drag-demo{animation:none}

#reading{display:flex;flex-direction:column;overflow:hidden}#reading>.reading-top{flex-shrink:0}.reading-scroll{overflow:auto;min-height:0;padding-right:4px}.reading-footer{flex-shrink:0;border-top:1px solid #d5cec1;padding-top:12px;background:var(--paper)}.reading-footer #reading-next{margin:0;min-height:44px}#tools-panel #close-tools{font-size:24px;min-height:32px}

.timeline-open #explore-controls{visibility:hidden}

/* Each spatial tier has its own labels; ancestors become quiet scenery. */
#tier-path:empty{display:none}#tier-path{color:#d8bd89;font-size:11px!important;letter-spacing:.04em;margin:7px 0}.galaxy-label{font-style:normal;font-family:Fraunces,Georgia,serif;font-size:24px!important;color:#f4e5c7!important;opacity:1!important;background:#060b1299;padding:12px 18px;border:1px solid #c9a96e44;border-radius:6px;transition:color .2s,background .2s}.galaxy-label::after{content:'Enter this world ↗';display:block;font:10px/1.5 Inter,system-ui,sans-serif;color:#c9a96e;margin-top:5px}.galaxy-label:hover{background:#18202bcc;border-color:#c9a96e}.galaxy-label:focus-visible{outline:2px solid #c9a96e;outline-offset:4px}@media(max-width:650px){.galaxy-label{font-size:18px!important;max-width:155px;padding:9px 12px}#tier-path{font-size:9px!important}.active .scene-heading h1{font-size:24px}}

.galaxy-label[hidden]::after{content:none}
