/* ===== GLOBAL ===== */
*{margin:0;padding:0;box-sizing:border-box;}

html,body{
height:100%;
background:#000;
color:#fff;
font-family:'Trebuchet MS',Arial,sans-serif;
overflow-x:hidden;
scroll-behavior:smooth;
}

body::before{
content:"";
position:fixed;
inset:0;
background:url('../images/Background.jpg') center/cover no-repeat;
z-index:1;
}

body::after{
content:"";
position:fixed;
inset:0;
background:rgba(0,0,0,.45);
z-index:2;
}

.app-container{
display:flex;
min-height:100vh;
position:relative;
z-index:5;
}

/* ===== MOBILE LISTEN BUTTON ===== */
.mobile-listen-link{
display:none;
}

/* ===== HAMBURGER MENU ===== */
.hamburger{
display:none;
position:fixed;
top:20px;
left:20px;
z-index:1000;
background:rgba(255,193,7,0.9);
border:none;
border-radius:6px;
padding:6px 8px;
cursor:pointer;
flex-direction:column;
gap:3px;
width:fit-content;
height:fit-content;
}

.hamburger span{
display:block;
width:22px;
height:2.5px;
background:#000;
border-radius:2px;
transition:.3s;
}

.hamburger.active span:nth-child(1){
transform:rotate(45deg) translate(5px,5px);
}

.hamburger.active span:nth-child(2){
opacity:0;
}

.hamburger.active span:nth-child(3){
transform:rotate(-45deg) translate(5px,-5px);
}

/* ===== LEFT SIDEBAR ===== */
.sidebar{
width:250px;
min-width:250px;
background:rgba(0,0,0,0.35);
padding:18px 14px;
position:fixed;
top:0;
bottom:0;
left:0;
display:flex;
flex-direction:column;
backdrop-filter:blur(3px);
z-index:999;
transition:transform .3s ease;
}

.sidebar h1{
text-align:center;
color:#FFC107;
text-shadow:2px 2px 6px #000;
margin-bottom:8px;
}

.sidebar nav a{
display:block;
padding:10px 12px;
margin:6px 0;
color:#FFC107;
text-decoration:none;
border-radius:8px;
transition:.25s;
}

.sidebar nav a:hover,
.sidebar nav a.active{
background:rgba(255,193,7,.2);
color:#fff;
transform:translateX(4px);
}

.social-section{
margin-top:20px;
padding:12px;
background:rgba(255,255,255,.05);
border-radius:10px;
text-align:center;
}

.social-section h3{
color:#FFC107;
font-size:.95em;
margin-bottom:10px;
}

.social-links{
display:flex;
justify-content:center;
gap:20px;
align-items:center;
}

.social-link{
display:flex;
flex-direction:column;
align-items:center;
gap:3px;
text-decoration:none;
transition:.3s;
}

.social-link:hover{
transform:scale(1.1);
}

.social-link span{
font-size:32px;
filter:drop-shadow(2px 2px 4px #000);
}

.social-link-label{
color:#FFD700;
font-size:10px;
font-weight:bold;
}

/* ===== RIGHT PLAYER ===== */
.player-sidebar{
width:320px;
min-width:320px;
background:rgba(0,0,0,.2);
padding:10px;
position:fixed;
top:0;
bottom:0;
right:0;
display:flex;
flex-direction:column;
align-items:center;
gap:8px;
backdrop-filter:blur(4px);
overflow:hidden;
z-index:10;
}

.player-sidebar h2{
color:#FFC107;
margin-bottom:6px;
text-align:center;
}

.player-container{
width:300px;
height:614px;
border-radius:12px;
overflow:hidden;
}

.player-container iframe{
width:300px;
height:614px;
border:0;
display:block;
}

.player-info{
font-size:.9em;
text-align:center;
color:#FFE082;
margin-top:10px;
}

.mobile-player{
display:none;
}

/* ===== MAIN CONTENT ===== */
.content-wrapper{
margin-left:250px;
margin-right:320px;
flex:1;
padding:32px;
min-height:100vh;
}

.page{
display:none;
animation:fadeIn .25s ease;
max-width:1000px;
margin:auto;
}

.page.active{
display:block;
}

@keyframes fadeIn{
from{opacity:0;transform:translateY(8px);}
to{opacity:1;transform:none;}
}

/* ===== WELCOME ===== */
.welcome-box{
position:sticky;
top:20px;
background:rgba(255,255,255,.05);
border:2px solid rgba(255,215,0,.5);
border-radius:16px;
padding:14px 20px;
margin-bottom:18px;
text-align:center;
backdrop-filter:blur(5px);
z-index:5;
}

.welcome-title{
font-size:2.3em;
color:#FFD700;
text-shadow:0 0 12px #000;
}

.intro-message{
color:#FFE082;
font-size:1.1em;
margin-top:6px;
}

/* ===== ANNOUNCEMENT TICKER ===== */
.announcement-ticker{
display:none;
align-items:center;
justify-content:center;
gap:12px;
width:min(900px, calc(100% - 48px));
margin:24px auto 18px;
padding:16px 22px;
border:1px solid rgba(255,215,0,.8);
border-radius:18px;
background:rgba(10,20,28,.72);
box-shadow:0 8px 24px rgba(0,0,0,.35);
color:#fff;
text-align:center;
backdrop-filter:blur(8px);
overflow:hidden;
}

.announcement-ticker strong{
color:#FFD700;
font-weight:800;
white-space:nowrap;
text-shadow:1px 1px 2px #000;
}

.announcement-ticker-message{
color:#fff;
font-size:1rem;
line-height:1.45;
overflow:hidden;
text-overflow:ellipsis;
}

.announcement-ticker.normal{
border-color:rgba(255,215,0,.8);
}

.announcement-ticker.urgent{
border-color:#ff4747;
box-shadow:0 0 20px rgba(255,71,71,.45), 0 8px 24px rgba(0,0,0,.35);
}

.announcement-ticker.urgent strong{
color:#ffdf00;
}

.announcement-ticker.scrolling .announcement-ticker-message{
white-space:nowrap;
animation:tsrAnnouncementScroll 18s linear infinite;
}

@keyframes tsrAnnouncementScroll{
0%{transform:translateX(20%);}
100%{transform:translateX(-100%);}
}

/* ===== BOXES ===== */
.content-box{
background:rgba(255,255,255,.05);
border-radius:12px;
padding:20px;
margin-bottom:20px;
text-align:center;
}

.content-box h2{
background:linear-gradient(90deg,#FFD700,#FF8C00);
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
margin-bottom:10px;
}

/* ===== FEATURED DJs ===== */
.dj-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
gap:25px;
margin-top:25px;
}

.dj-card{
background:rgba(255,255,255,.06);
border:2px solid rgba(255,193,7,.3);
border-radius:18px;
overflow:hidden;
backdrop-filter:blur(5px);
transition:transform .3s ease, box-shadow .3s ease;
box-shadow:0 4px 15px rgba(0,0,0,.4);
}

.dj-card:hover{
transform:translateY(-6px);
box-shadow:0 8px 25px rgba(255,193,7,.35);
}

.dj-card img{
width:100%;
height:300px;
object-fit:cover;
display:block;
}

.dj-info{
padding:18px;
text-align:center;
}

.dj-info h3{
color:#FFD700;
font-size:1.5em;
margin-bottom:10px;
}

.dj-info p{
line-height:1.7;
color:#fff;
font-size:1em;
}

.dj-style{
margin-top:12px;
color:#FFC107;
font-weight:bold;
font-size:.95em;
}

.featured-djs-loading{
  grid-column:1 / -1;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,215,0,.3);
  border-radius:16px;
  padding:18px;
  color:#fff;
  text-align:center;
}

.featured-dj-placeholder{
  width:100%;
  min-height:180px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,215,0,.12);
  color:#FFD700;
  font-size:2rem;
  font-weight:bold;
  border-bottom:1px solid rgba(255,215,0,.35);
}

.featured-dj-show{
  color:#FFD700 !important;
  font-weight:bold;
  margin-bottom:8px;
}

.spotlight-dj-card{
  border:2px solid rgba(255,215,0,.75);
  box-shadow:0 0 22px rgba(255,215,0,.22);
  position:relative;
}

.featured-dj-badge{
  position:absolute;
  top:12px;
  left:12px;
  background:rgba(0,0,0,.75);
  color:#FFD700;
  border:1px solid rgba(255,215,0,.6);
  border-radius:999px;
  padding:6px 12px;
  font-size:.85rem;
  font-weight:bold;
  z-index:2;
}
.featured-dj-schedule{
  margin:10px 0;
  padding:9px 12px;
  border-radius:12px;
  background:rgba(255,215,0,.12);
  border:1px solid rgba(255,215,0,.35);
  color:#FFE082;
  font-weight:bold;
}

.featured-dj-social-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:14px;
}

.featured-dj-social-links a{
  display:inline-block;
  text-decoration:none;
  color:#111;
  background:#FFD700;
  border-radius:999px;
  padding:8px 12px;
  font-size:.9rem;
  font-weight:bold;
}

.featured-dj-social-links a:hover{
  transform:translateY(-1px);
}

/* ===== VISITOR COUNTER ===== */
.visitor-counter{
background:linear-gradient(135deg,rgba(255,193,7,.15),rgba(255,140,0,.15));
border:2px solid rgba(255,193,7,.6);
border-radius:10px;
padding:18px;
margin-bottom:20px;
text-align:center;
box-shadow:0 4px 15px rgba(255,193,7,.25);
transition:transform .3s ease,box-shadow .3s ease;
width:70%;
margin-left:auto;
margin-right:auto;
}

.visitor-counter:hover{
transform:translateY(-3px);
box-shadow:0 6px 20px rgba(255,193,7,.4);
}

.visitor-counter p{
color:#FFD700;
font-size:1em;
margin:8px 0 4px 0;
}

.visitor-counter h3{
color:#fff;
font-size:1.8em;
margin-bottom:12px;
}

/* ===== LIKE SECTION ===== */
#likeBtn{
padding:10px 20px;
border:none;
border-radius:8px;
background:linear-gradient(90deg,#FF8C00,#FFD54F);
font-weight:bold;
cursor:pointer;
}

#likeCount{
margin:8px 0 10px;
color:#FF5722;
font-weight:bold;
}

/* ===== SUBSCRIBE ===== */
#subscribeForm{
margin:0 auto;
}

#subscribeForm input{
padding:10px;
border-radius:6px;
border:1px solid #ccc;
width:60%;
background:rgba(255,255,255,.15);
color:#fff;
font-size:16px;
}

#subscribeForm input::placeholder{
color:#ddd;
opacity:1;
}

#subscribeForm button{
padding:10px 18px;
border:none;
border-radius:8px;
background:linear-gradient(90deg,#FFD700,#FF8C00);
color:#000;
font-weight:bold;
cursor:pointer;
margin-top:8px;
}

/* ===== COMMENTS ===== */
#comments-list{
max-height:250px;
overflow-y:auto;
background:rgba(255,255,255,.05);
border-radius:8px;
padding:10px;
text-align:left;
margin-bottom:10px;
}

.comment-item{
margin-bottom:6px;
}

#emoji-picker{
font-size:24px;
margin-bottom:8px;
cursor:pointer;
display:flex;
flex-wrap:wrap;
gap:6px;
justify-content:center;
}

#username,
#comment-text{
width:90%;
max-width:500px;
margin:4px auto;
padding:8px;
border-radius:6px;
border:1px solid #ccc;
background:rgba(255,255,255,.15);
color:#fff;
}

#submit-comment{
padding:10px 18px;
border:none;
border-radius:8px;
font-weight:bold;
background:linear-gradient(90deg,gold,orange);
color:#000;
cursor:pointer;
display:block;
margin:10px auto 0;
}

/* ===== EVENTS ===== */
#upcoming-events{
max-width:600px;
margin:0 auto;
}

.event-item{
background:linear-gradient(135deg,rgba(255,193,7,.15),rgba(255,140,0,.15));
border:2px solid rgba(255,193,7,.6);
border-radius:10px;
padding:18px;
margin-bottom:20px;
text-align:center;
box-shadow:0 4px 15px rgba(255,193,7,.25);
transition:transform .3s ease,box-shadow .3s ease;
}

.event-item:hover{
transform:translateY(-3px);
box-shadow:0 6px 20px rgba(255,193,7,.4);
}

.event-item strong{
color:#FFD700;
font-size:1.2em;
display:block;
margin-bottom:8px;
text-shadow:0 2px 4px rgba(0,0,0,.5);
}

.event-item .event-date{
color:#FFC107;
margin-top:8px;
font-size:1.05em;
}

.event-separator{
height:2px;
background:linear-gradient(90deg,transparent,#FFD700,transparent);
margin:25px 0;
opacity:.6;
}

/* ===== URGENT ANNOUNCEMENT FLASH ALERT ===== */
.urgent-announcement-toast{
position:fixed;
top:92px;
left:calc(250px + ((100vw - 570px) / 2));
z-index:99999;
box-sizing:border-box;
width:min(520px, calc(100vw - 620px));
max-width:520px;
background:rgba(10,20,28,.96);
border:2px solid #FFD700;
border-radius:18px;
box-shadow:0 12px 35px rgba(0,0,0,.65);
padding:18px 20px;
transform:translate(-50%, -24px);
opacity:0;
pointer-events:none;
transition:opacity .35s ease, transform .35s ease;
}

.urgent-announcement-toast.show{
opacity:1;
transform:translate(-50%, 0);
pointer-events:auto;
}

.urgent-announcement-content strong{
display:block;
color:#FFD700;
font-size:1.1rem;
margin-bottom:8px;
text-align:center;
text-shadow:1px 1px 2px #000;
}

.urgent-announcement-content p{
color:#fff;
line-height:1.5;
margin:0 0 14px;
text-align:center;
font-size:.95rem;
}

.urgent-announcement-content button{
display:block;
width:100%;
padding:11px 14px;
border:none;
border-radius:10px;
background:linear-gradient(90deg,#FFD700,#FF8C00);
color:#000;
font-weight:bold;
cursor:pointer;
box-shadow:0 4px 12px rgba(0,0,0,.35);
}

.urgent-announcement-content button:hover{
filter:brightness(1.08);
}

/* ===== MOBILE RESPONSIVE ===== */
@media(max-width:1024px){

.app-container{
display:block;
}

.hamburger{
display:flex;
position:fixed;
top:12px;
left:12px;
z-index:1001;
}

.sidebar{
transform:translateX(-100%);
}

.sidebar.open{
transform:translateX(0);
}

.content-wrapper{
margin:0;
padding:18px;
padding-top:10px;
}

.welcome-box{
position:relative;
top:auto;
left:auto;
right:auto;
z-index:5;
margin-bottom:18px;
border-radius:16px;
border:2px solid rgba(255,215,0,.5);
padding:14px 20px;
}

.welcome-title{
font-size:1.8em;
}

.intro-message{
font-size:1em;
}

.mobile-listen-link{
display:block;
text-align:center;
margin-bottom:20px;
}

.mobile-listen-link a{
display:inline-block;
padding:14px 28px;
background:linear-gradient(90deg,#FFD700,#FF8C00);
color:#000;
font-weight:bold;
text-decoration:none;
border-radius:10px;
box-shadow:0 4px 12px rgba(255,193,7,.4);
transition:.3s;
}

.mobile-listen-link a:hover{
transform:translateY(-2px);
box-shadow:0 6px 18px rgba(255,193,7,.6);
}

.announcement-ticker{
width:calc(100% - 32px);
flex-direction:column;
gap:6px;
margin:20px auto 24px auto;
padding:16px;
text-align:center;
}

.announcement-ticker{
  display:none;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:min(900px, calc(100% - 48px));
  margin:24px auto 18px;
  padding:16px 22px;
  border:1px solid rgba(255,215,0,.8);
  border-radius:18px;
  background:rgba(10,20,28,.72);
  box-shadow:0 8px 24px rgba(0,0,0,.35);
  color:#fff;
  text-align:center;
  backdrop-filter:blur(8px);
  overflow:hidden;
}

.announcement-ticker strong{
  display:block;
  width:100%;
  color:#FFD700;
  font-weight:800;
  white-space:normal;
  text-align:center;
  text-shadow:1px 1px 2px #000;
}

.announcement-ticker-message{
  display:block;
  width:100%;
  color:#fff;
  font-size:1rem;
  line-height:1.45;
  text-align:center;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:normal;
}

.visitor-counter{
width:90%;
}

#home{
padding-top:0;
}

#about,
#events,
#featured-djs{
padding-top:10px;
}

.dj-card img{
height:250px;
}

.mobile-player{
display:none;
}

.player-sidebar{
display:flex;
position:relative;
width:100%;
min-width:0;
right:auto;
top:auto;
bottom:auto;
padding:12px;
margin:30px auto 20px auto;
overflow:visible;
background:rgba(0,0,0,.45);
}

.player-container{
width:300px;
height:614px;
max-width:100%;
}

.player-container iframe{
width:300px;
height:614px;
max-width:100%;
}

.urgent-announcement-toast{
top:80px;
left:50%;
width:min(520px, calc(100vw - 40px));
max-width:520px;
transform:translate(-50%, -24px);
}

.urgent-announcement-toast.show{
transform:translate(-50%, 0);
}

}

/* ===== SMALL MOBILE ===== */
@media(max-width:768px){

.announcement-ticker{
margin:18px auto 14px;
padding:14px 16px;
}

.urgent-announcement-toast{
top:70px;
left:16px;
right:16px;
width:auto;
max-width:none;
transform:translateY(-24px);
}

.urgent-announcement-toast.show{
transform:translateY(0);
}

}

/* =========================================================
   TSR HARD FIX - ANNOUNCEMENT TICKER STACKING
   ========================================================= */

#announcementTicker.announcement-ticker{
  display:none;
  width:min(900px, calc(100% - 48px));
  margin:24px auto 18px;
  padding:16px 22px;
  border:1px solid rgba(255,215,0,.8);
  border-radius:18px;
  background:rgba(10,20,28,.72);
  box-shadow:0 8px 24px rgba(0,0,0,.35);
  color:#fff;
  text-align:center;
  backdrop-filter:blur(8px);
  overflow:hidden;
}

#announcementTicker.announcement-ticker.announcement-visible{
  display:block !important;
}

#announcementTicker.announcement-ticker strong{
  display:block !important;
  width:100% !important;
  margin:0 0 8px 0 !important;
  color:#FFD700;
  font-weight:800;
  white-space:normal !important;
  text-align:center;
  text-shadow:1px 1px 2px #000;
}

#announcementTickerMessage.announcement-ticker-message{
  display:block !important;
  width:100% !important;
  color:#fff;
  font-size:1rem;
  line-height:1.45;
  text-align:center;
  white-space:normal !important;
  overflow:hidden;
  text-overflow:ellipsis;
}

#announcementTicker.announcement-ticker.urgent{
  border-color:#ff4747;
  box-shadow:0 0 20px rgba(255,71,71,.45), 0 8px 24px rgba(0,0,0,.35);
}

#announcementTicker.announcement-ticker.normal{
  border-color:rgba(255,215,0,.8);
}

#announcementTicker.announcement-ticker.scrolling #announcementTickerMessage{
  display:block !important;
  white-space:normal !important;
  animation:none !important;
}

@media(max-width:768px){
  #announcementTicker.announcement-ticker{
    width:calc(100% - 32px);
    margin:18px auto 14px;
    padding:14px 16px;
  }
}
.upcoming-events-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:18px;
  margin-top:22px;
}

.upcoming-events-loading{
  grid-column:1 / -1;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,215,0,.3);
  border-radius:16px;
  padding:18px;
  color:#fff;
  text-align:center;
}

.upcoming-event-card{
  background:rgba(0,0,0,.45);
  border:1px solid rgba(255,215,0,.35);
  border-radius:18px;
  padding:18px;
  color:#fff;
  box-shadow:0 10px 25px rgba(0,0,0,.25);
}

.upcoming-event-date{
  color:#FFD700;
  font-weight:bold;
  margin-bottom:10px;
}

.upcoming-event-card h3{
  color:#FFD700;
  margin-bottom:10px;
}

.upcoming-event-meta{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin:12px 0;
  color:rgba(255,255,255,.9);
  font-size:.95rem;
}

.upcoming-event-card p{
  color:rgba(255,255,255,.88);
  line-height:1.5;
}
.upcoming-event-image{
  width:100%;
  height:260px;
  object-fit:contain;
  object-position:center;
  border-radius:14px;
  margin-bottom:14px;
  border:1px solid rgba(255,215,0,.35);
  background:#000;
  display:block;
}

.upcoming-event-link{
  display:inline-block;
  margin-top:14px;
  text-decoration:none;
  color:#111;
  background:#FFD700;
  border-radius:999px;
  padding:9px 14px;
  font-weight:bold;
}

.upcoming-event-link:hover{
  transform:translateY(-1px);
}
/* ==============================
   FEATURED DJS FINAL DISPLAY FIX
   Keeps single DJ cards from stretching too wide
============================== */

#featured-djs .dj-card,
#featuredDjsContainer .dj-card,
.featured-djs-container .dj-card {
  max-width: 520px;
  width: 100%;
  margin: 0 auto;
}

#featured-djs .dj-card img,
#featuredDjsContainer .dj-card img,
.featured-djs-container .dj-card img {
  width: 100%;
  height: 260px;
  object-fit: contain !important;
  object-position: center !important;
  background: #000;
  display: block;
}