/* /css/chapters/capstone.css: Chapter 15 "Your Spacetime Simulator" (package C15).
   Every rule is scoped under [data-chapter="capstone"]. Colors come from tokens only.
   Section comments are kept out of this file to stay inside the 4 KB gzip budget (tools/check.mjs rule 11). */

[data-chapter="capstone"] .cs-from {
  font-family: var(--font-sans);
  font-size: .72rem;
  font-weight: 650;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ink-muted);
  margin-right: .35em;
}
[data-chapter="capstone"] .cs-quote {
  margin: var(--s-6) 0 var(--s-5);
  padding: var(--s-2) 0 var(--s-2) var(--s-5);
  border-left: 3px solid var(--c-light);
  font-size: 1.15rem;
  font-style: italic;
}
[data-chapter="capstone"] .cs-quote p { margin: 0 0 var(--s-2); }
[data-chapter="capstone"] .cs-quote cite { font-family: var(--font-sans); font-size: .78rem; font-style: normal; color: var(--ink-muted); }
[data-chapter="capstone"] .cs-code {
  background: var(--surface-2);
  border: 1px solid var(--rule);
  border-radius: var(--r-s);
  padding: var(--s-3) var(--s-4);
  font-size: .8rem;
  line-height: 1.55;
}
[data-chapter="capstone"] .cs-steps { margin: var(--s-2) 0; padding-left: 1.4em; }
[data-chapter="capstone"] .cs-steps li { margin: .2em 0; }
[data-chapter="capstone"] main h3[id^="case-"] { margin-top: var(--s-7); }
[data-chapter="capstone"] :is(.cs-orient,.cs-swap,.cs-target){margin:var(--s-6) 0;max-width:40rem}
[data-chapter="capstone"] .cs-target{margin:var(--s-4) 0;border-left:4px solid var(--c-rocket)}
[data-chapter="capstone"] :is(.cs-orient,.cs-swap,.cs-swap-live,.cs-target)>*+*{margin-top:var(--s-3)}
[data-chapter="capstone"] .cs-orient ol{padding-left:1.5em}
[data-chapter="capstone"] .cs-orient li+li{margin-top:var(--s-2)}
[data-chapter="capstone"] .cs-st-next{display:block;margin-top:2px;font-size:.74rem;font-weight:400;color:var(--ink-muted)}
[data-chapter="capstone"] .cs-key p+p{margin-top:var(--s-1)}

[data-chapter="capstone"] .cs-wire { fill: none; stroke: var(--c-you); stroke-width: 1.25; opacity: .75; }
[data-chapter="capstone"] .cs-fnbox { fill: var(--tint-you); stroke: var(--c-you); stroke-width: 1.25; }
[data-chapter="capstone"] .cs-mono { font-family: var(--font-mono); font-size: 12.5px; fill: var(--c-you); }
[data-chapter="capstone"] .cs-strong { font-weight: 700; }

[data-chapter="capstone"] .cs-library { margin: var(--s-5) 0; }
[data-chapter="capstone"] .cs-lib-summary { font-family: var(--font-sans); font-size: .85rem; color: var(--ink-muted); margin-bottom: var(--s-2); }
[data-chapter="capstone"] .cs-lib-table { font-size: .82rem; }
[data-chapter="capstone"] .cs-lib-table :is(td,th) { white-space: normal; vertical-align: top; }
[data-chapter="capstone"] .cs-lib-table td[data-lib-status] { min-width: 9.5rem; }
[data-chapter="capstone"] .cs-lib-table th[scope="row"] code { white-space: nowrap; }
[data-chapter="capstone"] .cs-lib-table td:nth-child(3) { white-space: nowrap; }
[data-chapter="capstone"] .cs-st { margin: 2px var(--s-2) 2px 0; }
[data-chapter="capstone"] .cs-ref-toggle { min-height: 28px; padding: .2em .6em; font-size: .74rem; }
[data-chapter="capstone"] .cs-ref-toggle[aria-pressed="true"] { color: var(--c-you); background: var(--tint-you); }
@media (max-width:559px){
[data-chapter="capstone"] .cs-lib-table,[data-chapter="capstone"] .cs-lib-table :is(tbody,caption){display:block}
[data-chapter="capstone"] .cs-lib-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
[data-chapter="capstone"] .cs-lib-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"p c" "s s" "u u";gap:2px var(--s-2);padding:var(--s-2) 0;border-bottom:1px solid var(--rule)}
[data-chapter="capstone"] .cs-lib-table :is(td,th){padding:0;border:0;min-width:0}
[data-chapter="capstone"] .cs-lib-table th{grid-area:p}
[data-chapter="capstone"] .cs-lib-table td:nth-child(2){grid-area:s}
[data-chapter="capstone"] .cs-lib-table td:nth-child(3){grid-area:c}
[data-chapter="capstone"] .cs-lib-table td:nth-child(4){grid-area:u;color:var(--ink-muted)}
}

[data-chapter="capstone"] #lab-capstone-1 .lab-stage { min-height: 760px; }
[data-chapter="capstone"] figure.lab.cs-court .lab-stage { min-height: 640px; }
@media (min-width: 900px) {
  [data-chapter="capstone"] #lab-capstone-1 .lab-stage { min-height: 720px; }
  [data-chapter="capstone"] figure.lab.cs-court .lab-stage { min-height: 600px; }
}
[data-chapter="capstone"] .ex-stage .cs-sim { margin-top: var(--s-3); }
[data-chapter="capstone"] .ex-stage .cs-sim > .lab-toolbar-wrap { margin: 0; border: 1px solid var(--rule); border-radius: var(--r-m); overflow: hidden; }

[data-chapter="capstone"] .cs-sim { gap: var(--s-3); }
[data-chapter="capstone"] .cs-top,
[data-chapter="capstone"] .cs-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-2) var(--s-3);
}
[data-chapter="capstone"] .cs-top { padding-bottom: var(--s-2); border-bottom: 1px dashed var(--rule); }
[data-chapter="capstone"] .cs-top .btn { min-height: 36px; }
[data-chapter="capstone"] .cs-inline { display: inline-flex; align-items: center; gap: .4em; font-size: .8rem; color: var(--ink-muted); }
[data-chapter="capstone"] .cs-select,
[data-chapter="capstone"] .cs-text,
[data-chapter="capstone"] .cs-num {
  font: inherit;
  font-size: .8rem;
  min-height: 32px;
  padding: 3px 8px;
  border: 1px solid var(--rule);
  border-radius: var(--r-s);
  background: var(--surface);
  color: var(--ink);
  max-width: 100%;
}
[data-chapter="capstone"] .cs-num { width: 6.5em; font-variant-numeric: tabular-nums; }
[data-chapter="capstone"] .cs-text { width: 12em; }
[data-chapter="capstone"] .cs-text.cs-short { width: 6em; }
[data-chapter="capstone"] .cs-scene-title { margin: 0; font-family: var(--font-serif); font-style: italic; font-size: 1rem; color: var(--ink); }
[data-chapter="capstone"] .cs-msg { min-height: 0; }

[data-chapter="capstone"] .cs-main { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-4); }
@container (min-width: 760px) {
  [data-chapter="capstone"] .cs-main { grid-template-columns: minmax(0, 1.55fr) minmax(16rem, 1fr); align-items: start; }
}
[data-chapter="capstone"] .cs-col { min-width: 0; display: flex; flex-direction: column; gap: var(--s-2); }
[data-chapter="capstone"] .cs-side { min-width: 0; display: flex; flex-direction: column; gap: var(--s-3); }
[data-chapter="capstone"] .cs-diagram { min-width: 0; }

[data-chapter="capstone"] .stx-csnow { --k: var(--ink-muted); }
[data-chapter="capstone"] .stx-csnow-lab { --k: var(--c-lab); }
[data-chapter="capstone"] .stx-csnow-rkt { --k: var(--c-rocket); }
[data-chapter="capstone"] .stx-csnow-ink { --k: var(--ink); }
[data-chapter="capstone"] .stx-cslink { --k: var(--ink-muted); }
[data-chapter="capstone"] .stx-wl.stx-csnow { stroke-width: 1.5; stroke-dasharray: 4 4; }
[data-chapter="capstone"] .stx-wl.stx-csnow-lab,
[data-chapter="capstone"] .stx-wl.stx-csnow-rkt,
[data-chapter="capstone"] .stx-wl.stx-csnow-ink { stroke-width: 1.25; stroke-dasharray: 2 4; opacity: .9; }
[data-chapter="capstone"] .stx-wl.stx-cslink { stroke-width: 1.75; stroke-dasharray: 1 5; }
[data-chapter="capstone"] .stx-wl-label.stx-csnow,
[data-chapter="capstone"] .stx-wl-label.stx-csnow-lab,
[data-chapter="capstone"] .stx-wl-label.stx-csnow-rkt,
[data-chapter="capstone"] .stx-wl-label.stx-csnow-ink,
[data-chapter="capstone"] .stx-wl-label.stx-cslink { font-weight: 500; font-size: 11px; letter-spacing: .02em; }

[data-chapter="capstone"] .cs-frame { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-1) var(--s-3); }
[data-chapter="capstone"] .cs-frame-text { margin: 0; font-size: .85rem; font-weight: 600; flex: 1 1 12rem; }
[data-chapter="capstone"] .cs-lab-btn { min-height: 32px; padding: .25em .7em; }
[data-chapter="capstone"] .cs-time { display: flex; align-items: center; gap: var(--s-2); flex-wrap: wrap; }
[data-chapter="capstone"] .cs-time .ui-slider { flex: 1 1 14rem; min-width: 0; grid-template-columns: minmax(0, 1fr) auto; }
[data-chapter="capstone"] .cs-time .ui-slider .ui-label { grid-column: 1 / -1; }
[data-chapter="capstone"] .cs-time .ui-value { white-space: nowrap; }
[data-chapter="capstone"] .cs-play { min-width: 6.5em; }
[data-chapter="capstone"] .cs-play[aria-pressed="true"] { background: var(--surface-2); }
[data-chapter="capstone"] .cs-clock-head { margin-bottom: calc(-1 * var(--s-2)); }

[data-chapter="capstone"] .cs-clocks { display: grid; grid-template-columns: repeat(auto-fill, minmax(12.5rem, 1fr)); gap: var(--s-2); }
[data-chapter="capstone"] .cs-clock {
  display: flex;
  align-items: center;
  gap: var(--s-3);
  min-height: 56px;
  padding: var(--s-2) var(--s-3);
  text-align: left;
  font: inherit;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--rule);
  border-left: 4px solid var(--k-color, var(--ink));
  border-radius: var(--r-m);
  cursor: pointer;
  transition: background-color var(--t-ui) var(--ease), box-shadow var(--t-ui) var(--ease);
}
[data-chapter="capstone"] .cs-clock:hover { background: var(--surface-2); }
[data-chapter="capstone"] .cs-clock.cs-k-lab { --k-color: var(--c-lab); }
[data-chapter="capstone"] .cs-clock.cs-k-rkt { --k-color: var(--c-rocket); border-left-style: dashed; }
[data-chapter="capstone"] .cs-clock.cs-k-ink { --k-color: var(--ink); }
[data-chapter="capstone"] .cs-clock.is-frame { background: var(--surface-2); box-shadow: inset 0 0 0 2px var(--k-color); }
[data-chapter="capstone"] .cs-clock.is-eyes .cs-clock-name::after { content: " · eyes"; font-weight: 400; color: var(--ink-muted); }
[data-chapter="capstone"] .cs-clock-text { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
[data-chapter="capstone"] .cs-clock-name { font-size: .78rem; font-weight: 700; color: var(--k-color); overflow-wrap: anywhere; }
[data-chapter="capstone"] .cs-clock-line { font-variant-numeric: tabular-nums; }
[data-chapter="capstone"] .cs-clock-reading { font-size: 1.05rem; font-weight: 700; }
[data-chapter="capstone"] .cs-clock-si { font-size: .72rem; color: var(--ink-muted); }
[data-chapter="capstone"] .cs-clock-sub { font-size: .7rem; color: var(--ink-muted); font-variant-numeric: tabular-nums; }
[data-chapter="capstone"] .cs-face { flex: none; width: 36px; height: 36px; color: var(--k-color, var(--ink)); }
[data-chapter="capstone"] .cs-face-rim { fill: var(--surface); stroke: currentColor; stroke-width: 1.6; }
[data-chapter="capstone"] .cs-k-rkt .cs-face-rim { stroke-dasharray: 3 2; }
[data-chapter="capstone"] .cs-face-ticks { fill: none; stroke: currentColor; stroke-width: 1; opacity: .7; }
[data-chapter="capstone"] .cs-face-hand { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
[data-chapter="capstone"] .cs-face-pin { fill: currentColor; }

[data-chapter="capstone"] .cs-strip { display: flex; flex-direction: column; gap: var(--s-1); }
[data-chapter="capstone"] .cs-strip-head { justify-content: space-between; }
[data-chapter="capstone"] .cs-strip-svg { display: block; width: 100%; height: auto; overflow: hidden; font-family: var(--font-sans); }
[data-chapter="capstone"] .cs-strip-bg { fill: var(--surface-2); stroke: var(--rule); stroke-width: 1; }
[data-chapter="capstone"] .cs-strip-axis { fill: none; stroke: var(--rule); stroke-width: 2; }
[data-chapter="capstone"] .cs-strip-reck { fill: none; stroke-width: 2.5; stroke-linecap: round; }
[data-chapter="capstone"] .cs-strip-reck.cs-k-lab { stroke: var(--c-lab); }
[data-chapter="capstone"] .cs-strip-reck.cs-k-rkt { stroke: var(--c-rocket); }
[data-chapter="capstone"] .cs-strip-reck.cs-k-ink { stroke: var(--ink); }
[data-chapter="capstone"] .cs-strip-lead { fill: none; stroke: var(--ink-muted); stroke-width: 1; stroke-dasharray: 2 3; }
[data-chapter="capstone"] .cs-strip-seen { stroke-width: 2.25; }
[data-chapter="capstone"] .cs-strip-seen.cs-k-lab { stroke: var(--c-lab); }
[data-chapter="capstone"] .cs-strip-seen.cs-k-rkt { stroke: var(--c-rocket); stroke-dasharray: 3 2; }
[data-chapter="capstone"] .cs-strip-seen.cs-k-ink { stroke: var(--ink); }
[data-chapter="capstone"] .cs-strip-k { font-size: 11px; font-weight: 600; fill: var(--ink); font-variant-numeric: tabular-nums; paint-order: stroke; stroke: var(--surface-2); stroke-width: 3px; }
[data-chapter="capstone"] .cs-strip-name { font-size: 10.5px; paint-order: stroke; stroke: var(--surface-2); stroke-width: 3px; }
[data-chapter="capstone"] .cs-strip-name.cs-k-lab { fill: var(--c-lab); }
[data-chapter="capstone"] .cs-strip-name.cs-k-rkt { fill: var(--c-rocket); }
[data-chapter="capstone"] .cs-strip-name.cs-k-ink { fill: var(--ink); }
[data-chapter="capstone"] .cs-strip-eye { fill: var(--surface); stroke: var(--ink); stroke-width: 1.5; }
[data-chapter="capstone"] .cs-strip-pupil { fill: var(--ink); }
[data-chapter="capstone"] .cs-strip-note { font-size: .75rem; }
[data-chapter="capstone"] .cs-strip-legend>summary{cursor:pointer;font-size:.75rem;color:var(--ink-muted)}
[data-chapter="capstone"] .cs-strip-legend .stx-note{margin-top:var(--s-1);font-size:.75rem}
[data-chapter="capstone"] .cs-back{margin:0 0 var(--s-3);padding:var(--s-2) var(--s-4);font-family:var(--font-sans);font-size:.9rem;background:var(--tint-you);border:1px solid var(--rule);border-left:4px solid var(--c-you);border-radius:var(--r-m)}
[data-chapter="capstone"] .cs-back-link{display:inline-block;padding:.35em 0;font-weight:700}
[data-chapter="capstone"] .cs-back-note{display:block;margin-top:var(--s-1);font-weight:400;color:var(--ink)}
[data-chapter="capstone"] .cs-to-sim{margin-top:var(--s-2);font-family:var(--font-sans);font-size:.82rem;font-weight:600}
[data-chapter="capstone"] .cs-lattice{flex:1 1 100%;margin:0;padding:var(--s-1) var(--s-3);font-family:var(--font-sans);font-size:.8rem;line-height:1.45;color:var(--ink);background:var(--surface-2);border-left:3px solid var(--c-rocket);border-radius:var(--r-s)}
[data-chapter="capstone"] .cs-swap .ui-toggle-input:checked + .ui-toggle-option{background:var(--tint-you);color:var(--c-you);font-weight:650;box-shadow:inset 0 0 0 1.5px var(--c-you)}
[data-chapter="capstone"] .cs-swap .ex-actions .btn{white-space:normal;text-align:center;height:auto;max-width:100%}
@container (max-width:759px){
[data-chapter="capstone"] :is(.cs-col,.cs-side){display:contents}
[data-chapter="capstone"] .cs-time{order:1}
[data-chapter="capstone"] .cs-frame{order:2}
[data-chapter="capstone"] .cs-clock-head{order:3}
[data-chapter="capstone"] .cs-clocks{order:4}
[data-chapter="capstone"] :is(.cs-key,.cs-strip){order:5}
[data-chapter="capstone"] .cs-measure{order:6}
}

[data-chapter="capstone"] .cs-measure { display: flex; flex-direction: column; gap: var(--s-2); }
[data-chapter="capstone"] .cs-measure-head { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: .35em; }
[data-chapter="capstone"] .cs-measure-head .cs-select { max-width: 9.5rem; }
[data-chapter="capstone"] .cs-kv { display: grid; grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr)); gap: var(--s-1) var(--s-2); }
[data-chapter="capstone"] .cs-kv-item { padding: 4px 8px; }
[data-chapter="capstone"] .cs-verdict, [data-chapter="capstone"] .cs-ruler { margin: var(--s-1) 0 0; font-size: .8rem; line-height: 1.45; }

[data-chapter="capstone"] .cs-drawer { border: 1px solid var(--rule); border-radius: var(--r-m); background: var(--surface); }
[data-chapter="capstone"] .cs-drawer > summary {
  cursor: pointer;
  padding: var(--s-2) var(--s-3);
  min-height: 40px;
  display: flex;
  align-items: center;
  font-size: .82rem;
  font-weight: 650;
}
[data-chapter="capstone"] .cs-drawer[open] > summary { border-bottom: 1px solid var(--rule); }
[data-chapter="capstone"] .cs-drawer-body { padding: var(--s-3); display: flex; flex-direction: column; gap: var(--s-3); font-size: .82rem; }
[data-chapter="capstone"] .cs-fieldset { border: 1px solid var(--rule); border-radius: var(--r-s); padding: var(--s-2) var(--s-3) var(--s-3); margin: 0; display: flex; flex-direction: column; gap: var(--s-2); min-width: 0; }
[data-chapter="capstone"] .cs-fieldset legend { font-weight: 700; padding: 0 .3em; }
[data-chapter="capstone"] .cs-pts td, [data-chapter="capstone"] .cs-pts th { vertical-align: middle; }
[data-chapter="capstone"] .cs-pts tr.is-bad td { background: var(--tint-bad); }
[data-chapter="capstone"] .cs-pts .btn { min-height: 28px; padding: .2em .4em; }
[data-chapter="capstone"] .cs-lib-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--s-2); }
[data-chapter="capstone"] .cs-lib-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2); }
[data-chapter="capstone"] .cs-lib-toggle { min-height: 28px; padding: .2em .6em; font-size: .74rem; }
[data-chapter="capstone"] .cs-lib-src { font-size: .72rem; color: var(--ink-muted); }

[data-chapter="capstone"] .cs-planner {
  margin: var(--s-5) 0;
  padding: var(--s-4) var(--s-5);
  background: var(--surface);
  border: 1px solid var(--rule);
  border-left: 4px solid var(--c-you);
  border-radius: var(--r-m);
  font-family: var(--font-sans);
  font-size: .85rem;
}
[data-chapter="capstone"] .cs-planner-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-2); }
[data-chapter="capstone"] .cs-planner-title { margin: 0; font-weight: 700; }
[data-chapter="capstone"] .cs-planner .lab-controls { display: flex; flex-direction: column; gap: var(--s-2); margin: var(--s-3) 0; }
[data-chapter="capstone"] .cs-planner .lab-controls > * { flex: none; }

[data-chapter="capstone"] .cs-card-maker { margin: var(--s-4) 0 var(--s-6); font-family: var(--font-sans); }
[data-chapter="capstone"] .cs-card-maker .cs-text { width: min(20rem, 100%); }
[data-chapter="capstone"] .cs-card {
  margin-top: var(--s-4);
  max-width: 34rem;
  padding: var(--s-5);
  background: var(--surface);
  border: 1px solid var(--rule);
  outline: 3px double var(--c-inv);
  outline-offset: 5px;
  border-radius: var(--r-s);
  box-shadow: var(--shadow);
  font-family: var(--font-sans);
}
[data-chapter="capstone"] .cs-card p { margin: 0; }
[data-chapter="capstone"] .cs-card-top { display: flex; gap: var(--s-4); align-items: center; }
[data-chapter="capstone"] .cs-card-emblem { flex: none; width: 84px; height: 84px; }
[data-chapter="capstone"] .cs-card-kicker { font-size: .7rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-muted); }
[data-chapter="capstone"] .cs-card-title { font-family: var(--font-serif); font-size: 1.6rem; font-weight: 700; line-height: 1.15; }
[data-chapter="capstone"] .cs-card-name { font-family: var(--font-serif); font-style: italic; font-size: 1.1rem; overflow-wrap: anywhere; }
[data-chapter="capstone"] .cs-card-line { margin-top: var(--s-4) !important; font-size: .82rem; color: var(--ink-muted); }
[data-chapter="capstone"] .cs-card-fns { list-style: none; margin: var(--s-2) 0; padding: 0; columns: 2 12rem; column-gap: var(--s-4); font-size: .78rem; }
[data-chapter="capstone"] .cs-card-fn { break-inside: avoid; padding: 1px 0; }
[data-chapter="capstone"] .cs-card-fn.is-yours span { color: var(--c-ok); font-weight: 650; }
[data-chapter="capstone"] .cs-card-fn span { color: var(--ink-muted); }
[data-chapter="capstone"] .cs-card-stats { font-size: .78rem; font-variant-numeric: tabular-nums; }
[data-chapter="capstone"] .cs-card-motto { margin-top: var(--s-3) !important; font-family: var(--font-serif); font-style: italic; color: var(--c-inv); }
[data-chapter="capstone"] .cs-card-date { font-size: .72rem; color: var(--ink-muted); text-align: right; }

@media print {
  html.cs-print-card body[data-chapter="capstone"] *:not(:has(.cs-card)):not(.cs-card):not(.cs-card *) { display: none !important; }
  html.cs-print-card body[data-chapter="capstone"] .page,
  html.cs-print-card body[data-chapter="capstone"] main,
  html.cs-print-card body[data-chapter="capstone"] article,
  html.cs-print-card body[data-chapter="capstone"] section { margin: 0 !important; padding: 0 !important; border: 0 !important; }
  html.cs-print-card body[data-chapter="capstone"] .cs-card { margin: 1cm auto; box-shadow: none; }
}
[data-chapter="capstone"] button[data-load-scene] { white-space: normal; text-align: left; max-width: 100%; height: auto; }
[data-chapter="capstone"] .cs-strip-msg{font-size:12px;font-style:italic;fill:var(--ink-muted)}
