/* styles.css — GoldFirebird-ish: minimal, white, black, uppercase, thin borders */

/* ============================================================
   TOKENS
   ============================================================ */
:root{
  --bg:#fff;
  --text:#0f0f0f;
  --muted:#4b4b4b;
  --line:rgba(0,0,0,.18);
  --line-strong:rgba(0,0,0,.55);
  --chip:rgba(0,0,0,.08);
}

html,body{height:100%;}

body{
  background:var(--bg);
  color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

/* ============================================================
   TOP BAR
   ============================================================ */
.navbar{
  background:#fff !important;
  backdrop-filter:none !important;
}
.navbar.border-bottom{
  border-bottom:1px solid var(--line) !important;
}
.navbar .navbar-brand{
  color:var(--text) !important;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:700;
  font-size:1rem;
}

.brand-logo{
  height:72px;
  width:auto;
  display:block;
}
.brand-text{
  display:flex;
  flex-direction:column;
  line-height:1.05;
}
.brand-main{
  text-transform:uppercase;
  letter-spacing:.10em;
  font-weight:1000;
}
.brand-sub{
  text-transform:uppercase;
  letter-spacing:.10em;
  font-weight:700;
  font-size:.72rem;
  opacity:.75;
  margin-top:2px;
}

/* top-right page links */
.nav-link-lite{
  border:1px solid #000;
  padding:6px 10px;
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.10em;
  font-weight:800;
  font-size:.70rem;
  background:#fff;
  color:#000;
}
.nav-link-lite:hover{
  background:#000;
  color:#fff;
}
.nav-link-lite.active{
  background:#000;
  color:#fff;
}

.nav-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  color:#000;
  text-decoration:none;
}
.nav-icon:hover{background:rgba(0,0,0,.06);}
.nav-icon svg{
  fill:currentColor;
  width:40px;
  height:40px;
}

/* Mobile + small tablets: center the Home/Releases/IG group */
@media (max-width: 768px){
  .navbar .container{
    justify-content:center !important;
  }
  .navbar .ms-auto.d-flex{
    margin-left:0 !important;
    width:100%;
    justify-content:center !important;
    flex-wrap:wrap;
  }
}

/* ============================================================
   TYPO
   ============================================================ */
h1,h2,h3,h4,h5{
  color:var(--text);
  text-transform:uppercase;
  letter-spacing:.10em;
}
#subline,#alumniSubline,.text-secondary{
  color:var(--muted) !important;
}

/* ============================================================
   STATEMENT BLOCK
   ============================================================ */
.gfb-statement{
  max-width:100%;
  margin:10px auto 22px auto;
  padding:14px 16px;
  border:1px solid #000;
  border-radius:14px;
  overflow:hidden;
  background:#fff;
  text-align:center;
}
.gfb-statement p{
  margin:0;
  text-align:left;
  color:rgba(0,0,0,.78);
  line-height:1.55;
  font-size:.98rem;
}
.gfb-statement strong{
  color:rgba(0,0,0,.92);
  letter-spacing:.08em;
  text-transform:uppercase;
}

/* ============================================================
   CONTROLS
   ============================================================ */
.input-group-text{
  background:#fff !important;
  color:var(--text) !important;
  border:1px solid var(--line-strong) !important;
  text-transform:uppercase;
  letter-spacing:.10em;
  font-size:.50rem;
  font-weight:700;
}
.form-control,.form-select{
  background:#fff !important;
  color:var(--text) !important;
  border:1px solid var(--line-strong) !important;
  box-shadow:none !important;
}
.form-control::placeholder{
  color:rgba(0,0,0,.35) !important;
}
/* a bit narrower */
.hunts-controls .input-group,
.d-flex.flex-wrap.gap-2 .input-group{
  width:260px;
}

/* ============================================================
   CARDS PANEL + TILES
   ============================================================ */
.cards-panel{
  background: rgba(245,245,245,.45);
  border: 1px solid rgba(0,0,0,.18);
  border-radius: 14px;
  overflow: hidden;
  padding: 14px;
  margin-top: 12px;
  width: 100%;
}

.card{
  background:rgba(255,255,255,.30) !important;
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  border:1px solid var(--line-strong) !important;
  border-radius:14px;
  overflow:hidden;
  transition:transform .12s ease, background .12s ease;
}
.card:hover{
  transform:translateY(-2px);
  background:rgba(0,0,0,.01) !important;
}

/* Artist + Release images (non-strip) */
.card-img-top,
.release-img{
  width:100%;
  aspect-ratio:1 / 1;
  object-fit:cover;
  background:#f3f3f3;
  border-bottom:1px solid var(--line);
}

/* Force black text in cards */
.card,
.card-body,
.card-title,
.card-text,
.card ul,
.card li{
  color:var(--text) !important;
}

.card-title{
  text-transform:uppercase;
  letter-spacing:.10em;
  font-weight:800;
  font-size:.95rem;
  margin:0;
  line-height:1.05;
}

/* ============================================================
   HEADBAR (ARTISTS PAGE CARDS)
   Single definition — no duplicate overrides
   ============================================================ */
.card-headbar{
  min-height:86px;
  display:flex;
  align-items:center;
  background:rgba(0,0,0,.85);
  padding:8px 14px;
  margin:-1rem -1rem .75rem -1rem;
}
.card-headbar > .d-flex{
  width:100%;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:14px !important;
  min-height:64px;
}
.card-headbar .card-title,
.card-headbar .badge{
  color:#fff !important;
  border-color:rgba(255,255,255,.75) !important;
}

/* Title: allow up to 2 lines (webkit) + FF fallback */
.card-headbar .card-title{
  flex:1 1 auto !important;
  min-width:0 !important;
  margin:0 !important;
  line-height:1.12;

  white-space:normal !important;
  overflow:hidden !important;
  overflow-wrap:anywhere;

  /* Firefox fallback */
  max-height: calc(1.12em * 2);
}
@supports (-webkit-line-clamp: 1){
  .card-headbar .card-title{
    max-height:none;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }
}

/* Badge: stable, smaller */
.card-headbar .badge.text-bg-secondary{
  flex:0 0 auto !important;
  white-space:nowrap !important;
  background:#fff !important;
  color:var(--text) !important;
  border:1px solid var(--line-strong) !important;
  border-radius:0 !important;
  text-transform:uppercase;
  letter-spacing:.10em;
  font-size:.38rem !important;
  padding:.27rem .42rem !important;
  line-height:1;
  max-width:210px;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* ============================================================
   BULLETS
   ============================================================ */
.card ul{
  margin-top:.64rem !important;
  font-size:.70rem;
  font-weight:600;
}
.card li.small{
  color:rgba(0,0,0,.72) !important;
  line-height:1.35;
}

/* ============================================================
   LINK CHIPS
   ============================================================ */
.card-links{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding-top:10px;
}
.link-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 10px;
  border:1px solid #000;
  background:rgba(255,255,255,.65);
  color:#000;
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.10em;
  font-weight:800;
  font-size:.70rem;
  cursor:pointer;
}
.link-chip:hover{background:rgba(0,0,0,.06);}

button.link-chip{
  appearance:none;
  -webkit-appearance:none;
  border:1px solid #000;
  background:rgba(255,255,255,.65);
}
button.link-chip:hover{background:rgba(0,0,0,.06);}

/* PLAY button only */
button.link-chip.play-chip{
  background:#000;
  color:#fff;
  border-color:#000;
}
button.link-chip.play-chip:hover{
  background:rgba(0,0,0,.85);
  color:#fff;
}
button.link-chip.play-chip::after{
  content:" ▶";
  margin-left:10px;
  font-size:.90em;
}

.card-links-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:10px 12px;
  padding-top:10px;
}
.card-links-grid .link-chip{
  width:100%;
  justify-content:center;
}

/* Keep "text-reset" links from changing look */
a.text-reset{color:inherit !important;}
a.text-reset:hover{text-decoration:none !important;}

/* ============================================================
   RELEASES COMMON (modal + misc)
   ============================================================ */
.release-playwrap{
  display:flex;
  justify-content:center;
  margin-top:6px;
  margin-bottom:10px;
}
.release-playwrap .link-chip{
  min-width:120px;
}
.release-datewrap{
  text-align:center;
  margin-top:2px;
}
.release-date-label{
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.10em;
  font-size:.72rem;
  margin-bottom:4px;
  color:rgba(0,0,0,.55);
}
.release-meta-line{
  color:rgba(0,0,0,.65);
  font-size:.85rem;
}
.release-blurb{
  color:rgba(0,0,0,.75);
  margin-top:10px;
  line-height:1.08;
  font-size:.74rem;
}
.release-blurb br + br{
  display:block;
  margin-top:2px;
}
.release-blurb p{margin:0;}

.gfb-modal{
  border-radius:14px;
  border:1px solid var(--line);
}

/* ============================================================
   FOOTER
   ============================================================ */
.gfb-footer{
  border-top:1px solid var(--line);
  background:#fff;
  margin-top:40px;
  padding:18px 0;
}
.gfb-footer-inner{
  color:rgba(0,0,0,.70);
  text-transform:uppercase;
  letter-spacing:.10em;
  font-weight:700;
  font-size:.78rem;
  text-align:center;
}

/* ============================================================
   DEBUG / DETAILS
   ============================================================ */
.debug{
  background:#fff !important;
  border:1px solid var(--line) !important;
  border-radius:0 !important;
  padding:12px;
  max-height:320px;
  overflow:auto;
  color:rgba(0,0,0,.85) !important;
  font-size:12px;
}
details>summary{
  cursor:pointer;
  text-transform:uppercase;
  letter-spacing:.10em;
  font-weight:700;
  color:var(--muted) !important;
}
.alert{border-radius:0 !important;}

.releasesGrid{
  width:100%;
}

/* ============================================================
   RELEASE STRIP (paste once at bottom of styles.css)
   Matches releases.js markup:
   .release-strip > .release-strip-art + .release-strip-body
   ============================================================ */

.release-strip-card{
  border:1px solid var(--line-strong);
  border-radius:14px;
  overflow:hidden;
  background:rgba(0,0,0,.10);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  transition:transform .12s ease, background .12s ease;
}
.release-strip-card:hover{
  transform:translateY(-2px);
  background:rgba(0,0,0,.12);
}

/* main strip row */
.release-strip{
  display:flex;
  flex-direction:row;
  align-items:stretch;   /* make both sides same height */
  gap:0;
}

.release-strip-titlewrap{
  min-width:0;
}

.release-strip-byline{
  margin-top:6px;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:none;
  color: rgba(0,0,0,.70);
}

.release-strip-byline::first-letter{
  text-transform:lowercase;
}

/* LEFT COLUMN: black background behind artwork */
.release-strip-art{
  background:#000;
  flex:0 0 140px;        /* width */
  width:140px;
  height:140px;          /* height (drives strip height) */
  display:flex;
  align-items:center;
  justify-content:center;
  border-right:1px solid var(--line);
}

/* artwork itself */
.release-strip-img{
  width:140px;
  height:140px;
  object-fit:cover;
  display:block;
  background:transparent;
}

/* RIGHT: content */
.release-strip-body{
  flex:1 1 auto;
  height:140px;          /* match art height */
  padding:12px 14px;
  display:flex;
  flex-direction:column;
  min-width:0;
  overflow:hidden;       /* prevent strip from growing taller */
}

/* top row: title + play button */
.release-strip-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin:0;
  padding:0;
}

/* title clamp */
.release-strip-title{
  margin:0;
  text-transform:uppercase;
  letter-spacing:.10em;
  font-weight:800;
  font-size:.95rem;
  line-height:1.10;
  min-width:0;

  overflow:hidden;
  overflow-wrap:anywhere;

  /* Firefox fallback clamp */
  max-height: calc(1.10em * 2);
}

/* WebKit clamp when supported */
@supports (-webkit-line-clamp: 1){
  .release-strip-title{
    max-height:none;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }
}

/* mid row: artist + date */
.release-strip-mid{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-top:6px;
}

/* artist badge */
.release-strip-artist{
  flex:0 0 auto;
  border:1px solid var(--line-strong);
  background:#fff;
  color:var(--text);
  text-transform:uppercase;
  letter-spacing:.10em;
  font-weight:800;
  font-size:.70rem;
  padding:.20rem .65rem;
  line-height:1;
  margin:0;
  border-radius:0;
  max-width:220px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* play wrap is in top row right */
.release-strip .release-playwrap{
  margin:0;
  justify-content:flex-end;
  display:flex;
}

/* date compact */
.release-strip .release-datewrap{
  text-align:right;
  margin:0;
}
.release-strip .release-date-label{
  font-size:.62rem;
  margin:0 0 2px 0;
}
.release-strip .release-meta-line{
  font-size:.82rem;
}

/* blurb + meta */
.release-strip .release-blurb{
  margin-top:6px;
  font-size:.72rem;
  line-height:1.12;
}
.release-meta-extra{
  margin-top:6px;
  font-size:.62rem;
  line-height:1.20;
  color: rgba(0,0,0,.75);
}
.release-meta-extra strong{
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}

/* links pinned to bottom */
.release-strip-footer{
  margin-top:auto;
}
.release-strip .card-links{
  padding-top:8px;
}

/* S: allow more title lines + slightly smaller */
@media (max-width: 768px){
  .release-strip-title{
    font-size:.90rem;
    max-height: calc(1.10em * 3);
  }
  @supports (-webkit-line-clamp: 1){
    .release-strip-title{ -webkit-line-clamp:3; }
  }
}

/* XS: smaller art/strip but KEEP horizontal */
@media (max-width: 576px){
  .release-strip-art{
    width:110px;
    flex-basis:110px;
    height:110px;
  }
  .release-strip-img{
    width:110px;
    height:110px;
  }
  .release-strip-body{
    height:110px;
    padding:10px 12px;
  }

  .release-strip-title{
    font-size:.84rem;
    max-height: calc(1.10em * 3);
  }
  @supports (-webkit-line-clamp: 1){
    .release-strip-title{ -webkit-line-clamp:3; }
  }

  .release-strip-mid{ margin-top:4px; }
  .release-meta-extra{
    font-size:.60rem;
    line-height:1.18;
  }
}

/* ============================================================
   RELEASE STRIP: tighten meta ONLY on S + XS (no desktop changes)
   paste at VERY bottom
   ============================================================ */

/* S (<=768): slightly smaller meta + tighter spacing */
@media (max-width: 768px){
  .release-strip-body{ padding:10px 12px !important; }

  .release-strip .release-date-label{ font-size:.58rem !important; }
  .release-strip .release-meta-line{ font-size:.78rem !important; }

  .release-strip-artist{ font-size:.64rem !important; padding:.18rem .55rem !important; }

  .release-strip .release-blurb{
    font-size:.66rem !important;
    line-height:1.12 !important;
    margin-top:4px !important;
  }

  .release-meta-extra{
    font-size:.60rem !important;
    line-height:1.14 !important;
    margin-top:4px !important;

    /* prevent it from pushing/cutting off other content */
    overflow:hidden !important;
    display:-webkit-box !important;
    -webkit-box-orient:vertical !important;
    -webkit-line-clamp:2 !important;
  }

  .release-strip .card-links{ padding-top:6px !important; }
}

/* XS (<=576): smaller + clamp more aggressively */
@media (max-width: 576px){
  .release-strip-body{ padding:8px 10px !important; }

  .release-strip .release-date-label{ font-size:.54rem !important; }
  .release-strip .release-meta-line{ font-size:.74rem !important; }

  .release-strip-artist{ font-size:.62rem !important; padding:.16rem .50rem !important; }

  .release-strip .release-blurb{
    font-size:.62rem !important;
    line-height:1.10 !important;
    margin-top:3px !important;

    /* optional: keep blurb from eating the strip */
    overflow:hidden !important;
    display:-webkit-box !important;
    -webkit-box-orient:vertical !important;
    -webkit-line-clamp:1 !important;
  }

  .release-meta-extra{
    font-size:.58rem !important;
    line-height:1.12 !important;
    margin-top:3px !important;

    overflow:hidden !important;
    display:-webkit-box !important;
    -webkit-box-orient:vertical !important;
    -webkit-line-clamp:1 !important;
  }

  .release-strip .card-links{ padding-top:5px !important; }
}

/* Credits badge under artist */
.release-strip-leftstack{
  display:flex;
  flex-direction:column;
  gap:6px;
  align-items:flex-start;
}

/* “Credits (click)” chip */
button.link-chip.credits-chip{
  background:#fff;
  color:#000;
  border:1px solid var(--line-strong);
  font-size:.62rem;
  padding:5px 10px;
  line-height:1;
}
button.link-chip.credits-chip:hover{
  background:rgba(0,0,0,.06);
}

/* Make credits modal look like your site */
#creditsBody{
  font-size:.90rem;
  line-height:1.35;
}
#creditsBody strong{
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}

/* Hide inline credits on S + XS so strips don’t overflow */
@media (max-width: 768px){
  .release-meta-extra{ display:none !important; }
}

/* ============================================================
   PLAY SQUARE — PINNED TO FAR RIGHT (single source of truth)
   Replace all previous "PLAY SQUARE" blocks with this one.
   ============================================================ */

/* card + strip baseline */
.release-strip-card{
  position:relative !important;
  overflow:hidden !important;
}

/* reserve room for the pinned play square */
.release-strip{
  position:relative !important;
  align-items:stretch !important;
  padding-right:140px !important;   /* space for right square */
}

/* right play column pinned to the far-right edge */
.release-strip-right{
  position:absolute !important;
  top:0 !important;
  right:0 !important;
  width:140px !important;
  height:140px !important;
  background:#000 !important;
  border-left:1px solid var(--line) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  z-index:2 !important;
}

/* make button fill square + center text */
.release-strip-right .play-square{
  width:100% !important;
  height:100% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  padding:0 !important;

  color:#fff !important;
  text-transform:uppercase !important;
  letter-spacing:.12em !important;
  font-weight:900 !important;
  font-size:.95rem !important;
}

/* keep triangle spacing */
.release-strip-right .play-square::after{
  margin-left:10px !important;
}

/* XS: match 110px artwork */
@media (max-width: 576px){
  .release-strip{ padding-right:110px !important; }
  .release-strip-right{
    width:110px !important;
    height:110px !important;
  }
  .release-strip-right .play-square{
    font-size:.82rem !important;
  }
}

/* Smaller "Release Date: ..." line */
.release-date-inline{
  font-size: .52rem !important;
  letter-spacing: .10em !important;
  text-transform: uppercase;
  font-weight: 800;
  color: rgba(0,0,0,.60);
  line-height: 1.15;
}

.release-date-inline span{
  color: rgba(0,0,0,.80);
}

/* XS: slightly smaller */
@media (max-width: 576px){
  .release-date-inline{ font-size: .52rem !important; }
}

/* Pin Release Date to the bottom of the middle content area */
.release-strip-body{
  display:flex !important;
  flex-direction:column !important;
}

.release-date-inline{
  margin-top:auto !important;   /* pushes it to bottom */
  padding-top:8px !important;   /* a little separation */
}

.release-strip-right,
.release-playwrap-square { cursor: pointer; }