:root{
    --ink:#15151a;
    --ink-soft:#201f26;
    --brass:#b9884c;
    --brass-light:#d9b878;
    --parchment:#efe6d3;
    --parchment-deep:#e4d8bd;
    --wine:#5a2434;
    --text-on-dark:#eee7d8;
    --text-on-dark-dim:#a89e8b;
    --text-on-light:#211f1a;
    --text-on-light-dim:#63594a;
    --rule:rgba(185,136,76,0.35);
    --maxw:1180px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--parchment);
    color:var(--text-on-light);
    font-family:'Archivo', sans-serif;
    font-size:17px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }

  h1,h2,h3{
    font-family:'Fraunces', serif;
    font-weight:500;
    margin:0;
    letter-spacing:-0.01em;
  }

  a{color:inherit;}

  .wrap{
    max-width:var(--maxw);
    margin:0 auto;
    padding:0 32px;
  }

  @media (max-width:640px){
    .wrap{padding:0 22px;}
    body{font-size:16px;}
  }

  /* subtle grain texture, shared across dark sections */
  .grain{position:relative;}
  .grain::before{
    content:"";
    position:absolute; inset:0;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E");
    pointer-events:none;
    mix-blend-mode:overlay;
  }

  /* ---------- NAV ---------- */
  nav{
    position:fixed; top:0; left:0; right:0; z-index:50;
    display:flex; align-items:center; justify-content:space-between;
    padding:22px 32px;
    background:linear-gradient(to bottom, rgba(21,21,26,0.92), rgba(21,21,26,0));
    color:var(--text-on-dark);
  }
  nav .mark{
    font-family:'Fraunces', serif;
    font-size:16px;
    letter-spacing:0.02em;
    position:relative;
    z-index:60;
    text-decoration:none;
    color:inherit;
  }
  nav ul{
    list-style:none; display:flex; gap:28px; margin:0; padding:0;
    font-size:14px;
  }
  nav a{text-decoration:none; opacity:0.82; transition:opacity .2s;}
  nav a:hover{opacity:1;}

  .nav-toggle{
    display:none;
    position:relative; z-index:60;
    width:40px; height:40px;
    padding:0; margin:0;
    background:none; border:none;
    cursor:pointer;
  }
  .nav-toggle .bar{
    display:block;
    width:22px; height:2px;
    margin:5px auto;
    background:var(--text-on-dark);
    transition:transform .25s ease, opacity .2s ease;
  }
  .nav-toggle[aria-expanded="true"] .bar:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] .bar:nth-child(2){ opacity:0; }
  .nav-toggle[aria-expanded="true"] .bar:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

  @media (max-width:760px){
    .nav-toggle{ display:block; }
    nav ul{
      position:fixed; inset:0;
      z-index:55;
      flex-direction:column;
      justify-content:center;
      align-items:center;
      gap:30px;
      background:var(--ink);
      font-family:'Fraunces', serif;
      font-size:24px;
      opacity:0; visibility:hidden;
      transition:opacity .25s ease;
    }
    nav ul.open{
      opacity:1; visibility:visible;
    }
    nav a{ opacity:1; }
  }

  @media (prefers-reduced-motion: reduce){
    .nav-toggle .bar, nav ul{ transition:none; }
  }

  /* ---------- HERO ---------- */
  .hero{
    background:
      linear-gradient(to top, var(--ink) 8%, rgba(21,21,26,0.55) 45%, rgba(21,21,26,0.25) 100%),
      linear-gradient(to right, rgba(21,21,26,0.85) 0%, rgba(21,21,26,0.25) 55%),
      url("images/hero.jpg");
    background-size:cover;
    background-position:center 25%;
    color:var(--text-on-dark);
    min-height:92vh;
    display:flex; flex-direction:column; justify-content:flex-end;
    padding:160px 0 0 0;
    overflow:hidden;
  }
  .hero-inner{
    padding-bottom:76px;
    position:relative;
    z-index:2;
  }
  .hero .kicker{
    font-size:14.5px;
    color:var(--brass-light);
    margin-bottom:18px;
    max-width:520px;
  }
  .hero h1{
    font-size:clamp(52px, 9vw, 118px);
    line-height:0.98;
    color:var(--text-on-dark);
  }
  .hero h1 em{
    font-style:italic;
    color:var(--brass-light);
  }
  .hero .tagline{
    margin-top:26px;
    max-width:480px;
    color:var(--text-on-dark-dim);
    font-size:17px;
  }
  .hero-rule{
    margin-top:52px;
    height:1px;
    background:linear-gradient(to right, var(--brass) 0%, transparent 70%);
  }

  /* ---------- SECTION SCAFFOLDING ---------- */
  section{padding:104px 0;}
  @media (max-width:640px){ section{padding:72px 0;} }

  .section-dark{ background:var(--ink); color:var(--text-on-dark); }
  .section-light{ background:var(--parchment); color:var(--text-on-light); }
  .section-wine{ background:var(--wine); color:var(--text-on-dark); }
  .section-music{
    background:
      linear-gradient(to bottom, rgba(21,21,26,0.93), rgba(21,21,26,0.97)),
      url("images/drums.jpg");
    background-size:cover;
    background-position:center;
  }

  .label{
    font-family:'Fraunces', serif;
    font-style:italic;
    font-size:15px;
    color:var(--brass);
    margin-bottom:20px;
  }
  .section-light .label{ color:var(--wine); }

  h2.head{
    font-size:clamp(32px, 4.2vw, 48px);
    max-width:640px;
    margin-bottom:34px;
  }

  /* ---------- ABOUT ---------- */
  .about-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:64px;
    align-items:start;
  }
  .about-grid p{
    max-width:60ch;
    color:var(--text-on-light-dim);
    margin:0 0 20px 0;
  }
  .about-grid p:last-child{margin-bottom:0;}
  .about-photo{
    aspect-ratio:4/5;
    border:1px solid var(--rule);
    overflow:hidden;
  }
  .about-photo img{
    width:100%; height:100%;
    object-fit:cover;
    display:block;
    filter:sepia(8%) saturate(92%);
  }
  @media (max-width:820px){
    .about-grid{grid-template-columns:1fr; gap:36px;}
    .about-photo{order:-1; aspect-ratio:16/10;}
  }

  /* ---------- MUSIC / RELEASE ---------- */
  .release-card{
    display:grid;
    grid-template-columns:220px 1fr;
    gap:40px;
    align-items:center;
    border-top:1px solid rgba(238,231,216,0.18);
    padding:36px 0;
  }
  .release-card:last-child{border-bottom:1px solid rgba(238,231,216,0.18);}
  .release-art{
    aspect-ratio:1/1;
    background:linear-gradient(155deg, #2a2833, var(--ink));
    border:1px solid var(--rule);
    overflow:hidden;
  }
  .release-meta .eyebrow{
    color:var(--brass-light);
    font-size:13.5px;
    margin-bottom:8px;
  }
  .release-meta h3{
    font-size:26px;
    margin-bottom:8px;
    color:var(--text-on-dark);
  }
  .release-meta p{
    color:var(--text-on-dark-dim);
    max-width:56ch;
    margin:0 0 14px 0;
  }
  .release-meta p:last-of-type{ margin-bottom:0; }
  .release-meta p.enjoy{
    font-family:'Fraunces', serif;
    font-style:italic;
    color:var(--brass-light);
  }
  @media (max-width:640px){
    .release-card{grid-template-columns:1fr; gap:20px;}
    .release-art{max-width:180px;}
  }

  /* ---------- COLLECTIVE ---------- */
  .collective p.lede{
    max-width:66ch;
    font-size:19px;
    color:var(--text-on-light-dim);
    margin-bottom:36px;
  }
  .names{
    display:flex; flex-wrap:wrap; gap:14px 34px;
    padding-top:28px;
    border-top:1px solid rgba(90,36,52,0.18);
  }
  .names span{
    font-family:'Fraunces', serif;
    font-style:italic;
    font-size:19px;
    color:var(--wine);
  }

  /* ---------- CONNECT ---------- */
  .connect-grid{
    display:grid;
    grid-template-columns:1.1fr 0.9fr;
    gap:60px;
  }
  .connect-links{ display:flex; flex-direction:column; gap:0; }
  .connect-links a{
    display:flex; align-items:center; justify-content:space-between;
    padding:20px 0;
    border-bottom:1px solid rgba(238,231,216,0.18);
    text-decoration:none;
    color:var(--text-on-dark);
    font-size:19px;
    font-family:'Fraunces', serif;
  }
  .connect-links a:first-child{border-top:1px solid rgba(238,231,216,0.18);}
  .connect-links .status{
    font-family:'Archivo', sans-serif;
    font-size:13px;
    color:var(--text-on-dark-dim);
  }
  .connect-note p{
    color:var(--text-on-dark-dim);
    max-width:44ch;
  }
  .mail-btn{
    display:inline-block;
    margin-top:18px;
    padding:14px 26px;
    border:1px solid var(--brass);
    color:var(--brass-light);
    text-decoration:none;
    font-size:15px;
    transition:background .2s, color .2s;
  }
  .mail-btn:hover{ background:var(--brass); color:var(--ink); }
  @media (max-width:820px){
    .connect-grid{grid-template-columns:1fr; gap:40px;}
  }

  /* ---------- FOOTER ---------- */
  footer{
    background:var(--ink);
    color:var(--text-on-dark-dim);
    padding:36px 0;
    font-size:13.5px;
    border-top:1px solid rgba(238,231,216,0.1);
  }
  footer .wrap{
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;
  }
  footer a{ color:var(--brass-light); text-decoration:none; }

  /* reduced motion */
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
  }

  /* focus visibility */
  a:focus-visible, button:focus-visible{
    outline:2px solid var(--brass);
    outline-offset:3px;
  }

/* ---------- ABOUT PAGE ---------- */
.about-hero{
  background:var(--ink);
  color:var(--text-on-dark);
  padding:170px 0 60px 0;
}
.about-hero .label{ color:var(--brass); }
.about-hero h1{
  font-size:clamp(38px, 5.5vw, 62px);
  max-width:640px;
}
