/* Same terminal, each edition supplies data instead of its own player. */
.console[data-presentation="reading"] .narrative-window{height:clamp(280px,55vh,650px);overflow:auto}
.console[data-presentation="reading"]:is(:fullscreen,.screen-takeover) .narrative-window{flex:1;height:auto;min-height:180px}
.console[data-presentation="reading"] .operating-system{display:none!important}
.console[data-presentation="reading"]:is(:fullscreen,.screen-takeover){background:#091216}
html[data-theme="light"] .console[data-presentation="reading"]:is(:fullscreen,.screen-takeover){background:#f5f4ee}
.remote .console[data-presentation="reading"] .narrative-window{display:block}
/* Additional details occupy their own space, never paint over existing work.
   Small screens can scroll the drawing stack without moving transport/text. */
.visual-panes.with-detail{overflow:auto;align-items:stretch}
#object-space{min-width:220px}
#object-space canvas{object-fit:contain}
.console:is(:fullscreen,.screen-takeover) .visual-panes.with-detail{min-height:0}
@media(min-width:701px){.visual-panes.with-detail{flex-wrap:nowrap}.visual-panes.with-detail>div,.visual-panes.with-detail>section{flex:1;min-width:0!important}}
@media(max-width:700px){.visual-panes.with-detail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr) minmax(0,1fr);overflow:auto}.visual-panes.with-detail>div,.visual-panes.with-detail>section{min-height:0!important;min-width:0!important}.visual-panes.with-detail .geometry-space,.visual-panes.with-detail #object-space{grid-column:1/-1}.visual-panes.with-detail:has(#equation-space:not([hidden]),#zero-space:not([hidden])) .geometry-space{grid-column:auto}.visual-panes.with-detail canvas{height:100%!important;max-height:100%!important;min-height:0!important;object-fit:contain}.visual-panes.with-detail #object-space h3{margin:2px 0;line-height:1.2}}
.console:is(:fullscreen,.screen-takeover):has(.with-detail) .operating-system{min-height:0;overflow:hidden}
.console:is(:fullscreen,.screen-takeover):has(.with-detail) .work-area{min-height:0;overflow:hidden}
.console:is(:fullscreen,.screen-takeover):has(.with-detail) .instrument{min-height:0}
.console:is(:fullscreen,.screen-takeover) .visual-panes.with-detail{min-height:0!important;overflow:auto}
.console:is(:fullscreen,.screen-takeover) .visual-panes.with-detail canvas{min-height:0!important;object-fit:contain}
.console:is(:fullscreen,.screen-takeover) .visual-panes.with-detail>section,.console:is(:fullscreen,.screen-takeover) .visual-panes.with-detail>.geometry-space{min-height:0!important}
@media(max-height:500px){.console:is(:fullscreen,.screen-takeover):has(.with-detail) .clocks{display:none}.console:is(:fullscreen,.screen-takeover):has(.with-detail) .narrative-window{height:70px!important;min-height:0!important;padding:7px 16px}.console:is(:fullscreen,.screen-takeover):has(.with-detail) .narrative-window>p{font-size:15px}.console:is(:fullscreen,.screen-takeover):has(.with-detail) .instrument-title{min-height:25px}.console:is(:fullscreen,.screen-takeover):has(.with-detail) .transport{padding:5px 10px;gap:5px}.console:is(:fullscreen,.screen-takeover):has(.with-detail) .transport .library-select{flex-basis:250px;order:0}.console:is(:fullscreen,.screen-takeover):has(.with-detail) .play-settings{padding:3px 10px;gap:12px}}
:root{--os-ink:var(--volume-dark,#91dacd)}html[data-theme=light]{--os-ink:var(--volume-light,#146655)}
body.console-takeover .os>:not(.console){visibility:hidden}
body.research-host{background:transparent}.console{background:color-mix(in srgb,var(--os-bg) 78%,transparent)}.operating-system,.work-area,.instrument,.geometry-space{background:transparent}.narrative-window,.observer{background:color-mix(in srgb,var(--os-bg) 65%,transparent)}
.instrument{position:relative}#defense-takeover{position:absolute;z-index:8;top:32px;left:50%;transform:translateX(-50%);min-width:112px;padding:7px 14px;border:1px solid var(--os-line);background:color-mix(in srgb,var(--os-bg) 88%,transparent);color:var(--os-ink);font:700 10px/1 ui-monospace,monospace;letter-spacing:.14em}#defense-takeover:hover,#defense-takeover:focus-visible{border-color:var(--os-ink);outline:none}#defense-takeover[aria-pressed="true"]{border-color:#7dded7;box-shadow:0 0 0 1px color-mix(in srgb,#7dded7 38%,transparent);color:#7dded7}#defense-takeover[hidden]{display:none!important}#system-grid.manual-defense{cursor:crosshair;touch-action:none}
.visual-panes{display:flex;flex:1;min-width:0;min-height:280px;align-items:stretch;gap:12px}.geometry-space{min-width:0;flex:1;display:flex;align-items:center}.visual-panes section{min-width:0;flex:1;display:flex;flex-direction:column;border-left:1px solid var(--os-line);padding-left:12px}.visual-panes h3{font:10px/1.5 ui-monospace,monospace;color:var(--os-dim);margin:6px 0}.visual-panes canvas{width:100%;min-width:0;height:auto;align-self:center}.instrument.dismissed .visual-panes{visibility:hidden}
.observer h3{font-size:12px;font-weight:normal;margin:0}.context-excerpt{font:12px/1.6 Georgia,serif;margin:0;max-height:9em;overflow:auto;overflow-wrap:anywhere}#related-papers p{font:11px/1.5 system-ui,sans-serif;margin:5px 0 16px;color:var(--os-dim)}#related-papers a{display:block;font-size:12px}.observer dl{border-top:1px solid var(--os-line)}
.console:is(:fullscreen,.screen-takeover){background:color-mix(in srgb,var(--os-bg) 90%,transparent)}.console:is(:fullscreen,.screen-takeover) .visual-panes{flex:1;min-height:200px}.console:is(:fullscreen,.screen-takeover) .geometry-space{min-height:200px}.console:is(:fullscreen,.screen-takeover) .visual-panes canvas{height:100%;min-height:150px;flex:1;max-height:65svh}.console:is(:fullscreen,.screen-takeover) .visual-panes section{min-height:200px}
.has-equations .device-corner{bottom:34px}.remote .visual-panes{min-height:400px}
@media(max-width:700px){.visual-panes{flex-direction:column;gap:4px}.visual-panes section{border-left:0;border-top:1px solid var(--os-line);padding-left:0}.has-equations .visual-panes canvas{max-height:32svh}.console:is(:fullscreen,.screen-takeover).has-equations .visual-panes canvas{height:210px;max-height:32svh}.console:is(:fullscreen,.screen-takeover).has-equations .geometry-space,.console:is(:fullscreen,.screen-takeover).has-equations .visual-panes section{min-height:160px}.remote .visual-panes{min-height:300px}}
.play-settings{display:flex;gap:20px;flex-wrap:wrap;padding:6px 16px;border-top:1px solid var(--os-line);font-size:10px;color:var(--os-dim)}.play-settings label{display:flex;align-items:center;gap:7px}
.mast .pilot-mark{min-width:150px}#volume-select{max-width:280px}#chapter-select{max-width:430px}.transport .library-select{display:flex;flex:1 1 340px;gap:6px;min-width:0}.library-select select{min-width:0!important;flex:1;width:50%}.mast h1{font-size:clamp(30px,4vw,56px)}.device-corner{position:absolute;right:22px;bottom:40px;display:flex;align-items:end;gap:7px;text-decoration:none;font-size:9px;padding:6px;background:var(--os-bg);border:1px solid var(--os-line)}.device-corner canvas{width:64px;height:64px;max-height:none;aspect-ratio:1;flex:none!important;min-height:64px!important}.remote .device-corner{display:none}.observer{gap:8px}.observer label{display:block;font-size:10px}.observer input[type=checkbox]{margin-right:6px}.instrument{min-height:280px}.console.dialog-open .narrative-window{filter:none}#checkpoint{max-width:550px}.remote .narrative-window{display:none}.remote #share{display:none}.remote #rescan{display:inline-block}#close-visual{font-size:9px;padding:3px 6px}.instrument.dismissed #system-grid,.instrument.dismissed .device-corner{visibility:hidden}.instrument.dismissed{min-height:180px}.remote #close-visual{display:none}#lab[hidden]{display:none}.about-pilot{align-items:start}.mobile-extras{display:none}#source-quote{white-space:pre-wrap}.console:is(:fullscreen,.screen-takeover) .device-corner canvas{height:64px;flex:none}.lecture-progress{font-variant-numeric:tabular-nums;color:var(--os-dim)}
@media(max-width:850px){.mobile-extras{display:inline-flex;align-items:center;gap:8px;font-size:9px}.transport .library-select{flex-basis:100%;order:4}#position{order:5}#position-text{order:6}.device-corner{bottom:30px;right:12px}.device-corner span{display:none}.device-corner canvas{width:52px;height:52px;min-height:52px!important}.console:is(:fullscreen,.screen-takeover) .device-corner canvas{height:52px}.observer{display:none}}
@media(max-width:520px){.library-select select{font-size:10px}.transport .library-select{flex-basis:100%}.clocks{grid-template-columns:1fr 1fr}.clocks>div:last-child{display:none}.bezel button{padding:7px}.narrative-window{height:144px}.console:is(:fullscreen,.screen-takeover) .narrative-window{height:125px}.instrument-title h2{max-width:75%}.device-corner{right:8px}}
.cartridge-picker{display:inline-flex;align-items:center;gap:6px;font-size:11px;white-space:nowrap}
.console[data-panes]:not([data-panes="legacy"]) .visual-panes{display:flex!important;flex-direction:row!important}
.console[data-panes="single"] .visual-panes>section:not(:first-child){display:none!important}
.console[data-panes]:not([data-panes="legacy"]) .geometry-space{flex:1;min-width:0;width:100%}
.console[data-panes]:not([data-panes="legacy"]):is(:fullscreen,.screen-takeover) :is(.operating-system,.work-area,.instrument,.visual-panes,.geometry-space){min-height:0!important}
.console[data-panes]:not([data-panes="legacy"]):is(:fullscreen,.screen-takeover) :is(.operating-system,.work-area){overflow:hidden}
.console[data-panes]:not([data-panes="legacy"]) .visual-panes canvas{min-height:0!important;object-fit:contain}
.console[data-panes="equations"] .visual-panes>[hidden]{display:none!important}
.console[data-panes="equations"] .visual-panes>section{min-height:0!important}
@media(max-width:700px){.console[data-panes="equations"].has-equations .visual-panes{flex-direction:column!important}.console[data-panes="equations"].has-equations .visual-panes>*{flex:1;min-height:0!important}.console[data-panes="equations"].has-equations .visual-panes canvas{height:100%!important;max-height:100%;object-fit:contain}.console[data-panes="equations"] #canvas-mode{max-width:70%;white-space:normal}}
@media(max-height:500px){.console[data-panes]:not([data-panes="legacy"]):is(:fullscreen,.screen-takeover) .clocks{display:none}.console[data-panes]:not([data-panes="legacy"]):is(:fullscreen,.screen-takeover) .narrative-window{height:60px!important;min-height:0!important;padding:7px 16px}.console[data-panes]:not([data-panes="legacy"]):is(:fullscreen,.screen-takeover) .narrative-window>p{font-size:15px}.console[data-panes]:not([data-panes="legacy"]):is(:fullscreen,.screen-takeover) .instrument-title{min-height:25px}.console[data-panes]:not([data-panes="legacy"]):is(:fullscreen,.screen-takeover) .transport{padding:5px 10px;gap:5px}.console[data-panes]:not([data-panes="legacy"]):is(:fullscreen,.screen-takeover) .transport .library-select{flex-basis:250px;order:0}.console[data-panes]:not([data-panes="legacy"]):is(:fullscreen,.screen-takeover) .play-settings{padding:3px 10px;gap:12px}}
/* In short landscape windows the text sits beside the maze, not above it. */
@media(max-height:500px) and (min-width:600px){
 .console[data-panes]:not([data-panes="legacy"]):is(:fullscreen,.screen-takeover){display:grid;grid-template-columns:minmax(180px,30%) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto;overflow:hidden}
 .console[data-panes]:not([data-panes="legacy"]):is(:fullscreen,.screen-takeover) .transport{grid-column:1/-1;grid-row:1}
 .console[data-panes]:not([data-panes="legacy"]):is(:fullscreen,.screen-takeover) .identity{display:none}
 .console[data-panes]:not([data-panes="legacy"]):is(:fullscreen,.screen-takeover) .narrative-window{grid-column:1;grid-row:2;height:auto!important;overflow:auto;border-right:1px solid var(--os-line)}
 .console[data-panes]:not([data-panes="legacy"]):is(:fullscreen,.screen-takeover) .operating-system{grid-column:2;grid-row:2}
 .console[data-panes]:not([data-panes="legacy"]):is(:fullscreen,.screen-takeover) .bezel{grid-column:1/-1;grid-row:3}
 .console[data-panes]:not([data-panes="legacy"]):is(:fullscreen,.screen-takeover) .play-settings{grid-column:1/-1;grid-row:4}
 .remote .console[data-panes]:not([data-panes="legacy"]):is(:fullscreen,.screen-takeover) .operating-system{grid-column:1/-1}
 .remote .console[data-panes]:not([data-panes="legacy"]):is(:fullscreen,.screen-takeover) .remote-only{display:none}
}
#appendix-dialog{width:min(960px,94vw);max-height:85vh;overflow:auto;background:var(--listen-panel,var(--bg,#101818));color:inherit;border:1px solid currentColor;padding:24px;}
.appendix-reading{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65;max-width:76ch;margin:24px auto;font-family:Georgia,serif;font-size:1.05rem;}
#support-dialog{width:min(1100px,96vw);height:min(860px,92vh);max-width:none;max-height:none;padding:0;overflow:hidden;border:1px solid var(--os-line);background:var(--os-bg,#071115);color:var(--os-text,#d9e2e4)}
#support-dialog::backdrop{background:rgba(0,0,0,.78);backdrop-filter:blur(3px)}
.support-dialog-head{height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-bottom:1px solid var(--os-line);background:var(--os-bg,#071115)}
.support-dialog-head h2{margin:0;color:var(--os-ink);font:700 11px/1 ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase}
.support-dialog-head button{padding:6px 10px;font:700 9px/1 ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase}
#support-frame{display:block;width:100%;height:calc(100% - 43px);border:0;background:var(--os-bg,#071115)}
@media(max-width:600px){#support-dialog{width:100vw;height:100dvh}.support-dialog-head{height:38px}#support-frame{height:calc(100% - 39px)}}
