:root{--ink: #e8ecf4;--dim: #8b95ab;--bg: #0d1017;--panel: #141924;--edge: #232a3a;--accent: #6ea8ff;--warm: #ffb26e;--mono: ui-monospace, SFMono-Regular, Menlo, monospace;--sans: ui-sans-serif, system-ui, -apple-system, sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}.app{display:grid;grid-template-columns:clamp(220px,24vw,420px) 1fr;height:100vh;overflow:hidden;transition:grid-template-columns .32s cubic-bezier(.4,0,.2,1)}.app.no-editor{grid-template-columns:0 1fr}.app.no-editor .editor{display:none}.editor{display:flex;flex-direction:column;background:var(--panel);border-right:1px solid var(--edge);min-width:0;overflow:hidden}.editor header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--edge);white-space:nowrap}.editor h1{margin:0;font-size:15px;letter-spacing:.16em;text-transform:uppercase;font-family:var(--mono);color:var(--accent);font-weight:500}.actions{display:flex;gap:8px}.toolbar{position:fixed;top:14px;right:20px;z-index:6;display:flex;gap:8px}#share,.toolbar button{background:var(--panel);border:1px solid var(--edge);color:var(--dim);border-radius:6px;padding:5px 11px;font-family:var(--mono);font-size:11px;cursor:pointer;white-space:nowrap}.toolbar button{background:color-mix(in srgb,var(--panel) 92%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}#share:hover,.toolbar button:hover{color:var(--ink);border-color:var(--accent)}.toolbar button[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.toolbar button[disabled]{opacity:.4;cursor:default;color:var(--dim);border-color:var(--edge)}#source{flex:1;resize:none;border:0;outline:0;background:transparent;color:var(--ink);font-family:var(--mono);font-size:12.5px;line-height:1.7;padding:18px;tab-size:2;min-height:0}#status{margin:0;padding:10px 18px;border-top:1px solid var(--edge);font-family:var(--mono);font-size:11px;color:var(--dim);min-height:34px}#status.bad{color:var(--warm)}.reader{grid-column:2;overflow-y:auto;position:relative;min-width:0;scrollbar-width:thin;scrollbar-color:var(--edge) transparent}.track{display:grid;grid-template-columns:minmax(0,1fr) clamp(220px,26vw,400px);position:relative}.stage{position:sticky;top:0;height:100vh;overflow:hidden;padding:clamp(10px,1.6vw,28px)}.stage svg{width:100%;height:100%}.rail{position:relative;padding-right:clamp(14px,2vw,44px)}.chapter{position:absolute;left:0;right:clamp(14px,2vw,44px);opacity:.25;transition:opacity .35s ease,transform .35s ease;transform:translateY(6px)}.chapter.active{opacity:1;transform:none}.eyebrow{margin:0 0 8px;display:flex;gap:10px;font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}.eyebrow .range{color:var(--dim)}.title{margin:0 0 12px;font-size:clamp(22px,2.4vw,30px);line-height:1.15;letter-spacing:-.01em}.lede{margin:0;font-size:15px;line-height:1.62;color:var(--dim);max-width:36ch;text-wrap:pretty}.aside{margin:14px 0 0;padding-left:12px;border-left:2px solid var(--edge);font-family:var(--mono);font-size:11.5px;line-height:1.6;color:var(--dim);opacity:.45;transition:opacity .3s ease}.aside.active{opacity:1;border-left-color:var(--warm);color:var(--warm)}.paper{display:none;max-width:1180px;margin:0 auto;padding:72px clamp(20px,4vw,72px) 140px}.app.static .paper{display:block}.app.static .track{display:none}.paper .eyebrow{margin:0 0 10px}.standfirst{margin:0 0 34px;font-size:15px;line-height:1.62;color:var(--dim);max-width:62ch;text-wrap:pretty}.panel{border:1px solid var(--edge);border-radius:10px;background:#0f131c;padding:18px;margin-bottom:56px;overflow-x:auto}.panel svg{display:block;width:100%;height:auto}.reading{display:grid;gap:44px;max-width:70ch}.reading .chapter{position:static;opacity:1;transform:none}.reading .lede{max-width:none}.reading .aside{opacity:1;border-left-color:var(--warm);color:var(--warm)}.footer{position:fixed;right:12px;bottom:8px;z-index:4;font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--dim);opacity:.45;pointer-events:none;-webkit-user-select:none;user-select:none}.ariel-diagram{font-family:var(--mono)}.head-band{fill:var(--bg)}.head-rule{stroke:var(--edge);stroke-width:1;opacity:0}.head-box{fill:var(--panel);stroke:var(--edge)}.lane.lit .head-box{stroke:var(--accent);fill:#182234}.head-label{fill:var(--ink);font-size:13px;text-anchor:middle;dominant-baseline:middle}.head-initial{fill:var(--dim);font-size:11px;text-anchor:middle;dominant-baseline:middle}.lifeline{stroke:var(--edge);stroke-width:1;stroke-dasharray:3 5}.lifeline.lit{stroke:var(--accent)}.bar{fill:#1d2942;stroke:var(--accent);stroke-width:1}.line{fill:none;stroke:var(--ink);stroke-width:1.6;stroke-dasharray:1}.line.dotted{stroke:var(--dim);stroke-width:1.4}.head{fill:var(--ink);stroke:none}.head.stick,.head.cross{fill:none;stroke:var(--ink);stroke-width:1.6}.label{fill:var(--ink);font-size:12px;text-anchor:middle}.number{fill:var(--dim);font-size:10px;text-anchor:middle}.note .label{text-anchor:middle;fill:var(--warm)}.note-fill{fill:#241d14}.outline{fill:none;stroke:var(--warm);stroke-width:1.2;stroke-dasharray:1}.frame-rect{fill:none;stroke:var(--edge);stroke-width:1}.frame-tint{opacity:.55;stroke:none}.frame-type{fill:var(--accent);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase}.frame-label{fill:var(--dim);font-size:11px}.divider{stroke:var(--edge);stroke-dasharray:4 4}.box-rect{opacity:.5;stroke:var(--edge)}.box-label{fill:var(--dim);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase}@media(max-width:900px){.app,.app.no-editor{grid-template-columns:0 1fr}.app.no-editor .editor,.editor{display:flex;position:fixed;top:0;left:0;bottom:0;z-index:8;width:min(360px,86vw);transform:translate(-100%);transition:transform .32s cubic-bezier(.4,0,.2,1)}.app:not(.no-editor) .editor{transform:none;box-shadow:0 0 60px #00000080}.track{grid-template-columns:1fr}.stage{height:46vh}.rail{padding:0 clamp(20px,6vw,40px)}.chapter{left:clamp(20px,6vw,40px);right:clamp(20px,6vw,40px)}.paper{padding-top:64px}}@media(prefers-reduced-motion:reduce){.app,.chapter,.aside,.editor{transition:none}}
