:root {
  --audio-paper:#fffdf8;
  --audio-chunk:#edf1e9;
  --audio-queued:#dce8dc;
}

.audiostore-page { min-height:100vh; }

.audiostore-main {
  width:min(1020px,calc(100% - 48px));
  margin:0 auto;
  padding:clamp(64px,9vw,108px) 0 28px;
}

.audiostore-intro { max-width:760px; padding-bottom:clamp(42px,6vw,70px); }

.audiostore-intro-meta {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:14px;
}

.audiostore-breadcrumb {
  margin:0;
  color:var(--muted);
  font-size:12px;
  font-weight:700;
}

.audiostore-breadcrumb a { color:var(--accent); text-decoration-color:var(--accent); text-underline-offset:3px; }
.audiostore-breadcrumb span { padding:0 5px; color:var(--line); }

.github-banner {
  display:inline-flex;
  flex:none;
  align-items:center;
  gap:6px;
  padding:7px 10px;
  color:var(--paper);
  background:var(--ink);
  font-size:12px;
  font-weight:700;
  line-height:1;
  text-decoration:none;
  transition:background-color 180ms ease;
}

.github-banner:hover,.github-banner:focus-visible { color:var(--paper); background:var(--accent); }
.github-banner span { transition:transform 180ms ease; }
.github-banner:hover span,.github-banner:focus-visible span { transform:translateX(3px); }

.audiostore-intro h1 {
  margin:0 0 15px;
  font-size:clamp(40px,6vw,72px);
  letter-spacing:-.055em;
  line-height:.92;
}

.audiostore-lede {
  max-width:720px;
  margin:0;
  color:var(--body);
  font-size:clamp(17px,2.1vw,21px);
  line-height:1.45;
}

.stream-console {
  padding:clamp(25px,4vw,42px);
  border:1px solid var(--line);
  background:var(--audio-paper);
  box-shadow:0 15px 35px rgba(32,35,31,.08);
}

.console-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  padding-bottom:22px;
  border-bottom:1px solid var(--line);
}

.console-heading h2,.audiostore-notes h2,.stream-path h2 {
  margin:0 0 7px;
  font-size:21px;
  letter-spacing:-.025em;
}

.console-heading p { margin:0; color:var(--muted); font-size:14px; }
.console-actions { display:flex; flex-wrap:wrap; gap:9px; }

.console-actions button {
  min-height:38px;
  padding:8px 13px;
  border:1px solid var(--line);
  border-radius:5px;
  color:var(--body);
  background:transparent;
  font:inherit;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
}

.console-actions .stream-button { border-color:var(--accent); color:var(--paper); background:var(--accent); }
.console-actions button:not(:disabled):hover { border-color:var(--accent); color:var(--accent); background:#f5f8f2; }
.console-actions .stream-button:not(:disabled):hover { color:var(--paper); background:#315a3e; }
.console-actions button:disabled { opacity:.45; cursor:not-allowed; }

.storage-summary {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  padding:21px 0;
  border-bottom:1px solid var(--line);
}

.storage-summary div { display:grid; gap:2px; }
.storage-summary strong { color:var(--accent); font-size:20px; letter-spacing:-.03em; }
.storage-summary span { color:var(--muted); font-size:12px; }

.session-scrubber-label {
  display:flex;
  justify-content:space-between;
  gap:18px;
  margin-top:20px;
  color:var(--accent);
  font-size:12px;
  font-weight:700;
}

.session-scrubber-label output { color:var(--muted); font-variant-numeric:tabular-nums; }

.session-scrubber {
  width:100%;
  margin:8px 0 18px;
  accent-color:var(--accent);
  cursor:pointer;
}

.session-scrubber:disabled { cursor:not-allowed; }

.timeline-key {
  display:flex;
  flex-wrap:wrap;
  gap:8px 17px;
  margin-bottom:11px;
  color:var(--muted);
  font-size:12px;
}

.timeline-key span { display:inline-flex; align-items:center; gap:5px; }
.timeline-key i { width:9px; height:9px; background:var(--audio-chunk); }
.timeline-key .active-key { background:var(--accent); }
.timeline-key .prefetched-key { background:var(--warm); }

.stem-timeline { border-top:1px solid var(--line); }

.stem-row {
  display:grid;
  grid-template-columns:130px minmax(0,1fr);
  gap:14px;
  align-items:center;
  padding:11px 0;
  border-bottom:1px solid var(--line);
}

.stem-label { display:grid; gap:5px; }
.stem-label strong { color:var(--accent); font-size:13px; }
.stem-label label { display:flex; align-items:center; gap:7px; color:var(--muted); font-size:10px; }
.stem-label input { width:75px; margin:0; accent-color:var(--accent); }

.chunk-track {
  position:relative;
  min-width:0;
  height:26px;
}

.stored-chunks { display:flex; height:100%; }

.audio-chunk {
  box-sizing:border-box;
  flex:none;
  min-width:3px;
  height:100%;
  box-shadow:inset -3px 0 var(--audio-paper);
  background:var(--audio-chunk);
}

.audio-chunk:last-child { box-shadow:none; }

.scheduled-windows { position:absolute; inset:0; pointer-events:none; }
.scheduled-window { box-sizing:border-box; position:absolute; top:0; bottom:0; min-width:3px; border-right:3px solid var(--audio-paper); background:var(--warm); opacity:1; transition:background-color 120ms ease,opacity 560ms ease; }
.scheduled-window.is-active { background:var(--accent); }
.scheduled-window.is-complete { opacity:0; }

.memory-comparison {
  margin-top:24px;
  padding-top:22px;
  border-top:1px solid var(--line);
}

.memory-intro { display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin-bottom:15px; }
.memory-intro h3 { margin:0; color:var(--accent); font-size:14px; }
.memory-intro p { margin:0; color:var(--muted); font-size:12px; text-align:right; }

.memory-row {
  display:grid;
  grid-template-columns:minmax(180px,1fr) minmax(120px,1.7fr) 72px;
  gap:14px;
  align-items:center;
  padding:9px 0;
  border-top:1px solid var(--line);
}

.memory-row strong,.memory-row span { display:block; }
.memory-row strong { color:var(--body); font-size:13px; }
.memory-row span { margin-top:1px; color:var(--muted); font-size:11px; }
.memory-meter { height:10px; overflow:hidden; background:var(--audio-chunk); }
.memory-meter span { display:block; width:100%; height:100%; margin:0; background:var(--warm); }
.memory-meter .window-memory { background:var(--accent); }
.memory-row output { color:var(--accent); font-size:13px; font-weight:700; font-variant-numeric:tabular-nums; text-align:right; }
.memory-footnote { margin:12px 0 0; color:var(--muted); font-size:12px; }
.memory-footnote strong { color:var(--accent); }

.audiostore-notes {
  display:grid;
  grid-template-columns:160px minmax(0,1fr);
  gap:32px;
  padding:clamp(42px,6vw,70px) 0;
}

.audiostore-notes p {
  max-width:670px;
  margin:0;
  color:var(--body);
  font-size:16px;
}

.audiostore-notes p + p { margin-top:14px; }
.audiostore-notes code,.stream-path code { padding:1px 4px; color:var(--accent); background:rgba(65,101,74,.09); font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.86em; }

.stream-path {
  padding:clamp(42px,6vw,70px) 0;
  border-top:1px solid var(--line);
}

.stream-path h2 { margin-bottom:20px; }

.stream-path ol {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(20px,4vw,44px);
  padding:0;
  margin:0;
  list-style:none;
  counter-reset:stream-path;
}

.stream-path li { counter-increment:stream-path; padding-top:14px; border-top:1px solid var(--line); }
.stream-path li::before { content:"0" counter(stream-path); display:block; margin-bottom:6px; color:var(--warm); font-size:12px; font-weight:700; }
.stream-path strong { display:block; margin-bottom:6px; color:var(--accent); font-size:15px; }
.stream-path span { display:block; color:var(--body); font-size:14px; line-height:1.5; }

@media (max-width:700px) {
  .audiostore-main { width:min(100% - 32px,600px); padding-top:52px; }
  .audiostore-intro-meta { align-items:flex-start; flex-direction:column; gap:10px; }
  .stream-console { margin-right:-8px; margin-left:-8px; padding:24px 16px; }
  .console-heading { align-items:flex-start; flex-direction:column; }
  .storage-summary { gap:12px; }
  .storage-summary strong { font-size:18px; }
  .stem-row { grid-template-columns:1fr; gap:7px; }
  .stem-label { grid-template-columns:1fr auto; align-items:center; }
  .memory-intro { display:block; }
  .memory-intro p { margin-top:4px; text-align:left; }
  .memory-row { grid-template-columns:1fr 62px; gap:7px 12px; }
  .memory-meter { grid-column:1 / -1; grid-row:2; }
  .audiostore-notes { display:block; }
  .audiostore-notes h2 { margin-bottom:13px; }
  .stream-path ol { grid-template-columns:1fr; gap:18px; }
}
