.editorial-section .intro { max-width: 850px; }
.editorial-chart { margin-top: 28px; padding: 24px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.editorial-controls { display: flex; flex-direction: column; gap: 8px; }
.editorial-options { display: flex; flex-wrap: wrap; gap: 4px; }
.editorial-options button { padding: 6px 11px; font-size: 12px; line-height: 1.4; border: 1px solid transparent; border-radius: 4px; color: var(--muted); background: var(--wash); cursor: pointer; }
.editorial-options button[aria-pressed="true"] { background: var(--ink); color: #fff; }
.cap-description { font-size: 14px; color: var(--muted); margin: 16px 0 10px; }
.cap-plot { overflow-x: auto; }
.cap-plot svg { display: block; width: 100%; }
.editorial-axis { font: 12px var(--font); fill: var(--muted); }
.editorial-grid { stroke: #e4e6e8; stroke-width: 1; }
.cap-hit { fill: transparent; }
.cap-point { cursor: pointer; }
.cap-dot { fill: #9daca9; stroke: #fff; stroke-width: 1.5; }
.cap-point.chosen .cap-dot { fill: var(--red); stroke: var(--ink); stroke-width: 2; }
.cap-point.dimmed { opacity: .17; }
.cap-point:focus { outline: none; }
.cap-point:focus-visible .cap-dot { stroke: var(--ink); stroke-width: 3; }
.cap-family-line { fill: none; stroke: var(--red); stroke-width: 2; stroke-dasharray: 4 5; }
.cap-trend-line { fill: none; stroke: var(--green); stroke-width: 2.5; stroke-dasharray: 8 6; pointer-events: none; }
.cap-trend-note { margin: 0 0 16px; font-size: 12px; color: var(--muted); }
.cap-trend-note.has-trend::before { content: ""; display: inline-block; width: 28px; border-top: 2px dashed var(--green); margin-right: 8px; vertical-align: middle; }
.cap-detail { border-top: 1px solid var(--line); padding: 20px 0; display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 20px; align-items: center; }
.cap-detail .eyebrow { font-size: 10px; margin: 0 0 6px; }
.cap-detail h4 { font-size: 23px; margin: 0; }
.cap-detail strong { font-size: 30px; line-height: 1.2; font-weight: 500; display: block; }
.cap-detail span:not(.eyebrow) { font-size: 12px; color: var(--muted); }
.cap-secondary strong { color: var(--muted); }
.cap-table { border-top: 1px solid var(--line); padding-top: 12px; font-size: 13px; }
.editorial-caption { font-size: 13px; color: var(--muted); margin-top: 16px; }
.featured-section { background: #f0f3f2; }
.feature-top { display:flex; justify-content:space-between; align-items:start; gap:24px; padding-bottom:20px; }
.feature-top .eyebrow { margin:0 0 8px; font-size:10px; }
.feature-top h3 { font-size:25px; margin:0; }
.feature-totals { display:flex; gap:24px; flex-shrink:0; }
.feature-totals strong { display:block; font-size:28px; font-weight:500; line-height:1.3; letter-spacing:-.035em; }
.feature-totals span { display:block; font-size:11px; color:var(--muted); }
.activity-scale { display:flex; justify-content:space-between; font:10px var(--mono,monospace); color:var(--muted); }
.activity-density { position:relative; height:26px; margin:10px 0 8px; background:#edf2f0; border-radius:3px; overflow:hidden; }
.activity-density i { position:absolute; height:100%; width:2px; background:var(--green); opacity:.45; }
.activity-jumps { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:6px; }
.activity-jumps button { border:0; border-top:2px solid var(--line); background:none; padding:8px 4px; text-align:left; font:11px/1.35 var(--font); color:var(--muted); cursor:pointer; }
.activity-jumps button span { display:block; font:11px var(--mono,monospace); color:var(--ink); margin-bottom:4px; }
.activity-jumps button:hover { border-color:var(--red); color:var(--red); }
.activity-filters { display:flex; flex-wrap:wrap; gap:4px; margin:18px 0 12px; }
.activity-filters button { border:1px solid transparent; background:none; border-radius:4px; padding:6px 9px; font:12px var(--font); color:var(--muted); cursor:pointer; }
.activity-filters button[aria-pressed="true"] { background:var(--ink); color:white; }
.activity-workspace { display:grid; grid-template-columns:minmax(220px,.85fr) minmax(0,1.5fr); border:1px solid var(--line); border-radius:6px; overflow:hidden; }
.activity-list { position:relative; height:510px; overflow-y:auto; scrollbar-width:thin; overscroll-behavior-y:contain; background:#f7f8f7; border-right:1px solid var(--line); }
.activity-row { display:flex; align-items:start; gap:12px; width:100%; padding:16px 12px; background:none; border:0; border-bottom:1px solid #e4e8e6; border-left:3px solid transparent; color:var(--ink); text-align:left; font-family:var(--font); cursor:pointer; }
.activity-row:hover { background:#edf1ef; }
.activity-row[aria-pressed="true"] { background:white; border-left-color:var(--red); }
.activity-row time { font:11px var(--mono,monospace); color:var(--muted); padding-top:2px; }
.activity-row-copy { min-width:0; flex:1; }
.activity-row strong { display:block; font-size:12px; font-weight:500; line-height:1.45; margin-top:4px; }
.activity-kind { display:inline-block; font:10px var(--mono,monospace); text-transform:uppercase; letter-spacing:.04em; color:var(--muted); }
.activity-kind.aws { color:#996020; }
.activity-kind.http { color:#bd1433; }
.activity-kind.script { color:var(--green); }
.activity-chevron { color:#a2aaa6; }
.activity-row[aria-pressed="true"] .activity-chevron { color:var(--red); }
.activity-inspector { height:510px; overflow-y:auto; overscroll-behavior-y:contain; padding:20px; min-width:0; box-sizing:border-box; scrollbar-width:thin; }
.activity-detail-heading { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.activity-detail-heading time { font:11px var(--mono,monospace); color:var(--muted); }
.activity-inspector h4 { font-size:21px; line-height:1.2; margin:16px 0 10px; letter-spacing:-.025em; }
.activity-inspector > p { font-size:13px; line-height:1.6; margin:0 0 18px; color:var(--muted); }
.activity-terminal { background:#1d2423; border-radius:5px; color:#ecf2ef; overflow:hidden; }
.terminal-label { display:flex; align-items:center; gap:8px; padding:10px 14px; background:#2b3431; font:10px var(--mono,monospace); color:#c4d0ca; }
.terminal-label span:last-child { margin-left:auto; color:#9facA6; }
.terminal-output-label { border-top:1px solid #43504b; }
.activity-terminal pre { margin:0; padding:14px; font:11px/1.65 var(--mono,monospace); white-space:pre-wrap; overflow-wrap:anywhere; }
.activity-terminal code { font:inherit; background:none; padding:0; color:inherit; }
.terminal-output { color:#b6dcc8; }
.activity-inspector blockquote { margin:26px 0 0; padding:0 0 0 20px; border-left:3px solid var(--red); font-size:24px; line-height:1.45; letter-spacing:-.025em; }
.activity-inspector cite { display:block; margin-top:18px; font:normal 11px var(--font); color:var(--muted); }
.feature-nav { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:12px; font-size:11px; color:var(--muted); }
.feature-nav button { color:var(--red); border:0; padding:8px 0; background:none; font-size:12px; cursor:pointer; }
.feature-nav button:disabled { color:#a9afb2; cursor:default; }
.feature-note { margin-bottom:0; font-size:12px; }
#featured-timeline button:focus-visible, .activity-terminal pre:focus-visible { outline:2px solid var(--green); outline-offset:-2px; }
@media(max-width:780px) {
  .editorial-chart { padding:16px; }
  .cap-plot svg { min-width:630px; }
  .cap-description::after { content:"Swipe the chart to see later releases →"; display:block; margin-top:8px; font-size:12px; }
  .cap-detail { grid-template-columns:1fr 1fr; gap:14px; }
  .cap-detail > div:first-child { grid-column:1/-1; }
  .cap-detail h4 { font-size:21px; }
  .cap-detail strong { font-size:26px; }
  .feature-top { flex-direction:column; gap:16px; }
  .feature-top h3 { font-size:23px; }
  .feature-totals { width:100%; gap:12px; justify-content:space-between; }
  .feature-totals strong { font-size:26px; }
  .activity-jumps { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .activity-scale { font-size:9px; }
  .activity-scale span:nth-child(2) { display:none; }
  .activity-workspace { grid-template-columns:1fr; }
  .activity-list { height:170px; border-right:0; border-bottom:1px solid var(--line); }
  .activity-row { padding:10px 12px; }
  .activity-inspector { height:auto; min-height:360px; max-height:550px; padding:16px; }
  .activity-inspector h4 { font-size:20px; }
  .activity-filters { gap:0; }
  .activity-filters button { font-size:11px; padding:6px; }
}

.cap-point-label { font: 11px var(--font); fill: var(--ink); pointer-events: none; paint-order: stroke; stroke: white; stroke-width: 4px; stroke-linejoin: round; }
.cap-point.dimmed { pointer-events: none; }

.cap-series { cursor:pointer; }
.cap-line-hit { fill:none; stroke:transparent; stroke-width:12; }
.cap-series .cap-family-line { stroke:var(--provider-color); stroke-dasharray:none; stroke-width:1.5; stroke-opacity:.75; pointer-events:none; }
.cap-series:focus { outline:none; }
.cap-point .cap-dot,.cap-point.chosen .cap-dot { fill:var(--provider-color); }
.cap-point.dimmed .cap-dot { fill:#92989a; }
.cap-muted { opacity:.12; }

.cap-series.cap-emphasized .cap-family-line { stroke-width:2.5; stroke-opacity:1; }
.cap-point.chosen:not(.cap-emphasized) .cap-dot { stroke:#fff; stroke-width:1.5; }

.cap-trend-line { stroke:#a2a6a9; stroke-width:2; }
.cap-trend-note.has-trend::before { border-color:#a2a6a9; }
.cap-end-label { cursor:pointer; }
.cap-provider-label { pointer-events:none; }
.cap-end-connector { fill:none; stroke:var(--provider-color); stroke-width:.8; stroke-opacity:.5; pointer-events:none; }
.cap-end-label text { font:11px var(--font); fill:var(--provider-color); }
.cap-end-label:focus { outline:none; }
.cap-end-label:focus-visible text, .cap-end-label.cap-emphasized text { fill:var(--ink); font-weight:600; }
.cap-end-label.cap-muted { opacity:1; }

/* SVG focus uses the mark itself, not the browser's bounding-box outline. */
.cap-series:focus-visible .cap-family-line { stroke-width:4; }
.cap-point:focus-visible .cap-dot { stroke:var(--ink); stroke-width:3; }
.cap-end-label:focus-visible text { text-decoration:underline; }
