/* ── IPN V1.1 — Homepage overrides & additions ───────────────────────── */
/* Loaded AFTER site.css. Only contains new component styles + small overrides. */

/* HERO — swap radar/coords for portrait background, keep brand wordmark on top */
.hero-portrait {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  overflow: hidden;
}
.hero-portrait img {
  position: absolute; right: 0; top: 0;
  width: 60%; height: 100%; object-fit: cover; object-position: center 20%;
  opacity: .55;
  mask-image: linear-gradient(to left, #000 30%, transparent 95%);
  -webkit-mask-image: linear-gradient(to left, #000 30%, transparent 95%);
}
.hero-portrait::after{
  content:""; position:absolute; inset:0;
  background: radial-gradient(ellipse at 75% 50%, transparent 0%, rgba(6,6,10,.55) 75%);
  pointer-events:none;
}
@media(max-width:1100px){
  .hero-portrait img{ width:80%; opacity:.4; object-position:center 15%; }
}
@media(max-width:768px){
  .hero-portrait img{ width:100%; opacity:.32; object-position:center 12%; }
}

/* Tour-wide meta box replaces city-specific show-box */
.tour-meta-box{
  display:grid; grid-template-columns: repeat(3, 1fr);
  gap:14px; padding:18px 22px; margin:18px 0 22px;
  border:1px solid var(--hbd,#1a1a1f); background: rgba(10,10,14,.5);
  max-width: 520px; position:relative;
}
.tour-meta-box .tl,.tour-meta-box .tr,.tour-meta-box .bl,.tour-meta-box .br{
  position:absolute; width:10px; height:10px; border:1px solid var(--lime);
}
.tour-meta-box .tl{top:-1px;left:-1px;border-right:none;border-bottom:none}
.tour-meta-box .tr{top:-1px;right:-1px;border-left:none;border-bottom:none}
.tour-meta-box .bl{bottom:-1px;left:-1px;border-right:none;border-top:none}
.tour-meta-box .br{bottom:-1px;right:-1px;border-left:none;border-top:none}
.tmb-item{ display:flex; flex-direction:column; gap:4px; }
.tmb-label{
  font-family:var(--M,monospace); font-size:9px; letter-spacing:.18em;
  color:rgba(200,245,66,.55); text-transform:uppercase;
}
.tmb-val{
  font-family:var(--G,'Bebas Neue',sans-serif); font-size:22px; line-height:1;
  color:#fff; letter-spacing:.04em;
}
@media(max-width:768px){
  .tour-meta-box{ grid-template-columns: repeat(3, 1fr); padding:14px; max-width:100%; }
  .tmb-val{ font-size:18px; }
}

/* ── PROOF OF SIGNAL — live show photo grid ──────────────────────────── */
.proof{
  padding: 90px 6vw 80px; position:relative;
  background:
    linear-gradient(180deg, transparent, rgba(200,245,66,.02) 60%, transparent),
    #06060a;
}
.proof-hdr{ margin-bottom: 32px; max-width: 900px; }
.proof-title{
  font-family:var(--G,'Bebas Neue'); font-size: clamp(56px, 9vw, 140px);
  line-height:.85; color:#c8f542; letter-spacing:.01em;
  text-shadow: 0 0 28px rgba(200,245,66,.22);
}
.proof-sub{
  font-family:var(--M,monospace); color:rgba(255,255,255,.55);
  font-size:13px; letter-spacing:.16em; margin-top:14px;
}
/* Pre-tour record bar — social proof for Austin + Montreal sold-out shows */
.pretour-bar{
  display:flex; flex-wrap:wrap; gap: 14px 22px;
  margin-top: 24px; padding: 14px 18px;
  border:1px solid rgba(200,245,66,.22);
  background: rgba(200,245,66,.04);
  font-family:var(--M,monospace); font-size:10px; letter-spacing:.18em;
  color:rgba(255,255,255,.78); text-transform:uppercase;
}
.pretour-bar .ptb-key{
  color: #c8f542; font-weight: 600;
}
.pretour-bar em{
  font-style:normal; color: rgba(255,255,255,.95);
}
@media(max-width:768px){
  .pretour-bar{
    flex-direction:column; gap:8px;
    font-size:9.5px; letter-spacing:.14em;
  }
}
.proof-grid{
  display:grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: 180px;
  gap: 10px;
}
.proof-cell{
  position:relative; overflow:hidden;
  border:1px solid rgba(255,255,255,.07);
  background:#0a0a10;
}
.proof-cell img{
  width:100%; height:100%; object-fit:cover;
  filter: contrast(1.05) saturate(.95);
  transition: transform .6s ease, filter .4s ease;
}
.proof-cell:hover img{ transform:scale(1.03); filter:contrast(1.1) saturate(1); }
.proof-cell::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 60%, rgba(6,6,10,.55) 100%);
  pointer-events:none;
}
.proof-cell .pc-cap{
  position:absolute; left:12px; bottom:10px; z-index:2;
  font-family:var(--M,monospace); font-size:9px; letter-spacing:.16em;
  color:rgba(255,255,255,.85); text-transform:uppercase;
}
/* layout: hero wide + 4 small + 1 tall */
.proof-cell.c1 { grid-column: span 7; grid-row: span 2; }
.proof-cell.c2 { grid-column: span 5; grid-row: span 1; }
.proof-cell.c3 { grid-column: span 5; grid-row: span 1; }
.proof-cell.c4 { grid-column: span 4; grid-row: span 1; }
.proof-cell.c5 { grid-column: span 4; grid-row: span 1; }
.proof-cell.c6 { grid-column: span 4; grid-row: span 1; }

@media(max-width:1100px){
  .proof-grid{ grid-auto-rows: 150px; gap: 8px; }
}
@media(max-width:768px){
  .proof{ padding: 60px 18px; }
  .proof-grid{
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 200px;
  }
  .proof-cell.c1, .proof-cell.c2, .proof-cell.c3,
  .proof-cell.c4, .proof-cell.c5, .proof-cell.c6 {
    grid-column: span 1; grid-row: span 1;
  }
  .proof-cell.c1 { grid-column: span 2; grid-row: span 1; }
}

/* ── AREA52 // RECENT TRANSMISSIONS ──────────────────────────────────── */
.transmissions{
  padding: 90px 6vw 90px; position:relative;
  background:
    linear-gradient(180deg, transparent, rgba(255,255,255,.018) 50%, transparent),
    #06060a;
}
.tx-hdr{ margin-bottom: 36px; max-width: 1000px; }
.tx-title{
  font-family:var(--G,'Bebas Neue'); font-size: clamp(48px, 8.5vw, 130px);
  line-height:.88; color:#c8f542; letter-spacing:.01em;
  text-shadow: 0 0 28px rgba(200,245,66,.22);
}
.tx-sub{
  font-family:var(--I,Inter,sans-serif); color:rgba(255,255,255,.7);
  font-size:15px; line-height:1.55; margin-top:14px;
}
.tx-partner{
  color:#c8f542; text-decoration:none; font-weight:600;
  border-bottom: 1px solid rgba(200,245,66,.4);
}
.tx-partner:hover{ border-bottom-color: #c8f542; }

.tx-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.tx-card{
  position:relative; overflow:hidden; background:#0a0a10;
  border:1px solid rgba(255,255,255,.08);
  text-decoration:none; color:#fff;
  display:flex; flex-direction:column;
  transition: border-color .25s ease, transform .25s ease;
}
.tx-card:hover{ border-color: rgba(200,245,66,.45); transform: translateY(-2px); }
.tx-card-feature{ grid-column: span 3; grid-row: span 1; flex-direction: row; }
.tx-card-feature .tx-thumb{ flex: 1.4; }
.tx-card-feature .tx-body{ flex: 1; padding: 28px; }
.tx-card-feature .tx-card-title{ font-size: clamp(28px, 3.4vw, 44px); }

.tx-thumb{
  position:relative; aspect-ratio: 16/9; overflow:hidden;
  background:#000;
}
.tx-thumb img{
  width:100%; height:100%; object-fit:cover;
  filter: contrast(1.05) saturate(.92) brightness(.85);
  transition: transform .6s ease, filter .4s ease;
}
.tx-card:hover .tx-thumb img{ transform:scale(1.04); filter:contrast(1.08) saturate(1) brightness(1); }
.tx-thumb::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(6,6,10,0) 50%, rgba(6,6,10,.55) 100%);
}
.tx-play{
  position:absolute; top:50%; left:50%;
  transform: translate(-50%, -50%);
  width: 62px; height: 62px;
  border-radius: 50%; border: 2px solid #c8f542;
  background: rgba(6,6,10,.55); backdrop-filter: blur(8px);
  display:flex; align-items:center; justify-content:center;
  color:#c8f542; font-size: 22px;
  transition: background .25s ease, transform .25s ease;
}
.tx-card:hover .tx-play{ background:#c8f542; color:#06060a; transform: translate(-50%,-50%) scale(1.08); }
.tx-fresh{
  position:absolute; top:12px; left:12px; z-index:2;
  font-family:var(--M,monospace); font-size:10px; letter-spacing:.18em;
  color:#06060a; background:#c8f542; padding:5px 9px;
  text-transform:uppercase; font-weight:600;
}

.tx-body{
  padding: 16px 18px 20px;
  display:flex; flex-direction:column; gap:8px;
}
.tx-meta{
  font-family:var(--M,monospace); font-size:10px; letter-spacing:.16em;
  color:rgba(200,245,66,.65); text-transform:uppercase;
}
.tx-card-title{
  font-family:var(--G,'Bebas Neue'); font-size:22px; line-height:1.05;
  color:#fff; letter-spacing:.02em;
}
.tx-card-sub{
  font-family:var(--I,Inter,sans-serif); font-size:13.5px; line-height:1.55;
  color:rgba(255,255,255,.7); margin-top:4px;
}

.tx-foot{
  margin-top: 26px; text-align:center;
}
.tx-cta{
  display:inline-block;
  padding: 14px 22px;
  font-family:var(--M,monospace); font-size:12px; letter-spacing:.18em;
  color:#fff; text-decoration:none;
  border:1px solid rgba(255,255,255,.25);
  transition: border-color .2s ease, color .2s ease;
}
.tx-cta:hover{ border-color:#c8f542; color:#c8f542; }

@media(max-width:1100px){
  .tx-grid{ grid-template-columns: repeat(2, 1fr); }
  .tx-card-feature{ grid-column: span 2; flex-direction: column; }
  .tx-card-feature .tx-body{ padding: 18px; }
}
@media(max-width:768px){
  .transmissions{ padding: 60px 18px; }
  .tx-grid{ grid-template-columns: 1fr; gap: 10px; }
  .tx-card-feature{ grid-column: span 1; }
  .tx-card-title{ font-size:20px; }
  .tx-play{ width:54px; height:54px; font-size:18px; }
}

/* ── PAST GUESTS strip ───────────────────────────────────────────────── */
.guests-strip{
  padding: 80px 6vw 80px; position:relative;
}
.gs-hdr{ margin-bottom: 32px; max-width: 900px; }
.gs-title{
  font-family:var(--G,'Bebas Neue'); font-size: clamp(48px, 7vw, 110px);
  line-height:.9; color:#c8f542; letter-spacing:.01em;
}
.gs-sub{
  font-family:var(--M,monospace); color:rgba(255,255,255,.55);
  font-size:13px; letter-spacing:.16em; margin-top:12px;
}
.gs-grid{
  display:grid; grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
.gs-card{
  position:relative; overflow:hidden; background:#0a0a10;
  border:1px solid rgba(255,255,255,.08);
  aspect-ratio: 1 / 1.15;
}
.gs-card img{
  width:100%; height:100%; object-fit:cover;
  filter: contrast(1.04) saturate(.95) brightness(.92);
  transition: transform .5s ease, filter .4s ease;
}
.gs-card:hover img{ transform:scale(1.04); filter:contrast(1.1) saturate(1) brightness(1); }
.gs-card::before{
  content:""; position:absolute; inset:0; z-index:1;
  background: linear-gradient(180deg, transparent 40%, rgba(6,6,10,.92) 100%);
  pointer-events:none;
}
.gs-meta{
  position:absolute; left:14px; right:14px; bottom:14px; z-index:2;
}
.gs-tag{
  display:inline-block; font-family:var(--M,monospace); font-size:9px;
  letter-spacing:.18em; color:#c8f542; padding:3px 8px;
  border:1px solid rgba(200,245,66,.4); margin-bottom:6px; text-transform:uppercase;
}
.gs-name{
  font-family:var(--G,'Bebas Neue'); font-size:24px; line-height:1;
  color:#fff; letter-spacing:.02em;
}
.gs-role{
  font-family:var(--M,monospace); font-size:10px; letter-spacing:.14em;
  color:rgba(255,255,255,.65); margin-top:4px; text-transform:uppercase;
}
@media(max-width:1100px){
  .gs-grid{ grid-template-columns: repeat(4, 1fr); gap: 10px; }
  .gs-name{ font-size:20px; }
}
@media(max-width:768px){
  .guests-strip{ padding: 60px 18px; }
  .gs-grid{ grid-template-columns: repeat(2, 1fr); gap: 10px; }
}

/* ── CITY GRID — 14 cities ───────────────────────────────────────────── */
.cities{
  padding: 90px 6vw 100px; position:relative;
  background:
    linear-gradient(180deg, transparent, rgba(200,245,66,.025) 50%, transparent),
    #06060a;
}
.cities-hdr{ margin-bottom: 36px; max-width: 900px; }
.cities-title{
  font-family:var(--G,'Bebas Neue'); font-size: clamp(56px, 10vw, 160px);
  line-height:.85; color:#c8f542; letter-spacing:.01em;
  text-shadow: 0 0 32px rgba(200,245,66,.25);
}
.cities-sub{
  font-family:var(--M,monospace); color:rgba(255,255,255,.6);
  font-size:13px; letter-spacing:.16em; margin-top:14px;
}
.city-grid{
  display:grid; grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.city-card{
  position:relative; overflow:hidden; background:#0a0a10;
  border:1px solid rgba(255,255,255,.08);
  text-decoration:none; color:#fff;
  display:flex; flex-direction:column;
  transition: border-color .25s ease, transform .25s ease;
}
.city-card:hover{ border-color: rgba(200,245,66,.45); transform: translateY(-2px); }
.city-thumb{
  position:relative; aspect-ratio: 16/10; overflow:hidden;
}
.city-thumb img{
  width:100%; height:100%; object-fit:cover;
  filter: contrast(1.05) saturate(.85) brightness(.78);
  transition: transform .6s ease, filter .4s ease;
}
.city-card:hover .city-thumb img{ transform:scale(1.06); filter: contrast(1.08) saturate(1) brightness(.92); }
.city-thumb::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(6,6,10,.0) 30%, rgba(6,6,10,.85) 100%);
}
.city-date{
  position:absolute; top:12px; left:12px; z-index:2;
  font-family:var(--M,monospace); font-size:10px; letter-spacing:.16em;
  color:#c8f542; padding:4px 8px;
  border:1px solid rgba(200,245,66,.4);
  background: rgba(6,6,10,.6); backdrop-filter: blur(4px);
}
.city-status{
  position:absolute; top:12px; right:12px; z-index:2;
  font-family:var(--M,monospace); font-size:9px; letter-spacing:.18em;
  color:#fff; padding:4px 8px;
  background: rgba(200,245,66,.85); color:#06060a;
  text-transform:uppercase;
}
.city-status.locked{ background: rgba(255,255,255,.2); color:#fff; }
.city-status.few{ background: #ff9b3d; color:#06060a; }
.city-body{
  padding: 16px 18px 20px;
  display:flex; flex-direction:column; gap:8px;
  position:relative; z-index:2;
}
.city-name{
  font-family:var(--G,'Bebas Neue'); font-size:34px; line-height:.95;
  color:#fff; letter-spacing:.02em;
}
.city-state{
  font-family:var(--M,monospace); font-size:11px; letter-spacing:.18em;
  color:rgba(255,255,255,.55); margin-top:-4px;
}
.city-venue{
  font-family:var(--M,monospace); font-size:11px; letter-spacing:.1em;
  color:rgba(255,255,255,.75); margin-top:2px;
}
.city-cta{
  margin-top:10px; align-self:flex-start;
  font-family:var(--M,monospace); font-size:11px; letter-spacing:.18em;
  color:#c8f542; padding:9px 14px;
  border:1px solid rgba(200,245,66,.55);
  background: transparent;
  text-transform:uppercase;
  transition: background .2s ease, color .2s ease;
}
.city-card:hover .city-cta{ background: #c8f542; color:#06060a; }

@media(max-width:1100px){
  .city-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media(max-width:768px){
  .cities{ padding: 60px 18px; }
  .city-grid{ grid-template-columns: 1fr; gap: 10px; }
  .city-name{ font-size:30px; }
  .city-cta{ width:100%; text-align:center; padding: 12px; }
}

/* ── CHRIS DOSSIER (solo) ────────────────────────────────────────────── */
.chris-dossier{
  padding: 90px 6vw 100px; position:relative;
}
.cd-wrap{
  display:grid; grid-template-columns: 1fr 1.2fr;
  gap: 50px; align-items:center; max-width: 1280px; margin: 0 auto;
}
.cd-photo{
  position:relative; aspect-ratio: 1/1;
  background:#0a0a10; overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
}
.cd-photo img{ width:100%; height:100%; object-fit:cover; }
.cd-photo .tl,.cd-photo .tr,.cd-photo .bl,.cd-photo .br{
  position:absolute; width:14px; height:14px; border:1px solid var(--lime);
}
.cd-photo .tl{top:-1px;left:-1px;border-right:none;border-bottom:none}
.cd-photo .tr{top:-1px;right:-1px;border-left:none;border-bottom:none}
.cd-photo .bl{bottom:-1px;left:-1px;border-right:none;border-top:none}
.cd-photo .br{bottom:-1px;right:-1px;border-left:none;border-top:none}
.cd-meta-tag{
  display:inline-block;
  font-family:var(--M,monospace); font-size:10px; letter-spacing:.18em;
  color:#c8f542; padding:4px 10px;
  border:1px solid rgba(200,245,66,.5);
  margin-bottom:18px;
}
.cd-name{
  font-family:var(--G,'Bebas Neue'); font-size: clamp(56px, 8vw, 130px);
  line-height:.85; color:#c8f542; letter-spacing:.01em;
  text-shadow: 0 0 22px rgba(200,245,66,.2);
}
.cd-role{
  font-family:var(--M,monospace); font-size:13px; letter-spacing:.18em;
  color:rgba(255,255,255,.7); margin-top:14px; text-transform:uppercase;
}
.cd-bio{
  font-family:var(--I,Inter,sans-serif); font-size:16px; line-height:1.6;
  color:rgba(255,255,255,.78); margin-top:20px; max-width: 560px;
}
.cd-socials{
  display:flex; gap:10px; margin-top:28px; flex-wrap:wrap;
}
.cd-socials a{
  font-family:var(--M,monospace); font-size:11px; letter-spacing:.16em;
  color:#fff; padding:10px 14px;
  border:1px solid rgba(255,255,255,.18); text-decoration:none;
  transition: border-color .2s ease, color .2s ease;
}
.cd-socials a:hover{ border-color:#c8f542; color:#c8f542; }
@media(max-width:1100px){
  .cd-wrap{ grid-template-columns: 1fr; gap: 30px; }
}
@media(max-width:768px){
  .chris-dossier{ padding: 60px 18px; }
}

/* ── Override: re-enable Live File right panel on mobile (was hidden) ── */
@media(max-width:768px){
  .live-file{ grid-template-columns: 1fr !important; }
  .lf-right{ display: block !important; order: -1; padding: 0 18px; }
  .lf-illus{ max-width: 100%; }
}

/* Sticky mobile CTA — switch to "FIND YOUR CITY" for homepage */
.sticky-mobile .smb-cta{ font-size: 16px; }
