*, *::before, *::after{
  box-sizing:border-box;
  margin:0;
  padding:0;
}

:root{
  --red:#ff1744;
  --red-dark:#c4002f;
  --blue:#00bfff;
  --blue-light:#52cfff;
  --black:#050505;
  --surface:#0e0e16;
  --white:#ffffff;
  --muted:#b8b8c4;
}

html{scroll-behavior:smooth;}
body{
  background:var(--black);
  color:var(--white);
  font-family:'Inter',sans-serif;
  overflow-x:hidden;
}

body::after{
  content:'';
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:9999;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E");
  opacity:.35;
  mix-blend-mode:overlay;
}

/* NAV */
nav{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:300;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:.9rem 2.5rem;
  background:rgba(8,8,8,.95);
  border-bottom:2px solid var(--red);
}

.nav-logo{
  font-family:'Bebas Neue',sans-serif;
  font-size:1.4rem;
  letter-spacing:.2em;
  color:var(--red);
}
.nav-logo span{color:var(--white);}
nav ul{list-style:none;display:flex;gap:2rem;}
nav ul a{
  text-decoration:none;
  color:var(--white);
  font-family:'Space Mono',monospace;
  font-size:.7rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  transition:color .2s;
}
nav ul a:hover{color:var(--red);}
.nav-cta{
  background:var(--red);
  color:var(--white);
  padding:.45rem 1.2rem;
  font-family:'Space Mono',monospace;
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  text-decoration:none;
  transition:background .2s;
}
.nav-cta:hover{background:var(--red-dark);}

/* LOADER */
.netflix-loader{
  position:fixed;
  inset:0;
  z-index:999999;
  background:#050505;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  overflow:hidden;
  transition:opacity 1s ease, visibility 1s ease;
}
.loader-logo-wrap{
  width:min(620px,78vw);
  opacity:0;
  animation:logoReveal 1.4s ease forwards;
}
.loader-logo{
  width:100%;
  display:block;
  filter:drop-shadow(0 0 12px rgba(255,23,68,.75)) drop-shadow(0 0 42px rgba(255,23,68,.38));
}
.loader-powered{
  margin-top:1.4rem;
  font-family:'Space Mono', monospace;
  font-size:.85rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:rgba(255,255,255,.72);
  opacity:0;
  animation:loaderTextIn .7s ease forwards;
  animation-delay:1.1s;
}
.netflix-loader.hide{opacity:0;visibility:hidden;}

@keyframes logoReveal{
  0%{opacity:0;transform:scale(.75);filter:blur(18px);}
  60%{opacity:1;transform:scale(1.06);filter:blur(0);}
  100%{opacity:1;transform:scale(1);filter:blur(0);}
}
@keyframes loaderTextIn{
  from{opacity:0;transform:translateY(12px);}
  to{opacity:1;transform:translateY(0);}
}

/* HERO */
.hero-fullscreen{
  min-height:100vh;
  width:100%;
  padding:0;
  position:relative;
  overflow:hidden;
  display:flex;
  justify-content:center;
  align-items:center;
  background:#050505;
}
.hero-bg{
  position:absolute;
  inset:0;
  background-image:linear-gradient(rgba(0,0,0,.18), rgba(0,0,0,.72)), url("images/festival.jpg");
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
  z-index:1;
  animation:slowZoom 18s ease-in-out infinite alternate;
}
@keyframes slowZoom{
  from{transform:scale(1);}
  to{transform:scale(1.08);}
}
.hero-fullscreen::after{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at center, transparent 0%, rgba(0,0,0,.62) 76%), linear-gradient(to top, rgba(0,0,0,.9), transparent 48%);
  z-index:2;
}
.hero-content-new{
  position:relative;
  z-index:3;
  text-align:center;
  padding:0 2rem;
}
.hero-kicker{
  font-family:'Space Mono', monospace;
  font-size:clamp(1.1rem, 2vw, 2rem);
  font-weight:700;
  letter-spacing:.25em;
  text-transform:uppercase;
  color:white;
  margin-bottom:1.6rem;
  text-shadow:0 0 16px rgba(255,255,255,.55), 0 0 32px rgba(255,23,68,.5);
}
.hero-logo{
  width:min(900px,80vw);
  max-height:48vh;
  object-fit:contain;
  display:block;
  margin:0 auto;
  filter:drop-shadow(0 0 6px #FC5332) drop-shadow(0 0 24px rgba(255,23,68,.35));
}
.hero-subtitle{
  font-family:'Space Mono', monospace;
  font-size:clamp(.9rem,1.6vw,1.35rem);
  font-weight:700;
  letter-spacing:.16em;
  color:rgba(255,255,255,.92);
  margin-top:1.2rem;
  text-shadow:0 0 15px rgba(255,255,255,.25);
}
.hero-bottom{
  position:absolute;
  left:2rem;
  right:2rem;
  bottom:2rem;
  z-index:4;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:2rem;
  font-family:'Space Mono', monospace;
  font-size:.75rem;
  line-height:1.8;
  color:rgba(255,255,255,.72);
}
.hero-bottom strong{color:white;}
.hero-countdown{display:flex;gap:.6rem;align-items:baseline;justify-content:center;}
.cd-unit{text-align:center;}
.cd-num{font-family:'Anton',sans-serif;font-size:2.2rem;color:var(--white);display:block;line-height:1;}
.cd-label{font-family:'Space Mono',monospace;font-size:.5rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);}
.cd-sep{font-family:'Anton',sans-serif;font-size:1.8rem;color:var(--red);align-self:flex-start;padding-top:.15rem;}

/* TICKER */
.ticker{
  background:var(--red);
  padding:.55rem 0;
  overflow:hidden;
  white-space:nowrap;
  border-top:2px solid rgba(0,0,0,.2);
  border-bottom:2px solid rgba(0,0,0,.2);
}
.ticker-inner{
  display:inline-block;
  animation:ticker 22s linear infinite;
  font-family:'Anton',sans-serif;
  font-size:1rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--white);
}
.ticker-inner span{margin:0 2.5rem;opacity:.6;}
@keyframes ticker{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* WRAPPED LINEUP */
.wrapped-lineup{padding:0 !important;margin:0 !important;}
.wrapped-artist{
  height:100vh !important;
  width:100vw !important;
  margin-left:calc(50% - 50vw);
  display:flex;
  justify-content:center;
  align-items:center;
  position:relative;
  overflow:hidden;
  padding:2rem;
  isolation:isolate;
  font-family:'Anton', sans-serif;
  font-size:clamp(4rem,12vw,13rem);
  line-height:.9;
  text-align:center;
  text-transform:uppercase;
  color:white;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  text-shadow:0 0 20px rgba(255,255,255,.35), 0 0 80px rgba(255,23,68,.35);
  box-shadow:inset 0 0 120px rgba(0,0,0,.7);
}
.wrapped-artist::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.82), rgba(0,0,0,.25), rgba(0,0,0,.72));
  z-index:-1;
}
.wrapped-asap{background-image:url("images/asap1.webp") !important;}
.wrapped-gambino{background-image:url("images/gambino1.webp") !important;}
.wrapped-tyler{background-image:url("images/tyler1.jpg") !important;}
.wrapped-sza{background-image:url("images/sza1.jpg") !important;}
.wrapped-frank{background-image:url("images/frank1.webp") !important;}

/* SECTIONS */
section{padding:5rem 2.5rem;}
.section-label{font-family:'Space Mono',monospace;font-size:.65rem;letter-spacing:.25em;text-transform:uppercase;color:var(--red);margin-bottom:1.5rem;}
h2{font-family:'Anton',sans-serif;font-size:clamp(2.5rem,6vw,5rem);letter-spacing:.03em;line-height:.95;margin-bottom:2.5rem;text-transform:uppercase;}

/* LINEUP */
.lineup{background:var(--black);}
.lineup-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2.5rem;}
.filter-btn{
  font-family:'Space Mono',monospace;
  font-size:.62rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  padding:.4rem .9rem;
  cursor:pointer;
  background:transparent;
  color:var(--muted);
  border:1px solid #333;
  transition:all .2s;
}
.filter-btn:hover,.filter-btn.active{background:var(--red);color:var(--white);border-color:var(--red);}
.artist-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
  gap:3px;
}
.artist-card{
  position:relative;
  overflow:hidden;
  cursor:pointer;
  aspect-ratio:3/4;
  background:#111;
  opacity:0;
  transform:translateY(24px);
  transition:opacity .45s ease, transform .45s ease, box-shadow .35s ease;
}
.artist-card.visible{opacity:1;transform:translateY(0);}
.artist-card.hidden{display:none;}
.artist-card:hover{transform:translateY(-8px);box-shadow:0 0 15px rgba(255,23,68,.4),0 0 40px rgba(255,23,68,.2);}
.artist-card.headliner::before,.artist-card.headliner-red::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--red);z-index:2;}
.artist-card.headliner-blue::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--blue);z-index:2;}
.artist-photo{width:100%;height:100%;display:block;position:relative;overflow:hidden;background:#111;}
.lineup-img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;filter:saturate(1.08) contrast(1.08);transition:transform .45s ease, filter .45s ease;}
.artist-card:hover .lineup-img{transform:scale(1.07);filter:saturate(1.2) contrast(1.15);}
.photo-icon{font-size:2rem;opacity:.2;}
.photo-lbl{font-family:'Space Mono',monospace;font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.2);}
.artist-bar{position:absolute;bottom:0;left:0;right:0;padding:.7rem .9rem .6rem;background:linear-gradient(to top,rgba(8,8,8,.95) 0%,transparent 100%);}
.artist-bar-name{font-family:'Anton',sans-serif;font-size:1.05rem;letter-spacing:.05em;text-transform:uppercase;color:var(--white);line-height:1.1;}
.artist-bar-day{font-family:'Space Mono',monospace;font-size:.55rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:.15rem;}
.artist-card.headliner-red .artist-bar-name{color:var(--red);}
.artist-card.headliner-blue .artist-bar-name{color:var(--blue-light);}
.artist-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(8,8,8,.95) 0%,rgba(8,8,8,.3) 55%,transparent 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:1rem;opacity:0;transition:opacity .3s;}
.artist-card:hover .artist-overlay{opacity:1;}
.ov-genre{font-size:.72rem;color:rgba(255,255,255,.6);margin-bottom:.2rem;}
.ov-name{font-family:'Anton',sans-serif;font-size:1.4rem;letter-spacing:.04em;text-transform:uppercase;color:var(--white);line-height:1;}
.ov-more{margin-top:.4rem;font-family:'Space Mono',monospace;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--red);}
.hl-badge{position:absolute;top:.6rem;left:.6rem;z-index:3;font-family:'Space Mono',monospace;font-size:.5rem;letter-spacing:.15em;text-transform:uppercase;padding:.2rem .5rem;background:var(--red);color:var(--white);}
.artist-card.headliner-blue .hl-badge{background:var(--blue);}
.tba-card .artist-photo{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:.9rem;}

/* SPOTIFY STYLE MODAL */
.modal-backdrop{
  position:fixed;
  inset:0;
  z-index:500;
  background:rgba(0,0,0,.78);
  backdrop-filter:blur(14px);
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  pointer-events:none;
  transition:opacity .3s ease;
  padding:2rem;
}
.modal-backdrop.open{opacity:1;pointer-events:all;}
.modal{
  width:min(980px,92vw);
  height:min(720px,88vh);
  max-height:88vh;
  position:relative;
  overflow:hidden;
  border-radius:22px;
  background:linear-gradient(180deg, #15151d 0%, #08080e 68%);
  border:1px solid rgba(255,23,68,.35);
  box-shadow:0 0 90px rgba(255,23,68,.18), 0 30px 100px rgba(0,0,0,.7);
  transform:translateY(24px) scale(.97);
  transition:transform .3s ease;
}
.modal-backdrop.open .modal{transform:translateY(0) scale(1);}
.modal-photo{
  position:absolute;
  inset:0 0 auto 0;
  height:310px;
  background-size:cover !important;
  background-position:center 42% !important;
  background-repeat:no-repeat !important;
  opacity:.78;
}
.modal-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to bottom, rgba(5,5,5,.05), rgba(8,8,14,.75) 68%, #08080e 100%), linear-gradient(to right, rgba(8,8,14,.45), transparent 62%);
}
.modal-body{
  position:relative;
  z-index:2;
  padding:150px 2.4rem 2.2rem;
}
.modal-badge{
  font-family:'Space Mono',monospace;
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:rgba(255,255,255,.72);
  margin-bottom:.35rem;
}
.modal-name{
  font-family:'Anton',sans-serif;
  font-size:clamp(4.4rem,7vw,7rem);
  letter-spacing:.03em;
  line-height:.82;
  text-transform:uppercase;
  color:var(--red);
  text-shadow:0 0 18px rgba(255,23,68,.55);
  margin-bottom:.35rem;
}
.modal.hl-blue .modal-name{color:var(--blue-light);text-shadow:0 0 18px rgba(0,191,255,.46);}
.modal-genre{
  font-size:1rem;
  color:rgba(255,255,255,.78);
  margin-bottom:1.35rem;
}
.modal-meta{
  display:flex;
  gap:.65rem;
  margin:1.35rem 0 1.55rem;
  flex-wrap:wrap;
}
.modal-meta-item{
  min-width:auto;
  padding:.62rem .9rem;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  display:flex;
  align-items:center;
  gap:.55rem;
}
.modal-meta-item span{
  font-family:'Space Mono',monospace;
  font-size:.58rem;
  letter-spacing:.16em;
  color:rgba(255,255,255,.48);
  text-transform:uppercase;
}
.modal-meta-item strong{
  font-family:'Space Mono',monospace;
  font-size:.82rem;
  color:white;
  white-space:nowrap;
}
.modal-desc{
  max-width:820px;
  font-size:1.05rem;
  line-height:1.75;
  font-weight:600;
  color:rgba(255,255,255,.82);
  margin-bottom:1.8rem;
}
.modal-actions{display:flex;gap:.7rem;flex-wrap:wrap;}
.modal-close{
  position:absolute;
  top:1rem;
  right:1rem;
  z-index:5;
  width:2.2rem;
  height:2.2rem;
  border-radius:50%;
  border:none;
  background:rgba(0,0,0,.6);
  color:white;
  font-size:1.35rem;
  cursor:pointer;
  display:flex;
  justify-content:center;
  align-items:center;
}
.modal-close:hover{background:var(--red);}
.btn{display:inline-block;padding:.8rem 1.55rem;background:var(--red);color:var(--white);font-family:'Space Mono',monospace;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border:none;border-radius:999px;cursor:pointer;transition:background .2s, transform .2s;}
.btn:hover{background:var(--red-dark);transform:translateY(-2px);}
.btn-out{background:transparent;color:var(--white);border:1px solid rgba(255,255,255,.34);}
.btn-out:hover{border-color:var(--white);background:rgba(255,255,255,.06);}

/* SCHEDULE */
.schedule{background:var(--red);padding:5rem 2.5rem;}
.schedule h2{color:var(--white);}
.schedule .section-label{color:rgba(255,255,255,.6);}
.sched-table{width:100%;border-collapse:collapse;}
.sched-table th{text-align:left;padding:.7rem 1rem;font-family:'Space Mono',monospace;font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.5);border-bottom:1px solid rgba(255,255,255,.2);}
.sched-table td{padding:.9rem 1rem;border-bottom:1px solid rgba(0,0,0,.15);font-size:.88rem;}
.sched-table tr:hover td{background:rgba(0,0,0,.15);}
.time-col{font-family:'Space Mono',monospace;color:var(--white);font-size:.75rem;white-space:nowrap;}
.stage-b{display:inline-block;padding:.18rem .55rem;font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;}
.s-main{background:var(--black);color:var(--white);}
.s-dist{background:var(--blue);color:var(--white);}
.s-ugnd{background:rgba(0,0,0,.35);color:rgba(255,255,255,.7);}

/* INFO */
.info-sec{background:var(--surface);}
.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0;border:1px solid #1a1a1a;}
.info-card{padding:2.8rem;border-right:1px solid #1a1a1a;border-bottom:1px solid #1a1a1a;}
.info-card h3{font-family:'Anton',sans-serif;font-size:1.2rem;letter-spacing:.05em;text-transform:uppercase;color:var(--white);margin-bottom:.5rem;}
.info-card p{font-size:.8rem;color:var(--muted);line-height:1.7;}

/* TICKETS */
.tickets-sec{background:var(--black);}
.ticket-cards{display:flex;flex-wrap:wrap;justify-content:center;gap:3px;margin-top:0;}
.ticket{background:var(--surface);border:1px solid #1a1a1a;padding:2.2rem 1.8rem;width:230px;transition:border-color .2s,transform .2s;text-align:center;}
.ticket:hover{border-color:var(--red);transform:translateY(-3px);}
.ticket.feat{border-color:var(--red);border-width:2px;}
.ticket-type{font-family:'Space Mono',monospace;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:.8rem;}
.ticket-price{font-family:'Anton',sans-serif;font-size:3.2rem;color:var(--white);line-height:1;}
.ticket-price sup{font-size:1.2rem;vertical-align:super;color:var(--red);}
.ticket-feats{list-style:none;margin:1.2rem 0;font-size:.78rem;color:var(--muted);line-height:2;text-align:left;}
.ticket-feats li::before{content:'— ';color:var(--red);}

/* FOOTER */
footer{background:var(--red);padding:1.5rem 2.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;border-top:3px solid var(--red-dark);}
.footer-logo{font-family:'Anton',sans-serif;font-size:1.4rem;letter-spacing:.1em;color:var(--white);}
footer p{font-size:.7rem;color:rgba(255,255,255,.6);font-family:'Space Mono',monospace;}
footer ul{list-style:none;display:flex;gap:1.5rem;}
footer ul a{font-size:.65rem;color:rgba(255,255,255,.6);text-decoration:none;font-family:'Space Mono',monospace;letter-spacing:.08em;text-transform:uppercase;transition:color .2s;}
footer ul a:hover{color:var(--white);}

/* MOBILE */
@media(max-width:700px) and (hover:none) and (pointer:coarse){
  nav ul,.nav-cta{display:none;}
  nav{padding:.8rem 1.2rem;}
  section,.schedule,.info-sec,.tickets-sec{padding:3.5rem 1.2rem;}
  .hero-bottom{flex-direction:column;align-items:flex-start;}
  .hero-logo{width:88vw;max-height:42vh;}
  .wrapped-artist{font-size:clamp(4rem,18vw,8rem);}
  .artist-grid{grid-template-columns:repeat(2,1fr);}
  footer{flex-direction:column;text-align:center;}
  footer ul{justify-content:center;}
  .modal-backdrop{padding:1rem;}
  .modal{height:auto;max-height:92vh;overflow-y:auto;}
  .modal-photo{height:250px;}
  .modal-body{padding:120px 1.2rem 1.5rem;}
  .modal-name{font-size:clamp(3rem,16vw,4.8rem);}
  .modal-desc{font-size:.92rem;}
}
.modal-hero-bg,
.modal-photo{
    background-size: cover !important;
    background-position: center top !important;
}

/* MODAL — SPOTIFY ALBUM CARD */

.modal-backdrop{
    position:fixed;
    inset:0;
    z-index:500;
    background:rgba(0,0,0,.84);
    backdrop-filter:blur(18px);
    display:flex;
    justify-content:center;
    align-items:center;
    opacity:0;
    pointer-events:none;
    transition:.3s ease;
}

.modal-backdrop.open{
    opacity:1;
    pointer-events:all;
}

.modal{
    width:min(1050px,92vw);
    max-height:88vh;
    overflow:auto;

    display:grid;
    grid-template-columns:360px 1fr;

    background:
        linear-gradient(145deg, rgba(255,23,68,.12), transparent 35%),
        #0d0d14;

    border:1px solid rgba(255,255,255,.12);
    border-radius:28px;

    box-shadow:
        0 0 80px rgba(255,23,68,.22),
        0 40px 120px rgba(0,0,0,.75);

    position:relative;
}

.modal-album-cover{
    width:100%;
    min-height:520px;

    background-size:cover !important;
    background-position:center top !important;
    background-repeat:no-repeat !important;

    border-radius:28px 0 0 28px;

    position:relative;
}

.modal-album-cover::after{
    content:"";
    position:absolute;
    inset:0;

    background:
        linear-gradient(to top, rgba(0,0,0,.45), transparent 55%);

    border-radius:28px 0 0 28px;
}

.modal-body{
    padding:56px 54px 44px;

    display:flex;
    flex-direction:column;
    justify-content:center;
}

.modal-badge{
    font-family:'Space Mono', monospace;
    font-size:.75rem;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:rgba(255,255,255,.55);
    margin-bottom:10px;
}

.modal-name{
    font-family:'Anton', sans-serif;
    font-size:clamp(3.8rem,6vw,6.8rem);
    line-height:.86;
    text-transform:uppercase;
    color:var(--red);

    text-shadow:
        0 0 18px rgba(255,23,68,.55),
        0 0 50px rgba(255,23,68,.25);

    margin-bottom:10px;
}

.modal-genre{
    font-size:1rem;
    color:rgba(255,255,255,.72);

    margin-top:8px;
    margin-bottom:14px;
}

.modal-meta{

    display:flex;
    gap:12px;
    flex-wrap:wrap;

    margin-top:0;
    margin-bottom:22px;

    align-items:center;
}

.modal-meta-item{
    padding:10px 16px;
    border-radius:999px;

    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.15);
}

.modal-meta-item span{
    font-family:'Space Mono', monospace;
    font-size:.58rem;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:rgba(255,255,255,.42);
    margin-right:8px;
}

.modal-meta-item strong{
    font-family:'Space Mono', monospace;
    font-size:.78rem;
    color:white;
}

.modal-desc{
    max-width:560px;
    font-size:1rem;
    line-height:1.8;
    color:rgba(255,255,255,.76);
    margin-bottom:32px;
}

.modal-actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
}

.modal-close{
    position:absolute;
    top:18px;
    right:18px;
    z-index:20;

    width:36px;
    height:36px;

    border:none;
    border-radius:50%;

    background:rgba(0,0,0,.55);
    color:white;

    cursor:pointer;
    font-size:1.1rem;
}

@media(max-width:850px){
    .modal{
        grid-template-columns:1fr;
        width:92vw;
    }

    .modal-album-cover{
        min-height:360px;
        border-radius:28px 28px 0 0;
        background-position:center top !important;
    }

    .modal-album-cover::after{
        border-radius:28px 28px 0 0;
    }

    .modal-body{
        padding:34px 28px 36px;
    }

    .modal-name{
        font-size:clamp(3.4rem,14vw,5.4rem);
    }
}


/* FINAL FIX — SPOTIFY ALBUM MODAL */
.modal{
  width:min(1050px,92vw) !important;
  max-height:88vh !important;
  height:auto !important;
  display:grid !important;
  grid-template-columns:360px 1fr !important;
  overflow:auto !important;
}

.modal-album-cover{
  width:100% !important;
  min-height:520px !important;
  background-size:cover !important;
  background-position:center top !important;
  background-repeat:no-repeat !important;
}

.modal-body{
  padding:56px 54px 44px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

.modal-meta{
  display:flex !important;
  gap:12px !important;
  flex-wrap:wrap !important;
  margin-bottom:28px !important;
}

.modal-meta-item{
  display:inline-flex !important;
  align-items:center !important;
  gap:8px !important;
  padding:10px 16px !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.06) !important;
  border:1px solid rgba(255,255,255,.15) !important;
  min-width:auto !important;
}

.modal-meta-item span{
  font-family:'Space Mono', monospace !important;
  font-size:.58rem !important;
  letter-spacing:.16em !important;
  text-transform:uppercase !important;
  color:rgba(255,255,255,.42) !important;
}

.modal-meta-item strong{
  font-family:'Space Mono', monospace !important;
  font-size:.82rem !important;
  color:white !important;
  white-space:nowrap !important;
}

@media(max-width:850px){
  .modal{
    grid-template-columns:1fr !important;
    width:92vw !important;
  }

  .modal-album-cover{
    min-height:360px !important;
    border-radius:28px 28px 0 0 !important;
  }

  .modal-body{
    padding:34px 28px 36px !important;
  }
}


/* FINAL SECTION HEADING FIXES */
.schedule h2.single-line-heading,
.info-sec h2.single-line-heading,
.tickets-sec h2.single-line-heading{
  display:block;
  white-space:nowrap;
  max-width:100%;
  font-size:clamp(3.8rem, 7vw, 7.2rem);
  line-height:.95;
  letter-spacing:.02em;
}

.schedule h2.single-line-heading{
  color:var(--white);
}

.info-sec h2.single-line-heading,
.tickets-sec h2.single-line-heading{
  color:var(--white);
}

.info-grid{
  overflow:hidden;
}

.info-card p{
  overflow-wrap:break-word;
}

@media(max-width:900px){
  .schedule h2.single-line-heading,
  .info-sec h2.single-line-heading,
  .tickets-sec h2.single-line-heading{
    white-space:normal;
    font-size:clamp(3rem, 13vw, 5.5rem);
  }
}
/* FIX MODAL TEXT OVERFLOW */

.modal{
    overflow:hidden !important;
}

.modal-body{
    min-width:0;
    overflow:hidden;
}

.modal-name{
    max-width:100%;
    font-size:clamp(3rem,5vw,5.6rem) !important;
    line-height:.9 !important;

    white-space:normal !important;
    overflow-wrap:break-word;
    word-break:normal;
}

.modal-genre,
.modal-desc{
    max-width:100%;
    overflow-wrap:break-word;
}

.modal-desc{
    font-size:.95rem !important;
    line-height:1.7 !important;
}

.modal-meta{
    max-width:100%;
    overflow:hidden;
}

.modal-meta-item{
    max-width:100%;
    white-space:normal;
}

.modal-meta-item strong{
    white-space:normal !important;
}

/* ==========================
   PROGRAM JAK PLAKAT FESTIWALOWY — FINAL
========================== */
.schedule-poster{
    background:var(--red);
    padding:9rem 6vw;
    overflow:hidden;
}

.poster-program{
    display:grid;
    grid-template-columns:minmax(300px, 420px) 1fr;
    gap:5vw;
    align-items:stretch;
}

.poster-date{
    position:relative;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    border-right:3px solid rgba(255,255,255,.18);
    padding-right:3rem;
    min-height:100%;
    isolation:isolate;
}

.poster-top,
.poster-bottom{
    font-family:'Anton',sans-serif;
    font-size:clamp(3rem,5vw,5rem);
    color:#fff;
    letter-spacing:.04em;
    line-height:.9;
    text-transform:uppercase;
    position:relative;
    z-index:2;
}

.poster-top{
    margin-bottom:-15px;
}

.poster-number{
    font-family:'Anton',sans-serif;
    font-size:clamp(12rem,24vw,22rem);
    line-height:.75;
    color:#2A9FF7;
    text-shadow:
      0 0 20px rgba(42,159,247,.45),
      0 0 50px rgba(42,159,247,.35);
    position:relative;
    z-index:2;
}

.poster-bottom{
    margin-top:-10px;
}

.poster-star{
    position:absolute;
    left:42%;
    top:50%;
    transform:translate(-50%,-50%) rotate(12deg);
    z-index:1;
    font-family:'Anton',sans-serif;
    font-size:clamp(13rem,24vw,22rem);
    line-height:1;
    color:rgba(255,255,255,.08);
    pointer-events:none;
}

.poster-date::before{
    content:'';
    position:absolute;
    left:-12%;
    top:22%;
    width:120%;
    height:26px;
    background:repeating-linear-gradient(
        -45deg,
        rgba(0,0,0,.18) 0,
        rgba(0,0,0,.18) 8px,
        transparent 8px,
        transparent 16px
    );
    transform:rotate(-7deg);
    z-index:0;
}

.poster-list{
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.poster-row{
    display:grid;
    grid-template-columns:120px 1fr 160px;
    align-items:center;
    gap:2rem;
    padding:2rem 0;
    border-bottom:1px solid rgba(255,255,255,.25);
    transition:.25s ease;
}

.poster-row:first-child{
    border-top:1px solid rgba(255,255,255,.25);
}

.poster-row span{
    font-family:'Space Mono', monospace;
    font-size:1.2rem;
    font-weight:700;
}

.poster-row strong{
    font-family:'Anton', sans-serif;
    font-size:clamp(2.5rem,4.5vw,5.5rem);
    line-height:.9;
    text-transform:uppercase;
}

.poster-row em{
    justify-self:end;
    font-family:'Space Mono', monospace;
    font-style:normal;
    font-size:.8rem;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
    background:#050505;
    color:white;
    padding:.55rem .9rem;
}

.poster-row:hover{
    background:rgba(0,0,0,.14);
    padding-left:1.5rem;
}

.headliner-row strong{
    color:#050505;
    text-shadow:0 0 20px rgba(255,255,255,.35);
}

@media(max-width:900px){
    .poster-program{
        grid-template-columns:1fr;
    }

    .poster-date{
        border-right:none;
        border-bottom:3px solid rgba(255,255,255,.25);
        padding-right:0;
        padding-bottom:2rem;
    }

    .poster-row{
        grid-template-columns:1fr;
        gap:.8rem;
    }

    .poster-row em{
        justify-self:start;
    }
}


/* ==========================
   BIGGER LINEUP / INFO / TICKETS — FINAL
========================== */
.lineup{
    padding-top:7rem;
}
.lineup-filters{
    gap:14px;
    margin-bottom:3.5rem;
}
.filter-btn{
    font-size:.78rem;
    padding:.75rem 1.25rem;
}
.artist-grid{
    grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
    gap:10px;
}
.artist-bar{
    padding:1.1rem 1.2rem 1rem;
}
.artist-bar-name{
    font-size:1.55rem;
}
.artist-bar-day{
    font-size:.7rem;
}
.ov-name{
    font-size:2rem;
}
.ov-genre,
.ov-more{
    font-size:.82rem;
}
.hl-badge{
    font-size:.62rem;
    padding:.35rem .7rem;
}
.info-card{
    padding:2.8rem !important;
    min-height:230px;
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
}
.info-card h3{
    font-size:1.8rem !important;
    margin-bottom:18px !important;
}
.info-card p{
    font-size:1rem !important;
    line-height:1.9 !important;
}
.ticket-cards{
    gap:28px !important;
    margin-top:70px !important;
}
.ticket{
    width:310px !important;
    padding:3rem 2.4rem !important;
    min-height:560px;
}
.ticket-price{
    font-size:5rem !important;
}
.ticket-type{
    font-size:.8rem !important;
    margin-bottom:20px !important;
}
.ticket-feats{
    font-size:1rem !important;
    line-height:2.2 !important;
    margin:35px 0 !important;
}
.ticket .btn{
    width:100%;
    padding:16px;
    font-size:.8rem;
}
@media(max-width:900px){
    .artist-grid{
        grid-template-columns:repeat(2,1fr);
    }
}
.poster-stripes{
    display:none;
}

/* =====================================================
   FINAL POLISH — PROGRAM + INFO CARDS
   Wklejone na końcu, żeby bezpiecznie nadpisać starsze reguły
===================================================== */

/* PROGRAM: bez skośnego paska, czystszy plakat */
.poster-date::before{
    display:none !important;
}

.poster-top{
    transform:translateY(-28px);
    margin-bottom:-35px !important;
}

.poster-number{
    font-size:clamp(13rem,26vw,24rem) !important;
}

.poster-bottom{
    margin-top:-35px !important;
}

/* INFO SECTION */
.info-sec{
    padding:9rem 5vw !important;
    background:
        radial-gradient(circle at top right, rgba(255,23,68,.14), transparent 34%),
        radial-gradient(circle at bottom left, rgba(42,159,247,.08), transparent 38%),
        #0f1018 !important;
    overflow:visible !important;
}

.info-sec .section-label{
    margin-bottom:1.8rem !important;
}

.info-sec .single-line-heading{
    margin-bottom:4.5rem !important;
}

.info-grid{
    display:grid !important;
    grid-template-columns:repeat(3,1fr) !important;
    grid-auto-rows:230px !important;
    gap:24px !important;
    border:none !important;
    overflow:visible !important;
}

.info-card{
    position:relative !important;
    z-index:1;
    min-height:auto !important;
    padding:2.8rem !important;
    overflow:hidden !important;
    border-radius:14px !important;
    border:1px solid rgba(255,255,255,.08) !important;
    background:
        linear-gradient(135deg, rgba(255,255,255,.035), rgba(255,255,255,.01)),
        #15151f !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
    transition:transform .35s ease, border-color .35s ease, box-shadow .35s ease, background .35s ease !important;
}

/* różne wysokości kafelków */
.info-card:nth-child(2){
    grid-row:span 2;
}

.info-card:nth-child(5){
    grid-row:span 2;
}

.info-card:nth-child(6){
    grid-column:span 2;
}

/* gradient hover */
.info-card::before{
    content:'';
    position:absolute;
    inset:0;
    background:
        linear-gradient(135deg, rgba(255,23,68,.13), transparent 58%),
        radial-gradient(circle at top right, rgba(42,159,247,.12), transparent 45%);
    opacity:0;
    transition:opacity .35s ease;
    pointer-events:none;
    z-index:0;
}

/* duże numery w tle */
.info-card::after{
    position:absolute;
    right:1.4rem;
    bottom:-1.2rem;
    z-index:0;
    font-family:'Anton', sans-serif;
    font-size:clamp(5rem,9vw,9rem);
    line-height:1;
    color:rgba(255,255,255,.045);
    letter-spacing:-.04em;
    pointer-events:none;
    transition:color .35s ease, transform .35s ease;
}

.info-card:nth-child(1)::after{content:'01';}
.info-card:nth-child(2)::after{content:'02';}
.info-card:nth-child(3)::after{content:'03';}
.info-card:nth-child(4)::after{content:'04';}
.info-card:nth-child(5)::after{content:'05';}
.info-card:nth-child(6)::after{content:'06';}

.info-card h3,
.info-card p{
    position:relative;
    z-index:1;
}

.info-card h3{
    font-family:'Anton', sans-serif !important;
    font-size:2.15rem !important;
    line-height:.95 !important;
    letter-spacing:.04em !important;
    text-transform:uppercase !important;
    color:#fff !important;
    margin-bottom:1.5rem !important;
}

.info-card p{
    font-size:1rem !important;
    line-height:1.9 !important;
    color:#9fa3b8 !important;
    max-width:90%;
}

.info-card:hover{
    transform:translateY(-12px) scale(1.02) !important;
    border-color:var(--red) !important;
    box-shadow:
        0 22px 55px rgba(255,23,68,.18),
        0 0 35px rgba(255,23,68,.11) !important;
    z-index:20;
}

.info-card:hover::before{
    opacity:1;
}

.info-card:hover::after{
    color:rgba(42,159,247,.16);
    transform:translateY(-6px) scale(1.04);
}

/* delikatne wariacje kart */
.info-card:nth-child(2),
.info-card:nth-child(5){
    background:
        linear-gradient(160deg, rgba(255,23,68,.06), rgba(255,255,255,.01)),
        #15151f !important;
}

.info-card:nth-child(6){
    background:
        linear-gradient(135deg, rgba(42,159,247,.07), rgba(255,23,68,.04)),
        #15151f !important;
}

@media(max-width:1100px){
    .info-grid{
        grid-template-columns:repeat(2,1fr) !important;
    }

    .info-card:nth-child(6){
        grid-column:span 2;
    }
}

@media(max-width:760px){
    .info-sec{
        padding:6rem 1.2rem !important;
    }

    .info-grid{
        grid-template-columns:1fr !important;
        grid-auto-rows:auto !important;
    }

    .info-card,
    .info-card:nth-child(2),
    .info-card:nth-child(5),
    .info-card:nth-child(6){
        grid-column:auto !important;
        grid-row:auto !important;
        min-height:230px !important;
    }

    .info-card p{
        max-width:100%;
    }
}


/* =====================================================
   INFO LIST UPGRADE — DESKTOP + HOVER NUMBERS
===================================================== */

@media screen and (min-width:769px){

  .info-sec{
    overflow:visible !important;
  }

  .info-grid{
    overflow:visible !important;
  }

  .info-card{
    position:relative !important;
    overflow:hidden !important;
    isolation:isolate;

    min-height:360px !important;
    height:auto !important;

    padding:3rem 2.8rem !important;

    transition:
      transform .35s ease,
      border-color .35s ease,
      box-shadow .35s ease,
      background .35s ease !important;
  }

  .info-card::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    pointer-events:none;

    background:
      linear-gradient(135deg, rgba(255,23,68,.16), transparent 58%),
      radial-gradient(circle at top right, rgba(42,159,247,.14), transparent 42%);

    opacity:0;
    transition:opacity .35s ease;
  }

  .info-card::after{
    position:absolute;
    right:1.2rem;
    bottom:-1.25rem;
    z-index:0;

    font-family:'Anton', sans-serif;
    font-size:clamp(5rem,7vw,9rem);
    line-height:1;

    color:rgba(42,159,247,.18);
    text-shadow:0 0 35px rgba(42,159,247,.22);

    opacity:0;
    transform:translateY(18px) scale(.94);

    transition:
      opacity .35s ease,
      transform .35s ease;
    pointer-events:none;
  }

  .info-card:nth-child(1)::after{content:"01";}
  .info-card:nth-child(2)::after{content:"02";}
  .info-card:nth-child(3)::after{content:"03";}
  .info-card:nth-child(4)::after{content:"04";}
  .info-card:nth-child(5)::after{content:"05";}
  .info-card:nth-child(6)::after{content:"06";}

  .info-card h3,
  .info-card p,
  .info-list{
    position:relative;
    z-index:2;
  }

  .info-card h3{
    margin-bottom:1.7rem !important;
  }

  .info-list{
    display:flex;
    flex-direction:column;
    gap:.9rem;

    margin:0;
    padding:0;
    list-style:none;

    color:rgba(255,255,255,.68);
  }

  .info-list li{
    position:relative;
    padding-left:1.25rem;

    font-size:1rem;
    line-height:1.65;
  }

  .info-list li::before{
    content:"—";
    position:absolute;
    left:0;
    top:0;

    color:var(--red);
    font-weight:700;
  }

  .info-card:hover{
    transform:translateY(-10px) scale(1.015) !important;
    border-color:var(--red) !important;

    background:
      radial-gradient(circle at top right, rgba(255,23,68,.18), transparent 36%),
      linear-gradient(145deg, rgba(255,255,255,.055), rgba(255,255,255,.015)),
      #15151f !important;

    box-shadow:
      0 24px 70px rgba(255,23,68,.20),
      0 0 0 1px rgba(255,23,68,.35) !important;
  }

  .info-card:hover::before{
    opacity:1;
  }

  .info-card:hover::after{
    opacity:1;
    transform:translateY(0) scale(1);
  }

  .info-card:hover h3{
    color:#fff !important;
    text-shadow:
      0 0 14px rgba(255,255,255,.18),
      0 0 24px rgba(255,23,68,.22);
  }
}


/* =====================================================
   NAV LOGO AS HOME BUTTON + HEADLINER SHOWCASE INTRO
===================================================== */

.nav-logo{
  text-decoration:none;
  cursor:pointer;
}

.nav-logo.home-link{
  display:inline-flex;
  align-items:center;
}

.nav-logo.home-link:hover{
  color:var(--white);
}

.nav-logo.home-link:hover span{
  color:var(--red);
}

.showcase-intro{
  padding:7rem 2.5rem 4rem;
  background:
    radial-gradient(circle at top right, rgba(255,23,68,.12), transparent 35%),
    #050505;
}

.showcase-intro .section-label{
  color:var(--red);
}

.showcase-intro h2{
  max-width:980px;
  margin-bottom:1.6rem;
  font-size:clamp(3.2rem,7vw,7rem);
}

.showcase-intro p{
  max-width:760px;
  font-size:1.05rem;
  line-height:1.8;
  color:rgba(255,255,255,.68);
}

.wrapped-lineup{
  position:relative;
}

.wrapped-lineup::before{
  content:"HEADLINER SHOWCASE";
  position:sticky;
  top:70px;
  left:0;
  z-index:20;
  display:inline-block;
  margin:1rem 0 -3rem 2.5rem;
  padding:.45rem .85rem;
  font-family:'Space Mono', monospace;
  font-size:.62rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:white;
  background:rgba(5,5,5,.72);
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  backdrop-filter:blur(12px);
}

@media(max-width:768px){
  .showcase-intro{
    padding:5.5rem 1rem 3rem !important;
  }

  .showcase-intro h2{
    font-size:clamp(3.3rem,16vw,5.6rem) !important;
    line-height:.9;
  }

  .showcase-intro p{
    font-size:1rem;
    line-height:1.75;
  }

  .wrapped-lineup::before{
    top:1rem;
    margin:1rem 0 -3rem 1rem;
    font-size:.56rem;
  }
}


/* =====================================================
   LINEUP PREVIEW — polish/english bridge
===================================================== */

.showcase-intro.lineup-preview{
  padding:6.5rem 2.5rem 3.6rem;
  background:
    radial-gradient(circle at top right, rgba(255,23,68,.12), transparent 35%),
    radial-gradient(circle at bottom left, rgba(42,159,247,.08), transparent 38%),
    #050505;
}

.showcase-intro.lineup-preview .section-label{
  color:var(--red);
}

.showcase-intro.lineup-preview h2{
  max-width:1000px;
  margin-bottom:1.35rem;
  font-size:clamp(3.6rem,8vw,8rem);
  line-height:.88;
}

.showcase-intro.lineup-preview p{
  max-width:760px;
  font-size:1.05rem;
  line-height:1.8;
  color:rgba(255,255,255,.68);
}

.wrapped-lineup::before{
  content:"LINE-UP PREVIEW" !important;
}

@media(max-width:768px){
  .showcase-intro.lineup-preview{
    padding:5.5rem 1rem 3rem !important;
  }

  .showcase-intro.lineup-preview h2{
    font-size:clamp(3.3rem,16vw,5.7rem) !important;
    line-height:.9;
  }

  .showcase-intro.lineup-preview p{
    font-size:1rem;
    line-height:1.75;
  }

  .wrapped-lineup::before{
    content:"LINE-UP PREVIEW" !important;
  }
}


/* =====================================================
   LANGUAGE SWITCH PL / EN
===================================================== */

.lang-switch{
  display:flex;
  align-items:center;
  gap:.35rem;
  margin-left:1rem;
  font-family:'Space Mono', monospace;
  font-size:.68rem;
  letter-spacing:.14em;
  color:rgba(255,255,255,.45);
}

.lang-btn{
  border:0;
  background:transparent;
  color:rgba(255,255,255,.55);
  font-family:'Space Mono', monospace;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.14em;
  cursor:pointer;
  padding:.25rem .15rem;
  transition:color .2s, text-shadow .2s;
}

.lang-btn.active,
.lang-btn:hover{
  color:var(--red);
  text-shadow:0 0 12px rgba(255,23,68,.45);
}

@media(max-width:768px){
  .lang-switch{
    position:fixed;
    top:.85rem;
    right:.85rem;
    z-index:1200;
    padding:.45rem .65rem;
    border:1px solid rgba(255,255,255,.14);
    border-radius:999px;
    background:rgba(5,5,5,.72);
    backdrop-filter:blur(14px);
  }
}


/* =====================================================
   FINAL NAV ALIGNMENT — centered menu + right language/buy
===================================================== */

@media screen and (min-width:769px){

  nav{
    display:grid !important;
    grid-template-columns:220px 1fr auto auto;
    align-items:center !important;
    gap:28px !important;
    padding:.7rem 2.4rem !important;
  }

  .nav-logo{
    justify-self:start;
  }

  nav ul{
    justify-self:center;
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    gap:3rem !important;
    margin:0 !important;
    padding:0 !important;
  }

  .lang-switch{
    justify-self:end;
    margin-left:0 !important;
    margin-right:.2rem !important;
    order:3;
  }

  .nav-cta{
    justify-self:end;
    margin:0 !important;
    order:4;
    white-space:nowrap;
  }
}


/* =====================================================
   ARTIST MODAL — BETTER COPY / FESTIVAL CARD
===================================================== */

.modal-desc{
  display:block;
}

.modal-tagline{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  margin-bottom:.85rem;
  padding:.38rem .7rem;
  border:1px solid rgba(255,23,68,.42);
  border-radius:999px;
  background:rgba(255,23,68,.1);
  color:var(--red);
  font-family:'Space Mono', monospace;
  font-size:.62rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.modal-slogan{
  margin:0 0 .9rem;
  font-family:'Inter', sans-serif;
  font-size:clamp(1.05rem,1.7vw,1.35rem);
  line-height:1.45;
  font-weight:800;
  color:white;
}

.modal-highlight-row{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  margin:0 0 1rem;
}

.modal-highlight-row span{
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  padding:.48rem .72rem;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.13);
  background:rgba(255,255,255,.055);
  color:rgba(255,255,255,.78);
  font-family:'Space Mono', monospace;
  font-size:.62rem;
  letter-spacing:.05em;
  text-transform:uppercase;
}

.modal-desc p{
  margin:0;
  max-width:820px;
}

@media(max-width:768px){
  .modal-tagline{
    font-size:.58rem;
    margin-bottom:.75rem;
  }

  .modal-slogan{
    font-size:1.08rem;
    line-height:1.45;
  }

  .modal-highlight-row{
    gap:.45rem;
  }

  .modal-highlight-row span{
    font-size:.56rem;
    line-height:1.35;
    white-space:normal;
  }
}


/* =====================================================
   ARTIST MODAL — CLEANER INFO ORDER
   Tag + genre higher, slogan separated and color-matched
===================================================== */

.modal-desc{
  margin-top:.35rem !important;
}

.modal-tagline{
  margin:0 0 .65rem !important;
}

.modal-highlight-row{
  margin:0 0 1.75rem !important;
}

.modal-highlight-row span{
  padding:.5rem .82rem !important;
}

.modal-slogan{
  margin:0 0 1.65rem !important;
  font-size:clamp(1.18rem,1.9vw,1.55rem) !important;
  line-height:1.42 !important;
  font-weight:900 !important;
  color:var(--red) !important;
  text-shadow:0 0 18px rgba(255,23,68,.34);
}

.modal.hl-blue .modal-slogan{
  color:var(--blue-light) !important;
  text-shadow:0 0 18px rgba(0,191,255,.34);
}

.modal.hl-blue .modal-tagline{
  color:var(--blue-light) !important;
  border-color:rgba(82,207,255,.45) !important;
  background:rgba(0,191,255,.1) !important;
}

.modal-desc > p{
  margin-top:0 !important;
}

@media(max-width:768px){
  .modal-highlight-row{
    margin-bottom:1.35rem !important;
  }

  .modal-slogan{
    margin-bottom:1.35rem !important;
    font-size:1.16rem !important;
  }
}


/* =====================================================
   ARTIST MODAL — CLEAN FINAL VERSION + KEYBOARD NAV
===================================================== */

.modal-tagline,
.modal-highlight-row{
  display:none !important;
}

.modal-desc{
  margin-top:1.2rem !important;
}

.modal-slogan{
  margin:0 0 1.45rem !important;
  font-size:clamp(1.2rem,1.9vw,1.6rem) !important;
  line-height:1.42 !important;
  font-weight:900 !important;
  color:var(--red) !important;
  text-shadow:0 0 18px rgba(255,23,68,.3);
}

.modal.hl-blue .modal-slogan{
  color:var(--blue-light) !important;
  text-shadow:0 0 18px rgba(0,191,255,.34);
}

.modal-desc > p{
  margin:0 !important;
}

.modal-nav-btn{
  position:fixed;
  top:50%;
  transform:translateY(-50%);
  z-index:5200;
  width:54px;
  height:54px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(5,5,5,.68);
  color:white;
  font-size:2.2rem;
  line-height:1;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  backdrop-filter:blur(14px);
  transition:background .25s ease, border-color .25s ease, transform .25s ease, opacity .25s ease;
}

.modal-prev{
  left:2.2rem;
}

.modal-next{
  right:2.2rem;
}

.modal-nav-btn:hover{
  background:var(--red);
  border-color:var(--red);
  transform:translateY(-50%) scale(1.08);
}

.modal.slide-next{
  animation:modalSlideNext .22s ease;
}

.modal.slide-prev{
  animation:modalSlidePrev .22s ease;
}

@keyframes modalSlideNext{
  0%{transform:translateX(0) scale(1);}
  45%{transform:translateX(-24px) scale(.985);opacity:.72;}
  100%{transform:translateX(0) scale(1);opacity:1;}
}

@keyframes modalSlidePrev{
  0%{transform:translateX(0) scale(1);}
  45%{transform:translateX(24px) scale(.985);opacity:.72;}
  100%{transform:translateX(0) scale(1);opacity:1;}
}

@media(max-width:900px){
  .modal-nav-btn{
    width:44px;
    height:44px;
    font-size:1.8rem;
  }

  .modal-prev{
    left:.75rem;
  }

  .modal-next{
    right:.75rem;
  }
}


/* =====================================================
   ARTIST MODAL — FINAL CLEAN LAYOUT
   Mniej pustego miejsca, czytelny slogan, nawigacja klawiaturą
===================================================== */

@media screen and (min-width:769px){

  .modal{
    width:min(1050px,92vw) !important;
    max-height:86vh !important;
    display:grid !important;
    grid-template-columns:380px 1fr !important;
    overflow:hidden !important;
  }

  .modal-album-cover{
    min-height:560px !important;
  }

  .modal-body{
    padding:48px 56px 42px !important;
    justify-content:center !important;
  }

  .modal-badge{
    margin-bottom:8px !important;
  }

  .modal-name{
    margin-bottom:12px !important;
  }

  .modal-genre{
    margin:0 0 14px !important;
  }

  .modal-meta{
    margin:0 0 20px !important;
    gap:12px !important;
  }

  .modal-meta-item{
    padding:10px 16px !important;
  }

  .modal-desc{
    margin:0 0 24px !important;
    max-width:760px !important;
  }

  .modal-tagline,
  .modal-highlight-row{
    display:none !important;
  }

  .modal-slogan{
    margin:0 0 14px !important;
    font-size:clamp(1.28rem,1.75vw,1.65rem) !important;
    line-height:1.35 !important;
    font-weight:900 !important;
    color:var(--red) !important;
    text-shadow:0 0 18px rgba(255,23,68,.28) !important;
  }

  .modal.hl-blue .modal-slogan{
    color:var(--blue-light) !important;
    text-shadow:0 0 18px rgba(0,191,255,.34) !important;
  }

  .modal-desc > p{
    margin:0 !important;
    font-size:1rem !important;
    line-height:1.7 !important;
    color:rgba(255,255,255,.78) !important;
    font-weight:700 !important;
  }

  .modal-actions{
    margin-top:4px !important;
  }

  .modal-close{
    top:18px !important;
    right:18px !important;
  }
}

/* Strzałki modala */
.modal-nav-btn{
  position:fixed;
  top:50%;
  transform:translateY(-50%);
  z-index:5200;
  width:54px;
  height:54px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(5,5,5,.68);
  color:white;
  font-size:2.2rem;
  line-height:1;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  backdrop-filter:blur(14px);
  transition:background .25s ease, border-color .25s ease, transform .25s ease;
}

.modal-prev{left:2.2rem;}
.modal-next{right:2.2rem;}

.modal-nav-btn:hover{
  background:var(--red);
  border-color:var(--red);
  transform:translateY(-50%) scale(1.08);
}

.modal.slide-next{animation:modalSlideNext .22s ease;}
.modal.slide-prev{animation:modalSlidePrev .22s ease;}

@keyframes modalSlideNext{
  0%{transform:translateX(0) scale(1);}
  45%{transform:translateX(-24px) scale(.985);opacity:.72;}
  100%{transform:translateX(0) scale(1);opacity:1;}
}

@keyframes modalSlidePrev{
  0%{transform:translateX(0) scale(1);}
  45%{transform:translateX(24px) scale(.985);opacity:.72;}
  100%{transform:translateX(0) scale(1);opacity:1;}
}

@media(max-width:900px){
  .modal-nav-btn{
    width:44px;
    height:44px;
    font-size:1.8rem;
  }

  .modal-prev{left:.75rem;}
  .modal-next{right:.75rem;}
}


/* =====================================================
   MODAL TYPO FIX — long names + visible colored slogan
===================================================== */

/* dłuższe nazwy nie wypadają poza modal */
.modal-name{
  max-width:100% !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}

/* osobna kontrola dla długich nazw */
.modal.long-name .modal-name{
  font-size:clamp(3rem,4.8vw,5.55rem) !important;
  line-height:.86 !important;
  letter-spacing:.015em !important;
}

.modal.extra-long-name .modal-name{
  font-size:clamp(2.7rem,4.25vw,4.85rem) !important;
  line-height:.88 !important;
  letter-spacing:.01em !important;
}

/* slogan zawsze kolorowy i dobrze widoczny */
.modal .modal-slogan{
  color:var(--red) !important;
  text-shadow:0 0 18px rgba(255,23,68,.35) !important;
  font-weight:900 !important;
}

.modal.hl-blue .modal-slogan{
  color:var(--blue-light) !important;
  text-shadow:0 0 18px rgba(0,191,255,.4) !important;
}

.modal .modal-desc > p{
  color:rgba(255,255,255,.78) !important;
}

@media(max-width:768px){
  .modal.long-name .modal-name{
    font-size:clamp(2.75rem,13vw,4.5rem) !important;
  }

  .modal.extra-long-name .modal-name{
    font-size:clamp(2.35rem,11.5vw,4rem) !important;
  }
}


/* =====================================================
   MODAL FINAL PRO — artist colors, long names, centered arrows
===================================================== */

@media screen and (min-width:769px){
  .modal{
    width:min(1060px,92vw) !important;
    max-height:86vh !important;
    display:grid !important;
    grid-template-columns:380px 1fr !important;
    overflow:hidden !important;
  }

  .modal-album-cover{
    min-height:560px !important;
  }

  .modal-body{
    padding:48px 56px 42px !important;
    justify-content:center !important;
  }

  .modal-badge{
    margin-bottom:8px !important;
  }

  .modal-name{
    max-width:100% !important;
    margin-bottom:12px !important;
    color:var(--artist-accent, var(--red)) !important;
    text-shadow:
      0 0 16px var(--artist-accent-soft, rgba(255,23,68,.45)),
      0 0 42px var(--artist-accent-soft, rgba(255,23,68,.25)) !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
    hyphens:none !important;
  }

  .modal.long-name .modal-name{
    font-size:clamp(3rem,4.8vw,5.55rem) !important;
    line-height:.86 !important;
  }

  .modal.extra-long-name .modal-name{
    font-size:clamp(2.65rem,4.15vw,4.8rem) !important;
    line-height:.88 !important;
  }

  .modal-genre{
    margin:0 0 14px !important;
  }

  .modal-meta{
    margin:0 0 20px !important;
    gap:12px !important;
  }

  .modal-desc{
    margin:0 0 24px !important;
    max-width:760px !important;
  }

  .modal-tagline,
  .modal-highlight-row{
    display:none !important;
  }

  .modal-slogan{
    margin:0 0 14px !important;
    font-size:clamp(1.28rem,1.75vw,1.65rem) !important;
    line-height:1.35 !important;
    font-weight:900 !important;
    color:var(--artist-accent, var(--red)) !important;
    text-shadow:0 0 18px var(--artist-accent-soft, rgba(255,23,68,.28)) !important;
  }

  .modal-desc > p{
    margin:0 !important;
    font-size:1rem !important;
    line-height:1.7 !important;
    color:rgba(255,255,255,.78) !important;
    font-weight:700 !important;
  }

  .modal-actions{
    margin-top:4px !important;
  }
}

.modal-nav-btn{
  position:fixed !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  z-index:5200 !important;

  width:56px !important;
  height:56px !important;
  padding:0 !important;
  border-radius:50% !important;

  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  border:1px solid rgba(255,255,255,.18) !important;
  background:rgba(5,5,5,.68) !important;
  color:white !important;

  font-family:Arial, sans-serif !important;
  font-size:2.2rem !important;
  line-height:0 !important;

  cursor:pointer !important;
  backdrop-filter:blur(14px);
  transition:background .25s ease, border-color .25s ease, transform .25s ease;
}

.modal-prev{left:2.2rem !important;}
.modal-next{right:2.2rem !important;}

.modal-nav-btn:hover{
  background:var(--artist-accent, var(--red)) !important;
  border-color:var(--artist-accent, var(--red)) !important;
  transform:translateY(-50%) scale(1.08) !important;
}

.modal.slide-next{animation:modalSlideNext .22s ease;}
.modal.slide-prev{animation:modalSlidePrev .22s ease;}

@keyframes modalSlideNext{
  0%{transform:translateX(0) scale(1);}
  45%{transform:translateX(-24px) scale(.985);opacity:.72;}
  100%{transform:translateX(0) scale(1);opacity:1;}
}

@keyframes modalSlidePrev{
  0%{transform:translateX(0) scale(1);}
  45%{transform:translateX(24px) scale(.985);opacity:.72;}
  100%{transform:translateX(0) scale(1);opacity:1;}
}

@media(max-width:900px){
  .modal-nav-btn{
    width:46px !important;
    height:46px !important;
    font-size:1.85rem !important;
  }

  .modal-prev{left:.8rem !important;}
  .modal-next{right:.8rem !important;}
}


/* =====================================================
   MODAL SLOGAN COLOR FORCE
   Slogan zawsze używa dokładnie koloru artysty
===================================================== */

.modal .modal-desc .modal-slogan,
.modal .modal-slogan,
.modal-desc .modal-slogan{
  color:var(--artist-accent, var(--red)) !important;
  text-shadow:
    0 0 16px var(--artist-accent-soft, rgba(255,23,68,.35)),
    0 0 36px var(--artist-accent-soft, rgba(255,23,68,.18)) !important;
}

.modal.hl-blue .modal-desc .modal-slogan,
.modal.hl-blue .modal-slogan{
  color:var(--artist-accent, var(--blue-light)) !important;
  text-shadow:
    0 0 16px var(--artist-accent-soft, rgba(0,191,255,.35)),
    0 0 36px var(--artist-accent-soft, rgba(0,191,255,.18)) !important;
}

/* gdyby wcześniejszy CSS wymuszał biały tekst na paragrafach */
.modal-desc .modal-slogan{
  font-weight:900 !important;
  opacity:1 !important;
}


/* =====================================================
   FINAL LANGUAGE / PREVIEW CLEANUP
===================================================== */

.preview-text-hidden{
  display:none !important;
}

.showcase-intro.lineup-preview{
  padding-bottom:3.2rem !important;
}

@media(max-width:768px){
  .showcase-intro.lineup-preview{
    padding-bottom:2.6rem !important;
  }
}


/* =====================================================
   CLICKABLE LINE-UP PREVIEW BADGE + FULL TRANSLATION FIX
===================================================== */

.preview-text-hidden{
  display:none !important;
}

.wrapped-lineup::before{
  content:none !important;
  display:none !important;
}

.preview-jump{
  position:sticky;
  top:70px;
  left:0;
  z-index:25;
  display:inline-flex;
  margin:1rem 0 -3rem 2.5rem;
  padding:.45rem .85rem;
  font-family:'Space Mono', monospace;
  font-size:.62rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:white;
  text-decoration:none;
  background:rgba(5,5,5,.72);
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  backdrop-filter:blur(12px);
  transition:background .2s ease, border-color .2s ease, color .2s ease;
}

.preview-jump:hover{
  background:var(--red);
  border-color:var(--red);
  color:white;
}

.showcase-intro.lineup-preview{
  padding-bottom:3.2rem !important;
}

@media(max-width:768px){
  .preview-jump{
    top:1rem;
    margin:1rem 0 -3rem 1rem;
    font-size:.56rem;
  }

  .showcase-intro.lineup-preview{
    padding-bottom:2.6rem !important;
  }
}


/* =====================================================
   FULL LANGUAGE FIX — ARTIST CARDS + COUNTDOWN
===================================================== */

.artist-overlay .ov-more{
  position:relative;
  z-index:3;
  display:inline-block;
  max-width:100%;
  padding-top:.2rem;
  line-height:1.35;
}

.artist-overlay{
  overflow:hidden;
}

@media(max-width:768px){
  .artist-overlay{
    display:none !important;
  }
}


/* TRANSLATION REPAIR — artist overlay */
.artist-overlay .ov-more{
  line-height:1.35;
}


/* =====================================================
   FINAL MODAL NAME BREAKS
   Ręczne łamanie nazw artystów przez artist.displayName
===================================================== */

.modal-name{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:.12em !important;
}

.modal-name br{
  display:block;
  content:"";
}

.modal-name span{
  display:block;
}

.modal-name{
  white-space:normal !important;
}

/* Gdy displayName zawiera <br>, przeglądarka rozdzieli linie.
   Ten selektor poprawia wizualny odstęp między liniami. */
.modal-name{
  line-height:.86 !important;
}

.modal-name + .modal-genre{
  margin-top:.15rem !important;
}

@media(max-width:768px){
  .modal-name{
    gap:.1em !important;
    line-height:.88 !important;
  }
}


/* Drobny tuning nazw po ręcznym łamaniu */
.modal.long-name .modal-name,
.modal.extra-long-name .modal-name{
  max-width:100% !important;
}

.modal.long-name .modal-name span,
.modal.extra-long-name .modal-name span{
  display:block;
}


/* =====================================================
   SAFETY FIX — mobile language switch and modal arrows
===================================================== */

@media screen and (max-width:768px){
  .lang-switch{
    position:fixed !important;
    top:.8rem !important;
    right:.8rem !important;
    bottom:auto !important;
    z-index:1400 !important;
  }

  .modal-nav-btn{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
  }
}


/* =====================================================
   PL / EN VISIBILITY FIX — desktop + mobile
===================================================== */

/* Desktop: przełącznik jest poza nav, więc ustawiamy go ręcznie obok przycisku */
#language-switch-floating.lang-switch{
  position:fixed !important;
  top:1.05rem !important;
  right:12.7rem !important;
  bottom:auto !important;
  left:auto !important;

  z-index:99999 !important;

  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:.35rem !important;

  width:auto !important;
  height:auto !important;

  padding:.25rem .45rem !important;
  margin:0 !important;

  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  backdrop-filter:none !important;

  color:rgba(255,255,255,.55) !important;
  font-family:'Space Mono', monospace !important;
  font-size:.68rem !important;
  letter-spacing:.14em !important;
  text-transform:uppercase !important;

  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
  transform:none !important;
}

#language-switch-floating .lang-btn{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;

  width:auto !important;
  min-width:auto !important;
  height:auto !important;

  padding:.15rem .08rem !important;
  margin:0 !important;

  border:0 !important;
  background:transparent !important;

  color:rgba(255,255,255,.55) !important;
  font-family:'Space Mono', monospace !important;
  font-size:.68rem !important;
  font-weight:700 !important;
  letter-spacing:.14em !important;
  text-transform:uppercase !important;

  opacity:1 !important;
  visibility:visible !important;
  cursor:pointer !important;
}

#language-switch-floating .lang-btn.active,
#language-switch-floating .lang-btn:hover{
  color:var(--red) !important;
}

#language-switch-floating span{
  color:rgba(255,255,255,.38) !important;
  opacity:1 !important;
}

/* Mobile: zostaje u góry, poza dolnym menu */
@media screen and (max-width:768px){
  #language-switch-floating.lang-switch{
    top:.8rem !important;
    right:.8rem !important;
    z-index:99999 !important;

    padding:.42rem .62rem !important;
    border:1px solid rgba(255,255,255,.18) !important;
    border-radius:999px !important;

    background:rgba(5,5,5,.76) !important;
    backdrop-filter:blur(16px) !important;

    font-size:.62rem !important;
    letter-spacing:.12em !important;
  }

  #language-switch-floating .lang-btn{
    font-size:.62rem !important;
    letter-spacing:.12em !important;
  }
}


.footer-copy p{
    margin:0 !important;
    text-align:center !important;
    line-height:1.6 !important;
    width:100% !important;
}


/* =====================================================
   MOBILE MODAL — hide PL/EN while artist modal is open
   Dzięki temu przełącznik nie nachodzi na X zamykania.
===================================================== */

@media screen and (max-width:768px){
  body.modal-open #language-switch-floating.lang-switch,
  body:has(.modal-backdrop.open) #language-switch-floating.lang-switch{
    display:none !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }
}


/* =====================================================
   FINAL RESPONSIVE + TRANSLATION UI FIXES
===================================================== */

/* Footer center */
.footer-copy{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  gap:8px !important;
  flex:1 1 auto !important;
  width:auto !important;
  max-width:min(760px,52vw) !important;
  margin:0 auto !important;
}

.footer-copy p{
  margin:0 !important;
  text-align:center !important;
  line-height:1.6 !important;
  width:100% !important;
}

/* Desktop language switch — visible and away from menu */
@media screen and (hover:hover) and (pointer:fine) and (min-width:1181px){
  #language-switch-floating.lang-switch{
    position:fixed !important;
    top:1.05rem !important;
    right:12.6rem !important;
    z-index:100000 !important;
    display:flex !important;
    align-items:center !important;
    gap:.35rem !important;
    padding:.18rem .3rem !important;
    background:transparent !important;
    border:0 !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }
}

/* Narrow desktop remains desktop */
@media screen and (hover:hover) and (pointer:fine) and (max-width:1180px){
  nav{
    top:0 !important;
    bottom:auto !important;
    display:flex !important;
    align-items:center !important;
    padding:.72rem .85rem !important;
    gap:.6rem !important;
  }

  .nav-logo,
  .nav-cta{
    display:inline-flex !important;
    flex:0 0 auto !important;
    white-space:nowrap !important;
  }

  .nav-logo{
    font-size:clamp(.82rem,1.8vw,1.08rem) !important;
    letter-spacing:.11em !important;
  }

  nav ul{
    display:flex !important;
    flex:1 1 auto !important;
    min-width:0 !important;
    justify-content:center !important;
    gap:clamp(.42rem,1.1vw,1rem) !important;
    padding:0 .25rem !important;
    margin:0 !important;
  }

  nav ul a{
    font-size:clamp(.42rem,.8vw,.58rem) !important;
    letter-spacing:.07em !important;
    white-space:nowrap !important;
  }

  .nav-cta{
    padding:.36rem .58rem !important;
    font-size:clamp(.42rem,.8vw,.56rem) !important;
    letter-spacing:.07em !important;
  }

  #language-switch-floating.lang-switch{
    position:fixed !important;
    top:4.05rem !important;
    right:.75rem !important;
    z-index:100000 !important;
    display:flex !important;
    align-items:center !important;
    gap:.28rem !important;
    padding:.35rem .55rem !important;
    border:1px solid rgba(255,255,255,.18) !important;
    border-radius:999px !important;
    background:rgba(5,5,5,.78) !important;
    backdrop-filter:blur(14px) !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }

  #language-switch-floating .lang-btn{
    display:inline-flex !important;
    width:auto !important;
    min-width:auto !important;
    height:auto !important;
    padding:.1rem .05rem !important;
    border:0 !important;
    background:transparent !important;
    font-family:'Space Mono', monospace !important;
    font-size:.56rem !important;
    line-height:1 !important;
    letter-spacing:.1em !important;
    color:rgba(255,255,255,.58) !important;
    cursor:pointer !important;
  }

  #language-switch-floating .lang-btn.active,
  #language-switch-floating .lang-btn:hover{
    color:var(--red) !important;
  }

  #language-switch-floating span{
    color:rgba(255,255,255,.42) !important;
  }
}

/* True touch mobile only */
@media screen and (max-width:768px) and (hover:none) and (pointer:coarse){
  #language-switch-floating.lang-switch{
    position:fixed !important;
    top:.8rem !important;
    right:.8rem !important;
    left:auto !important;
    bottom:auto !important;
    z-index:100000 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:.35rem !important;
    padding:.42rem .62rem !important;
    border:1px solid rgba(255,255,255,.18) !important;
    border-radius:999px !important;
    background:rgba(5,5,5,.76) !important;
    backdrop-filter:blur(16px) !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
  }

  body.modal-open #language-switch-floating.lang-switch,
  body:has(.modal-backdrop.open) #language-switch-floating.lang-switch{
    display:none !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }
}

/* Modal: buttons stay visible even for long descriptions */
.modal{
  display:flex !important;
  flex-direction:row !important;
}

.modal-body{
  display:flex !important;
  flex-direction:column !important;
  min-height:0 !important;
}

.modal-desc{
  flex:0 1 auto !important;
}

.modal-actions{
  margin-top:auto !important;
  padding-top:1.25rem !important;
  flex-shrink:0 !important;
}

/* For shorter / resized desktop windows */
@media screen and (hover:hover) and (pointer:fine) and (max-height:760px){
  .modal{
    height:min(650px,92vh) !important;
  }

  .modal-body{
    padding-top:clamp(2rem,9vh,5rem) !important;
  }

  .modal-name{
    font-size:clamp(3.4rem,5.6vw,5.4rem) !important;
  }

  .modal-meta{
    margin:.85rem 0 1rem !important;
  }

  .modal-desc{
    font-size:.95rem !important;
    line-height:1.55 !important;
    max-height:28vh !important;
    overflow-y:auto !important;
    padding-right:.4rem !important;
  }

  .modal-actions{
    padding-top:.9rem !important;
  }
}


/* =====================================================
   WCAG CONTRAST PASS
   Lepsza czytelność tekstów pomocniczych i stopki.
===================================================== */

/* Teksty pomocnicze — jaśniejsze niż wcześniej, ale nadal mniej dominujące niż nagłówki */
.artist-bar-day,
.cd-label,
.ticket-type,
.ticket-feats,
.info-card p,
.modal-genre,
.modal-desc,
.poster-row span,
.section-label{
  color:rgba(255,255,255,.78) !important;
}

/* Menu i linki */
nav ul a{
  color:rgba(255,255,255,.9) !important;
}

nav ul a:hover{
  color:var(--red) !important;
}

/* PL / EN — nieaktywne też ma być czytelne */
#language-switch-floating .lang-btn{
  color:rgba(255,255,255,.72) !important;
}

#language-switch-floating .lang-btn.active,
#language-switch-floating .lang-btn:hover{
  color:#ff4d6d !important;
}

#language-switch-floating span{
  color:rgba(255,255,255,.6) !important;
}

/* Footer — największy problem z kontrastem */
footer p{
  color:rgba(255,255,255,.86) !important;
}

.footer-copy p:first-child{
  color:rgba(255,255,255,.94) !important;
  font-weight:700 !important;
}

.footer-copy p:last-child{
  color:rgba(255,255,255,.78) !important;
}

footer ul a{
  color:rgba(255,255,255,.86) !important;
}

footer ul a:hover{
  color:#fff !important;
}

/* Przyciski na czerwonym tle — biały tekst + wyraźny kontrast */
.btn,
.nav-cta,
.filter-btn.active{
  color:#fff !important;
}

/* Delikatniejsze, ale czytelne opisy w modalu */
.modal-desc{
  color:rgba(255,255,255,.86) !important;
}

.modal-meta-item span{
  color:rgba(255,255,255,.72) !important;
}

/* Bilety — lista korzyści była zbyt szara */
.ticket-feats{
  color:rgba(255,255,255,.82) !important;
}

.ticket-feats li{
  color:rgba(255,255,255,.82) !important;
}

/* Info cards — teksty dłuższe bardziej czytelne */
.info-card p{
  color:rgba(255,255,255,.82) !important;
}

/* Drobne czerwone elementy dostają jaśniejszy wariant, żeby nie ginęły na czerni */
.ov-more,
.section-label{
  color:#ff4d6d !important;
}

/* Poster/program na czerwonym tle */
.schedule .section-label{
  color:rgba(255,255,255,.84) !important;
}

.poster-row em{
  color:#fff !important;
}

/* Swipe hint — czytelniejszy na zdjęciu */
@media screen and (max-width:768px) and (hover:none) and (pointer:coarse){
  .modal::after{
    color:rgba(255,255,255,.86) !important;
    background:rgba(5,5,5,.68) !important;
    border-color:rgba(255,255,255,.22) !important;
  }

  nav ul a{
    color:rgba(255,255,255,.9) !important;
  }

  .cd-label{
    color:rgba(255,255,255,.78) !important;
  }
}


@keyframes swipeHintShow{
  0%{
    opacity:0;
    transform:translateX(-50%) translateY(6px);
  }
  10%{
    opacity:.9;
    transform:translateX(-50%) translateY(0);
  }
  80%{
    opacity:.9;
    transform:translateX(-50%) translateY(0);
  }
  100%{
    opacity:0;
    transform:translateX(-50%) translateY(6px);
    visibility:hidden;
  }
}
