:root{color-scheme:dark;--bg:#060c15;--ink:#ecede8;--muted:#95a6b6;--line:#233243;--gold:#edbf72;--cyan:#63d1d4;--card:#0d1723}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,select,input{font:inherit}button,select{background:#152331;border:1px solid #334355;color:var(--ink);border-radius:6px;padding:8px 12px;cursor:pointer}button:hover,button:focus-visible{border-color:var(--gold);color:var(--gold)}button.active{border-color:var(--cyan);color:var(--cyan)}button:disabled{opacity:.45;cursor:default}header{height:74px;padding:0 30px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:15px}.brand{font-size:16px;font-weight:600;letter-spacing:.02em}.brand span{font-size:11px;letter-spacing:.18em;color:var(--gold);display:block;text-transform:uppercase}.edition{color:var(--muted);font-size:12px}.layout{max-width:1700px;margin:auto;padding:24px;display:grid;grid-template-columns:minmax(0,1fr) 345px;gap:24px}.screen{position:relative;min-height:520px;height:calc(100vh - 305px);max-height:780px;border:1px solid var(--line);background:radial-gradient(ellipse at 50% 45%,#132131 0%,#070d16 72%);border-radius:10px;overflow:hidden}.canvas{width:100%;height:100%;display:block}.eyebrow{position:absolute;top:20px;left:23px;right:18px;display:flex;justify-content:space-between;gap:12px;color:#a5b4c0;text-transform:uppercase;letter-spacing:.16em;font-size:10px;pointer-events:none}.caption{min-height:115px;display:flex;align-items:center;padding:18px 25px 16px;font-family:Georgia,'Times New Roman',serif;font-size:25px;line-height:1.38;color:#f2f1e9;max-width:1050px}.caption p{margin:0}.status{position:absolute;bottom:17px;left:23px;right:23px;display:flex;gap:25px;font-size:11px;color:#8c9aab;pointer-events:none}.status b{font-weight:500;color:#d7dfe4;font-variant-numeric:tabular-nums}.transport{border:1px solid var(--line);border-radius:9px;padding:13px 16px;background:var(--card)}.seekrow{display:flex;align-items:center;gap:14px}input[type=range]{accent-color:var(--gold);flex:1;min-width:0}.time{font-variant-numeric:tabular-nums;min-width:98px;color:#bec7ce;font-size:12px}.buttons{display:flex;justify-content:space-between;gap:12px;margin-top:10px;flex-wrap:wrap}.buttons>div{display:flex;gap:7px;align-items:center}.small{font-size:12px;padding:6px 9px}aside{display:flex;flex-direction:column;gap:16px}.number{font-size:11px;letter-spacing:.18em;color:var(--gold)}h1{font-size:30px;font-weight:500;line-height:1.13;margin:10px 0 14px}#lesson{color:#b9c7d1;font-size:14px;border-left:2px solid var(--gold);padding-left:14px}#narration{font-size:14px;color:#93a8b8}.chapters{display:grid;gap:3px;max-height:330px;overflow:auto;padding-right:6px}.chapter{border:none;background:none;display:flex;align-items:center;text-align:left;gap:12px;padding:7px 8px;font-size:12px}.chapter span{color:#708496;font-size:10px;min-width:16px}.chapter.selected{background:#1b2935;color:var(--gold)}.details{padding:16px;border:1px solid var(--line);border-radius:9px;margin-top:20px;color:#aab9c5;font-size:13px}.details summary{color:#dce4ea;cursor:pointer}code{color:#c4d8df}.notes{margin-top:12px;max-width:950px}.legend{display:flex;gap:15px;flex-wrap:wrap;color:#7f93a4;font-size:11px;margin:9px 2px}.swatch{display:inline-block;height:6px;width:18px;margin-right:6px;border-radius:4px;background:var(--gold)}.swatch.cyan{background:var(--cyan)}.swatch.purple{background:#bdace6}.footer{padding:0 28px 24px;color:#718496;font-size:11px}.formula{white-space:pre-wrap;background:#07111b;border:1px solid #233344;padding:12px;font-size:12px}#pauseIndicator{display:none;position:absolute;bottom:40px;right:22px;color:var(--gold);font-size:12px}.muted{color:var(--muted)}a{color:var(--cyan)}@media(max-width:1000px){.layout{grid-template-columns:1fr;padding:14px}.screen{height:55vh;min-height:370px}.caption{font-size:23px;min-height:122px}aside{display:grid;grid-template-columns:1fr 1fr;gap:14px}.chapters{max-height:280px}header{padding:0 18px}.edition{max-width:170px;text-align:right}h1{font-size:25px}}@media(max-width:620px){.screen{height:43vh;min-height:340px}.caption{padding:15px 7px;min-height:146px;font-size:22px}.status{gap:12px;font-size:10px}.eyebrow{font-size:8px;letter-spacing:.08em;left:14px;right:14px}aside{display:block}aside>div{margin-top:16px}.chapters{max-height:220px}.edition{display:none}.buttons>div{flex-wrap:wrap}.small{font-size:11px}.details{font-size:12px}.footer{padding:0 16px 20px}}

/* The introduction uses the existing gold-and-blue Site identity. */
body{font-size:16px}header{height:auto;min-height:80px;padding:16px 28px}.brand-home{flex-shrink:0}.brand-home img{display:block;object-fit:contain}.brand{flex:1}.brand span,.number{font-size:12px}.journey-link{font-size:14px;color:var(--gold);text-decoration:none;border:1px solid var(--line);padding:9px 14px;border-radius:6px}.small,.chapter,#lesson,#narration,.details,.time{font-size:14px}.legend,.footer,.status,.eyebrow,.chapter span{font-size:12px}.buttons>div{flex-wrap:wrap}.screen:fullscreen{height:100vh;max-height:none;width:100vw;background:#060c15}.caption{min-height:130px}.caption p{max-width:48ch}.footer a{margin-inline-start:12px}.chapter[aria-current="step"]{border-left:2px solid var(--gold)}a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:4px}#chapters{scrollbar-color:#4d6278 #0d1723}@media(max-width:620px){header{padding:12px;flex-wrap:wrap}.brand{font-size:14px}.brand span{font-size:12px;letter-spacing:.06em}.journey-link{margin-left:56px}.screen{min-height:340px}.eyebrow{font-size:12px;letter-spacing:0;text-transform:none;flex-direction:column;gap:0}.small,.details{font-size:14px}.status{font-size:12px;flex-wrap:wrap;gap:8px}.caption{font-size:22px;min-height:170px}.footer{font-size:13px}.footer a{display:block;margin:10px 0}.chapters{max-height:none}}

.control-note{color:var(--muted);font-size:14px;margin:10px 4px}.completion{padding:20px;border-left:2px solid var(--gold);margin:16px 0}.completion[hidden]{display:none}.completion h2{font-family:Georgia,serif;font-weight:400}.completion .journey-link{display:inline-block;margin:8px 0}
.embedded-introduction>header{display:none}.intro-chapters{border-top:1px solid var(--line);padding-top:12px}.intro-chapters>summary{cursor:pointer;color:var(--gold);padding:12px 0}.intro-chapters[open]>.chapters{margin-top:10px}.intro-chapters:not([open])>.chapters{display:none}
.passage-focus .eyebrow{position:static;display:block;font-size:11px;color:#edbf72;letter-spacing:.08em}.screen.numerical{height:540px;min-height:540px}.screen.numerical>.eyebrow,.screen.numerical>.status,.screen.numerical>#pauseIndicator{visibility:hidden}
@media(min-width:1001px){.screen{min-height:340px;height:clamp(340px,calc(100dvh - 360px),680px)}}
@media(max-width:620px){header{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px 14px}.brand{min-width:0}.journey-link{margin-left:0;grid-column:2;justify-self:start}.brand span{letter-spacing:.04em}}

/* Inspection belongs to the Body; simulation time remains independent. */
.canvas.inspectable{touch-action:none;cursor:grab}.canvas.dragging{cursor:grabbing}.canvas:focus-visible{outline:2px solid var(--gold);outline-offset:-3px}.view-controls{position:absolute;top:52px;right:14px;display:flex;gap:5px}.view-controls[hidden]{display:none}.view-controls button{font-size:14px;padding:6px 10px;background:#0d1723e8;min-height:36px}#pauseIndicator{pointer-events:none}.screen:fullscreen .view-controls{top:54px}@media(max-width:620px){.view-controls{top:66px;right:10px}.view-controls button{padding:5px 9px}}

/* Touch navigation and geometry inspection have separate ownership. */
.canvas.inspectable{touch-action:pan-y pinch-zoom}.canvas.touch-inspect{touch-action:none}.view-controls{flex-wrap:wrap;max-width:calc(100% - 28px)}#touchInspect{display:none}@media(pointer:coarse),(max-width:800px){#touchInspect{display:inline-block}.view-controls{top:66px}.view-controls button{font-size:13px;padding:5px 8px}}
@media(max-width:1000px){.layout{display:flex;flex-direction:column;gap:16px}.layout>section,.layout>aside{display:contents}.layout>aside>div:first-child{order:-1}.layout h1{margin-top:4px}.layout #narration{display:block}.screen{height:370px;min-height:300px;flex:none}.caption{min-height:0;padding:12px 8px}.layout>*{min-width:0}.details{margin-top:8px}}
@media(max-width:420px){.screen{height:340px}.view-controls{right:10px;max-width:calc(100% - 20px)}.status{left:12px;right:12px;font-size:11px}.buttons{overflow-wrap:anywhere}}
.passage-focus{border-top:1px solid var(--line);padding-top:16px;margin-top:12px}.passage-focus h2{font:400 22px/1.3 Georgia,serif;color:var(--gold);margin:10px 0}.passage-focus p{font-size:14px;line-height:1.6;color:#b9cbd7}.passage-map{border:1px solid #293c4c;border-radius:12px;padding:12px 8px;background:#09121d;margin-bottom:20px;min-width:0}.map-heading{padding:4px 8px}.map-heading h3{font:500 16px/1.4 system-ui;margin:0 0 5px;color:#e8d0a7}.scope-label{font-size:10px;text-transform:uppercase;color:#8fb5c2;letter-spacing:.08em}.relation-diagram{display:block;width:100%;height:auto;touch-action:pan-y}.relation-choices{display:flex;gap:6px;flex-wrap:wrap;padding:6px 8px}.relation-choices button{padding:8px;font-size:12px;min-height:40px}.relation-choices button[aria-pressed=true]{border-color:#edbf72;color:#edbf72}.relation-selected,.inspect-prompt,.diagram-reading{font-size:13px;line-height:1.6;margin:12px 8px;color:#b9cbd7}.inspect-prompt{border-top:1px solid #293c4c;padding-top:10px;color:#9dccd3}.diagram-reading summary{color:#edbf72;cursor:pointer}.diagram-reading li{margin-bottom:8px}.passage-map button:focus-visible,.diagram-reading summary:focus-visible{outline:2px solid #edbf72;outline-offset:3px}

/* Phones read the chapter and current caption before the compact illustration.
   Width-based sizing avoids a viewport/auto-height iframe feedback loop. */
@media(max-width:1000px){
 .layout>aside>div:first-child{order:-4;margin-top:0}
 .layout>section>.caption{order:-3;font-size:20px;padding:0 2px 8px}
 .layout>section>.screen{order:-2;height:clamp(200px,60vw,270px);min-height:0}
 .layout>section>.screen.numerical{height:540px}
 .layout>section>.screen:fullscreen{height:100dvh;min-height:0;max-height:none}
 #narration,#lesson{font-size:16px;line-height:1.65}
 .layout h1{font-size:27px;line-height:1.2;margin-bottom:12px}
 .layout #lesson{margin:10px 0}
 .layout #narration{margin:12px 0 0}
}
