@import url('https://fonts.googleapis.com/css2?family=Anton&family=Space+Mono:ital,wght@0,400;0,700;1,400&display=swap');

:root{
  --ink:#000000;
  --panel:#0d0d0d;
  --line:#262626;
  --paper:#ffffff;
  --grey:#8a8a8a;
  --grey-2:#b8b8b8;
  --accent:#2A5CDB;
  --max:1100px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--ink);
  color:var(--paper);
  font-family:'Space Mono', monospace;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--accent);color:#fff;}
a{color:inherit;}
img{max-width:100%;display:block;}
h1, h2, h3{text-transform:uppercase;}

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

/* NAV */
.nav{
  position:sticky;top:0;z-index:50;
  background:rgba(0,0,0,0.9);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.nav .wrap{
  display:flex;align-items:center;justify-content:space-between;
  padding-top:16px;padding-bottom:16px;
  gap:20px;
}
.logo-mark{height:22px;display:block;}
.navlinks{display:flex;gap:26px;list-style:none;margin:0;padding:0;align-items:center;}
.navlinks a{
  text-decoration:none;
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--grey-2);
  border-bottom:1px solid transparent;
  padding-bottom:3px;
  transition:color .2s, border-color .2s;
}
.navlinks a:hover, .navlinks a.active{color:#fff;border-color:var(--accent);}
.nav-cta{
  background:var(--accent);
  color:#fff;
  font-weight:700;
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
  padding:10px 18px;
  text-decoration:none;
  white-space:nowrap;
}
.navtoggle{display:none;background:none;border:1px solid var(--line);color:#fff;padding:8px 10px;font-family:inherit;font-size:11px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;}

/* HERO (home) */
.hero{padding:56px 0 40px;}
.hero .wrap{display:grid;grid-template-columns:1.05fr 0.95fr;gap:48px;align-items:center;}
.hero-copy .eyebrow{color:var(--accent);font-size:12px;letter-spacing:.24em;text-transform:uppercase;margin-bottom:16px;font-weight:700;}
.hero-copy h1{font-family:'Anton',sans-serif;font-size:clamp(40px,6vw,64px);line-height:0.95;letter-spacing:.01em;margin:0 0 20px;}
.hero-copy p{color:var(--grey-2);font-size:14px;max-width:46ch;margin:0 0 28px;}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;}

.poster-frame{position:relative;}
.poster-frame img{width:100%;border:1px solid var(--line);}
.poster-tag{
  position:absolute;top:16px;left:16px;
  background:var(--accent);color:#fff;
  font-family:'Anton',sans-serif;
  font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  padding:6px 12px;
}

/* MARQUEE */
.stripe{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;overflow:hidden;white-space:nowrap;}
.stripe-inner{display:inline-block;font-family:'Anton',sans-serif;font-size:15px;letter-spacing:.06em;color:#333;animation:scroll 22s linear infinite;}
.stripe-inner span{color:#fff;margin:0 22px;}
.stripe-inner span.accent{color:var(--accent);}
@keyframes scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* BUTTONS */
.btn{
  display:inline-block;font-family:'Space Mono',monospace;font-size:12px;
  letter-spacing:.12em;text-transform:uppercase;text-decoration:none;
  padding:15px 24px;border:1px solid #fff;color:#fff;font-weight:700;
  transition:background .2s, color .2s, transform .2s;
}
.btn:hover{transform:translateY(-2px);}
.btn-fill{background:var(--accent);border-color:var(--accent);color:#fff;}
.btn-fill:hover{background:#fff;color:var(--ink);border-color:#fff;}
.btn-line:hover{background:#fff;color:var(--ink);}

/* SECTIONS */
section{padding:60px 0;border-top:1px solid var(--line);}
.section-label{color:var(--accent);font-size:12px;letter-spacing:.24em;text-transform:uppercase;margin:0 0 14px;font-weight:700;}
.section-title{font-family:'Anton',sans-serif;font-size:clamp(26px,4vw,42px);margin:0 0 24px;letter-spacing:.01em;}

.two-col{display:grid;grid-template-columns:1.1fr 0.9fr;gap:40px;align-items:start;}
.stat-list{list-style:none;margin:0;padding:0;}
.stat-list li{display:flex;justify-content:space-between;border-bottom:1px dashed var(--line);padding:14px 0;font-size:13px;}
.stat-list li span:first-child{color:var(--grey);text-transform:uppercase;letter-spacing:.08em;font-size:11px;}

/* EVENT / CASE CARDS */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.card{background:var(--panel);border:1px solid var(--line);padding:22px;}
.card .tag{display:inline-block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--accent);color:var(--accent);padding:3px 8px;margin-bottom:14px;}
.card .date{font-size:11px;color:var(--grey);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;}
.card h3{font-family:'Anton',sans-serif;font-size:22px;margin:0 0 10px;}
.card p{font-size:12px;color:var(--grey-2);margin:0 0 16px;}
.card a.case-link{color:var(--accent);font-size:11px;text-transform:uppercase;letter-spacing:.1em;text-decoration:none;border-bottom:1px solid var(--accent);}

.event-row{
  background:var(--panel);border:1px solid var(--line);padding:24px;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;
  margin-bottom:16px;
}

/* FATSOMA WIDGET SLOT */
.ticket-widget-slot{
  background:var(--panel);border:1px dashed var(--line);
  padding:40px;text-align:center;color:var(--grey);font-size:12px;
  letter-spacing:.05em;
}

#tickets, #lineup{scroll-margin-top:100px;}

/* GALLERY */
.event-pills{display:flex;gap:10px;margin-top:24px;flex-wrap:wrap;}
.event-pill{
  border:1px solid var(--line);
  color:var(--grey-2);
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  padding:9px 16px;text-decoration:none;
}
.event-pill:hover{border-color:var(--accent);color:#fff;}

.media-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));gap:12px;}

.gallery-divider{
  border-top:1px solid var(--line);
  margin:36px 0;
}

.event-kicker{
  color:var(--accent);
  font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  font-weight:700;margin:0 0 8px;
}
.event-title{
  font-family:'Anton',sans-serif;
  font-size:clamp(30px,4.5vw,46px);
  letter-spacing:.01em;
  margin:0 0 24px;
  line-height:1.05;
}
.crowd-heading{
  font-family:'Anton',sans-serif;
  font-size:clamp(18px,2.2vw,22px);
  letter-spacing:.03em;
  margin:0 0 20px;
  color:var(--grey-2);
}
.media-item{position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--panel);border:1px solid var(--line);cursor:pointer;}
.media-item img, .media-item video{width:100%;height:100%;object-fit:cover;display:block;}
.media-item[data-type="video"]::after{
  content:"\25B6";position:absolute;top:10px;right:10px;width:28px;height:28px;
  background:rgba(0,0,0,.6);color:#fff;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:11px;
}
.media-item:hover{border-color:var(--accent);}

.lightbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:100;align-items:center;justify-content:center;padding:24px;}
.lightbox.open{display:flex;}
.lightbox img, .lightbox video{max-width:90vw;max-height:85vh;border:1px solid var(--accent);}
.lightbox-close{position:absolute;top:24px;right:24px;background:none;border:1px solid #fff;color:#fff;width:40px;height:40px;font-size:18px;cursor:pointer;}

.insta-row{display:grid;grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));gap:20px;margin-top:20px;}

/* ABOUT DOSSIER */
.dossier{background:#111;border:1px solid var(--line);padding:36px;}
.dossier p{font-size:14px;color:var(--grey-2);margin:0 0 16px;}
.dossier h3{font-family:'Anton',sans-serif;font-size:20px;margin:26px 0 10px;color:#fff;}

/* CONTACT */
.contact-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:36px;}
.contact-card{border:1px solid var(--line);padding:20px;background:var(--panel);}
.contact-card .label{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;}
.contact-card .value{font-size:15px;word-break:break-word;}

.tipline{background:var(--panel);border:1px solid var(--line);padding:32px;}
.field{margin-bottom:20px;}
.field label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--grey);margin-bottom:8px;}
.field input, .field textarea{
  width:100%;background:#000;border:1px solid var(--line);color:#fff;
  font-family:'Space Mono',monospace;font-size:13px;padding:12px 14px;
}
.field input:focus, .field textarea:focus{outline:2px solid var(--accent);outline-offset:1px;}
.field textarea{resize:vertical;min-height:120px;}

/* PAGE HERO (non-home) */
.page-hero{padding:56px 0 20px;}
.page-kicker{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);margin:0 0 8px;font-weight:700;}
.page-title{font-family:'Anton',sans-serif;font-size:clamp(40px,8vw,64px);margin:0;letter-spacing:.01em;}
.page-lede{max-width:620px;color:var(--grey-2);font-size:14px;margin-top:16px;}

/* FOOTER */
footer{border-top:1px solid var(--line);padding:44px 0 34px;}
.footer-grid{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:24px;}
.footer-logo{height:40px;margin-bottom:8px;}
.footer-note{font-size:11px;color:var(--grey);letter-spacing:.04em;}
.footer-links{display:flex;gap:18px;list-style:none;padding:0;margin:0;}
.footer-links a{font-size:11px;text-transform:uppercase;letter-spacing:.1em;text-decoration:none;color:#fff;}
.footer-links a:hover{color:var(--accent);}

.footer-social{
  border-top:1px solid var(--line);
  margin-top:28px;
  padding-top:20px;
  display:flex;
  gap:20px;
}
.footer-social a{
  font-size:11px;text-transform:uppercase;letter-spacing:.1em;
  text-decoration:none;color:var(--grey-2);
}
.footer-social a:hover{color:var(--accent);}

/* RESPONSIVE */
@media (max-width:820px){
  .hero .wrap{grid-template-columns:1fr;}
  .grid3{grid-template-columns:1fr;}
  .two-col{grid-template-columns:1fr;}
  .contact-cards{grid-template-columns:1fr;}
  .navlinks{
    position:absolute;top:100%;left:0;right:0;background:#000;
    flex-direction:column;padding:16px 24px 24px;display:none;border-bottom:1px solid var(--line);
    align-items:flex-start;
  }
  .navlinks.open{display:flex;}
  .navtoggle{display:block;}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important;}
}

/*
  FATSOMA WIDGET THEME OVERRIDE (best-effort)
  This only works if Fatsoma injects plain HTML/CSS into the page rather
  than rendering inside an iframe. If the widget still looks unstyled
  after this, it's very likely an iframe, and Fatsoma would need to
  offer a theme option on their end for us to change it.
*/
[data-fatsoma-src], [data-fatsoma-src] * {
  background-color: #000 !important;
  color: #fff !important;
}
[data-fatsoma-src] button,
[data-fatsoma-src] .btn,
[data-fatsoma-src] [class*="button"] {
  background-color: var(--accent) !important;
  color: #fff !important;
  border-color: var(--accent) !important;
}
