:root{
  --bg:#080808;
  --text:#f0f0f0;
  --muted:rgba(255,255,255,.6);
  --muted-2:rgba(255,255,255,.4);
  --line:rgba(255,255,255,.12);
  --glass:rgba(255,255,255,.04);
  --maxw:1200px;
  --disp:'Oswald',sans-serif;               /* единый дисплейный шрифт: латиница + кириллица одинаково */
  --cyr:'Oswald',sans-serif;
  --body:'Space Grotesk','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth}
body{
  color:var(--text);
  background:var(--bg);
  font-family:var(--body);
  min-height:100vh;
  overflow-x:hidden;
  position:relative;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}

/* ===== PRELOADER ===== */
#preloader{position:fixed;inset:0;background:var(--bg);z-index:10000;display:flex;align-items:center;justify-content:center;transition:opacity .6s ease,visibility .6s ease}
#preloader.hidden{opacity:0;visibility:hidden;pointer-events:none}
.preloader-inner{display:flex;flex-direction:column;align-items:center}
.preloader-logo-wrap{margin-bottom:2rem}
.preloader-logo-img{filter:brightness(0) invert();max-width:220px;max-height:90px;height:auto}
.preloader-bar{background:rgba(255,255,255,.15);width:220px;height:2px;overflow:hidden;position:relative}
.preloader-fill{background:#fff;width:0;height:100%;animation:preload 1.2s cubic-bezier(.4,0,.2,1) forwards}
@keyframes preload{to{width:100%}}

/* ===== NOISE ===== */
.noise{
  position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.04;background-size:200px 200px;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' 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)'/%3E%3C/svg%3E");
}

/* ===== ATMOSPHERIC BACKGROUND ===== */
.bg-container{position:fixed;inset:0;z-index:0;overflow:hidden}
.bg-slide{position:absolute;inset:0;background-position:center;background-size:cover;opacity:0;filter:blur(10px) brightness(.28) saturate(.4);transform:scale(1.08);transition:opacity 2s ease-in-out}
.bg-slide.active{opacity:1}
.bg-overlay{position:absolute;inset:0;background:
  radial-gradient(circle at center,rgba(8,8,8,.4) 0%,rgba(8,8,8,.85) 75%,#080808 100%),
  linear-gradient(to bottom,rgba(8,8,8,.7) 0%,transparent 40%,rgba(8,8,8,.92) 100%)}

/* ===== NAV ===== */
.nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:1.4rem clamp(1.2rem,4vw,3rem);backdrop-filter:blur(12px);background:linear-gradient(180deg,rgba(8,8,8,.85),rgba(8,8,8,.25));border-bottom:1px solid var(--line)}
.nav__logo-img{filter:brightness(0) invert();height:26px;width:auto;transition:opacity .2s}
.nav__logo-img:hover{opacity:.8}
.nav__right{display:flex;align-items:center;gap:clamp(14px,3vw,26px)}
.nav__link{font-family:var(--cyr);text-transform:uppercase;letter-spacing:.12em;font-size:13px;color:var(--muted);transition:color .2s}
.nav__link:hover{color:#fff}
.status-badge{display:inline-flex;align-items:center;gap:.55rem;padding:.4rem .9rem;border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(8px);font-family:var(--body);font-size:.66rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.8);border-radius:99px;white-space:nowrap}
.status-dot{width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 10px #fff;animation:pulse 2s infinite ease-in-out}
@keyframes pulse{0%,100%{transform:scale(.9);opacity:.4}50%{transform:scale(1.3);opacity:1}}

/* ===== HERO ===== */
.hero{position:relative;z-index:10;min-height:90vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;max-width:var(--maxw);margin:0 auto;padding:3rem 1.5rem 4rem}
.launch-tag{font-family:var(--body);font-size:.72rem;font-weight:700;letter-spacing:.35em;text-transform:uppercase;color:var(--muted-2);margin-bottom:1.4rem;animation:fadeUp .8s .2s both}
.brand-logo-hero{margin-bottom:1.6rem;animation:fadeUp .8s .3s both}
.brand-logo-hero img{width:72vw;max-width:520px;height:auto;margin:0 auto;filter:drop-shadow(0 15px 35px rgba(0,0,0,.8)) brightness(0) invert()}
.hero__lineup{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:clamp(2rem,6vw,3.6rem);letter-spacing:.02em;color:#fff;margin-bottom:2rem;animation:fadeUp .8s .45s both}
.hero__lineup i{font-style:normal;font-weight:500;opacity:.45;padding:0 .3em}

.hero__meta{display:flex;justify-content:center;gap:clamp(22px,6vw,60px);margin-bottom:2rem;animation:fadeUp .8s .55s both}
.stat{display:flex;flex-direction:column;align-items:center;gap:2px}
.stat b{font-family:var(--disp);font-weight:700;font-size:clamp(2rem,6vw,3rem);line-height:1;letter-spacing:.02em}
.stat span{font-family:var(--body);text-transform:uppercase;letter-spacing:.16em;color:var(--muted-2);font-size:11px}

/* COUNTDOWN */
.countdown{margin:0 auto 2rem;max-width:520px;width:100%;border:1px solid var(--line);border-radius:14px;padding:18px;background:var(--glass);backdrop-filter:blur(8px);animation:fadeUp .8s .65s both}
.countdown__label{font-family:var(--body);text-transform:uppercase;letter-spacing:.14em;font-size:11px;color:var(--muted-2);margin-bottom:12px}
.countdown__label span{color:var(--text)}
.countdown__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.countdown__grid div{display:flex;flex-direction:column;gap:4px;padding:10px 4px;background:rgba(255,255,255,.03);border-radius:10px}
.countdown__grid b{font-family:var(--disp);font-weight:700;font-size:clamp(1.6rem,6vw,2.2rem);line-height:1;letter-spacing:.02em}
.countdown__grid span{font-size:10px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.1em}

.hero__actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;animation:fadeUp .8s .8s both}
.btn{font-family:var(--body);text-transform:uppercase;letter-spacing:.2em;font-weight:700;font-size:.76rem;padding:1.05rem 2.2rem;transition:all .25s cubic-bezier(.4,0,.2,1);cursor:pointer;display:inline-block;border:1px solid transparent}
.btn--primary{background:#fff;color:#000;border-color:#fff}
.btn--primary:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(255,255,255,.18)}
.btn--ghost{background:rgba(255,255,255,.05);color:#fff;border-color:rgba(255,255,255,.35);backdrop-filter:blur(8px)}
.btn--ghost:hover{border-color:#fff;transform:translateY(-3px)}
.btn--xl{font-size:.92rem;padding:1.3rem 3rem}
/* Пульс-акцент для главной кнопки, чтобы притягивала взгляд */
.btn--pulse{position:relative;animation:ctaGlow 2.6s ease-in-out infinite}
@keyframes ctaGlow{0%,100%{box-shadow:0 0 0 0 rgba(255,255,255,.35)}50%{box-shadow:0 0 0 12px rgba(255,255,255,0)}}
@media (prefers-reduced-motion:reduce){.btn--pulse{animation:none}}

.hero__hint{margin-top:1rem;font-family:var(--body);text-transform:uppercase;letter-spacing:.18em;font-size:.66rem;color:var(--muted-2);animation:fadeUp .8s .9s both}
.hero__hint b{color:#fff;font-weight:600}

/* ===== CTA BAND ===== */
.cta{position:relative;z-index:10;text-align:center;padding:clamp(3.5rem,9vw,6.5rem) 1.5rem;border-top:1px solid var(--line);overflow:hidden}
.cta::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 120% at 50% 0%,rgba(255,255,255,.06),transparent 70%);pointer-events:none}
.cta__eyebrow{position:relative;font-family:var(--body);text-transform:uppercase;letter-spacing:.3em;font-size:.7rem;color:var(--muted-2);margin-bottom:1rem}
.cta__title{position:relative;font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:clamp(2.2rem,8vw,5rem);line-height:.98;letter-spacing:.01em;margin-bottom:1rem}
.cta__title em{font-style:normal;-webkit-text-stroke:1.5px rgba(255,255,255,.55);color:transparent}
.cta__sub{position:relative;font-family:var(--body);color:var(--muted);font-size:clamp(.95rem,2vw,1.1rem);max-width:560px;margin:0 auto 2.2rem;line-height:1.6}
.cta__sub b{color:#fff;font-weight:600}
.cta__actions{position:relative;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}

/* ===== TICKER ===== */
.ticker{position:relative;z-index:10;background:rgba(0,0,0,.55);backdrop-filter:blur(12px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:.9rem 0;overflow:hidden}
.ticker__inner{display:flex;width:max-content;white-space:nowrap;animation:ticker 28s linear infinite}
.ticker__inner span{font-family:var(--disp);font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.75);font-size:1.35rem;padding:0 1.4rem}
.ticker__inner span i{font-style:normal;opacity:.4;padding:0 1rem}
@keyframes ticker{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.ticker__inner{animation:none}}

/* ===== SECTIONS ===== */
section{position:relative;z-index:10}
.dates{max-width:var(--maxw);margin:0 auto;padding:clamp(3.5rem,9vw,7rem) clamp(1.2rem,4vw,3rem)}
.section-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;margin-bottom:2.2rem}
.section-title{font-family:var(--cyr);font-weight:700;font-size:clamp(2rem,7vw,4rem);letter-spacing:.02em;text-transform:uppercase}

.filters{display:flex;flex-wrap:wrap;gap:8px}
.chip{font-family:var(--cyr);text-transform:uppercase;letter-spacing:.08em;font-size:13px;padding:8px 16px;border-radius:999px;border:1px solid var(--line);color:var(--muted);cursor:pointer;background:none;transition:.2s}
.chip:hover{color:#fff}
.chip.is-active{background:#fff;color:#000;border-color:#fff}

/* ===== GRID / CARDS ===== */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:clamp(16px,2.4vw,24px)}
.card{position:relative;background:var(--glass);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;backdrop-filter:blur(6px);opacity:0;transform:translateY(24px);transition:opacity .6s,transform .6s,border-color .3s}
.card.is-in{opacity:1;transform:none}
.card:hover{border-color:rgba(255,255,255,.3)}
.card.is-past{opacity:.4;filter:grayscale(.6)}
.card.is-past.is-in{opacity:.4}

.card__poster{position:relative;aspect-ratio:4/3;overflow:hidden;cursor:zoom-in;background:#000}
.card__poster img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.card:hover .card__poster img{transform:scale(1.05)}
.card__daybadge{position:absolute;top:12px;left:12px;background:rgba(8,8,8,.72);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:10px;padding:8px 12px;text-align:center;line-height:1}
.card__daybadge b{display:block;font-family:var(--disp);font-weight:700;font-size:28px;letter-spacing:.02em}
.card__daybadge span{font-family:var(--body);text-transform:uppercase;font-size:10px;letter-spacing:.14em;color:var(--muted-2)}
.card__status{position:absolute;top:12px;right:12px;font-family:var(--cyr);text-transform:uppercase;font-size:11px;letter-spacing:.1em;padding:5px 11px;border-radius:999px;background:#fff;color:#000}
.card__status.is-past{background:rgba(255,255,255,.15);color:var(--muted)}

.card__body{padding:18px 18px 20px;display:flex;flex-direction:column;gap:6px;flex:1}
.card__city{font-family:var(--cyr);font-weight:700;font-size:22px;text-transform:uppercase;letter-spacing:.01em}
.card__venue{font-family:var(--body);text-transform:uppercase;letter-spacing:.06em;font-size:14px;color:var(--text)}
.card__addr{color:var(--muted);font-size:13px}
.card__time{color:var(--muted);font-size:13px;margin-bottom:14px}
.card__time b{color:#fff}
.card__actions{margin-top:auto;display:flex;gap:8px}
.card__actions .btn{flex:1;text-align:center;padding:12px 10px;font-size:12px;letter-spacing:.14em}
.card__vk{display:inline-flex;align-items:center;justify-content:center;width:46px;flex:0 0 46px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-family:var(--cyr);font-size:12px;transition:.2s}
.card__vk:hover{color:#fff;border-color:#fff}

/* ===== LINEUP ===== */
.lineup{max-width:var(--maxw);margin:0 auto;padding:clamp(3rem,7vw,6rem) clamp(1.2rem,4vw,3rem);text-align:center;border-top:1px solid var(--line)}
.lineup__names{display:flex;flex-direction:column;gap:4px;margin:1.6rem 0 1rem}
.lineup__names span{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:clamp(2.4rem,10vw,6rem);line-height:.98;letter-spacing:.02em;color:#fff}
.lineup__note{font-family:var(--body);text-transform:uppercase;letter-spacing:.14em;color:var(--muted-2);font-size:12px}

/* ===== FOOTER ===== */
.footer{position:relative;z-index:10;border-top:1px solid var(--line);padding:3rem 1.5rem 7rem;text-align:center;background:rgba(0,0,0,.35);backdrop-filter:blur(8px)}
.footer__logo{filter:brightness(0) invert();height:30px;width:auto;margin:0 auto 1.2rem;opacity:.85}
.footer__links{display:flex;justify-content:center;flex-wrap:wrap;gap:20px;font-family:var(--cyr);text-transform:uppercase;letter-spacing:.1em;font-size:13px;margin-bottom:1rem}
.footer__links a{color:var(--muted);transition:.2s}
.footer__links a:hover{color:#fff}
.footer__small{color:var(--muted-2);font-size:11px;letter-spacing:.14em;text-transform:uppercase}

/* ===== STICKY CTA (mobile) ===== */
.sticky-cta{position:fixed;left:16px;right:16px;bottom:16px;z-index:60;display:none;align-items:center;justify-content:space-between;gap:12px;background:#fff;color:#000;padding:16px 22px;border-radius:14px;font-family:var(--body);text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:.76rem;box-shadow:0 12px 34px rgba(0,0,0,.5)}
.sticky-cta b{font-size:20px}
@media (max-width:720px){.sticky-cta{display:flex}}

/* ===== LIGHTBOX ===== */
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.93);display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(6px)}
.lightbox[hidden]{display:none}
.lightbox img{max-width:min(94vw,900px);max-height:88vh;border-radius:10px;box-shadow:0 20px 80px rgba(0,0,0,.7)}
.lightbox__close{position:absolute;top:18px;right:22px;background:none;border:none;color:#fff;font-size:30px;cursor:pointer;line-height:1}

/* ===== ANIMATIONS ===== */
@keyframes fadeUp{0%{opacity:0;transform:translateY(22px)}100%{opacity:1;transform:translateY(0)}}
@media (prefers-reduced-motion:reduce){.hero *{animation:none!important}}

@media (max-width:720px){
  .nav__link{display:none}
  .hero__meta{gap:26px}
  .footer{padding-bottom:6rem}
}

/* ===== ARTIST / SOCIAL LINKS ===== */
.lineup__names .artist{display:flex;flex-direction:column;align-items:center;gap:.7rem;margin-bottom:1.6rem}
.artist__links{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.soc{font-family:var(--cyr);text-transform:uppercase;letter-spacing:.06em;font-size:12px;padding:7px 15px;border-radius:999px;border:1px solid var(--line);color:var(--muted);transition:.2s}
.soc:hover{color:#fff;border-color:#fff;background:rgba(255,255,255,.06)}
.collective{margin:.4rem 0 1.6rem;display:flex;flex-direction:column;align-items:center;gap:.7rem}
.collective__label{font-family:var(--body);text-transform:uppercase;letter-spacing:.2em;font-size:.7rem;color:var(--muted-2)}
