/* ===========================================================
   DOWNEAST HARDCORE — STORIES FROM THE KAVE
   Fan-cooler concept site. DIY flyer / basement-show aesthetic.
   =========================================================== */

:root{
  --black: #0a0a0b;
  --near-black: #141414;
  --card: #18181a;
  --paper: #f9f9f9;
  --paper-dim: #b0b0b0;
  --red: #ff9524;
  --red-dark: #cc7517;
  --yellow: #f2c230;
  --line: rgba(255,255,255,0.14);
  --maxw: 1300px;
  --gap: clamp(1.25rem, 3vw, 2.5rem);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{
  scroll-behavior:smooth;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
html::-webkit-scrollbar{ display:none; }

body{
  background:var(--black);
  color:var(--paper);
  font-family:'Barlow', 'Arial Narrow', sans-serif;
  font-size:16px;
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
body::-webkit-scrollbar{ display:none; }

/* ---------- custom cursor ---------- */
@media (hover:hover) and (pointer:fine){
  a, button, .patch, .gallery-item{ cursor:none; }
  .cursor-dot, .cursor-ring{
    position:fixed;
    top:0; left:0;
    border-radius:50%;
    pointer-events:none;
    z-index:10001;
    opacity:0;
    transform:translate(-50%,-50%);
  }
  .cursor-dot{
    width:10px; height:10px;
    background:var(--red);
    transition:opacity .2s ease;
  }
  .cursor-ring{
    width:42px; height:42px;
    border:1.5px solid var(--red);
    transition:width .25s ease, height .25s ease, opacity .2s ease, background .25s ease;
  }
  .cursor-ring.is-hover{
    width:64px; height:64px;
    background:rgba(255,149,36,0.12);
  }
  body.cursor-ready .cursor-dot, body.cursor-ready .cursor-ring{ opacity:1; }
}

h1,h2,h3,h4{
  font-family:'Anton', 'Arial Black', sans-serif;
  text-transform:uppercase;
  letter-spacing:0.01em;
  line-height:1.3;
  font-weight:400;
}

a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }
img{ max-width:100%; display:block; }

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

.eyebrow{
  font-family:'Space Mono', monospace;
  text-transform:uppercase;
  letter-spacing:0.22em;
  font-size:0.72rem;
  color:var(--red);
  display:inline-flex;
  align-items:center;
  gap:0.6em;
}
.eyebrow::before{
  content:'';
  width:0.5em; height:0.5em;
  background:var(--red);
  display:inline-block;
  transform:rotate(45deg);
}

/* ---------- preloader ---------- */
html.is-loading, html.is-loading body{
  overflow:hidden;
  height:100%;
}

#preloader{
  position:fixed;
  inset:0;
  z-index:10000;
  background:var(--near-black);
  overflow:hidden;
  --pl-w: min(30vw, 300px);
  --pl-w-center: min(36vw, 380px);
}
.pl-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:1;
  object-fit:cover;
  filter:grayscale(1) contrast(1.15) brightness(0.5);
}
.pl-stage{
  position:relative;
  width:100%;
  height:100%;
}
/* Static sizing layer — width scales off its own cap rather than raw
   vw, so the fan-out (computed in JS from this width) holds on wide
   screens too. Positioning transform is fully GSAP-owned. */
.pl-image{
  position:absolute;
  top:50%;
  left:50%;
  width:var(--pl-w);
  aspect-ratio:2/3;
}
.pl-left{ z-index:3; }
.pl-right{ z-index:3; }
.pl-center{ z-index:4; width:var(--pl-w-center); }

/* Animated layer — GSAP owns this element's transform/opacity/filter only */
.pl-anim{
  width:100%;
  height:100%;
  overflow:hidden;
  opacity:0;
  box-shadow:0 25px 70px rgba(0,0,0,0.65);
  will-change:transform, opacity, filter;
}
.pl-anim img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:grayscale(1) contrast(1.08) brightness(0.95);
}
.pl-logo{
  position:absolute;
  top:50%;
  left:50%;
  width:min(60vw, 620px);
  z-index:6;
  opacity:0;
  filter:drop-shadow(0 10px 30px rgba(0,0,0,0.7));
  pointer-events:none;
}

@media (max-width: 720px){
  #preloader{
    --pl-w: 38vw;
    --pl-w-center: 44vw;
  }
  .pl-logo{ width:82vw; }
}

/* ---------- grain overlay ---------- */
.grain{
  position:fixed; inset:0;
  z-index:999;
  pointer-events:none;
  opacity:0.05;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  background-size:140px 140px;
}

/* ---------- scrollbar-ish accent ---------- */
::selection{ background:var(--red); color:var(--paper); }

/* ---------- header ---------- */
.site-header{
  position:fixed; top:0; left:0; right:0;
  z-index:500;
  padding:1.1rem 0;
  background:rgba(10,10,11,0.4);
  backdrop-filter:blur(6px);
  border-bottom:1px solid transparent;
  transition:background .3s ease, border-color .3s ease, padding .3s ease;
}
.site-header.scrolled{
  background:rgba(10,10,11,0.92);
  border-bottom-color:var(--line);
  padding:0.7rem 0;
}
.site-header .wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.logo{
  display:flex;
  align-items:center;
}
.logo img{
  height:46px;
  width:auto;
}

.nav-links{
  display:flex;
  align-items:center;
  gap:1.5rem;
  font-family:'Space Mono', monospace;
  font-size:0.72rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
}
.nav-links a{
  position:relative;
  padding:0.2rem 0;
  color:var(--paper-dim);
  white-space:nowrap;
  transition:color .2s ease;
}
.nav-links a::after{
  content:'';
  position:absolute; left:0; bottom:-2px;
  width:0; height:2px;
  background:var(--red);
  transition:width .25s ease;
}
.nav-links a:hover{ color:var(--paper); }
.nav-links a:hover::after{ width:100%; }

.nav-links .nav-cta{
  font-family:'Space Mono', monospace;
  font-size:0.72rem;
  text-transform:uppercase;
  letter-spacing:0.1em;
  background:var(--red);
  color:var(--black);
  padding:0.75rem 1.7rem;
  margin-left:auto;
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);
  transition:transform .2s ease, background .2s ease;
  white-space:nowrap;
}
.nav-cta:hover{ background:var(--paper-dim); transform:translateY(-2px); }

.menu-btn{
  display:none;
  flex-direction:column;
  gap:5px;
  background:none;
  border:none;
  cursor:pointer;
  padding:6px;
}
.menu-btn span{
  width:24px; height:2px;
  background:var(--paper);
}

/* ---------- hero ---------- */
.hero{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  padding-top:9rem;
  padding-bottom:4rem;
  overflow:hidden;
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, #ff95244d, transparent 60%),
    linear-gradient(180deg, #0a0a0b 0%, #0d0d0f 60%, #0a0a0b 100%);
}
.hero::after{
  content:'';
  position:absolute; inset:0;
  background:repeating-linear-gradient(
    to bottom,
    rgba(255,255,255,0.018) 0px,
    rgba(255,255,255,0.018) 1px,
    transparent 1px,
    transparent 3px
  );
  pointer-events:none;
  z-index:1;
}
.hero-inner{
  position:relative;
  z-index:2;
}
.hero-grid{
  display:grid;
  grid-template-columns:1.35fr 1fr;
  align-items:center;
  gap:clamp(2rem, 5vw, 4rem);
}
.hero-poster{
  display:flex;
  justify-content:center;
  margin-top:2.5rem;
}
.hero-poster img{
  width:100%;
  max-width:500px;
  filter:drop-shadow(0 30px 60px rgba(0,0,0,0.6));
}
.hero .eyebrow{ margin-bottom:1.4rem; }
.hero h1{
  font-size:clamp(2.1rem, 4.6vw, 3.7rem);
  line-height:1.2;
  max-width:22ch;
  color:var(--paper);
}
.hero h1 em{
  font-style:normal;
  color:var(--red);
  position:relative;
}
.hero-sub{
  margin-top:1.6rem;
  max-width:46ch;
  font-size:1.05rem;
  color:var(--paper-dim);
}
.hero-sub strong{ color:var(--paper); font-weight:600; }

.hero-ctas{
  margin-top:2.6rem;
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
}
.btn{
  font-family:'Space Mono', monospace;
  text-transform:uppercase;
  letter-spacing:0.08em;
  font-size:0.78rem;
  padding:0.95rem 1.6rem;
  display:inline-flex;
  align-items:center;
  gap:0.6rem;
  border:1px solid var(--paper);
  transition:all .22s ease;
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);
}
.btn:hover{ transform:translateY(-3px); }
.btn-solid{
  background:var(--red);
  border-color:var(--red);
  color:var(--black);
}
.btn-solid:hover{ background:var(--paper-dim); border-color:var(--paper-dim); }
.btn-outline{
  background:transparent;
  color:var(--paper);
}
.btn-outline:hover{ background:var(--paper); color:var(--black); }

/* ---------- marquee ---------- */
.marquee{
  position:relative;
  z-index:2;
  background:var(--red);
  color:var(--black);
  overflow:hidden;
  white-space:nowrap;
  border-top:2px solid var(--black);
  border-bottom:2px solid var(--black);
  transform:skewY(-1deg);
  margin-top:5.5rem;
}
.marquee-track{
  display:inline-flex;
  animation:scroll-left 32s linear infinite;
  padding:0.75rem 0;
}
.marquee-track span{
  font-family:'Space Mono', monospace;
  font-weight:700;
  font-size:0.85rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  padding:0 1.6rem;
  display:inline-flex;
  align-items:center;
  gap:1.6rem;
}
.marquee-track span::after{ content:'★'; opacity:0.6; }
@keyframes scroll-left{
  0%{ transform:translateX(0); }
  100%{ transform:translateX(calc(-100% / var(--marquee-copies, 2))); }
}

/* ---------- section shared ---------- */
section{ position:relative; padding:6rem 0; }
.section-head{
  margin-bottom:3rem;
  max-width:60ch;
}
.section-head h2{
  font-size:clamp(2rem, 5vw, 3.2rem);
  margin-top:0.6rem;
}
.section-head p{
  margin-top:1rem;
  color:var(--paper-dim);
  font-size:1.02rem;
}
.tag-strip{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .7s ease, transform .7s ease;
}
.reveal.in-view{ opacity:1; transform:translateY(0); }

/* ---------- trailer ---------- */
.trailer{
  background:
    radial-gradient(ellipse 80% 95% at 50% 100%, #ff95244d, transparent 70%),
    var(--black);
}
.video-embed{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  background:var(--card);
  overflow:hidden;
  box-shadow:0 30px 80px rgba(0,0,0,0.5);
}
.video-embed iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  display:block;
}

/* ---------- screenings ---------- */
.screenings{ background:var(--near-black); }
.screen-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:1.4rem;
}
.stub{
  background:#1b1b1b;
  border:1px solid var(--line);
  display:grid;
  grid-template-columns:auto 1px 1fr;
  position:relative;
  transition:border-color .2s ease, transform .2s ease;
}
.stub:hover{ border-color:var(--red); transform:translateY(-3px); }
.stub::before, .stub::after{
  content:'';
  position:absolute;
  width:14px; height:14px;
  border:2px solid var(--red);
  pointer-events:none;
  z-index:2;
}
.stub::before{ top:-1px; left:-1px; border-right:none; border-bottom:none; }
.stub::after{ bottom:-1px; right:-1px; border-left:none; border-top:none; }
.press-item.press-filler::before, .press-item.press-filler::after{ display:none; }
.stub-date{
  padding:1.5rem 1.3rem;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:110px;
}
.stub-date .month{
  font-family:'Space Mono', monospace;
  color:var(--red);
  font-size:0.75rem;
  letter-spacing:0.15em;
  text-transform:uppercase;
}
.stub-date .day{
  font-family:'Anton', sans-serif;
  font-size:2.6rem;
  line-height:1;
}
.stub-perf{
  background-image:radial-gradient(circle, var(--near-black) 3px, transparent 3.5px);
  background-size:100% 18px;
  background-repeat:repeat-y;
  background-position:center;
}
.stub-body{
  padding:1.5rem 1.5rem 1.5rem 1.7rem;
  display:flex;
  flex-direction:column;
  gap:0.4rem;
}
.stub-body h3{ font-size:1.35rem; }
.stub-body .loc{
  font-family:'Space Mono', monospace;
  font-size:0.78rem;
  color:var(--paper-dim);
  text-transform:uppercase;
  letter-spacing:0.05em;
}
.status{
  margin-top:0.7rem;
  display:inline-flex;
  align-self:flex-start;
  font-family:'Space Mono', monospace;
  font-size:0.7rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  padding:0.4rem 0.8rem;
}
.status.wrapped{
  color:var(--paper-dim);
  border:1px dashed var(--paper-dim);
}
.status.open{
  background:var(--red);
  color:var(--black);
  transition:background .2s ease;
}
.status.open:hover{ background:var(--paper-dim); }
.status.soon{
  color:var(--red);
  border:1px dashed var(--red);
}

/* ---------- film / synopsis ---------- */
.film{
  background:#f9f9f9;
  padding:0;
  display:grid;
  grid-template-columns:clamp(320px, 38vw, 720px) 1fr;
  align-items:stretch;
}
.film-portrait{
  position:relative;
  z-index:2;
  height:100%;
  overflow:hidden;
}
.film-portrait img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:70% top;
  display:block;
}
.film-grid{
  position:relative;
  z-index:1;
  display:flex;
  align-items:flex-start;
  min-width:0;
  padding:4rem var(--gap) 3rem clamp(3rem, 6vw, 6rem);
  padding-right:max(var(--gap), calc((100vw - var(--maxw)) / 2));
}
.film-copy{ max-width:820px; }
.film-copy h2{ color:#141414; }
.film-copy p{ margin-bottom:1.2rem; color:#4a4a4a; }
.film-copy p strong{ color:#141414; }
.pull-quote{
  display:none;
  font-family:'Anton', sans-serif;
  font-size:clamp(1.6rem, 5vw, 2.4rem);
  line-height:1.15;
  color:#141414;
  margin-left:var(--gap);
  border-left:4px solid var(--red);
  padding:3.5rem var(--gap) 0 1.5rem;
}
.pull-quote span{ color:var(--red); }

.bands-label{
  margin-top:3rem;
  font-family:'Space Mono', monospace;
  font-size:0.78rem;
  letter-spacing:0.15em;
  text-transform:uppercase;
  color:#6b6b6b;
}
.patches{
  margin-top:1.4rem;
  display:flex;
  flex-wrap:wrap;
  gap:0.9rem;
}
.patch{
  font-family:'Anton', sans-serif;
  font-size:0.85rem;
  letter-spacing:0.03em;
  text-transform:uppercase;
  padding:0.7rem 1.1rem;
  border:2px dashed var(--paper-dim);
  color:var(--paper);
  background:var(--near-black);
}
.patch:nth-child(odd){ transform:rotate(-1.4deg); }
.patch:nth-child(even){ transform:rotate(1.2deg); }
.patch:hover{ border-color:var(--red); color:var(--red); }

/* ---------- testimonial ---------- */
.testimonial{
  background:var(--near-black);
  color:var(--paper);
  padding:5.5rem 0;
  position:relative;
  overflow:hidden;
}
.testimonial-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:0;
  object-fit:cover;
  filter:grayscale(1) contrast(1.15) brightness(0.75);
}
.testimonial::before{
  content:'';
  position:absolute; inset:0;
  z-index:1;
  background:linear-gradient(180deg, rgba(10,10,11,0.3), rgba(10,10,11,0.55));
}
.testimonial .wrap{ position:relative; z-index:2; text-align:center; }
.testimonial blockquote{
  position:relative;
  font-family:'Anton', sans-serif;
  font-size:clamp(1.4rem, 3.6vw, 2.6rem);
  line-height:1.12;
  max-width:24ch;
  margin:0 auto;
}
.testimonial cite{
  position:relative;
  display:block;
  margin:1.6rem auto 0;
  font-family:'Space Mono', monospace;
  font-size:0.85rem;
  font-style:normal;
  letter-spacing:0.1em;
  text-transform:uppercase;
}

/* ---------- press logos ---------- */
.press .section-head{ margin-bottom:1.5rem; }
.press-logos{
  position:relative;
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  margin-bottom:1.75rem;
  background:var(--near-black);
  overflow:hidden;
  padding:0.5rem 0 1.5rem;
}
.press-logos::before, .press-logos::after{
  content:'';
  position:absolute;
  top:0; bottom:0;
  width:clamp(40px, 10vw, 140px);
  z-index:2;
  pointer-events:none;
}
.press-logos::before{ left:0; background:linear-gradient(90deg, var(--near-black), transparent); }
.press-logos::after{ right:0; background:linear-gradient(270deg, var(--near-black), transparent); }
.press-logos-track{
  display:inline-flex;
  align-items:center;
  gap:clamp(2.5rem, 6vw, 5rem);
  width:max-content;
  animation:scroll-left 36s linear infinite;
}
.press-logos-track img{
  height:clamp(36px, 5.5vw, 56px);
  width:auto;
  flex-shrink:0;
  opacity:0.8;
}
@media (prefers-reduced-motion: reduce){
  .press-logos-track{ animation:none; flex-wrap:wrap; }
}

/* ---------- press ---------- */
.press{ background:var(--near-black); }
.press-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.press-item{
  background:var(--near-black);
  padding:1.8rem;
  display:flex;
  flex-direction:column;
  gap:0.6rem;
  transition:background .2s ease;
}
.press-item:hover{ background:var(--card); }
.press-item.press-filler{ background:var(--near-black); pointer-events:none; }
.press-item.press-filler:hover{ background:var(--near-black); }
.press-grid{ position:relative; }
.press-grid::before, .press-grid::after{
  content:'';
  position:absolute;
  width:14px; height:14px;
  border:2px solid var(--red);
  pointer-events:none;
  z-index:2;
}
.press-grid::before{ top:-1px; left:-1px; border-right:none; border-bottom:none; }
.press-grid::after{ bottom:-1px; right:-1px; border-left:none; border-top:none; }
.press-item .outlet{
  font-family:'Space Mono', monospace;
  font-size:0.72rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--red);
}
.press-item h4{
  font-family:'Barlow', sans-serif;
  font-weight:700;
  text-transform:none;
  font-size:1.05rem;
  color:var(--paper);
}
.press-item .go{
  margin-top:auto;
  font-family:'Space Mono', monospace;
  font-size:0.72rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--paper-dim);
}
.press-item:hover .go{ color:var(--red); }

/* ---------- director ---------- */
.director{ background:var(--black); }
.director-grid{
  display:grid;
  grid-template-columns:0.5fr 1fr;
  gap:var(--gap);
  align-items:center;
}
.director-photo{
  aspect-ratio:1;
  border:1px solid rgba(249,249,249,0.4);
  position:relative;
  background:
    repeating-linear-gradient(45deg, rgba(255,149,36,0.06) 0 2px, transparent 2px 10px),
    var(--card);
}
.director-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:grayscale(1) contrast(1.05);
}
.director-photo .corner{
  position:absolute;
  width:14px; height:14px;
  border:2px solid var(--red);
  z-index:1;
}
.director-photo .corner.tl{ top:-2px; left:-2px; border-right:none; border-bottom:none; }
.director-photo .corner.br{ bottom:-2px; right:-2px; border-left:none; border-top:none; }

.director-copy h2{ font-size:clamp(1.8rem, 4vw, 2.6rem); margin-bottom:1.2rem; }
.director-copy p{ color:var(--paper-dim); margin-bottom:1rem; }

/* ---------- gallery ---------- */
.gallery{ background:#f9f9f9; }
.gallery .section-head h2{ color:#141414; }
.gallery .section-head p{ color:#4a4a4a; }
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:6px;
}
.gallery-item{
  aspect-ratio:4/3;
  overflow:hidden;
}
.gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:grayscale(1) contrast(1.05);
  transition:filter .35s ease, transform .35s ease;
}
.gallery-item:hover img{
  filter:grayscale(0) contrast(1.05);
  transform:scale(1.04);
}
.gallery-item img{ cursor:pointer; }

.gallery-credit{
  display:inline-flex;
  align-items:center;
  gap:0.4rem;
  font-weight:700;
  color:#141414;
}
.gallery-credit a{
  display:inline-flex;
  align-items:center;
  color:#141414;
  transition:color .2s ease;
}
.gallery-credit svg{ width:1em; height:1em; fill:currentColor; }
.gallery-credit a:hover{ color:var(--red); }

@media (max-width: 720px){
  .gallery-grid{ grid-template-columns:repeat(2, 1fr); }
}

.gallery-modal{
  position:fixed;
  inset:0;
  z-index:10000;
  background:rgba(5,5,5,0.94);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:2rem;
  opacity:0;
  visibility:hidden;
  transition:opacity .25s ease, visibility .25s ease;
}
.gallery-modal.is-open{
  opacity:1;
  visibility:visible;
}
.gallery-modal img{
  max-width:90vw;
  max-height:85vh;
  object-fit:contain;
  box-shadow:0 30px 80px rgba(0,0,0,0.6);
}
.gallery-modal-close{
  position:absolute;
  top:1.5rem; right:1.5rem;
  width:44px; height:44px;
  background:transparent;
  border:1px solid var(--line);
  color:var(--paper);
  font-size:1.8rem;
  line-height:1;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:border-color .2s ease, color .2s ease;
}
.gallery-modal-close:hover{
  border-color:var(--red);
  color:var(--red);
}

/* ---------- contact / cta ---------- */
.contact{
  background:var(--near-black);
  text-align:center;
  padding:6rem 0 7rem;
}
.contact h2{ font-size:clamp(2rem, 6vw, 3.6rem); }
.contact p{ margin-top:1rem; color:var(--paper-dim); }
.contact .email{
  display:inline-block;
  margin-top:2rem;
  font-family:'Space Mono', monospace;
  font-size:clamp(1rem, 2.6vw, 1.3rem);
  color:var(--red);
  border-bottom:2px solid var(--red);
  padding-bottom:0.3rem;
  transition:color .2s ease, border-color .2s ease;
}
.contact .email:hover{ color:var(--paper-dim); border-color:var(--paper-dim); }

/* ---------- footer ---------- */
footer{
  background:var(--black);
  border-top:1px solid var(--line);
  padding:2.2rem 0;
}
footer .wrap{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:1rem;
}
.foot-copy{
  font-family:'Space Mono', monospace;
  font-size:0.72rem;
  color:var(--paper-dim);
  letter-spacing:0.05em;
}
.foot-social{
  display:flex;
  gap:1.2rem;
}
.foot-social a{
  width:36px; height:36px;
  border:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:center;
  transition:border-color .2s ease, background .2s ease;
}
.foot-social a:hover{ border-color:var(--red); background:var(--red); }
.foot-social svg{ width:16px; height:16px; fill:var(--paper); }
.foot-social a:hover svg{ fill:var(--black); }

/* ---------- responsive ---------- */
@media (max-width: 1150px){
  .film{ grid-template-columns:clamp(260px, 32vw, 720px) 1fr; }
  .film-grid{
    padding-top:5rem;
    padding-bottom:5rem;
    padding-left:clamp(3rem, 6vw, 6rem);
  }
  .bands-label, .patches{ display:none; }
}

@media (max-width: 900px){
  .film{ grid-template-columns:1fr; }
  .film-portrait{ display:none; }
  .pull-quote{ display:block; }
  .film-grid{ padding:2.5rem var(--gap) 4rem; }
  .director-grid{ grid-template-columns:1fr; }
  .press-grid{ grid-template-columns:repeat(2,1fr); }
  .press-filler{ display:none; }
  .screen-grid{ grid-template-columns:1fr; }
  .hero-grid{ grid-template-columns:1fr; }
  .hero-poster{ margin-top:2.5rem; }
  .hero-poster img{ max-width:320px; }
}

@media (max-width: 720px){
  .nav-links{ display:none; }
  .menu-btn{ display:flex; }
  .site-header.open .nav-links{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    position:absolute;
    top:100%; left:0; right:0;
    background:rgba(10,10,11,0.98);
    padding:1.5rem var(--gap);
    gap:1.2rem;
    border-bottom:1px solid var(--line);
  }
  .site-header.open .nav-cta{
    margin-left:0;
    justify-content:center;
    margin-top:0.6rem;
  }
  .press-grid{ grid-template-columns:1fr; }
  section{ padding:4rem 0; }
}
