/* ===========================================================
   SELF-HOSTED FONTS — Anton + Inter + JetBrains Mono
   Bajadas de Google Fonts API el 2026-05-27.
   Solo subsets latin + latin-ext (suficiente para español + Ø).
=========================================================== */

@font-face {
  font-family: 'Anton';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/Anton-400-latinext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Anton';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/Anton-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/Inter-400-latinext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/Inter-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/Inter-600-latinext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/Inter-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/JetBrainsMono-400-latinext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/JetBrainsMono-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* ===========================================================
   UNDRWORLD FEST · Homepage styles
   Extracted from Claude Design prototype, organized for prod.
=========================================================== */

:root{
  /* Palette */
  --void:#0A0A0B;
  --smoke:#15151A;
  --ash:#2A2A30;
  --ash-2:#3a3a42;
  --bone:#EDE7DA;
  --bone-dim:rgba(237,231,218,.62);
  --bone-faint:rgba(237,231,218,.55);
  --blood:#6D28D9;
  --blood-rgb:109,40,217;
  --blood-glow:rgba(109,40,217,.55);

  /* Type */
  --display:'Anton','Bebas Neue','Helvetica Neue',Helvetica,Arial,sans-serif;
  --body:'Inter','Helvetica Neue',Helvetica,Arial,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,Menlo,monospace;

  /* Layout */
  --gutter:32px;
  --maxw:1440px;
  --section-pad:clamp(80px, 12vh, 200px);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
}
@media (max-width:768px){ :root{ --gutter:20px; } }

*,*::before,*::after{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
html{ background:var(--void); color:var(--bone); -webkit-font-smoothing:antialiased; }
body{
  font-family:var(--body);
  font-size:16px;
  line-height:1.6;
  background:var(--void);
  color:var(--bone);
  overflow-x:hidden;
}
img,video{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }

/* Selection / Focus */
::selection{ background:var(--blood); color:var(--bone); }
:focus-visible{ outline:2px solid var(--blood); outline-offset:3px; }

/* Custom cursor (desktop hover only) */
@media (hover:hover) and (pointer:fine){
  body{ cursor:none; }
  .cursor-dot{
    position:fixed; top:0; left:0; width:8px; height:8px;
    background:var(--blood); border-radius:50%;
    pointer-events:none; z-index:9999;
    transform:translate(-50%,-50%);
    transition:transform .15s var(--ease-out), background .15s, opacity .2s;
    mix-blend-mode:difference;
  }
  .cursor-dot.is-link{ transform:translate(-50%,-50%) scale(2.4); background:var(--bone); }
}
.cursor-dot{ display:none; }
@media (hover:hover) and (pointer:fine){ .cursor-dot{ display:block; } }

/* Film grain overlay */
.grain{
  pointer-events:none;
  position:fixed; inset:-50%;
  z-index:200;
  opacity:.04;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 1 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  animation:grain 1.6s steps(4) infinite;
}
@keyframes grain{
  0%{ transform:translate(0,0) }
  25%{ transform:translate(-5%,3%) }
  50%{ transform:translate(4%,-2%) }
  75%{ transform:translate(-2%,4%) }
  100%{ transform:translate(0,0) }
}

/* Typography utilities */
.display-xl{
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(64px, 12vw, 200px);
  line-height:.9;
  letter-spacing:-0.04em;
  text-transform:uppercase;
}
.display-l{
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(40px, 6vw, 96px);
  line-height:.95;
  letter-spacing:-0.02em;
  text-transform:uppercase;
}
.h2{
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(32px, 4vw, 64px);
  line-height:1.02;
  letter-spacing:-0.02em;
  text-transform:uppercase;
  margin:0;
}
.h3{
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(24px, 2.5vw, 40px);
  line-height:1.05;
  letter-spacing:-0.01em;
  text-transform:uppercase;
  margin:0;
}
.body-l{ font-size:18px; line-height:1.5; }
.caption{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.15em;
  text-transform:uppercase;
  font-weight:400;
}

/* Container */
.container{
  width:100%;
  max-width:var(--maxw);
  margin:0 auto;
  padding-left:var(--gutter);
  padding-right:var(--gutter);
}

/* Hairlines */
.hair{ height:1px; background:var(--ash); border:0; margin:0; }
.hair-v{ width:1px; background:var(--ash); }

/* Buttons */
.btn{
  display:inline-flex; align-items:center; gap:.65em;
  padding:18px 28px;
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  border:1px solid var(--bone);
  background:transparent;
  color:var(--bone);
  border-radius:0;
  transition:background .18s, color .18s, border-color .18s, transform .18s;
  white-space:nowrap;
}
.btn:hover{ background:var(--bone); color:var(--void); }
.btn-primary{
  background:var(--blood);
  color:var(--bone);
  border-color:var(--blood);
}
.btn-primary:hover{
  background:transparent;
  color:var(--bone);
  border-color:var(--bone);
}
.btn-lg{ padding:22px 36px; font-size:13px; }

/* Underline-animated link */
.ulink{
  position:relative; display:inline-block;
  padding-bottom:2px;
}
.ulink::after{
  content:""; position:absolute; left:0; bottom:0;
  width:100%; height:1px;
  background:var(--blood);
  transform:scaleX(0); transform-origin:left center;
  transition:transform .2s var(--ease-out);
}
.ulink:hover::after{ transform:scaleX(1); }
.ulink.always::after{ transform:scaleX(.18); }
.ulink.always:hover::after{ transform:scaleX(1); }

/* Arrow link */
.arrow-link{
  display:inline-flex; align-items:center; gap:14px;
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--bone);
  border-bottom:1px solid var(--ash);
  padding:18px 0 14px;
  transition:color .2s, border-color .2s;
}
.arrow-link .arrow{
  display:inline-block;
  width:32px; height:1px;
  background:var(--bone);
  position:relative;
  transition:width .25s var(--ease-out), background .2s;
}
.arrow-link .arrow::after{
  content:""; position:absolute; right:-1px; top:-3px;
  width:7px; height:7px;
  border-top:1px solid var(--bone);
  border-right:1px solid var(--bone);
  transform:rotate(45deg);
  transition:border-color .2s;
}
.arrow-link:hover{ color:var(--blood); border-color:var(--blood); }
.arrow-link:hover .arrow{ width:56px; background:var(--blood); }
.arrow-link:hover .arrow::after{ border-color:var(--blood); }

/* Scroll reveal */
.reveal{
  opacity:0; transform:translateY(20px);
  transition:opacity .6s var(--ease-out), transform .6s var(--ease-out);
}
.reveal.is-in{ opacity:1; transform:translateY(0); }

/* Staggered reveal — parent stays visible, children stagger */
.reveal-stagger{
  opacity:1 !important;
  transform:none !important;
}
.reveal-stagger > *{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .8s var(--ease-out), transform .8s var(--ease-out);
}
.reveal-stagger.is-in > *{ opacity:1; transform:translateY(0); }
.reveal-stagger.is-in > *:nth-child(1){ transition-delay:0ms; }
.reveal-stagger.is-in > *:nth-child(2){ transition-delay:120ms; }
.reveal-stagger.is-in > *:nth-child(3){ transition-delay:240ms; }
.reveal-stagger.is-in > *:nth-child(4){ transition-delay:360ms; }
.reveal-stagger.is-in > *:nth-child(5){ transition-delay:480ms; }
.reveal-stagger.is-in > *:nth-child(6){ transition-delay:600ms; }
.reveal-stagger.is-in > *:nth-child(7){ transition-delay:720ms; }
.reveal-stagger.is-in > *:nth-child(8){ transition-delay:840ms; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .reveal, .reveal-stagger > *{ opacity:1; transform:none; transition:none; }
  .grain{ animation:none; }
  .marquee-track{ animation:none; }
  .fog-layer{ animation:none; }
  *{ animation-duration:.01ms!important; transition-duration:.01ms!important; }
}

/* ===========================================================
   [1] URGENCY STRIP
=========================================================== */
.urgency{
  position:relative;
  background:var(--blood);
  color:var(--bone);
  z-index:50;
}
.urgency-inner{
  display:flex; align-items:center; justify-content:center; gap:24px;
  padding:11px var(--gutter);
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  flex-wrap:nowrap;
  min-width:0;
}
.urgency .dot{
  display:inline-block; width:6px; height:6px; border-radius:50%;
  background:var(--bone);
  animation:pulse 1.6s ease-in-out infinite;
  flex-shrink:0;
}
.urgency a{
  display:inline-flex; align-items:center; gap:8px;
  border-bottom:1px solid rgba(237,231,218,.4);
  padding-bottom:2px;
  transition:border-color .2s;
  flex-shrink:0;
  white-space:nowrap;
}
.urgency a:hover{ border-color:var(--bone); }
.urgency-inner > span:not(.dot){
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  min-width:0; flex:1 1 auto;
}
/* Mobile: shorter text + condensed gaps + visible single-line + hide some content */
.urgency-short-mobile{ display:none; }
@media (max-width:768px){
  .urgency-inner{
    gap:10px;
    padding:9px 14px;
    font-size:10px;
    letter-spacing:.1em;
  }
  .urgency a{ font-size:10px; gap:4px; }
  .urgency-long-desktop{ display:none; }
  .urgency-short-mobile{ display:inline; }
  .nav.has-urgency{ top:34px; }
}
@keyframes pulse{
  0%,100%{ opacity:1; transform:scale(1); }
  50%{ opacity:.45; transform:scale(.85); }
}

/* ===========================================================
   [2] NAV
=========================================================== */
.nav{
  position:fixed; top:0; left:0; right:0;
  z-index:80;
  padding:18px var(--gutter);
  display:flex; align-items:center; justify-content:space-between;
  gap:24px;
  transition:background .25s, border-color .25s, padding .25s;
  border-bottom:1px solid transparent;
}
.nav.has-urgency{ top:38px; }
.nav.is-scrolled{
  background:rgba(10,10,11,.78);
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  border-bottom-color:var(--ash);
  padding-top:14px; padding-bottom:14px;
}
.nav-logo{
  display:flex; align-items:center; gap:10px;
  line-height:0;
  flex-shrink:0;
}
.nav-logo picture, .nav-logo img{
  display:block;
  height:22px;
  width:auto;
  object-fit:contain;
}
@media (max-width:768px){ .nav-logo img{ height:18px; } }
.nav-links{
  display:flex; align-items:center; gap:36px;
  list-style:none; margin:0; padding:0;
}
.nav-links a, .nav-links .info-toggle{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--bone);
  position:relative;
  padding:6px 0;
  display:inline-flex; align-items:center; gap:6px;
}
.nav-links a::after, .info-toggle::after{
  content:""; position:absolute; left:0; right:0; bottom:0;
  height:1px; background:var(--blood);
  transform:scaleX(0); transform-origin:left center;
  transition:transform .2s var(--ease-out);
}
.nav-links a:hover::after, .info-toggle:hover::after{ transform:scaleX(1); }
.info-wrap{ position:relative; }
.info-toggle .caret{
  display:inline-block; width:6px; height:6px;
  border-right:1px solid var(--bone);
  border-bottom:1px solid var(--bone);
  transform:rotate(45deg) translate(-1px,-1px);
}
.info-dropdown{
  position:absolute; top:calc(100% + 14px); left:50%;
  transform:translateX(-50%) translateY(-6px);
  min-width:240px;
  background:var(--smoke);
  border:1px solid var(--ash);
  padding:18px 4px;
  opacity:0; visibility:hidden;
  transition:opacity .2s, transform .2s, visibility .2s;
}
.info-wrap:hover .info-dropdown,
.info-wrap:focus-within .info-dropdown{
  opacity:1; visibility:visible;
  transform:translateX(-50%) translateY(0);
}
.info-dropdown a{
  display:block;
  padding:10px 22px;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--bone-dim);
  transition:color .15s, background .15s;
}
.info-dropdown a:hover{ color:var(--bone); background:rgba(var(--blood-rgb),.08); }
.info-dropdown a::after{ display:none; }

.nav-cta{ display:inline-flex; }
.nav-cta .btn{ padding:14px 22px; font-size:11px; }

.nav-burger{
  display:none;
  width:42px; height:42px;
  position:relative;
  border:1px solid var(--ash);
}
.nav-burger span{
  position:absolute; left:10px; right:10px; height:1px;
  background:var(--bone);
  transition:transform .25s var(--ease-out), top .25s, opacity .2s;
}
.nav-burger span:nth-child(1){ top:14px; }
.nav-burger span:nth-child(2){ top:20px; }
.nav-burger span:nth-child(3){ top:26px; }
body.menu-open .nav-burger span:nth-child(1){ top:20px; transform:rotate(45deg); }
body.menu-open .nav-burger span:nth-child(2){ opacity:0; }
body.menu-open .nav-burger span:nth-child(3){ top:20px; transform:rotate(-45deg); }

@media (max-width:1024px){
  .nav-links, .nav-cta{ display:none; }
  .nav-burger{ display:block; }
}

/* Mobile fullscreen menu */
.mobile-menu{
  position:fixed; inset:0;
  background:var(--void);
  z-index:75;
  padding:120px var(--gutter) 40px;
  transform:translateY(-100%);
  transition:transform .45s var(--ease-out);
  display:flex; flex-direction:column;
  overflow-y:auto;
}
body.menu-open .mobile-menu{ transform:translateY(0); }
.mobile-menu ul{ list-style:none; margin:0; padding:0; }
.mobile-menu .primary li{
  border-top:1px solid var(--ash);
}
.mobile-menu .primary li:last-child{ border-bottom:1px solid var(--ash); }
.mobile-menu .primary a{
  display:flex; align-items:center; justify-content:space-between;
  padding:22px 0;
  font-family:var(--display);
  font-size:32px;
  letter-spacing:-.01em;
  text-transform:uppercase;
}
.mobile-menu .primary a .num{
  font-family:var(--mono); font-size:11px; letter-spacing:.15em;
  color:var(--bone-faint);
}
.mobile-menu .secondary{
  margin-top:32px;
  display:grid; grid-template-columns:1fr 1fr; gap:14px;
}
.mobile-menu .secondary a{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.15em; text-transform:uppercase;
  color:var(--bone-dim);
}
.mobile-cta{
  position:fixed; left:var(--gutter); right:var(--gutter); bottom:24px;
  z-index:76;
  transform:translateY(140%);
  transition:transform .35s var(--ease-out);
}
body.menu-open .mobile-cta{ transform:translateY(0); }
.mobile-cta .btn{ width:100%; justify-content:center; }

/* ===========================================================
   [3] HERO
=========================================================== */
.hero{
  position:relative;
  height:100vh; min-height:640px;
  width:100%;
  overflow:hidden;
  background:var(--void);
}
.hero-video, .hero-poster, .hero-poster img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  z-index:1;
}
.hero-poster{ z-index:0; }
.hero-poster img{ position:absolute; }
.hero-overlay{
  position:absolute; inset:0; z-index:2;
  background:
    linear-gradient(180deg, rgba(10,10,11,.55) 0%, rgba(10,10,11,0) 22%, rgba(10,10,11,0) 55%, rgba(10,10,11,.85) 92%, var(--void) 100%),
    radial-gradient(ellipse at 50% 50%, rgba(10,10,11,0) 30%, rgba(10,10,11,.5) 100%);
}
.hero-content{
  position:relative; z-index:3;
  height:100%;
  display:flex; flex-direction:column;
  justify-content:space-between;
  padding:140px var(--gutter) 80px;
  max-width:var(--maxw);
  margin:0 auto;
}
.hero-top{
  display:flex; justify-content:space-between; align-items:flex-start;
  gap:24px;
}
.hero-meta{
  display:flex; gap:18px; flex-wrap:wrap;
  font-family:var(--mono); font-size:11px;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--bone-dim);
}
.hero-meta .tick{
  display:inline-block; width:6px; height:6px;
  background:var(--blood);
  transform:rotate(45deg);
  margin-right:10px; vertical-align:middle;
}
.countdown{
  text-align:right;
  display:flex; flex-direction:column; align-items:flex-end;
  gap:6px;
}
.countdown .num{
  font-family:var(--display);
  font-size:clamp(40px, 6vw, 88px);
  line-height:.9; color:var(--blood);
  letter-spacing:-.02em;
}
.countdown .lbl{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-dim);
}

.hero-bottom{
  display:flex; flex-direction:column; gap:36px;
  max-width:1100px;
}
.hero-eyebrow{
  display:flex; align-items:center; gap:14px;
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-dim);
  margin:0;
}
.hero-eyebrow .ix{
  font-family:var(--mono);
  color:var(--blood);
  letter-spacing:.18em;
}
.hero-title{
  margin:0;
  color:var(--bone);
}
.hero-title .line2{ display:block; color:var(--bone); }
.hero-title .blood-period{ color:var(--blood); }

.hero-ctas{
  display:flex; align-items:center; gap:22px;
  flex-wrap:wrap;
}

.scroll-ind{
  position:absolute; left:50%; bottom:28px;
  transform:translateX(-50%);
  z-index:4;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
}
.scroll-ind .line{
  width:1px; height:40px;
  background:var(--ash);
  position:relative; overflow:hidden;
}
.scroll-ind .line::after{
  content:""; position:absolute; left:-2px; top:-6px;
  width:5px; height:5px; border-radius:50%;
  background:var(--blood);
  animation:scrolltick 2.2s var(--ease-out) infinite;
}
@keyframes scrolltick{
  0%{ top:-6px; opacity:0; }
  20%{ opacity:1; }
  100%{ top:46px; opacity:0; }
}

@media (max-width:768px){
  .hero{ min-height:560px; }
  .hero-content{ padding:120px var(--gutter) 110px; }
  .hero-top{ flex-direction:column; align-items:flex-start; }
  .countdown{ align-items:flex-start; text-align:left; }
  .scroll-ind{ display:none; }
}

/* ===========================================================
   Section frame
=========================================================== */
section.section{
  padding:var(--section-pad) 0;
  position:relative;
}
.section-head{
  display:flex; align-items:baseline; gap:24px;
  margin-bottom:clamp(40px,6vw,80px);
  flex-wrap:wrap;
}
.section-head .eyebrow{
  font-family:var(--mono); font-size:12px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--blood);
  display:inline-flex; align-items:center; gap:10px;
}
.section-head .eyebrow .ix{ color:var(--bone-faint); }
.section-head .eyebrow .dash{ width:24px; height:1px; background:var(--blood); }
.section-head h2{ flex:1; min-width:280px; }

/* ===========================================================
   [4] LINEUP
=========================================================== */
.lineup{ background:var(--void); position:relative; }
.lineup-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  row-gap:clamp(16px,2.4vw,40px);
  align-items:center;
  position:relative;
}
.band{
  position:relative;
  cursor:pointer;
  transition:color .25s var(--ease-out);
}
.band .name{
  font-family:var(--display);
  text-transform:uppercase;
  line-height:.92;
  letter-spacing:-.03em;
  color:var(--bone);
  display:inline-block;
  position:relative;
  transition:color .2s var(--ease-out), transform .25s var(--ease-out);
}
.band:hover .name{ color:var(--blood); }
.band .name::after{
  content:""; position:absolute; left:0; right:0; bottom:6%;
  height:2px; background:var(--blood);
  transform:scaleX(0); transform-origin:left center;
  transition:transform .3s var(--ease-out);
}
.band:hover .name::after{ transform:scaleX(1); }
.band .stage-tag{
  position:absolute; top:0;
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
  opacity:0;
  transition:opacity .25s var(--ease-out), transform .25s var(--ease-out);
  transform:translateY(-6px);
  display:inline-flex; align-items:center; gap:8px;
  white-space:nowrap;
}
.band .stage-tag::before{
  content:""; width:8px; height:8px; background:var(--blood);
}
.band:hover .stage-tag{ opacity:1; transform:translateY(-14px); }

.band-headliner .name{ font-size:clamp(64px,12vw,200px); letter-spacing:-.045em; }
.band-support .name{ font-size:clamp(40px,6vw,96px); }
.band-opener .name{ font-size:clamp(24px,2.6vw,40px); letter-spacing:-.015em; }

.band.col-left      { grid-column:1 / span 8; }
.band.col-right     { grid-column:5 / span 8; justify-self:end; text-align:right; }
.band.col-center    { grid-column:3 / span 8; justify-self:center; text-align:center; }
.band.col-far-right { grid-column:7 / span 6; justify-self:end; text-align:right; }
.band.col-far-left  { grid-column:1 / span 6; }
.band.col-mid       { grid-column:4 / span 6; }
.band.col-right .stage-tag{ right:0; }
.band.col-center .stage-tag{ left:50%; transform:translate(-50%,-6px); }
.band.col-center:hover .stage-tag{ transform:translate(-50%,-14px); }

@media (max-width:768px){
  .lineup-grid{ grid-template-columns:1fr; }
  .band{ grid-column:1 / -1 !important; justify-self:start !important; text-align:left !important; }
  .band-headliner .name{ font-size:clamp(56px,18vw,120px); }
}

.lineup-footer{
  margin-top:clamp(48px,8vw,120px);
  display:flex; justify-content:flex-end;
}

/* ===========================================================
   [5] DATES + VENUE
=========================================================== */
.dates{
  background:var(--void);
  border-top:1px solid var(--ash);
  border-bottom:1px solid var(--ash);
}
.dates-grid{
  display:grid;
  grid-template-columns:1fr 1px 1fr;
  gap:0;
}
.dates-col{
  padding:clamp(40px,6vw,80px) clamp(20px,5vw,80px);
  display:flex; flex-direction:column; gap:20px;
}
.dates-col .eyebrow{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
  display:inline-flex; align-items:center; gap:10px;
}
.dates-col .eyebrow .blip{ width:6px; height:6px; background:var(--blood); }
.dates-col .h2{ color:var(--bone); }
.dates-col p{
  font-family:var(--mono);
  font-size:13px;
  letter-spacing:.05em;
  color:var(--bone-dim);
  margin:0;
}
.dates-col address{
  font-style:normal;
  font-size:16px; line-height:1.6;
  color:var(--bone-dim);
}
@media (max-width:1024px){
  .dates-grid{ grid-template-columns:1fr; }
  .dates-grid .hair-v{ width:100%; height:1px; background:var(--ash); }
}

.calendar-strip{
  display:flex; gap:18px; flex-wrap:wrap;
  margin-top:8px;
}
.cal-day{
  border:1px solid var(--ash);
  padding:14px 18px;
  min-width:108px;
}
.cal-day .dow{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
}
.cal-day .num{
  font-family:var(--display); font-size:44px;
  line-height:1; color:var(--bone);
  margin-top:4px;
}
.cal-day .mon{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-dim); margin-top:6px;
}

/* ===========================================================
   [6] TICKETS
=========================================================== */
.tickets{ background:var(--void); }
.ticket-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
@media (max-width:1024px){ .ticket-grid{ grid-template-columns:1fr; } }

.ticket{
  position:relative;
  background:var(--smoke);
  border:1px solid var(--ash);
  padding:36px 32px 32px;
  display:flex; flex-direction:column; gap:20px;
  min-height:480px;
  transition:transform .25s var(--ease-out), border-color .25s;
}
.ticket:hover{ transform:translateY(-4px); border-color:var(--bone); }
.ticket.is-soldout{ opacity:.42; }
.ticket.is-soldout:hover{ transform:none; }
.ticket.is-active{ border-color:var(--blood); }
.ticket.is-vip{ background:var(--smoke); border-color:var(--bone); }

.ticket-tag{
  position:absolute; top:0; right:24px;
  transform:translateY(-50%);
  background:var(--blood); color:var(--bone);
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  padding:7px 14px;
}
.ticket.is-vip .ticket-tag{ background:var(--bone); color:var(--void); }

.ticket-head{
  display:flex; justify-content:space-between; align-items:flex-start;
  border-bottom:1px solid var(--ash);
  padding-bottom:20px;
}
.ticket-name{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-dim);
}
.ticket-num{
  font-family:var(--mono); font-size:11px;
  color:var(--bone-faint);
}
.ticket-price{
  font-family:var(--display);
  font-size:clamp(52px,6vw,84px);
  line-height:.95; letter-spacing:-.02em;
  color:var(--bone);
}
.ticket-price .cur{
  font-family:var(--mono); font-size:14px;
  vertical-align:top; margin-right:6px;
  color:var(--bone-dim); letter-spacing:.15em;
}
.ticket-price .per{
  display:block;
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
  margin-top:8px;
}
.ticket-inc{
  list-style:none; padding:0; margin:0;
  display:flex; flex-direction:column; gap:10px;
  flex:1;
}
.ticket-inc li{
  font-size:14px; color:var(--bone-dim);
  padding-left:18px; position:relative;
}
.ticket-inc li::before{
  content:""; position:absolute; left:0; top:.7em;
  width:8px; height:1px; background:var(--blood);
}
.ticket .btn{ width:100%; justify-content:center; }
.ticket.is-soldout .btn{ pointer-events:none; }

.tickets-footer{
  margin-top:48px;
  display:flex; flex-direction:column; align-items:flex-start; gap:14px;
}
.tickets-footer .sub{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.12em; color:var(--bone-faint);
}

/* ===========================================================
   PRESALE PHASES — boletos en hold + fan registration
=========================================================== */
.tickets .section-lede{
  margin:0 0 clamp(40px,5vw,72px);
  font-size:17px; line-height:1.55;
  color:var(--bone-dim);
  max-width:780px;
}
.tickets .section-lede strong{ color:var(--bone); font-weight:600; }

.presale-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  margin-bottom:clamp(40px,5vw,72px);
}
@media (max-width:1024px){ .presale-grid{ grid-template-columns:1fr; } }

.presale-card{
  background:var(--smoke);
  border:1px solid var(--ash);
  padding:clamp(28px,3.5vw,40px);
  display:flex; flex-direction:column; gap:18px;
  transition:border-color .25s;
}
.presale-card.is-active{
  border-color:var(--blood);
  background:linear-gradient(180deg, rgba(var(--blood-rgb),.06) 0%, var(--smoke) 60%);
}
.ps-tag{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--blood);
  display:inline-flex; align-items:center; gap:10px;
}
.ps-tag::before{
  content:""; width:24px; height:1px; background:var(--blood);
}
.presale-card:not(.is-active) .ps-tag{ color:var(--bone-faint); }
.presale-card:not(.is-active) .ps-tag::before{ background:var(--bone-faint); }
.ps-when{
  display:flex; flex-direction:column; gap:4px;
  padding-bottom:18px;
  border-bottom:1px solid var(--ash);
}
.ps-date{
  font-family:var(--display);
  font-size:clamp(32px,3.6vw,52px);
  line-height:1; letter-spacing:-.02em;
  text-transform:uppercase;
  color:var(--bone);
}
.ps-time{
  font-family:var(--mono); font-size:12px;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--bone-dim);
}
.ps-title{
  font-family:var(--display);
  font-size:clamp(22px,2.4vw,32px);
  line-height:1.1; letter-spacing:-.015em;
  text-transform:uppercase;
  color:var(--bone);
  margin:0;
}
.ps-desc{
  font-size:14px; line-height:1.6;
  color:var(--bone-dim);
  margin:0; flex:1;
}
.ps-desc strong{ color:var(--bone); font-weight:600; }
.ps-actions{
  display:flex; flex-direction:column; gap:10px;
  margin-top:6px;
}
.ps-actions .btn{ width:100%; justify-content:center; }
.btn-link-arrow{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--bone-dim);
  align-self:center;
  border-bottom:1px solid var(--ash);
  padding-bottom:4px;
  transition:color .2s, border-color .2s;
  text-decoration:none;
}
.btn-link-arrow:hover{ color:var(--bone); border-color:var(--bone); }

/* Presale inline form */
.presale-form{
  display:flex; flex-direction:column; gap:14px;
  margin-top:8px;
  padding-top:18px;
  border-top:1px solid var(--ash);
  animation:ps-form-in .35s var(--ease-out);
}
.presale-form[hidden]{ display:none; }
@keyframes ps-form-in{
  from{ opacity:0; transform:translateY(-8px); }
  to{   opacity:1; transform:translateY(0); }
}
.presale-form .field{ display:flex; flex-direction:column; gap:6px; }
.presale-form .field label{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
}
.presale-form .field input{
  background:transparent;
  border:0; border-bottom:1px solid var(--ash);
  padding:8px 0 10px;
  color:var(--bone);
  font:inherit; font-size:15px;
  outline:none;
  transition:border-color .2s;
}
.presale-form .field input:focus{ border-bottom-color:var(--blood); }
.presale-form .field input::placeholder{ color:var(--bone-faint); }
.ps-form-submit{
  display:flex; justify-content:space-between; align-items:center;
  margin-top:8px; gap:14px; flex-wrap:wrap;
}
.ps-form-submit .btn{ flex-shrink:0; }
.ps-meta{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--bone-faint);
}
.ps-success{
  font-family:var(--mono); font-size:12px;
  letter-spacing:.15em; text-transform:uppercase;
  color:var(--blood);
  margin:8px 0 0;
}
.ps-error{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.05em;
  color:var(--blood);
  margin:8px 0 0;
}

/* Reference price block */
.prices-reference{
  background:var(--smoke);
  border:1px solid var(--ash);
  padding:clamp(28px,3.5vw,40px);
  margin-top:clamp(40px,5vw,72px);
}
.pr-head{
  display:flex; flex-direction:column; gap:10px;
  margin-bottom:24px;
  padding-bottom:18px;
  border-bottom:1px solid var(--ash);
}
.pr-eyebrow{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
}
.pr-title{
  font-family:var(--display);
  font-size:clamp(24px,2.6vw,36px);
  line-height:1.1; letter-spacing:-.015em;
  text-transform:uppercase;
  color:var(--bone);
  margin:0;
}
.pr-list{
  list-style:none; margin:0 0 18px; padding:0;
  display:flex; flex-direction:column;
}
.pr-list li{
  display:flex; justify-content:space-between; align-items:baseline;
  padding:14px 0;
  border-bottom:1px solid var(--ash);
  gap:18px;
  flex-wrap:wrap;
}
.pr-list li:last-child{ border-bottom:0; }
.pr-label{
  display:inline-flex; align-items:baseline; gap:14px;
  font-family:var(--mono); font-size:13px;
  letter-spacing:.1em; text-transform:uppercase;
  color:var(--bone);
}
.pr-num{
  font-family:var(--display);
  font-size:18px;
  color:var(--blood);
  letter-spacing:-.02em;
}
.pr-price{
  font-family:var(--display);
  font-size:clamp(24px,2.4vw,32px);
  line-height:1; letter-spacing:-.02em;
  color:var(--bone);
  text-transform:uppercase;
  display:inline-flex; align-items:baseline; gap:10px;
}
.pr-cur{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.15em;
  color:var(--bone-dim);
  text-transform:uppercase;
}
.pr-plus{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.18em;
  color:var(--bone-faint);
  text-transform:uppercase;
  margin-left:4px;
}
.pr-meta{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.1em;
  color:var(--bone-faint);
  margin:0;
}

/* ===========================================================
   [7] EXPERIENCE
=========================================================== */
.experience{ background:var(--void); }
.exp-title{ margin:0 0 clamp(40px,6vw,80px); }
.exp-title .blood-period{ color:var(--blood); }

.exp-lede{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  font-size:18px; line-height:1.6;
  color:var(--bone-dim);
  max-width:1100px;
  margin-bottom:clamp(60px,8vw,120px);
}
.exp-lede p{ margin:0; }
@media (max-width:768px){ .exp-lede{ grid-template-columns:1fr; gap:24px; } }

.exp-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  border-top:1px solid var(--ash);
  border-bottom:1px solid var(--ash);
}
.exp-card{
  padding:48px 36px 56px;
  border-right:1px solid var(--ash);
  display:flex; flex-direction:column; gap:24px;
}
.exp-card:last-child{ border-right:0; }
.exp-num{
  font-family:var(--display);
  font-size:clamp(72px,9vw,140px);
  line-height:.85; color:var(--blood);
  letter-spacing:-.04em;
}
.exp-card h3{
  font-family:var(--display);
  font-size:clamp(20px,2vw,28px);
  line-height:1.05;
  margin:0; color:var(--bone);
  text-transform:uppercase; letter-spacing:-.01em;
}
.exp-card p{
  font-size:15px; line-height:1.6;
  color:var(--bone-dim);
  margin:0;
}
@media (max-width:1024px){
  .exp-grid{ grid-template-columns:1fr; }
  .exp-card{ border-right:0; border-bottom:1px solid var(--ash); }
  .exp-card:last-child{ border-bottom:0; }
}

.exp-footer{ margin-top:48px; display:flex; justify-content:flex-start; }

/* ===========================================================
   [8] GALLERY
=========================================================== */
.gallery{ background:var(--void); }
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  grid-auto-rows:80px;
  gap:14px;
}
.gimg{
  position:relative;
  overflow:hidden;
  background:var(--smoke);
  border:1px solid var(--ash);
  transition:border-color .2s;
}
.gimg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,10,11,0) 60%, rgba(10,10,11,.85) 100%);
  pointer-events:none;
}
.gimg .ph{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  flex-direction:column; gap:6px;
  color:var(--bone-faint);
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  background-image:
    repeating-linear-gradient(135deg, rgba(237,231,218,.04) 0 2px, transparent 2px 14px);
  transition:transform .5s var(--ease-out), filter .3s;
}
.gimg:hover .ph{ transform:scale(1.05); }
.gimg::before{
  content:""; position:absolute; inset:0;
  background:var(--blood); mix-blend-mode:multiply;
  opacity:0; transition:opacity .3s;
  z-index:2; pointer-events:none;
}
.gimg:hover::before{ opacity:.28; }
.gimg .cap{
  position:absolute; left:18px; bottom:14px;
  z-index:3;
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-dim);
  display:flex; gap:10px; align-items:center;
}
.gimg .cap .ix{ color:var(--blood); }

.gimg.g1{ grid-column:1 / span 7; grid-row:span 6; }
.gimg.g2{ grid-column:8 / span 5; grid-row:span 3; }
.gimg.g3{ grid-column:8 / span 5; grid-row:span 3; }
.gimg.g4{ grid-column:1 / span 4; grid-row:span 4; }
.gimg.g5{ grid-column:5 / span 4; grid-row:span 4; }
.gimg.g6{ grid-column:9 / span 4; grid-row:span 4; }

@media (max-width:1024px){
  .gallery-grid{ grid-template-columns:repeat(6,1fr); grid-auto-rows:70px; }
  .gimg.g1{ grid-column:1 / -1; grid-row:span 5; }
  .gimg.g2{ grid-column:1 / span 3; grid-row:span 3; }
  .gimg.g3{ grid-column:4 / span 3; grid-row:span 3; }
  .gimg.g4{ grid-column:1 / span 2; grid-row:span 3; }
  .gimg.g5{ grid-column:3 / span 2; grid-row:span 3; }
  .gimg.g6{ grid-column:5 / span 2; grid-row:span 3; }
}

.gallery-footer{ margin-top:48px; }

/* ===========================================================
   [9] SPONSORS
=========================================================== */
.sponsors{ background:var(--smoke); }
.sponsors-head{
  display:flex; gap:18px; align-items:center;
  margin-bottom:48px;
}
.sponsors-head .lbl{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
}
.sponsors-head .ln{ flex:1; height:1px; background:var(--ash); }
.sponsors-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:1px;
  background:var(--ash);
  border:1px solid var(--ash);
}
@media (max-width:1024px){ .sponsors-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:480px){ .sponsors-grid{ grid-template-columns:repeat(2,1fr); } }
.sponsor{
  background:var(--smoke);
  padding:32px 20px;
  display:flex; align-items:center; justify-content:center;
  min-height:120px;
  font-family:var(--display);
  font-size:18px;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--bone-dim);
  filter:grayscale(1);
  opacity:.55;
  transition:opacity .25s, filter .25s, color .25s, transform .25s;
}
.sponsor:hover{ opacity:1; filter:grayscale(0); color:var(--bone); transform:translateY(-2px); }
.sponsor.s-blood:hover{ color:var(--blood); }

/* ===========================================================
   [10] FAQ
=========================================================== */
.faq{ background:var(--void); }
.faq-list{ border-top:1px solid var(--ash); }
.faq-item{ border-bottom:1px solid var(--ash); }
.faq-q{
  display:flex; justify-content:space-between; align-items:center;
  gap:24px;
  width:100%;
  padding:32px 0;
  text-align:left;
  font-family:var(--display);
  font-size:clamp(20px,2.4vw,32px);
  line-height:1.1;
  letter-spacing:-.01em;
  text-transform:uppercase;
  color:var(--bone);
  transition:color .2s;
}
.faq-q:hover{ color:var(--blood); }
.faq-q .plus{
  position:relative;
  width:18px; height:18px;
  flex-shrink:0;
  transition:transform .3s var(--ease-out);
}
.faq-q .plus::before, .faq-q .plus::after{
  content:""; position:absolute; background:var(--blood);
}
.faq-q .plus::before{ left:0; right:0; top:8px; height:2px; }
.faq-q .plus::after{ top:0; bottom:0; left:8px; width:2px; }
.faq-item.is-open .faq-q .plus{ transform:rotate(45deg); }
.faq-a{
  max-height:0; overflow:hidden;
  transition:max-height .35s var(--ease-out);
}
.faq-a-inner{
  padding:0 24% 28px 0;
  font-size:16px; line-height:1.65;
  color:var(--bone-dim);
}
@media (max-width:768px){ .faq-a-inner{ padding-right:0; } }
.faq-item.is-open .faq-a{ max-height:400px; }
.faq-footer{ margin-top:48px; }

/* ===========================================================
   [11] NEWSLETTER
=========================================================== */
.news{
  background:var(--void);
  border-top:1px solid var(--ash);
}
.news-wrap{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:end;
}
@media (max-width:1024px){ .news-wrap{ grid-template-columns:1fr; gap:48px; } }

.news-left h2{ margin:0; }
.news-left .cap{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--blood);
  margin-bottom:24px;
  display:inline-flex; align-items:center; gap:10px;
}
.news-left .cap .dash{ width:24px; height:1px; background:var(--blood); }
.news-left p{
  font-size:16px; color:var(--bone-dim);
  max-width:520px; margin-top:24px;
}

.news-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  column-gap:32px;
  row-gap:24px;
}
.field{ position:relative; }
.field label{
  display:block;
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
  margin-bottom:10px;
}
.field input{
  width:100%;
  background:transparent;
  border:0;
  border-bottom:1px solid var(--ash);
  padding:12px 0 14px;
  color:var(--bone);
  font:inherit;
  font-size:18px;
  outline:none;
  transition:border-color .2s;
}
.field input::placeholder{ color:var(--bone-faint); }
.field input:focus{ border-bottom-color:var(--blood); }
.news-submit{
  grid-column:1 / -1;
  display:flex; justify-content:space-between; align-items:center;
  margin-top:16px; gap:16px; flex-wrap:wrap;
}
.news-submit .meta{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.18em; color:var(--bone-faint);
  text-transform:uppercase;
}
.news-success{
  display:none;
  font-family:var(--mono); font-size:12px;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--blood);
  margin-top:18px;
  align-items:center; gap:10px;
}
.news-success::before{
  content:""; width:8px; height:8px; background:var(--blood);
}
.news-form.is-sent .news-success{ display:inline-flex; }

/* ===========================================================
   [12] FOOTER
=========================================================== */
footer.footer{
  background:var(--void);
  border-top:1px solid var(--ash);
  padding:clamp(60px,8vw,120px) 0 32px;
  margin-top:60px;
}
.footer-mark{
  display:flex; justify-content:space-between; align-items:flex-end;
  flex-wrap:wrap;
  gap:32px;
  margin-bottom:64px;
}
.footer-logo{
  display:block; line-height:0;
  flex:1; max-width:880px; min-width:280px;
}
.footer-logo img{
  display:block;
  width:100%;
  height:auto;
  filter:drop-shadow(0 0 1px rgba(0,0,0,.2));
}
.footer-mark .meta{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
  text-align:right;
  max-width:240px;
}
@media (max-width:768px){ .footer-mark .meta{ text-align:left; } }

.footer-cols{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:48px;
  padding-top:48px;
  border-top:1px solid var(--ash);
}
@media (max-width:1024px){ .footer-cols{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .footer-cols{ grid-template-columns:1fr; } }

.fcol h3{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--blood);
  margin:0 0 18px;
  display:flex; align-items:center; gap:10px;
}
.fcol h3 .ix{ color:var(--bone-faint); }
.fcol ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:12px; }
.fcol a{
  font-size:14px;
  color:var(--bone-dim);
  transition:color .2s;
  display:inline-block;
}
.fcol a:hover{ color:var(--bone); }
.fcol .insignia{
  display:flex; flex-direction:column; gap:18px;
}
.insignia-card{
  border:1px solid var(--ash);
  padding:18px;
  display:flex; flex-direction:column; gap:10px;
}
.insignia-card .by{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
}
.insignia-card .name{
  font-family:var(--display); font-size:22px;
  letter-spacing:.02em; text-transform:uppercase;
  color:var(--bone);
  display:flex; align-items:center; gap:8px;
}
.insignia-card .name .mark{ width:8px; height:8px; background:var(--blood); }
.insignia-card-logo{
  display:block;
  line-height:0;
  margin:6px 0 8px;
  transition:opacity .2s, transform .25s var(--ease-out);
  align-self:flex-start;
}
.insignia-card-logo:hover{ opacity:.85; transform:translateY(-1px); }
.insignia-card-logo img{
  display:block;
  width:100%;
  max-width:180px;
  height:auto;
  filter:drop-shadow(0 0 2px rgba(0,0,0,.4));
}

/* ===========================================================
   VIP POPUP — registro / fidelización
=========================================================== */
.vip-popup{
  position:fixed;
  inset:0;
  z-index:9500;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(16px,4vw,40px);
  background:rgba(10,10,11,.82);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  opacity:0;
  visibility:hidden;
  transition:opacity .35s var(--ease-out), visibility .35s;
}
.vip-popup.is-open{ opacity:1; visibility:visible; }

.vip-popup-card{
  position:relative;
  width:100%; max-width:520px;
  background:var(--smoke);
  border:1px solid var(--ash);
  padding:clamp(32px,4vw,52px) clamp(28px,3.5vw,44px) clamp(28px,3.5vw,40px);
  display:flex; flex-direction:column;
  gap:22px;
  transform:translateY(20px) scale(.97);
  transition:transform .4s var(--ease-out);
  overflow:hidden;
}
.vip-popup.is-open .vip-popup-card{ transform:translateY(0) scale(1); }

/* Purple flame layer behind card content */
.vip-popup-card::before{
  content:"";
  position:absolute;
  left:-15%; right:-15%;
  bottom:-15%;
  height:55%;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(ellipse 60% 100% at 50% 100%, rgba(var(--blood-rgb),.4) 0%, transparent 60%);
  filter:blur(28px);
  opacity:.7;
  mix-blend-mode:screen;
}
.vip-popup-card > *{ position:relative; z-index:1; }

.vip-popup-close{
  position:absolute;
  top:14px; right:14px;
  z-index:2;
  width:36px; height:36px;
  background:transparent;
  border:1px solid var(--ash);
  color:var(--bone);
  font-size:16px;
  cursor:pointer;
  transition:border-color .2s, color .2s, transform .25s;
}
.vip-popup-close:hover{ border-color:var(--blood); color:var(--blood); transform:rotate(90deg); }

.vip-popup-eyebrow{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--blood);
  display:inline-flex; align-items:center; gap:10px;
  margin:0;
}
.vip-popup-eyebrow::before{
  content:""; width:24px; height:1px; background:var(--blood);
}
.vip-popup-title{
  font-family:var(--display);
  font-size:clamp(34px,4.5vw,52px);
  line-height:.95;
  letter-spacing:-.025em;
  text-transform:uppercase;
  color:var(--bone);
  margin:0;
  text-wrap:balance;
}
.vip-popup-desc{
  font-size:15px;
  line-height:1.55;
  color:var(--bone-dim);
  margin:0;
}
.vip-popup-form{
  display:flex; flex-direction:column;
  gap:16px;
  margin-top:8px;
}
.vip-popup-form .field input{
  width:100%;
  background:transparent;
  border:0;
  border-bottom:1px solid var(--ash);
  padding:10px 0 12px;
  color:var(--bone);
  font:inherit;
  font-size:16px;
  outline:none;
  transition:border-color .2s;
}
.vip-popup-form .field input:focus{ border-bottom-color:var(--blood); }
.vip-popup-form .field input::placeholder{ color:var(--bone-faint); }
.vip-popup-form .field label{
  display:block;
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
  margin-bottom:6px;
}
.vip-popup-form .btn{ margin-top:8px; }
.vip-popup-meta{
  display:flex; justify-content:space-between;
  font-family:var(--mono); font-size:10px;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--bone-faint);
  margin-top:4px;
}

/* Success state */
.vip-popup-success{
  display:none;
  text-align:center;
  padding:24px 0 8px;
}
.vip-popup-success-icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:64px; height:64px;
  border-radius:50%;
  background:var(--blood);
  color:var(--bone);
  font-size:24px;
  margin:0 auto 18px;
}
.vip-popup-success-title{
  font-family:var(--display);
  font-size:28px;
  letter-spacing:-.01em;
  text-transform:uppercase;
  color:var(--bone);
  margin:0 0 8px;
}
.vip-popup-success-desc{
  font-size:14px;
  color:var(--bone-dim);
  margin:0;
}
.vip-popup.is-success .vip-popup-form,
.vip-popup.is-success .vip-popup-title,
.vip-popup.is-success .vip-popup-eyebrow,
.vip-popup.is-success .vip-popup-desc{ display:none; }
.vip-popup.is-success .vip-popup-success{ display:block; }

/* Error state for inline form feedback */
.vip-popup-error{
  display:none;
  font-family:var(--mono); font-size:11px;
  color:var(--blood);
  margin-top:4px;
}
.vip-popup.is-error .vip-popup-error{ display:block; }

@media (max-width:480px){
  .vip-popup{ padding:0; align-items:flex-end; }
  .vip-popup-card{
    max-width:100%;
    border-left:0; border-right:0; border-bottom:0;
    border-radius:0;
    padding:36px 24px 32px;
  }
  .vip-popup.is-open .vip-popup-card{
    transform:translateY(0);
  }
  .vip-popup-card{
    transform:translateY(100%);
  }
  .vip-popup-close{ top:12px; right:12px; }
}

/* honeypot field — invisible for users, visible for spam bots */
.netlify-honeypot{
  position:absolute; left:-9999px;
  opacity:0; pointer-events:none;
}
.insignia-card .link{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--bone-dim);
  display:inline-flex; align-items:center; gap:6px;
}
.socials{
  display:flex; gap:14px; margin-top:14px;
}
.socials a{
  width:38px; height:38px;
  border:1px solid var(--ash);
  display:flex; align-items:center; justify-content:center;
  transition:border-color .2s, background .2s, color .2s;
  color:var(--bone-dim);
}
.socials a:hover{ border-color:var(--blood); color:var(--blood); }
.socials svg{ width:16px; height:16px; fill:currentColor; }

.footer-bottom{
  display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; gap:14px;
  padding-top:32px;
  margin-top:64px;
  border-top:1px solid var(--ash);
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
}
.footer-bottom a{ color:var(--bone-faint); }
.footer-bottom a:hover{ color:var(--bone); }
.footer-bottom .right{ display:flex; gap:24px; }

/* ===========================================================
   FLAMES RISING — purple aurora from the underworld
=========================================================== */
.flames-rising{
  position:absolute;
  left:-15%; right:-15%;
  bottom:-10%;
  height:55%;
  z-index:2;
  pointer-events:none;
  background:
    radial-gradient(ellipse 50% 100% at 15% 100%, rgba(var(--blood-rgb),.55) 0%, transparent 55%),
    radial-gradient(ellipse 60% 100% at 45% 110%, rgba(var(--blood-rgb),.4)  0%, transparent 60%),
    radial-gradient(ellipse 45% 100% at 80% 100%, rgba(var(--blood-rgb),.5)  0%, transparent 55%);
  filter:blur(28px);
  mix-blend-mode:screen;
  opacity:.85;
  animation:flames-rise 11s ease-in-out infinite;
  will-change:transform, opacity;
}
@keyframes flames-rise{
  0%,100%{
    transform:translate3d(0,0,0) scale(1, 1);
    opacity:.75;
  }
  33%{
    transform:translate3d(-2%,-12px,0) scale(1.05, 1.12);
    opacity:.9;
  }
  66%{
    transform:translate3d(3%,-6px,0) scale(.95, 1.06);
    opacity:.82;
  }
}

/* Smaller embers layer — fast subtle flicker on top of the rising */
.flames-rising::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle 80px at 25% 70%, rgba(var(--blood-rgb),.6) 0%, transparent 60%),
    radial-gradient(circle 60px at 60% 80%, rgba(168,85,247,.4) 0%, transparent 60%),
    radial-gradient(circle 100px at 85% 65%, rgba(var(--blood-rgb),.5) 0%, transparent 60%);
  filter:blur(12px);
  animation:flames-flicker 4.5s ease-in-out infinite;
  mix-blend-mode:screen;
  opacity:.7;
}
@keyframes flames-flicker{
  0%,100%{ transform:translateY(0)   scale(1); opacity:.6; }
  25%    { transform:translateY(-8px) scale(1.04); opacity:.85; }
  50%    { transform:translateY(-4px) scale(.96); opacity:.55; }
  75%    { transform:translateY(-12px) scale(1.08); opacity:.78; }
}

@media (prefers-reduced-motion: reduce){
  .flames-rising, .flames-rising::after{ animation:none; }
}

/* Subtle global ambient — fixed bottom flame layer behind all content
   (visible only between sections; provides continuity throughout scroll) */
body{ position:relative; }
.bg-ambient-flames{
  position:fixed;
  left:-20%; right:-20%;
  bottom:-10%;
  height:42vh;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(ellipse 50% 100% at 25% 105%, rgba(var(--blood-rgb),.22) 0%, transparent 55%),
    radial-gradient(ellipse 40% 100% at 75% 110%, rgba(var(--blood-rgb),.18) 0%, transparent 55%);
  filter:blur(36px);
  mix-blend-mode:screen;
  opacity:.45;
  animation:bg-flames-drift 16s ease-in-out infinite;
}
@keyframes bg-flames-drift{
  0%,100%{ transform:translate(0,0) scale(1, 1); }
  50%    { transform:translate(-2%,-8px) scale(1.06, 1.1); }
}
@media (prefers-reduced-motion: reduce){
  .bg-ambient-flames{ animation:none; }
}

/* ===========================================================
   HERO — Brand-first variant (homepage)
=========================================================== */
.hero-brand-logo{
  display:block;
  width:clamp(280px, 70vw, 1100px);
  height:auto;
  margin:0 0 clamp(20px, 3vw, 32px);
  line-height:0;
  position:relative;
}
.hero-brand-logo img{
  display:block;
  width:100%;
  height:auto;
  opacity:0;
  transform:translateY(40px) scale(.94);
  filter:blur(16px);
  animation:
    logo-emerge 2.4s cubic-bezier(0.16, 1, 0.3, 1) 0.4s forwards,
    logo-pulse 6s ease-in-out 3.2s infinite;
}
@keyframes logo-emerge{
  0%{
    opacity:0;
    transform:translateY(40px) scale(.94);
    filter:blur(16px);
  }
  45%{
    opacity:.9;
    transform:translateY(8px) scale(.98);
    filter:blur(3px) drop-shadow(0 0 8px rgba(var(--blood-rgb),.4));
  }
  /* glitch jitter — chromatic offset frames */
  62%{ transform:translateY(2px) scale(.995) translateX(-5px); filter:blur(1px) drop-shadow(2px 0 0 rgba(var(--blood-rgb),.6)) drop-shadow(-2px 0 0 rgba(0,200,255,.4)); }
  68%{ transform:translateY(0)   scale(1.005) translateX(5px); filter:blur(1px) drop-shadow(-2px 0 0 rgba(var(--blood-rgb),.6)) drop-shadow(2px 0 0 rgba(0,200,255,.4)); }
  74%{ transform:translateY(1px) scale(1)     translateX(-2px); filter:blur(0); }
  80%{ transform:translateY(0)   scale(1)     translateX(2px); filter:blur(0); }
  86%{ transform:translateY(0)   scale(1)     translateX(0); }
  100%{
    opacity:1;
    transform:translateY(0) scale(1) translateX(0);
    filter:blur(0) drop-shadow(0 0 18px rgba(var(--blood-rgb),.55));
  }
}
@keyframes logo-pulse{
  0%,100%{ filter:blur(0) drop-shadow(0 0 14px rgba(var(--blood-rgb),.4)); }
  50%    { filter:blur(0) drop-shadow(0 0 36px rgba(var(--blood-rgb),.8)); }
}
@media (prefers-reduced-motion: reduce){
  .hero-brand-logo img{
    animation:none;
    opacity:1;
    transform:none;
    filter:drop-shadow(0 0 18px rgba(var(--blood-rgb),.4));
  }
}

.hero-tagline{
  margin:0;
  color:var(--bone);
  max-width:1100px;
  text-wrap:balance;
}

.hero-positioning{
  display:flex; align-items:center; flex-wrap:wrap; gap:14px;
  margin:0;
  font-family:var(--mono);
  font-size:13px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--bone-dim);
}
.hero-positioning .sep{ color:var(--blood); }

@media (max-width:768px){
  .hero-positioning{ font-size:11px; gap:10px; }
}

/* Section head with inline countdown (events section, homepage) */
.section-head-countdown{
  flex-direction:column;
  align-items:flex-start;
  gap:18px;
}
.section-head-countdown .h2{
  font-size:clamp(40px, 7vw, 120px);
  line-height:.9;
  letter-spacing:-.03em;
}
.section-head-countdown .cd-inline{
  color:var(--blood);
  font-variant-numeric:tabular-nums;
  display:inline-block;
  min-width:1.5ch;
  text-align:right;
}
.section-lede-meta{
  display:flex; flex-wrap:wrap; gap:14px;
  margin:0;
  font-family:var(--mono);
  font-size:13px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--bone-dim);
}
.section-lede-meta .sep{ color:var(--blood); }
@media (max-width:768px){
  .section-lede-meta{ font-size:11px; gap:10px; }
}

/* ===========================================================
   HERO — Featured event title stack (legacy / event detail pages)
=========================================================== */
.event-title-stack{
  display:flex; flex-direction:column;
  gap:clamp(2px, .6vw, 12px);
}
.event-title-stack .evt-line{
  display:block;
  font-family:var(--display);
  line-height:.88;
  letter-spacing:-.045em;
  text-transform:uppercase;
}
.event-title-stack .evt-cross{
  display:inline-block;
  font-family:var(--display);
  font-size:clamp(28px, 4vw, 56px);
  line-height:1;
  color:var(--blood);
  margin:clamp(4px,1vw,16px) 0;
  align-self:flex-start;
}
.hero-event-meta{
  display:flex; flex-wrap:wrap; gap:14px;
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--bone-dim);
  margin:0;
}
.hero-event-meta .sep{ color:var(--bone-faint); }
@media (max-width:768px){
  .event-title-stack .evt-cross{ font-size:32px; }
  .hero-event-meta{ font-size:11px; gap:10px; }
}

/* ===========================================================
   STRAPLINE — brand interstitial
=========================================================== */
.strapline{
  background:var(--void);
  border-top:1px solid var(--ash);
  border-bottom:1px solid var(--ash);
  padding:clamp(40px,6vw,72px) 0;
}
.strapline-text{
  margin:0;
  font-family:var(--display);
  font-size:clamp(28px,3.6vw,56px);
  line-height:1.05;
  letter-spacing:-.02em;
  text-transform:uppercase;
  color:var(--bone);
  max-width:1100px;
}
.strapline-sub{
  display:block;
  margin-top:14px;
  font-family:var(--mono);
  font-size:13px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--bone-faint);
  font-weight:400;
}

/* ===========================================================
   EVENTS — Cartelera (próximos eventos)
=========================================================== */
.events{ background:var(--void); }
.events-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:24px;
}
.event-card{
  position:relative;
  background:var(--smoke);
  border:1px solid var(--ash);
  overflow:hidden;
  transition:border-color .25s var(--ease-out), transform .25s var(--ease-out);
}
.event-card:hover{ border-color:var(--bone); transform:translateY(-3px); }
.event-card.is-featured{ grid-column:span 12; border-color:var(--blood); }
.event-card.is-tba{ grid-column:span 12; opacity:.74; }
@media (min-width:1024px){
  .event-card.is-featured{ grid-column:span 8; }
  .event-card.is-tba{ grid-column:span 4; }
}
.event-card-link{
  display:grid;
  grid-template-columns:1fr;
  text-decoration:none;
  color:inherit;
  height:100%;
}
.event-card.is-featured .event-card-link{
  grid-template-columns:1fr;
}
@media (min-width:768px){
  .event-card.is-featured .event-card-link{ grid-template-columns:1.1fr 1fr; }
}
.event-card-link.non-link{ cursor:default; }

.event-cover{
  position:relative;
  min-height:280px;
  background:var(--void);
  overflow:hidden;
}
.event-card.is-featured .event-cover{ min-height:380px; }

.event-cover-art{
  position:absolute; inset:0;
  display:flex; flex-direction:column;
  justify-content:center; align-items:center;
  gap:14px;
  padding:32px 24px;
  text-align:center;
  background:
    radial-gradient(ellipse at center, rgba(var(--blood-rgb),.12) 0%, rgba(10,10,11,0) 60%),
    repeating-linear-gradient(135deg, rgba(237,231,218,.04) 0 2px, transparent 2px 14px),
    var(--void);
  transition:transform .5s var(--ease-out);
}
.event-card:hover .event-cover-art{ transform:scale(1.04); }
.event-cover-art .art-eyebrow{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.3em; text-transform:uppercase;
  color:var(--bone-faint);
}
.event-cover-art .art-head{
  font-family:var(--display);
  font-size:clamp(36px,5vw,72px);
  line-height:.95;
  letter-spacing:-.02em;
  color:var(--bone);
  text-transform:uppercase;
}
.event-cover-art .art-feat{
  font-family:var(--display);
  font-size:clamp(20px,2.4vw,32px);
  line-height:1;
  letter-spacing:-.01em;
  color:var(--blood);
  text-transform:uppercase;
}
.event-cover-art .art-meta{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-dim);
  margin-top:8px;
}
.event-cover-art.is-tba{
  background:
    repeating-linear-gradient(135deg, rgba(237,231,218,.03) 0 2px, transparent 2px 18px),
    var(--smoke);
}
.event-cover-art.is-tba .art-head{ color:var(--bone-faint); }

.event-status{
  position:absolute; top:18px; left:18px;
  z-index:3;
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  padding:7px 14px;
  background:var(--void);
  border:1px solid var(--ash);
  color:var(--bone);
}
.event-status.is-live{ background:var(--blood); border-color:var(--blood); }
.event-status.is-soon{ background:transparent; color:var(--bone-faint); }
.event-status.is-soldout{ background:var(--ash); color:var(--bone-faint); }

.event-info{
  padding:clamp(28px,3.5vw,44px);
  display:flex; flex-direction:column;
  gap:18px;
  justify-content:space-between;
}
.event-meta-top{
  display:flex; justify-content:space-between;
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
}
.event-headliner{
  font-family:var(--display);
  font-size:clamp(40px,5vw,76px);
  line-height:.92;
  letter-spacing:-.03em;
  text-transform:uppercase;
  margin:0;
  color:var(--bone);
  transition:color .2s var(--ease-out);
}
.event-card:hover .event-headliner{ color:var(--blood); }
.event-headliner.is-tba{ color:var(--bone-faint); }
.event-feat{
  font-family:var(--display);
  font-size:clamp(20px,2vw,28px);
  letter-spacing:-.01em;
  color:var(--blood);
  margin:0;
  text-transform:uppercase;
  line-height:1;
}
.event-meta{
  display:flex; flex-direction:column;
  border-top:1px solid var(--ash);
  border-bottom:1px solid var(--ash);
}
.event-meta > div{
  display:flex; align-items:baseline; gap:18px;
  padding:12px 0;
  border-bottom:1px solid var(--ash);
}
.event-meta > div:last-child{ border-bottom:0; }
.event-meta .lbl{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
  flex:0 0 80px;
}
.event-meta .val{
  font-family:var(--mono); font-size:13px;
  color:var(--bone);
  letter-spacing:.04em;
}
.event-cta{
  display:inline-flex; align-items:center; gap:14px;
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone);
  margin-top:auto;
  padding-top:10px;
  transition:color .2s, gap .2s var(--ease-out);
}
.event-cta .arrow{
  display:inline-block;
  width:36px; height:1px;
  background:var(--blood);
  position:relative;
  transition:width .25s var(--ease-out);
}
.event-cta .arrow::after{
  content:""; position:absolute; right:-1px; top:-3px;
  width:7px; height:7px;
  border-top:1px solid var(--blood);
  border-right:1px solid var(--blood);
  transform:rotate(45deg);
}
.event-card:hover .event-cta{ color:var(--blood); gap:20px; }
.event-card:hover .event-cta .arrow{ width:56px; }

.events-footer{
  margin-top:clamp(40px,6vw,80px);
  display:flex; justify-content:flex-end;
}

/* ===========================================================
   EVENT DETAIL PAGE
=========================================================== */
.event-hero{
  position:relative;
  padding:160px 0 80px;
  background:var(--void);
  overflow:hidden;
}
.event-hero-bg{
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse at 80% 20%, rgba(var(--blood-rgb),.18) 0%, rgba(10,10,11,0) 50%),
    radial-gradient(ellipse at 20% 80%, rgba(237,231,218,.04) 0%, rgba(10,10,11,0) 50%),
    repeating-linear-gradient(135deg, rgba(237,231,218,.025) 0 2px, transparent 2px 20px),
    var(--void);
  z-index:0;
}
.event-hero .container{ position:relative; z-index:1; }
.event-hero-grid{
  display:flex; flex-direction:column;
  gap:clamp(40px,6vw,80px);
}
.event-hero-meta{
  display:flex; flex-direction:column; gap:14px;
}
.event-hero-meta .cap{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--blood);
  display:inline-flex; align-items:center; gap:14px;
}
.event-hero-meta .cap .dash{ width:36px; height:1px; background:var(--blood); }
.event-hero-meta .tour-tag{
  font-family:var(--mono); font-size:13px;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--bone-dim);
  margin:0;
}
.event-hero-title{
  font-family:var(--display);
  font-size:clamp(56px, 11vw, 200px);
  line-height:.88;
  letter-spacing:-.045em;
  text-transform:uppercase;
  color:var(--bone);
  margin:0;
  display:flex; flex-direction:column;
  gap:clamp(4px,1vw,16px);
}
.event-hero-title .evt-line{ display:block; }
.event-hero-title .evt-cross{
  display:inline-block;
  font-size:clamp(32px,5vw,72px);
  color:var(--blood);
  align-self:flex-start;
  line-height:1;
}
.event-hero-title .evt-feat{ color:var(--bone); }
.event-hero-title .blood-period{ color:var(--blood); }

.event-hero-bottom{
  display:flex; flex-direction:column; gap:36px;
  padding-top:clamp(20px,3vw,40px);
  border-top:1px solid var(--ash);
}
.event-keymeta{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  margin:0;
}
@media (max-width:1024px){ .event-keymeta{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .event-keymeta{ grid-template-columns:1fr; } }
.event-keymeta > div{
  padding:18px 24px 18px 0;
  border-right:1px solid var(--ash);
}
.event-keymeta > div:last-child{ border-right:0; }
@media (max-width:1024px){
  .event-keymeta > div:nth-child(2){ border-right:0; }
}
.event-keymeta dt{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
  margin-bottom:8px;
}
.event-keymeta dd{
  margin:0;
  font-family:var(--display); font-size:clamp(20px,2.2vw,30px);
  line-height:1.05; letter-spacing:-.01em;
  text-transform:uppercase;
  color:var(--bone);
}
.event-keymeta dd .sub{
  display:block;
  font-family:var(--mono); font-size:11px;
  letter-spacing:.18em; color:var(--bone-dim);
  text-transform:uppercase;
  margin-top:4px;
}
.event-keymeta dd .cd-num{
  font-family:var(--display);
  color:var(--blood);
  font-size:1.15em;
}
.event-keymeta .status-live{
  color:var(--blood);
  font-size:clamp(18px,1.8vw,22px);
}
.event-hero-ctas{
  display:flex; align-items:center; gap:22px;
  flex-wrap:wrap;
}

/* Lineup cards (headliner + special guest) */
.event-lineup{ background:var(--void); }
.lineup-cards{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}
@media (max-width:1024px){ .lineup-cards{ grid-template-columns:1fr; } }

.lineup-card{
  position:relative;
  background:var(--smoke);
  border:1px solid var(--ash);
  padding:clamp(32px,4vw,56px);
  display:flex; flex-direction:column;
  gap:18px;
}
.lineup-card.is-headliner{ border-color:var(--blood); }
.lc-tag{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--blood);
  display:inline-flex; align-items:center; gap:10px;
  align-self:flex-start;
}
.lc-tag::before{
  content:""; width:24px; height:1px; background:var(--blood);
}
.lineup-card.is-special .lc-tag{ color:var(--bone-faint); }
.lineup-card.is-special .lc-tag::before{ background:var(--bone-faint); }
.lc-name{
  font-family:var(--display);
  font-size:clamp(44px,5.5vw,84px);
  line-height:.92;
  letter-spacing:-.035em;
  text-transform:uppercase;
  margin:0;
  color:var(--bone);
}
.lc-tag-meta{
  font-family:var(--mono); font-size:12px;
  letter-spacing:.15em; text-transform:uppercase;
  color:var(--bone-faint);
  margin:0;
}
.lc-bio{
  font-size:15px; line-height:1.65;
  color:var(--bone-dim);
  margin:0;
  max-width:540px;
}
.lc-links{
  display:flex; gap:20px; flex-wrap:wrap;
  margin-top:auto;
  padding-top:8px;
}
.lc-links a{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--bone);
}

/* Venue */
.venue{ background:var(--void); }
.venue-grid{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:48px;
  align-items:start;
}
@media (max-width:1024px){ .venue-grid{ grid-template-columns:1fr; gap:32px; } }

.venue-lede{
  font-size:18px; line-height:1.6;
  color:var(--bone-dim);
  margin:0 0 32px;
  max-width:540px;
}
.venue-specs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  margin:0;
  border-top:1px solid var(--ash);
}
@media (max-width:560px){ .venue-specs{ grid-template-columns:1fr; } }
.venue-specs > div{
  padding:18px 0;
  border-bottom:1px solid var(--ash);
  display:flex; gap:18px; align-items:baseline;
}
.venue-specs > div:nth-child(odd){
  padding-right:18px;
  border-right:1px solid var(--ash);
}
@media (max-width:560px){
  .venue-specs > div:nth-child(odd){ border-right:0; padding-right:0; }
}
.venue-specs > div:nth-child(even){ padding-left:18px; }
@media (max-width:560px){ .venue-specs > div:nth-child(even){ padding-left:0; } }
.venue-specs dt{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
  flex:0 0 110px;
}
.venue-specs dd{
  margin:0;
  font-family:var(--mono); font-size:13px;
  letter-spacing:.04em;
  color:var(--bone);
}

.venue-map{
  position:relative;
  background:var(--smoke);
  border:1px solid var(--ash);
  aspect-ratio:1 / 1;
  overflow:hidden;
}
.venue-map-iframe{
  position:absolute; inset:0;
  width:100%; height:100%;
  border:0;
  /* Subtle dark-mode hack: desaturate Google's bright colors a touch */
  filter:saturate(.7) brightness(.92);
  transition:filter .3s;
}
.venue-map:hover .venue-map-iframe{
  filter:saturate(1) brightness(1);
}
.venue-map-overlay-link{
  position:absolute;
  top:14px; right:14px;
  z-index:2;
  padding:9px 14px;
  background:var(--void);
  border:1px solid var(--ash);
  color:var(--bone);
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  transition:border-color .2s, background .2s, color .2s;
  text-decoration:none;
  pointer-events:auto;
  display:inline-flex; align-items:center;
}
.venue-map-overlay-link:hover{
  border-color:var(--blood);
  background:var(--blood);
  color:var(--bone);
}
/* Legacy placeholder styles (kept for office-map until we have a real one) */
.venue-map-ph{
  position:absolute; inset:0;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  gap:18px;
  padding:32px;
  text-align:center;
  background-image:
    repeating-linear-gradient(135deg, rgba(237,231,218,.04) 0 2px, transparent 2px 18px),
    radial-gradient(circle at center, rgba(var(--blood-rgb),.08) 0%, rgba(10,10,11,0) 60%);
}
.venue-map-ph .cap{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
}
.venue-map-name{
  font-family:var(--display); font-size:clamp(32px,4vw,56px);
  line-height:1; letter-spacing:-.02em;
  color:var(--bone); text-transform:uppercase;
}

/* Brought by */
.brought-by{ background:var(--smoke); }
.brought-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  background:var(--ash);
  border:1px solid var(--ash);
}
@media (max-width:1024px){ .brought-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .brought-grid{ grid-template-columns:1fr; } }

.brought-card{
  background:var(--smoke);
  padding:clamp(28px,3vw,40px);
  display:flex; flex-direction:column;
  gap:14px;
  min-height:240px;
}
.brought-card.is-primary{ background:var(--void); }
.brought-card.is-primary .bc-name{ color:var(--blood); }
.bc-role{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
}
.bc-name{
  font-family:var(--display); font-size:clamp(22px,2.2vw,32px);
  line-height:1.05; letter-spacing:-.01em;
  text-transform:uppercase;
  color:var(--bone);
}
.bc-desc{
  font-size:13px; line-height:1.55;
  color:var(--bone-dim);
  margin:0;
  flex:1;
}
.brought-card a{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--bone);
}

/* ===========================================================
   PAGE HEADER (shared by /eventos, /eventos/pasados, etc.)
=========================================================== */
.page-header{
  position:relative;
  padding:160px 0 80px;
  background:var(--void);
  border-bottom:1px solid var(--ash);
}
.page-header-grid{
  display:flex; flex-direction:column;
  gap:clamp(24px,4vw,48px);
  max-width:1200px;
}
.ph-meta{ display:flex; flex-direction:column; gap:12px; }
.ph-meta .cap{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--blood);
  display:inline-flex; align-items:center; gap:14px;
}
.ph-meta .cap .dash{ width:36px; height:1px; background:var(--blood); }
.ph-meta .ph-eyebrow{
  font-family:var(--mono); font-size:13px;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--bone-dim);
  margin:0;
}
.ph-title{
  margin:0;
  line-height:.9;
}
.ph-lede{
  font-size:18px; line-height:1.55;
  color:var(--bone-dim);
  margin:0;
  max-width:720px;
}
.ph-stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  margin:24px 0 0;
  border-top:1px solid var(--ash);
  border-bottom:1px solid var(--ash);
}
@media (max-width:1024px){ .ph-stats{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .ph-stats{ grid-template-columns:1fr; } }
.ph-stats > div{
  padding:22px 24px 22px 0;
  border-right:1px solid var(--ash);
}
.ph-stats > div:last-child{ border-right:0; }
@media (max-width:1024px){
  .ph-stats > div:nth-child(2){ border-right:0; }
  .ph-stats > div:nth-child(odd){ padding-right:24px; }
  .ph-stats > div:nth-child(even){ padding-left:24px; }
}
@media (max-width:480px){
  .ph-stats > div{ padding:18px 0; border-right:0; border-bottom:1px solid var(--ash); }
  .ph-stats > div:last-child{ border-bottom:0; }
}
.ph-stats dt{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
  margin-bottom:8px;
}
.ph-stats dd{
  margin:0;
  font-family:var(--display);
  font-size:clamp(22px,2.4vw,32px);
  line-height:1; letter-spacing:-.01em;
  text-transform:uppercase;
  color:var(--bone);
}

/* ===========================================================
   PAST EVENT CARD (used in /eventos teaser + /eventos/pasados)
=========================================================== */
.past-events-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:24px;
}
@media (max-width:1024px){ .past-events-grid{ grid-template-columns:1fr; } }

.past-events-compact{
  grid-template-columns:repeat(3,1fr);
}
@media (max-width:1024px){ .past-events-compact{ grid-template-columns:1fr; } }
.past-events-compact .pec-recap,
.past-events-compact .pec-feat-line{ display:none; }
.past-events-compact .past-event-card{ min-height:auto; }
.past-events-compact .pec-cover{ min-height:200px; }
.past-events-compact .pec-info{ padding:24px; }

.past-event-card{
  position:relative;
  display:flex; flex-direction:column;
  background:var(--smoke);
  border:1px solid var(--ash);
  overflow:hidden;
  transition:border-color .25s, transform .25s var(--ease-out);
}
.past-event-card:hover{ border-color:var(--bone); transform:translateY(-3px); }
.pec-cover{
  position:relative;
  min-height:280px;
  background:var(--void);
  overflow:hidden;
}
.pec-art{
  position:absolute; inset:0;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  gap:10px;
  padding:32px 24px;
  text-align:center;
  background:
    radial-gradient(ellipse at center, rgba(237,231,218,.05) 0%, rgba(10,10,11,0) 60%),
    repeating-linear-gradient(135deg, rgba(237,231,218,.025) 0 2px, transparent 2px 16px),
    var(--smoke);
  transition:transform .5s var(--ease-out), filter .3s;
  filter:grayscale(.4);
}
.past-event-card:hover .pec-art{ transform:scale(1.04); filter:grayscale(0); }
.pec-eyebrow{
  font-family:var(--mono); font-size:9px;
  letter-spacing:.3em; text-transform:uppercase;
  color:var(--bone-faint);
}
.pec-head{
  font-family:var(--display); font-size:clamp(28px,3.5vw,52px);
  line-height:.95; letter-spacing:-.025em;
  text-transform:uppercase;
  color:var(--bone);
}
.pec-feat{
  font-family:var(--display); font-size:clamp(16px,1.8vw,24px);
  line-height:1; letter-spacing:-.01em;
  color:var(--blood);
  text-transform:uppercase;
}
.pec-meta{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
  margin-top:6px;
}
.pec-info{
  padding:clamp(24px,3vw,36px);
  display:flex; flex-direction:column;
  gap:12px;
  flex:1;
}
.pec-date{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
}
.pec-name{
  font-family:var(--display);
  font-size:clamp(32px,3.5vw,48px);
  line-height:.95; letter-spacing:-.02em;
  text-transform:uppercase;
  margin:0;
  color:var(--bone);
  transition:color .2s;
}
.past-event-card:hover .pec-name{ color:var(--blood); }
.pec-feat-line{
  font-family:var(--display);
  font-size:18px; line-height:1; letter-spacing:-.01em;
  color:var(--blood);
  margin:0; text-transform:uppercase;
}
.pec-venue{
  font-family:var(--mono); font-size:12px;
  letter-spacing:.05em;
  color:var(--bone-dim);
  margin:0;
}
.pec-recap{
  font-size:14px; line-height:1.6;
  color:var(--bone-dim);
  margin:6px 0 0;
  flex:1;
}
.pec-footer{
  display:flex; justify-content:space-between; align-items:center;
  gap:14px; flex-wrap:wrap;
  margin-top:auto;
  padding-top:14px;
  border-top:1px solid var(--ash);
}
.pec-status{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  padding:6px 12px;
  background:var(--ash);
  color:var(--bone-dim);
}
.pec-status.is-sold{ background:var(--blood); color:var(--bone); }

/* ===========================================================
   YEAR HEADER (in /eventos/pasados)
=========================================================== */
.past-year{ padding-top:clamp(60px,8vw,100px); padding-bottom:clamp(60px,8vw,100px); }
.year-header{
  display:flex; align-items:baseline; gap:32px;
  margin-bottom:clamp(40px,5vw,72px);
  flex-wrap:wrap;
}
.year-num{
  font-family:var(--display);
  font-size:clamp(64px,9vw,140px);
  line-height:.85; letter-spacing:-.04em;
  color:var(--bone);
  text-transform:uppercase;
}
.year-meta{
  display:flex; align-items:center; gap:18px;
  flex:1; min-width:220px;
  padding-bottom:14px;
}
.year-meta .cap{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
}
.year-meta .year-rule{
  flex:1; height:1px; background:var(--ash);
}

/* ===========================================================
   AFTERMOVIE FEATURED CARD
=========================================================== */
.aftermovie-feature{ background:var(--void); }
.aftermovie-card{
  display:grid;
  grid-template-columns:1.3fr 1fr;
  background:var(--smoke);
  border:1px solid var(--ash);
  overflow:hidden;
  transition:border-color .25s, transform .25s var(--ease-out);
}
.aftermovie-card:hover{ border-color:var(--blood); transform:translateY(-3px); }
@media (max-width:1024px){ .aftermovie-card{ grid-template-columns:1fr; } }

.afm-cover{
  position:relative;
  min-height:380px;
  background:var(--void);
  overflow:hidden;
}
.afm-video{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  transition:transform .55s var(--ease-out), filter .3s;
  filter:saturate(.85);
}
.aftermovie-card:hover .afm-video{
  transform:scale(1.03);
  filter:saturate(1);
}
.afm-cover::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,10,11,0) 50%, rgba(10,10,11,.7) 100%);
  z-index:2;
  pointer-events:none;
}
.afm-play-overlay{
  position:absolute;
  bottom:24px; right:24px;
  z-index:3;
  width:72px; height:72px;
  border-radius:50%;
  background:var(--blood);
  color:var(--bone);
  display:flex; align-items:center; justify-content:center;
  transition:transform .3s var(--ease-out), background .2s;
  box-shadow:0 10px 32px rgba(0,0,0,.5);
}
.afm-play-overlay::after{
  content:"";
  width:0; height:0;
  border-top:11px solid transparent;
  border-bottom:11px solid transparent;
  border-left:18px solid var(--bone);
  margin-left:4px;
}
.aftermovie-card:hover .afm-play-overlay{ transform:scale(1.1); }
.afm-ph{
  position:absolute; inset:0;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  gap:18px;
  background-image:
    repeating-linear-gradient(135deg, rgba(237,231,218,.04) 0 2px, transparent 2px 18px),
    radial-gradient(ellipse at center, rgba(var(--blood-rgb),.12) 0%, rgba(10,10,11,0) 60%);
  transition:transform .5s var(--ease-out);
}
.aftermovie-card:hover .afm-ph{ transform:scale(1.04); }
.afm-play{
  display:flex; align-items:center; justify-content:center;
  width:80px; height:80px; border-radius:50%;
  background:var(--blood); color:var(--bone);
  font-size:28px;
  transition:transform .3s var(--ease-out), background .2s;
}
.aftermovie-card:hover .afm-play{ transform:scale(1.08); }
.afm-tag{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.3em; text-transform:uppercase;
  color:var(--bone-faint);
}

.afm-info{
  padding:clamp(28px,4vw,48px);
  display:flex; flex-direction:column;
  gap:18px;
  justify-content:center;
}
.afm-meta{
  display:flex; gap:10px; flex-wrap:wrap;
  font-family:var(--mono); font-size:11px;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--bone-faint);
}
.afm-title{
  font-family:var(--display);
  font-size:clamp(32px,3.5vw,52px);
  line-height:.95; letter-spacing:-.02em;
  text-transform:uppercase;
  margin:0; color:var(--bone);
}
.afm-desc{
  font-size:15px; line-height:1.6;
  color:var(--bone-dim);
  margin:0;
  max-width:480px;
}
.afm-cta{
  display:inline-flex; align-items:center; gap:14px;
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--blood);
  margin-top:8px;
  transition:gap .2s var(--ease-out);
}
.afm-cta .arrow{
  display:inline-block;
  width:36px; height:1px;
  background:var(--blood);
  position:relative;
}
.afm-cta .arrow::after{
  content:""; position:absolute; right:-1px; top:-3px;
  width:7px; height:7px;
  border-top:1px solid var(--blood);
  border-right:1px solid var(--blood);
  transform:rotate(45deg);
}
.aftermovie-card:hover .afm-cta{ gap:20px; }

/* ===========================================================
   PAST TEASER (compact section on /eventos)
=========================================================== */
.past-teaser{ background:var(--void); border-top:1px solid var(--ash); }

/* ===========================================================
   /experiencia — MANIFESTO BLOCKS
=========================================================== */
.manifesto{ background:var(--void); border-top:1px solid var(--ash); }
.mfs-block{
  display:grid;
  grid-template-columns:160px 1fr;
  gap:clamp(32px,5vw,80px);
  padding:clamp(60px,8vw,120px) 0;
  border-bottom:1px solid var(--ash);
}
.mfs-block:last-child{ border-bottom:0; }
@media (max-width:768px){
  .mfs-block{ grid-template-columns:1fr; gap:24px; padding:clamp(48px,7vw,80px) 0; }
}
.mfs-num{
  font-family:var(--display);
  font-size:clamp(56px,8vw,120px);
  line-height:.85; letter-spacing:-.04em;
  color:var(--blood);
}
.mfs-title{
  font-family:var(--display);
  font-size:clamp(32px,4vw,64px);
  line-height:1.02; letter-spacing:-.02em;
  text-transform:uppercase;
  color:var(--bone);
  margin:0 0 24px;
}
.mfs-copy p{
  font-size:18px; line-height:1.65;
  color:var(--bone-dim);
  margin:0 0 18px;
  max-width:720px;
}
.mfs-copy p:last-child{ margin-bottom:0; }

/* /experiencia — CURATE GRID */
.curate{ background:var(--void); }
.curate-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  border-top:1px solid var(--ash);
  border-bottom:1px solid var(--ash);
}
@media (max-width:1024px){ .curate-grid{ grid-template-columns:1fr; } }
.curate-card{
  padding:clamp(36px,4vw,56px) clamp(28px,3vw,40px);
  border-right:1px solid var(--ash);
  display:flex; flex-direction:column; gap:18px;
}
.curate-card:last-child{ border-right:0; }
@media (max-width:1024px){
  .curate-card{ border-right:0; border-bottom:1px solid var(--ash); }
  .curate-card:last-child{ border-bottom:0; }
}
.cc-num{
  font-family:var(--display); font-size:clamp(48px,6vw,88px);
  line-height:.85; color:var(--blood); letter-spacing:-.04em;
}
.cc-name{
  font-family:var(--display); font-size:clamp(28px,3vw,40px);
  line-height:1; letter-spacing:-.015em;
  text-transform:uppercase;
  color:var(--bone); margin:0;
}
.cc-desc{
  font-size:15px; line-height:1.6;
  color:var(--bone-dim);
  margin:0;
}
.cc-ref{
  margin-top:auto;
  font-family:var(--mono); font-size:10px;
  letter-spacing:.18em;
  color:var(--bone-faint);
  padding-top:18px;
  border-top:1px solid var(--ash);
  line-height:1.7;
}

/* /experiencia — INSIGNIA BLOCK */
.insignia-block{ background:var(--smoke); }
.insignia-block-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:48px;
  align-items:start;
}
@media (max-width:1024px){ .insignia-block-grid{ grid-template-columns:1fr; gap:32px; } }
.ib-lede{
  font-size:18px; line-height:1.6;
  color:var(--bone);
  margin:0 0 24px;
  max-width:640px;
}
.ib-copy p{
  font-size:16px; line-height:1.65;
  color:var(--bone-dim);
  margin:0 0 24px;
  max-width:640px;
}
.ib-card{
  background:var(--void);
  border:1px solid var(--ash);
  padding:clamp(28px,3vw,40px);
}
.ib-card-head{
  display:flex; justify-content:space-between;
  margin-bottom:24px;
  padding-bottom:16px;
  border-bottom:1px solid var(--ash);
}
.ib-card-head .cap{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
}
.ib-card-title{
  font-family:var(--display); font-size:24px;
  line-height:1; letter-spacing:-.01em;
  text-transform:uppercase;
  color:var(--bone);
  margin:0 0 18px;
}
.ib-list{
  list-style:none; padding:0; margin:0;
  display:flex; flex-direction:column;
}
.ib-list li{
  display:flex; justify-content:space-between; gap:18px;
  padding:14px 0;
  border-bottom:1px solid var(--ash);
}
.ib-list li:last-child{ border-bottom:0; }
.ib-list .lbl{
  font-family:var(--display); font-size:16px;
  line-height:1; letter-spacing:-.01em;
  text-transform:uppercase;
  color:var(--bone);
}
.ib-list .val{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.15em; text-transform:uppercase;
  color:var(--bone-dim);
  text-align:right;
}

/* /experiencia — TEAM */
.team-block{ background:var(--void); }
.team-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
}
@media (max-width:1024px){ .team-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .team-grid{ grid-template-columns:1fr; } }
.team-card{
  background:var(--smoke);
  border:1px solid var(--ash);
  padding:0;
  display:flex; flex-direction:column;
  transition:border-color .2s, transform .2s var(--ease-out);
}
.team-card:hover{ border-color:var(--bone); transform:translateY(-3px); }
.tc-photo{
  aspect-ratio:1 / 1;
  background:var(--void);
  border-bottom:1px solid var(--ash);
  display:flex; align-items:center; justify-content:center;
  position:relative;
}
.tc-photo::after{
  content:""; position:absolute; inset:0;
  background-image:repeating-linear-gradient(135deg, rgba(237,231,218,.03) 0 2px, transparent 2px 16px);
}
.tc-ph{
  font-family:var(--display); font-size:64px;
  color:var(--blood); letter-spacing:-.02em;
  position:relative; z-index:1;
}
.tc-info{ padding:24px; display:flex; flex-direction:column; gap:10px; }
.tc-role{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
}
.tc-name{
  font-family:var(--display); font-size:24px;
  line-height:1; letter-spacing:-.01em;
  text-transform:uppercase;
  color:var(--bone); margin:0;
}
.tc-bio{
  font-size:13px; line-height:1.55;
  color:var(--bone-dim);
  margin:0;
}

/* ===========================================================
   /prensa — CONTACT, KIT, RELEASES, QUOTES
=========================================================== */
.press-contact{ background:var(--void); }
.press-contact-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:24px;
}
@media (max-width:768px){ .press-contact-grid{ grid-template-columns:1fr; } }
.pc-card{
  background:var(--smoke);
  border:1px solid var(--ash);
  padding:clamp(28px,3vw,40px);
  display:flex; flex-direction:column; gap:14px;
}
.pc-role{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--blood);
}
.pc-name{
  font-family:var(--mono); font-size:clamp(16px,1.6vw,20px);
  line-height:1.2; letter-spacing:0;
  color:var(--bone);
  margin:0;
  word-break:break-word;
}
.pc-desc{
  font-size:14px; line-height:1.55;
  color:var(--bone-dim);
  margin:0; flex:1;
}
.pc-card .btn{ align-self:flex-start; margin-top:8px; }

/* Kit cards */
.press-kit{ background:var(--smoke); }
.kit-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:24px;
}
@media (max-width:768px){ .kit-grid{ grid-template-columns:1fr; } }
.kit-card{
  background:var(--void);
  border:1px solid var(--ash);
  padding:clamp(24px,3vw,36px);
  display:flex; flex-direction:column; gap:12px;
  transition:border-color .2s, transform .2s var(--ease-out);
  text-decoration:none; color:inherit;
}
.kit-card:hover{ border-color:var(--blood); transform:translateY(-3px); }
.kit-tag{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
}
.kit-name{
  font-family:var(--display); font-size:clamp(20px,2.2vw,28px);
  line-height:1.1; letter-spacing:-.01em;
  text-transform:uppercase;
  color:var(--bone); margin:0;
}
.kit-desc{
  font-size:14px; line-height:1.55;
  color:var(--bone-dim);
  margin:0; flex:1;
}
.kit-cta{
  display:inline-flex; align-items:center; gap:14px;
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--blood);
  margin-top:10px;
}
.kit-cta .arrow{
  display:inline-block; width:32px; height:1px;
  background:var(--blood);
  position:relative;
}
.kit-cta .arrow::after{
  content:""; position:absolute; right:-1px; top:-3px;
  width:7px; height:7px;
  border-top:1px solid var(--blood);
  border-right:1px solid var(--blood);
  transform:rotate(45deg);
}
.kit-card:hover .kit-cta{ gap:20px; }

/* Press releases list */
.press-releases{ background:var(--void); }
.pr-list{
  border-top:1px solid var(--ash);
}
.pr-item{
  display:grid;
  grid-template-columns:160px 1fr;
  gap:48px;
  padding:32px 0;
  border-bottom:1px solid var(--ash);
}
@media (max-width:768px){
  .pr-item{ grid-template-columns:1fr; gap:14px; }
}
.pr-date{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--blood);
  padding-top:6px;
}
.pr-title{
  font-family:var(--display);
  font-size:clamp(20px,2.2vw,28px);
  line-height:1.15; letter-spacing:-.01em;
  text-transform:uppercase;
  margin:0 0 12px;
  color:var(--bone);
}
.pr-excerpt{
  font-size:15px; line-height:1.55;
  color:var(--bone-dim);
  margin:0 0 12px;
  max-width:720px;
}

/* Press quotes */
.press-coverage{ background:var(--smoke); }
.quotes-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:24px;
}
@media (max-width:768px){ .quotes-grid{ grid-template-columns:1fr; } }
.pq{
  margin:0;
  background:var(--void);
  border:1px solid var(--ash);
  border-left:3px solid var(--blood);
  padding:clamp(28px,3vw,40px);
  display:flex; flex-direction:column; gap:14px;
}
.pq p{
  font-family:var(--display);
  font-size:clamp(20px,2.2vw,28px);
  line-height:1.2; letter-spacing:-.01em;
  color:var(--bone);
  margin:0;
}
.pq cite{
  font-style:normal;
  font-family:var(--mono); font-size:11px;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--bone-faint);
}

/* ===========================================================
   /contacto — CONTACT GRID + OFFICE
=========================================================== */
.contact-grid-section{ background:var(--void); }
.contact-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
@media (max-width:1024px){ .contact-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-card{
  background:var(--smoke);
  border:1px solid var(--ash);
  padding:clamp(28px,3vw,36px);
  display:flex; flex-direction:column; gap:14px;
  transition:border-color .2s, transform .2s var(--ease-out);
}
.contact-card:hover{ border-color:var(--bone); transform:translateY(-3px); }
.contact-card.is-primary{ border-color:var(--blood); }
.cc-tag{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--blood);
}
.cc-channel{
  font-family:var(--display); font-size:clamp(22px,2.4vw,32px);
  line-height:1.05; letter-spacing:-.015em;
  text-transform:uppercase;
  color:var(--bone); margin:0;
}
.cc-desc{
  font-size:13px; line-height:1.55;
  color:var(--bone-dim);
  margin:0; flex:1;
}
.cc-email{
  font-family:var(--mono); font-size:13px;
  letter-spacing:.05em;
  color:var(--bone);
  word-break:break-word;
  border-bottom:1px solid var(--ash);
  padding-bottom:10px;
  transition:color .2s, border-color .2s;
}
.cc-email:hover{ color:var(--blood); border-color:var(--blood); }
.cc-meta{
  display:flex; justify-content:space-between;
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
}
.cc-meta .lbl{ color:var(--bone-faint); }
.cc-meta .val{ color:var(--bone); }

/* Office block */
.office-block{ background:var(--smoke); }
.office-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:32px;
  align-items:stretch;
}
@media (max-width:1024px){ .office-grid{ grid-template-columns:1fr; } }

.office-info{ display:flex; flex-direction:column; gap:24px; }
.oi-card{
  background:var(--void);
  border:1px solid var(--ash);
  padding:clamp(28px,3vw,40px);
  display:flex; flex-direction:column; gap:14px;
}
.oi-label{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
}
.oi-name{
  font-family:var(--display); font-size:clamp(28px,3vw,40px);
  line-height:1; letter-spacing:-.015em;
  text-transform:uppercase;
  color:var(--bone);
  margin:0;
}
.oi-addr{
  font-style:normal;
  font-size:15px; line-height:1.6;
  color:var(--bone-dim);
}
.oi-meta{
  display:flex; flex-direction:column;
  border-top:1px solid var(--ash);
  padding-top:14px;
  gap:0;
}
.oi-meta > div{
  display:flex; gap:18px;
  padding:10px 0;
  border-bottom:1px solid var(--ash);
}
.oi-meta > div:last-child{ border-bottom:0; }
.oi-meta .lbl{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
  flex:0 0 80px;
}
.oi-meta .val{
  font-family:var(--mono); font-size:13px;
  color:var(--bone);
}
.oi-socials{
  background:var(--void);
  border:1px solid var(--ash);
  padding:24px;
  display:flex; flex-direction:column; gap:14px;
}
.oi-socials .cap{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
}

.office-map{
  position:relative;
  background:var(--void);
  border:1px solid var(--ash);
  min-height:380px;
}
.office-map-ph{
  position:absolute; inset:0;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  gap:18px;
  padding:32px;
  text-align:center;
  background-image:
    repeating-linear-gradient(135deg, rgba(237,231,218,.04) 0 2px, transparent 2px 18px),
    radial-gradient(circle at center, rgba(var(--blood-rgb),.08) 0%, rgba(10,10,11,0) 60%);
}
.office-map-ph .cap{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone-faint);
}
.omp-name{
  font-family:var(--display); font-size:clamp(32px,4vw,56px);
  line-height:1; letter-spacing:-.02em;
  color:var(--bone); text-transform:uppercase;
}

/* ===========================================================
   CAPA 1 — MOTION & DYNAMISM
=========================================================== */

/* --- Parallax-ready hero (JS sets translateY) --- */
.hero-video, .hero-poster, .hero-poster img{
  will-change:transform;
}

/* --- MARQUEE — looping urgency banner --- */
.marquee{
  position:relative;
  overflow:hidden;
  background:var(--smoke);
  border-top:1px solid var(--ash);
  border-bottom:1px solid var(--ash);
  padding:18px 0;
  z-index:10;
}
.marquee-track{
  display:flex;
  align-items:center;
  gap:36px;
  white-space:nowrap;
  width:max-content;
  animation:marquee-scroll 38s linear infinite;
  will-change:transform;
}
.marquee:hover .marquee-track{ animation-play-state:paused; }
.marquee-item{
  display:inline-flex; align-items:center; gap:36px;
  font-family:var(--display);
  font-size:clamp(20px,2.4vw,30px);
  letter-spacing:-.01em;
  text-transform:uppercase;
  color:var(--bone);
  line-height:1;
}
.marquee-item .m-sep{
  display:inline-block;
  width:8px; height:8px;
  background:var(--blood);
  transform:rotate(45deg);
  flex-shrink:0;
}
.marquee-item .m-accent{ color:var(--blood); }
.marquee-item a{
  display:inline-flex; align-items:center; gap:12px;
  border-bottom:1px solid var(--blood);
  padding-bottom:2px;
  transition:border-color .2s, color .2s;
}
.marquee-item a:hover{ color:var(--blood); }
@keyframes marquee-scroll{
  from{ transform:translateX(0); }
  to{   transform:translateX(-50%); }
}

/* --- FOG DRIFT — atmospheric ambient on long pages --- */
.fog-section{
  position:relative;
  overflow:hidden;
}
.fog-section > *{ position:relative; z-index:1; }
.fog-section::before,
.fog-section::after{
  content:"";
  position:absolute;
  top:0; bottom:0;
  width:80%;
  pointer-events:none;
  z-index:0;
}
.fog-section::before{
  left:-20%;
  background:radial-gradient(ellipse 60% 80% at 30% 50%, rgba(var(--blood-rgb),.07) 0%, rgba(10,10,11,0) 65%);
  animation:fog-drift-a 32s ease-in-out infinite;
}
.fog-section::after{
  right:-20%;
  background:radial-gradient(ellipse 60% 80% at 70% 50%, rgba(237,231,218,.04) 0%, rgba(10,10,11,0) 65%);
  animation:fog-drift-b 44s ease-in-out infinite;
  animation-delay:-8s;
}
@keyframes fog-drift-a{
  0%,100%{ transform:translate(-15%,-5%) scale(1); }
  50%{    transform:translate(25%, 8%) scale(1.15); }
}
@keyframes fog-drift-b{
  0%,100%{ transform:translate(10%,5%) scale(1); }
  50%{    transform:translate(-20%,-8%) scale(1.15); }
}

/* --- ENHANCED EVENT CARD HOVER --- */
.event-card{
  will-change:transform;
}
.event-card.is-featured .event-cover-art{
  background:
    radial-gradient(ellipse at center, rgba(var(--blood-rgb),.14) 0%, rgba(10,10,11,0) 60%),
    repeating-linear-gradient(135deg, rgba(237,231,218,.04) 0 2px, transparent 2px 14px),
    var(--void);
  transition:transform .55s var(--ease-out), background .4s;
}
.event-card.is-featured:hover .event-cover-art{
  background:
    radial-gradient(ellipse at center, rgba(var(--blood-rgb),.28) 0%, rgba(10,10,11,0) 65%),
    repeating-linear-gradient(135deg, rgba(237,231,218,.06) 0 2px, transparent 2px 14px),
    var(--void);
  transform:scale(1.06);
}
.event-card.is-featured:hover{ transform:translateY(-6px); }
.event-card.is-featured .art-head{
  transition:transform .4s var(--ease-out), letter-spacing .4s var(--ease-out);
}
.event-card.is-featured:hover .art-head{
  letter-spacing:-.015em;
}
.event-card.is-featured .event-status.is-live{
  position:relative;
}
.event-card.is-featured .event-status.is-live::after{
  content:"";
  position:absolute;
  inset:0;
  background:var(--blood);
  z-index:-1;
  animation:pulse-live 2s ease-in-out infinite;
}
@keyframes pulse-live{
  0%,100%{ opacity:1; transform:scale(1); }
  50%{    opacity:.55; transform:scale(1.06); }
}

/* --- STICKY MOBILE CTA --- */
.sticky-cta-mobile{
  position:fixed;
  left:16px; right:16px; bottom:16px;
  z-index:90;
  transform:translateY(150%);
  transition:transform .4s var(--ease-out);
  pointer-events:none;
}
.sticky-cta-mobile.is-shown{
  transform:translateY(0);
  pointer-events:auto;
}
.sticky-cta-mobile .btn{
  width:100%;
  justify-content:center;
  box-shadow:0 8px 32px rgba(0,0,0,.5);
}
.sticky-cta-mobile .price-tag{
  font-family:var(--mono);
  font-size:10px;
  opacity:.7;
  margin-left:8px;
}
@media (min-width:769px){
  .sticky-cta-mobile{ display:none; }
}

/* --- COUNTDOWN number animation --- */
.countdown .num,
.cd-num{
  font-variant-numeric:tabular-nums;
  transition:color .3s;
}

/* ===========================================================
   PAST EVENT CARD V2 — photo + hover video + lightbox trigger
=========================================================== */
.past-event-card.v2 .pec-cover{
  padding:0;
  background:var(--void);
}
.past-event-card.v2 .pec-media{
  position:relative;
  width:100%;
  aspect-ratio:16/10;
  overflow:hidden;
  background:var(--void);
}
.past-event-card.v2 .pec-media .pec-photo,
.past-event-card.v2 .pec-media .pec-photo img,
.past-event-card.v2 .pec-media .pec-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:opacity .4s var(--ease-out);
}
.past-event-card.v2 .pec-media .pec-photo{
  z-index:1;
  opacity:1;
  filter:grayscale(.15);
  transition:opacity .4s var(--ease-out), transform .6s var(--ease-out), filter .4s;
}
.past-event-card.v2 .pec-media .pec-video{
  z-index:2;
  opacity:0;
  pointer-events:none;
}
.past-event-card.v2.is-playing .pec-media .pec-photo{
  opacity:0;
  filter:grayscale(0);
}
.past-event-card.v2.is-playing .pec-media .pec-video{
  opacity:1;
}
.past-event-card.v2:hover .pec-media .pec-photo{
  transform:scale(1.04);
  filter:grayscale(0);
}
.past-event-card.v2 .pec-media::after{
  content:"";
  position:absolute; inset:0;
  z-index:3;
  background:linear-gradient(180deg, rgba(10,10,11,0) 50%, rgba(10,10,11,.8) 100%);
  pointer-events:none;
}
.past-event-card.v2 .pec-media .pec-overlay-meta{
  position:absolute;
  left:18px; top:18px; right:18px;
  z-index:4;
  display:flex; justify-content:space-between;
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone);
  pointer-events:none;
}
.past-event-card.v2 .pec-media .pec-overlay-meta .ev-ix{ color:var(--blood); }
.past-event-card.v2 .pec-play-btn{
  position:absolute;
  right:18px; bottom:18px;
  z-index:5;
  width:56px; height:56px;
  border-radius:50%;
  background:var(--blood);
  color:var(--bone);
  display:flex; align-items:center; justify-content:center;
  font-size:18px;
  border:0;
  cursor:pointer;
  transition:transform .25s var(--ease-out), background .2s;
  box-shadow:0 8px 24px rgba(0,0,0,.4);
}
.past-event-card.v2 .pec-play-btn:hover{
  transform:scale(1.1);
}
.past-event-card.v2 .pec-play-btn::after{
  content:"";
  width:0; height:0;
  border-top:9px solid transparent;
  border-bottom:9px solid transparent;
  border-left:14px solid var(--bone);
  margin-left:3px;
}
.past-event-card.v2 .pec-play-btn-text{
  position:absolute;
  right:84px; bottom:30px;
  z-index:5;
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone);
  opacity:0; transform:translateX(8px);
  transition:opacity .2s, transform .25s var(--ease-out);
  pointer-events:none;
  white-space:nowrap;
}
.past-event-card.v2:hover .pec-play-btn-text{ opacity:1; transform:translateX(0); }

/* ===========================================================
   LIGHTBOX — fullscreen aftermovie player
=========================================================== */
.lightbox{
  position:fixed;
  inset:0;
  z-index:9000;
  background:rgba(10,10,11,.96);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  display:flex; align-items:center; justify-content:center;
  padding:clamp(20px,4vw,60px);
  opacity:0; visibility:hidden;
  transition:opacity .3s, visibility .3s;
}
.lightbox.is-open{ opacity:1; visibility:visible; }
.lightbox-close{
  position:absolute;
  top:24px; right:24px;
  width:48px; height:48px;
  background:transparent;
  color:var(--bone);
  border:1px solid var(--ash);
  font-size:18px;
  cursor:pointer;
  transition:border-color .2s, color .2s, transform .2s;
  z-index:9001;
}
.lightbox-close:hover{ border-color:var(--blood); color:var(--blood); transform:rotate(90deg); }
.lightbox-frame{
  width:100%;
  max-width:1280px;
  display:flex; flex-direction:column;
  gap:18px;
}
.lightbox-frame video{
  width:100%;
  max-height:80vh;
  background:#000;
  border:1px solid var(--ash);
}
.lightbox-meta{
  display:flex; justify-content:space-between;
  flex-wrap:wrap; gap:18px;
  font-family:var(--mono); font-size:11px;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--bone-dim);
}
.lightbox-meta .lb-title{
  font-family:var(--display); font-size:clamp(18px,2vw,24px);
  letter-spacing:-.01em; color:var(--bone);
  line-height:1;
}

/* ===========================================================
   EVENT-CARD FLYER (homepage featured event uses real flyer)
=========================================================== */
.event-card.has-flyer .event-cover{
  min-height:0;
  aspect-ratio:3/4;
  background:var(--void);
}
.event-card.has-flyer .event-flyer{
  position:absolute;
  inset:0;
  width:100%; height:100%;
  object-fit:cover;
  transition:transform .55s var(--ease-out), filter .4s;
  z-index:1;
}
.event-card.has-flyer:hover .event-flyer{
  transform:scale(1.04);
}
.event-card.has-flyer .event-cover::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,10,11,0) 60%, rgba(10,10,11,.7) 100%);
  z-index:2;
  pointer-events:none;
}
.event-card.has-flyer .event-status{ z-index:3; }
.event-card.has-flyer.is-featured .event-card-link{
  grid-template-columns:1fr;
}
@media (min-width:768px){
  .event-card.has-flyer.is-featured .event-card-link{ grid-template-columns:.8fr 1fr; }
}

/* ===========================================================
   EVENT HERO — flyer as background layer (KL detail page)
=========================================================== */
.event-hero.has-flyer-bg{
  padding:200px 0 100px;
  position:relative;
  overflow:hidden;
}
.event-hero.has-flyer-bg .event-hero-bg{
  background:none;
}
.event-hero.has-flyer-bg .event-hero-flyer{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  z-index:0;
  filter:saturate(.85);
}
.event-hero.has-flyer-bg.has-video-bg .event-hero-video{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  z-index:1;
  filter:saturate(.95) brightness(.75) contrast(1.05);
  will-change:transform;
}
.event-hero.has-flyer-bg::before{
  content:"";
  position:absolute; inset:0;
  z-index:2;
  background:
    linear-gradient(180deg, rgba(10,10,11,.62) 0%, rgba(10,10,11,.48) 35%, rgba(10,10,11,.95) 100%),
    radial-gradient(ellipse at 80% 20%, rgba(var(--blood-rgb),.2) 0%, rgba(10,10,11,0) 50%);
  pointer-events:none;
}
.event-hero.has-flyer-bg .flames-rising{
  z-index:3;
  opacity:.6;
}
.event-hero.has-flyer-bg .container{
  position:relative;
  z-index:4;
}

/* Artist photo card inside lineup */
.lineup-card .lc-photo{
  position:relative;
  margin:0 -1px -1px;
  aspect-ratio:16/9;
  overflow:hidden;
  background:var(--void);
  border-bottom:1px solid var(--ash);
}
.lineup-card .lc-photo img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  filter:grayscale(.2);
  transition:filter .3s, transform .6s var(--ease-out);
}
.lineup-card:hover .lc-photo img{ filter:grayscale(0); transform:scale(1.03); }
.lineup-card.has-photo{ padding:0; }
.lineup-card.has-photo .lc-body{
  padding:clamp(28px,3.5vw,44px);
  display:flex; flex-direction:column; gap:18px;
}

/* ===========================================================
   "ESTO TE ESPERA" — placeholder reel section on event detail
=========================================================== */
.preview-reel{
  background:var(--void);
  border-top:1px solid var(--ash);
  border-bottom:1px solid var(--ash);
}
.preview-reel .reel-card{
  position:relative;
  display:block;
  background:var(--smoke);
  border:1px solid var(--ash);
  overflow:hidden;
  text-decoration:none; color:inherit;
  transition:border-color .25s, transform .25s var(--ease-out);
  aspect-ratio:16/9;
  max-height:80vh;
}
.preview-reel .reel-card:hover{ border-color:var(--blood); transform:translateY(-3px); }
.preview-reel .reel-video{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  filter:saturate(.9);
  transition:transform .6s var(--ease-out), filter .3s;
}
.preview-reel .reel-card:hover .reel-video{
  transform:scale(1.02);
  filter:saturate(1);
}
.preview-reel .reel-card::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,10,11,0) 45%, rgba(10,10,11,.85) 100%);
  pointer-events:none;
}
.preview-reel .reel-info{
  position:absolute;
  left:clamp(20px,4vw,48px);
  bottom:clamp(20px,4vw,48px);
  right:clamp(20px,4vw,48px);
  z-index:2;
  display:flex; flex-direction:column; gap:8px;
  pointer-events:none;
}
.preview-reel .reel-eyebrow{
  font-family:var(--mono); font-size:10px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--blood);
  display:inline-flex; align-items:center; gap:10px;
}
.preview-reel .reel-eyebrow .dash{ width:24px; height:1px; background:var(--blood); }
.preview-reel .reel-title{
  font-family:var(--display);
  font-size:clamp(28px,3.6vw,52px);
  line-height:.95; letter-spacing:-.02em;
  text-transform:uppercase;
  color:var(--bone);
  margin:0;
}
.preview-reel .reel-meta{
  font-family:var(--mono); font-size:11px;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--bone-dim);
}
.preview-reel .reel-play-btn{
  position:absolute;
  top:clamp(20px,4vw,48px); right:clamp(20px,4vw,48px);
  z-index:3;
  width:72px; height:72px;
  border-radius:50%;
  background:var(--blood);
  color:var(--bone);
  display:flex; align-items:center; justify-content:center;
  transition:transform .3s var(--ease-out);
  box-shadow:0 10px 32px rgba(0,0,0,.55);
}
.preview-reel .reel-play-btn::after{
  content:"";
  width:0; height:0;
  border-top:11px solid transparent;
  border-bottom:11px solid transparent;
  border-left:18px solid var(--bone);
  margin-left:4px;
}
.preview-reel .reel-card:hover .reel-play-btn{ transform:scale(1.1); }
.preview-reel .reel-disclaimer{
  margin-top:18px;
  font-family:var(--mono); font-size:11px;
  letter-spacing:.12em;
  color:var(--bone-faint);
}
.preview-reel .reel-disclaimer .dot{
  display:inline-block; width:6px; height:6px;
  background:var(--blood);
  margin-right:8px; vertical-align:middle;
  transform:rotate(45deg);
}
