/* ── Rue '66 ───────────────────────────────────────────────
   1960s French yé-yé. Ink on paper, tricolore, op-art.
   ─────────────────────────────────────────────────────────── */

:root{
  --ink:      #0b0b0b;
  --ink-soft: #2a2a2a;
  --paper:    #f5f2ea;
  --paper-2:  #ece7db;
  --bleu:     #1c2d6b;
  --rouge:    #d2233c;
  --rule:     rgba(11,11,11,.18);
  --rule-lt:  rgba(255,255,255,.2);

  --display: "Anton", Impact, "Arial Narrow Bold", sans-serif;
  --body:    "Archivo", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;

  --gut: clamp(1.25rem, 4vw, 3rem);
  --max: 1180px;
}

*,*::before,*::after{ box-sizing:border-box; }

html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--body);
  font-size:clamp(1rem,.97rem + .18vw,1.075rem);
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; height:auto; display:block; }

a{ color:var(--ink); text-decoration-color:var(--rouge); text-underline-offset:.18em; text-decoration-thickness:.09em; }
a:hover{ color:var(--rouge); }

:focus-visible{ outline:3px solid var(--rouge); outline-offset:3px; }

.skip{
  position:absolute; left:-9999px; top:0; z-index:100;
  background:var(--ink); color:#fff; padding:.7rem 1rem; font-weight:700;
}
.skip:focus{ left:.5rem; top:.5rem; }

.wrap{ max-width:var(--max); margin-inline:auto; padding-inline:var(--gut); }

.wrap--split{
  display:grid; gap:clamp(2rem,5vw,4rem);
  grid-template-columns:1fr;
  align-items:start;
}
@media (min-width:900px){
  .wrap--split{ grid-template-columns:1.15fr .85fr; }
}

/* ── Tricolore rule ─────────────────────────────────────── */
.tricolore{ display:flex; height:7px; width:100%; }
.tricolore i{ flex:1; }
.tricolore i:nth-child(1){ background:var(--bleu); }
.tricolore i:nth-child(2){ background:var(--paper); }
.tricolore i:nth-child(3){ background:var(--rouge); }

/* ── Checkerboard divider ───────────────────────────────── */
.checker{
  height:26px;
  background-image:
    linear-gradient(45deg,var(--ink) 25%,transparent 25%,transparent 75%,var(--ink) 75%),
    linear-gradient(45deg,var(--ink) 25%,transparent 25%,transparent 75%,var(--ink) 75%);
  background-size:26px 26px;
  background-position:0 0, 13px 13px;
  background-color:var(--paper);
}

/* ── Nav ────────────────────────────────────────────────── */
.nav{
  position:sticky; top:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  flex-wrap:wrap;
  padding:.6rem var(--gut);
  background:rgba(245,242,234,.94);
  backdrop-filter:saturate(160%) blur(10px);
  border-bottom:2px solid var(--ink);
}
.nav__mark{
  display:flex; align-items:center; gap:.5rem;
  font-family:var(--display); font-size:1.3rem; letter-spacing:.02em;
  text-decoration:none; color:var(--ink); text-transform:uppercase;
}
.nav__links{ display:flex; flex-wrap:wrap; gap:.15rem .95rem; min-width:0; }
.nav__mark{ flex:0 0 auto; }
.nav__links a{
  text-decoration:none; font-weight:600; font-size:.83rem;
  letter-spacing:.11em; text-transform:uppercase;
  padding:.3rem 0; border-bottom:2px solid transparent;
}
.nav__links a:hover{ border-bottom-color:var(--rouge); color:var(--ink); }

/* ── Hero ───────────────────────────────────────────────── */
.hero{
  position:relative; isolation:isolate;
  display:grid; place-items:center;
  min-height:min(88svh,760px);
  padding:clamp(3rem,9vw,6.5rem) var(--gut) clamp(3.5rem,8vw,5rem);
  background:var(--ink);
  text-align:center;
  overflow:hidden;
}
.hero__bg{
  position:absolute; inset:0; z-index:-1;
  width:100%; height:100%; object-fit:cover; object-position:50% 28%;
  opacity:.42;
  filter:grayscale(1) contrast(1.12);
}
.hero::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:radial-gradient(120% 80% at 50% 42%, transparent 20%, rgba(0,0,0,.72) 78%);
}
.hero__inner{ width:min(100%,52rem); }
.hero__shield{
  width:clamp(84px,12vw,140px); height:auto; margin:0 auto clamp(.75rem,2vw,1.25rem);
  filter:drop-shadow(0 6px 18px rgba(0,0,0,.55));
}
.hero__title{
  font-family:var(--display); font-weight:400;
  font-size:clamp(4.2rem,17vw,11rem);
  line-height:.82; letter-spacing:-.01em; text-transform:uppercase;
  color:var(--paper); margin:0;
  display:flex; justify-content:center; align-items:baseline; gap:.06em; flex-wrap:wrap;
  text-shadow:0 4px 24px rgba(0,0,0,.5);
}
.hero__title-num{ color:var(--rouge); }
.hero__tag{
  font-family:var(--display); text-transform:uppercase;
  font-size:clamp(.74rem,2.6vw,1.15rem); letter-spacing:.15em;
  text-wrap:balance;
  color:var(--paper); margin:1.15rem 0 0;
}
.hero__sub{
  color:rgba(245,242,234,.82);
  max-width:36rem; margin:.9rem auto 0; font-size:1.03rem;
}
.hero__sub em{ color:var(--paper); }
.hero__cta{ display:flex; gap:.75rem; justify-content:center; flex-wrap:wrap; margin-top:2rem; }
.hero .tricolore{ position:absolute; left:0; right:0; bottom:0; }

/* ── Buttons ────────────────────────────────────────────── */
.btn{
  display:inline-block; text-decoration:none;
  font-family:var(--display); text-transform:uppercase;
  letter-spacing:.13em; font-size:.9rem;
  padding:.85rem 1.6rem;
  border:2px solid transparent;
  transition:transform .12s ease, background .15s ease, color .15s ease;
}
.btn:hover{ transform:translateY(-2px); }
.btn--rouge{ background:var(--rouge); color:#fff; border-color:var(--rouge); }
.btn--rouge:hover{ background:#b31c31; color:#fff; }
.btn--ghost{ color:var(--paper); border-color:var(--paper); }
.btn--ghost:hover{ background:var(--paper); color:var(--ink); }
.btn--ghost-light{ color:var(--paper); border-color:rgba(245,242,234,.5); }
.btn--ghost-light:hover{ background:var(--paper); color:var(--ink); }
.btn--sm{ font-size:.78rem; padding:.6rem 1.15rem; }

/* ── Sections ───────────────────────────────────────────── */
.sec{ padding:clamp(3.5rem,8vw,6.5rem) 0; }
.sec--paper2{ background:var(--paper-2); }
.sec--ink{ background:var(--ink); color:var(--paper); }
.sec--ink a{ color:var(--paper); text-decoration-color:var(--rouge); }
.sec--ink a:hover{ color:var(--rouge); }

.kicker{
  font-family:var(--display); text-transform:uppercase;
  letter-spacing:.24em; font-size:.76rem; color:var(--rouge);
  margin:0 0 .5rem;
}
.kicker--light{ color:var(--rouge); }

.h2{
  font-family:var(--display); font-weight:400;
  font-size:clamp(2.3rem,6.5vw,4rem); line-height:.95;
  letter-spacing:-.005em; text-transform:uppercase;
  margin:0 0 1rem;
}
.h2--light{ color:var(--paper); }

.h3{
  font-family:var(--display); font-weight:400; text-transform:uppercase;
  letter-spacing:.06em; font-size:1.5rem; margin:2.4rem 0 .8rem;
}
.h3--rule{ border-top:2px solid var(--rule); padding-top:1.1rem; }
.sec--ink .h3--rule{ border-top-color:var(--rule-lt); }

.lede{ font-size:1.13rem; max-width:44rem; }
.lede--light{ color:rgba(245,242,234,.8); }

.quote{
  margin:2rem 0 0; padding:1.1rem 0 1.1rem 1.4rem;
  border-left:5px solid var(--rouge);
}
.quote p{
  font-family:var(--display); font-weight:400;
  font-size:clamp(1.25rem,2.6vw,1.7rem); line-height:1.24;
  margin:0 0 .55rem; text-transform:none;
}
.quote cite{ font-style:normal; font-size:.85rem; letter-spacing:.06em; text-transform:uppercase; opacity:.72; }
.quote--sm p{ font-size:clamp(1.05rem,2vw,1.3rem); }

.figure{ margin:0; }
.figure img{ width:100%; border:3px solid var(--ink); }
.sec--ink .figure img{ border-color:var(--paper); }
.figure figcaption{
  font-size:.8rem; letter-spacing:.1em; text-transform:uppercase;
  opacity:.65; margin-top:.6rem;
}
.figure--merch img{ background:#fff; }
@media (min-width:900px){
  .figure--merch{ position:sticky; top:5.5rem; }
}

/* ── Releases ───────────────────────────────────────────── */
.releases{ display:grid; gap:clamp(2.5rem,6vw,4rem); margin-top:2.75rem; }

.release{
  display:grid; gap:clamp(1.5rem,4vw,2.5rem);
  grid-template-columns:1fr;
  align-items:start;
  padding-top:clamp(2rem,4vw,2.5rem);
  border-top:2px solid var(--rule-lt);
}
.releases > .release:first-child{ border-top:0; padding-top:0; }
@media (min-width:820px){
  .release{ grid-template-columns:minmax(0,300px) 1fr; }
}
.release__art{ width:100%; border:3px solid var(--paper); }
.release__meta{
  font-size:.75rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--rouge); margin:0 0 .35rem; font-weight:700;
}
.release__title{
  font-family:var(--display); font-weight:400; text-transform:uppercase;
  font-size:clamp(1.9rem,4.5vw,2.8rem); line-height:1; margin:0 0 .8rem;
  color:var(--paper);
}
.release__body p{ color:rgba(245,242,234,.82); }
.release__body strong,.release__body em{ color:var(--paper); }

.tracks{
  list-style:none; counter-reset:t; padding:0; margin:1.5rem 0 0;
  border-top:1px solid var(--rule-lt);
}
.tracks li{
  counter-increment:t;
  display:flex; flex-wrap:wrap; align-items:baseline; gap:.5rem;
  padding:.5rem 0; border-bottom:1px solid var(--rule-lt);
  font-size:.95rem;
}
.tracks li::before{
  content:counter(t,decimal-leading-zero);
  font-family:var(--display); color:var(--rouge);
  font-size:.8rem; min-width:1.9rem; letter-spacing:.05em;
}
.tracks li span{ color:var(--paper); font-weight:600; }
.tracks li em{ font-style:italic; opacity:.6; font-size:.85rem; }
@media (min-width:640px){
  .tracks--two{ columns:2; column-gap:2.5rem; }
  .tracks--two li{ break-inside:avoid; }
}
.release__links{ display:flex; gap:.6rem; flex-wrap:wrap; margin-top:1.6rem; }

/* ── Video grid ─────────────────────────────────────────── */
.videos{
  display:grid; gap:1.35rem; margin-top:2.5rem;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));
}
.vid{ margin:0; }
.vid__btn{
  display:block; position:relative; width:100%; padding:0;
  border:3px solid var(--ink); background:var(--ink);
  cursor:pointer; overflow:hidden; aspect-ratio:16/9;
  font:inherit; color:inherit;
}
.vid__btn img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .3s ease, opacity .2s ease;
}
.vid__btn:hover img{ transform:scale(1.05); opacity:.75; }
.vid__play{
  position:absolute; inset:0; display:grid; place-items:center;
  pointer-events:none;
}
.vid__play span{
  width:56px; height:56px; border-radius:50%;
  background:var(--rouge); display:grid; place-items:center;
  box-shadow:0 4px 18px rgba(0,0,0,.45);
  transition:transform .2s ease;
}
.vid__btn:hover .vid__play span{ transform:scale(1.12); }
.vid__play svg{ width:20px; height:20px; margin-left:3px; fill:#fff; }
.vid__cap{
  font-size:.88rem; font-weight:600; line-height:1.35;
  margin-top:.6rem;
}
.vid iframe{ width:100%; aspect-ratio:16/9; border:3px solid var(--ink); display:block; }

.more{ margin-top:2rem; font-family:var(--display); text-transform:uppercase; letter-spacing:.12em; font-size:.95rem; }
.more a{ text-decoration:none; border-bottom:2px solid var(--rouge); }

/* ── Members ────────────────────────────────────────────── */
.members{
  list-style:none; padding:0; margin:2.5rem 0 0;
  display:grid; gap:0;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));
  border-top:2px solid var(--rule);
}
.members{ border-bottom:1px solid var(--rule); }
.members li{
  padding:.9rem 0; border-bottom:1px solid var(--rule);
  display:flex; flex-direction:column;
}
.members b{
  font-family:var(--display); font-weight:400; text-transform:uppercase;
  font-size:1.22rem; letter-spacing:.02em; line-height:1.15;
}
.members span{ font-size:.83rem; letter-spacing:.06em; opacity:.7; }

.memoriam{
  display:grid; gap:clamp(2rem,5vw,3.5rem); margin-top:3rem;
  grid-template-columns:1fr;
  align-items:start;
}
@media (min-width:900px){ .memoriam{ grid-template-columns:1.2fr .8fr; } }

/* ── Shows ──────────────────────────────────────────────── */
.shows-empty{
  margin-top:2rem; padding:1.6rem 1.75rem;
  border:3px solid var(--ink); background:#fff;
}
.shows-empty p{ margin:0; }
.shows-empty p + p{ margin-top:.4rem; opacity:.75; font-size:.95rem; }

.gigs{ list-style:none; padding:0; margin:0; border-top:2px solid var(--rule); }
.gigs li{
  display:grid; gap:.1rem .9rem; align-items:baseline;
  grid-template-columns:1fr;
  padding:.85rem 0; border-bottom:1px solid var(--rule);
}
@media (min-width:640px){
  .gigs li{ grid-template-columns:9.5rem 1fr auto; }
}
.gigs time{
  font-family:var(--display); text-transform:uppercase;
  letter-spacing:.08em; font-size:.95rem; color:var(--rouge);
}
.gigs b{ font-weight:700; }
.gigs span{ font-size:.85rem; letter-spacing:.08em; text-transform:uppercase; opacity:.6; }

/* ── Gallery ────────────────────────────────────────────── */
.gallery{
  display:grid; gap:1.1rem; margin-top:2.5rem;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));
  grid-auto-flow:dense;
}
.gallery figure{ margin:0; overflow:hidden; border:3px solid var(--paper); }
.gallery img{
  width:100%; height:100%; object-fit:cover; aspect-ratio:4/3;
  transition:transform .4s ease;
}
.gallery figure:hover img{ transform:scale(1.045); }
.gallery figure:first-child{ grid-column:span 2; }
.gallery figure:first-child img{ aspect-ratio:16/9; }
@media (max-width:640px){
  .gallery figure:first-child{ grid-column:span 1; }
}

/* ── Links list ─────────────────────────────────────────── */
.links{ list-style:none; padding:0; margin:0; }
.links li{ padding:.45rem 0; border-bottom:1px solid var(--rule); font-size:.97rem; }
.links a{ font-weight:600; }

/* ── Footer ─────────────────────────────────────────────── */
.foot{ background:var(--ink); color:var(--paper); }
.foot__inner{ padding-top:2.5rem; padding-bottom:2.5rem; text-align:center; }
.foot__inner img{ margin:0 auto 1rem; }
.foot__inner p{ margin:.2rem 0; }
.foot__inner b{ font-family:var(--display); font-weight:400; text-transform:uppercase; letter-spacing:.05em; font-size:1.1rem; }
.foot__small{ font-size:.78rem; opacity:.55; margin-top:.9rem !important; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
}
