/* Timeline v9 — responsive temporal intelligence surface. */
.timeline-v9-hero { padding: clamp(48px, 7vw, 92px) 0 clamp(28px, 4vw, 52px); border-bottom: 1px solid var(--line); }
.timeline-v9-hero h1 { max-width: 18ch; margin: var(--s-2) 0 var(--s-3); }
.timeline-v9-hero .lead { max-width: 72ch; }
.timeline-v9-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; margin-top: var(--s-6); border: 1px solid var(--line); background: var(--line); }
.timeline-v9-stat { min-width: 0; padding: var(--s-4); background: var(--paper); }
.timeline-v9-stat b { display:block; font-family:var(--font-display); font-size:clamp(1.7rem,4vw,3.3rem); line-height:1; }
.timeline-v9-stat span { display:block; margin-top:7px; font-family:var(--font-mono); font-size:var(--fs-0); text-transform:uppercase; letter-spacing:.08em; color:var(--ink-3); }
.timeline-v9-controls { position:sticky; top:4rem; z-index:14; padding:12px 0; border-bottom:1px solid var(--line); background:color-mix(in srgb,var(--paper) 94%,transparent); backdrop-filter:blur(16px); }
.timeline-v9-control-row { display:flex; align-items:center; gap:var(--s-3); min-width:0; }
.timeline-v9-control-label { flex:none; min-width:72px; font-family:var(--font-mono); font-size:var(--fs-0); text-transform:uppercase; letter-spacing:.08em; color:var(--ink-3); }
.timeline-v9-scroll { display:flex; gap:8px; overflow-x:auto; scrollbar-width:none; padding:2px 1px; }
.timeline-v9-scroll::-webkit-scrollbar { display:none; }
.timeline-v9-filter { flex:none; min-height:38px; padding:7px 11px; border:1px solid var(--line-strong); border-radius:999px; background:var(--paper); color:var(--ink-2); font:500 var(--fs-0)/1 var(--font-mono); letter-spacing:.04em; cursor:pointer; }
.timeline-v9-filter[aria-pressed="true"] { border-color:var(--ink); background:var(--ink); color:var(--paper); }
.timeline-v9-toolbar { display:grid; gap:10px; }
.timeline-v9-density-wrap { padding:var(--s-6) 0 var(--s-5); }
.timeline-v9-density-head { display:flex; justify-content:space-between; gap:var(--s-4); align-items:end; margin-bottom:var(--s-3); }
.timeline-v9-density-head h2 { margin:0; }
.timeline-v9-density { position:relative; min-height:190px; overflow-x:auto; border:1px solid var(--line); background:linear-gradient(var(--paper-2),var(--paper)); scrollbar-width:thin; }
.timeline-v9-density-inner { position:relative; min-width:820px; height:188px; padding:24px 34px 28px; }
.timeline-v9-density-axis { position:absolute; left:34px; right:34px; top:94px; height:1px; background:var(--line-strong); }
.timeline-v9-month { position:absolute; top:16px; transform:translateX(-50%); font-family:var(--font-mono); font-size:11px; letter-spacing:.05em; color:var(--ink-3); white-space:nowrap; }
.timeline-v9-month::after { content:""; position:absolute; left:50%; top:25px; height:112px; border-left:1px solid var(--line); opacity:.7; }
.timeline-v9-dot { position:absolute; top:var(--dot-y,86px); left:var(--dot-x); width:13px; height:13px; margin:-6px 0 0 -6px; border:2px solid var(--paper); border-radius:50%; background:var(--dot-color,var(--meridian)); box-shadow:0 0 0 1px color-mix(in srgb,var(--dot-color,var(--meridian)) 45%,transparent); transition:transform .16s,opacity .16s; }
.timeline-v9-dot:hover,.timeline-v9-dot:focus-visible { transform:scale(1.55); outline:none; z-index:3; }
.timeline-v9-dot[hidden] { display:none; }
.timeline-v9-legend { display:flex; flex-wrap:wrap; gap:8px 14px; margin-top:var(--s-3); }
.timeline-v9-legend span { display:inline-flex; align-items:center; gap:6px; font-size:var(--fs-0); color:var(--ink-3); }
.timeline-v9-legend i { width:8px; height:8px; border-radius:50%; background:var(--legend-color); }
.timeline-v9-stream { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:clamp(28px,5vw,72px); align-items:start; padding:var(--s-6) 0 var(--s-8); }
.timeline-v9-events { position:relative; }
.timeline-v9-events::before { content:""; position:absolute; left:111px; top:7px; bottom:7px; width:1px; background:var(--line-strong); }
.timeline-v9-event { position:relative; display:grid; grid-template-columns:86px 26px minmax(0,1fr); gap:0 12px; padding:0 0 var(--s-5); }
.timeline-v9-event[hidden] { display:none; }
.timeline-v9-date { padding-top:2px; font-family:var(--font-mono); font-size:var(--fs-0); letter-spacing:.04em; color:var(--ink-3); }
.timeline-v9-node { position:relative; z-index:2; width:13px; height:13px; margin:3px auto 0; border-radius:50%; background:var(--event-color,var(--meridian)); box-shadow:0 0 0 5px var(--paper),0 0 0 6px var(--line); }
.timeline-v9-card { min-width:0; border:1px solid var(--line); border-left:3px solid var(--event-color,var(--meridian)); border-radius:var(--radius); background:var(--paper); padding:var(--s-4); }
.timeline-v9-card-head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; margin-bottom:var(--s-2); }
.timeline-v9-kind { font-family:var(--font-mono); font-size:var(--fs-0); letter-spacing:.08em; text-transform:uppercase; color:var(--event-color,var(--meridian)); }
.timeline-v9-card h3 { margin:0; font-size:clamp(1.08rem,2.1vw,1.45rem); line-height:1.35; overflow-wrap:anywhere; }
.timeline-v9-industry { display:inline-flex; margin-top:var(--s-3); font-size:var(--fs-1); }
.timeline-v9-aside { position:sticky; top:118px; display:grid; gap:var(--s-3); }
.timeline-v9-aside .panel { margin:0; }
.timeline-v9-aside h2,.timeline-v9-aside h3 { margin-top:0; }
.timeline-v9-empty { padding:var(--s-5); border:1px dashed var(--line-strong); text-align:center; color:var(--ink-3); }
.timeline-v9-kinematics { border-top:1px solid var(--line); padding:var(--s-7) 0; }
.timeline-v9-kinematics .embed-frame { margin-top:var(--s-5); }
@media (max-width:900px){
  .timeline-v9-stats{grid-template-columns:repeat(2,minmax(0,1fr));}
  .timeline-v9-stream{grid-template-columns:1fr;}
  .timeline-v9-aside{position:static;grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:640px){
  .timeline-v9-hero{padding-top:36px;}
  .timeline-v9-stats{margin-left:calc(-1 * var(--gutter));margin-right:calc(-1 * var(--gutter));border-left:0;border-right:0;}
  .timeline-v9-stat{padding:18px var(--gutter);}
  .timeline-v9-controls{position:relative;top:auto;padding:8px 0;}
  .timeline-v9-control-row{display:block;}
  .timeline-v9-control-label{display:block;margin-bottom:6px;}
  .timeline-v9-scroll{margin-right:calc(-1 * var(--gutter));padding-right:var(--gutter);}
  .timeline-v9-density-wrap{padding-top:var(--s-5);}
  .timeline-v9-density{margin-left:calc(-1 * var(--gutter));margin-right:calc(-1 * var(--gutter));border-left:0;border-right:0;}
  .timeline-v9-density-inner{min-width:720px;}
  .timeline-v9-events::before{left:7px;}
  .timeline-v9-event{grid-template-columns:15px minmax(0,1fr);gap:0 12px;padding-bottom:var(--s-4);}
  .timeline-v9-date{grid-column:2;margin-bottom:7px;padding:0;font-size:12px;}
  .timeline-v9-node{grid-column:1;grid-row:1 / span 2;margin:4px 0 0 1px;}
  .timeline-v9-card{grid-column:2;padding:16px;}
  .timeline-v9-card h3{font-size:1.08rem;}
  .timeline-v9-aside{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){.timeline-v9-dot{transition:none;}}
