@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 100 1000;
  font-display: swap;
  src: url(../assets/fonts/dm-sans-1.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 100 1000;
  font-display: swap;
  src: url(../assets/fonts/dm-sans-2.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 100 1000;
  font-display: swap;
  src: url(../assets/fonts/dm-sans-3.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 100 1000;
  font-display: swap;
  src: url(../assets/fonts/dm-sans-4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root{color-scheme:dark;--bg:#070c16;--panel:#0b1220;--ink:#edf2fb;--muted:#9caac0;--line:#233044;--ice:#aad5ff;--accent:#9ccaff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 'DM Sans',Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid #c1e3ff;outline-offset:5px}button{border:0}button:disabled{opacity:.3;cursor:default}a{color:inherit;text-decoration:none}.skip{position:absolute;top:-100px}.skip:focus{top:12px;z-index:30;background:var(--panel);padding:10px}header{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4vw}.brand{font-size:34px;font-weight:700;letter-spacing:-2px;display:flex;align-items:center;gap:20px}.brand span{font-size:11px;letter-spacing:3px;font-weight:500;color:#a6bfdd;border-left:1px solid #35475e;padding-left:20px}.header-note{font-size:14px;color:var(--muted)}.quiet{background:none;color:#b5c4d9;font-size:14px;padding:8px 0}.quiet span{margin-left:15px}.quiet:hover{color:white}main{max-width:1800px;margin:auto;padding:0 4vw}.intro{display:flex;align-items:flex-end;justify-content:space-between;padding:42px 0 32px;gap:30px}.eyebrow{font-size:11px;font-weight:600;letter-spacing:2px;color:#a2bddb;margin:0 0 12px}.intro h1{font-size:clamp(30px,3vw,48px);line-height:1.15;font-weight:450;letter-spacing:-1.7px;margin:0}.intro h1 span{color:#91a0b7}.intro>p{font-size:15px;color:var(--muted);margin:0 0 4px}.workspace{display:grid;grid-template-columns:250px minmax(0,1fr);border:1px solid #2a3a50;border-radius:18px;overflow:hidden;background:var(--panel);box-shadow:0 24px 90px #0003}aside{padding:24px 18px;background:#0c1320;border-right:1px solid var(--line);display:flex;flex-direction:column}.side-top{display:flex;justify-content:space-between;align-items:baseline;padding:0 7px}.tiny{font-size:11px;color:#7e91aa;letter-spacing:.7px}#journeys{display:flex;flex-direction:column;gap:8px}.journey{background:transparent;text-align:left;width:100%;border:1px solid transparent;border-radius:9px;padding:15px 12px;display:flex;gap:12px;align-items:flex-start;transition:background .2s,border-color .2s}.journey .num{color:#627791;font-size:12px;padding-top:3px}.journey strong{display:block;font-size:14px;font-weight:500}.journey small{display:block;color:#8c9eb6;font-size:12px;margin-top:3px}.journey:hover{background:#142033}.journey[aria-pressed=true]{background:linear-gradient(110deg,#20334d,#132136);border-color:#526d90}.journey[aria-pressed=true] .num{color:#c1e3ff}.side-foot{margin-top:auto;padding:30px 8px 5px;display:flex;gap:12px;color:#bbcde1;font-size:12px}.side-foot p{margin:0}.side-foot p span{color:#758ba6;display:block;margin-top:6px}.small-orbit{font-size:22px;color:#91bfee}.visual{min-width:0;background:radial-gradient(ellipse at 50% 38%,#12244388,transparent 57%),#090f1b}.map-top{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 0;gap:10px}.map-top>div{font-size:11px;letter-spacing:1.8px;color:#b7cce5;display:flex;align-items:center;gap:9px}.live-dot{width:5px;height:5px;border-radius:50%;background:var(--ice)}.universe{position:relative;max-width:1100px;margin:0 auto}.universe svg{display:block;width:100%;height:auto;max-height:650px;overflow:visible}.map-legend{display:flex;gap:22px;position:absolute;left:22px;bottom:12px;font-size:11px;color:#8599b4}.map-legend span{display:flex;align-items:center;gap:8px}.line-key{display:inline-block;width:23px;height:1px;background:#b5e0ff}.moon-key{width:5px;height:5px;background:#7793b6;border-radius:50%;display:inline-block}.orbit{fill:none;stroke:#1f3047;stroke-width:1}.planet{cursor:pointer;outline:none}.planet .planet-core{transition:filter .2s,opacity .2s}.planet .halo{fill:none;stroke:var(--node-color);opacity:0;transition:opacity .2s}.planet:hover .halo,.planet:focus-visible .halo,.planet.selected .halo{opacity:.8}.planet text{fill:#bdcce0;font-size:15px;font-weight:500;text-anchor:middle;pointer-events:none}.planet .tag{font-size:10px;fill:#647e9e;letter-spacing:1px}.planet.dim{opacity:.35}.planet.active text,.planet.selected text{fill:#f3f8ff}.planet.active .halo{opacity:.65}.core-name{font-size:26px;fill:#eff7ff;font-weight:600;text-anchor:middle;letter-spacing:-.8px}.core-sub{font-size:10px;letter-spacing:2px;fill:#a6c9f4;text-anchor:middle}.route-base{fill:none;stroke:#608ab8;stroke-width:1.2;opacity:.4}.route-active{fill:none;stroke:#c2e4ff;stroke-width:2;filter:url(#beamGlow);stroke-dasharray:9 7}.beam-dot{fill:#eefaff;filter:url(#beamGlow)}.moon{cursor:pointer}.moon circle{stroke:#8ca9ca;fill:#1b304a;stroke-width:1}.moon:hover circle,.moon:focus-visible circle{fill:#dcf0ff}.moon text{font-size:12px;fill:#bdd5ee;text-anchor:middle}.star{fill:#98b6dc;opacity:.28}.story{border-top:1px solid #273b54;background:linear-gradient(130deg,#16263c80,#101927)}.story-progress{display:flex;gap:4px;padding:0 24px}.progress-step{padding:0;height:3px;flex:1;background:#29405b}.progress-step.done{background:#b4daff}.story-content{padding:23px 26px 25px;display:grid;grid-template-columns:1fr 145px;gap:32px}.story h2{font-size:24px;line-height:1.2;font-weight:500;letter-spacing:-.5px;margin:0 0 9px}.story-copy>p:not(.eyebrow){font-size:14px;color:#b1c1d5;max-width:650px;margin:0}.outcome{border-left:2px solid #6b9eca;padding-left:12px;margin-top:16px}.outcome span{font-size:9px;letter-spacing:1.4px;color:#a8c8e9}.outcome p{margin:2px 0 0;font-size:13px;color:#d4e3f5}.story-controls{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:12px}.primary{background:#c1ddfb;color:#132235;border-radius:6px;padding:11px 12px;font-size:13px;font-weight:600}.primary:hover{background:#e2f1ff}.step-controls{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#aac0d9}.step-controls button{background:#1b2b40;border:1px solid #344b66;border-radius:5px;width:36px;height:32px}.closer{padding:70px 0;display:grid;grid-template-columns:250px 1fr;gap:32px}.closer h2{font-size:27px;line-height:1.3;font-weight:450;letter-spacing:-.7px;margin:0}.scenario-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.scenario-card{padding:23px 20px;border-top:1px solid #354961;background:transparent;text-align:left}.scenario-card:hover{background:#101c2c}.scenario-card span{font-size:11px;color:#84a6ce;letter-spacing:1px}.scenario-card h3{font-size:18px;font-weight:500;margin:15px 0 10px}.scenario-card p{font-size:14px;color:#95a9c2;margin:0}.scenario-card .go{margin-top:22px;font-size:13px;color:#d1e5fc}footer{border-top:1px solid var(--line);padding:30px 0;display:flex;gap:25px;align-items:center;justify-content:space-between}footer p{font-size:12px;color:#778ca6}.small{font-size:25px}.small span{font-size:9px}.module-pill{background:#20334b;color:#c7def8;border:1px solid #395572;border-radius:20px;padding:5px 10px;font-size:12px;margin:4px 5px 0 0}.module-pill:hover{background:#345171}@media(min-width:1600px){.workspace{grid-template-columns:280px 1fr}.universe svg{max-height:730px}}@media(max-width:1000px){main{padding:0 20px}.workspace{grid-template-columns:210px 1fr}.intro>p{max-width:290px}.journey{padding:12px 8px}.story-content{grid-template-columns:1fr;gap:15px}.story-controls{flex-direction:row;align-items:center;justify-content:flex-start}.step-controls{gap:14px}.closer{grid-template-columns:1fr}.header-note{display:none}.map-top .tiny{display:none}}@media(max-width:680px){header{height:70px;padding:0 20px}.brand{font-size:28px;gap:12px}.brand span{padding-left:12px;font-size:9px}.quiet{font-size:12px}.intro{display:block;padding-top:27px}.intro>p{margin-top:18px;max-width:none;font-size:14px}.intro h1{font-size:32px}.workspace{display:block;border-radius:12px}aside{padding:16px 12px;border-right:0;border-bottom:1px solid var(--line)}.side-top{padding:0 5px}#journeys{flex-direction:row;overflow-x:auto;padding-bottom:6px}.journey{min-width:180px;padding:10px}.journey small{font-size:11px}.side-foot{display:none}.map-top{padding:15px 12px 0}.universe{overflow-x:auto}.universe svg{width:680px;max-width:none;height:483px}.map-legend{position:static;margin:0 12px 12px}.story-content{padding:20px 16px}.story h2{font-size:23px}.story-controls{flex-wrap:wrap}.scenario-cards{grid-template-columns:1fr}.closer{padding:40px 0}.scenario-card{padding:20px 0}footer{align-items:flex-start;flex-direction:column;gap:10px}footer p{margin:0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}.route-active{stroke-dasharray:none}}

/* Complete overview: fixed positions, labelled moons, truthful relationship types. */
header{height:72px}.intro{padding:26px 0}.intro h1{font-size:34px}.intro h1 br{display:none}.intro h1 span{display:block;font-size:27px;margin-top:4px}.intro .eyebrow{margin-bottom:8px}.workspace{grid-template-columns:270px minmax(0,1fr)}aside{max-height:1120px;overflow:auto}.universe{max-width:none;overflow:auto}.universe svg{max-height:none;min-width:900px;width:100%;height:auto;overflow:hidden}.map-legend{position:static;padding:0 24px 14px;flex-wrap:wrap}.map-top{padding-top:16px}.view-tools{display:flex;justify-content:flex-end;align-items:center;gap:6px;padding:8px 20px 0;font-size:12px;color:#a9bfd8}.view-tools button{background:#132238;border:1px solid #2b405c;border-radius:5px;padding:5px 10px;font-size:12px}.view-tools button[aria-pressed=true]{border-color:#759bc4;background:#243b57}.view-tools span{min-width:40px;text-align:center}.relation{fill:none;stroke:#6f99bd;stroke-width:1.1}.relation.workflow{stroke:#b19bce;stroke-dasharray:5 7}.relation.relevant{stroke-width:2.2}.moon-orbit{fill:none;stroke:#425b79;stroke-width:.7;opacity:.45}.planet .planet-name{font-size:21px}.planet .moon text{font-size:17px;fill:#95abc5;font-weight:400}.planet .moon-label{text-anchor:inherit}.planet.dim{opacity:.3}.planet:has([role=button]:focus-visible) .halo{opacity:1}.moon:focus-visible{outline:0}.moon:focus-visible circle{stroke:white;stroke-width:4}.moon:hover text,.moon:focus-visible text{fill:white}.core-name{font-size:30px}.core-sub{font-size:12px}.route-active{stroke-dasharray:none;stroke-width:2.5}.line-key.dashed{background:none;border-top:1px dashed #b19bce}.story-content{gap:24px}.back-universe{font-size:12px;color:#b4d2f1;background:none;padding:5px 0 18px;text-align:left}.side-context{font-size:14px;line-height:1.6;color:#9aafc9;margin:0 0 20px}#side-detail h3{font-size:22px;font-weight:500;margin:0 0 12px;line-height:1.25}.journey-step{display:flex;gap:12px;text-align:left;background:none;border:1px solid #283b54;border-radius:7px;width:100%;padding:12px 10px;margin:8px 0}.journey-step span{font-size:12px;color:#88a6c9}.journey-step strong{font-size:14px;font-weight:450;line-height:1.5}.journey-step.current{background:#233b56;border-color:#779cbe}.relation-detail{display:block;width:100%;padding:12px 2px;text-align:left;background:none;border-top:1px solid #293c54}.relation-detail strong{display:block;font-size:14px;font-weight:500;color:#c2ddf8}.relation-detail span{display:block;font-size:12px;color:#9aafc9;margin:4px 0}.relation-detail small{font-size:10px;color:#8a7fa9}.relation-detail:hover{background:#182b41}[hidden]{display:none!important}.side-foot{font-size:12px}.story-copy .eyebrow{font-size:11px}.journey strong{font-size:14px}.journey small{font-size:12px}.journey{padding:11px 10px}.side-top .tiny{display:none}.scenario-cards{grid-template-columns:repeat(3,1fr)}
@media(min-width:1800px){.universe svg{min-width:0}}@media(max-width:1000px){.workspace{grid-template-columns:230px 1fr}.intro h1{font-size:30px}.intro h1 span{font-size:24px}.universe svg{min-width:900px}aside{max-height:1200px}.map-legend{padding-left:12px;gap:12px}}
@media(max-width:680px){.workspace{display:block}aside{max-height:360px}.universe svg{min-width:900px;height:auto}.intro h1{font-size:29px}.intro h1 span{font-size:25px}.view-tools{padding-left:12px;padding-right:12px;justify-content:space-between}.map-top .tiny{display:none}.scenario-cards{grid-template-columns:1fr}.map-legend{font-size:11px}.story-progress{padding:0 15px}.side-top{display:block}#side-detail{max-height:300px;overflow:auto}.side-foot{display:none}}

/* The story stays beside the universe, so explanations never disappear below it. */
aside .story{margin:0 0 18px;border-top:0;background:none}aside .story-content{display:block;padding:18px 0 0}aside .story-progress{padding:0}aside .story-copy h2{font-size:23px;line-height:1.25}aside .story-copy>p:not(.eyebrow){font-size:14px;line-height:1.65}aside .story-copy .eyebrow{font-size:10px;letter-spacing:1.1px}aside .story-controls{display:flex;flex-direction:row;flex-wrap:wrap;gap:12px;margin-top:18px}aside .story-controls .primary{width:100%}aside .story-controls .step-controls{flex:1;gap:8px}aside .story-controls #restart{font-size:11px}aside .outcome{margin-top:18px}aside .outcome p{font-size:13px;line-height:1.6}.connection-explanation{font-size:12px;line-height:1.5;color:#91a6c0;margin:6px 0 0}#side-detail>.eyebrow{margin-top:24px}.journey-step{padding:10px 9px}.journey-step strong{font-size:13px}.view-tools{position:relative;z-index:2}.moon:hover{cursor:pointer}.planet [role=button]{outline:none}.planet [role=button]:focus-visible .planet-core{stroke:#ebf6ff;stroke-width:3}@media(max-width:680px){body[data-mode=journey] aside{max-height:none}body[data-mode=journey] #side-detail{max-height:none}.journey-step{display:inline-flex;width:auto;max-width:100%;margin:4px 0}.journey-step strong{font-size:12px}aside .story-controls .primary{width:auto}aside .story{margin-bottom:16px}}

.current-moon circle{fill:#e7f7ff;stroke:#e7f7ff;stroke-width:3}.current-moon text{fill:#effaff!important;font-weight:600!important}

.planet .moon text{pointer-events:auto;cursor:pointer}.moon .moon-hit{fill:transparent;stroke:none}.moon:hover .moon-hit,.moon:focus-visible .moon-hit,.current-moon .moon-hit{fill:transparent;stroke:none}

#module-jump{margin-right:auto;max-width:220px;border:1px solid #2d425e;background:#0e1c2e;color:#b9cee5;border-radius:5px;padding:6px 10px;font:12px 'DM Sans',Arial,sans-serif}.map-hint{display:none}@media(max-width:680px){.view-tools{flex-wrap:wrap;justify-content:flex-start}#module-jump{max-width:none;width:100%;font-size:14px;margin:0 0 5px}.map-hint{display:block;margin:8px 12px 0;font-size:12px;color:#91a7c1}.side-top .tiny{display:block;margin-bottom:8px}.side-top .tiny:after{content:' · swipe to choose'}.planet .moon text{font-size:18px}}

/* Flat Amara Memory colour families; motion belongs to the connections. */
header{position:sticky;top:0;z-index:20;background:#070c16f5;backdrop-filter:blur(12px)}
body:not([data-mode=overview]) #overview{padding:9px 13px;background:#1e3745;border:1px solid #76afa9;border-radius:7px;color:#ddf6e9;font-size:13px}
.workspace{scroll-margin-top:88px}
.planet .planet-core{fill:var(--node-color);stroke:var(--node-color);stroke-width:1;filter:none}
.planet .moon .moon-core{fill:var(--node-color);stroke:var(--node-color);stroke-width:1}
.planet .visited-moon .moon-core{stroke:#c9f0e5;stroke-width:2}
.planet .moon text{fill:var(--node-color);opacity:.85}
.planet .moon-orbit{stroke:var(--node-color);opacity:.2}
.planet .moon:hover .moon-core,.planet .moon:focus-visible .moon-core,.planet .current-moon .moon-core{fill:var(--node-color);stroke:#f2f5fc;stroke-width:2.5}
.planet .moon:hover text,.planet .moon:focus-visible text,.planet .current-moon text{fill:var(--node-color)!important;opacity:1;font-weight:600}
.planet.selected .moon text,.planet.visited .moon text{opacity:1}
.planet.visited .halo{opacity:.7;stroke:var(--node-color)}
.planet.active .halo{opacity:1;stroke:#ffe4b2;stroke-width:2.4}
.planet.visited .planet-name,.planet.selected .planet-name{fill:#f1f5fa}
.planet.dim{opacity:.22}.core-sub{fill:#b8d6db}
.relation{stroke-width:1.35;pointer-events:stroke}.relation.relevant{stroke-width:2.5}
.relation.trace-now{opacity:1;stroke-width:3.3}
.connection-separator{fill:none;stroke:#0a1220;stroke-width:6;pointer-events:none}
.journey-separator{stroke-width:7}
.journey-route{fill:none;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.route-future{stroke:#7390ac;stroke-width:1.4;stroke-dasharray:3 8;opacity:.22}
.route-completed{stroke:#a9eedc;stroke-width:2.8;opacity:.9}
.route-active{stroke:#ffe4b2;stroke-width:3.4;stroke-dasharray:none;opacity:1;filter:none}
.comet-head{filter:url(#cometGlow)}.comet-layer{pointer-events:none}
.journey-key{display:none!important}body[data-mode=journey] .journey-key{display:flex!important}
body[data-mode=journey] .map-legend>span:nth-child(-n+2){display:none}
.explored-key{height:2px;background:#a9eedc}.current-key{height:2px;background:#ffe4b2}
.map-context{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:48px;margin:4px 22px 0;padding:9px 0;border-bottom:1px solid #24344a;color:#a9bed3;font-size:12px;line-height:1.5}
#motion-toggle{flex-shrink:0;background:#172b3d;border:1px solid #416174;padding:6px 10px;border-radius:6px;font-size:11px;color:#c6e7e2}
#motion-toggle:hover{background:#244456}
.back-universe{display:flex;align-items:center;gap:13px;position:sticky;top:0;z-index:4;width:100%;padding:13px 12px;margin:0 0 23px;background:#203b4b;border:1px solid #76afa9;border-radius:9px;color:#e1f6ec;box-shadow:0 6px 18px #08101de0;text-align:left}
.back-universe>span:first-child{font-size:24px;line-height:1}
.back-universe strong{font-size:13px;font-weight:650;display:block}.back-universe small{font-size:11px;color:#a9c9ce;display:block;margin-top:3px}
.back-universe:hover{background:#2b5060;border-color:#b3ebd9}
body:not([data-mode=overview]) #all-view{border-color:#76afa9;color:#c6ecd9}
.module-heading{display:flex;gap:10px;align-items:baseline}.module-heading:before{content:'';display:inline-block;width:11px;height:11px;flex-shrink:0;border-radius:50%;background:var(--focus-color)}
body[data-mode=module] .module-pill{color:var(--focus-color);background:color-mix(in srgb,var(--focus-color) 9%,#101b2d);border-color:color-mix(in srgb,var(--focus-color) 38%,#101b2d)}
body[data-mode=module] .module-pill[aria-pressed=true]{border-color:var(--focus-color);background:color-mix(in srgb,var(--focus-color) 22%,#101b2d)}
.relation-detail{border-radius:6px;padding:12px 9px;border:1px solid transparent;border-top-color:#293c54;margin-bottom:3px}
.relation-detail strong{display:flex;gap:8px;align-items:center}.relation-detail strong i{display:block;width:7px;height:7px;border-radius:50%;flex-shrink:0}.relation-detail strong span{margin:0 0 0 auto;color:#c4e0eb}
.relation-detail.tracing{border-color:color-mix(in srgb,var(--focus-color) 50%,#101b2d);background:color-mix(in srgb,var(--focus-color) 9%,#101b2d)}
.relation-detail.tracing strong{color:var(--focus-color)}
.journey-step{align-items:baseline}.journey-step strong{flex:1}.journey-step i{font-size:12px;color:#a9eedc;font-style:normal}.journey-step.explored{border-color:#385753}.journey-step.explored>span{color:#a9eedc}.journey-step.current{border-color:#b6b990;background:#273b45}.journey-step.current i{color:#ffe4b2}
#side-detail>.stages-label{letter-spacing:1.25px;font-size:10px;margin:22px 0 10px}
@media(max-width:1000px){.map-context{margin-left:12px;margin-right:12px;flex-wrap:wrap;gap:8px}.back-universe{gap:8px;padding:11px 9px}.back-universe strong{font-size:12px}}
@media(max-width:680px){.map-context{font-size:12px}.map-hint{margin-top:10px}.back-universe{margin-bottom:18px}.back-universe strong{font-size:14px}.back-universe small{font-size:12px}.journey-step{display:flex;width:100%;max-width:none}.side-top .tiny{display:none}body[data-mode=module] #side-detail{max-height:320px}}

/* Source-backed structure: real pages, shared capabilities and explicit handoffs. */
.shared-ring{fill:none;stroke:var(--node-color);stroke-width:1.3;stroke-dasharray:4 6;opacity:.65}
.planet .shared-label{font-size:10px;letter-spacing:1.2px;fill:var(--node-color);opacity:.8}
.shared-key{display:inline-block;width:12px;height:12px;border:1px dashed #b6cbd8;border-radius:50%}
.step-type{display:inline-block;padding:4px 8px;margin:0 0 12px!important;border:1px solid #608393;border-radius:5px;color:#d4ecea!important;font-size:11px!important;line-height:1.4}
.step-type[data-type=workflow]{border-style:dashed;border-color:#b19bce;color:#e0cfee!important}
.journey-route.workflow{stroke-dasharray:7 8}
.scope-note{font-size:12px;color:#c5d9e7;border-left:2px solid var(--focus-color);padding-left:10px;margin:0 0 20px}
.relation-detail small{color:#bdaed6}
.story-progress{padding-top:5px;padding-bottom:5px}
.progress-step{position:relative;height:16px;--step-progress:0;background:linear-gradient(transparent 6px,#29405b 6px,#29405b 9px,transparent 9px)}
.progress-step::after{content:'';position:absolute;left:0;right:0;top:6px;height:3px;background:#b4daff;transform:scaleX(var(--step-progress));transform-origin:left center;pointer-events:none}
.progress-step.done{--step-progress:1;background:linear-gradient(transparent 6px,#29405b 6px,#29405b 9px,transparent 9px)}
.progress-step[aria-current=true]::after{background:#d3eaff}
.planet .moon .moon-hit{r:17}
.relation.trace-complete{opacity:.9;stroke-width:2.7}
.relation-detail.traced{border-left-color:var(--focus-color)}
.view-tools{flex-wrap:wrap}
.arranging .planet,.arranging .planet text,.arranging .planet .moon{cursor:grab;touch-action:none}
.arranging .planet.dragging,.arranging .planet.dragging text{cursor:grabbing}
.arranging .planet.dim{opacity:.65}
#arrange-toggle[aria-pressed=true]{border-color:#9bc6bb;color:#e2f4ee;background:#27483f}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* GG: the interactive Universe is for desktop and tablet, not phones. */
.tablet-notice{display:none;padding:32px 24px;margin:8px 0 40px;border:1px solid #2a3a50;border-radius:12px;background:#0c1523}
.tablet-notice h2{font-size:24px;line-height:1.3;font-weight:500;margin:0 0 12px}
.tablet-notice p{color:#b3c8dc;margin:0}
@media(max-width:767px){
 .workspace,.closer,#overview,.skip{display:none}
 .tablet-notice{display:block}
 .intro{display:block}
 .intro>p{margin-top:16px;max-width:none}
}

/* A concrete app action beside the finite journey. */
.journey-action{padding:12px 0;margin:14px 0 0;border-top:1px solid #294456;border-bottom:1px solid #294456;line-height:1.5!important}
.journey-action>span{display:block;color:#94c5c2;font-size:10px;letter-spacing:1.4px;margin-bottom:5px}
.journey-action strong{display:block;font-size:12px;font-weight:500;color:#d2e9e7}

/* V2: first-use orientation, with the existing map kept central. */
.version-tag{font-size:9px;letter-spacing:1px;border:1px solid #405a68;border-radius:4px;color:#b8e0d5;padding:3px 5px;margin-left:6px}
.previous-version{font-size:11px;color:#a3b8c9;text-decoration:none;margin-left:auto;margin-right:20px;white-space:nowrap}
.previous-version:hover{color:#eff7fb}
.intro{gap:38px;align-items:center;padding-top:42px;padding-bottom:36px}
.intro>div{min-width:0}.intro>p{max-width:430px;line-height:1.75;font-size:15px}.intro>p strong{color:#e3eef5;font-weight:500}
.intro-actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:25px}.intro-actions .primary{font-size:13px;padding:12px 16px}.intro-actions .quiet{font-size:12px}
.tour-entry{padding:0 0 22px;margin-bottom:24px;border-bottom:1px solid #293d50}.tour-entry>.eyebrow{color:#b8d7c9}
.tour-entry button{display:block;width:100%;text-align:left;padding:8px 10px;border:1px solid #75998f;border-radius:8px;background:#19332f;color:#dcf3e6}
.tour-entry button strong{display:block;font-size:14px;font-weight:500}.tour-entry button span{display:block;font-size:11px;color:#acd2c3;margin-top:3px}.tour-entry>p:last-child{font-size:12px;line-height:1.65;color:#abc0ce;margin:12px 0 0}
body[data-mode=module] aside .story .step-controls{display:none}body[data-mode=module] aside .story .primary{font-size:12px;padding-left:8px;padding-right:8px}
.domain-facts{margin:22px 0}.domain-facts dt{font-size:10px;letter-spacing:1.3px;color:#9dbec0;margin:18px 0 6px}.domain-facts dd{font-size:13px;line-height:1.7;color:#b6cad9;margin:0}
details.relation-detail{padding:0;text-align:left;border-radius:7px;background:#112234;display:block;margin-bottom:9px}
.relation-detail summary{padding:12px;cursor:pointer;list-style:none}.relation-detail summary::-webkit-details-marker{display:none}.relation-detail summary:after{content:'+';float:right;color:#b2d5cb;margin-top:-18px}.relation-detail[open] summary:after{content:'−'}
.relation-detail summary>span{display:block;font-size:12px;line-height:1.5;color:#a9c5d7;margin:7px 13px 0 0}.relation-detail>small,.relation-detail>.connection-explanation{margin:0 12px 9px}.relation-detail .connection-open{margin:2px 12px 12px;padding:7px 9px;font-size:11px;color:#d2eee7;background:#213e42;border:1px solid #466466;border-radius:4px}
.plain-terms{border-top:1px solid #324958;margin-top:25px;padding-top:14px}.plain-terms summary{font-size:12px;color:#cee6e2;cursor:pointer;line-height:1.6}.plain-terms dl{margin:17px 0 0}.plain-terms dt{font-size:13px;font-weight:600;color:#e1efed;margin-top:16px}.plain-terms dd{font-size:12px;line-height:1.65;color:#b5c9d8;margin:5px 0 0}
.plain-guide{max-width:1468px;margin:32px auto 0;padding:0 24px}.plain-guide .plain-terms{border:1px solid #2b4254;border-radius:10px;background:#0b1523;padding:19px 22px;margin:0}.plain-guide summary{font-size:14px}.plain-guide dl{columns:3;column-gap:36px}.plain-guide dt,.plain-guide dd{break-inside:avoid}.plain-guide dt{break-after:avoid}
.tour-domain-links{display:flex;flex-direction:column;gap:8px;margin-top:19px}.tour-domain{font-size:12px;line-height:1.5;text-align:left;color:#daeee9;background:#173039;border:1px solid var(--focus-color,#55786e);border-radius:6px;padding:10px 12px}.tour-domain:hover{background:#23434b}
.subdomain-connection{stroke-width:1;opacity:.5;fill:none;pointer-events:none}.tour-revealed{stroke:#9ac7b6!important}.parallel-connections{pointer-events:none}
body[data-story-kind=tour][data-mode=journey] .journey-key{display:none}
#continue-tour{font-size:11px;color:#c6ddd8;text-align:left;line-height:1.5}
details summary:focus-visible,.tour-domain:focus-visible,.previous-version:focus-visible{outline:2px solid #b6e8df;outline-offset:4px}
@media(max-width:1100px){.intro{gap:24px;align-items:flex-start}.intro h1{font-size:30px}.intro h1 span{font-size:26px}.intro>p{max-width:340px;font-size:13px}.intro-actions{gap:12px}.header-note{display:none}.plain-guide dl{columns:2}}
@media(max-width:850px){.intro{display:block}.intro>p{max-width:620px;margin-top:25px}.previous-version{margin-right:12px}.intro-actions{margin-top:20px}.plain-guide{padding:0 12px}.plain-guide dl{columns:1}}
@media(max-width:767px){.intro-actions,.plain-guide{display:none}.previous-version{font-size:10px}.intro{padding-top:28px;padding-bottom:20px}}

.workspace{scroll-margin-top:90px}.header-note{margin-left:24px}body[data-story-kind=tour][data-mode=journey] .journey-key{display:none!important}.story-copy h2:focus{outline:none}

.intro{scroll-margin-top:90px}

.domain-options{padding:12px 0;margin:10px 0 20px;border-top:1px solid #294252;border-bottom:1px solid #294252}.domain-options summary{font-size:12px;color:#c5ddd8;cursor:pointer}.domain-options p{font-size:12px;color:#b6cad9;line-height:1.65;margin:12px 0 0}

/* V3: fit the whole map to the screen; keep reading inside the sidebar. */
@media(min-width:768px){
 header{height:64px;padding:0 3vw}
 main{max-width:none;padding:0 3vw}
 .header-note{font-size:12px}
 .intro{display:block;padding:12px 0}
 .intro>div{display:flex;align-items:center;justify-content:space-between;gap:20px}
 .intro h1{font-size:20px;letter-spacing:-.5px;line-height:1.3}
 .intro h1 span{display:inline;font-size:14px;margin:0;letter-spacing:0}
 .intro-actions{margin:0;gap:15px;flex-shrink:0}
 .intro-actions .primary{padding:9px 12px;font-size:12px}
 .intro-actions .quiet{font-size:11px}
 .workspace{height:calc(100dvh - 144px);min-height:0;grid-template-columns:260px minmax(0,1fr);scroll-margin-top:76px;overflow-anchor:none}
 aside{min-height:0;height:100%;max-height:none;overflow-y:auto;overscroll-behavior:contain;padding:18px 16px}
 .visual{display:flex;flex-direction:column;min-height:0;height:100%;overflow:hidden}
 .map-top{height:28px;padding:10px 18px 0;flex-shrink:0}
 .view-tools{padding:6px 16px 0;flex-shrink:0}
 .map-context{height:48px;min-height:48px;margin:2px 18px 0;padding:6px 0;flex-shrink:0;flex-wrap:nowrap;font-size:11px}
 .universe{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;margin:0;overflow:hidden}
 .map-viewport{display:flex;flex:1;min-height:0;min-width:0;overflow:auto;overscroll-behavior:contain}
 .universe svg{flex:none;display:block;min-width:0;max-width:none;max-height:none;margin:auto}
 .map-legend{flex-shrink:0;position:static;padding:6px 16px 9px;gap:14px;font-size:10px;height:32px;min-height:32px}
 .planet .planet-name{font-size:25px}.planet .moon text{font-size:20px}
 .tour-entry{padding-bottom:16px;margin-bottom:18px}.tour-entry>p:last-child{font-size:12px;line-height:1.6}
 .tour-entry>p strong{display:block;color:#dcece9;margin-bottom:5px}
 .back-universe{margin-bottom:18px}
 /* Keep the same frame in overview, domain and journey modes. */
 body[data-mode=overview] .visual>.story{display:none}
 .closer{padding:38px 0}
}
@media(min-width:768px) and (max-width:1050px){
 main,header{padding-left:16px;padding-right:16px}.workspace{grid-template-columns:228px minmax(0,1fr)}
 .intro h1 span{display:none}.intro-actions{gap:10px}.map-top{height:44px}.map-top .tiny{display:none}
 .view-tools{justify-content:flex-start}.view-tools button{padding:4px 7px}.map-context{gap:8px}
 .map-legend{gap:8px;font-size:9px}.planet .planet-name{font-size:27px}.planet .moon text{font-size:21px}
}

/* Website integration: readable surround and full reference below the map. */
.reference-link{display:block;margin:20px 0;color:var(--ice);font-size:15px;text-underline-offset:5px;text-decoration:underline}
.domain-reference{padding:36px 0;border-top:1px solid #829dc35c;scroll-margin-top:30px}
.domain-reference h2{font-size:26px;font-weight:500;margin:0 0 14px}
.domain-reference>p{color:var(--muted)}
.domain-reference-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}
.domain-reference details{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:20px}
.domain-reference summary{cursor:pointer;color:var(--ink);font-size:15px}
.domain-reference dl{font-size:15px}.domain-reference dt{color:var(--ink);margin-top:18px}.domain-reference dd{color:var(--muted);margin:5px 0 0;line-height:1.65}
.domain-reference .reference-description{color:var(--muted);font-size:15px}
@media(min-width:768px){.workspace{height:calc(100dvh - 194px)}}
@media(max-width:1100px){.domain-reference-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.domain-reference-grid{grid-template-columns:1fr}.plain-guide{display:block}.reference-link{margin-top:24px}}

/* Compact opening; scrolling over the map continues through the document. */
.map-viewport,aside{overscroll-behavior:auto}
@media(min-width:768px){header{height:52px}.intro{padding:8px 0}.workspace{height:calc(100dvh - 126px)}}

/* Compact task list with short, inset separators. */
.tour-entry{position:relative;padding-bottom:10px;margin-bottom:10px;border-bottom:0}
.tour-entry::after{content:'';display:block;width:48px;height:1px;background:#829dc35c;margin-top:10px}
.side-top .eyebrow{margin-bottom:5px}
#journeys{gap:0}
#journeys .journey{position:relative;padding-top:8px;padding-bottom:8px}
#journeys .journey+.journey::before{content:'';position:absolute;top:0;left:34px;width:48px;height:1px;background:#829dc35c}
