:root{
  --brvtal-signal-red:#9e0d12;
  --brvtal-signal-red-hot:#d31822;
  --brvtal-surface:#070707;
  --brvtal-surface-raised:#0d0d0d;
}

/* Home skins: one BRVTAL language, distinct atmospheres. */
.hero,.manifesto,.events,.artists,.sets,.media,.footer{isolation:isolate}
.hero::before,.hero::after,.manifesto::after,.events::before,.artists::before,.media::before{
  content:"";
  position:absolute;
  pointer-events:none;
}

/* HERO / boot signal — subtle interference that remains alive after load. */
.hero::before{
  inset:0;
  z-index:7;
  opacity:0;
  background:
    linear-gradient(90deg,rgba(211,24,34,.15),transparent 16%,transparent 82%,rgba(255,255,255,.06)),
    repeating-linear-gradient(0deg,transparent 0 6px,rgba(255,255,255,.018) 7px 8px);
  mix-blend-mode:screen;
  animation:brvtalHeroInterference 10s steps(1,end) infinite;
}
.hero::after{
  left:-8%;right:-8%;top:38%;height:2px;z-index:8;
  opacity:0;
  background:#fff;
  box-shadow:0 11px 0 rgba(211,24,34,.7),0 -7px 0 rgba(0,210,255,.25);
  mix-blend-mode:screen;
  transform:translateX(-8%);
  animation:brvtalHeroSlice 13s steps(1,end) infinite;
}

/* MANIFESTO / xerox + metal. */
.manifesto{
  background:
    radial-gradient(circle at 82% 28%,rgba(158,13,18,.16),transparent 31%),
    linear-gradient(115deg,#050505 0,#0d0d0d 52%,#060606 100%);
}
.manifesto::after{
  inset:0;z-index:1;opacity:.28;
  background:
    repeating-linear-gradient(93deg,transparent 0 57px,rgba(255,255,255,.025) 58px 59px),
    repeating-linear-gradient(0deg,transparent 0 4px,rgba(255,255,255,.015) 5px 6px);
}
.manifesto-line,.manifesto-final{filter:drop-shadow(8px 0 0 rgba(158,13,18,.16))}

/* EVENTS / graphite archive. */
.events{
  background:
    linear-gradient(90deg,rgba(158,13,18,.12) 0 1px,transparent 1px) 7vw 0/22vw 100%,
    linear-gradient(180deg,#080808 0,#101010 48%,#060606 100%);
}
.events::before{
  inset:0;z-index:0;opacity:.55;
  background:repeating-linear-gradient(0deg,transparent 0 42px,rgba(255,255,255,.022) 43px 44px);
}
.events .section-head{border-bottom:1px solid rgba(158,13,18,.45);padding-bottom:24px}
html.native-events-scroll .events .events-track{gap:28px;padding-top:6vh}
html.native-events-scroll .events .event-card{
  width:clamp(430px,40vw,680px);
  background:linear-gradient(180deg,#101010,#080808);
  border:1px solid rgba(255,255,255,.13);
  box-shadow:12px 12px 0 rgba(0,0,0,.3);
  position:relative;
}
.events .event-card::before{
  content:"";position:absolute;left:-1px;top:-1px;bottom:-1px;width:3px;z-index:4;
  background:var(--brvtal-signal-red);opacity:.8;
}
html.native-events-scroll .events .event-img{height:clamp(320px,46vh,520px)}
.events .event-img::before{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,transparent 58%,rgba(0,0,0,.78));
}
.events .event-info{
  padding:22px 22px 24px;
  border-top:1px solid rgba(255,255,255,.12);
  display:grid;
  grid-template-columns:1fr auto;
  grid-template-areas:
    "meta status"
    "title title"
    "desc desc"
    "action action";
  align-items:start;
  gap:12px 18px;
}
.events .event-info>span.mono{grid-area:meta;color:#b5b5b0}
.events .event-status{grid-area:status;color:#ff4450;text-align:right}
.events .event-info h3{grid-area:title;font-size:clamp(48px,5.2vw,78px);line-height:.82;margin:5px 0 0;letter-spacing:-.045em}
.events .event-info p{grid-area:desc;max-width:54ch;margin:0;color:#9d9d98;min-height:2.8em}
.events .event-ticket,.events .event-view{
  grid-area:action;justify-self:start;margin-top:7px;min-height:48px;padding:0 17px;
  border:1px solid var(--brvtal-signal-red);background:var(--brvtal-signal-red);color:#fff;
  display:inline-flex;align-items:center;text-decoration:none;font:700 12px/1 "Space Mono",monospace;letter-spacing:.08em;
}
.events .event-view{background:transparent;border-color:rgba(255,255,255,.34)}

/* ROSTER / darkroom + red film edge. */
.artists{
  background:
    radial-gradient(circle at 84% 42%,rgba(158,13,18,.17),transparent 26%),
    linear-gradient(100deg,#050505 0,#090909 55%,#050303 100%);
}
.artists::before{
  inset:0;z-index:0;opacity:.32;
  background:repeating-linear-gradient(90deg,transparent 0 95px,rgba(255,255,255,.025) 96px 97px);
}
.artists .artist{position:relative}
.artists .artist::after{content:"";position:absolute;left:0;right:100%;bottom:-1px;height:1px;background:#cf1c25;transition:right .45s var(--ease)}
.artists .artist:hover::after{right:0}

/* SETS / spectrum chamber. */
.sets{
  background:
    linear-gradient(180deg,rgba(255,20,127,.035),transparent 30%),
    radial-gradient(ellipse at 78% 38%,rgba(158,13,18,.13),transparent 34%),#070707;
}
.sets .set-item{background:linear-gradient(90deg,transparent,rgba(255,255,255,.018),transparent)}
.sets .set-item:hover{background:linear-gradient(90deg,rgba(158,13,18,.08),rgba(255,20,127,.045),transparent)}

/* MEMORIES / photographic contact sheet. */
.media{
  background:
    linear-gradient(135deg,rgba(255,255,255,.025) 25%,transparent 25%) 0 0/44px 44px,
    linear-gradient(180deg,#0b0b0b,#050505 72%);
}
.media::before{inset:0;z-index:0;border-top:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(158,13,18,.32)}
.media .media-grid{position:relative;z-index:1}
.media .m{border:1px solid rgba(255,255,255,.12);background:#080808;box-shadow:8px 8px 0 rgba(0,0,0,.32)}
.media .m:nth-child(3n+1){transform:translateY(14px)}
.media .m:nth-child(3n+2){transform:translateY(-10px)}

/* CONTACT / hard stop. */
.footer{background:linear-gradient(160deg,#050505 0,#0a0506 60%,#050505 100%);border-top:1px solid rgba(158,13,18,.42)}
.brvtal-contact-page{background:linear-gradient(145deg,#050505 0,#0a0506 58%,#050505 100%)}
.contact-page-hero{border-bottom-color:rgba(158,13,18,.38)}

/* Shared controlled title glitch: mostly idle, brief red displacement. */
.events .section-head h2,.artists .section-head h2,.sets .section-head h2,.media-title h2,.contact-page-hero h1{
  animation:brvtalTitleSignal 9s steps(1,end) infinite;
  will-change:text-shadow,transform;
}
.artists .section-head h2{animation-delay:-1.8s}
.sets .section-head h2{animation-delay:-3.4s}
.media-title h2{animation-delay:-5.2s}
.contact-page-hero h1{animation-delay:-6.7s}

@keyframes brvtalTitleSignal{
  0%,7%,11%,58%,61%,100%{text-shadow:none;transform:translate(0,0)}
  8%{text-shadow:5px 0 #9e0d12,-3px 0 rgba(255,255,255,.22);transform:translateX(1px)}
  9%{text-shadow:-7px 0 #d31822,3px 0 rgba(0,210,255,.18);transform:translateX(-2px)}
  10%{text-shadow:2px 0 #9e0d12;transform:translateX(0)}
  59%{text-shadow:8px 0 rgba(158,13,18,.8);transform:skewX(-1deg)}
  60%{text-shadow:-4px 0 rgba(255,255,255,.2);transform:skewX(0)}
}
@keyframes brvtalHeroInterference{
  0%,15%,18%,63%,66%,100%{opacity:0;transform:translateX(0)}
  16%{opacity:.34;transform:translateX(2px)}
  17%{opacity:.1;transform:translateX(-3px)}
  64%{opacity:.22;transform:translateX(-1px)}
  65%{opacity:.08;transform:translateX(2px)}
}
@keyframes brvtalHeroSlice{
  0%,30%,32%,74%,76%,100%{opacity:0;transform:translateX(-8%)}
  31%{opacity:.45;transform:translateX(8%)}
  75%{opacity:.24;transform:translateX(4%)}
}

@media (hover:hover) and (pointer:fine){
  .events .event-card:hover{border-color:rgba(255,255,255,.34);transform:translateY(-4px);transition:transform .3s var(--ease),border-color .3s ease}
  .events .event-ticket:hover{background:#f2f2ef;border-color:#f2f2ef;color:#050505}
  .events .event-view:hover{border-color:#f2f2ef;background:#111}
}

@media(max-width:900px),(pointer:coarse){
  .hero::before{animation-duration:16s;opacity:0}
  .hero::after{display:none}
  html.native-events-scroll .events .events-track{gap:18px}
  html.native-events-scroll .events .event-card{width:min(84vw,560px);box-shadow:7px 7px 0 rgba(0,0,0,.28)}
  html.native-events-scroll .events .event-img{height:min(52vh,470px)}
  .events .event-info{padding:18px;grid-template-columns:1fr auto}
  .events .event-info h3{font-size:clamp(46px,14vw,76px)}
  .media .m:nth-child(n){transform:none}
}

@media(max-width:560px){
  .events .section-head{padding-bottom:18px}
  .events .event-info{grid-template-areas:"meta status" "title title" "desc desc" "action action";gap:10px 12px}
  .events .event-info>span.mono,.events .event-status{font-size:11px}
  .events .event-info p{min-height:0}
  .events .event-ticket,.events .event-view{width:100%;justify-content:space-between}
}

@media(prefers-reduced-motion:reduce){
  .hero::before,.hero::after,.events .section-head h2,.artists .section-head h2,.sets .section-head h2,.media-title h2,.contact-page-hero h1{
    animation:none!important;
    transform:none!important;
  }
  .artists .artist::after{transition:none}
  .events .event-card,.events .event-img img{transition:none!important}
  .media .m:nth-child(n){transform:none}
}
