/* ================= RESET ================= */
*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

html, body{
  width:100%;
}

body{
  background:#000000; /* PURE BLACK LOCKED */
  color:#ffffff;
  font-family: Arial, Helvetica, sans-serif;
}

/* ================= NAV ================= */

.nav{
  position: sticky;
  top: 0;
  z-index: 999;
  background: #000000;
  border-top: 1px solid rgba(255,255,255,0.08);
  border-left: 1px solid rgba(255,255,255,0.08);
  border-right: 1px solid rgba(255,255,255,0.08);
}

/* red glow band */
.nav-glow{
  position:absolute;
  inset:0;
  background:
    radial-gradient(60% 180% at 50% 60%,
      rgba(200,0,0,0.55) 0%,
      rgba(200,0,0,0.2) 35%,
      rgba(0,0,0,0) 65%);
  pointer-events:none;
}

.nav-inner{
  position: relative;
  max-width: 1400px;
  margin: 0 auto;
  padding: 20px 24px;
  display:grid;
  grid-template-columns: 1fr auto 1fr;
  align-items:center;
}

/* Desktop groups */
.nav-group{
  display:flex;
  gap:42px;
}

.nav-left{ justify-content:flex-start; }
.nav-right{ justify-content:flex-end; }

.nav-link{
  text-decoration:none;
  color:#e6e6e6;
  font-size:14px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.nav-link:hover{ color:#ffffff; }

/* Brand */
.nav-brand{
  text-decoration:none;
  color:#ffffff;
  font-size:15px;
  font-weight:900;
  letter-spacing:.22em;
  text-transform:uppercase;
}

/* bottom red line */
.nav-bottom-line{
  height:2px;
  background: linear-gradient(
    90deg,
    rgba(0,0,0,0),
    rgba(255,0,0,0.7),
    rgba(0,0,0,0)
  );
  opacity:0.6;
}

/* ================= MOBILE ================= */

.nav-toggle{
  display:none;
  background:none;
  border:none;
  cursor:pointer;
}

.nav-toggle span{
  display:block;
  width:22px;
  height:2px;
  background:#ffffff;
  margin:6px 0;
}

.mobile-menu{
  display:none;
  flex-direction:column;
  padding:20px;
  background:#000000;
  border-top:1px solid rgba(255,255,255,0.08);
}

.mobile-menu a{
  text-decoration:none;
  color:#ffffff;
  padding:14px 0;
  font-weight:800;
  text-transform:uppercase;
  border-bottom:1px solid rgba(255,255,255,0.05);
}

.mobile-menu.active{ display:flex; }

/* ================= RESPONSIVE ================= */

@media (max-width: 820px){
  .nav-inner{
    grid-template-columns: 1fr auto;
  }

  .nav-group{ display:none; }

  .nav-brand{
    justify-self:start;
    font-size:16px;
    letter-spacing:.18em;
  }

  .nav-toggle{
    display:block;
    justify-self:end;
  }
}

/* ================= HERO BANNER (LIKE REFERENCE) ================= */

.heroBanner{
  position:relative;
  height: clamp(520px, 78vh, 820px);
  overflow:hidden;
  background:#000;
}

/* background image layer */
.heroBanner__media{
  position:absolute;
  inset:0;
  background-image:
    radial-gradient(70% 120% at 55% 40%, rgba(255,0,0,.20), rgba(0,0,0,0) 60%),
    linear-gradient(rgba(0,0,0,.35), rgba(0,0,0,.30)),
    url("../img/photos/hero.png");
  background-size:cover;
  background-position:center;
  transform:scale(1.02);
  filter: contrast(1.05) saturate(1.05);
}

/* subtle vignette like screenshot */
.heroBanner::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(55% 70% at 50% 35%, rgba(0,0,0,0) 0%, rgba(0,0,0,.65) 70%),
    linear-gradient(rgba(0,0,0,.2), rgba(0,0,0,.6));
  pointer-events:none;
}

.heroBanner__content{
  position:relative;
  height:100%;
  max-width:1400px;
  margin:0 auto;
  padding:0 22px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  z-index:2;
}

/* NEW DROP pill */
.heroBanner__pill{
  display:inline-block;
  padding:6px 12px;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(0,0,0,.45);
  font-weight:900;
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  margin-bottom:18px;
}

/* big title */
.heroBanner__title{
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
  line-height:.95;
  font-size: clamp(22px, 3.5vw, 46px);
  color: rgba(255,255,255,.92);
  text-shadow: 0 10px 30px rgba(0,0,0,.6);
}

/* ================= STREAM ROW ================= */

.streamRow{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  border-top:1px solid rgba(255,255,255,.10);
  border-bottom:1px solid rgba(255,255,255,.08);
  background:#000;
}

.streamRow__item{
  position:relative;
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:center;
  padding:22px 16px;
  text-decoration:none;
  color: rgba(255,255,255,.85);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:13px;
  border-left:1px solid rgba(255,255,255,.10);
  transition: background .25s ease, color .25s ease;
}

.streamRow__item:first-child{ border-left:none; }

/* white highlight hover */
.streamRow__item::before{
  content:"";
  position:absolute;
  inset:0;
  background:#ffffff;
  opacity:0;
  transition: opacity .25s ease;
  z-index:0;
}

.streamRow__item > *{
  position:relative;
  z-index:1;
}

.streamRow__item:hover::before{ opacity:1; }
.streamRow__item:hover{ color:#000000; }

.streamRow__icon{
  font-size:16px;
  opacity:.9;
  transform: translateY(-1px);
}

.streamRow__text{ white-space: nowrap; }

/* responsive: stack */
@media (max-width: 820px){
  .streamRow{ grid-template-columns:1fr; }

  .streamRow__item{
    justify-content:flex-start;
    padding:18px 18px;
    border-left:none;
    border-top:1px solid rgba(255,255,255,.10);
  }

  .streamRow__item:first-child{ border-top:none; }
}

/* ================= RELEASES PREVIEW (HOME) ================= */

.releasesPreview{
  background:#000;
  padding:70px 0 90px;
}

.releasesPreview__inner{
  max-width:1400px;
  margin:0 auto;
  padding:0 22px;
}

.releasesPreview__titleWrap{
  display:flex;
  justify-content:center;
  margin-bottom:46px;
}

.releasesPreview__title{
  display:inline-block;
  padding:8px 14px;
  border:2px solid rgba(255,255,255,.35);
  color: rgba(255,255,255,.9);
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
  font-size:18px;
  background: rgba(0,0,0,.25);
}

/* grid */
.releasesGrid{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap:64px;
  align-items:start;
}

/* card */
.releaseCard{
  position:relative;
  display:block;
  aspect-ratio: 1 / 1;
  overflow:hidden;
  text-decoration:none;
  background:#050505;
  border:2px solid rgba(255,255,255,.08);
  box-shadow: 0 10px 30px rgba(0,0,0,.55);
}

/* cover image */
.releaseCard__img{
  width:100%;
  height:100%;
  object-fit:cover;
  transform: scale(1.01);
  filter: contrast(1.02) saturate(1.02);
  transition: transform .28s ease, filter .28s ease;
}

/* overlay details (hidden until hover) */
.releaseCard__overlay{
  position:absolute;
  inset:0;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  padding:18px 18px;
  opacity:0;
  transform: translateY(10px);
  transition: opacity .22s ease, transform .22s ease;
  background: linear-gradient(
    to top,
    rgba(0,0,0,.72) 0%,
    rgba(0,0,0,.30) 45%,
    rgba(0,0,0,0) 70%
  );
}

/* title bottom-left */
.releaseCard__name{
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:14px;
  color: rgba(255,255,255,.92);
}

/* play box bottom-right */
.releaseCard__cta{
  width:40px;
  height:34px;
  display:grid;
  place-items:center;
  background: rgba(255,255,255,.88);
  border:1px solid rgba(0,0,0,.35);
}

.releaseCard__play{
  color:#000;
  font-size:14px;
  transform: translateX(1px);
}

/* hover interactions */
.releaseCard:hover .releaseCard__overlay{
  opacity:1;
  transform: translateY(0);
}

.releaseCard:hover .releaseCard__img{
  transform: scale(1.045);
  filter: contrast(1.05) saturate(1.05);
}

/* keyboard focus */
.releaseCard:focus-visible{
  outline:2px solid rgba(255,255,255,.65);
  outline-offset:4px;
}

/* footer view all */
.releasesPreview__footer{
  display:flex;
  justify-content:center;
  margin-top:44px;
}

.viewAll{
  text-decoration:none;
  color: rgba(255,255,255,.65);
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
  font-size:13px;
  display:inline-flex;
  align-items:center;
  gap:10px;
}

.viewAll:hover{ color:#fff; }

.viewAll__arrow{
  font-size:12px;
  opacity:.9;
}

/* responsive */
@media (max-width: 1100px){
  .releasesGrid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap:34px;
  }
}

@media (max-width: 560px){
  .releasesPreview{ padding:55px 0 70px; }

  .releasesGrid{
    grid-template-columns:1fr;
    gap:24px;
  }

  /* show overlay by default on mobile */
  .releaseCard__overlay{
    opacity:1;
    transform:none;
  }
}

/* ================= TOUR PREVIEW (MATCH REFERENCE) ================= */

.tourPreview{
  background:#000;
  padding:70px 0 90px;
  border-top:1px solid rgba(255,255,255,.10);
}

.tourPreview__inner{
  max-width:1400px;
  margin:0 auto;
  padding:0 22px;
}

.tourPreview__tagWrap{
  display:flex;
  justify-content:center;
  margin-bottom:34px;
}

.tourPreview__tag{
  display:inline-block;
  padding:6px 12px;
  border:2px solid rgba(255,255,255,.35);
  color: rgba(255,255,255,.92);
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
  font-size:12px;
  background: rgba(0,0,0,.25);
}

/* Header labels */
.tourTable__head{
  display:grid;
  grid-template-columns: 140px 320px 40px 1fr 180px;
  padding:14px 0 12px;
  color: rgba(255,255,255,.35);
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:10px;
}

.tourHead--right{ text-align:right; }

/* Rows wrapper */
.tourTable{ width:100%; }

/* Row */
.tourRow{
  display:grid;
  grid-template-columns: 140px 320px 40px 1fr 180px;
  align-items:center;
  padding:18px 0;
  border-top:1px solid rgba(255,255,255,.10);
  transition: background .16s ease;
}

/* Text cells */
.tourCell{
  padding-right:14px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:12px;
  color: rgba(255,255,255,.85);
}

.tourCell--date{ color: rgba(255,255,255,.92); }

.tourCell--venue{
  color: rgba(255,255,255,.55);
  font-weight:800;
  letter-spacing:.06em;
}

/* Right side */
.tourCell--cta{
  display:flex;
  justify-content:flex-end;
  padding-right:0;
}

/* Learn more link */
.tourLink{
  text-decoration:none;
  color: rgba(255,255,255,.65);
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:11px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  transition: color .16s ease;
}

.tourArrow{
  font-size:11px;
  opacity:.9;
}

/* Dot column */
.tourDot{
  width:10px;
  height:10px;
  border-radius:50%;
  background:#000;
  opacity:0;
  transform: scale(.7);
  transition: opacity .16s ease, transform .16s ease;
  justify-self:center;
}

/* HOVER EFFECT (REFERENCE) */
.tourRow:hover{ background: rgba(255,255,255,.78); }

.tourRow:hover .tourDot{
  opacity:1;
  transform: scale(1);
}

/* Turn text dark on hover */
.tourRow:hover .tourCell,
.tourRow:hover .tourLink{
  color: rgba(0,0,0,.88);
}

.tourRow:hover .tourCell--venue{
  color: rgba(0,0,0,.68);
}

/* View all */
.tourPreview__footer{
  display:flex;
  justify-content:center;
  margin-top:34px;
}

.tourViewAll{
  text-decoration:none;
  color: rgba(255,255,255,.55);
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
  font-size:12px;
  display:inline-flex;
  align-items:center;
  gap:10px;
}

.tourViewAll:hover{ color:#fff; }

/* Responsive */
@media (max-width: 1100px){
  .tourTable__head,
  .tourRow{
    grid-template-columns: 120px 260px 34px 1fr 160px;
  }
}

@media (max-width: 820px){
  .tourTable__head{ display:none; }

  .tourRow{
    grid-template-columns:1fr;
    gap:8px;
    padding:16px 0;
  }

  .tourDot{ display:none; }

  .tourCell{
    text-transform:none;
    letter-spacing: normal;
    font-size:13px;
  }

  .tourCell--venue{
    font-size:12px;
    opacity:.9;
  }

  .tourCell--cta{ justify-content:flex-start; }
}

/* ================= ABOUT QUOTE SECTION ================= */

.aboutQuote{
  position:relative;
  min-height:520px;
  background:#000;
  overflow:hidden;
  border-top:1px solid rgba(255,255,255,.10);
}

.aboutQuote__media{
  position:absolute;
  inset:0;
  background-image:
    radial-gradient(70% 120% at 50% 20%, rgba(0,0,0,.10), rgba(0,0,0,.85) 70%),
    url("../img/photos/about-bg.jpg");
  background-size:cover;
  background-position:center;
  filter: contrast(1.05) saturate(1.05);
  transform: scale(1.02);
}

.aboutQuote__inner{
  position:relative;
  max-width:1100px;
  margin:0 auto;
  padding:90px 22px;
  text-align:center;
  z-index:2;
}

.aboutQuote__text{
  color: rgba(255,255,255,.85);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  line-height:1.15;
  font-size: clamp(18px, 2.4vw, 34px);
  text-shadow: 0 10px 30px rgba(0,0,0,.55);
}

.aboutQuote__link{
  margin-top:22px;
  display:inline-flex;
  gap:10px;
  align-items:center;
  text-decoration:none;
  color: rgba(255,255,255,.70);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:12px;
}

.aboutQuote__link:hover{ color:#fff; }

.aboutQuote__arrow{
  font-size:12px;
  opacity:.9;
}

/* ================= FULL WIDTH IMAGE ================= */

.fullImage{
  background:#000;
  border-top:1px solid rgba(255,255,255,.10);
}

.fullImage img{
  width:100%;
  height:auto;
  display:block;
}

/* ================= LISTEN TO ME ON (REFERENCE MATCH) ================= */

.listenOn{
  background:#000;
  padding:120px 0 140px;
  border-top:1px solid rgba(255,255,255,.10);
}

.listenOn__inner{
  max-width:1200px;
  margin:0 auto;
  padding:0 22px;
  text-align:center;
}

.listenOn__title{
  display:inline-block;
  padding:10px 18px;
  border:2px solid rgba(255,255,255,.45);
  color:#fff;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:16px;
  margin-bottom:70px;
}

.listenOn__grid{
  display:flex;
  justify-content:center;
  gap:100px;
}

.listenOn__btn{
  width:120px;
  height:120px;
  background:#ffffff;
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  transition: transform .18s ease;
}

.listenOn__btn:hover{ transform: translateY(-4px); }

.listenOn__logo{
  width:44px;
  height:44px;
  display:block;
}

@media (max-width: 768px){
  .listenOn__grid{ gap:40px; }

  .listenOn__btn{
    width:90px;
    height:90px;
  }

  .listenOn__logo{
    width:32px;
    height:32px;
  }
}

/* ================= FOOTER (REFERENCE MATCH) ================= */

.siteFooter{
  background:#000;
  border-top:1px solid rgba(255,255,255,.10);
}

.siteFooter__inner{
  max-width:1400px;
  margin:0 auto;
  padding:18px 22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.siteFooter__left{
  color: rgba(255,255,255,.75);
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:12px;
}

.siteFooter__nav{
  display:flex;
  gap:34px;
  align-items:center;
}

.siteFooter__link{
  text-decoration:none;
  color: rgba(255,255,255,.85);
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:12px;
}

.siteFooter__link:hover{ color:#fff; }

@media (max-width: 720px){
  .siteFooter__inner{
    flex-direction:column;
    gap:14px;
    padding:18px 18px;
  }

  .siteFooter__nav{
    gap:22px;
    flex-wrap:wrap;
    justify-content:center;
  }
}

/* ================= CUSTOM CURSOR (FIXED) ================= */

/* only hide default cursor if JS activates it */
body.cursor-ready{
  cursor:none;
}

.cursor{
  position:fixed;
  left:0;
  top:0;

  width:14px;
  height:14px;
  border-radius:50%;
  background:#fff;

  pointer-events:none;
  z-index:99999;

  /* center without transform conflicts */
  margin-left:-7px;
  margin-top:-7px;

  mix-blend-mode:difference;
  opacity:0;

  transition: width .2s ease, height .2s ease, margin .2s ease;
}

.cursor.is-hover{
  width:24px;
  height:24px;
  margin-left:-12px;
  margin-top:-12px;
}
