/* Content layout: shared library, knowledge, editor, and admin surfaces.
   Player and top navigation geometry are intentionally owned elsewhere. */
/* 增量风格节点：将 Roots 扩展留给未来，当前地图聚焦 Blues 家族。 */
.map-node[data-style="boogie"] {
  left:55%;
  top:78%;
}
.map-node[data-style="jazz"] {
  left:32%;
  top:77%;
}
html {
  scroll-behavior:smooth;
}
body {
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background:linear-gradient(180deg,#faf7f1 0,#f3efe8 100%);
}
.app-shell {
  max-width:1180px;
}
.topbar {
  position:relative;
  padding:6px 0 24px;
  border-bottom:1px solid rgba(18,24,39,.1);
}
.main-nav {
  display:flex;
  align-items:center;
  gap:6px;
  padding:4px;
  border-radius:24px;
  background:rgba(255,255,255,.7);
  box-shadow:0 1px 0 rgba(18,24,39,.08);
}
.main-nav a {
  padding:7px 12px;
  border-radius:18px;
  color:var(--muted);
  text-decoration:none;
  font-size:12px;
  transition:.18s;
}
.main-nav a:hover {
  background:#fff;
  color:var(--ink);
}
.session-status {
  padding:6px 10px;
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(255,255,255,.55);
}
.topbar-actions {
  display:flex;
  align-items:center;
  gap:7px;
}
.admin-entry {
  padding:7px 10px;
  border:1px solid #252b39;
  border-radius:16px;
  background:#252b39;
  color:#fff;
  font-size:10px;
}
.hero {
  min-height:230px;
  align-items:center;
  padding:30px 0 28px;
}
.hero h1 {
  max-width:700px;
  font-family:"Songti SC","STSong","Times New Roman",serif;
}
.hero h1 em {
  font-family:Georgia,"Times New Roman",serif;
}
.hero-actions {
  display:flex;
  align-items:center;
  gap:18px;
  margin-top:25px;
}
.hero-actions a {
  text-decoration:none;
  font-size:13px;
}
.primary-link {
  padding:10px 16px;
  border-radius:4px;
  background:var(--orange);
  color:#fff;
  box-shadow:0 8px 18px rgba(232,93,48,.18);
}
.text-link {
  color:var(--ink);
}
.now-playing {
  position:relative;
  overflow:hidden;
  min-width:235px;
  border:1px solid #30394d;
  border-radius:6px 26px 6px 6px;
}
.now-playing::after {
  content:"";
  position:absolute;
  width:85px;
  height:85px;
  right:-28px;
  bottom:-42px;
  border:1px solid rgba(245,190,69,.45);
  border-radius:50%;
}
.product-pillars {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  overflow:hidden;
  margin-top:70px;
  border-radius:8px;
  background:#343b4b;
  box-shadow:0 14px 32px rgba(27,31,42,.11);
}
.product-pillars article {
  padding:25px 28px;
  background:#222937;
  color:#fff;
}
.product-pillars article:last-child {
  background:#2d3545;
}
.product-pillars span {
  color:var(--yellow);
  font:9px "SFMono-Regular",Consolas,monospace;
  letter-spacing:.1em;
}
.product-pillars h2 {
  margin:9px 0 7px;
  font:700 21px/1.15 "Songti SC","STSong","Times New Roman",serif;
}
.product-pillars p {
  max-width:470px;
  margin:0;
  color:#b7c0d0;
  font-size:11px;
  line-height:1.7;
}
.journey {
  padding-top:14px;
}
.journey-layout {
  display:block;
}
.journey-heading-tools {
  display:flex;
  align-items:flex-end;
  flex-direction:column;
  gap:10px;
}
.journey-heading-tools p {
  max-width:440px;
  margin:0;
  color:var(--muted);
  font-size:12px;
  text-align:right;
}
.journey-mode {
  display:flex;
  padding:3px;
  border-radius:18px;
  background:#e8e3db;
}
.journey-mode button {
  border:0;
  border-radius:15px;
  padding:6px 11px;
  background:transparent;
  color:var(--muted);
  font-size:10px;
}
.journey-mode button.active {
  background:#fff;
  color:var(--ink);
  box-shadow:0 1px 5px rgba(18,24,39,.12);
}
.atlas {
  min-height:0;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-inline:contain;
  scrollbar-width:thin;
  scrollbar-color:#5b6577 transparent;
}
.atlas-inner {
  position:relative;
  min-width:800px;
  height:382px;
  overflow:hidden;
}
.atlas-inner::before {
  content:"";
  position:absolute;
  inset:0;
  opacity:.2;
  background-image:linear-gradient(#6a7281 1px,transparent 1px),linear-gradient(90deg,#6a7281 1px,transparent 1px);
  background-size:40px 40px;
}
.atlas .atlas-legend {
  z-index:2;
  inset:18px 24px auto;
}
.atlas .atlas-route {
  z-index:1;
  width:700px;
  height:160px;
  left:45px;
  top:165px;
  border-top:2px dashed rgba(245,190,69,.62);
  transform:rotate(-1deg);
  border-radius:50%;
}
.atlas .map-node {
  left:var(--node-x) !important;
  top:var(--node-y) !important;
  width:128px;
  max-width:128px;
  padding:8px 7px 8px 20px;
  border-radius:5px;
  transition:transform .18s,background .18s;
}
.atlas .map-node:hover {
  transform:translateY(-3px);
  background:rgba(255,255,255,.07);
}
.atlas .map-node.active {
  transform:translateY(-3px);
  background:rgba(255,255,255,.12);
  box-shadow:0 0 0 1px rgba(255,255,255,.2),0 10px 22px rgba(0,0,0,.14);
}
.atlas .map-node-pin {
  left:7px;
  top:15px;
}
.atlas .map-node strong {
  font-family:Georgia,"Times New Roman",serif;
  font-size:15px;
}
.atlas .map-node small {
  line-height:1.35;
}
.groove-atlas {
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:7px;
  min-width:0;
  padding:12px;
}
.groove-card {
  min-width:0;
  min-height:70px;
  padding:9px 10px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:5px;
  background:rgba(255,255,255,.055);
  color:#fff;
  text-align:left;
}
.groove-card:hover,.groove-card.active {
  border-color:var(--yellow);
  background:rgba(245,190,69,.12);
}
.groove-card span,.groove-card small {
  display:block;
  overflow:hidden;
  color:#aeb7c8;
  font:8px/1.45 "SFMono-Regular",Consolas,monospace;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.groove-card span b {
  margin-right:7px;
  color:var(--yellow);
  font-weight:600;
}
.groove-card strong {
  display:block;
  margin:4px 0 3px;
  overflow:hidden;
  font:700 14px Georgia,serif;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.groove-card.active span {
  color:#f2d481;
}
.style-panel[hidden],.style-dossier[hidden] {
  display:none;
}
.style-panel {
  min-height:382px;
  padding:25px;
  box-shadow:0 10px 30px rgba(27,31,42,.06);
}
.style-panel-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.verified-badge {
  padding:4px 7px;
  border-radius:10px;
  background:#eaf4ed;
  color:#39724b;
  font-size:9px;
  white-space:nowrap;
}
.style-panel h3 {
  font-family:Georgia,"Times New Roman",serif;
  font-size:26px;
  line-height:1.08;
}
.style-type {
  display:inline-block;
  margin-top:10px;
  padding:4px 7px;
  border:1px solid #ded8cf;
  border-radius:12px;
  color:#636a79;
  font-size:9px;
  line-height:1.2;
}
.variant-summary {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  margin-top:15px;
}
.variant-summary span {
  padding:9px;
  border-radius:4px;
  background:#f3efe8;
  color:var(--muted);
  font-size:10px;
}
.variant-summary strong {
  display:block;
  color:var(--ink);
  font:700 17px Georgia,serif;
}
.style-dossier {
  margin-top:16px;
  padding:24px 25px;
  border:1px solid var(--line);
  border-radius:8px;
  background:rgba(255,255,255,.62);
}
.style-dossier header {
  display:grid;
  grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);
  align-items:end;
  gap:28px;
  padding-bottom:18px;
  border-bottom:1px solid var(--line);
}
.style-dossier header h3 {
  margin:0;
  font:700 24px/1.1 "Songti SC","STSong","Times New Roman",serif;
}
.style-dossier header > p {
  margin:0;
  color:var(--muted);
  font-size:12px;
  line-height:1.75;
}
.dossier-grid {
  display:grid;
  grid-template-columns:1.3fr 1fr 1.15fr;
  gap:0;
}
.dossier-grid section {
  padding:19px 22px 0 0;
}
.dossier-grid section + section {
  padding-left:22px;
  border-left:1px solid var(--line);
}
.dossier-grid.groove-roles {
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.dossier-grid span {
  color:var(--orange);
  font:10px "SFMono-Regular",Consolas,monospace;
  letter-spacing:.09em;
}
.dossier-grid p,.dossier-grid ul {
  margin:8px 0 0;
  color:#555d6c;
  font-size:12px;
  line-height:1.7;
}
.dossier-grid ul {
  padding-left:17px;
}

.practice-policy {
  display:flex;
  align-items:center;
  gap:15px;
  margin:-2px 0 14px;
  padding:11px 14px;
  border-left:3px solid var(--yellow);
  background:#f7efd9;
}
.practice-policy span {
  flex:0 0 auto;
  color:#8b6430;
  font:9px "SFMono-Regular",Consolas,monospace;
  letter-spacing:.08em;
}
.practice-policy p {
  margin:0;
  color:#626873;
  font-size:11px;
  line-height:1.6;
}
.source-audit-link {
  color:#475268;
  font:9px "SFMono-Regular",Consolas,monospace;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}
.source-audit-link:hover,.source-audit-link:focus-visible {
  color:var(--orange);
}
.arrangement {
  margin-top:2px;
  border-radius:8px;
}
.arrangement h2,.section-heading h2 {
  font-family:"Songti SC","STSong","Times New Roman",serif;
}
.edit-arrangement {
  border-color:#c9c2b8;
  background:#f8f4ee;
}
.timeline-wrap {
  overflow:visible;
}
.timeline {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  min-width:0;
  gap:7px;
}
.bar {
  width:auto;
  min-width:0;
  height:84px;
  border-radius:4px;
}
.bar.current {
  box-shadow:0 8px 16px rgba(232,93,48,.12);
}
.mixer {
  display:block;
  overflow:hidden;
  border:1px solid #303342;
  border-radius:7px;
  background:#171821;
  color:#f5f6fa;
  box-shadow:0 13px 28px rgba(20,22,31,.14);
}
.mixer-table-head,.mixer-channel {
  display:grid;
  grid-template-columns:minmax(190px,1.15fr) 48px 48px minmax(190px,1fr) minmax(125px,.62fr);
  align-items:center;
  gap:8px;
}
.mixer-table-head {
  padding:9px 14px;
  background:#101118;
  color:#9ca3b6;
  font:9px "SFMono-Regular",Consolas,monospace;
  letter-spacing:.08em;
}
.mixer-table-head span:not(:first-child) {
  text-align:center;
}
.mixer-channel {
  position:relative;
  min-width:0;
  padding:8px 14px;
  border:0;
  border-top:1px solid #333541;
  border-radius:0;
  background:#20212b;
  transition:.15s;
}
.mixer-channel:nth-of-type(even) {
  background:#252631;
}
.mixer-channel::before {
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:4px;
  background:#db5143;
}
.mixer-channel.bass-channel::before {
  background:#e4c53f;
}
.mixer-channel.drums-channel::before {
  background:#6655ef;
}
.mixer-channel.keys-channel::before {
  background:#4e9bd8;
}
.track-identity {
  display:flex;
  align-items:center;
  min-width:0;
  gap:10px;
}
.track-identity > span:not(.track-icon) {
  min-width:0;
}
.track-icon {
  display:grid;
  place-items:center;
  flex:0 0 29px;
  width:29px;
  height:29px;
  border:1px solid #53586b;
  border-radius:4px;
  background:#2d303c;
  color:#f5f6fa;
  font:700 12px Georgia,serif;
}
.track-identity strong,.track-identity small {
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.track-identity strong {
  font-size:13px;
}
.track-identity small {
  margin-top:2px;
  color:#8e96a9;
  font-size:9px;
}
.mixer-channel > button {
  width:31px;
  height:26px;
  justify-self:center;
  border:1px solid #444858;
  border-radius:4px;
  background:#181922;
  color:#778096;
  font:700 9px "SFMono-Regular",Consolas,monospace;
}
.mixer-channel > button:hover {
  border-color:#71798d;
  color:#fff;
}
.mixer-channel > button[data-mute].active {
  border-color:#d7604c;
  background:#b74638;
  color:#fff;
}
.mixer-channel > button[data-solo].active {
  border-color:#e3b934;
  background:#e4b83d;
  color:#171821;
}
.channel-slider,.pan-slider {
  display:grid;
  grid-template-columns:minmax(65px,1fr) 39px;
  align-items:center;
  gap:8px;
}
.channel-slider input[type=range],.pan-slider input[type=range] {
  min-width:0;
  margin:0;
  accent-color:#dbe1ed;
}
.mixer-channel output {
  margin:0;
  color:#c5cada;
  font:9px "SFMono-Regular",Consolas,monospace;
  text-align:right;
}
.mixer-channel.muted {
  opacity:.48;
}
.mixer-channel.soloed {
  opacity:1;
  background:#30313c;
  box-shadow:inset 0 0 0 1px rgba(245,190,69,.38);
}
.track-settings {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  flex:0 0 auto;
  min-width:28px;
  height:26px;
  margin-left:auto;
  padding:0 6px;
  border:1px solid #484c5d;
  border-radius:4px;
  background:#181922;
  color:#919aac;
  font-size:12px;
  line-height:1;
  cursor:pointer;
}
.track-settings-label {
  font:8px "SFMono-Regular",Consolas,monospace;
  white-space:nowrap;
}
.track-settings:hover,.track-settings:focus-visible,.track-settings.active {
  border-color:#7f70f0;
  color:#fff;
  outline:none;
}
.track-settings.active {
  background:#34304f;
}
.drum-submixer[hidden],.guitar-submixer[hidden] {
  display:none;
}
.drum-submixer,.guitar-submixer {
  border-top:1px solid #3a3d49;
  background:#292b36;
}
.drum-piece-grid {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
  padding:12px 14px 13px 48px;
}
.drum-piece-grid label {
  min-width:0;
  padding:9px;
  border:1px solid #404351;
  border-radius:4px;
  background:#1d1f28;
}
.drum-piece-grid span,.drum-piece-grid output {
  font:8px "SFMono-Regular",Consolas,monospace;
}
.drum-piece-grid span {
  color:#a9b0c0;
}
.drum-piece-grid output {
  float:right;
  color:#f0c654;
}
.drum-piece-grid input[type=range] {
  width:100%;
  margin:9px 0 0;
  accent-color:#7f70f0;
}
.guitar-source-control {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:12px 14px 13px 48px;
  color:#a9b0c0;
}
.guitar-source-control strong,.guitar-source-control small {
  display:block;
}
.guitar-source-control strong {
  color:#f1f2f7;
  font-size:11px;
}
.guitar-source-control small {
  margin-top:3px;
  color:#8991a5;
  font-size:9px;
  line-height:1.4;
}
.guitar-source-control select {
  min-width:250px;
  padding:7px 28px 7px 9px;
  border:1px solid #474b5a;
  border-radius:4px;
  background:#1d1f28;
  color:#eef0f6;
  font-size:10px;
}
.visually-hidden {
  position:absolute !important;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
/* 2026-09 accompaniment workflow: structured audio editing */
.editor-dialog,.admin-dialog {
  overscroll-behavior:contain;
}
.admin-taxonomy-row {
  position:relative;
  z-index:5;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:start;
  gap:10px;
  margin:16px 0 12px;
}
.admin-taxonomy-groove,.taxonomy-picker {
  min-width:0;
  color:var(--ink);
  font-size:11px;
  font-weight:850;
}
.admin-taxonomy-groove {
  display:block;
}
.admin-taxonomy-groove select,.taxonomy-picker summary {
  box-sizing:border-box;
  width:100%;
  min-height:64px;
  border:3px solid var(--ink);
  background:var(--white);
  color:var(--ink);
}
.admin-taxonomy-groove select {
  padding:8px 34px 8px 10px;
  font-weight:800;
}
.taxonomy-picker {
  position:relative;
}
.taxonomy-picker summary {
  display:grid;
  align-content:center;
  gap:2px;
  padding:6px 34px 6px 10px;
  cursor:pointer;
  list-style:none;
}
.taxonomy-picker summary::-webkit-details-marker {
  display:none;
}
.taxonomy-picker summary::after {
  content:"▾";
  position:absolute;
  right:12px;
  top:16px;
  font-size:13px;
}
.taxonomy-picker[open] summary {
  background:var(--yellow);
}
.taxonomy-picker summary span {
  font-size:10px;
}
.taxonomy-picker summary strong {
  overflow:hidden;
  font-size:12px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.taxonomy-picker-options {
  position:absolute;
  z-index:20;
  left:0;
  right:0;
  top:calc(100% + 5px);
  max-height:270px;
  overflow:auto;
  padding:6px;
  border:3px solid var(--ink);
  background:var(--white);
  box-shadow:5px 5px 0 var(--ink);
}
.taxonomy-picker-options label {
  display:grid;
  grid-template-columns:18px 1fr;
  align-items:start;
  gap:7px;
  padding:8px 7px;
  border-bottom:1px solid #c9c2b8;
  color:var(--ink);
  font-size:10px;
  line-height:1.35;
  cursor:pointer;
}
.taxonomy-picker-options label:last-child {
  border-bottom:0;
}
.taxonomy-picker-options label:hover {
  background:var(--yellow);
}
.taxonomy-picker-options input {
  width:17px;
  height:17px;
  margin:0;
  accent-color:var(--blue);
}
.audio-source-range-fields {
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:stretch;
}
.audio-range-card {
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:9px;
  padding:11px;
  border:3px solid var(--ink);
  background:var(--white);
}
.audio-range-card > strong,.audio-range-card-head strong {
  font:900 19px/1 Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;
  letter-spacing:.04em;
}
.audio-range-card label {
  display:grid;
  align-content:start;
}
.audio-range-card input {
  min-height:42px;
}
.audio-range-card-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.audio-range-card-head button,.loop-source-row button,.audio-source-range-actions button {
  min-height:34px;
  margin:0;
  padding:5px 8px;
  border:2px solid var(--ink);
  background:var(--blue);
  color:var(--white);
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}
.audio-range-card-head button:hover,.audio-range-card-head button:focus-visible,.audio-source-range-actions button:hover,.audio-source-range-actions button:focus-visible {
  background:var(--ink);
  color:var(--yellow);
}
.loop-source-row button:hover,.loop-source-row button:focus-visible {
  background:var(--ink);
  color:var(--white);
}
.loop-source-row {
  display:grid;
  gap:7px;
  padding-top:8px;
  border-top:1px dashed var(--ink);
}
.loop-source-row:first-child {
  padding-top:0;
  border-top:0;
}
.loop-source-row-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.loop-source-row-head strong {
  font-size:12px;
}
.loop-source-row button {
  background:var(--red);
}
.loop-source-boundaries {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:end;
  gap:6px;
}
.loop-source-boundaries > span {
  padding-bottom:14px;
  font-size:10px;
  font-weight:900;
}
.audio-source-range-actions {
  display:flex;
  justify-content:flex-end;
  margin-top:9px;
}
.audio-source-range-actions button {
  min-height:42px;
  padding:8px 13px;
  border-width:3px;
}
.audio-source-range-error {
  margin:9px 0 0;
  padding:8px 10px;
  border:3px solid var(--red);
  background:var(--white);
  color:#7f211a;
  font-size:11px;
  font-weight:900;
  line-height:1.45;
}
.audio-source-range-error[hidden] {
  display:none;
}
.reset-source-bars {
  align-self:start;
  min-height:30px;
  padding:4px 7px;
  border:2px solid var(--ink);
  background:var(--yellow);
  color:var(--ink);
  font-size:9px;
  font-weight:900;
  cursor:pointer;
}
.reset-source-bars:hover,.reset-source-bars:focus-visible {
  background:var(--ink);
  color:var(--yellow);
}
#editorForm input:focus-visible,#editorForm select:focus-visible {
  outline-color:var(--blue);
}
#editorForm [aria-invalid="true"] {
  outline:3px solid var(--red);
  outline-offset:3px;
}
.audio-workflow-label {
  display:flex;
  align-items:center;
  gap:7px;
  margin:14px 0 8px;
  color:var(--ink);
  font-size:12px;
  font-weight:900;
}
.audio-workflow-label span,.audio-source-ranges > div:first-child strong b {
  display:inline-grid;
  width:22px;
  height:22px;
  place-items:center;
  background:var(--ink);
  color:var(--yellow);
  font-size:10px;
  font-style:normal;
}
.audio-section-tabs-wrap {
  margin-top:14px;
  padding-top:1px;
  border-top:3px solid var(--ink);
}
.beat-editor-toggle-row {
  display:flex;
  align-items:center;
  gap:10px;
  margin:12px 0 8px;
}
.beat-editor-toggle-row button,.beat-chord-editor > button {
  min-height:38px;
  padding:7px 10px;
  border:3px solid var(--ink);
  background:var(--yellow);
  color:var(--ink);
  font-weight:900;
  cursor:pointer;
}
.beat-editor-toggle-row button[aria-expanded="true"] {
  background:var(--blue);
  color:var(--white);
}
.beat-editor-toggle-row span {
  color:var(--muted);
  font-size:10px;
  font-weight:750;
}
.beat-chord-editor {
  margin-bottom:12px;
  padding:10px;
  border:3px solid var(--ink);
  background:#dff6ec;
}
.beat-chord-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;
}
.beat-chord-cell {
  display:grid;
  gap:4px;
  padding:7px;
  border:2px solid var(--ink);
  background:var(--white);
  color:var(--ink);
  font-size:10px;
  font-weight:850;
}
.beat-chord-cell.selected {
  background:var(--yellow);
  box-shadow:3px 3px 0 var(--ink);
}
.beat-chord-cell input {
  min-width:0;
  width:100%;
  min-height:37px;
  padding:6px 7px;
  border:2px solid var(--ink);
  background:var(--white);
  color:var(--ink);
  font-weight:900;
}
.beat-chord-editor > button {
  margin-top:8px;
  background:var(--white);
}
.bar-chord-split {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  width:100%;
  gap:4px;
}
.bar-chord-split > span {
  display:grid;
  min-width:0;
  place-items:center;
  overflow:hidden;
  padding:0 1px;
  line-height:1;
  letter-spacing:-.03em;
  text-overflow:clip;
  white-space:nowrap;
}
@media (max-width:900px) {
  .admin-taxonomy-row {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:700px) {
  .groove-backing-list {
    max-height:42dvh;
  }
  .groove-backing-choice {
    min-height:54px;
  }
  .admin-taxonomy-row {
    grid-template-columns:1fr 1fr;
  }
  .taxonomy-picker-options {
    position:fixed;
    z-index:80;
    inset:auto 10px 10px;
    max-height:54dvh;
    box-shadow:5px 5px 0 var(--ink);
  }
  .audio-source-range-fields {
    grid-template-columns:1fr;
  }
  .audio-range-card {
    min-height:0;
  }
  .loop-source-boundaries {
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  }
  .beat-chord-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:420px) {
  .admin-taxonomy-row {
    grid-template-columns:1fr;
  }
  .beat-editor-toggle-row {
    align-items:flex-start;
    flex-direction:column;
  }
}
.arrangement-actions {
  display:flex;
  align-items:center;
  gap:12px;
}
.edit-arrangement {
  border:1px solid var(--ink);
  border-radius:4px;
  background:transparent;
  color:var(--ink);
  padding:7px 10px;
  font-size:11px;
}
.edit-arrangement:hover {
  background:var(--ink);
  color:#fff;
}
.editor-dialog {
  width:min(880px,calc(100vw - 28px));
  max-height:92vh;
  padding:0;
  border:0;
  border-radius:8px;
  background:var(--white);
  color:var(--ink);
  box-shadow:0 28px 80px rgba(12,18,31,.35);
}
.editor-dialog::backdrop {
  background:rgba(12,18,31,.62);
  backdrop-filter:blur(3px);
}
.admin-dialog {
  width:min(980px,calc(100vw - 28px));
  max-height:92vh;
  padding:0;
  border:0;
  border-radius:9px;
  background:#f8f5ef;
  color:var(--ink);
  box-shadow:0 28px 80px rgba(12,18,31,.38);
}
.admin-dialog::backdrop {
  background:rgba(12,18,31,.68);
  backdrop-filter:blur(4px);
}
.admin-shell {
  padding:25px;
}
.admin-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
}
.admin-head h2 {
  margin:3px 0 6px;
  font:700 28px/1.1 "Songti SC","STSong","Times New Roman",serif;
}
.admin-head small {
  color:var(--muted);
  font-size:10px;
}
.admin-security-note {
  display:flex;
  align-items:center;
  gap:12px;
  margin:18px 0;
  padding:11px 13px;
  border-left:3px solid var(--yellow);
  background:#f2e9d3;
}
.admin-security-note strong {
  flex:0 0 auto;
  color:#835d2c;
  font-size:10px;
}
.admin-security-note span {
  color:#646b78;
  font-size:10px;
  line-height:1.5;
}
.admin-tabs {
  display:flex;
  gap:4px;
  padding:4px;
  border-radius:6px;
  background:#e8e3db;
}
.admin-tabs button {
  flex:1;
  padding:8px;
  border:0;
  border-radius:4px;
  background:transparent;
  color:var(--muted);
  font-size:11px;
}
.admin-tabs button.active {
  background:#fff;
  color:var(--ink);
  box-shadow:0 1px 5px rgba(18,24,39,.1);
}
.admin-pane {
  margin-top:13px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:7px;
  background:#fff;
}
.admin-pane[hidden] {
  display:none;
}
.admin-pane-copy h3 {
  margin:0;
  font-size:16px;
}
.admin-pane-copy p {
  margin:5px 0 15px;
  color:var(--muted);
  font-size:10px;
  line-height:1.6;
}
.admin-fields {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
}
.admin-fields label {
  min-width:0;
  color:var(--muted);
  font-size:9px;
}
.admin-fields input,.admin-fields select,.admin-fields textarea {
  box-sizing:border-box;
  width:100%;
  min-width:0;
  margin-top:5px;
  padding:8px 9px;
  border:1px solid var(--line);
  border-radius:4px;
  background:#faf9f6;
  color:var(--ink);
  font-size:10px;
}
.admin-fields textarea {
  min-height:76px;
  resize:vertical;
  font:inherit;
  line-height:1.5;
}
.admin-description-field {
  grid-column:1 / -1;
}
.admin-description-field small {
  display:block;
  margin-top:5px;
  line-height:1.45;
}
.admin-file input {
  padding:6px;
}
.admin-submit {
  margin-top:13px;
  padding:9px 13px;
  border:0;
  border-radius:4px;
  background:#263149;
  color:#fff;
  font-size:11px;
}
.taxonomy-admin-intro {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
}
.taxonomy-admin-intro > span {
  max-width:330px;
  padding:9px 11px;
  border:1px solid var(--line);
  border-radius:5px;
  background:#eef9f3;
  color:#315e4e;
  font-size:10px;
  line-height:1.45;
}
.taxonomy-admin-layout {
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:13px;
  margin-top:16px;
}
.taxonomy-admin-axes {
  display:flex;
  flex-direction:column;
  gap:7px;
}
.taxonomy-admin-axes button {
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:52px;
  padding:10px 11px;
  border:2px solid var(--ink);
  border-radius:7px;
  background:#fff;
  color:var(--ink);
  text-align:left;
  transition:transform .16s ease,background-color .16s ease,box-shadow .16s ease;
}
.taxonomy-admin-axes button:nth-child(2) { background:#dff2fb; }
.taxonomy-admin-axes button:nth-child(3) { background:#e1f5ec; }
.taxonomy-admin-axes button:nth-child(4) { background:#ffe0dc; }
.taxonomy-admin-axes button.active {
  background:var(--yellow);
  box-shadow:0 5px 14px rgba(24,49,83,.16);
  transform:translateY(-2px);
}
.taxonomy-admin-axes strong {
  font-size:13px;
}
.taxonomy-admin-axes small {
  color:var(--muted);
  font-size:9px;
  font-weight:850;
}
.taxonomy-admin-workspace {
  min-width:0;
  overflow:hidden;
  border:2px solid var(--ink);
  border-radius:9px;
  background:#fff;
}
.taxonomy-admin-workspace > header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:13px 15px;
  border-bottom:2px solid var(--ink);
  background:#fff6cd;
}
.taxonomy-admin-workspace h4,
.taxonomy-admin-workspace p {
  margin:0;
}
.taxonomy-admin-workspace h4 {
  font-size:17px;
}
.taxonomy-admin-workspace header p {
  margin-top:3px;
  color:#5c6676;
  font-size:10px;
}
#newTaxonomyCategory {
  flex:0 0 auto;
  min-height:44px;
  padding:8px 11px;
  border:2px solid var(--ink);
  border-radius:6px;
  background:var(--yellow);
  color:var(--ink);
  font-size:11px;
  font-weight:850;
}
.taxonomy-admin-content {
  display:grid;
  grid-template-columns:minmax(230px,.8fr) minmax(330px,1.2fr);
  min-height:390px;
}
.taxonomy-category-list {
  max-height:500px;
  overflow:auto;
  padding:10px;
  border-right:1px solid var(--line);
  background:#f8f5ef;
  scrollbar-color:var(--ink) #e7e0d5;
}
.taxonomy-category-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:5px 10px;
  width:100%;
  min-height:62px;
  margin-bottom:7px;
  padding:9px 10px;
  border:1px solid #bcb5aa;
  border-radius:6px;
  background:#fff;
  color:var(--ink);
  text-align:left;
}
.taxonomy-category-row > span {
  min-width:0;
}
.taxonomy-category-row strong,
.taxonomy-category-row small {
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.taxonomy-category-row strong {
  font-size:12px;
}
.taxonomy-category-row small {
  margin-top:4px;
  color:var(--muted);
  font-size:9px;
}
.taxonomy-category-row em {
  color:#546176;
  font-size:9px;
  font-style:normal;
  font-weight:750;
}
.taxonomy-category-row b {
  grid-column:1 / -1;
  justify-self:start;
  padding:3px 6px;
  border-radius:99px;
  background:#e6f5ee;
  color:#315e4e;
  font-size:8px;
}
.taxonomy-category-row.active {
  border:2px solid var(--ink);
  background:var(--yellow);
  box-shadow:0 5px 13px rgba(24,49,83,.14);
}
.taxonomy-category-row:hover {
  border-color:var(--ink);
  transform:translateY(-1px);
}
.taxonomy-category-empty {
  margin:0;
  padding:24px 12px;
  color:var(--muted);
  text-align:center;
  font-size:11px;
}
.taxonomy-category-editor {
  padding:16px;
  background:#fff;
}
.taxonomy-category-editor-heading {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:15px;
}
.taxonomy-category-editor-heading h5 {
  margin:0 0 4px;
  font-size:16px;
}
.taxonomy-category-editor-heading span {
  color:#596578;
  font-size:10px;
}
#cancelTaxonomyCategoryEdit {
  width:44px;
  min-height:44px;
  border:1px solid var(--line);
  border-radius:6px;
  background:#fff;
  color:var(--ink);
  font-size:20px;
}
.taxonomy-category-fields {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:11px;
}
.taxonomy-category-fields label {
  display:grid;
  align-content:start;
  gap:5px;
  color:#4f5a6c;
  font-size:10px;
  font-weight:800;
}
.taxonomy-category-fields input,
.taxonomy-category-fields select,
.taxonomy-category-fields textarea {
  width:100%;
  min-width:0;
  border:1px solid #aaa399;
  border-radius:5px;
  background:#fbfaf7;
  color:var(--ink);
  font:500 12px/1.4 system-ui,-apple-system,"PingFang SC",sans-serif;
}
.taxonomy-category-fields input,
.taxonomy-category-fields select {
  min-height:42px;
  padding:8px 9px;
}
.taxonomy-category-fields textarea {
  min-height:96px;
  padding:9px;
  resize:vertical;
}
.taxonomy-category-fields small {
  color:#667185;
  font-size:9px;
  line-height:1.45;
}
.taxonomy-category-summary {
  grid-column:1 / -1;
}
.taxonomy-detail-fields {
  display:grid;
  grid-column:1 / -1;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:11px;
  min-width:0;
  margin:2px 0 0;
  padding:12px;
  border:1px dashed #aaa399;
  border-radius:7px;
  background:#f6f3ec;
}
.taxonomy-detail-fields legend {
  padding:0 5px;
  color:#4f5a6c;
  font-size:10px;
  font-weight:900;
}
.taxonomy-detail-fields > label:first-of-type {
  grid-column:1 / -1;
}
#taxonomyCategoryMessage {
  display:block;
  min-height:34px;
  padding-top:10px;
  color:#9a332c;
  font-size:10px;
  line-height:1.45;
}
.taxonomy-category-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  padding-top:12px;
  border-top:1px solid var(--line);
}
.taxonomy-category-actions button {
  min-height:44px;
  margin:0;
  padding:8px 11px;
  border:1px solid var(--ink);
  border-radius:6px;
  background:#fff;
  color:var(--ink);
  font-size:10px;
  font-weight:850;
}
.taxonomy-category-actions .admin-submit {
  border-width:2px;
  background:var(--yellow);
}
.taxonomy-category-actions .taxonomy-delete-action {
  margin-right:auto;
  border-color:#a7352d;
  color:#8f2f29;
  background:#fff1ef;
}
.taxonomy-admin-axes button:focus-visible,
.taxonomy-category-row:focus-visible,
.taxonomy-category-actions button:focus-visible,
#newTaxonomyCategory:focus-visible,
#cancelTaxonomyCategoryEdit:focus-visible,
.taxonomy-category-fields :focus-visible {
  outline:3px solid var(--blue);
  outline-offset:2px;
}
@media (max-width:780px) {
  .taxonomy-admin-intro {
    flex-direction:column;
  }
  .taxonomy-admin-intro > span {
    max-width:none;
  }
  .taxonomy-admin-layout {
    grid-template-columns:1fr;
  }
  .taxonomy-admin-axes {
    display:grid;
    grid-template-columns:repeat(4,minmax(100px,1fr));
    overflow-x:auto;
    padding:3px 2px 8px;
  }
  .taxonomy-admin-content {
    grid-template-columns:1fr;
  }
  .taxonomy-category-list {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-height:250px;
    border-right:0;
    border-bottom:1px solid var(--line);
  }
}
@media (max-width:520px) {
  .taxonomy-admin-workspace > header {
    align-items:flex-start;
    flex-direction:column;
  }
  #newTaxonomyCategory {
    width:100%;
  }
  .taxonomy-category-list,
  .taxonomy-category-fields {
    grid-template-columns:1fr;
  }
  .taxonomy-category-summary {
    grid-column:auto;
  }
  .taxonomy-detail-fields {
    grid-column:auto;
    grid-template-columns:1fr;
  }
  .taxonomy-detail-fields > label:first-of-type {
    grid-column:auto;
  }
  .taxonomy-category-actions {
    align-items:stretch;
    flex-direction:column;
  }
  .taxonomy-category-actions .taxonomy-delete-action {
    margin-right:0;
  }
}
.admin-roadmap {
  padding:18px;
  border:1px dashed #bbb3a8;
  border-radius:5px;
  background:#f6f2eb;
}
.admin-roadmap span,.admin-roadmap strong {
  display:block;
}
.admin-roadmap span {
  color:var(--orange);
  font:9px "SFMono-Regular",Consolas,monospace;
}
.admin-roadmap strong {
  margin-top:8px;
  font-size:13px;
}
.admin-library {
  margin-top:15px;
}
.admin-library-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  padding-bottom:8px;
  border-bottom:1px solid var(--line);
}
.admin-library h3 {
  margin:0;
  font-size:14px;
}
.admin-library small {
  color:var(--muted);
  font-size:9px;
}
.admin-backing-migration {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px 18px;
  margin-top:12px;
  padding:14px;
  border:2px solid var(--ink);
  border-radius:8px;
  background:#e1f5ec;
  box-shadow:0 5px 14px rgba(24,49,83,.12);
}
.admin-backing-migration[hidden] {
  display:none;
}
.admin-backing-migration h4,
.admin-backing-migration p {
  margin:0;
}
.admin-backing-migration h4 {
  font-size:13px;
}
.admin-backing-migration p {
  max-width:68ch;
  margin-top:4px;
  color:#315e4e;
  font-size:10px;
  line-height:1.5;
}
.admin-migration-actions {
  display:flex;
  align-items:center;
  gap:8px;
}
.admin-migration-actions button {
  min-height:44px;
  padding:8px 12px;
  border:2px solid var(--ink);
  border-radius:6px;
  background:var(--yellow);
  color:var(--ink);
  font-size:11px;
  font-weight:850;
  cursor:pointer;
}
.admin-migration-actions button:hover {
  transform:translateY(-1px);
  box-shadow:0 4px 10px rgba(24,49,83,.16);
}
.admin-migration-actions button:focus-visible {
  outline:3px solid var(--blue);
  outline-offset:3px;
}
.admin-migration-actions button:disabled {
  cursor:wait;
  opacity:.58;
  transform:none;
  box-shadow:none;
}
#backingMigrationMessage {
  grid-column:1 / -1;
  min-height:1.4em;
  color:var(--ink);
  font-size:10px;
  font-weight:750;
}
.admin-asset-list > p {
  margin:0;
  padding:20px;
  color:var(--muted);
  text-align:center;
  font-size:10px;
}
.admin-asset {
  display:grid;
  grid-template-columns:minmax(190px,1fr) minmax(180px,.8fr) auto;
  align-items:center;
  gap:12px;
  padding:10px 0;
  border-bottom:1px solid var(--line);
}
.admin-asset span,.admin-asset strong,.admin-asset small {
  display:block;
}
.admin-asset span {
  color:var(--orange);
  font:8px "SFMono-Regular",Consolas,monospace;
}
.admin-asset strong {
  margin:3px 0;
  font-size:11px;
}
.admin-asset small {
  color:var(--muted);
  font-size:9px;
}
.admin-asset audio {
  width:100%;
  height:32px;
}
.admin-asset button {
  padding:6px 8px;
  border:1px solid var(--line);
  border-radius:4px;
  background:#fff;
  color:var(--ink);
  font-size:9px;
}
.editor-form {
  padding:25px;
}
.editor-head {
  display:flex;
  align-items:start;
  justify-content:space-between;
}
.editor-head h2 {
  margin:0;
  font:700 30px/1 "Playfair Display",serif;
}
.dialog-close {
  border:0;
  background:transparent;
  color:var(--muted);
  font-size:28px;
  line-height:1;
}
.editor-notice {
  margin:18px 0;
  padding:10px 12px;
  border-left:3px solid var(--yellow);
  background:#faf4e6;
  color:#626873;
  font-size:12px;
}
.editor-fields {
  display:grid;
  grid-template-columns:1.6fr .7fr .7fr .8fr;
  gap:10px;
}
.editor-fields label {
  color:var(--muted);
  font-size:11px;
}
.editor-fields input,.editor-fields select {
  width:100%;
  margin-top:6px;
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:4px;
  background:white;
  color:var(--ink);
}
.editor-bars-head {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:12px;
  margin:24px 0 10px;
}
.editor-bars-head span,.editor-bars-head small {
  display:block;
}
.editor-bars-head span {
  font-weight:600;
}
.editor-bars-head small {
  margin-top:2px;
  color:var(--muted);
  font-size:10px;
}
.editor-bars-head button {
  border:1px solid var(--line);
  border-radius:4px;
  background:white;
  padding:7px 10px;
  color:var(--ink);
  font-size:11px;
}
.editor-bars {
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:7px;
  max-height:280px;
  overflow:auto;
  padding:2px;
}
.editor-bar {
  position:relative;
  padding:7px;
  border:1px solid var(--line);
  border-top:3px solid var(--orange);
  border-radius:4px;
  background:#f7f4ee;
}
.editor-bar.selected {
  outline:2px solid rgba(47,99,232,.28);
  border-color:var(--blue);
}
.editor-bar-number {
  display:block;
  color:var(--muted);
  font:9px "DM Mono",monospace;
}
.editor-bar-chords {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:6px;
  margin-top:5px;
}
.editor-bar.has-multiple-chords .editor-bar-chords {
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.editor-bar-chord-slot {
  min-width:0;
}
.editor-bar input {
  box-sizing:border-box;
  width:100%;
  min-width:0;
  margin-top:0;
  padding:5px 3px;
  border:0;
  border-bottom:1px solid #cfc8bd;
  background:transparent;
  color:var(--ink);
  font:600 16px "Playfair Display",serif;
}
.editor-bar.has-multiple-chords input {
  font-size:14px;
}
.editor-bar button {
  position:absolute;
  top:4px;
  right:4px;
  border:0;
  background:transparent;
  color:#a29b92;
}
.editor-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:22px;
  padding-top:17px;
  border-top:1px solid var(--line);
}
.editor-footer > span {
  color:var(--muted);
  font:11px "DM Mono",monospace;
}
.editor-footer button {
  border-radius:4px;
  padding:9px 13px;
}
.cancel-edit {
  border:1px solid var(--line);
  background:transparent;
  color:var(--muted);
}
.save-edit {
  margin-left:7px;
  border:1px solid var(--orange);
  background:var(--orange);
  color:#fff;
  font-weight:600;
}
.chord-builder {
  margin-top:16px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:6px;
  background:#f2eee7;
}
.chord-builder-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:10px;
}
.chord-builder-head span,.chord-builder-head small {
  display:block;
}
.chord-builder-head span {
  font-weight:650;
}
.chord-builder-head small {
  margin-top:2px;
  color:var(--muted);
  font-size:10px;
}
.chord-builder-head output {
  min-width:80px;
  color:var(--blue);
  font:700 24px Georgia,serif;
  text-align:right;
}
.progression-presets {
  display:grid;
  grid-template-columns:auto minmax(180px,1fr) auto;
  align-items:center;
  gap:7px;
  margin:0 0 12px;
  padding:10px;
  border-left:4px solid var(--yellow);
  background:rgba(255,255,255,.62);
}
.progression-presets label {
  color:var(--ink);
  font-size:10px;
  font-weight:750;
}
.progression-presets select {
  min-width:0;
  padding:8px;
  border:1px solid #cfc8bd;
  border-radius:4px;
  background:#fff;
  color:var(--ink);
}
.progression-presets button {
  min-height:34px;
  border:0;
  border-radius:4px;
  padding:8px 11px;
  background:var(--ink);
  color:#fff;
  font-size:10px;
  font-weight:700;
}
.progression-presets small {
  grid-column:2 / -1;
  color:var(--muted);
  font-size:9px;
}
.chord-builder-grid {
  display:grid;
  grid-template-columns:1.35fr .8fr 1fr 1fr .85fr auto;
  align-items:end;
  gap:7px;
}
.chord-builder-grid label {
  min-width:0;
  color:var(--muted);
  font-size:9px;
}
.chord-builder-grid select {
  width:100%;
  margin-top:5px;
  padding:8px;
  border:1px solid #cfc8bd;
  border-radius:4px;
  background:#fff;
  color:var(--ink);
}
.chord-builder-grid button {
  min-height:34px;
  border:0;
  border-radius:4px;
  padding:8px 11px;
  background:var(--blue);
  color:#fff;
  font-size:10px;
}
.chord-examples {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  margin-top:11px;
}
.chord-examples span {
  margin-right:3px;
  color:var(--muted);
  font-size:9px;
  font-weight:700;
}
.chord-examples button {
  min-width:38px;
  border:1px solid #bfb7aa;
  border-radius:14px;
  padding:5px 9px;
  background:#fff;
  color:var(--ink);
  font:600 10px "SFMono-Regular",Consolas,monospace;
  cursor:pointer;
}
.chord-examples button:hover {
  border-color:var(--blue);
  color:var(--blue);
}
.chord-examples button:focus-visible,.progression-presets button:focus-visible {
  outline:3px solid var(--blue);
  outline-offset:2px;
}
@media (max-width:700px) {
  .main-nav {
    display:none;
  }
  .topbar {
    padding-bottom:16px;
  }
  .session-status {
    display:none;
  }
  .hero {
    min-height:auto;
    padding:24px 0 28px;
  }
  .hero h1 {
    font-size:45px;
  }
  .hero-actions {
    margin-top:18px;
  }
  .product-pillars {
    grid-template-columns:1fr;
  }
  .product-pillars article {
    padding:20px;
  }
  .journey {
    padding-top:12px;
  }
  .journey-heading-tools {
    align-items:flex-start;
    margin-top:10px;
  }
  .journey-heading-tools p {
    text-align:left;
  }
  .journey-layout {
    display:block;
  }
  .atlas {
    min-height:0;
    overflow-x:auto;
  }
  .atlas-inner {
    min-width:800px;
    height:350px;
  }
  .atlas .map-node {
    top:calc(var(--node-y) - 18px) !important;
  }
  .atlas .atlas-route {
    top:145px;
  }
  .groove-atlas {
    display:flex;
    width:max-content;
    min-width:100%;
    padding:10px;
  }
  .groove-card {
    flex:0 0 166px;
    min-height:70px;
  }
  .groove-card strong {
    font-size:14px;
  }
  .style-panel {
    min-height:auto;
  }
  .style-dossier header,.dossier-grid,.dossier-grid.groove-roles {
    grid-template-columns:1fr;
  }
  .style-dossier header {
    gap:12px;
  }
  .dossier-grid section {
    padding:17px 0 0;
  }
  .dossier-grid section + section {
    padding-left:0;
    border-left:0;
  }
  .practice-policy {
    align-items:flex-start;
    flex-direction:column;
    gap:5px;
  }
  .arrangement-actions {
    align-items:end;
    flex-direction:column;
    gap:5px;
  }
  .mixer-table-head,.mixer-channel {
    grid-template-columns:minmax(140px,1.1fr) 32px 32px minmax(88px,1fr);
    gap:4px;
  }
  .mixer-table-head span:last-child,.pan-slider {
    display:none;
  }
  .mixer-channel {
    padding:8px 9px;
  }
  .mixer-channel > button {
    width:27px;
  }
  .track-identity {
    gap:6px;
  }
  .track-icon {
    flex-basis:24px;
    width:24px;
    height:24px;
  }
  .track-settings {
    min-width:49px;
    height:24px;
    padding:0 5px;
  }
  .drum-piece-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
    padding:12px;
  }
  .guitar-source-control {
    padding:12px;
  }
  .guitar-source-control select {
    min-width:0;
    max-width:58%;
  }
  .editor-form,.admin-shell {
    padding:18px;
  }
  .editor-fields {
    grid-template-columns:1fr 1fr;
  }
  .editor-bars {
    grid-template-columns:repeat(3,1fr);
  }
  .progression-presets {
    grid-template-columns:1fr auto;
  }
  .progression-presets label {
    grid-column:1 / -1;
  }
  .progression-presets small {
    grid-column:1 / -1;
  }
  .chord-builder-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .chord-builder-grid button {
    grid-column:1 / -1;
  }
  .admin-fields {
    grid-template-columns:1fr 1fr;
  }
  .admin-asset {
    grid-template-columns:1fr;
  }
  .admin-asset audio {
    max-width:360px;
  }
}
@media (max-width:430px) {
  .hero h1 {
    font-size:39px;
  }
  .hero-actions {
    justify-content:space-between;
  }
  .primary-link {
    padding:9px 13px;
  }
  .timeline {
    gap:5px;
  }
  .bar {
    height:76px;
    padding:8px;
  }
  .bar-chord {
    margin-top:9px;
    font-size:18px;
  }
  .editor-fields,.admin-fields {
    grid-template-columns:1fr;
  }
  .editor-footer {
    align-items:flex-start;
    flex-direction:column;
    gap:12px;
  }
  .editor-footer > div {
    width:100%;
    display:flex;
  }
  .editor-footer button {
    flex:1;
  }
  .timeline-help {
    align-items:flex-start;
    flex-direction:column;
    gap:3px;
  }
  .track-identity small {
    display:none;
  }
  .mixer-table-head,.mixer-channel {
    grid-template-columns:minmax(138px,1fr) 30px 30px minmax(88px,1fr);
  }
  .channel-slider {
    grid-template-columns:minmax(50px,1fr) 32px;
    gap:3px;
  }
  .drum-piece-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .guitar-source-control {
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
  }
  .guitar-source-control select {
    width:100%;
    max-width:none;
  }
}
/* BLUES JUKE: collage workstation visual system */
:root {
  --ink: #101010;
  --paper: #fff7df;
  --white: #fffdf5;
  --muted: #4a463d;
  --line: #101010;
  --yellow: #f7e632;
  --orange: #f0442f;
  --blue: #145cff;
  --red: #f0442f;
  --shadow: 9px 11px 0 rgba(16, 16, 16, .16);
  --soft-shadow: 0 14px 32px rgba(16, 16, 16, .16);
  --window-border: 4px solid var(--ink);
  --window-radius: 0;
  --master-level: 78%;
}
html {
  scroll-behavior: smooth;
}
body {
  min-width: 320px;
  background-color: var(--paper);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Ccircle cx='2' cy='2' r='.6' fill='%23101010' fill-opacity='.11'/%3E%3Ccircle cx='14' cy='11' r='.45' fill='%23101010' fill-opacity='.08'/%3E%3C/svg%3E");
  color: var(--ink);
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Noto Sans SC", sans-serif;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 20;
  opacity: .08;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cpath d='M6 17c18-6 25 6 38 1M29 63c12-10 22 4 39-5M-6 44c17 3 19-11 38-9' fill='none' stroke='%23101010' stroke-width='1.3'/%3E%3C/svg%3E");
}
::selection {
  background: var(--yellow);
  color: var(--ink);
}
button, input, select {
  border-radius: 0;
}
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 3px;
}
button:disabled {
  cursor: not-allowed;
  opacity: .48;
}
input[type="range"] {
  accent-color: var(--red);
}
button, a, input, select {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
h1, h2, h3 {
  text-wrap: balance;
}
[id] {
  scroll-margin-top: 20px;
}
.skip-link {
  position: fixed;
  left: 12px;
  top: 12px;
  z-index: 100;
  padding: 9px 12px;
  border: 3px solid var(--ink);
  background: var(--yellow);
  color: var(--ink);
  font-weight: 850;
  text-decoration: none;
  transform: translateY(-180%);
}
.skip-link:focus-visible {
  transform: translateY(0);
}
.track-settings:focus-visible, .compact-control select:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 3px;
}
.app-shell {
  display: flex;
  flex-direction: column;
  max-width: 1440px;
  padding: 18px clamp(14px, 3vw, 44px) 56px;
}
.topbar {
  order: 0;
  min-height: 64px;
  padding: 10px 14px;
  border: var(--window-border);
  background: var(--yellow);
  box-shadow: var(--shadow);
}
.topbar h1, h2, h3 {
  font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  letter-spacing: .035em;
}
.main-nav {
  display: flex;
  gap: 2px;
}
.main-nav a {
  padding: 7px 9px;
  color: var(--ink);
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}
.main-nav a:hover {
  background: var(--ink);
  color: var(--yellow);
}
.topbar-actions {
  gap: 12px;
}
.session-status {
  color: var(--ink);
  font-size: 12px;
  font-weight: 750;
}
.session-status span {
  background: var(--blue);
  border: 2px solid var(--ink);
}
.admin-entry {
  border: 3px solid var(--ink);
  background: var(--white);
  color: var(--ink);
  font-weight: 850;
  box-shadow: 3px 3px 0 var(--ink);
}
.admin-entry:hover {
  background: var(--blue);
  color: var(--white);
}
.admin-entry:active {
  box-shadow: 0 0 0 var(--ink);
  transform: translate(3px, 3px);
}
.hero {
  order: 1;
  position: relative;
  align-items: end;
  gap: 24px;
  min-height: 230px;
  margin: 22px 0 18px;
  padding: 28px 34px 24px;
  border: var(--window-border);
  background: var(--white);
  box-shadow: var(--shadow);
  overflow: hidden;
}
.hero::after {
  content: "BLUES / 12 BAR / FEEL";
  position: absolute;
  right: -14px;
  top: 20px;
  padding: 7px 18px;
  border: 3px solid var(--ink);
  background: var(--red);
  color: var(--white);
  font: 900 13px/1 Impact, sans-serif;
  letter-spacing: .12em;
  transform: rotate(4deg);
}
.eyebrow {
  display: none;
}
.hero h1 {
  max-width: 680px;
  font: 900 clamp(42px, 6vw, 82px)/.85 Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  letter-spacing: .025em;
  text-transform: uppercase;
}
.hero h1 em {
  color: var(--blue);
  font-style: normal;
  text-shadow: 3px 3px 0 var(--yellow);
}
.lede {
  max-width: 610px;
  color: var(--ink);
  font-size: 15px;
  font-weight: 650;
  line-height: 1.55;
}
.hero-actions {
  gap: 12px;
}
.primary-link, .text-link {
  border: 3px solid var(--ink);
  border-radius: 0;
  padding: 10px 14px;
  color: var(--ink);
  font-size: 13px;
  font-weight: 900;
  text-decoration: none;
}
.primary-link {
  background: var(--red);
  color: var(--white);
  box-shadow: 3px 3px 0 var(--ink);
}
.primary-link:hover {
  background: var(--blue);
}
.text-link:hover {
  background: var(--yellow);
}
.now-playing {
  min-width: 250px;
  margin-bottom: 6px;
  border: 4px solid var(--ink);
  border-radius: 0;
  background: var(--ink);
  box-shadow: 6px 6px 0 var(--blue);
}
.now-playing strong {
  color: var(--yellow);
  font: 900 28px/1 Impact, sans-serif;
  letter-spacing: .04em;
}
.now-playing span,.now-playing small {
  color: var(--white);
}
.tempo-popover {
  border: 3px solid var(--ink);
  border-radius: 0;
  background: var(--yellow);
  box-shadow: var(--shadow);
}
.tempo-popover small {
  color: var(--ink);
  font-weight: 700;
}
.human-speed-presets[hidden],.intro-visibility-toggle[hidden],.audio-section-tabs-wrap[hidden],.backing-composer[hidden] {
  display:none;
}
.speed-preset-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:5px;
}
.speed-preset-grid button {
  min-height:34px;
  border:2px solid var(--ink);
  background:var(--paper);
  color:var(--ink);
  font:900 12px/1 "SFMono-Regular",Consolas,monospace;
  cursor:pointer;
}
.speed-preset-grid button:hover,.speed-preset-grid button.active {
  background:var(--blue);
  color:var(--white);
}
.speed-preset-grid button:focus-visible {
  outline:3px solid var(--red);
  outline-offset:2px;
}
.human-speed-presets > small {
  margin-top:8px;
  line-height:1.45;
  text-align:left;
}
.arrangement {
  order: 3;
  position: relative;
  margin: 0 0 22px;
  padding: 70px 24px 26px;
  border: var(--window-border);
  border-radius: 0;
  background: var(--white);
  box-shadow: 10px 11px 0 var(--red);
}
.arrangement::before {
  content: "CHORD WINDOW / 12 BAR GRID";
  background: var(--blue);
  color: var(--white);
}
.arrangement::after {
  color: var(--yellow);
}
.arrangement-title {
  align-items: center;
}
.arrangement h2 {
  font: 900 34px/1 Impact, sans-serif;
  letter-spacing: .03em;
}
.arrangement-actions {
  gap: 10px;
  font-weight: 800;
}
.edit-arrangement {
  border: 3px solid var(--ink);
  border-radius: 0;
  background: var(--yellow);
  color: var(--ink);
  font-weight: 900;
  box-shadow: 3px 3px 0 var(--ink);
}
.edit-arrangement:hover {
  background: var(--red);
  color: var(--white);
}
.timeline {
  gap: 8px;
}
.bar {
  height: 104px;
  border: 3px solid var(--ink);
  border-radius: 0;
  background: var(--paper);
  color: var(--ink);
  box-shadow: 3px 3px 0 rgba(16,16,16,.18);
}
.bar:hover {
  background: var(--yellow);
  transform: translate(-1px,-1px);
}
.bar.selected {
  background: var(--yellow);
}
.bar.current {
  background: var(--red);
  color: var(--white);
  box-shadow: 5px 5px 0 var(--ink);
}
.bar-number,.bar-function {
  font-weight: 850;
}
.bar-chord {
  font: 900 32px/1 Impact, sans-serif;
}
.timeline-help {
  border-top: 2px dashed var(--ink);
  color: var(--ink);
}
.mixer-heading {
  margin-top: 30px;
  padding: 9px 12px;
  border: 3px solid var(--ink);
  border-bottom: 0;
  background: var(--yellow);
  color: var(--ink);
  font-weight: 900;
}
.mixer {
  border: 3px solid var(--ink);
  border-radius: 0;
  box-shadow: none;
}
.mixer-table-head {
  background: var(--ink);
  color: var(--white);
}
.mixer-channel {
  background: var(--white);
  color: var(--ink);
  border-top: 2px solid var(--ink);
}
.mixer-channel:nth-of-type(even) {
  background: var(--paper);
}
.track-icon {
  border: 2px solid var(--ink);
  border-radius: 0;
  background: var(--yellow);
  color: var(--ink);
}
.track-identity strong {
  font-size: 14px;
}
.mixer-channel > button {
  border: 2px solid var(--ink);
  border-radius: 0;
  background: var(--white);
  color: var(--ink);
}
.mixer-channel > button:hover {
  background: var(--blue);
  color: var(--white);
}
.mixer-channel > button[data-mute].active {
  background: var(--red);
}
.mixer-channel > button[data-solo].active {
  background: var(--yellow);
}
.drum-submixer,.guitar-submixer {
  background: var(--yellow);
  border-top: 3px solid var(--ink);
}
.drum-piece-grid label,.guitar-source-control select {
  border: 2px solid var(--ink);
  border-radius: 0;
  background: var(--white);
  color: var(--ink);
}
.timeline-help > div {
  min-width:0;
}
.intro-visibility-toggle {
  min-height:36px;
  padding:7px 10px;
  border:2px solid var(--ink);
  background:var(--paper);
  color:var(--ink);
  font-weight:900;
  cursor:pointer;
  white-space:nowrap;
}
.intro-visibility-toggle[aria-pressed="true"] {
  background:var(--mem-mint,#91e4c3);
}
.intro-visibility-toggle:hover {
  background:var(--yellow);
}
.intro-visibility-toggle:focus-visible {
  outline:3px solid var(--blue);
  outline-offset:3px;
}
.timeline.intro-collapsed .section-intro {
  display:none;
}
.bar.section-intro {
  background:var(--mem-mint,#91e4c3);
}
.bar.section-ending {
  background:var(--blue);
  color:var(--white);
}
.bar.section-ending .bar-number,.bar.section-ending .bar-function {
  color:var(--white);
}
.bar.section-loop .bar-function {
  color:var(--ink);
}
.audio-section-tabs {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 16px;
}
.audio-section-tabs button {
  flex:0 1 150px;
  min-width:120px;
  min-height:48px;
  padding:8px 12px;
  border:3px solid var(--ink);
  background:var(--paper);
  color:var(--ink);
  font-weight:900;
  cursor:pointer;
  box-shadow:3px 3px 0 rgba(16,16,16,.18);
}
.audio-section-tabs button span {
  display:inline-grid;
  min-width:24px;
  min-height:24px;
  place-items:center;
  margin-left:6px;
  background:var(--ink);
  color:var(--white);
}
.audio-section-tabs button.active {
  background:var(--yellow);
  transform:translate(-1px,-1px);
  box-shadow:5px 5px 0 var(--ink);
}
.audio-section-tabs button:focus-visible {
  outline:3px solid var(--blue);
  outline-offset:3px;
}
.editor-section-empty {
  grid-column:1/-1;
  margin:0;
  padding:28px 16px;
  border:3px dashed var(--ink);
  background:var(--paper);
  color:var(--ink);
  text-align:center;
  font-weight:800;
}
.chord-builder button:disabled {
  opacity:.45;
  cursor:not-allowed;
}
.audio-source-ranges {
  margin-top:14px;
  padding:14px;
  border:3px solid var(--ink);
  background:var(--yellow);
}
.audio-source-ranges > div:first-child strong,.audio-source-ranges > div:first-child span {
  display:block;
}
.audio-source-ranges > div:first-child span {
  margin-top:4px;
  font-size:11px;
  font-weight:700;
  line-height:1.45;
}
.audio-source-range-fields {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:stretch;
  gap:8px;
  margin-top:12px;
}
.audio-source-range-fields label {
  color:var(--ink);
  font-size:10px;
  font-weight:850;
}
.audio-source-range-fields input {
  width:100%;
  min-height:42px;
  margin-top:5px;
  padding:7px 9px;
  border:3px solid var(--ink);
  background:var(--white);
  color:var(--ink);
  font-weight:900;
}
.audio-source-range-fields small {
  display:block;
  min-height:26px;
  margin-top:4px;
  color:var(--muted);
  line-height:1.35;
}
.audio-source-range-fields button {
  min-height:42px;
  margin-bottom:0;
  padding:7px 11px;
  border:3px solid var(--ink);
  background:var(--blue);
  color:var(--white);
  font-weight:900;
}
.audio-source-ranges > p {
  margin:10px 0 0;
  padding-top:9px;
  border-top:2px dashed var(--ink);
  font-weight:900;
}
.admin-fields label > small {
  display:block;
  margin-top:4px;
  color:var(--muted);
  line-height:1.35;
}
.editor-bar-tools {
  display:flex;
  align-items:end;
  gap:8px;
}
.editor-history-tools {
  display:flex;
  gap:5px;
}
.editor-history-tools button {
  min-width:76px;
  background:var(--white);
}
.editor-history-tools button:disabled {
  opacity:.38;
  cursor:not-allowed;
}
.editor-bar-tools label {
  color:var(--ink);
  font-size:11px;
  font-weight:800;
}
.editor-bar-tools input {
  display:block;
  width:84px;
  min-height:40px;
  margin-top:4px;
  padding:6px 8px;
  border:3px solid var(--ink);
  background:var(--white);
  color:var(--ink);
  font-weight:900;
}
.editor-bar-tools button {
  min-height:40px;
}
.backing-list-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.backing-list-head p {
  margin-bottom:0;
}
.backing-list-head .admin-submit {
  flex:0 0 auto;
  margin:0;
}
.backing-composer {
  margin-top:16px;
  padding-top:16px;
  border-top:3px solid var(--ink);
}
.backing-composer-actions {
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:14px;
}
.backing-composer-actions > button {
  min-height:42px;
  padding:8px 14px;
  border:3px solid var(--ink);
  background:var(--paper);
  color:var(--ink);
  font-weight:900;
}
.backing-composer-actions .admin-submit {
  margin:0;
  background:var(--mem-mint,#91e4c3);
}
.admin-file small {
  display:block;
  margin-top:5px;
  color:var(--ink);
  line-height:1.4;
}
.asset-visibility-note {
  margin-top:5px;
  color:var(--red)!important;
  font-weight:800;
}
.admin-backing-filters {
  display:grid;
  grid-template-columns:minmax(180px,1.4fr) repeat(4,minmax(120px,1fr));
  gap:8px;
  margin:14px 0;
  padding:12px;
  border:3px solid var(--ink);
  background:var(--yellow);
}
.admin-backing-filters[hidden] {
  display:none;
}
.admin-backing-filters label {
  color:var(--ink);
  font-size:10px;
  font-weight:900;
}
.admin-backing-filters input,.admin-backing-filters select {
  width:100%;
  min-height:38px;
  margin-top:4px;
  padding:6px 8px;
  border:2px solid var(--ink);
  background:var(--white);
  color:var(--ink);
}
.admin-asset-tags {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:9px;
}
.admin-asset-axis {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px;
  padding:4px;
  border:2px solid var(--ink);
  background:var(--white);
}
.admin-asset-axis b {
  padding:3px 5px;
  background:var(--ink);
  color:var(--white);
  font-size:9px;
}
.admin-asset-axis em {
  padding:3px 5px;
  background:var(--yellow);
  color:var(--ink);
  font-size:9px;
  font-style:normal;
  font-weight:800;
}
.admin-asset-axis em.missing {
  background:#ded8cc;
  color:#5c554b;
}
@media (max-width:700px) {
  .audio-section-tabs {
    flex-wrap:nowrap;
    gap:5px;
    overflow-x:auto;
    padding:2px 2px 7px;
    scroll-snap-type:x proximity;
  }
  .audio-section-tabs button {
    flex:0 0 112px;
    min-width:112px;
    padding:7px 4px;
    font-size:11px;
    scroll-snap-align:start;
  }
  .editor-bars-head {
    align-items:flex-start;
    flex-direction:column;
    gap:10px;
  }
  .editor-bar-tools {
    width:100%;
  }
  .editor-bar-tools button {
    flex:1;
  }
  .backing-list-head {
    align-items:flex-start;
    flex-direction:column;
  }
  .backing-composer-actions {
    flex-direction:column;
  }
  .backing-composer-actions > button {
    width:100%;
  }
  .audio-source-range-fields,.admin-backing-filters {
    grid-template-columns:1fr;
  }
  .admin-backing-migration {
    grid-template-columns:1fr;
  }
  .admin-migration-actions,
  .admin-migration-actions button {
    width:100%;
  }
  .audio-source-range-fields button {
    margin-bottom:0;
  }
  .audio-source-range-fields small {
    min-height:0;
  }
}
.journey {
  order: 4;
  position: relative;
  margin: 0 0 22px;
  padding: 70px 24px 26px;
  border: var(--window-border);
  border-radius: 0;
  background: var(--white);
  box-shadow: 8px 10px 0 var(--yellow);
}
.journey::before {
  content: "GROOVE SELECTOR";
  background: var(--red);
  color: var(--white);
}
.journey::after {
  color: var(--yellow);
}
.section-heading {
  align-items: start;
}
.section-heading h2 {
  font: 900 34px/1 Impact, sans-serif;
  letter-spacing: .03em;
}
.journey-heading-tools {
  align-items: end;
}
.journey-heading-tools p {
  color: var(--ink);
  font-weight: 650;
}
.source-audit-link {
  color: var(--blue);
  font-weight: 850;
}
.atlas {
  border: 4px solid var(--ink);
  border-radius: 0;
  background: var(--blue);
  box-shadow: 6px 6px 0 var(--ink);
}
.atlas::before {
  opacity: .23;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Ccircle cx='2' cy='2' r='1.4' fill='white'/%3E%3C/svg%3E");
  background-size: 12px 12px;
}
.groove-card,.map-node.active {
  border-radius: 0;
}
.style-panel,.style-dossier {
  border: 4px solid var(--ink);
  border-radius: 0;
  background: var(--yellow);
  box-shadow: 5px 5px 0 var(--ink);
}
.style-panel h3 {
  font-family: Impact, sans-serif;
}
.map-node:hover strong {
  color: var(--yellow);
}
.learning-library {
  order: 6;
  position: relative;
  margin: 0 0 22px;
  padding: 70px 24px 26px;
  border: var(--window-border);
  background: var(--white);
  box-shadow: 10px 10px 0 var(--blue);
}
.learning-library::before {
  content: "LEARNING LIBRARY";
  background: var(--yellow);
}
.learning-library::after {
  color: var(--red);
}
.library-window-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 16px;
}
.window-kicker {
  display: block;
  margin: 0 0 7px;
  color: var(--red);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
}
.learning-library h2,.practice-window h2,.notes-window h2 {
  max-width: 650px;
  margin: 0;
  font: 900 clamp(28px, 3.7vw, 48px)/.95 Impact, sans-serif;
  letter-spacing: .035em;
}
.library-search {
  min-width: min(100%, 300px);
}
.library-search input {
  width: 100%;
  min-height: 48px;
  border: 3px solid var(--ink);
  background: var(--paper);
  padding: 9px 12px;
  color: var(--ink);
  font-weight: 700;
}
.library-search input::placeholder {
  color: #595247;
  opacity: 1;
}
.library-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 14px;
}
.library-filters button,.library-filters select {
  min-height: 34px;
  border: 3px solid var(--ink);
  background: var(--white);
  color: var(--ink);
  padding: 4px 10px;
  font-size: 12px;
  font-weight: 850;
}
.library-filters button:hover,.library-filters button.active {
  background: var(--red);
  color: var(--white);
}
.library-card-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.library-card {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 10px;
  min-height: 190px;
  padding: 14px;
  border: 3px solid var(--ink);
  background: var(--paper);
  box-shadow: 4px 5px 0 var(--ink);
}
.library-card:nth-child(2n) {
  background: var(--yellow);
}
.library-card:nth-child(3n) {
  background: var(--blue);
  color: var(--white);
}
.library-card small {
  font-size: 10px;
  font-weight: 900;
}
.library-card h3 {
  margin: 5px 0 8px;
  font: 900 23px/.95 Impact, sans-serif;
  letter-spacing: .035em;
}
.library-card p {
  margin: 0;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.5;
}
.library-index {
  font: 900 20px/1 Impact, sans-serif;
}
.bookmark-button {
  align-self: start;
  border: 2px solid var(--ink);
  background: var(--white);
  color: var(--ink);
  font-size: 21px;
  line-height: 1;
}
.bookmark-button:hover,.bookmark-button[aria-pressed="true"] {
  background: var(--red);
  color: var(--white);
}
.library-empty {
  margin: 16px 0 0;
  padding: 12px;
  border: 3px dashed var(--ink);
  font-weight: 750;
}
.practice-notes-grid {
  order: 7;
  display: grid;
  grid-template-columns: 1.4fr .85fr;
  gap: 18px;
  margin: 0 0 26px;
}
.practice-window,.notes-window {
  position: relative;
  overflow: hidden;
  border: var(--window-border);
  background: var(--white);
  box-shadow: var(--shadow);
}
.practice-window {
  background: var(--red);
  color: var(--white);
}
.notes-window {
  background: var(--yellow);
}
.mini-window-bar {
  position: relative;
  display: flex;
  align-items: center;
  gap: 5px;
  min-height: 42px;
  padding: 0 14px;
  border-bottom: 3px solid var(--ink);
  background: var(--paper);
  color: var(--ink);
}
.mini-window-bar span {
  width: 10px;
  height: 10px;
  border: 2px solid var(--ink);
  border-radius: 50%;
  background: var(--red);
}
.mini-window-bar span:nth-child(2) {
  background: var(--yellow);
}
.mini-window-bar span:nth-child(3) {
  background: var(--blue);
}
.mini-window-bar strong {
  margin-left: 8px;
  font: 900 14px/1 Impact, sans-serif;
  letter-spacing: .07em;
}
.practice-body,.notes-body {
  padding: 24px;
}
.practice-body .window-kicker {
  color: var(--yellow);
}
.practice-window h2 {
  color: var(--white);
}
.practice-window p,.notes-window p {
  max-width: 52ch;
  margin: 12px 0 0;
  font-weight: 700;
  line-height: 1.55;
}
.practice-meter {
  height: 18px;
  margin: 24px 0 14px;
  border: 3px solid var(--ink);
  background: var(--white);
}
.practice-meter span {
  display: block;
  height: 100%;
  background: var(--yellow);
}
.practice-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.practice-badge {
  border: 2px solid var(--ink);
  background: var(--blue);
  color: var(--white);
  padding: 5px 8px;
  font-size: 11px;
  font-weight: 900;
}
.notes-window a {
  display: inline-block;
  margin-top: 22px;
  border: 3px solid var(--ink);
  background: var(--white);
  color: var(--ink);
  padding: 9px 11px;
  font-weight: 900;
  text-decoration: none;
  box-shadow: 3px 3px 0 var(--ink);
}
.notes-window a:hover {
  background: var(--blue);
  color: var(--white);
}
.product-pillars {
  display: none;
}
.atlas-inner::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cpath d='M0 .5H40M.5 0V40' stroke='%23fff' stroke-opacity='.42' stroke-width='1'/%3E%3C/svg%3E");
  background-size: 40px 40px;
}
footer {
  max-width: 1440px;
  margin: 0 auto 24px;
  padding: 14px 18px;
  border: 4px solid var(--ink);
  background: var(--ink);
  color: var(--white);
  font-weight: 750;
}
footer a {
  color: var(--yellow);
}
@media (prefers-reduced-motion: no-preference) {
  .arrangement,.journey,.backing-library,.learning-library,.practice-window,.notes-window {
    animation: window-arrive .42s cubic-bezier(.16,1,.3,1) both;
  }
  .library-card,.bar,.primary-link,.notes-window a {
    transition: transform .16s ease, background-color .16s ease, color .16s ease, box-shadow .16s ease;
  }
  .library-card:hover {
    transform: translate(-2px,-3px) rotate(-.4deg);
  }
}
@keyframes window-arrive {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}
@media (max-width: 980px) {
  .topbar {
    flex-wrap: wrap;
    gap: 12px;
  }
  .main-nav {
    order: 3;
    width: 100%;
    overflow-x: auto;
  }
  .library-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .hero {
    align-items: start;
  }
  .now-playing {
    min-width: 220px;
  }
}
@media (max-width: 700px) {
  .app-shell {
    padding: 10px 10px 36px;
  }
  .topbar {
    padding: 9px;
  }
  .topbar-actions {
    margin-left: auto;
  }
  .session-status {
    display: none;
  }
  .main-nav a {
    white-space: nowrap;
  }
  .hero {
    display: block;
    min-height: 0;
    margin: 16px 0;
    padding: 24px 18px 18px;
  }
  .hero::after {
    display: none;
  }
  .hero h1 {
    max-width: 420px;
    font-size: clamp(44px, 15vw, 62px);
  }
  .lede {
    font-size: 14px;
  }
  .now-playing {
    width: min(100%, 300px);
    margin: 22px 0 0;
  }
  .arrangement,.journey,.backing-library,.learning-library {
    padding: 62px 14px 18px;
  }
  .arrangement {
    box-shadow: 7px 8px 0 var(--red);
  }
  .arrangement-title,.section-heading,.library-window-head {
    display: block;
  }
  .arrangement-actions,.journey-heading-tools {
    margin-top: 12px;
    align-items: start;
  }
  .timeline {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap:4px;
  }
  .bar {
    height:68px;
    padding:6px;
  }
  .bar-chord {
    margin-top:6px;
    font-size:18px;
  }
  .bar-number,.bar-function {
    font-size:9px;
  }
  .mixer-table-head {
    display: none;
  }
  .mixer-channel {
    grid-template-columns: minmax(118px,1fr) 30px 30px minmax(80px,1fr);
  }
  .pan-slider {
    display: none;
  }
  .journey-layout {
    display: block;
  }
  .atlas {
    min-height: 300px;
  }
  .style-panel {
    min-height: 0;
    margin-top: 14px;
  }
  .library-search {
    display: block;
    margin-top: 16px;
  }
  .library-card-grid,.practice-notes-grid {
    grid-template-columns: 1fr;
  }
  .library-card {
    min-height: 150px;
  }
  .practice-notes-grid {
    gap: 14px;
  }
  .guitar-source-control {
    display: grid;
  }
  .guitar-source-control select {
    min-width: 0;
  }
  .drum-piece-grid {
    padding: 12px;
  }
}
