/* Real catalogue artwork; gentle motion respects visibility and the shared pause control. */
.bb-genres {
  --g-bg:#061226; --g-panel:#0b192e; --g-stage:#101f35; --g-window:#182940;
  --g-ink:#fff; --g-muted:#a9b4c5; --g-line:#ffffff18; --g-soft:#ffffff0b;
  --g-art-line:#8092a94d; --g-accent:#ea720f; --g-tint:#ea720f24;
  position:relative; padding:100px 24px 88px; background:var(--g-bg); color:var(--g-ink); font-family:var(--font);
}
html.light .bb-genres {
  --g-bg:#fff; --g-panel:#fff; --g-stage:#f6f7f8; --g-window:#fff; --g-ink:#061226;
  --g-muted:#656d79; --g-line:#06122614; --g-soft:#06122606; --g-art-line:#06122620; --g-tint:#ea720f16;
}
.bb-genres .bb-genres-inner { width:100%; max-width:1300px; min-width:0; margin-inline:auto; }
.bb-genres-heading { max-width:780px; margin:0 auto 52px; text-align:center; }
.bb-genres-eyebrow { display:block; margin-bottom:20px; color:var(--g-accent); font-size:12px; font-weight:700; letter-spacing:.12em; }
.bb-genres-heading h2 { margin:0; font:500 clamp(32px,4vw,48px)/1.15 var(--font); letter-spacing:-.045em; text-wrap:balance; }
.bb-genres-heading h2 > span { color:var(--g-muted); }
.bb-genres-heading > p { max-width:600px; margin:20px auto 0; color:var(--g-muted); font-size:18px; line-height:1.6; text-wrap:pretty; }
.bb-genres-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); overflow:hidden; border:1px solid var(--g-line); border-radius:18px; background:var(--g-panel); }
.bb-genre-card { min-width:0; padding:28px; border-right:1px solid var(--g-line); border-bottom:1px solid var(--g-line); }
.bb-genre-card:nth-child(3n) { border-right:0; }
.bb-genre-card:nth-last-child(-n+3) { border-bottom:0; }
.bb-genre-number { display:block; color:var(--g-muted); font-size:13px; font-weight:500; font-variant-numeric:tabular-nums; margin-bottom:20px; }
.bb-genre-card h3 { margin:0 0 10px; font:600 24px/1.25 var(--font); letter-spacing:-.035em; text-wrap:balance; }
.bb-genre-card > p { min-height:76px; margin:0; color:var(--g-muted); font-size:16px; line-height:1.55; text-wrap:pretty; }
.bb-genre-links { display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:18px; }
.bb-genre-links a { display:inline-flex; align-items:center; gap:5px; min-height:28px; color:var(--g-muted); font-size:12px; font-weight:600; text-decoration:none; }
.bb-genre-links svg,.bb-genres-cta svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.5; transition:transform .2s ease-out; }
.bb-genre-links a:hover { color:var(--g-accent); }
.bb-genre-links a:hover svg,.bb-genres-cta:hover svg { transform:translateX(3px); }
.bb-genre-links a:focus-visible,.bb-genres-cta:focus-visible { outline:2px solid var(--g-accent); outline-offset:5px; border-radius:2px; }
.bb-genres-footer { margin:40px auto 0; text-align:center; }
.bb-genres-cta { display:inline-flex; align-items:center; justify-content:center; gap:14px; padding:15px 24px; border-radius:6px; background:var(--g-accent); color:#061226; font-size:16px; font-weight:700; text-decoration:none; }
.bb-genres-footer p { margin:20px 0 0; color:var(--g-muted); font-size:13px; line-height:1.7; text-wrap:balance; }
.bb-genre-art { position:relative; height:220px; margin:22px 0 0; overflow:hidden; isolation:isolate; border:1px solid var(--g-line); border-radius:12px; background:var(--g-stage); }
.bb-genre-art::after { content:""; position:absolute; inset:40% 0 0; background:linear-gradient(transparent,#000000a8); pointer-events:none; }
.bb-genre-art > img { display:block; width:100%; height:100%; object-fit:cover; animation:bb-genre-drift 16s ease-in-out infinite alternate; }
.bb-genre-card:nth-child(2n) .bb-genre-art > img { animation-direction:alternate-reverse; }
.bb-genre-art figcaption { position:absolute; z-index:1; inset:auto 18px 16px; color:#fff; font:600 17px/1.3 var(--font); letter-spacing:-.02em; text-shadow:0 1px 8px #0009; }
.bb-genre-credit { position:absolute; z-index:1; inset:8px 8px auto; display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:0 8px; padding:0 8px; border-radius:6px; background:#061226d9; color:#fff; font:400 10px/1.2 var(--font); }
.bb-genre-credit a { display:inline-flex; align-items:center; min-height:44px; color:inherit; text-decoration:underline; text-underline-offset:3px; }
.bb-genre-credit a:focus-visible { outline:2px solid #fff; outline-offset:2px; }
@keyframes bb-genre-drift { from { transform:scale(1); } to { transform:scale(1.055); } }
.bb-genres:not(.bb-motion-active) .bb-genre-art > img,.bb-motion-paused .bb-genre-art > img { animation-play-state:paused !important; }
@media (min-width:901px) { .bb-genre-card { display:grid; grid-template-rows:subgrid; grid-row:span 5; row-gap:0; } }
@media (max-width:1100px) and (min-width:901px) {
  .bb-genre-card { padding:24px 20px; } .bb-genre-card h3 { font-size:22px; }
}
@media (max-width:900px) {
  .bb-genres { padding:76px 24px 68px; }
  .bb-genres-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bb-genre-card { padding:24px; }
  .bb-genre-card:nth-child(3n) { border-right:1px solid var(--g-line); }
  .bb-genre-card:nth-child(2n) { border-right:0; }
  .bb-genre-card:nth-last-child(-n+3) { border-bottom:1px solid var(--g-line); }
  .bb-genre-card:nth-last-child(-n+2) { border-bottom:0; }
  .bb-genre-card h3 { min-height:60px; } .bb-genre-card > p { min-height:100px; }
  .bb-genre-art { margin-top:16px; }
}
@media (max-width:600px) {
  .bb-genres { padding:64px 20px 56px; } .bb-genres-heading { margin-bottom:32px; }
  .bb-genres-eyebrow { font-size:10px; margin-bottom:16px; } .bb-genres-heading > p { font-size:16px; }
  .bb-genres-grid { grid-template-columns:minmax(0,1fr); max-width:420px; margin-inline:auto; border-radius:14px; }
  .bb-genre-card { padding:24px; }
  .bb-genre-card:nth-child(n) { border-right:0; border-bottom:1px solid var(--g-line); }
  .bb-genre-card:last-child { border-bottom:0; }
  .bb-genre-number { margin-bottom:14px; } .bb-genre-card h3 { min-height:0; font-size:24px; }
  .bb-genre-card > p { min-height:0; } .bb-genre-art { margin-top:22px; }
  .bb-genre-links { gap:4px 16px; } .bb-genre-links a { min-height:36px; } .bb-genres-footer { margin-top:30px; }
}
@media (max-width:359px) {
  .bb-genres { padding-inline:16px; } .bb-genre-card { padding:20px 16px; }
  .bb-genre-art { height:200px; }
}
@media (prefers-reduced-motion:reduce) { .bb-genres *,.bb-genres *::before,.bb-genres *::after { animation:none !important; transition:none !important; } }
