/* ==========================================================================
   THE COLLIERS — main stylesheet
   Coalfield Americana. Coal black · warm bone · ember · pit-lamp brass.
   ========================================================================== */

/* ---- Tokens ------------------------------------------------------------- */
:root{
  --coal:#0d0d0f;
  --coal-800:#141317;
  --coal-700:#1b1a1f;
  --coal-600:#232228;
  --char:#2b2a31;
  --bone:#f2ebdb;
  --bone-2:#e7dfcc;
  --bone-dim:#c9c0ad;
  --ash:#928b7d;
  --ash-2:#6f6a60;
  --ember:#d2662f;
  --ember-bright:#ea8144;
  --ember-deep:#a84a1e;
  --brass:#caa257;
  --brass-dim:#8f7638;
  --line:rgba(242,235,219,.12);
  --line-2:rgba(242,235,219,.06);

  --f-display:"Fraunces", Georgia, "Times New Roman", serif;
  --f-cond:"Oswald", system-ui, sans-serif;
  --f-body:"Work Sans", system-ui, -apple-system, sans-serif;
  --f-mono:"Space Mono", ui-monospace, "SFMono-Regular", monospace;

  --shell:1220px;
  --gutter:clamp(20px, 5vw, 64px);
  --radius:4px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ---- Reset / base ------------------------------------------------------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--coal);
  color:var(--bone);
  font-family:var(--f-body);
  font-size:17px;
  line-height:1.68;
  font-weight:400;
  letter-spacing:.005em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4{ margin:0; font-weight:600; line-height:1.04; letter-spacing:-.015em; }
p{ margin:0 0 1.1em; }
::selection{ background:var(--ember); color:#fff; }
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); border:0; }
.skip-link{ position:absolute; left:-999px; top:0; z-index:200; background:var(--ember); color:#fff; padding:10px 16px; }
.skip-link:focus{ left:12px; top:12px; }

/* Kill the hello-elementor 1140px content cap + centering so OUR sections go
   full-bleed and .shell handles width. Without this, content jams to the left. */
.site-main{ max-width:none !important; width:auto !important; margin:0 !important; padding:0 !important; }
.elementor, .page-content, .site-main > .elementor{ padding:0 !important; margin:0 !important; max-width:none !important; }
.site, .site-content, #content, .hello-elementor{ max-width:none !important; }

/* ---- Film grain overlay ------------------------------------------------- */
.grain{
  position:fixed; inset:0; z-index:1; pointer-events:none; opacity:.05; mix-blend-mode:overlay;
  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.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---- Layout ------------------------------------------------------------- */
.shell{ width:100%; max-width:var(--shell); margin:0 auto; padding-inline:var(--gutter); }
.section{ position:relative; z-index:2; padding-block:clamp(64px, 9vw, 132px); }
.section--tight{ padding-block:clamp(48px, 6vw, 84px); }
.center{ text-align:center; }

/* ---- Shared type helpers ----------------------------------------------- */
.eyebrow{
  font-family:var(--f-cond); font-weight:500; text-transform:uppercase;
  letter-spacing:.34em; font-size:.72rem; color:var(--ember);
  margin:0 0 1.1rem; display:inline-flex; align-items:center; gap:.7em;
}
.eyebrow::before{ content:""; width:26px; height:1px; background:var(--ember); opacity:.7; }
.eyebrow.center{ justify-content:center; }
.eyebrow.center::after{ content:""; width:26px; height:1px; background:var(--ember); opacity:.7; }

.h-display{
  font-family:var(--f-display);
  font-optical-sizing:auto;
  font-weight:600;
  font-size:clamp(2.4rem, 6vw, 4.6rem);
  line-height:1.02;
  letter-spacing:-.02em;
}
.h-xl{ font-family:var(--f-display); font-weight:600; font-size:clamp(2rem,4.4vw,3.2rem); line-height:1.06; }
.lede{ font-size:clamp(1.05rem,1.5vw,1.28rem); color:var(--bone-dim); max-width:62ch; line-height:1.6; }
.muted{ color:var(--ash); }
.mono{ font-family:var(--f-mono); font-size:.8rem; letter-spacing:.02em; }

/* ---- Buttons ------------------------------------------------------------ */
.btn{
  --bw:1.4px;
  display:inline-flex; align-items:center; gap:.6em;
  font-family:var(--f-cond); font-weight:500; text-transform:uppercase; letter-spacing:.14em;
  font-size:.82rem; line-height:1; padding:.98em 1.7em; border-radius:var(--radius);
  border:var(--bw) solid transparent; transition:.3s var(--ease); white-space:nowrap; position:relative;
}
.btn svg{ width:1.05em; height:1.05em; }
.btn-ember{ background:var(--ember); color:#160b04; box-shadow:0 0 0 rgba(210,102,47,0); }
.btn-ember:hover{ background:var(--ember-bright); box-shadow:0 12px 40px -12px rgba(210,102,47,.7); transform:translateY(-2px); }
.btn-ghost{ border-color:var(--line); color:var(--bone); }
.btn-ghost:hover{ border-color:var(--bone); background:rgba(242,235,219,.05); transform:translateY(-2px); }
.btn-brass{ background:transparent; border-color:var(--brass-dim); color:var(--brass); }
.btn-brass:hover{ border-color:var(--brass); color:var(--bone); }
.btn-lg{ padding:1.15em 2.1em; font-size:.9rem; }

/* ---- Header / nav ------------------------------------------------------- */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  transition:background .4s var(--ease), border-color .4s var(--ease), backdrop-filter .4s;
  border-bottom:1px solid transparent;
}
.site-header.is-stuck{
  background:rgba(13,13,15,.82); backdrop-filter:blur(14px) saturate(1.2);
  border-bottom-color:var(--line-2);
}
.header-inner{ display:flex; align-items:center; justify-content:space-between; height:80px; }
.brand{ display:inline-flex; align-items:center; gap:.7rem; }
.brand-mark{ width:38px; height:38px; color:var(--ember); display:block; transition:transform .5s var(--ease); }
.brand:hover .brand-mark{ transform:rotate(90deg); }
.brand-mark svg{ width:100%; height:100%; }
.brand-word{ display:flex; flex-direction:column; line-height:.9; }
.brand-the{ font-family:var(--f-cond); font-weight:500; text-transform:uppercase; letter-spacing:.42em; font-size:.56rem; color:var(--ash); margin-left:.1em; }
.brand-name{ font-family:var(--f-display); font-weight:600; font-size:1.32rem; letter-spacing:.01em; color:var(--bone); }

.primary-nav{ display:flex; align-items:center; gap:.35rem; }
.nav-link{
  font-family:var(--f-cond); font-weight:400; text-transform:uppercase; letter-spacing:.13em; font-size:.82rem;
  color:var(--bone-dim); padding:.6em .85em; border-radius:var(--radius); transition:color .25s; position:relative;
}
.nav-link::after{ content:""; position:absolute; left:.85em; right:.85em; bottom:.35em; height:1px; background:var(--ember); transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease); }
.nav-link:hover{ color:var(--bone); }
.nav-link:hover::after, .nav-link.is-active::after{ transform:scaleX(1); }
.nav-link.is-active{ color:var(--bone); }
.nav-merch{ color:var(--brass); }
.nav-cta{ margin-left:.6rem; }

.nav-toggle{ display:none; width:44px; height:44px; background:none; border:0; flex-direction:column; gap:5px; align-items:center; justify-content:center; }
.nav-toggle span{ width:24px; height:2px; background:var(--bone); transition:.3s var(--ease); }
.nav-toggle.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2){ opacity:0; }
.nav-toggle.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.mobile-menu{
  position:fixed; inset:0; z-index:99; background:var(--coal-800); padding:100px var(--gutter) 40px;
  transform:translateY(-100%); transition:transform .45s var(--ease); visibility:hidden; overflow-y:auto;
}
.mobile-menu.is-open{ transform:translateY(0); visibility:visible; }
.mobile-nav{ display:flex; flex-direction:column; gap:.35rem; }
.mobile-nav a{ font-family:var(--f-display); font-size:2rem; font-weight:600; padding:.35em 0; border-bottom:1px solid var(--line-2); color:var(--bone); }
.mobile-nav a.btn{ font-family:var(--f-cond); font-size:.95rem; border-bottom:0; margin-top:1rem; justify-content:center; }
.mobile-social{ display:flex; gap:1.4rem; margin-top:1.6rem; }
.mobile-social a{ font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.12em; font-size:.8rem; color:var(--ash); border:0; }

/* ---- HERO --------------------------------------------------------------- */
.hero{ position:relative; min-height:100svh; display:flex; align-items:flex-end; overflow:hidden; z-index:2; }
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-bg img{ width:100%; height:100%; object-fit:cover; object-position:center 30%; filter:grayscale(.35) contrast(1.05) brightness(.62) sepia(.12); }
.hero-bg::after{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(120% 80% at 20% 10%, rgba(210,102,47,.16), transparent 50%),
    linear-gradient(180deg, rgba(13,13,15,.55) 0%, rgba(13,13,15,.2) 34%, rgba(13,13,15,.86) 82%, var(--coal) 100%);
}
.hero-inner{ position:relative; z-index:2; width:100%; padding-bottom:clamp(48px,8vh,110px); padding-top:120px; }
.hero-kicker{ margin-bottom:1.4rem; }
.hero-title{
  font-family:var(--f-display); font-weight:600;
  font-size:clamp(3.4rem, 13vw, 11rem); line-height:.86; letter-spacing:-.03em;
  text-transform:uppercase; margin:0;
}
.hero-title .the{
  display:block; font-size:.2em; letter-spacing:.5em; font-weight:500; color:var(--ember);
  font-family:var(--f-cond); text-transform:uppercase; margin-bottom:.5em; margin-left:.3em;
}
.hero-sub{ margin-top:1.8rem; max-width:44ch; font-size:clamp(1.05rem,1.6vw,1.3rem); color:var(--bone-dim); }
.hero-actions{ margin-top:2.2rem; display:flex; gap:1rem; flex-wrap:wrap; }
.hero-meta{
  position:absolute; right:var(--gutter); bottom:clamp(48px,8vh,110px); z-index:2;
  text-align:right; display:flex; flex-direction:column; gap:.4rem;
}
.hero-meta .mono{ color:var(--ash); }
.hero-scroll{ position:absolute; left:50%; bottom:22px; transform:translateX(-50%); z-index:2; color:var(--ash); font-family:var(--f-mono); font-size:.66rem; letter-spacing:.3em; text-transform:uppercase; display:flex; flex-direction:column; align-items:center; gap:.5rem; }
.hero-scroll .line{ width:1px; height:44px; background:linear-gradient(var(--ember), transparent); animation:scrolldrop 2.2s var(--ease) infinite; }
@keyframes scrolldrop{ 0%{ transform:scaleY(0); transform-origin:top; } 45%{ transform:scaleY(1); transform-origin:top; } 55%{ transform:scaleY(1); transform-origin:bottom; } 100%{ transform:scaleY(0); transform-origin:bottom; } }

/* ---- Marquee ------------------------------------------------------------ */
.marquee{ border-block:1px solid var(--line); background:var(--coal-800); overflow:hidden; padding-block:1.05rem; position:relative; z-index:2; }
.marquee-track{ display:flex; gap:2.4rem; white-space:nowrap; width:max-content; animation:marquee 32s linear infinite; }
.marquee:hover .marquee-track{ animation-play-state:paused; }
.marquee span{ font-family:var(--f-display); font-style:italic; font-weight:500; font-size:1.15rem; color:var(--bone-dim); display:inline-flex; align-items:center; gap:2.4rem; }
.marquee span::after{ content:"✦"; color:var(--ember); font-style:normal; font-size:.7em; }
@keyframes marquee{ to{ transform:translateX(-50%); } }

/* ---- Section intro ------------------------------------------------------ */
.sec-head{ max-width:640px; margin-bottom:clamp(2.4rem,4vw,3.6rem); }
.sec-head.center{ margin-inline:auto; }
.sec-title{ font-family:var(--f-display); font-weight:600; font-size:clamp(2rem,4.6vw,3.4rem); line-height:1.02; }
.sec-sub{ margin-top:1rem; color:var(--bone-dim); font-size:1.08rem; }

/* ---- Intro / about band strip ------------------------------------------ */
.split{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,5rem); align-items:center; }
.split.reverse{ direction:rtl; } .split.reverse > *{ direction:ltr; }
.split-media{ position:relative; }
.split-media img{ width:100%; border-radius:var(--radius); filter:grayscale(.2) contrast(1.03); }
.split-media .frame{ position:absolute; inset:14px; border:1px solid var(--line); pointer-events:none; }
.split-media .tag{ position:absolute; bottom:16px; left:16px; background:var(--coal); border:1px solid var(--line); padding:.5em .9em; }

/* Pull-quote / lyric */
.lyric{ font-family:var(--f-display); font-style:italic; font-weight:500; font-size:clamp(1.5rem,3.4vw,2.5rem); line-height:1.28; color:var(--bone); letter-spacing:-.01em; }
.lyric .attr{ display:block; margin-top:1.2rem; font-family:var(--f-cond); font-style:normal; text-transform:uppercase; letter-spacing:.22em; font-size:.72rem; color:var(--ember); }

/* ---- Feature trio ------------------------------------------------------- */
.trio{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.2rem,2.4vw,2rem); }
.feat{ border:1px solid var(--line); border-radius:var(--radius); padding:2rem 1.8rem; background:linear-gradient(180deg, var(--coal-800), var(--coal)); transition:.35s var(--ease); }
.feat:hover{ border-color:var(--ember); transform:translateY(-4px); }
.feat .n{ font-family:var(--f-mono); color:var(--ember); font-size:.78rem; letter-spacing:.1em; }
.feat h3{ font-family:var(--f-display); font-size:1.5rem; margin:.7rem 0 .5rem; }
.feat p{ color:var(--ash); font-size:.97rem; margin:0; }

/* ---- Releases ----------------------------------------------------------- */
.releases{ display:flex; flex-direction:column; gap:clamp(1.4rem,3vw,2.4rem); }
.release{
  display:grid; grid-template-columns:auto 1fr auto; gap:clamp(1.4rem,3vw,2.6rem); align-items:start;
  border:1px solid var(--line); border-radius:var(--radius); padding:clamp(1.4rem,2.6vw,2.4rem);
  background:var(--coal-800); position:relative; overflow:hidden;
}
.release.is-new{ border-color:rgba(210,102,47,.4); background:linear-gradient(120deg, rgba(210,102,47,.08), var(--coal-800) 46%); }
.release-cover{ width:clamp(120px,16vw,190px); aspect-ratio:1; border-radius:var(--radius); background:var(--coal-700); border:1px solid var(--line); display:grid; place-items:center; overflow:hidden; position:relative; }
.release-cover .wheel{ width:52%; color:var(--char); }
.release.is-new .release-cover{ background:radial-gradient(120% 120% at 30% 20%, rgba(210,102,47,.28), var(--coal-700)); }
.release.is-new .release-cover .wheel{ color:var(--ember); }
.release-cover .soon{ position:absolute; bottom:0; left:0; right:0; text-align:center; font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.2em; font-size:.62rem; color:var(--bone); padding:.5em; background:rgba(13,13,15,.5); }
.release-body{ min-width:0; }
.release-status{ font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.2em; font-size:.7rem; color:var(--ember); }
.release.is-new .release-status{ color:var(--ember-bright); }
.release-title{ font-family:var(--f-display); font-size:clamp(1.7rem,3.4vw,2.6rem); margin:.25rem 0 .1rem; }
.release-year{ font-family:var(--f-mono); color:var(--ash); font-size:.85rem; }
.release-note{ color:var(--bone-dim); margin:.9rem 0 0; max-width:52ch; }
.tracklist{ list-style:none; margin:1.4rem 0 0; padding:0; display:grid; gap:.1rem; max-width:420px; }
.tracklist li{ display:flex; align-items:baseline; gap:.9rem; padding:.55rem 0; border-bottom:1px solid var(--line-2); font-size:.98rem; }
.tracklist li .tno{ font-family:var(--f-mono); color:var(--ember); font-size:.78rem; width:1.4em; }
.tracklist li .ttitle{ flex:1; }
.tracklist li .tlen{ font-family:var(--f-mono); color:var(--ash); font-size:.8rem; }
.tracklist li.lead .ttitle{ color:var(--bone); font-weight:600; }
.release-actions{ display:flex; flex-direction:column; gap:.7rem; align-items:stretch; min-width:170px; }
.release-actions .btn{ justify-content:center; }
@media(max-width:820px){
  .release{ grid-template-columns:1fr; }
  .release-actions{ flex-direction:row; flex-wrap:wrap; }
}

/* Streaming embed */
.embed-wrap{ border:1px solid var(--line); border-radius:12px; overflow:hidden; background:var(--coal-800); }
.embed-wrap iframe{ display:block; width:100%; border:0; }

/* ---- Shows / live ------------------------------------------------------- */
.shows{ display:flex; flex-direction:column; }
.show-row{
  display:grid; grid-template-columns:130px 1fr auto; gap:1.6rem; align-items:center;
  padding:1.5rem 0; border-top:1px solid var(--line); transition:.3s var(--ease);
}
.show-row:last-child{ border-bottom:1px solid var(--line); }
.show-row:hover{ padding-inline:1rem; background:linear-gradient(90deg, rgba(210,102,47,.06), transparent); }
.show-date{ font-family:var(--f-mono); color:var(--ember); font-size:.9rem; letter-spacing:.02em; }
.show-venue{ font-family:var(--f-display); font-size:1.4rem; }
.show-city{ color:var(--ash); font-size:.95rem; font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.14em; }
.show-empty{ border:1px dashed var(--line); border-radius:var(--radius); padding:clamp(2.4rem,5vw,4rem); text-align:center; background:var(--coal-800); }
.show-empty .h-xl{ margin-bottom:.6rem; }

/* ---- Gallery ------------------------------------------------------------ */
.gallery-grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(.6rem,1.2vw,1rem); grid-auto-flow:dense; }
.gitem{ position:relative; overflow:hidden; border-radius:var(--radius); background:var(--coal-700); }
.gitem img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease), filter .5s; filter:grayscale(.25) contrast(1.04); }
.gitem:hover img{ transform:scale(1.06); filter:grayscale(0) contrast(1.06); }
.gitem::after{ content:""; position:absolute; inset:0; box-shadow:inset 0 0 0 1px var(--line); pointer-events:none; }
.gitem .cap{ position:absolute; left:12px; bottom:12px; z-index:2; font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.14em; font-size:.66rem; color:var(--bone); opacity:0; transform:translateY(6px); transition:.4s var(--ease); background:rgba(13,13,15,.55); padding:.35em .6em; }
.gitem:hover .cap{ opacity:1; transform:translateY(0); }
.g-w6{ grid-column:span 6; } .g-w4{ grid-column:span 4; } .g-w8{ grid-column:span 8; } .g-w12{ grid-column:span 12; }
.g-tall{ grid-row:span 2; }
.gitem.ratio-4x3{ aspect-ratio:4/3; } .gitem.ratio-1x1{ aspect-ratio:1/1; } .gitem.ratio-16x9{ aspect-ratio:16/9; } .gitem.ratio-3x4{ aspect-ratio:3/4; }
@media(max-width:760px){
  .gallery-grid{ grid-template-columns:repeat(2,1fr); }
  .g-w6,.g-w4,.g-w8,.g-w12{ grid-column:span 1; }
  .g-w12{ grid-column:span 2; }
  .g-tall{ grid-row:span 1; }
}

/* ---- Merch -------------------------------------------------------------- */
.merch-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.2rem,2.4vw,2rem); }
.merch{ border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--coal-800); display:flex; flex-direction:column; transition:.35s var(--ease); }
.merch:hover{ border-color:var(--brass); transform:translateY(-5px); }
.merch-vis{ aspect-ratio:1; position:relative; display:grid; place-items:center; overflow:hidden; background:radial-gradient(130% 130% at 50% 25%, var(--coal-600), var(--coal-800)); }
.merch-vis .wheel{ width:44%; color:var(--char); transition:.5s var(--ease); }
.merch:hover .merch-vis .wheel{ color:var(--brass); transform:rotate(60deg); }
.merch-vis .badge{ position:absolute; top:12px; left:12px; font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.16em; font-size:.62rem; color:var(--coal); background:var(--brass); padding:.35em .7em; border-radius:2px; }
.merch-body{ padding:1.4rem 1.4rem 1.6rem; display:flex; flex-direction:column; gap:.3rem; flex:1; }
.merch-name{ font-family:var(--f-display); font-size:1.3rem; }
.merch-desc{ color:var(--ash); font-size:.9rem; flex:1; }
.merch-foot{ display:flex; align-items:center; justify-content:space-between; margin-top:1rem; gap:1rem; }
.merch-price{ font-family:var(--f-mono); font-size:1.15rem; color:var(--bone); }
@media(max-width:820px){ .merch-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:520px){ .merch-grid{ grid-template-columns:1fr; } }

/* ---- EPK / stats -------------------------------------------------------- */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.stat{ background:var(--coal-800); padding:1.8rem 1.4rem; text-align:center; }
.stat .num{ font-family:var(--f-display); font-size:clamp(1.8rem,4vw,2.8rem); color:var(--ember); line-height:1; }
.stat .lab{ font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.16em; font-size:.68rem; color:var(--ash); margin-top:.6rem; }
@media(max-width:640px){ .stats{ grid-template-columns:repeat(2,1fr); } }

.spec-list{ list-style:none; margin:0; padding:0; }
.spec-list li{ display:flex; gap:1.2rem; padding:.85rem 0; border-bottom:1px solid var(--line-2); }
.spec-list li .k{ font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.14em; font-size:.74rem; color:var(--ember); min-width:150px; padding-top:.15em; }
.spec-list li .v{ color:var(--bone-dim); }

/* ---- Members ------------------------------------------------------------ */
.members{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:1.4rem; }
.member{ text-align:center; }
.member .ring{ width:clamp(90px,12vw,128px); aspect-ratio:1; margin:0 auto .9rem; border-radius:50%; border:1px solid var(--line); display:grid; place-items:center; color:var(--char); background:var(--coal-800); }
.member .ring svg{ width:48%; }
.member .mname{ font-family:var(--f-display); font-size:1.2rem; }
.member .mrole{ font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.16em; font-size:.68rem; color:var(--ember); margin-top:.2rem; }

/* ---- CTA band ----------------------------------------------------------- */
.cta-band{ position:relative; z-index:2; text-align:center; padding-block:clamp(70px,10vw,140px); border-block:1px solid var(--line); background:radial-gradient(120% 130% at 50% 0%, rgba(210,102,47,.12), var(--coal) 60%); overflow:hidden; }
.cta-band .badge-bg{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:min(680px,90vw); color:rgba(242,235,219,.03); pointer-events:none; }
.cta-band .badge-bg svg{ width:100%; }
.cta-title{ font-family:var(--f-display); font-size:clamp(2.2rem,5.5vw,4rem); line-height:1; position:relative; }
.cta-sub{ margin:1.2rem auto 2rem; max-width:48ch; color:var(--bone-dim); position:relative; }

/* ---- Signup band -------------------------------------------------------- */
.signup{ position:relative; z-index:2; background:var(--coal-800); border-top:1px solid var(--line); padding-block:clamp(48px,7vw,90px); }
.signup-inner{ display:grid; grid-template-columns:1fr auto; gap:clamp(1.6rem,4vw,4rem); align-items:center; }
.signup-title{ font-family:var(--f-display); font-size:clamp(1.8rem,3.6vw,2.8rem); }
.signup-sub{ color:var(--ash); margin:.6rem 0 0; max-width:46ch; }
.signup-form{ display:flex; gap:.7rem; flex-wrap:wrap; align-items:center; }
.signup-form input{
  background:var(--coal); border:1px solid var(--line); color:var(--bone); border-radius:var(--radius);
  padding:.95em 1.1em; font-family:var(--f-body); font-size:1rem; min-width:min(320px,72vw); transition:border-color .25s;
}
.signup-form input:focus{ outline:none; border-color:var(--ember); }
.signup-note{ width:100%; margin:.2rem 0 0; font-family:var(--f-mono); font-size:.76rem; color:var(--brass); }
@media(max-width:760px){ .signup-inner{ grid-template-columns:1fr; } }

/* ---- Footer ------------------------------------------------------------- */
.site-footer{ position:relative; z-index:2; background:var(--coal); border-top:1px solid var(--line); padding-top:clamp(48px,6vw,80px); }
.footer-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:clamp(1.6rem,3vw,3rem); padding-bottom:3rem; }
.footer-mark{ width:44px; height:44px; color:var(--ember); display:block; margin-bottom:1rem; }
.footer-mark svg{ width:100%; height:100%; }
.footer-word{ font-family:var(--f-display); font-size:1.5rem; margin:0; }
.footer-tag{ color:var(--ash); margin:.4rem 0 0; font-size:.92rem; max-width:34ch; }
.footer-town{ font-family:var(--f-mono); color:var(--ash-2); font-size:.78rem; margin:.6rem 0 0; }
.footer-h{ font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.18em; font-size:.72rem; color:var(--bone); margin:0 0 1rem; }
.footer-col a{ display:block; color:var(--ash); padding:.35em 0; font-size:.95rem; transition:color .2s, padding-left .2s; }
.footer-col a:hover{ color:var(--ember); padding-left:.4em; }
.footer-base{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-block:1.6rem; border-top:1px solid var(--line-2); font-size:.82rem; color:var(--ash-2); }
.footer-credit span{ color:var(--ember); }
@media(max-width:820px){ .footer-grid{ grid-template-columns:1fr 1fr; } .footer-brand{ grid-column:1/-1; } }
@media(max-width:520px){ .footer-grid{ grid-template-columns:1fr; } .footer-base{ flex-direction:column; text-align:center; } }

/* ---- Page hero (interior pages) ---------------------------------------- */
.page-hero{ position:relative; z-index:2; padding-top:calc(80px + clamp(48px,8vw,110px)); padding-bottom:clamp(36px,5vw,64px); border-bottom:1px solid var(--line); overflow:hidden; }
.page-hero::before{ content:""; position:absolute; inset:0; background:radial-gradient(100% 120% at 85% 0%, rgba(210,102,47,.1), transparent 55%); z-index:-1; }
.page-hero .eyebrow{ margin-bottom:1.2rem; }
.page-hero h1{ font-family:var(--f-display); font-weight:600; font-size:clamp(2.6rem,7vw,5.2rem); line-height:.98; letter-spacing:-.02em; }
.page-hero .lede{ margin-top:1.4rem; }
.page-hero .ghost-word{ position:absolute; right:-2%; bottom:-30%; font-family:var(--f-display); font-weight:600; font-size:22vw; color:rgba(242,235,219,.02); pointer-events:none; z-index:-1; text-transform:uppercase; line-height:1; }

/* ---- Contact ------------------------------------------------------------ */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4.5rem); }
.contact-card{ border:1px solid var(--line); border-radius:var(--radius); padding:1.8rem; background:var(--coal-800); }
.contact-card h3{ font-family:var(--f-display); font-size:1.35rem; margin-bottom:.5rem; }
.contact-card a.big{ font-family:var(--f-mono); color:var(--ember); font-size:1.05rem; word-break:break-word; }
.contact-socials{ display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1rem; }
.contact-socials a{ border:1px solid var(--line); border-radius:var(--radius); padding:.6em 1em; font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.12em; font-size:.76rem; color:var(--bone-dim); transition:.25s; }
.contact-socials a:hover{ border-color:var(--ember); color:var(--bone); }
.field{ display:flex; flex-direction:column; gap:.5rem; margin-bottom:1.2rem; }
.field label{ font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.14em; font-size:.72rem; color:var(--ash); }
.field input, .field textarea, .field select{
  background:var(--coal); border:1px solid var(--line); color:var(--bone); border-radius:var(--radius);
  padding:.9em 1em; font-family:var(--f-body); font-size:1rem; transition:border-color .2s;
}
.field input:focus, .field textarea:focus, .field select:focus{ outline:none; border-color:var(--ember); }
.field textarea{ resize:vertical; min-height:130px; }
@media(max-width:820px){ .contact-grid{ grid-template-columns:1fr; } }

/* ---- Prose (generic) ---------------------------------------------------- */
.prose{ max-width:70ch; }
.prose p{ color:var(--bone-dim); font-size:1.08rem; }
.prose h2{ font-family:var(--f-display); font-size:1.8rem; margin:2.2rem 0 .8rem; }
.prose h3{ font-family:var(--f-display); font-size:1.35rem; margin:1.8rem 0 .6rem; }
.prose a{ color:var(--ember); text-decoration:underline; text-underline-offset:3px; }
.prose strong{ color:var(--bone); }

/* ---- Reveal animation --------------------------------------------------- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.08s; } .reveal.d2{ transition-delay:.16s; } .reveal.d3{ transition-delay:.24s; } .reveal.d4{ transition-delay:.32s; }
@media(prefers-reduced-motion:reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  .marquee-track, .hero-scroll .line, .brand:hover .brand-mark{ animation:none !important; }
  html{ scroll-behavior:auto; }
}

/* ---- Responsive nav ----------------------------------------------------- */
@media(max-width:960px){
  .primary-nav{ display:none; }
  .nav-toggle{ display:flex; }
  .split{ grid-template-columns:1fr; }
  .split.reverse{ direction:ltr; }
  .trio{ grid-template-columns:1fr; }
  .hero-meta{ display:none; }
}
@media(max-width:600px){
  body{ font-size:16px; }
  .show-row{ grid-template-columns:1fr auto; gap:.4rem 1rem; }
  .show-row .show-city{ grid-column:1/-1; }
  .stats{ grid-template-columns:repeat(2,1fr); }
}
