:root{--black:#070707;--dark:#111;--card:#161616;--card2:#1c1c1c;--red:#C82020;--red2:#E03030;--white:#F0F0F0;--gray:#7a7a7a;--border:rgba(255,255,255,.07)}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--black);color:var(--white);font-family:'Barlow',sans-serif;font-weight:300;overflow-x:hidden}
a{color:inherit}

/* NAV */
.fnav{position:fixed;top:0;left:0;right:0;z-index:100;height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 48px;background:rgba(7,7,7,.92);backdrop-filter:blur(6px);border-bottom:1px solid rgba(255,255,255,.04)}
.fnav-logo{font-family:'Bebas Neue',sans-serif;font-size:22px;letter-spacing:5px;text-decoration:none}
.fnav-logo span{color:var(--red)}
.fnav-right{display:flex;align-items:center;gap:22px}
.fnav-link{font-family:'Barlow Condensed',sans-serif;font-size:12px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--gray);text-decoration:none;transition:color .2s}
.fnav-link:hover,.fnav-link.active{color:var(--white)}

/* HERO */
.fhero{position:relative;min-height:88vh;display:flex;align-items:flex-end;padding:120px 48px 64px;overflow:hidden}
.fhero-bg{position:absolute;inset:-20px;background-size:cover;background-position:center 30%;filter:grayscale(35%) blur(1px);opacity:.38;transform:scale(1.04)}
.fhero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,7,7,.55) 0%,rgba(7,7,7,.2) 35%,rgba(7,7,7,.92) 85%,#070707 100%)}
.fhero-bleed{position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--red)}
.fhero-inner{position:relative;z-index:2;max-width:1200px;margin:0 auto;width:100%}
.fhero-eyebrow{font-family:'Barlow Condensed',sans-serif;font-size:11px;font-weight:700;letter-spacing:6px;text-transform:uppercase;color:var(--red);margin-bottom:18px}
.fhero-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(64px,12vw,168px);line-height:.84;letter-spacing:2px;margin-bottom:22px}
.fhero-title em{font-style:normal;color:var(--red)}
.fhero-meta{display:flex;flex-wrap:wrap;gap:10px 28px;font-family:'Barlow Condensed',sans-serif;font-size:18px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:rgba(240,240,240,.75);margin-bottom:34px}
.fhero-meta b{color:var(--white);font-weight:700}
.fhero-cta{display:flex;gap:12px;flex-wrap:wrap}

.btn{font-family:'Barlow Condensed',sans-serif;font-size:12px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;padding:13px 30px;text-decoration:none;display:inline-block;cursor:pointer;transition:all .2s;border:2px solid transparent}
.btn-primary{background:var(--red);border-color:var(--red);color:var(--white)}
.btn-primary:hover{background:var(--red2);border-color:var(--red2);transform:translateY(-1px)}
.btn-ghost{background:transparent;border-color:rgba(255,255,255,.22);color:var(--white)}
.btn-ghost:hover{border-color:var(--white);transform:translateY(-1px)}

/* COUNTDOWN */
.countdown{display:flex;gap:2px;margin-top:40px}
.cd-cell{background:rgba(22,22,22,.85);border:1px solid var(--border);padding:12px 18px;min-width:86px;text-align:center}
.cd-num{font-family:'Bebas Neue',sans-serif;font-size:40px;line-height:1;letter-spacing:1px}
.cd-label{font-family:'Barlow Condensed',sans-serif;font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--red);margin-top:4px}

/* SECTIONS */
section.fsec{padding:88px 48px}
.max-w{max-width:1200px;margin:0 auto}
.sec-label{font-family:'Barlow Condensed',sans-serif;font-size:11px;font-weight:700;letter-spacing:5px;text-transform:uppercase;color:var(--red);margin-bottom:14px}
.sec-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(44px,6.5vw,76px);line-height:.92;letter-spacing:2px;margin-bottom:14px}
.sec-sub{font-size:14px;color:var(--gray);line-height:1.7;max-width:640px;margin-bottom:40px}

/* LINE-UP */
.lineup{display:grid;grid-template-columns:repeat(4,1fr);gap:3px}
.lu-card{position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--card);text-decoration:none;display:block}
.lu-card.big{grid-column:span 2;grid-row:span 2}
.lu-img{position:absolute;inset:0;background-size:cover;background-position:center;filter:grayscale(40%);transition:transform .6s ease,filter .4s}
.lu-card:hover .lu-img{transform:scale(1.06);filter:grayscale(0)}
.lu-shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(7,7,7,.95) 0%,rgba(7,7,7,.3) 45%,transparent 70%)}
.lu-body{position:absolute;left:0;right:0;bottom:0;padding:16px 18px}
.lu-name{font-family:'Bebas Neue',sans-serif;font-size:30px;line-height:.95;letter-spacing:1px}
.lu-card.big .lu-name{font-size:clamp(44px,5vw,72px)}
.lu-genres{font-family:'Barlow Condensed',sans-serif;font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:rgba(240,240,240,.55);margin-top:6px}
.lu-badge{position:absolute;top:12px;left:12px;font-family:'Barlow Condensed',sans-serif;font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;background:var(--red);padding:3px 9px}
.lu-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:'Bebas Neue',sans-serif;font-size:22px;letter-spacing:3px;color:rgba(255,255,255,.08)}
.lu-more{display:flex;align-items:center;justify-content:center;text-align:center;border:1px dashed rgba(255,255,255,.12);background:transparent;padding:18px}
.lu-more span{font-family:'Bebas Neue',sans-serif;font-size:26px;letter-spacing:2px;color:var(--gray);line-height:1.05}
.lu-source{margin-top:22px;font-family:'Barlow Condensed',sans-serif;font-size:12px;letter-spacing:1px;color:var(--gray)}
.lu-source a{color:var(--gray)}
.lu-source a:hover{color:var(--white)}
.lu-state{padding:60px 20px;text-align:center;font-family:'Barlow Condensed',sans-serif;letter-spacing:2px;color:var(--gray);border:1px solid var(--border)}

/* INFO STRIP */
.finfo{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--border)}
.finfo-item{padding:22px 24px;border-right:1px solid var(--border)}
.finfo-item:last-child{border-right:none}
.finfo-label{font-family:'Barlow Condensed',sans-serif;font-size:10px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--red);margin-bottom:6px}
.finfo-value{font-family:'Barlow Condensed',sans-serif;font-size:19px;font-weight:700;letter-spacing:.5px}

/* OUR PHOTOS */
.fgal{display:grid;grid-template-columns:repeat(4,1fr);gap:3px}
.fgal a{aspect-ratio:4/3;overflow:hidden;display:block}
.fgal div{width:100%;height:100%;background-size:cover;background-position:center;filter:grayscale(25%);transition:transform .4s,filter .3s}
.fgal a:hover div{transform:scale(1.06);filter:grayscale(0)}

/* OTHER FESTIVAL */
.fother{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:36px 40px;background:var(--red)}
.fother-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(34px,5vw,56px);line-height:.92;letter-spacing:2px}
.fother .btn-ghost{border-color:rgba(255,255,255,.6)}

footer.ffoot{border-top:1px solid var(--border);padding:36px 48px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:'Barlow Condensed',sans-serif;font-size:11px;letter-spacing:1.5px;color:var(--gray)}
footer.ffoot a{color:var(--gray);text-decoration:none;text-transform:uppercase;font-weight:700;letter-spacing:2px}
footer.ffoot a:hover{color:var(--red)}

@media (max-width:900px){
  .lineup{grid-template-columns:repeat(2,1fr)}
  .fgal{grid-template-columns:repeat(2,1fr)}
  .finfo{grid-template-columns:repeat(2,1fr)}
  .finfo-item:nth-child(2){border-right:none}
  .finfo-item:nth-child(-n+2){border-bottom:1px solid var(--border)}
}
@media (max-width:600px){
  .fnav{padding:0 16px}
  .fnav-link.hide-sm{display:none}
  .fhero{padding:100px 16px 48px;min-height:80vh}
  section.fsec{padding:60px 16px}
  .cd-cell{min-width:0;flex:1;padding:10px 6px}
  .cd-num{font-size:30px}
  .lu-name{font-size:24px}
  .fother{padding:28px 20px}
  footer.ffoot{padding:28px 16px}
}
