:root{
  --bg: #121014;
  --bg-soft: #1b171e;
  --card: #1e1a22;
  --card-edge: #2a2530;
  --amber: #e3a857;
  --amber-soft: #f2c98a;
  --magenta: #c1477e;
  --magenta-soft: #d97aa4;
  --ink: #f3efe8;
  --muted: #9c93a6;
  --line: rgba(243,239,232,0.12);
  --radius: 14px;
  --green: #6fae7f;
  --red: #c15a5a;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--bg); color:var(--ink); font-family:'Manrope', sans-serif; -webkit-font-smoothing:antialiased;}
h1,h2,h3,.display{font-family:'Bebas Neue', sans-serif; letter-spacing:0.03em; line-height:0.95; margin:0;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
button, input, select, textarea{font-family:inherit;}
@media (prefers-reduced-motion: reduce){*{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}}

/* ---------- HEADER (бегущие огни + меню), закреплена целиком ---------- */
.site-header{position:sticky; top:0; z-index:50;}

.bulbs{display:flex; gap:10px; padding:8px 10px; margin:0; width:100%; box-sizing:border-box; background:var(--bg-soft); overflow:hidden;}
.bulbs span{width:6px; height:6px; border-radius:50%; background:var(--amber); box-shadow:0 0 6px var(--amber); animation:blink 1.8s infinite ease-in-out; flex-shrink:0;}
@keyframes blink{0%,100%{opacity:.25; box-shadow:0 0 2px var(--amber);} 50%{opacity:1; box-shadow:0 0 10px var(--amber);}}

.nav{display:flex; flex-direction:column; gap:10px; padding:14px 6vw; background:rgba(18,16,20,0.92); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
.nav-top{display:flex; align-items:center; justify-content:flex-start;}
.logo{font-family:'Bebas Neue', sans-serif; font-size:24px; letter-spacing:0.06em; display:flex; align-items:center; gap:10px; white-space:nowrap;}
.logo span{color:var(--amber);}
.logo-img{max-height:40px; width:auto; display:block;}
.nav-links{display:flex; gap:28px; font-size:14px; color:var(--muted); align-items:center; justify-content:flex-start; padding-top:8px; border-top:1px solid var(--line); flex-wrap:wrap;}
.nav-links a{transition:color .2s;}
.nav-links a:hover, .nav-links a:focus-visible{color:var(--amber-soft);}

/* ---------- HERO SLIDER ---------- */
.hero{position:relative; height:78vh; min-height:480px; overflow:hidden;}
.slide{position:absolute; inset:0; display:flex; align-items:flex-end; padding:6vw; opacity:0; visibility:hidden; transition:opacity .9s ease; background-size:cover; background-position:center;}
.slide.active{opacity:1; visibility:visible;}
.slide::before{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(18,16,20,0.15) 0%, rgba(18,16,20,0.92) 92%);}
.slide::after{content:""; position:absolute; inset:0; background:radial-gradient(circle at 30% 20%, rgba(255,255,255,0.10), transparent 55%); mix-blend-mode:screen;}
.slide-content{position:relative; z-index:2; max-width:640px;}
.slide-eyebrow{display:inline-flex; align-items:center; gap:8px; font-size:13px; letter-spacing:0.15em; text-transform:uppercase; color:var(--amber-soft); margin-bottom:14px;}
.slide-eyebrow::before{content:"●"; color:var(--magenta-soft); font-size:9px;}
.slide-title{font-size:clamp(42px, 7vw, 92px); color:var(--ink); text-shadow:0 4px 30px rgba(0,0,0,0.4);}
.slide-meta{display:flex; flex-wrap:wrap; gap:18px; margin-top:18px; font-size:15px; color:var(--muted);}
.slide-meta b{color:var(--ink); font-weight:600;}
.slide-cta{margin-top:26px; display:inline-flex; align-items:center; gap:10px; background:var(--amber); color:#1a1410; padding:13px 26px; border-radius:999px; font-weight:700; font-size:14px; transition:transform .2s, background .2s;}
.slide-cta:hover, .slide-cta:focus-visible{background:var(--amber-soft); transform:translateY(-2px);}
.hero-nav{position:absolute; z-index:3; bottom:6vw; right:6vw; display:flex; gap:10px;}
.hero-nav button{width:44px; height:44px; border-radius:50%; border:1px solid var(--line); background:rgba(255,255,255,0.05); color:var(--ink); font-size:18px; cursor:pointer; transition:background .2s, border-color .2s;}
.hero-nav button:hover, .hero-nav button:focus-visible{background:rgba(255,255,255,0.14); border-color:var(--amber);}
.hero-dots-wrap{display:flex; justify-content:center; padding:14px 0; background:var(--bg-soft); border-bottom:1px solid var(--line);}
.hero-dots{display:flex; gap:8px;}
.hero-dots button{width:26px; height:3px; border:none; background:rgba(243,239,232,0.25); cursor:pointer; transition:background .2s;}
.hero-dots button.active{background:var(--amber);}
.hero-empty{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:var(--muted); flex-direction:column; gap:10px; text-align:center;}
.slide-video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;}
.slide-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; animation: kenburns 9s ease-in-out infinite alternate; will-change: transform;}
@keyframes kenburns{
  0%{ transform: scale(1) translate(0, 0); }
  100%{ transform: scale(1.14) translate(-2.5%, -1.5%); }
}
@media (prefers-reduced-motion: reduce){
  .slide-bg{ animation: none; }
}

/* ---------- Баннер cookies ---------- */
.cookie-banner{position:fixed; left:0; right:0; bottom:0; z-index:300; display:none; align-items:center; justify-content:center; gap:18px; flex-wrap:wrap; background:var(--bg-soft); border-top:1px solid var(--line); padding:16px 6vw; box-shadow:0 -10px 30px rgba(0,0,0,0.3);}
.cookie-banner p{margin:0; font-size:13px; color:var(--muted); max-width:760px; line-height:1.5;}
.cookie-banner .btn{flex-shrink:0;}

/* ---------- EVENTS + SIDEBAR LAYOUT ---------- */
.page-body{padding:64px 6vw 100px; display:grid; grid-template-columns:1fr 300px; gap:44px; align-items:start;}
.events-head{display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:16px; margin-bottom:36px;}
.events-head h2{font-size:clamp(32px, 4vw, 48px);}
.events-sub{color:var(--muted); font-size:14px; max-width:420px;}
.filters{display:flex; gap:8px; flex-wrap:wrap;}
.filters button{padding:8px 16px; border-radius:999px; border:1px solid var(--line); background:transparent; color:var(--muted); font-size:13px; cursor:pointer; transition:all .2s;}
.filters button.active, .filters button:hover, .filters button:focus-visible{border-color:var(--amber); color:var(--amber-soft);}

.ticket-grid{display:grid; grid-template-columns:repeat(4, 1fr); gap:20px;}
@media (max-width: 1400px){ .ticket-grid{grid-template-columns:repeat(3, 1fr);} }
@media (max-width: 980px){ .ticket-grid{grid-template-columns:repeat(2, 1fr);} }
@media (max-width: 560px){ .ticket-grid{grid-template-columns:1fr;} }

.ticket{position:relative; display:flex; flex-direction:column; background:var(--card); border:1px solid var(--card-edge); border-radius:var(--radius); overflow:hidden; cursor:pointer; transition:transform .25s ease, box-shadow .25s ease, border-color .25s;}
.ticket:hover, .ticket:focus-visible{transform:translateY(-4px); box-shadow:0 18px 40px rgba(0,0,0,0.35); border-color:var(--amber); outline:none;}

.ticket-poster{width:100%; aspect-ratio: 3 / 4; position:relative; background:linear-gradient(160deg, var(--grad1), var(--grad2)); display:flex; align-items:center; justify-content:center; overflow:hidden;}
.ticket-poster img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.ticket-poster .icon{font-size:32px; opacity:.55;}

.ticket-body{flex:1 1 auto; padding:14px 16px 16px; display:flex; flex-direction:column; gap:3px; min-width:0;}
.ticket-date-line{font-family:'Manrope'; font-weight:800; font-size:15px; color:var(--amber-soft); letter-spacing:0.02em; text-transform:uppercase; line-height:1.1;}
.ticket-type{font-size:11px; text-transform:uppercase; letter-spacing:0.1em; color:var(--magenta-soft); font-weight:700; margin-top:1px;}
.ticket-title{font-size:16px; font-family:'Manrope'; font-weight:800; line-height:1.25; margin-top:2px;}
.ticket-venue{font-size:12.5px; color:var(--muted); margin-top:2px;}

.ticket-footer{margin-top:12px; background:var(--amber); color:#1a1410; padding:9px 16px; display:flex; flex-direction:column; gap:1px;}
.ticket-footer .venue{font-weight:700; font-size:12.5px; line-height:1.3;}
.ticket-footer .time{font-size:11px; opacity:.8;}

/* ---------- SIDEBAR ---------- */
.sidebar{display:flex; flex-direction:column; gap:28px; position:sticky; top:90px;}
.side-card{background:var(--card); border:1px solid var(--card-edge); border-radius:var(--radius); padding:20px;}
.side-card h3{font-size:22px; margin-bottom:14px; color:var(--ink);}
.side-list{display:flex; flex-direction:column; gap:14px;}
.side-item{padding-bottom:14px; border-bottom:1px solid var(--line);}
.side-item:last-child{border-bottom:none; padding-bottom:0;}
.side-item .d{font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:0.06em; margin-bottom:4px;}
.side-item .t{font-size:14px; font-weight:700; line-height:1.3;}
.side-item .e{font-size:12.5px; color:var(--muted); margin-top:4px; line-height:1.4;}
.side-item a.t:hover{color:var(--amber-soft);}
.side-empty{font-size:13px; color:var(--muted);}
.side-source{font-size:11px; color:var(--muted); margin-top:14px; opacity:.7;}

@media (max-width: 980px){
  .page-body{grid-template-columns:1fr;}
  .sidebar{position:static;}
}
@media (max-width: 900px){
  .nav-links{flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; padding-bottom:2px;}
  .nav-links::-webkit-scrollbar{display:none;}
  .nav-links a{flex:0 0 auto; white-space:nowrap;}
}
@media (max-width: 640px){
  .nav-top{justify-content:center;}
}

footer{padding:40px 6vw; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; color:var(--muted); font-size:13px;}
footer a{color:var(--muted); transition:color .2s;}
footer a:hover{color:var(--amber-soft);}

/* ---------- STATIC PAGES (returns.html) ---------- */
.static-page{padding:70px 6vw 100px; max-width:760px; margin:0 auto;}
.static-page h1{font-size:clamp(34px,5vw,54px); margin-bottom:24px;}
.static-page h2{font-family:'Manrope'; font-size:20px; font-weight:800; margin:30px 0 10px;}
.static-page p, .static-page li{color:var(--muted); font-size:15px; line-height:1.7;}
.static-page ul{padding-left:20px;}
.back-link{display:inline-block; margin-bottom:30px; color:var(--amber-soft); font-size:14px;}

/* ---------- ADMIN FAB (только на index, ссылка на /admin) ---------- */
.admin-fab{position:fixed; bottom:24px; right:24px; z-index:100; width:auto; height:auto; padding:12px 18px; border-radius:999px; background:var(--amber); border:none; color:#1a1410; font-size:13px; font-weight:700; cursor:pointer; box-shadow:0 10px 26px rgba(0,0,0,0.4); transition:transform .2s; display:flex; align-items:center; gap:8px;}
.admin-fab:hover{transform:scale(1.04);}

/* =========================================================
   ADMIN PANEL PAGE (admin.html)
   ========================================================= */
.admin-shell{min-height:100vh; display:flex; flex-direction:column;}
.admin-topbar{display:flex; justify-content:space-between; align-items:center; padding:16px 24px; border-bottom:1px solid var(--line); background:var(--bg-soft);}
.admin-topbar .logo{font-size:20px;}
.admin-main{flex:1; padding:28px 24px 60px; max-width:900px; margin:0 auto; width:100%;}

.login-wrap{max-width:360px; margin:14vh auto; padding:32px; background:var(--card); border:1px solid var(--card-edge); border-radius:var(--radius);}
.login-wrap h2{font-size:26px; margin-bottom:6px;}
.login-wrap p{color:var(--muted); font-size:13px; margin-bottom:20px;}
.login-error{color:var(--red); font-size:13px; margin-top:10px; display:none;}

.admin-tabs{display:flex; gap:8px; margin-bottom:24px; border-bottom:1px solid var(--line);}
.admin-tabs button{padding:12px 4px; margin-right:20px; background:none; border:none; color:var(--muted); font-size:14px; font-weight:700; cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px;}
.admin-tabs button.active{color:var(--amber-soft); border-bottom-color:var(--amber);}
.admin-tabpanel{display:none;}
.admin-tabpanel.active{display:block;}

.admin-note{padding:12px 14px; background:rgba(227,168,87,0.08); border:1px solid rgba(227,168,87,0.25); border-radius:10px; font-size:12.5px; color:var(--amber-soft); line-height:1.5; margin-bottom:20px;}
.admin-section{background:var(--card); border:1px solid var(--card-edge); border-radius:var(--radius); padding:22px; margin-bottom:24px;}
.admin-section h4{font-size:13px; text-transform:uppercase; letter-spacing:0.08em; color:var(--muted); margin-bottom:14px; font-weight:700;}
.field{margin-bottom:14px;}
.field label{display:block; font-size:12.5px; color:var(--muted); margin-bottom:5px;}
.field input, .field select, .field textarea{width:100%; padding:10px 12px; border-radius:8px; border:1px solid var(--line); background:var(--bg); color:var(--ink); font-size:14px;}
.field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--amber);}
.field-row{display:flex; gap:10px;}
.field-row .field{flex:1;}
.checkbox-row{display:flex; align-items:center; gap:8px; font-size:13px; color:var(--muted); margin-bottom:14px;}
.btn{padding:10px 18px; border-radius:8px; border:none; font-weight:700; font-size:13px; cursor:pointer; transition:filter .2s;}
.btn:hover{filter:brightness(1.1);}
.btn:disabled{opacity:.5; cursor:not-allowed;}
.btn-primary{background:var(--amber); color:#1a1410;}
.btn-ghost{background:transparent; border:1px solid var(--line); color:var(--ink);}
.btn-row{display:flex; gap:8px; margin-top:6px;}

.upload-box{border:1px dashed var(--line); border-radius:10px; padding:14px; display:flex; align-items:center; gap:12px;}
.upload-box .preview{width:64px; height:64px; border-radius:8px; background:var(--bg-soft); overflow:hidden; flex-shrink:0; display:flex; align-items:center; justify-content:center; color:var(--muted); font-size:11px; text-align:center;}
.upload-box .preview img{width:100%; height:100%; object-fit:cover;}
.upload-box .info{flex:1; font-size:12px; color:var(--muted);}
.upload-box input[type=file]{font-size:12px;}
.upload-status{font-size:12px; margin-top:6px;}
.upload-status.ok{color:var(--green);}
.upload-status.err{color:var(--red);}

.admin-list{display:flex; flex-direction:column; gap:10px;}
.admin-item{border:1px solid var(--line); border-radius:10px; padding:12px 14px; background:var(--bg-soft);}
.admin-item-top{display:flex; justify-content:space-between; gap:10px; align-items:flex-start;}
.admin-item-title{font-weight:700; font-size:14px;}
.admin-item-meta{font-size:12px; color:var(--muted); margin-top:2px;}
.admin-item-actions{display:flex; gap:6px; margin-top:10px; flex-wrap:wrap; align-items:center;}
.icon-btn{background:none; border:1px solid var(--line); color:var(--muted); border-radius:6px; padding:5px 9px; font-size:12px; cursor:pointer;}
.icon-btn:hover{color:var(--ink); border-color:var(--amber);}
.icon-btn.danger:hover{color:var(--red); border-color:var(--red);}
.icon-btn:disabled{opacity:.35; cursor:not-allowed;}
.badge{font-size:10px; padding:3px 8px; border-radius:999px; background:rgba(111,174,127,0.15); color:var(--green); font-weight:700;}
.empty-state{color:var(--muted); font-size:13px; text-align:center; padding:20px 0;}
