:root{
  --cream:#f1e4c8;
  --paper:#e7d4ae;
  --ink:#172019;
  --pine:#163025;
  --deep:#0b130e;
  --rust:#a84b2d;
  --gold:#d6a548;
  --teal:#8aa9a0;
  --white:#fffaf0;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--deep);color:var(--white);font-family:"DM Sans",sans-serif;line-height:1.6}
img{display:block;width:100%}
a{color:inherit}
.texture{background-color:var(--cream);background-image:radial-gradient(rgba(70,52,25,.08) 1px,transparent 1px);background-size:5px 5px;color:var(--ink)}
.site-header{position:fixed;z-index:100;inset:0 0 auto 0;display:flex;justify-content:space-between;align-items:center;padding:17px 5vw;background:linear-gradient(to bottom,rgba(6,11,8,.86),transparent);transition:.3s}
.site-header.scrolled{background:rgba(10,19,14,.96);backdrop-filter:blur(14px)}
.wordmark{text-decoration:none;line-height:1}.wordmark span{display:block;font-family:"Rye",serif;font-size:1.1rem}.wordmark small{font-size:.53rem;text-transform:uppercase;letter-spacing:.18em}
nav{display:flex;align-items:center;gap:24px}nav a{text-decoration:none;text-transform:uppercase;letter-spacing:.13em;font-size:.7rem;font-weight:700}.nav-cta{border:1px solid rgba(255,255,255,.55);padding:9px 13px}.menu-toggle{display:none}
.hero{min-height:100vh;position:relative;display:grid;place-items:center;background:url("assets/hero-waterton.jpg") center/cover no-repeat}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,9,6,.82),rgba(4,9,6,.23)),linear-gradient(0deg,rgba(4,9,6,.65),transparent 55%)}
.hero-copy{position:relative;width:min(1180px,90vw);padding-top:80px}
.kicker{text-transform:uppercase;letter-spacing:.2em;font-size:.68rem;font-weight:700;color:var(--gold)}
.kicker.rust{color:var(--rust)}
h1,h2,h3,p{margin-top:0}
h1{font-family:"Rye",serif;font-size:clamp(3rem,7.2vw,7rem);line-height:.95;max-width:1000px;margin-bottom:20px;text-shadow:0 5px 36px rgba(0,0,0,.45)}
h1 span{font-size:.49em}
.hero-tagline{font-family:"Special Elite",serif;font-size:clamp(1.1rem,2vw,1.55rem)}
.actions{display:flex;gap:11px;flex-wrap:wrap}
.button{display:inline-flex;justify-content:center;align-items:center;padding:13px 20px;background:var(--rust);border:1px solid var(--rust);text-decoration:none;text-transform:uppercase;letter-spacing:.13em;font-size:.7rem;font-weight:700;transition:.25s}.button:hover{transform:translateY(-2px)}
.ghost{background:rgba(0,0,0,.18);border-color:rgba(255,255,255,.7)}
.dark-button{background:var(--pine);border-color:var(--pine)}
.scroll-cue{position:absolute;bottom:25px;left:50%;transform:translateX(-50%);font-size:.7rem;text-transform:uppercase;letter-spacing:.17em;text-decoration:none}
.manifesto{padding:100px 8vw;text-align:center}.seal{width:125px;height:125px;object-fit:cover;border-radius:50%;margin:0 auto 35px}.manifesto blockquote{font-family:Georgia,serif;font-style:italic;font-size:clamp(2rem,4.6vw,4.7rem);line-height:1.12;max-width:1100px;margin:0 auto 30px}.manifesto p{max-width:760px;margin:auto;font-size:1.1rem}
.art-story{padding:95px 6vw}.art-copy{max-width:760px;margin:0 auto 45px;text-align:center}.art-copy h2,.section-title h2,.listen-copy h2,.story-copy h2,.booking-copy h2{font-family:Georgia,serif;font-size:clamp(2.5rem,5vw,5rem);line-height:1.04;margin-bottom:18px}
.poster-stage{display:grid;grid-template-columns:1.25fr .75fr;gap:30px;max-width:1180px;margin:auto;align-items:center}.poster-card{margin:0;background:#dbc294;padding:15px;box-shadow:0 20px 55px rgba(52,38,20,.22);transform:rotate(-1deg)}.poster-small{transform:rotate(2deg)}.poster-card img{height:100%;object-fit:cover}.poster-large img{aspect-ratio:4/5}.poster-small img{aspect-ratio:3/5}
.listen-section{padding:100px 6vw;display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center;background:#112219}.listen-copy{max-width:600px}.listen-copy p{font-size:1.08rem}.inline-links{display:flex;gap:20px;flex-wrap:wrap}.inline-links a,.text-link{color:var(--gold);font-weight:700;text-decoration:none}.spotify-wrap{background:#080d0a;padding:15px;border-radius:18px}.spotify-wrap iframe{border-radius:12px}
.watch-section,.past-section,.booking-section{padding:100px 6vw}.section-title{text-align:center;max-width:820px;margin:0 auto 45px}.reel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:1080px;margin:auto}.reel-card{background:#d6c092;padding:10px;min-height:600px;display:flex;align-items:flex-start;justify-content:center;overflow:hidden}.instagram-media{margin:0 auto!important;min-width:0!important;width:100%!important}.center{text-align:center;margin-top:35px}
.tour-section{padding:100px 6vw;background:#132219}.tour-list{max-width:1000px;margin:auto}.tour-row{display:grid;grid-template-columns:90px 1fr auto;gap:24px;align-items:center;padding:20px 0;border-top:1px solid rgba(255,255,255,.15)}.tour-row:last-child{border-bottom:1px solid rgba(255,255,255,.15)}.tour-row time{text-align:center}.tour-row time b{display:block;font-size:.68rem;text-transform:uppercase}.tour-row time span{font-family:Georgia,serif;font-size:2.2rem}.tour-row h3{font-family:Georgia,serif;font-size:1.45rem;margin-bottom:2px}.tour-row p{margin:0;color:#bdc8c0}.tour-row a{color:var(--gold);text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;font-weight:700}
.stamp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;max-width:1180px;margin:auto}.stamp{min-height:160px;padding:20px;border:2px solid rgba(111,73,36,.35);border-radius:50% 48% 52% 46%/45% 55% 48% 52%;display:flex;flex-direction:column;justify-content:center;text-align:center;transform:rotate(-1deg);background:rgba(255,255,255,.22)}.stamp:nth-child(even){transform:rotate(1deg)}.stamp span{text-transform:uppercase;letter-spacing:.15em;font-size:.65rem;color:var(--rust);font-weight:700}.stamp h3{font-family:"Special Elite",serif;font-size:1.15rem;margin:7px 0 0}
.story-section{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;padding:100px 6vw;background:#101b14}.story-photo img{aspect-ratio:4/5;object-fit:cover}.story-copy{max-width:620px}.story-copy p{font-size:1.08rem}
.gallery-section{display:grid;grid-template-columns:repeat(2,1fr);background:#0a100c}.gallery-section figure{margin:0;overflow:hidden}.gallery-section img{height:520px;object-fit:cover;transition:.45s;filter:saturate(.85)}.gallery-section img:hover{transform:scale(1.02);filter:saturate(1.05)}
.booking-section{display:grid;grid-template-columns:.65fr 1.35fr;gap:60px;align-items:center}.booking-art{max-height:580px;object-fit:cover;box-shadow:0 20px 55px rgba(52,38,20,.2)}.booking-copy{max-width:820px}
footer{padding:60px 6vw 30px;background:#080d0a;display:grid;grid-template-columns:1fr 1.5fr 1.2fr;gap:24px;align-items:start}footer strong{display:block;font-family:"Rye",serif;font-size:1.3rem}footer span{font-size:.72rem;text-transform:uppercase;letter-spacing:.15em}.footer-links{display:flex;gap:15px;flex-wrap:wrap}footer a{text-decoration:none}footer small{grid-column:1/-1;color:#89938c;margin-top:20px}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .75s ease}.reveal.visible{opacity:1;transform:none}

@media(max-width:900px){
  .site-header{padding:14px 20px}.menu-toggle{display:block;background:none;border:1px solid rgba(255,255,255,.55);color:white;padding:8px 12px}
  nav{display:none;position:absolute;top:63px;left:0;right:0;background:#0f1c15;padding:22px;flex-direction:column;align-items:flex-start}nav.open{display:flex}
  .hero{background-position:62% center}.hero-copy{padding-top:110px}
  .poster-stage,.listen-section,.story-section,.booking-section{grid-template-columns:1fr}
  .reel-grid{grid-template-columns:1fr}.reel-card{min-height:560px}
  .stamp-grid{grid-template-columns:repeat(2,1fr)}
  .gallery-section img{height:380px}
  footer{grid-template-columns:1fr}
}
@media(max-width:560px){
  h1{font-size:2.7rem}.actions{flex-direction:column}.button{width:100%}
  .manifesto,.art-story,.listen-section,.watch-section,.tour-section,.past-section,.story-section,.booking-section{padding:72px 22px}
  .poster-stage{gap:20px}.poster-small img{aspect-ratio:4/5}
  .tour-row{grid-template-columns:58px 1fr}.tour-row a{grid-column:2}
  .stamp-grid{grid-template-columns:1fr}
  .gallery-section{grid-template-columns:1fr}.gallery-section img{height:380px}
}

/* V4 featured film and song storytelling */
.featured-film{padding:0;background:#0a100c}
.film-card{position:relative;display:block;min-height:76vh;overflow:hidden;text-decoration:none;color:white}
.film-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.8)}
.film-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,9,6,.78),rgba(5,9,6,.15)),linear-gradient(0deg,rgba(5,9,6,.52),transparent)}
.film-copy{position:absolute;left:7vw;bottom:10vh;max-width:720px;z-index:2}
.film-copy small{display:block;text-transform:uppercase;letter-spacing:.2em;color:var(--gold);font-weight:700;margin-bottom:10px}
.film-copy strong{display:block;font-family:Georgia,serif;font-size:clamp(2.5rem,6vw,6rem);line-height:1.02}
.film-copy em{display:block;margin-top:16px;font-family:"Special Elite",serif;font-style:normal}
.play-button{position:absolute;right:7vw;bottom:10vh;z-index:2;width:92px;height:92px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.7);font-size:1.8rem;backdrop-filter:blur(8px);transition:.25s}
.film-card:hover .play-button{transform:scale(1.07);background:var(--rust)}

.songs-teaser{padding:100px 6vw}
.song-preview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:1180px;margin:auto}
.song-preview{padding:26px;min-height:220px;border-top:2px solid rgba(83,58,32,.35);background:rgba(255,255,255,.2)}
.song-preview span{font-family:"Special Elite",serif;color:var(--rust)}
.song-preview h3{font-family:Georgia,serif;font-size:1.5rem;margin:18px 0 8px}
.song-preview p{margin:0}

@media(max-width:900px){
  .film-card{min-height:68vh}
  .play-button{width:70px;height:70px}
  .song-preview-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:560px){
  .film-card{min-height:62vh}
  .film-copy{left:22px;right:22px;bottom:90px}
  .play-button{left:22px;right:auto;bottom:20px;width:58px;height:58px;font-size:1.2rem}
  .song-preview-grid{grid-template-columns:1fr}
  .songs-teaser{padding:72px 22px}
}


/* Songs page */
.songs-page{padding-top:68px}
.songs-hero{padding:120px 8vw 90px;text-align:center}
.songs-hero h1{color:var(--ink);text-shadow:none;font-family:Georgia,serif;font-size:clamp(3rem,7vw,7rem);max-width:1100px;margin:0 auto 25px}
.songs-hero>p:last-child{max-width:720px;margin:auto;font-size:1.15rem}
.song-listing{padding:80px 7vw;background:#112019}
.song-listing article{display:grid;grid-template-columns:90px 1fr;gap:30px;max-width:1050px;margin:auto;padding:30px 0;border-top:1px solid rgba(255,255,255,.16)}
.song-listing article:last-child{border-bottom:1px solid rgba(255,255,255,.16)}
.song-listing span{font-family:"Special Elite",serif;color:var(--gold);font-size:1.3rem}
.song-listing h2{font-family:Georgia,serif;font-size:2rem;margin-bottom:8px}
.song-listing p{margin:0;color:#c8d1cb}
.songs-cta{padding:90px 7vw;text-align:center}
.songs-cta h2{font-family:Georgia,serif;font-size:clamp(2.2rem,5vw,4.5rem);color:var(--ink)}
@media(max-width:700px){
  .songs-nav{display:none}
  .song-listing article{grid-template-columns:45px 1fr}
}


/* V4B adjustments */
.poster-stage.single-poster{
  grid-template-columns:minmax(0,760px);
  justify-content:center;
}
.poster-stage.single-poster .poster-large{
  transform:none;
}
.poster-stage.single-poster .poster-large img{
  aspect-ratio:auto;
  max-height:920px;
  object-fit:contain;
}
.tour-section{
  padding-top:78px;
  padding-bottom:88px;
}


/* V4F — easy-to-edit tour cards */
.shows-layout{
  max-width:1080px;
  margin:0 auto;
}
.shows-loading,
.shows-empty{
  text-align:center;
  color:#bdc8c0;
}
.next-show-card{
  position:relative;
  display:grid;
  grid-template-columns:auto auto 1fr auto;
  gap:28px;
  align-items:center;
  padding:34px;
  margin-bottom:22px;
  background:var(--cream);
  color:var(--ink);
  border:1px solid rgba(23,32,24,.15);
  box-shadow:0 20px 50px rgba(0,0,0,.18);
}
.next-show-label{
  position:absolute;
  top:0;
  left:0;
  padding:7px 12px;
  background:var(--rust);
  color:white;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.62rem;
  font-weight:700;
}
.next-show-date{
  text-align:center;
  min-width:82px;
  padding-top:12px;
}
.next-show-date span{
  display:block;
  color:var(--rust);
  text-transform:uppercase;
  letter-spacing:.13em;
  font-size:.72rem;
  font-weight:700;
}
.next-show-date strong{
  display:block;
  font-family:Georgia,serif;
  font-size:3.3rem;
  line-height:1;
}
.next-show-copy{
  padding-top:12px;
}
.next-show-copy p{
  margin-bottom:4px;
  color:#6d766e;
  font-size:.82rem;
}
.next-show-copy h3{
  margin:0 0 2px;
  font-family:Georgia,serif;
  font-size:2rem;
}
.next-show-copy span{
  color:#536056;
}
.other-shows{
  display:grid;
  gap:10px;
}
.compact-show-card{
  display:grid;
  grid-template-columns:82px 1fr auto;
  gap:22px;
  align-items:center;
  padding:18px 22px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.035);
}
.compact-show-card time{
  text-align:center;
}
.compact-show-card time b{
  display:block;
  color:var(--gold);
  font-size:.68rem;
  letter-spacing:.14em;
}
.compact-show-card time span{
  font-family:Georgia,serif;
  font-size:2rem;
}
.compact-show-card h3{
  margin:0 0 2px;
  font-family:Georgia,serif;
  font-size:1.35rem;
}
.compact-show-card p{
  margin:0;
  color:#bdc8c0;
}
.compact-show-card>a{
  color:var(--gold);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.7rem;
  font-weight:700;
}

@media(max-width:760px){
  .next-show-card{
    grid-template-columns:72px 1fr;
    padding:42px 22px 24px;
  }
  .next-show-card>.button{
    grid-column:1/-1;
    width:100%;
  }
  .compact-show-card{
    grid-template-columns:58px 1fr;
  }
  .compact-show-card>a{
    grid-column:2;
  }
}
