/* Core Seeker / Setlist Visual Explorer v1802. Scoped to the analysis module. */
.sv-explorer {
  --sv-accent: var(--glow, #a655b5);
  --sv-bright: #dfade9;
  --sv-paper: var(--paper, #0c0c0c);
  --sv-surface: var(--surface, #1c141c);
  --sv-line: var(--line, #3b2939);
  --sv-ink: var(--ink, #f2e8ef);
  --sv-muted: var(--muted, #aa93a4);
  --sv-serif: var(--font-heading, "Yu Mincho", "Hiragino Mincho ProN", serif);
  --sv-mono: var(--font-mono, "SFMono-Regular", Consolas, monospace);
  min-width: 0;
  margin: 36px 0 42px;
  color: var(--sv-ink);
  isolation: isolate;
}
.sv-explorer *, .sv-explorer *::before, .sv-explorer *::after { box-sizing: border-box; }
.sv-explorer [hidden] { display: none !important; }
.sv-explorer :is(section, article, div, label, h3, h4, p, ol, li) { min-width: 0; }
.sv-explorer :is(h3,h4,p) { overflow-wrap: anywhere; }
.sv-explorer a { color: var(--sv-bright); text-decoration-color: var(--sv-accent); text-underline-offset: 4px; }
.sv-explorer a:hover { color: #f1d5f5; }
.sv-explorer :is(button,input,select) { font: inherit; }
.sv-explorer button { cursor: pointer; touch-action: manipulation; }
.sv-explorer :is(button, input, select, summary, a):focus-visible { outline: 2px solid #e5b4ee; outline-offset: 4px; }
.sv-explorer button:disabled { cursor: default; opacity: .5; }
.sv-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  column-gap: 28px;
  padding: 30px 0 28px;
  border-block: 1px solid var(--sv-line);
  overflow: hidden;
  background: radial-gradient(ellipse at 85% 30%, rgba(166,85,181,.11), transparent 52%);
}
.sv-hero::before { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background-image:linear-gradient(rgba(166,85,181,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(166,85,181,.055) 1px,transparent 1px); background-size:34px 34px; mask-image:linear-gradient(90deg,transparent 18%,#000); }
.sv-hero > :not(.sv-hero-art) { grid-column: 1; }
.sv-eyebrow { margin:0 0 12px; color:var(--sv-bright); font:10px/1.6 var(--sv-mono); letter-spacing:.16em; }
.sv-title { margin:0; color:var(--sv-ink); font:700 clamp(26px,3vw,40px)/1.35 var(--sv-serif); letter-spacing:.045em; }
.sv-intro { max-width:650px; margin:14px 0 0; color:var(--ink-soft,#d4bfd0); font-size:13px; line-height:1.95; }
.sv-hero-art { grid-column:2; grid-row:1 / span 3; align-self:center; width:clamp(150px,19vw,245px); max-width:100%; color:var(--sv-accent); opacity:.85; }
.sv-hero-art svg { display:block; width:100%; height:auto; overflow:visible; }
.sv-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:22px 0 0; }
.sv-tabs button { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:44px; padding:11px 18px; border:1px solid var(--sv-line); border-radius:0; background:var(--sv-paper); color:var(--ink-soft,#d4bfd0); font-size:13px; transition:background-color 160ms,border-color 160ms,color 160ms; }
.sv-tabs button:hover { border-color:var(--sv-accent); background:#201324; }
.sv-tabs button[aria-pressed="true"] { border-color:var(--sv-accent); box-shadow:inset 0 -2px 0 var(--sv-bright); background:#28182e; color:var(--sv-ink); }
.sv-tabs button small { color:var(--sv-muted); font:10px/1.2 var(--sv-mono); }
.sv-toolbar { display:flex; flex-wrap:wrap; gap:14px 22px; align-items:end; padding:20px 0; }
.sv-toolbar label, .sv-compare-controls label { display:flex; flex-direction:column; gap:8px; color:var(--ink-soft,#d4bfd0); font-size:12px; line-height:1.5; }
.sv-toolbar label:first-child { flex:1 1 230px; }
.sv-toolbar :is(input,select), .sv-compare-controls select { width:100%; max-width:100%; min-width:0; min-height:43px; padding:10px 12px; border:1px solid var(--sv-line); border-radius:0; background:var(--sv-paper); color:var(--sv-ink); font-size:13px; }
.sv-toolbar select, .sv-compare-controls select { cursor:pointer; padding-right:26px; }
.sv-toolbar input::placeholder { color:var(--sv-muted); opacity:1; }
.sv-toolbar label:has(select) { flex:0 1 190px; }
.sv-toolbar .sv-year-control { flex-basis:120px; }
.sv-scope-note { margin:0 0 18px; color:var(--sv-muted); font-size:12px; line-height:1.85; }
.sv-scope-note strong { color:var(--ink-soft,#d4bfd0); font-weight:600; }
.sv-panel { border:1px solid var(--sv-line); background:var(--sv-paper); min-width:0; }
.sv-panel-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:9px 18px; padding:18px 20px; border-bottom:1px solid var(--sv-line); }
.sv-panel-heading h4 { margin:0; color:var(--sv-ink); font:700 18px/1.6 var(--sv-serif); letter-spacing:.035em; }
.sv-kicker { margin:0 0 5px; color:var(--sv-muted); font:10px/1.6 var(--sv-mono); letter-spacing:.08em; }
.sv-pill { display:inline-flex; align-items:center; min-height:25px; padding:3px 8px; border:1px solid var(--sv-line); color:var(--sv-bright); background:#211324; font:10px/1.6 var(--sv-mono); }
.sv-empty { margin:0; padding:28px 20px; color:var(--sv-muted); font-size:13px; line-height:1.9; }
.sv-caption { color:var(--sv-muted); font-size:11px; line-height:1.8; margin:12px 0 0; }
.sv-panel > .sv-caption { margin:0; padding:12px 20px; border-top:1px solid var(--sv-line); }
.sv-legend { display:flex; flex-wrap:wrap; align-items:center; gap:8px; color:var(--sv-muted); font-size:10px; line-height:1.6; }
.sv-legend span { display:inline-flex; align-items:center; gap:5px; }
.sv-legend i { display:inline-block; width:11px; height:11px; border:1px solid rgba(223,173,233,.3); background:rgba(166,85,181,.15); font-style:normal; }
.sv-legend i[data-level="1"] { background:#38203f; }
.sv-legend i[data-level="2"] { background:#57315f; }
.sv-legend i[data-level="3"] { background:#7f458d; }
.sv-legend i[data-level="4"] { background:#a565b6; }
.sv-map-scroll { max-width:100%; min-width:0; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:#744281 #141014; }
.sv-map-scroll:focus-visible { outline:2px solid #e5b4ee; outline-offset:-3px; }
.sv-map { width:100%; min-width:850px; table-layout:fixed; border-collapse:separate; border-spacing:4px; padding:8px; color:var(--sv-ink); font-size:12px; }
.sv-map caption { padding:0; }
.sv-map :is(th,td) { border:0; padding:0; text-align:center; font-variant-numeric:tabular-nums; }
.sv-map-year th { height:42px; color:var(--sv-muted); font:11px/1.4 var(--sv-mono); vertical-align:middle; }
.sv-map-year th small { display:block; font:9px/1.5 var(--sv-mono); color:var(--sv-muted); }
.sv-map .sv-song-header { position:sticky; left:0; z-index:2; width:200px; text-align:left; background:var(--sv-paper); box-shadow:5px 0 0 var(--sv-paper); }
.sv-song-pick { display:flex; align-items:center; gap:8px; width:100%; min-height:39px; padding:7px 11px; border:1px solid transparent; border-radius:0; background:transparent; color:var(--ink-soft,#d4bfd0); text-align:left; font-size:12px; font-weight:400; line-height:1.5; transition:background-color 160ms,border-color 160ms; }
.sv-song-pick:hover { border-color:var(--sv-line); background:var(--sv-surface); }
.sv-song-pick small { flex-shrink:0; width:20px; color:var(--sv-muted); font:9px/1 var(--sv-mono); }
.sv-song-pick span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sv-map tr.is-selected .sv-song-pick, .sv-song-pick.is-selected, .sv-song-pick[aria-pressed="true"] { border-left:2px solid var(--sv-bright); background:#28182e; color:#f8eafa; }
.sv-cell button { display:flex; align-items:center; justify-content:center; flex-direction:column; gap:2px; width:100%; min-height:39px; padding:5px 2px; border:1px solid rgba(166,85,181,.18); border-radius:0; background:#171219; color:#d3bfd8; font:12px/1.1 var(--sv-mono); transition:filter 140ms,border-color 140ms; }
.sv-cell button small { font:9px/1 var(--sv-mono); opacity:.85; }
.sv-cell[data-level="0"] button { color:#ac96b1; background:#171219; }
.sv-cell[data-level="1"] button { background:#38203f; color:#eadbed; }
.sv-cell[data-level="2"] button { background:#57315f; color:#f3e8f6; }
.sv-cell[data-level="3"] button { background:#7f458d; color:#fff5ff; }
.sv-cell[data-level="4"] button { background:#a565b6; color:#110d14; font-weight:700; }
.sv-cell button:hover { border-color:#e4b7ef; filter:brightness(1.15); }
.sv-cell.is-selected button, .sv-cell button[aria-pressed="true"] { border-color:#fff5ff; box-shadow:inset 0 0 0 1px #fff5ff; }
.sv-map tr.is-selected .sv-cell button { border-bottom-color:rgba(244,219,250,.7); }
.sv-song-focus { display:grid; grid-template-columns:minmax(180px,.75fr) minmax(0,1.8fr); gap:24px; padding:22px 20px; border-top:1px solid var(--sv-line); background:linear-gradient(135deg,rgba(166,85,181,.08),transparent 65%); }
.sv-song-summary h4 { margin:0 0 12px; color:var(--sv-ink); font:700 20px/1.6 var(--sv-serif); }
.sv-song-summary p { margin:8px 0; color:var(--ink-soft,#d4bfd0); font-size:12px; line-height:1.85; }
.sv-song-summary strong { color:var(--sv-bright); font-family:var(--sv-mono); font-weight:600; }
.sv-song-chart { align-self:center; overflow:hidden; }
.sv-song-chart svg { display:block; width:100%; height:auto; max-width:100%; overflow:visible; }
.sv-song-chart svg text { font-family:var(--sv-mono); fill:var(--sv-muted); font-size:10px; }
.sv-song-chart .sv-chart-grid { stroke:var(--sv-line); stroke-width:1; stroke-dasharray:3 5; }
.sv-song-chart .sv-chart-area { fill:rgba(166,85,181,.13); }
.sv-song-chart .sv-chart-line { fill:none; stroke:#d79ae5; stroke-width:2.5; stroke-linejoin:round; stroke-linecap:round; }
.sv-song-chart .sv-chart-dot { fill:#e4b7ef; stroke:var(--sv-paper); stroke-width:2; }
.sv-song-chart .sv-chart-value { fill:var(--sv-ink); font-size:11px; }
.sv-evidence-list { grid-column:1 / -1; padding:0; margin:0; list-style:none; border-top:1px solid var(--sv-line); }
.sv-evidence-list > li, .sv-evidence-list > article { padding:12px 0; border-bottom:1px solid var(--sv-line); font-size:12px; line-height:1.85; overflow-wrap:anywhere; }
.sv-evidence-list details { padding:12px 0; }
.sv-evidence-list summary { cursor:pointer; color:var(--ink-soft,#d4bfd0); font-size:12px; line-height:1.8; }
.sv-evidence-list small { display:block; color:var(--sv-muted); }
.sv-evidence-list ul { margin:10px 0 0; padding-left:18px; }
.sv-evidence-list ul li { margin:7px 0; font-size:12px; line-height:1.8; }
.sv-compare-controls { display:grid; grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr); gap:14px; align-items:end; padding:20px 0; }
.sv-compare-controls label { flex:1; }
.sv-explorer .sv-swap { display:grid; place-items:center; min-height:43px; height:43px; width:42px; padding:0; border:1px solid var(--sv-line); border-radius:0; background:var(--sv-paper); color:var(--sv-bright); font-size:22px; transition:border-color 160ms,background-color 160ms; }
.sv-explorer .sv-swap:hover { border-color:var(--sv-accent); background:#28182e; }
.sv-compare-summary { display:grid; grid-template-columns:140px minmax(0,1fr); align-items:center; gap:28px; padding:24px 24px 26px; border-bottom:1px solid var(--sv-line); background:radial-gradient(ellipse at 10% 40%,rgba(166,85,181,.1),transparent 58%); }
.sv-ring { position:relative; width:140px; max-width:100%; aspect-ratio:1; display:grid; place-items:center; color:var(--sv-bright); }
.sv-ring > svg { display:block; width:100%; height:auto; }
.sv-ring .sv-ring-track { stroke:var(--sv-line); fill:none; }
.sv-ring .sv-ring-value { stroke:var(--sv-accent); fill:none; stroke-linecap:butt; }
.sv-ring text { fill:var(--sv-ink); font:24px var(--sv-mono); }
.sv-ring text.sv-ring-label { fill:var(--sv-muted); font-size:9px; }
.sv-ring > strong { font:30px/1 var(--sv-mono); color:var(--sv-ink); }
.sv-ring > small { font-size:10px; color:var(--sv-muted); }
.sv-compare-numbers { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.sv-stat { padding-right:12px; border-right:1px solid var(--sv-line); }
.sv-stat:last-child { padding-right:0; border-right:0; }
.sv-stat > strong { display:block; color:var(--sv-ink); font:600 clamp(23px,3vw,34px)/1.2 var(--sv-mono); letter-spacing:-.04em; }
.sv-stat > span, .sv-stat > small { display:block; margin-top:7px; color:var(--sv-muted); font-size:11px; line-height:1.6; }
.sv-stat > strong small { margin-left:3px; color:var(--sv-muted); font-size:11px; font-weight:400; }
.sv-compare-stage { position:relative; padding:0 20px 20px; isolation:isolate; }
.sv-compare-lines { position:absolute; inset:0; z-index:0; width:100%; height:100%; pointer-events:none; overflow:hidden; }
.sv-compare-lines path, .sv-compare-lines line { fill:none; stroke:#a862bd; stroke-width:1.2; stroke-opacity:.38; }
.sv-compare-lines .is-highlighted { stroke:#e1abea; stroke-width:2; stroke-opacity:.9; }
.sv-compare-columns { position:relative; z-index:1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:clamp(36px,8vw,100px); }
.sv-show-column { min-width:0; }
.sv-show-header { display:flex; flex-direction:column; align-items:flex-start; gap:6px; min-height:170px; padding:20px 0 16px; }
.sv-show-header h4 { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; margin:0; color:var(--sv-ink); font:700 17px/1.55 var(--sv-serif); }
.sv-show-header > p { margin:0; color:var(--sv-muted); font-size:11px; line-height:1.65; }
.sv-show-header time, .sv-show-header .sv-kicker { color:var(--sv-bright); font:11px/1.5 var(--sv-mono); }
.sv-show-header .sv-chips { margin-top:auto; }
.sv-track-list { margin:0; padding:0; list-style:none; }
.sv-track { display:flex; align-items:center; gap:10px; height:42px; padding:0 10px; border:1px solid var(--sv-line); border-bottom:0; background:#141015; color:var(--ink-soft,#d4bfd0); font-size:12px; line-height:1.5; }
.sv-track:last-child { border-bottom:1px solid var(--sv-line); }
.sv-track.is-shared { border-left:3px solid #ad68bd; background:#25182a; color:#f0def5; }
.sv-track.is-exclusive { border-left:3px solid #8d7a88; background:#161316; }
.sv-track.is-excluded { color:var(--sv-muted); background:#100e11; border-left-style:dashed; }
.sv-track-no { flex:0 0 22px; color:var(--sv-muted); font:10px/1 var(--sv-mono); font-variant-numeric:tabular-nums; }
.sv-track-name { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sv-track small { flex-shrink:0; color:var(--sv-muted); font-size:9px; }
.sv-source-links { display:flex; flex-wrap:wrap; gap:4px 12px; font-size:11px; line-height:1.8; overflow-wrap:anywhere; }
.sv-source-links a { overflow-wrap:anywhere; }
.sv-notice { margin:16px 0; padding:13px 15px; border-left:2px solid var(--sv-accent); background:#1b121e; color:var(--ink-soft,#d4bfd0); font-size:12px; line-height:1.9; overflow-wrap:anywhere; }
.sv-notice p { margin:0 0 7px; }
.sv-notice p:last-child { margin-bottom:0; }
.sv-detail { margin-top:18px; border-top:1px solid var(--sv-line); font-size:12px; line-height:1.85; }
.sv-detail > summary { padding:14px 0; color:var(--ink-soft,#d4bfd0); cursor:pointer; }
.sv-detail > :not(summary) { color:var(--sv-muted); }
.sv-chips { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.sv-chips > span { display:inline-flex; align-items:center; min-height:22px; padding:2px 7px; border:1px solid var(--sv-line); color:var(--sv-muted); font-size:10px; line-height:1.5; }
.sv-chips > .is-shared { color:#e4b7ef; border-color:#754080; }
.sv-chips > .is-exclusive { color:#c9b9c5; }
@media (max-width: 900px) {
  .sv-hero { column-gap:18px; }
  .sv-hero-art { width:150px; }
  .sv-map { min-width:790px; }
  .sv-map .sv-song-header { width:170px; }
  .sv-song-focus { grid-template-columns:minmax(0,1fr); gap:18px; }
  .sv-evidence-list { grid-column:auto; }
  .sv-compare-summary { gap:22px; padding:22px 18px; }
  .sv-compare-columns { column-gap:40px; }
  .sv-show-header h4 { font-size:16px; }
}
@media (max-width: 700px) {
  .sv-explorer { margin:28px 0 32px; }
  .sv-hero { grid-template-columns:minmax(0,1fr); padding:24px 0; }
  .sv-hero-art { position:absolute; right:-30px; top:8px; width:175px; opacity:.17; z-index:-1; }
  .sv-eyebrow { margin-bottom:10px; font-size:9px; letter-spacing:.1em; }
  .sv-title { font-size:27px; line-height:1.45; }
  .sv-intro { font-size:12px; line-height:1.9; }
  .sv-tabs { gap:7px; margin-top:17px; }
  .sv-tabs button { flex:1 1 130px; min-height:45px; padding:11px 9px; font-size:12px; gap:7px; }
  .sv-tabs button small { font-size:9px; }
  .sv-toolbar { gap:13px; padding:17px 0; }
  .sv-toolbar label:first-child { flex-basis:100%; }
  .sv-toolbar label:has(select) { flex:1 1 110px; }
  .sv-toolbar :is(input,select), .sv-compare-controls select { font-size:16px; }
  .sv-scope-note { font-size:11px; }
  .sv-panel-heading { padding:15px 12px; gap:10px; }
  .sv-panel-heading h4 { font-size:17px; }
  .sv-legend { font-size:9px; gap:5px; }
  .sv-legend i { width:9px; height:9px; }
  .sv-map { min-width:682px; border-spacing:3px; padding:5px; }
  .sv-map .sv-song-header { width:112px; }
  .sv-map-year th { font-size:10px; }
  .sv-map-year th small { font-size:8px; }
  .sv-song-pick { padding:7px 5px; gap:4px; min-height:44px; font-size:10px; }
  .sv-song-pick small { width:13px; font-size:8px; }
  .sv-cell button { min-height:44px; font-size:11px; }
  .sv-cell button small { font-size:8px; }
  .sv-song-focus { padding:18px 12px; gap:14px; }
  .sv-song-summary h4 { font-size:19px; }
  .sv-song-summary p { font-size:11px; }
  .sv-panel > .sv-caption { padding:11px 12px; font-size:10px; }
  .sv-compare-controls { grid-template-columns:minmax(0,1fr); gap:12px; padding:17px 0; }
  .sv-explorer .sv-swap { width:100%; min-height:36px; height:36px; font-size:19px; }
  .sv-compare-summary { grid-template-columns:100px minmax(0,1fr); gap:15px; padding:20px 12px; }
  .sv-ring { width:100px; }
  .sv-compare-numbers { gap:8px; }
  .sv-stat { padding-right:7px; }
  .sv-stat > strong { font-size:23px; }
  .sv-stat > span, .sv-stat > small { font-size:9px; margin-top:5px; }
  .sv-stat > strong small { display:block; margin:2px 0 0; font-size:9px; }
  .sv-compare-stage { padding:0 12px 12px; }
  .sv-compare-lines { display:none; }
  .sv-compare-columns { grid-template-columns:minmax(0,1fr); gap:24px; }
  .sv-show-header { min-height:0; padding:18px 0 14px; }
  .sv-show-header h4 { display:block; overflow:visible; font-size:17px; -webkit-line-clamp:unset; }
  .sv-show-header .sv-chips { margin-top:3px; }
  .sv-track { height:auto; min-height:42px; align-items:baseline; padding:10px 9px; font-size:12px; }
  .sv-track-name { overflow:visible; text-overflow:clip; white-space:normal; overflow-wrap:anywhere; }
  .sv-source-links { font-size:10px; }
  .sv-notice { padding:12px; font-size:11px; }
  .sv-detail { font-size:11px; }
}
@media (max-width: 380px) {
  .sv-title { font-size:24px; }
  .sv-compare-summary { grid-template-columns:minmax(0,1fr); gap:18px; }
  .sv-ring { justify-self:center; width:118px; }
  .sv-compare-numbers { gap:12px; }
  .sv-stat > strong { font-size:26px; }
  .sv-stat > span { font-size:10px; }
}
@media (prefers-reduced-motion: reduce) {
  .sv-explorer *, .sv-explorer *::before, .sv-explorer *::after { transition:none !important; animation:none !important; scroll-behavior:auto !important; }
}
@media (forced-colors: active) {
  .sv-explorer :is(button,input,select,.sv-panel,.sv-track,.sv-pill) { border-color:ButtonText; }
  .sv-explorer .sv-cell button, .sv-explorer .sv-song-pick, .sv-explorer .sv-tabs button { forced-color-adjust:auto; }
  .sv-explorer [aria-pressed="true"], .sv-explorer .is-selected > button { outline:2px solid Highlight; outline-offset:-3px; }
  .sv-explorer .sv-chart-line, .sv-explorer .sv-chart-dot { stroke:CanvasText; }
}
/* Direct exploration: selected paths, keyboard-pickable tracks and compact legends. */
.sv-song-focus { margin-bottom:18px; border:1px solid var(--sv-line); }
.sv-compare-columns { column-gap:clamp(40px,10vw,130px); }
.sv-track:has(> .sv-track-trigger) { display:block; padding:0; }
.sv-explorer .sv-track-trigger { display:flex; align-items:center; gap:10px; width:100%; height:100%; min-height:40px; margin:0; padding:0 10px; border:0; border-radius:0; background:transparent; color:inherit; text-align:left; font:inherit; transition:background-color 140ms; }
.sv-explorer .sv-track-trigger:hover { background:rgba(223,173,233,.075); }
.sv-explorer .sv-track-trigger:focus-visible { position:relative; z-index:2; outline-offset:-2px; }
.sv-track.is-focused { position:relative; z-index:2; border-color:#e4b7ef; background:#3b2343; color:#fff5ff; box-shadow:inset 2px 0 0 #edc5f6; }
.sv-track-trigger[aria-pressed="true"] { box-shadow:inset 0 0 0 1px #edc5f6; }
.sv-compare-lines .sv-connection { fill:none; stroke:#a862bd; stroke-width:1.2; stroke-opacity:.38; transition:stroke-opacity 140ms,stroke-width 140ms; }
.sv-compare-lines path.is-active { stroke:#e5b4ee; stroke-width:2.6; stroke-opacity:1; }
.sv-compare-lines:has(path.is-active) path:not(.is-active) { stroke-opacity:.12; }
.sv-selection-status { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:9px 16px; min-height:48px; padding:10px 20px; border-bottom:1px solid var(--sv-line); color:var(--ink-soft,#d4bfd0); font-size:12px; line-height:1.7; }
.sv-selection-status strong { color:var(--sv-bright); font-weight:600; }
.sv-selection-status small { color:var(--sv-muted); font-size:10px; }
.sv-explorer .sv-selection-status button { min-height:32px; padding:5px 10px; border:1px solid var(--sv-line); border-radius:0; background:transparent; color:var(--sv-bright); font-size:11px; }
.sv-explorer .sv-selection-status button:hover { background:#28182e; border-color:var(--sv-accent); }
.sv-cell-value { display:block; color:inherit; font:inherit; font-weight:600; font-variant-numeric:tabular-nums; }
.sv-map-count { color:var(--sv-muted); font:10px/1.7 var(--sv-mono); }
.sv-song-chart text.sv-spark-year { fill:var(--sv-muted); font:10px var(--sv-mono); }
.sv-hero-art .sv-overview-bar { fill:#9250a1; stroke:none; }
.sv-hero-art .sv-overview-bar.is-current { fill:#dfade9; }
.sv-hero-art .sv-overview-label { fill:#b89fb9; font:9px var(--sv-mono); letter-spacing:0; }
.sv-hero-art .sv-overview-value { fill:#f2e8ef; font:10px var(--sv-mono); letter-spacing:0; }
@media (max-width:700px) {
  .sv-compare-columns { column-gap:0; }
  .sv-explorer .sv-track-trigger { height:auto; min-height:42px; align-items:baseline; padding:10px 9px; }
  .sv-selection-status { padding:10px 12px; font-size:11px; }
  .sv-song-chart text.sv-spark-year { font-size:9px; }
}
@media (prefers-reduced-motion:reduce) {
  .sv-explorer .sv-track-trigger, .sv-explorer .sv-connection { transition:none; }
}
/* v1803: horizontal exploration stays inside the map. */
.sv-explorer { width:100%; max-width:100%; }
.sv-map-scroll { width:100%; -webkit-overflow-scrolling:touch; }
.sv-tabs button { min-width:0; max-width:100%; }
.sv-explorer .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); clip-path:inset(50%); white-space:nowrap; border:0; }
.sv-map-hint { display:none; }
@media (max-width:700px) {
  .sv-map-hint { display:block; margin:0; padding:10px 12px 0; color:var(--sv-muted); font-size:11px; line-height:1.7; }
  .sv-song-chart svg text, .sv-song-chart text.sv-spark-year, .sv-song-chart .sv-chart-value { font-size:20px; }
}
/* v1902: keep the year picker clear on narrow screens. */
@media (max-width:700px) {
  .sv-toolbar .sv-year-control { flex:1 1 100%; }
}

/* v1905 optional help: native disclosures stay compact when closed. */
.sv-explorer .sv-help { display:block; min-width:0; max-width:100%; margin:10px 0; padding:0; border:1px solid var(--sv-line); background:var(--sv-surface); font-size:12px; line-height:1.8; }
.sv-explorer .sv-help > summary { min-height:44px; box-sizing:border-box; padding:10px 12px; cursor:pointer; font-size:12px; font-weight:600; line-height:1.8; overflow-wrap:anywhere; }
.sv-explorer .sv-help > summary::marker { color:var(--sv-accent); }
.sv-explorer .sv-help > summary:focus-visible { outline:2px solid var(--sv-accent); outline-offset:3px; }
.sv-explorer .sv-help-body { min-width:0; padding:0 12px 12px; overflow-wrap:anywhere; }
.sv-explorer .sv-help-body > p { margin:8px 0; font-size:12px; line-height:1.9; }
.sv-explorer .sv-help-body > :first-child { margin-top:0; }
.sv-explorer .sv-help-body > :last-child { margin-bottom:0; }

/* v1910: a small, tactile selection stage; full analysis opens on demand. */
.sv-play-v1910 { margin:0; --sv-bright:#e6b5ee; }
.sv-play-v1910 .sv-play-head { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px 14px; align-items:center; padding:12px 0 16px; }
.sv-play-v1910 .sv-play-head .sv-eyebrow { margin:0 0 6px; font-size:9px; }
.sv-play-v1910 .sv-play-head .sv-title { font-size:clamp(23px,3vw,34px); line-height:1.4; letter-spacing:.035em; }
.sv-play-meta { grid-column:1/-1; margin:0; color:var(--sv-muted); font:11px/1.6 var(--sv-mono); }
.sv-play-v1910 .sv-scope-trigger { align-self:start; min-height:44px; padding:8px 10px; border:1px solid var(--sv-line); background:transparent; color:var(--sv-muted); font-size:11px; white-space:nowrap; }
.sv-play-v1910 .sv-scope-trigger span { margin-left:5px; color:var(--sv-bright); }
.sv-play-v1910 .sv-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:0 0 16px; }
.sv-play-v1910 .sv-tabs button { min-height:48px; padding:9px 8px; gap:8px; border-radius:8px; font-size:13px; }
.sv-play-v1910 .sv-tabs button small { font-size:8px; letter-spacing:.1em; }
.sv-play-v1910 .sv-tabs button[aria-pressed="true"] { background:linear-gradient(120deg,#34203c,#211425); box-shadow:inset 0 -2px 0 var(--sv-bright),0 3px 20px #15081880; }
.sv-browse-controls { display:flex; align-items:start; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.sv-quick-search { display:flex; flex:1 1 210px; align-items:center; gap:8px; min-width:0; min-height:44px; border:1px solid var(--sv-line); border-radius:8px; background:#0e0a10; padding:0 12px; color:var(--sv-bright); }
.sv-quick-search input { width:100%; min-width:0; height:44px; padding:0; border:0; outline:0; background:transparent; color:var(--sv-ink); font-size:14px; }
.sv-quick-search:focus-within { outline:2px solid var(--sv-bright); outline-offset:2px; }
.sv-quick-search input::placeholder { color:var(--sv-muted); }
.sv-pick-settings { flex:0 1 auto; min-width:0; max-width:100%; border:1px solid var(--sv-line); border-radius:8px; color:var(--sv-muted); }
.sv-pick-settings > summary { min-height:44px; padding:10px 12px; cursor:pointer; font-size:11px; line-height:24px; white-space:nowrap; }
.sv-play-v1910 .sv-pick-settings .sv-toolbar { padding:10px; max-width:100%; gap:8px; border-top:1px solid var(--sv-line); }
.sv-play-v1910 .sv-toolbar label { flex:1 1 130px; min-width:0; max-width:100%; }
.sv-picker-line { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px; margin:12px 0; color:var(--sv-muted); font-size:12px; }
.sv-picker-line strong { color:var(--ink-soft,#d4bfd0); font-weight:500; }
.sv-picker-line small { font:10px/1.5 var(--sv-mono); }
.sv-song-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; min-width:0; }
.sv-play-v1910 .sv-song-card { position:relative; display:flex; flex-direction:column; width:100%; min-width:0; padding:0; border:1px solid #56345e; border-radius:10px; overflow:hidden; background:#1a111f; color:var(--sv-ink); text-align:left; isolation:isolate; box-shadow:0 5px 18px #0003; transition:transform 230ms,border-color 230ms,box-shadow 230ms; animation:sv-card-in-v1910 360ms both; animation-delay:calc(var(--sv-card-i,0)*24ms); }
.sv-play-v1910 .sv-song-card:hover { transform:translateY(-5px) rotate(-.5deg); border-color:var(--sv-bright); box-shadow:0 13px 30px #9b4bad24; z-index:2; }
.sv-play-v1910 .sv-song-card:active { transform:translateY(-1px) scale(.975); }
.sv-cover-frame { position:relative; display:block; width:100%; aspect-ratio:16/9; overflow:hidden; background:radial-gradient(circle at 60% 30%,#703575,#26142f 67%); }
.sv-cover-fallback { position:absolute; inset:0; display:grid; place-items:center; color:#deb6df; font:600 clamp(16px,2.5vw,32px)/1.4 var(--sv-serif); opacity:.65; }
.sv-cover-frame img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 480ms cubic-bezier(.2,.7,.2,1),filter 300ms; }
.sv-song-card:hover img { transform:scale(1.09) rotate(.5deg); filter:saturate(1.14); }
.sv-song-card::after { content:""; pointer-events:none; position:absolute; inset:0; border:1px solid #ffffff0b; border-radius:inherit; background:linear-gradient(135deg,#fff1,transparent 44%); }
.sv-song-card-copy { display:grid; gap:5px; padding:10px 12px 12px; }
.sv-song-card-copy strong,.sv-common-card > strong { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:14px; line-height:1.5; font-weight:600; }
.sv-song-card-copy small { color:var(--sv-muted); font:10px/1.5 var(--sv-mono); }
.sv-card-arrow { position:absolute; top:7px; right:7px; display:grid; place-items:center; width:24px; height:24px; border:1px solid #ffffff4d; border-radius:50%; background:#10091880; color:#fff; font-size:13px; }
.sv-play-v1910 .sv-more { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:44px; margin-top:14px; padding:10px 14px; border:1px solid var(--sv-line); border-radius:8px; background:#1a111f; color:var(--sv-bright); font-size:12px; }
.sv-more span { font-size:18px; }
.sv-focus-nav { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:10px; margin:0 0 12px; }
.sv-play-v1910 .sv-back { min-height:44px; padding:8px 0; border:0; background:transparent; color:var(--sv-bright); font-size:12px; }
.sv-focus-nav label { display:flex; align-items:center; gap:8px; color:var(--sv-muted); font-size:11px; }
.sv-focus-nav select { min-height:44px; padding:8px 26px 8px 10px; border:1px solid var(--sv-line); border-radius:7px; background:#110c15; color:var(--sv-ink); }
.sv-play-v1910 .sv-song-focus-play { display:grid; grid-template-columns:clamp(110px,26%,260px) minmax(0,1fr); gap:0; overflow:hidden; border-radius:12px; background:linear-gradient(135deg,#291930,#140e19); animation:sv-focus-in-v1910 380ms cubic-bezier(.16,.75,.3,1) both; }
.sv-focus-art { min-width:0; padding:14px 0 14px 14px; }
.sv-focus-art .sv-cover-frame { height:100%; min-height:130px; border-radius:8px; box-shadow:8px 8px 0 #b372c01f; }
.sv-focus-art img { object-fit:cover; }
.sv-song-focus-play .sv-song-summary { padding:18px; }
.sv-song-focus-play .sv-song-summary h4 { margin:4px 0 12px; font-size:clamp(21px,3vw,30px); font-family:var(--sv-serif); line-height:1.45; }
.sv-focus-score { display:flex; flex-wrap:wrap; gap:5px 14px; align-items:baseline; margin:0 0 6px; font-size:12px; }
.sv-focus-score > strong { color:var(--sv-bright); font:600 clamp(26px,4vw,40px)/1.2 var(--sv-mono); letter-spacing:-.04em; }
.sv-focus-score small { color:var(--sv-muted); font-size:12px; letter-spacing:0; }
.sv-focus-score > span { color:var(--ink-soft,#d4bfd0); font-size:12px; }
.sv-song-summary .sv-focus-total { margin:4px 0 12px; color:var(--sv-muted); font-size:11px; }
.sv-song-focus-play .sv-song-chart { grid-column:1/-1; padding:12px 16px 0; background:#100b1480; }
.sv-song-focus-play .sv-evidence-list { grid-column:1/-1; margin:0; padding:0 14px 10px; background:#100b1480; }
.sv-song-focus-play .sv-evidence-list summary { min-height:44px; padding:12px 0; font-size:12px; }
.sv-full-map,.sv-full-compare,.sv-select-fallback { min-width:0; margin:14px 0; padding:0; border:1px solid var(--sv-line); border-radius:8px; background:#110c15; color:var(--sv-muted); font-size:12px; }
.sv-full-map > summary,.sv-full-compare > summary,.sv-select-fallback > summary { min-height:44px; padding:12px; cursor:pointer; color:var(--ink-soft,#d4bfd0); font-size:12px; line-height:1.7; }
.sv-full-map > summary span { float:right; margin-left:12px; font:10px/2 var(--sv-mono); }
.sv-full-map > .sv-panel { border:0; border-radius:0 0 8px 8px; overflow:hidden; }
.sv-show-toolbar { margin:14px 0; }
.sv-pair-slots { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:14px 0; }
.sv-play-v1910 .sv-pair-slot { display:grid; align-content:start; min-width:0; min-height:98px; gap:5px; padding:12px; border:1px dashed #684471; border-radius:10px; background:linear-gradient(140deg,#23162a,#100c14); color:var(--sv-muted); text-align:left; transition:border-color 200ms,background 200ms; }
.sv-pair-slot.is-choosing { border-style:solid; border-color:var(--sv-bright); box-shadow:inset 0 0 25px #d793ea0c; color:var(--sv-ink); }
.sv-pair-slot strong { color:var(--sv-bright); font:600 15px/1.6 var(--sv-serif); }
.sv-pair-slot small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }
.sv-pair-slot .sv-kicker { margin:0; font-size:9px; }
.sv-show-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.sv-play-v1910 .sv-show-choice { display:grid; min-width:0; padding:0; border:1px solid var(--sv-line); border-radius:10px; overflow:hidden; background:#1c1221; color:var(--sv-ink); text-align:left; animation:sv-card-in-v1910 320ms both; animation-delay:calc(var(--sv-card-i,0)*24ms); transition:transform 220ms,border-color 220ms; }
.sv-show-choice:hover { transform:translateY(-4px); border-color:var(--sv-bright); }
.sv-show-choice:disabled { opacity:.35; }
.sv-show-art { position:relative; display:flex; width:100%; aspect-ratio:2.3; overflow:hidden; background:#301b36; }
.sv-show-art > .sv-cover-frame { flex:1 1 50%; height:100%; transform:rotate(-5deg) scale(1.1); border-right:3px solid #3b2444; transition:transform 360ms; }
.sv-show-art > .sv-cover-frame:nth-child(2) { transform:rotate(5deg) scale(1.12); }
.sv-show-choice:hover .sv-show-art > .sv-cover-frame { transform:rotate(0) scale(1.16); }
.sv-show-art > small { position:absolute; bottom:4px; left:5px; border:1px solid #ffffff24; background:#0c0815b8; padding:2px 4px; color:#eddfef; font-size:8px; line-height:1.4; }
.sv-show-year { display:grid; place-items:center; width:100%; color:var(--sv-bright); font:26px/1 var(--sv-mono); letter-spacing:.15em; }
.sv-show-choice-copy { display:grid; gap:5px; padding:10px; }
.sv-show-choice-copy time { color:var(--sv-bright); font:11px/1.5 var(--sv-mono); }
.sv-show-choice-copy strong { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; color:var(--sv-ink); font-size:12px; line-height:1.6; }
.sv-show-choice-copy small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--sv-muted); font-size:10px; }
.sv-result-gallery { margin:0; padding:12px; }
.sv-result-tabs { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 12px; }
.sv-play-v1910 .sv-result-tabs button { min-height:44px; padding:8px 12px; border:1px solid var(--sv-line); border-radius:7px; background:#17101b; color:var(--sv-muted); font-size:12px; }
.sv-result-tabs button small { margin-left:5px; font-family:var(--sv-mono); }
.sv-result-tabs button[aria-pressed="true"] { border-color:var(--sv-bright); background:#38213f; color:var(--sv-ink); }
.sv-result-song-grid .sv-common-card > strong { padding:9px 10px; font-size:12px; }
.sv-result-song-grid .sv-common-card[aria-pressed="true"] { border-color:#f2c6ff; box-shadow:0 0 0 2px #cd8cdf,0 8px 25px #a854c024; }
.sv-play-v1910 .sv-compare-summary { padding:18px 20px; }
.sv-play-v1910 .sv-full-compare { margin:12px; }
.sv-play-v1910 .sv-select-fallback .sv-compare-controls { padding:10px; }
.sv-play-v1910 .sv-full-compare .sv-track-list { max-height:none; overflow:visible; }
.sv-play-v1910 .sv-full-compare .sv-compare-stage { overflow:hidden; }
.sv-play-v1910 .sv-notice { margin:10px 0; padding:10px 12px; font-size:12px; }
.sv-play-v1910 .sv-panel { border-radius:10px; }
.sv-play-v1910 .sv-sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0; }
@keyframes sv-card-in-v1910 { from { opacity:0; transform:translateY(13px) scale(.965); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes sv-focus-in-v1910 { from { opacity:0; transform:translateY(16px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
@media (max-width:700px) {
 .sv-play-v1910 .sv-play-head { gap:5px 8px; padding-top:6px; }
 .sv-play-v1910 .sv-play-head .sv-title { font-size:22px; }
 .sv-play-v1910 .sv-scope-trigger { font-size:10px; padding:6px 7px; }
 .sv-play-v1910 .sv-tabs button { flex-direction:row; gap:6px; font-size:12px; }
 .sv-play-v1910 .sv-tabs button small { font-size:7px; }
 .sv-quick-search { flex:1 1 160px; }
 .sv-quick-search input { font-size:16px; }
 .sv-pick-settings > summary { padding-inline:9px; font-size:10px; }
 .sv-play-v1910 .sv-pick-settings .sv-toolbar label { flex-basis:100%; }
 .sv-play-v1910 select { font-size:16px; }
 .sv-song-card-grid,.sv-show-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
 .sv-song-card-copy { padding:8px 9px 10px; gap:3px; }
 .sv-song-card-copy strong { font-size:12px; }
 .sv-song-card-copy small { font-size:9px; }
 .sv-picker-line { font-size:11px; }
 .sv-picker-line small { font-size:9px; }
 .sv-play-v1910 .sv-song-focus-play { grid-template-columns:90px minmax(0,1fr); }
 .sv-focus-art { padding:12px 0 12px 12px; }
 .sv-focus-art .sv-cover-frame { min-height:125px; border-radius:6px; }
 .sv-song-focus-play .sv-song-summary { padding:14px 12px; }
 .sv-song-focus-play .sv-song-summary h4 { font-size:20px; margin-top:2px; }
 .sv-focus-score { gap:4px 8px; font-size:11px; }
 .sv-focus-score > strong { font-size:28px; }
 .sv-focus-score small,.sv-focus-score > span { font-size:11px; }
 .sv-song-summary .sv-focus-total { font-size:10px; line-height:1.7; }
 .sv-song-focus-play .sv-song-chart { padding:8px 8px 0; }
 .sv-focus-nav { gap:8px; }
 .sv-focus-nav label { font-size:10px; }
 .sv-focus-nav select { max-width:120px; }
 .sv-play-v1910 .sv-compare-summary { padding:14px 12px; }
 .sv-play-v1910 .sv-compare-numbers .sv-stat > strong { font-size:24px; }
 .sv-play-v1910 .sv-compare-numbers .sv-stat > span { font-size:10px; }
 .sv-play-v1910 .sv-pair-slot { padding:10px; min-height:100px; }
 .sv-pair-slot strong { font-size:13px; }
 .sv-pair-slot small { font-size:10px; }
 .sv-show-choice-copy strong { font-size:11px; }
 .sv-result-gallery { padding:10px; }
}
@media (max-width:360px) { .sv-play-v1910 .sv-play-head { grid-template-columns:minmax(0,1fr); } .sv-play-v1910 .sv-scope-trigger { justify-self:start; grid-row:3; min-height:36px; } .sv-play-v1910 .sv-play-head .sv-title { font-size:21px; } .sv-browse-controls { gap:7px; } .sv-pick-settings { flex-basis:100%; } .sv-play-v1910 .sv-song-focus-play { grid-template-columns:70px minmax(0,1fr); } .sv-focus-art { padding-left:8px; } .sv-song-focus-play .sv-song-summary { padding-inline:10px; } }
@media (prefers-reduced-motion:reduce) {
 .sv-play-v1910 *,.sv-play-v1910 *::before,.sv-play-v1910 *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
 .sv-play-v1910 .sv-song-card:hover,.sv-play-v1910 .sv-show-choice:hover,.sv-play-v1910 .sv-show-art > .sv-cover-frame { transform:none; }
}

/* Always preview the first three map rows; expand within the same scroller. */
.sv-play-v1910 .sv-full-map .sv-map-more { width:calc(100% - 24px); margin:0 12px 12px; }

/* The release-year control filters the map while keeping the song picker complete. */
.sv-map-release { display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; padding:12px 20px 0; color:var(--sv-muted); font-size:12px; }
.sv-map-release select { flex:1; min-width:140px; max-width:220px; min-height:44px; padding:8px 12px; border:1px solid var(--sv-line); border-radius:4px; background:var(--sv-surface); color:var(--sv-ink); font-size:16px; }
@media (max-width:600px) { .sv-map-release { padding-inline:12px; } }
