/* ===== RESET ===== */
* { margin:0; padding:0; box-sizing:border-box; }

/* ===== VARIABLES ===== */
:root {
  --bg:#07060c; --bg-2:#140d24; --text:#ece8ff; --muted:#9a93b5;
  --gold:#d9b676; --gold-2:#f4e3bd;
  --font-display:'Cinzel',serif; --font-body:'Montserrat',sans-serif;
  --maxw:1200px;
}

/* ===== BASE ===== */
html { scroll-behavior:smooth; }
body { background:var(--bg); color:var(--text); font-family:var(--font-body); font-weight:300; line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
a { color:inherit; text-decoration:none; }
ul { list-style:none; }

/* ===== HEADER ===== */
.site-header { position:fixed; top:0; left:0; right:0; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:20px 40px; background:linear-gradient(180deg, rgba(20,13,36,.92) 0%, rgba(12,8,22,.45) 55%, transparent 100%); border-bottom:1px solid transparent; transition:background .3s, padding .3s, border-color .3s; }
.site-header.scrolled { background:rgba(9,7,18,.82); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); padding:13px 40px; border-bottom:1px solid rgba(217,182,118,.18); box-shadow:0 10px 40px rgba(0,0,0,.45); }
.logo { font-family:var(--font-display); font-weight:900; font-size:22px; letter-spacing:3px; color:var(--gold-2); }
.nav { display:flex; align-items:center; gap:28px; }
.nav a { font-size:14px; letter-spacing:1px; opacity:.85; transition:opacity .2s,color .2s; }
.nav a:hover { opacity:1; color:var(--gold-2); }

/* ===== BUTTONS ===== */
.btn { display:inline-block; padding:14px 30px; border-radius:100px; font-size:13px; letter-spacing:2px; text-transform:uppercase; font-weight:600; cursor:pointer; transition:transform .2s, box-shadow .2s, border-color .2s, color .2s; }
.btn:hover { transform:translateY(-2px); }
.btn-gold { background:linear-gradient(135deg,var(--gold),var(--gold-2)); color:#2a1d05; box-shadow:0 8px 30px rgba(217,182,118,.35); border:none; }
.btn-ghost { border:1px solid rgba(236,232,255,.4); padding:11px 22px; background:transparent; color:var(--text); }
.btn-ghost:hover { border-color:var(--gold); color:var(--gold-2); }
.link-btn { background:none; border:none; color:var(--gold-2); cursor:pointer; font:inherit; text-decoration:underline; text-underline-offset:3px; opacity:.85; }
.link-btn:hover { opacity:1; }

/* ===== HERO (real festival photo + dark overlay + glow) ===== */
.hero { position:relative; min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:0 20px;
  background:
    linear-gradient(180deg, rgba(7,6,12,.55), rgba(7,6,12,.85)),
    radial-gradient(70% 60% at 50% 28%, rgba(120,70,200,.45), transparent 70%),
    url('../img/hero.png') center/cover no-repeat,
    var(--bg);
  overflow:hidden; }
.hero__inner { max-width:900px; position:relative; z-index:1; }
.hero__eyebrow { color:var(--gold); letter-spacing:5px; font-size:13px; font-weight:500; margin-bottom:24px; }
.hero__title { font-family:var(--font-display); font-weight:900; font-size:clamp(40px,8vw,92px); line-height:1.05; letter-spacing:1px;
  background:linear-gradient(180deg,var(--gold-2),var(--gold)); -webkit-background-clip:text; background-clip:text; color:transparent; text-shadow:0 0 60px rgba(217,182,118,.15); }
.hero__sub { margin:26px auto 34px; max-width:560px; color:#cfc8e8; font-size:18px; }
.hero__scroll { position:absolute; bottom:28px; left:50%; transform:translateX(-50%); color:var(--muted); font-size:12px; letter-spacing:3px; text-transform:uppercase; animation:bob 2s ease-in-out infinite; }
@keyframes bob { 0%,100%{ transform:translate(-50%,0);} 50%{ transform:translate(-50%,8px);} }

/* ===== REVEAL ANIMATION ===== */
[data-reveal] { opacity:0; transform:translateY(40px); transition:opacity .8s ease, transform .8s ease; transition-delay:var(--delay,0s); }
[data-reveal].is-visible { opacity:1; transform:translateY(0); }

/* ===== COUNTDOWN ===== */
.countdown { padding:70px 20px; text-align:center; background:linear-gradient(180deg,var(--bg),#0c0a18); }
.countdown__label { color:var(--gold); letter-spacing:4px; text-transform:uppercase; font-size:14px; margin-bottom:28px; }
.countdown__grid { display:flex; flex-wrap:wrap; justify-content:center; gap:18px; }
.cd-box { min-width:120px; padding:22px 10px; border:1px solid rgba(217,182,118,.25); border-radius:14px; background:linear-gradient(180deg, rgba(255,255,255,.03), transparent); }
.cd-num { display:block; font-family:var(--font-display); font-weight:900; font-size:clamp(36px,6vw,64px); line-height:1; color:var(--gold-2); font-variant-numeric:tabular-nums; }
.cd-unit { display:block; margin-top:10px; color:var(--muted); font-size:12px; letter-spacing:2px; text-transform:uppercase; }

/* ===== SECTIONS ===== */
.section { padding:120px 20px; }
.section__inner { max-width:var(--maxw); margin:0 auto; text-align:center; }
.eyebrow { color:var(--gold); letter-spacing:4px; font-size:13px; text-transform:uppercase; margin-bottom:18px; }
.section__title { font-family:var(--font-display); font-weight:700; font-size:clamp(32px,5vw,60px); margin-bottom:24px; }
.section__text { max-width:620px; margin:0 auto; color:var(--muted); font-size:18px; }
.section--story { position:relative; overflow:hidden; background:linear-gradient(180deg,var(--bg),#0c0a18); }
.section--story::before, .section--story::after { content:''; position:absolute; border-radius:50%; filter:blur(90px); z-index:0; pointer-events:none; }
.section--story::before { width:540px; height:540px; top:-140px; left:-90px; opacity:.55;
  background:radial-gradient(circle, rgba(120,70,200,.6), transparent 70%);
  animation:storyDrift1 14s ease-in-out infinite; }
.section--story::after { width:480px; height:480px; bottom:-160px; right:-70px; opacity:.4;
  background:radial-gradient(circle, rgba(217,182,118,.45), transparent 70%);
  animation:storyDrift2 17s ease-in-out infinite; }
.section--story .section__inner { position:relative; z-index:1; }
.section--story .section__title { text-shadow:0 0 50px rgba(217,182,118,.18); }
@keyframes storyDrift1 { 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(70px,40px) scale(1.18); } }
@keyframes storyDrift2 { 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(-55px,-35px) scale(1.12); } }
/* floating light motes (kingdom of light) */
.story-fx { position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.mote { position:absolute; bottom:-12px; border-radius:50%;
  background:radial-gradient(circle, rgba(244,227,189,.95), rgba(217,182,118,.25) 60%, transparent 72%);
  box-shadow:0 0 10px rgba(217,182,118,.55); animation:moteRise linear infinite; }
@keyframes moteRise {
  0% { transform:translateY(0) scale(1); opacity:0; }
  12% { opacity:var(--peak,.8); }
  88% { opacity:var(--peak,.8); }
  100% { transform:translateY(-600px) scale(.35); opacity:0; }
}
/* nations marquee (people from every corner of the planet) */
.world-strip__cap { margin:40px 0 16px; font-size:12px; letter-spacing:3px; text-transform:uppercase; color:var(--gold); opacity:.9; }
.world-strip { position:relative; max-width:780px; margin:0 auto; overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent);
  mask-image:linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent); }
.world-strip__track { display:flex; width:max-content; animation:worldScroll 42s linear infinite; }
.world-strip:hover .world-strip__track { animation-play-state:paused; }
.world-strip__track span { position:relative; white-space:nowrap; padding:0 26px; font-size:13px; letter-spacing:2px; text-transform:uppercase; color:#b3abd0; }
.world-strip__track span::after { content:'✦'; position:absolute; right:-5px; top:50%; transform:translateY(-50%); font-size:7px; color:var(--gold); }
@keyframes worldScroll { from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .section--story::before, .section--story::after, .world-strip__track { animation:none; }
  .mote { display:none; }
}
.section--exp { background:#0c0a18; }
.section--tickets { background:linear-gradient(180deg,#0c0a18,var(--bg)); }
.section--contact { background:linear-gradient(180deg,#0c0a18,var(--bg)); }

/* ===== EXPERIENCE CARDS ===== */
.cards { margin-top:60px; display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.card { cursor:pointer; padding:44px 28px; border:1px solid rgba(255,255,255,.08); border-radius:18px; background:linear-gradient(180deg, rgba(255,255,255,.03), transparent); transition:transform .3s, border-color .3s, box-shadow .3s; }
.card:hover { transform:translateY(-8px); border-color:rgba(217,182,118,.5); box-shadow:0 20px 50px rgba(0,0,0,.4); }
.card__icon { font-size:40px; margin-bottom:18px; }
.card__title { font-family:var(--font-display); font-size:22px; margin-bottom:12px; color:var(--gold-2); }
.card__text { color:var(--muted); font-size:15px; }
.card__more { display:inline-block; margin-top:16px; color:var(--gold-2); font-size:13px; letter-spacing:1px; opacity:.85; }
.card:hover .card__more { opacity:1; }

/* ===== LINE-UP (photo + name overlay) ===== */
.lineup { margin-top:60px; display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.act { cursor:pointer; }
.act__poster { position:relative; aspect-ratio:3/4; border-radius:16px; overflow:hidden; transition:transform .35s, box-shadow .35s; background:#140d24 center/cover; }
.act:hover .act__poster { transform:translateY(-6px); box-shadow:0 22px 55px rgba(120,70,200,.45); }
.act__day { position:absolute; top:12px; left:12px; z-index:2; font-size:11px; letter-spacing:1px; text-transform:uppercase; color:var(--gold-2); background:rgba(7,6,12,.55); border:1px solid rgba(217,182,118,.4); padding:5px 10px; border-radius:100px; backdrop-filter:blur(4px); }
.act__meta { position:absolute; left:0; right:0; bottom:0; z-index:2; padding:44px 16px 16px; text-align:left; background:linear-gradient(to top, rgba(7,6,12,.96), rgba(7,6,12,.45) 55%, transparent); }
.act__meta h3 { font-family:var(--font-display); font-size:19px; line-height:1.12; }
.act__meta span { color:var(--gold); font-size:12px; letter-spacing:1px; }
.act__fav { position:absolute; top:12px; right:12px; z-index:3; width:34px; height:34px; border-radius:50%; border:1px solid rgba(255,255,255,.25); background:rgba(7,6,12,.5); color:#fff; font-size:15px; cursor:pointer; backdrop-filter:blur(4px); display:flex; align-items:center; justify-content:center; transition:transform .2s, color .2s, border-color .2s, background .2s; }
.act__fav:hover { transform:scale(1.12); border-color:var(--gold); }
.act__fav.is-fav { color:#ff5b7f; border-color:#ff5b7f; background:rgba(255,91,127,.14); }

/* ===== MUSIC (label / playlists) — on-theme ===== */
.section--music { background:#0c0a18; }
.section--music .section__inner { text-align:left; }
.music__head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.music__title { margin-bottom:10px; }
.music__sub { color:var(--muted); font-size:16px; max-width:560px; }
.music__more { white-space:nowrap; flex-shrink:0; align-self:center; }
.music__grid { margin-top:44px; display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.pl-card { cursor:pointer; }
.pl-card__img { position:relative; aspect-ratio:4/5; border-radius:16px; overflow:hidden; background:#140d24 center/cover; transition:transform .35s, box-shadow .35s; }
.pl-card:hover .pl-card__img { transform:translateY(-6px); box-shadow:0 22px 55px rgba(120,70,200,.45); }
.pl-card__img::after { content:''; position:absolute; inset:0; background:linear-gradient(to top, rgba(7,6,12,.94), rgba(7,6,12,.25) 55%, transparent); }
.pl-card__tag { position:absolute; top:12px; left:12px; z-index:2; color:var(--gold-2); background:rgba(7,6,12,.55); border:1px solid rgba(217,182,118,.4); font-size:10px; letter-spacing:1.5px; text-transform:uppercase; padding:5px 11px; border-radius:100px; backdrop-filter:blur(4px); }
.pl-card__title { position:absolute; left:16px; right:16px; bottom:16px; z-index:2; font-family:var(--font-display); font-size:20px; line-height:1.15; }
.pl-card__img.m1 { background-image:url('../img/hero.png'); }
.pl-card__img.m2 { background-image:url('../img/c1.jpg'); }
.pl-card__img.m3 { background-image:url('../img/c4.jpg'); }
.pl-card__img.m4 { background-image:url('../img/c5.jpg'); }
@media (max-width:900px){ .music__grid { grid-template-columns:1fr 1fr; } }
@media (max-width:680px){ .music__head { flex-direction:column; } }
/* real festival photos (local, from img/) */
.a1 { background-image:url('../img/c1.jpg'); }
.a2 { background-image:url('../img/c2.jpg'); }
.a3 { background-image:url('../img/c3.jpg'); }
.a4 { background-image:url('../img/c6.jpg'); }
.a5 { background-image:url('../img/c5.jpg'); }
.a6 { background-image:url('../img/hero.png'); }
.a7 { background-image:url('../img/c2.jpg'); }
.a8 { background-image:url('../img/c6.jpg'); }
.a9 { background-image:url('../img/c3.jpg'); }

/* ===== TICKETS ===== */
.tiers { margin-top:60px; display:grid; grid-template-columns:repeat(3,1fr); gap:26px; align-items:stretch; }
.tier { position:relative; padding:40px 28px; border:1px solid rgba(255,255,255,.1); border-radius:18px; display:flex; flex-direction:column; gap:14px; background:linear-gradient(180deg, rgba(255,255,255,.02), transparent); transition:transform .35s, border-color .35s, background .35s, box-shadow .35s; }
.tier:hover { transform:translateY(-8px); border-color:var(--gold); background:linear-gradient(180deg, rgba(217,182,118,.1), transparent); box-shadow:0 24px 60px rgba(0,0,0,.45); }
/* подсветка следует за курсором: золотая кнопка загорается только на наведённой карточке */
.tier:hover .btn { background:linear-gradient(135deg,var(--gold),var(--gold-2)); color:#2a1d05; border-color:transparent; box-shadow:0 8px 30px rgba(217,182,118,.4); }
.tier__badge { position:absolute; top:-13px; left:50%; transform:translateX(-50%); background:linear-gradient(135deg,var(--gold),var(--gold-2)); color:#2a1d05; font-size:11px; letter-spacing:1px; text-transform:uppercase; font-weight:700; padding:5px 14px; border-radius:100px; }
.tier__name { font-family:var(--font-display); font-size:22px; }
.tier__price { font-size:40px; font-weight:700; color:var(--gold-2); }
.tier__list { color:var(--muted); font-size:14px; display:flex; flex-direction:column; gap:8px; margin:6px 0 18px; }
.tier .btn { margin-top:auto; transition:transform .2s, background .25s, color .25s, border-color .25s, box-shadow .25s; }

/* ===== CONTACT ===== */
.contact { margin-top:50px; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; align-items:start; }
.contact__item { padding:28px; border:1px solid rgba(255,255,255,.08); border-radius:16px; text-align:left; transition:border-color .3s; }
.contact__item--map:hover { border-color:rgba(217,182,118,.4); }
.contact__map { max-height:0; opacity:0; overflow:hidden; border-radius:12px; transition:max-height .45s ease, opacity .3s ease, margin-top .45s ease; }
.contact__item--map:hover .contact__map, .contact__item--map:focus-within .contact__map { max-height:240px; opacity:1; margin-top:14px; }
.contact__map iframe { width:100%; height:200px; border:0; border-radius:12px; display:block; filter:grayscale(.25) contrast(1.05); }
.contact__label { display:block; color:var(--gold); font-size:12px; letter-spacing:2px; text-transform:uppercase; margin-bottom:10px; }
.contact__item p { color:var(--text); font-size:15px; line-height:1.6; }
.contact__item a { color:var(--gold-2); }

/* ===== FOOTER ===== */
.site-footer { padding:60px 20px; text-align:center; color:var(--muted); font-size:13px; border-top:1px solid rgba(255,255,255,.06); }
.footer__logo { font-family:var(--font-display); font-size:24px; letter-spacing:4px; color:var(--gold-2); margin-bottom:10px; }
.footer__legal { font-size:12px; letter-spacing:1px; }

/* ===== MOBILE MENU ===== */
.menu-toggle { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px; z-index:120; }
.menu-toggle span { width:26px; height:2px; background:var(--text); transition:.3s; }
.menu-toggle.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.menu-toggle.is-open span:nth-child(2){ opacity:0; }
.menu-toggle.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ===== MODALS ===== */
.modal { position:fixed; inset:0; z-index:200; display:none; align-items:center; justify-content:center; padding:20px; }
.modal.open { display:flex; }
.modal__overlay { position:absolute; inset:0; background:rgba(3,2,8,.78); backdrop-filter:blur(6px); }
.modal__box { position:relative; width:100%; max-width:440px; max-height:90vh; overflow:auto; background:#0e0b1a; border:1px solid rgba(217,182,118,.25); border-radius:20px; padding:34px 30px; box-shadow:0 30px 80px rgba(0,0,0,.6); animation:pop .25s ease; }
.modal__box--wide { max-width:560px; }
@keyframes pop { from{ transform:translateY(20px) scale(.98); opacity:0; } to{ transform:none; opacity:1; } }
.modal__close { position:absolute; top:12px; right:16px; background:none; border:none; color:var(--muted); font-size:30px; line-height:1; cursor:pointer; z-index:2; }
.modal__close:hover { color:var(--gold-2); }
.modal__title { font-family:var(--font-display); font-size:26px; margin-bottom:18px; }

/* checkout */
.checkout__summary { display:flex; justify-content:space-between; align-items:center; padding:14px 16px; border:1px solid rgba(255,255,255,.1); border-radius:12px; margin-bottom:20px; }
.checkout__summary strong { color:var(--gold-2); font-size:20px; }
#payForm label, #authForm label, #settingsForm label, #idForm label { display:block; font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--muted); margin-bottom:14px; }
#payForm input, #authForm input, #settingsForm input, #idForm input { width:100%; margin-top:6px; padding:12px 14px; background:#080612; border:1px solid rgba(255,255,255,.14); border-radius:10px; color:var(--text); font-family:var(--font-body); font-size:15px; transition:border-color .2s; }
#payForm input:focus, #authForm input:focus, #settingsForm input:focus, #idForm input:focus { outline:none; border-color:var(--gold); }
.id-form { margin-top:20px; text-align:left; border-top:1px solid rgba(255,255,255,.1); padding-top:18px; }
.id-form__hint { font-size:12px; color:var(--muted); margin-bottom:14px; text-align:center; letter-spacing:.5px; }
.id-form .row { display:flex; gap:14px; }
.id-form .row label { flex:1; }
.id-form .btn-gold { width:100%; border:none; margin-top:4px; }
#settingsForm .btn-gold { width:100%; border:none; margin-top:4px; }
#settingsForm .account-back { margin-bottom:16px; }
#payForm .row { display:flex; gap:14px; }
#payForm .row label { flex:1; }
.form__error { color:#ff6b6b; font-size:13px; min-height:18px; margin:2px 0 8px; }
#payForm .btn-gold, #authForm .btn-gold { width:100%; border:none; }
.checkout__note { text-align:center; color:var(--muted); font-size:12px; margin-top:14px; }
.stripe-note { display:none; text-align:center; color:var(--muted); font-size:13px; margin:2px 0 14px; }
#payForm.stripe-mode label { display:none; }
#payForm.stripe-mode .stripe-note { display:block; }
.checkout-success { text-align:center; }
.success__check { width:64px; height:64px; margin:4px auto 18px; border-radius:50%; background:linear-gradient(135deg,var(--gold),var(--gold-2)); color:#2a1d05; font-size:34px; display:flex; align-items:center; justify-content:center; }
.checkout-success p { color:var(--muted); margin-bottom:22px; }

/* crypto */
.pay-tabs { display:flex; gap:10px; margin-bottom:20px; }
.pay-tab { flex:1; padding:11px; border:1px solid rgba(255,255,255,.14); background:#080612; color:var(--muted); border-radius:10px; cursor:pointer; font-family:var(--font-body); font-size:14px; transition:.2s; }
.pay-tab.is-active { border-color:var(--gold); color:var(--gold-2); }
.crypto { text-align:center; }
.crypto__coins { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-bottom:18px; }
.coin { padding:8px 14px; border:1px solid rgba(255,255,255,.14); background:#080612; color:var(--muted); border-radius:100px; cursor:pointer; font-size:13px; transition:.2s; }
.coin.is-active { border-color:var(--gold); color:var(--gold-2); }
.crypto__qr { width:220px; height:220px; border-radius:14px; background:#fff; }
.crypto__amount { margin:16px 0 4px; color:var(--muted); }
.crypto__amount strong { color:var(--gold-2); font-size:20px; }
.crypto__fiat { margin:0 0 14px; color:var(--muted); font-size:13px; }
.crypto__disc { display:inline-block; margin-left:6px; color:#2a1d05; background:linear-gradient(135deg,var(--gold),var(--gold-2)); font-size:10px; font-weight:700; letter-spacing:.5px; padding:2px 8px; border-radius:100px; }
.crypto__status { min-height:18px; font-size:13px; margin:0 0 10px; color:var(--muted); }
.crypto__addr { display:flex; align-items:center; gap:8px; background:#080612; border:1px solid rgba(255,255,255,.14); border-radius:10px; padding:10px 12px; margin-bottom:18px; }
.crypto__addr code { flex:1; font-size:12px; color:var(--text); word-break:break-all; text-align:left; font-family:monospace; }
.crypto__email-l { display:block; text-align:left; font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--muted); margin:0 0 18px; }
.crypto__email-l input { width:100%; margin-top:6px; padding:12px 14px; background:#080612; border:1px solid rgba(255,255,255,.14); border-radius:10px; color:var(--text); font-family:var(--font-body); font-size:15px; transition:border-color .2s; }
.crypto__email-l input:focus { outline:none; border-color:var(--gold); }
.btn-copy { background:none; border:1px solid rgba(217,182,118,.5); color:var(--gold-2); border-radius:8px; padding:6px 12px; font-size:12px; cursor:pointer; white-space:nowrap; }
.btn-copy:hover { background:rgba(217,182,118,.1); }
.crypto .btn-gold { width:100%; border:none; }

/* article / legal */
.article__photo { position:relative; width:100%; aspect-ratio:16/9; border-radius:14px; background:#140d24 center/cover; margin-bottom:20px; overflow:hidden; }
.article__name { font-family:var(--font-display); font-size:30px; margin:4px 0 16px; }
.article__body p { color:var(--muted); font-size:15px; margin-bottom:14px; line-height:1.7; }
.article__actions:not(:empty) { margin-top:22px; }
.article__actions .btn { width:100%; border:none; }

/* account */
.auth-tabs { display:flex; gap:10px; margin-bottom:18px; }
.auth-tab { flex:1; padding:10px; border:1px solid rgba(255,255,255,.14); background:#080612; color:var(--muted); border-radius:10px; cursor:pointer; font-family:var(--font-body); font-size:14px; transition:.2s; }
.auth-tab.is-active { border-color:var(--gold); color:var(--gold-2); }
.dash__head { display:flex; align-items:center; gap:14px; margin-bottom:16px; }
.dash__avatar { width:52px; height:52px; flex-shrink:0; border:none; border-radius:50%; position:relative; cursor:pointer; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-size:19px; font-weight:700; color:#2a1d05; background:linear-gradient(135deg,var(--gold),var(--gold-2)); background-size:cover; background-position:center; box-shadow:0 6px 20px rgba(217,182,118,.35); transition:transform .2s; }
.dash__avatar:hover { transform:scale(1.06); }
.dash__avatar::after { content:'📷'; position:absolute; right:-3px; bottom:-3px; width:22px; height:22px; border-radius:50%; background:#0e0b1a; border:1px solid rgba(217,182,118,.5); font-size:10px; display:flex; align-items:center; justify-content:center; }
.dash__gear { margin-left:auto; align-self:flex-start; width:38px; height:38px; flex-shrink:0; border-radius:50%; border:1px solid rgba(236,232,255,.2); background:rgba(236,232,255,.04); color:var(--muted); font-size:16px; cursor:pointer; transition:color .2s, border-color .2s, transform .3s; }
.dash__gear:hover { color:var(--gold-2); border-color:var(--gold); transform:rotate(40deg); }
.dash__name { font-family:var(--font-display); font-size:22px; line-height:1.1; }
.dash__email { color:var(--muted); font-size:13px; margin-top:3px; }
.dash__meta { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:22px; }
.dash__status { font-size:11px; letter-spacing:1.5px; text-transform:uppercase; font-weight:700; color:#2a1d05; background:linear-gradient(135deg,var(--gold),var(--gold-2)); padding:5px 12px; border-radius:100px; }
.dash__since { font-size:12px; color:var(--muted); letter-spacing:.5px; }
.dash__subrow { display:flex; align-items:baseline; justify-content:space-between; margin-bottom:12px; }
.dash__sub { font-family:var(--font-display); font-size:18px; }
.dash__total { font-size:13px; color:var(--gold-2); font-weight:700; }
.dash__stats { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:18px; }
.dash__stat { padding:14px 6px; border:1px solid rgba(217,182,118,.22); border-radius:12px; background:linear-gradient(180deg, rgba(217,182,118,.05), transparent); text-align:center; }
.dash__stat strong { display:block; font-family:var(--font-display); font-size:22px; color:var(--gold-2); line-height:1; }
.dash__stat span { display:block; margin-top:6px; font-size:9px; letter-spacing:1px; text-transform:uppercase; color:var(--muted); }
.dash__next { display:flex; align-items:center; gap:12px; padding:14px 16px; margin-bottom:22px; border:1px solid rgba(217,182,118,.3); border-radius:14px; background:linear-gradient(135deg, rgba(120,70,200,.2), rgba(217,182,118,.06)); }
.dash__next .nx-ico { font-size:22px; }
.dash__next .nx-txt { font-size:12px; letter-spacing:.5px; text-transform:uppercase; color:var(--muted); line-height:1.5; }
.dash__next .nx-txt strong { display:block; font-family:var(--font-display); font-size:16px; letter-spacing:0; text-transform:none; color:var(--text); }
.dash__next .nx-days { margin-left:auto; font-family:var(--font-display); color:var(--gold-2); font-size:30px; line-height:1; text-align:center; }
.dash__next .nx-days small { display:block; font-family:var(--font-body); font-size:9px; letter-spacing:1px; text-transform:uppercase; color:var(--muted); margin-top:2px; }
.dash__browse { width:100%; margin-bottom:26px; }
.dash__sub--fav { margin-bottom:12px; }
.dash__favs { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:26px; }
.fav-chip { display:flex; align-items:center; gap:9px; padding:5px 14px 5px 5px; border:1px solid rgba(217,182,118,.25); border-radius:100px; background:rgba(255,255,255,.03); color:var(--text); font-size:13px; cursor:pointer; transition:border-color .2s, background .2s; }
.fav-chip:hover { border-color:var(--gold); background:rgba(217,182,118,.08); }
.fav-chip__img { width:30px; height:30px; border-radius:50%; background:#140d24 center/cover; flex-shrink:0; }
.dash__hint { color:var(--muted); font-size:13px; }
.dash__tickets { display:flex; flex-direction:column; gap:10px; margin-bottom:22px; }
.dash__tickets li.ticket { display:flex; align-items:center; gap:10px; padding:12px 14px; border:1px solid rgba(217,182,118,.25); border-radius:10px; transition:border-color .2s, background .2s; }
.dash__tickets li.ticket:hover { border-color:var(--gold); background:rgba(217,182,118,.06); }
.ticket__info { flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; cursor:pointer; }
.ticket__tier { font-size:14px; font-weight:600; }
.ticket__meta { color:var(--muted); font-style:normal; font-size:12px; }
.ticket__price { color:var(--gold-2); font-weight:700; font-size:14px; white-space:nowrap; }
.ticket__remove { background:none; border:none; color:var(--muted); font-size:20px; line-height:1; cursor:pointer; padding:0 4px; transition:color .2s; }
.ticket__remove:hover { color:#ff6b6b; }
.dash__tickets li.empty { justify-content:center; text-align:center; color:var(--muted); border:1px dashed rgba(255,255,255,.14); border-radius:10px; padding:16px; font-size:14px; }
#dashView .btn-ghost { width:100%; }

/* e-ticket pass */
.ticket-pass { text-align:center; max-width:380px; }
.pass__top { display:flex; flex-direction:column; gap:6px; margin-bottom:18px; }
.pass__brand { font-family:var(--font-display); letter-spacing:3px; color:var(--gold-2); font-size:16px; }
.pass__tier { font-size:13px; letter-spacing:1px; text-transform:uppercase; color:var(--muted); }
.pass__qr { width:200px; height:200px; border-radius:14px; background:#fff; padding:8px; }
.pass__rows { display:grid; grid-template-columns:1fr 1fr; gap:12px 16px; margin:20px 0 14px; text-align:left; }
.pass__rows > div { display:flex; flex-direction:column; gap:2px; }
.pass__rows span { font-size:10px; letter-spacing:1px; text-transform:uppercase; color:var(--muted); }
.pass__rows strong { font-size:14px; color:var(--text); word-break:break-word; }
.pass__code { font-family:monospace; letter-spacing:2px; color:var(--gold-2); font-size:14px; border-top:1px dashed rgba(217,182,118,.3); padding-top:14px; }
.co-note { text-align:center; font-size:12px; color:var(--muted); margin-top:14px; }

/* ===== ACCOUNT PAGE (#account route) ===== */
.account-page { display:none; position:relative; min-height:100vh; padding:130px 20px 90px;
  background:
    radial-gradient(60% 50% at 50% 0%, rgba(120,70,200,.28), transparent 70%),
    linear-gradient(180deg, var(--bg), #0c0a18); }
body.account-mode .account-page { display:block; }
body.account-mode .hero,
body.account-mode .countdown,
body.account-mode .section,
body.account-mode .site-footer { display:none; }
.account-page__inner { max-width:520px; margin:0 auto; }
.account-back { display:inline-block; margin-bottom:20px; color:var(--muted); font-size:13px; letter-spacing:1px; transition:color .2s; }
.account-back:hover { color:var(--gold-2); }
.account-card { background:#0e0b1a; border:1px solid rgba(217,182,118,.25); border-radius:20px; padding:36px 32px; box-shadow:0 30px 80px rgba(0,0,0,.45); animation:pop .3s ease; }

/* ===== LANGUAGE SELECT (custom dropdown) ===== */
.lang-select { position:relative; }
.lang-select__btn { display:inline-flex; align-items:center; gap:8px;
  background-color:rgba(236,232,255,.04); color:var(--text);
  border:1px solid rgba(236,232,255,.28); border-radius:100px;
  padding:8px 14px; font-family:var(--font-body); font-size:12px; font-weight:500;
  letter-spacing:1.5px; text-transform:uppercase; cursor:pointer;
  transition:border-color .2s, color .2s, background-color .2s; }
.lang-select__btn:hover, .lang-select.open .lang-select__btn { border-color:var(--gold); color:var(--gold-2); background-color:rgba(217,182,118,.08); }
.lang-select__btn:focus-visible { outline:none; border-color:var(--gold); }
.lang-select__caret { transition:transform .25s; }
.lang-select.open .lang-select__caret { transform:rotate(180deg); }
.lang-select__menu { position:absolute; top:calc(100% + 10px); right:0; min-width:178px;
  background:linear-gradient(180deg, rgba(28,18,48,.98), rgba(12,9,24,.98));
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(217,182,118,.38); border-radius:14px; padding:7px;
  box-shadow:0 24px 60px rgba(0,0,0,.6), 0 0 38px rgba(120,70,200,.25);
  opacity:0; visibility:hidden; transform:translateY(-8px) scale(.98); transform-origin:top right;
  transition:opacity .2s, transform .2s, visibility .2s; z-index:120; }
.lang-select.open .lang-select__menu { opacity:1; visibility:visible; transform:translateY(0) scale(1); }
.lang-select__menu li { display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:10px 14px; border-radius:10px; font-size:13px; font-weight:700; letter-spacing:1px;
  color:var(--text); cursor:pointer; transition:background .15s, color .15s, transform .15s; }
.lang-select__menu li span { font-weight:400; letter-spacing:0; text-transform:none; color:#a89fc6; font-size:12px; transition:color .15s; }
.lang-select__menu li:hover { background:rgba(217,182,118,.16); color:var(--gold-2); transform:translateX(2px); }
.lang-select__menu li:hover span { color:var(--gold); }
.lang-select__menu li.is-active { background:linear-gradient(135deg,var(--gold),var(--gold-2)); color:#2a1d05; box-shadow:0 4px 16px rgba(217,182,118,.3); }
.lang-select__menu li.is-active span { color:rgba(42,29,5,.72); }

/* ===== DATES & VENUES ===== */
.section--dates { background:#0c0a18; }
.dates { margin-top:56px; display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.date-card { position:relative; overflow:hidden; min-height:260px; padding:26px 22px; cursor:pointer;
  display:flex; flex-direction:column; justify-content:flex-end; text-align:left;
  border:1px solid rgba(255,255,255,.1); border-radius:16px; background:#140d24;
  transition:transform .5s cubic-bezier(.2,.7,.2,1), box-shadow .5s, border-color .5s; }
.date-card::before { content:''; position:absolute; inset:0; z-index:0;
  background-size:cover; background-position:center; transform:scale(1.05);
  transition:transform .9s ease; }
.date-card::after { content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(7,6,12,.2) 0%, rgba(7,6,12,.55) 45%, rgba(7,6,12,.95) 100%);
  transition:background .5s; }
.date-card > * { position:relative; z-index:2; }
.date-card:hover { transform:translateY(-10px); border-color:rgba(217,182,118,.6);
  box-shadow:0 26px 60px rgba(120,70,200,.45); }
.date-card:hover::before { transform:scale(1.15); }
.date-card:hover::after { background:linear-gradient(180deg, rgba(7,6,12,.08) 0%, rgba(70,35,120,.4) 45%, rgba(7,6,12,.92) 100%); }
.date-card.d1::before { background-image:url('../img/c1.jpg'); }
.date-card.d2::before { background-image:url('../img/c4.jpg'); }
.date-card.d3::before { background-image:url('../img/c6.jpg'); }
.date-card.d4::before { background-image:url('../img/c5.jpg'); }
.date-card__date { display:block; color:var(--gold-2); font-size:13px; letter-spacing:1px; margin-bottom:8px; text-shadow:0 1px 8px rgba(0,0,0,.6); }
.date-card h3 { font-family:var(--font-display); font-size:24px; margin-bottom:5px; text-shadow:0 2px 14px rgba(0,0,0,.7); }
.date-card p { color:#cfc8e8; font-size:14px; text-shadow:0 1px 8px rgba(0,0,0,.7); }
.date-card__more { display:inline-block; margin-top:14px; color:var(--gold-2); font-size:12px; letter-spacing:1px; opacity:.85; text-shadow:0 1px 8px rgba(0,0,0,.7); transition:opacity .3s, transform .3s; }
.date-card:hover .date-card__more { opacity:1; transform:translateX(4px); }
.date-card__badge { position:absolute; top:14px; left:14px; z-index:3; font-size:10px; letter-spacing:1.5px; text-transform:uppercase; font-weight:700; color:#2a1d05; background:linear-gradient(135deg,var(--gold),var(--gold-2)); padding:5px 11px; border-radius:100px; box-shadow:0 4px 14px rgba(0,0,0,.4); }
.date-card--past::after { background:linear-gradient(180deg, rgba(7,6,12,.4) 0%, rgba(7,6,12,.68) 45%, rgba(7,6,12,.96) 100%); }
.date-card--past::before { filter:grayscale(.35); }

/* edition recap (mini report inside article modal) */
.article__badge { position:absolute; top:14px; left:14px; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; font-weight:700; padding:6px 13px; border-radius:100px; background:rgba(7,6,12,.6); border:1px solid rgba(217,182,118,.5); color:var(--gold-2); backdrop-filter:blur(4px); }
.article__badge.is-past { background:linear-gradient(135deg,var(--gold),var(--gold-2)); color:#2a1d05; border:none; }
.report-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:2px 0 22px; }
.report-stat { padding:14px 8px; border:1px solid rgba(217,182,118,.25); border-radius:12px; background:linear-gradient(180deg, rgba(217,182,118,.06), transparent); text-align:center; }
.report-stat strong { display:block; font-family:var(--font-display); font-size:26px; color:var(--gold-2); line-height:1; }
.report-stat span { display:block; margin-top:6px; font-size:10px; letter-spacing:.5px; text-transform:uppercase; color:var(--muted); }
@media (max-width:680px){ .report-stats { grid-template-columns:repeat(2,1fr); } }

/* ===== CHECKOUT OPTIONS (venue + quantity) ===== */
.co-options { display:flex; gap:12px; margin-bottom:18px; }
.co-options label { flex:1; font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--muted); }
.co-options select { width:100%; margin-top:6px; padding:11px 12px; background:#080612; border:1px solid rgba(255,255,255,.14); border-radius:10px; color:var(--text); font-family:var(--font-body); font-size:14px; cursor:pointer; }
.co-options select:focus { outline:none; border-color:var(--gold); }
.co-options option { background:#0e0b1a; }

@media (max-width:900px){ .dates { grid-template-columns:1fr 1fr; } }
@media (max-width:680px){ .dates { grid-template-columns:1fr; } .co-options { flex-direction:column; } }

/* ===== RESPONSIVE ===== */
@media (max-width:900px){
  .cards, .lineup, .tiers, .contact { grid-template-columns:1fr 1fr; }
}
@media (max-width:680px){
  .site-header { padding:16px 20px; }
  .menu-toggle { display:flex; }
  .nav { position:fixed; inset:0; flex-direction:column; justify-content:center; gap:28px; background:rgba(7,6,12,.97); transform:translateX(100%); transition:transform .35s; }
  .nav.open { transform:translateX(0); }
  .nav a { font-size:20px; }
  .hero__title { font-size:clamp(26px,7vw,38px); overflow-wrap:break-word; }
  .hero__sub { font-size:16px; }
  .cards, .lineup, .tiers, .contact { grid-template-columns:1fr; }
  .section { padding:80px 18px; }
  .cd-box { min-width:70px; padding:16px 6px; }
  .countdown__grid { gap:10px; }
  .modal__box { padding:26px 22px; }
}
