*{
  box-sizing:border-box;
}

:root{
  --bg:#050b10;
  --panel:#09141d;
  --text:#edf5f8;
  --muted:#9fb2bd;
  --ice:#b9e8ff;
  --line:#173243;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:Arial,Helvetica,sans-serif;
  line-height:1.7;
}


/* =========================================================
   HERO
   ========================================================= */

.hero{
  min-height:100vh;
  display:flex;
  align-items:center;
  padding:5vw 6vw;
  background:
    radial-gradient(
      circle at 25% 30%,
      #123044 0,
      #07121a 38%,
      #03070a 78%
    );
}

.hero-inner{
  width:min(1400px,100%);
  margin:auto;
}


/* NILES SMILES MUSIC PRESENTS */

.hero-presenter{
  margin:0 0 1.5rem;
}


/* TWO-COLUMN HERO */

.hero-top{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:5vw;
  align-items:start;
}


/* LEFT: ALBUM */

.hero-album-area{
  width:100%;
}

.hero-cover{
  display:block;
  width:100%;
  max-width:620px;
  height:auto;
  box-shadow:0 28px 80px rgba(0,0,0,.67);
  border:1px solid rgba(255,255,255,.07);
}

.hero-coming-soon{
  margin:1.5rem 0 0;
}

.hero-buy{
  width:100%;
}

.platform-links{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.7rem;
  margin-top:.9rem;
}

.platform-link{
  display:flex;
  align-items:center;
  gap:.55rem;
  min-height:42px;
  padding:.5rem .8rem;
  border:1px solid rgba(185,232,255,.28);
  background:#071018;
  color:#edf5f8;
  text-decoration:none;
  font-size:.82rem;
  font-weight:bold;
  border-radius:3px;
  transition:border-color .2s ease,background .2s ease,transform .2s ease;
}

.platform-link:hover{
  border-color:#8fdcff;
  background:#0b1b27;
  transform:translateY(-1px);
}

.platform-icon{
  display:block;
  width:24px;
  height:24px;
  object-fit:contain;
  flex:0 0 24px;
}


/* AMAZON MUSIC FALLBACK ICON */

.amazon-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  flex:0 0 24px;
  border-radius:50%;
  background:#25d1da;
  color:#050b10;
  font-size:.9rem;
  font-weight:bold;
  line-height:1;
}


/* RIGHT: LOGO + INTRODUCTION */

.hero-content{
  width:100%;
}

.tommy-logo{
  display:block;
  width:100%;
  max-width:650px;
  height:auto;
  margin:0 0 2.5rem;
  filter:drop-shadow(0 20px 35px rgba(0,0,0,.45));
}

.hero-content h1{
  line-height:1.08;
  margin:0 0 .45em;
  letter-spacing:-.035em;
  font-size:clamp(3rem,5vw,6rem);
  max-width:700px;
}

.hero-content .lead{
  font-size:clamp(1.15rem,1.7vw,1.5rem);
  color:#c8d4da;
  max-width:650px;
}


/* =========================================================
   HEADINGS
   ========================================================= */

.section h2{
  line-height:1.08;
  margin:.15em 0 .45em;
  letter-spacing:-.035em;
  font-size:clamp(2rem,4vw,3.8rem);
}

.lead{
  font-size:clamp(1.15rem,1.7vw,1.5rem);
  color:#c8d4da;
}


/* =========================================================
   EYEBROW / SECTION LABELS
   ========================================================= */

.eyebrow{
  text-transform:uppercase;
  letter-spacing:.2em;
  font-size:.75rem;
  font-weight:bold;
  color:var(--ice);
}

.section p.eyebrow{
  font-size:.75rem;
  font-weight:bold;
  text-transform:uppercase;
  letter-spacing:.2em;
  color:var(--ice);
}


/* =========================================================
   LINKS
   ========================================================= */

.artist-link{
  color:inherit;
  text-decoration-color:rgba(185,232,255,.45);
  text-underline-offset:4px;
  transition:
    color .2s ease,
    text-decoration-color .2s ease;
}

.artist-link:hover{
  color:#b9e8ff;
  text-decoration-color:#b9e8ff;
}


/* =========================================================
   BUTTON
   ========================================================= */

.button{
  display:inline-block;
  margin-top:1.4rem;
  padding:.85rem 1.2rem;
  border:1px solid #8fdcff;
  color:#fff;
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.13em;
  font-size:.75rem;
  transition:.2s;
}

.button:hover{
  background:#b9e8ff;
  color:#061019;
}


/* =========================================================
   MAIN SECTIONS
   ========================================================= */

.section{
  padding:4.5rem 6vw;
  border-top:1px solid var(--line);
}

.narrow{
  max-width:850px;
  margin:auto;
}

.wide{
  width:100%;
  max-width:1200px;
  margin:auto;
}

.section p{
  font-size:1.1rem;
  color:#bac9d0;
}

.album-section{
  background:#071018;
}


/* =========================================================
   STORY / ALBUM / STUDIO IMAGES
   ========================================================= */

.story-image,
.album-image,
.studio-image{
  width:100%;
  height:auto;
  display:block;
  margin:2rem auto;
  border-radius:3px;
  box-shadow:0 24px 65px rgba(0,0,0,.45);
  max-width:760px;
}


/* =========================================================
   RICHARD NILES IMAGE
   ========================================================= */

.richard-image{
  display:block;
  width:100%;
  max-width:520px;
  height:auto;
  margin:2rem auto;
  border-radius:3px;
  box-shadow:0 24px 65px rgba(0,0,0,.45);
}


/* =========================================================
   CONTROLLED HEADLINE BREAKS
   ========================================================= */

.headline-line{
  display:block;
}


/* =========================================================
   STUDIO CAPTION
   ========================================================= */

.studio-caption{
  max-width:760px;
  margin:-.8rem auto 0;
  text-align:center;
  font-size:.85rem !important;
  color:#9fb2bd !important;
  letter-spacing:.08em;
}


/* =========================================================
   QUOTE SECTIONS
   ========================================================= */

.quote-section{
  padding:5rem 8vw;
  text-align:center;
  background:linear-gradient(135deg,#0b1b27,#061018);
}

.quote-section blockquote{
  max-width:1050px;
  margin:0 auto 2rem;
  font-family:Georgia,serif;
  font-style:italic;
  font-size:clamp(2rem,4.3vw,4.6rem);
  line-height:1.18;
  color:#e9f8ff;
}

.quote-section p{
  color:var(--ice);
  letter-spacing:.15em;
  text-transform:uppercase;
}


/* =========================================================
   MUSICIAN GRID
   ========================================================= */

.credits{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  margin-top:2rem;
}

.credits article{
  background:#071018;
  padding:2rem;
  overflow:hidden;
}

.credits h3{
  font-size:1.35rem;
  margin:0 0 .5rem;
  color:#f5fbff;
}

.credits p{
  font-size:.98rem;
  margin:0;
}


/* =========================================================
   MUSICIAN PHOTOS
   ========================================================= */

.musician-photo{
  width:calc(100% + 4rem);
  max-width:none;
  height:290px;
  object-fit:cover;
  object-position:center 20%;
  display:block;
  margin:-2rem -2rem 1.7rem;
}

.credits article:nth-child(1) .musician-photo{
  object-position:center 30%;
}

.credits article:nth-child(2) .musician-photo{
  object-position:center 20%;
}

.credits article:nth-child(3) .musician-photo{
  object-position:center 25%;
}

.credits article:nth-child(4) .musician-photo{
  object-position:center 15%;
}

.credits article:nth-child(5) .musician-photo{
  object-position:center top;
}

.credits article:nth-child(6) .musician-photo{
  object-position:center top;
}


/* =========================================================
   SESSION TEAM
   ========================================================= */

.session-team{
  max-width:1200px;
  margin:1px auto 0;
  background:#071018;
  border:1px solid #173243;
}

.session-team-photo{
  display:block;
  width:100%;
  height:auto;
}

.session-team-text{
  padding:2rem;
}

.session-team-text h3{
  margin:0 0 1rem;
  color:#f5fbff;
  font-size:1.5rem;
}

.session-team-text p{
  margin:.35rem 0;
  color:#bac9d0;
  font-size:1rem;
}

.session-team-text strong{
  color:#f5fbff;
}


/* =========================================================
   FINAL TOMMY QUOTE
   ========================================================= */

.final-quote{
  background:#09151e;
}

.tommy-quote-inner{
  max-width:1300px;
  margin:auto;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(380px,1fr);
  gap:3rem;
  align-items:center;
}

.tommy-quote-inner blockquote{
  margin:0 0 2rem;
}

.tommy-quote-figure{
  margin:0;
}

.tommy-quote-photo{
  width:100%;
  height:auto;
  display:block;
  box-shadow:0 24px 65px rgba(0,0,0,.45);
}

.tommy-quote-figure figcaption{
  margin-top:.8rem;
  text-align:center;
  color:#9fb2bd;
  font-size:.85rem;
  letter-spacing:.04em;
  line-height:1.5;
}


/* =========================================================
   VIDEOS
   ========================================================= */

.videos-section{
  background:#071018;
}

.video-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.5rem;
  margin-top:2rem;
  width:100%;
}

.video-slot{
  width:100%;
  min-width:0;
  aspect-ratio:16 / 9;
  border:1px solid #173243;
  background:#050b10;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:#6f8793;
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.15em;
  overflow:hidden;
}

.video-slot iframe{
  display:block;
  width:100%;
  height:100%;
  border:0;
}

/* Hide empty future video placeholders */

.video-slot:not(:has(iframe)){
  display:none;
}


/* =========================================================
   ALBUM BACK COVER
   ========================================================= */

.album-details{
  padding:4.5rem 6vw 5rem;
  border-top:1px solid #173243;
  background:#050b10;
  text-align:center;
}

.album-back-large{
  display:block;
  width:min(1200px,100%);
  height:auto;
  margin:2rem auto 0;
  box-shadow:0 30px 90px rgba(0,0,0,.6);
}


/* =========================================================
   BUY / LISTEN BELOW BACK COVER
   ========================================================= */

.album-coming-soon{
  max-width:800px;
  margin:3.5rem auto 0;
  text-align:center;
}

.album-coming-soon .available{
  margin:0;
  font-size:1.3rem;
  color:#b8c8cf;
}

.album-coming-soon .available strong{
  display:block;
  color:#b9e8ff;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.8rem;
  margin-bottom:.35rem;
}

.platform-links-bottom{
  justify-content:center;
  margin:1.25rem auto 0;
}


/* =========================================================
   NILES SMILES MUSIC LOGO
   ========================================================= */

.label-logo{
  display:block;
  width:190px;
  max-width:55%;
  height:auto;
  margin:2rem auto 0;
  opacity:.82;
  box-shadow:none;
  transition:opacity .2s ease;
}

.label-logo:hover{
  opacity:1;
}


/* =========================================================
   FOOTER
   ========================================================= */

footer{
  text-align:center;
  border-top:1px solid var(--line);
  padding:2.5rem;
  color:#6f8793;
  font-size:.85rem;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media(max-width:850px){

  .hero{
    min-height:auto;
    padding:4rem 1.5rem 5rem;
  }

  .hero-inner{
    width:100%;
  }

  .hero-presenter{
    margin-bottom:1.5rem;
  }

  .hero-top{
    grid-template-columns:1fr;
    gap:3.5rem;
  }

  .hero-album-area{
    width:100%;
  }

  .hero-cover{
    width:min(500px,100%);
    margin:0 auto;
  }

  .hero-coming-soon{
    width:min(500px,100%);
    margin:1.5rem auto 0;
  }

  .hero-buy{
    width:min(500px,100%);
    margin:0 auto;
  }

  .platform-links{
    gap:.6rem;
  }

  .platform-link{
    flex:1 1 calc(50% - .3rem);
    justify-content:center;
  }

  .hero-content{
    width:100%;
  }

  .tommy-logo{
    width:100%;
    max-width:650px;
    margin:0 0 2rem;
  }

  .hero-content h1{
    font-size:clamp(2.8rem,14vw,5rem);
  }

  .section{
    padding:3.5rem 1.5rem;
  }

  .story-image,
  .album-image,
  .studio-image{
    margin-top:1.5rem;
    margin-bottom:2rem;
  }

  .richard-image{
    width:100%;
    max-width:520px;
    margin:1.5rem auto 2rem;
  }

  .headline-line{
    display:inline;
  }

  .headline-line::after{
    content:" ";
  }

  .credits{
    grid-template-columns:1fr;
  }

  .musician-photo{
    height:auto;
    max-height:420px;
    object-fit:contain;
    object-position:center top;
  }

  .session-team-text{
    padding:1.5rem;
  }

  .quote-section{
    padding:4rem 1.5rem;
  }

  .tommy-quote-inner{
    grid-template-columns:1fr;
    gap:2.5rem;
  }

  .tommy-quote-photo{
    max-width:600px;
    margin:auto;
  }

  .tommy-quote-figure{
    max-width:600px;
    margin:auto;
  }

  .video-grid{
    grid-template-columns:1fr;
  }

  .album-details{
    padding:3.5rem 1.5rem 4rem;
  }

  .album-back-large{
    width:100%;
    margin-top:1.5rem;
  }

  .album-coming-soon{
    margin-top:3rem;
  }

}