:root{--zc-background:#f6f5ef;--zc-surface:#fffefa;--zc-ink:#22252c;--zc-muted:#647079;--zc-accent:#355ce4;--zc-accent-ink:#fff;--zc-soft:#e9edf3;--zc-border:#cbd2dc;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--zc-background);color:var(--zc-ink);font:14px/1.55 system-ui,sans-serif}header{display:flex;justify-content:space-between;gap:16px;font:9px/1.5 ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--zc-muted)}button,select{font:inherit;min-height:46px;padding:10px 15px;border:1px solid var(--zc-border);border-radius:8px;background:var(--zc-surface);color:var(--zc-ink);cursor:pointer}button:disabled{opacity:.5;cursor:default}:focus-visible{outline:3px solid var(--zc-accent);outline-offset:4px}.wide{width:100%;margin:6px 0}.eyebrow{font:9px/1.5 ui-monospace,monospace;letter-spacing:.13em;color:var(--zc-muted)}h1,h2,p{margin:0}h2{font-size:25px;line-height:1.2;letter-spacing:-.04em}.intro p,aside p{font-size:12px;color:var(--zc-muted)}.caption{display:flex;justify-content:space-between;gap:12px;font:10px/1.5 ui-monospace,monospace;color:var(--zc-muted);padding:13px 0}#status{font-size:11px;line-height:1.6;color:var(--zc-muted);margin-top:12px}footer{font-size:9px;color:var(--zc-muted);border-top:1px solid var(--zc-border);padding-top:13px}canvas{display:block;width:100%;touch-action:none}label{font-size:11px}summary{cursor:pointer;min-height:44px;padding-top:12px}input[type=range]{min-height:44px;width:100%;accent-color:var(--zc-accent)}[data-motion=reduced] *,[data-motion=reduced] *::before,[data-motion=reduced] *::after{animation:none!important;transition:none!important}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

:root{--zc-orbit-night:#09182f;--zc-orbit-line:#2e526e;--zc-orbit-cyan:#68e6ee;--zc-orbit-peach:#ffb4a1;--zc-orbit-type:#eaf5f7}main{max-width:1280px;margin:auto;padding:24px 32px}header{padding-bottom:13px;border-bottom:1px solid var(--zc-border)}.intro{display:grid;grid-template-columns:1fr 290px;gap:10px 30px;padding:27px 0 22px}.intro .eyebrow{grid-column:1}.intro h1{font-size:clamp(46px,6.7vw,83px);font-weight:300;letter-spacing:-.065em;line-height:.95;grid-column:1}.intro p{grid-column:2;grid-row:1/3;align-self:end;max-width:250px;font-size:12px;line-height:1.8}.layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:32px;align-items:center}.stage{position:relative;isolation:isolate;overflow:hidden;background:var(--zc-orbit-night);border:1px solid var(--zc-orbit-line);border-radius:3px}.stage:before,.stage:after{content:'+';position:absolute;top:15px;left:17px;color:var(--zc-orbit-cyan);font:18px ui-monospace,monospace;pointer-events:none}.stage:after{left:auto;right:17px}canvas{height:430px}.observation{position:absolute;left:23px;right:23px;bottom:18px;display:flex;justify-content:space-between;font:9px ui-monospace,monospace;letter-spacing:.12em;color:var(--zc-orbit-type);pointer-events:none}.observation span:last-child{font-size:19px;color:var(--zc-orbit-cyan);letter-spacing:.03em}.path-legend{display:flex;flex-direction:column;gap:9px;font:9px ui-monospace,monospace;letter-spacing:.03em;margin-bottom:25px;color:var(--zc-muted)}.path-legend span:before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:8px;background:var(--zc-orbit-cyan);box-shadow:0 0 0 2px #193c51}.path-legend span+span:before{background:var(--zc-orbit-peach);box-shadow:0 0 0 2px #4c333b}aside h2{font-size:31px;font-weight:400;line-height:1.1;letter-spacing:-.045em;margin-bottom:14px}aside p{font-size:11px;line-height:1.8;margin-bottom:12px}.primary{background:var(--zc-orbit-night);color:var(--zc-orbit-type);border-color:var(--zc-orbit-line);border-radius:0;min-height:50px}.primary:before{content:'◎';font-size:18px;margin-right:10px;color:var(--zc-orbit-cyan)}#rest,#sound{width:calc(50% - 4px);font-size:11px;border-radius:0;background:transparent}#sound{margin-left:4px}.caption{font-size:9px}details{margin-top:12px;border-top:1px solid var(--zc-border)}summary{font-size:11px}details label{display:block;font:10px ui-monospace,monospace;margin-top:9px}details p{font-size:11px;margin-top:12px}#status{border-top:1px solid var(--zc-border);padding-top:10px}footer{margin-top:20px}.following{border-color:var(--zc-orbit-cyan)}
@media(max-width:680px){main{padding:14px 16px}header{font-size:7px;padding-bottom:9px}.intro{padding:17px 0 15px;grid-template-columns:1fr;gap:6px}.intro .eyebrow{font-size:7px}.intro h1{font-size:42px}.intro p{grid-column:1;grid-row:3;font-size:10px;max-width:none;line-height:1.5}.layout{grid-template-columns:1fr;gap:7px}canvas{height:287px}.observation{left:15px;right:15px;bottom:15px;font-size:7px}.observation span:last-child{font-size:14px}.caption{font-size:8px;padding:10px 0}.path-legend{flex-direction:row;justify-content:space-between;gap:7px;margin-bottom:10px;font-size:8px}aside h2,aside>p:not(#status){display:none}#begin{margin:0 0 3px;min-height:47px}#rest,#sound{min-height:42px;margin-top:3px}details{margin-top:3px}summary{font-size:10px}#status{font-size:10px;margin-top:6px;padding-top:8px}footer{margin-top:14px;font-size:8px}}

/* The Lorenz field expands; curious controls scroll within the sidebar. */
html,body{height:100%;overflow:hidden}
main{height:100dvh;max-height:100dvh;display:flex;flex-direction:column;overflow:hidden}
header,.intro,footer{flex:none}
.layout{flex:1 1 0;min-height:0;align-items:stretch}
.layout>section{min-height:0;display:flex;flex-direction:column}
.stage{flex:1 1 0;min-height:0}
canvas{height:100%}
.caption{flex:none;padding-top:8px}
aside{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
details{max-height:180px;overflow:auto;overscroll-behavior:contain}
aside:focus-visible,details:focus-visible{outline:2px solid var(--zc-orbit-cyan);outline-offset:-2px}
footer{margin-top:5px;padding-top:6px}
@media(max-width:680px){main{padding:7px 10px 5px}.intro{padding:6px 0}.intro h1{font-size:clamp(31px,9vw,40px)}.intro p{line-height:1.25}.layout{display:flex;flex-direction:column;gap:4px}.layout>section{flex:1 1 0}.stage{min-height:0}.caption{padding:4px 0}aside{flex:0 1 185px;min-height:110px}.path-legend{margin:0 0 4px}.primary{min-height:40px}#rest,#sound{min-height:36px;margin-top:2px}details{max-height:95px}footer{margin-top:2px}}
