/* =========================
GLOBAL
========================= */

body{
	background:#000;
	color:#fff;
	font-family:Montserrat;
	margin:0;
}

h1,h2,h3{
	font-family:'Roboto Slab', serif;
}

a{
	text-decoration:none;
	color:white;
}


/* =========================
NAVIGATION
========================= */

header{
	display:flex;
	justify-content:center;
	align-items:center;
	background:#0a0a0a;
	border-bottom:4px solid #F07A6A;
	box-shadow:
		0 0 10px #F07A6A,
		inset 0 -3px 8px rgba(240,122,106,.4);
	padding:20px;
	position:sticky;
	top:0;
	z-index:1000;
}

.nav-container{
	display:flex;
	justify-content:space-between;
	align-items:center;
	width:100%;
	max-width:1100px;
}

nav ul{
	list-style:none;
	display:flex;
	gap:35px;
	padding:0;
	margin:0;
}

nav a{
	color:white;
	font-family:'Roboto Slab';
	letter-spacing:1px;
	transition:all .2s ease;
}

nav a:hover{
	color:#F07A6A;
	text-shadow:
		0 0 6px #F07A6A,
		0 0 12px #F07A6A;
}

/* HAMBURGER */

.hamburger{
	display:none;
	flex-direction:column;
	cursor:pointer;
	gap:6px;
	z-index:1100;
}

.hamburger span{
	width:28px;
	height:3px;
	background:#F07A6A;
	box-shadow:0 0 6px #F07A6A;
	transition:all .3s ease;
}

/* ANIMATED X */

.hamburger.active span:nth-child(1){
	transform:rotate(45deg) translate(6px,6px);
}

.hamburger.active span:nth-child(2){
	opacity:0;
}

.hamburger.active span:nth-child(3){
	transform:rotate(-45deg) translate(6px,-6px);
}


/* =========================
MOBILE NAV
========================= */

@media (max-width: 768px){

	nav ul{
    position:absolute;
    top:100%;
    left:0;
    width:100%;
    background:#0a0a0a;

    flex-direction:column;
    align-items:center;
    gap:20px;
    padding:0; /* important */

    max-height:0;
    overflow:hidden;

    display:flex; /* force control */
  }

  nav ul.active{
    padding:20px 0;
    max-height:500px;
  }

	.hamburger{
		display:flex;
	}
}


/* =========================
HERO
========================= */

.hero{
	position:relative;
	text-align:center;
	padding:120px 20px;
	overflow:hidden;
}

.hero::before,
.hero::after{
	content:"";
	position:absolute;
	top:-50%;
	left:50%;
	width:600px;
	height:600px;
	background:radial-gradient(circle, rgba(240,122,106,0.25) 0%, transparent 70%);
	transform-origin:center;
	animation:spotlightMove 12s linear infinite;
	pointer-events:none;
}

.hero::after{
	animation-delay:6s;
}

.hero-logo{
	width:340px;
	margin-bottom:30px;
	filter:drop-shadow(0 0 10px #F07A6A);
}

.hero-buttons{
	margin-top:30px;
	display:flex;
	justify-content:center;
	gap:20px;
}


/* =========================
BUTTONS
========================= */

.primary-button{
	background:#F07A6A;
	padding:12px 25px;
	color:white;
	border-radius:6px;
}

.secondary-button{
	border:2px solid #F07A6A;
	padding:10px 23px;
	color:black;
	border-radius:6px;
	margin-left:10px;
}


/* =========================
PAGE HEADERS
========================= */

.page-header{
	text-align:center;
	padding:80px 20px 40px;
	background:linear-gradient(180deg, rgba(240,122,106,.08), transparent);
}

.page-header h1{
	font-size:36px;
	margin-bottom:10px;
	letter-spacing:2px;
	text-transform:uppercase;
}

.page-header h1::after{
	content:"";
	display:block;
	width:220px;
	height:6px;
	margin:18px auto;
	background:linear-gradient(90deg, transparent, #F07A6A, #F07A6A, transparent);
	box-shadow:0 0 10px #F07A6A;
	border-radius:3px;
}


/* =========================
CONTENT SECTIONS
========================= */

.content-section{
	max-width:1000px;
	margin:auto;
	padding:0 20px;
	align-items:center;
}


/* =========================
FEATURED SHOWS
========================= */

.shows{
	padding:80px 20px;
	text-align:center;
}

.show-grid{
	display:grid;
	grid-template-columns:repeat(2,1fr);
	gap:40px;
	max-width:900px;
	margin:40px auto;
}

.show-card{
	background:#0a0a0a;
	padding:30px;
	border-radius:8px;
	border:3px solid #F07A6A;
	position:relative;
	transition:all .25s ease;
	box-shadow:
		0 0 6px #F07A6A,
		inset 0 0 10px rgba(240,122,106,.25);
}

.show-card::before,
.show-card::after{
	content:"";
	position:absolute;
	width:10px;
	height:10px;
	background:#F07A6A;
	border-radius:50%;
	box-shadow:0 0 8px #F07A6A;
}

.show-card::before{
	top:10px;
	left:10px;
}

.show-card::after{
	bottom:10px;
	right:10px;
}

.show-card:hover{
	transform:translateY(-6px);
	box-shadow:
		0 0 12px #F07A6A,
		0 0 25px #F07A6A,
		inset 0 0 12px rgba(240,122,106,.45);
}

.show-card h3{
	font-family:'Roboto Slab';
	letter-spacing:1px;
	text-transform:uppercase;
	margin-bottom:12px;
}

.show-card h3::after{
	content:"";
	display:block;
	width:80px;
	height:3px;
	background:#F07A6A;
	margin:10px auto 15px;
	box-shadow:0 0 8px #F07A6A;
}

.show-card.custom-show {
	text-align:center;
  grid-column: 1 / -1; /* span all columns */
  justify-self: center; /* horizontally center inside the grid */
}

/* =========================
FLIP CARDS
========================= */

.flip-card{
	position:relative;
	width:100%;
	aspect-ratio:16/9;
	perspective:1000px;
}

.flip-inner{
	position:absolute;
	width:100%;
	height:100%;
	transition:transform .7s;
	transform-style:preserve-3d;
	transform-origin:center;
}

.flip-card:hover .flip-inner{
	transform:rotateY(180deg) scale(1.05);
}

.flip-front,
.flip-back{
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	backface-visibility:hidden;
	border-radius:10px;
	border:3px solid #F07A6A;
	box-shadow:
		0 0 10px #F07A6A,
		inset 0 0 10px rgba(240,122,106,.3);
	background:#0a0a0a;
	overflow:hidden;
	box-sizing:border-box;
}

/* FRONT IMAGE */

.flip-front{
	transform:translateZ(1px);
}

.flip-front img{
	width:100%;
	height:100%;
	object-fit:cover;
}

/* BACK SIDE */

.flip-back{
	transform:rotateY(180deg) translateZ(1px);
	display:flex;
	flex-direction:column;
	justify-content:center;
	align-items:center;
	text-align:center;
	padding:20px;
	box-sizing:border-box;
}

.flip-back h3{
	margin-bottom:10px;
}


/* =========================
BIO GRID
========================= */

.bio-grid{
	display:flex;
	flex-direction:column;
	gap:40px;
	margin-top:40px;
}

.bio-card{
	display:flex;
	gap:30px;
	background:#0a0a0a;
	padding:30px;
	border-radius:10px;
	border:3px solid #F07A6A;
}

.bio-card img{
	width:240px;
	height:320px;
	object-fit:cover;
	border-radius:6px;
}


/* ================================
FOOTER / CALL TO ACTION / APP ICONS
=================================== */

footer {
    margin-top: 60px;
    padding: 25px;
    text-align: center;
    border-top: 5px solid rgba(255,255,255,0.25);
	box-shadow: 0 -8px 20px rgba(255,255,255,0.03);
}

.cta{
	text-align:center;
	padding:100px 20px;
	background:#111;
}

.social-icons {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 15px;
    flex-wrap: wrap;
}

.social-icons img {
    width: 50px;
    height: 50px;
    transition: transform 0.2s ease;
}

.social-icons img:hover {
    transform: scale(1.1);
}

/* =========================
EVENT PAGE / INDEX EVENT TYPES
========================= */

.event-types{
	padding:80px 20px;
	text-align:center;
	background:#000;
}

.event-types h2{
	font-family:'Roboto Slab';
	font-size:32px;
	margin-bottom:40px;
}

.event-grid{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
	gap:30px;
	max-width:1100px;
	margin:0 auto;
}

.event-card{
	background:#111;
	padding:30px;
	border-radius:10px;
	border:2px solid transparent;
	transition:all .3s ease;
}

.event-card h3{
	font-family:'Roboto Slab';
	margin-bottom:10px;
}

.event-card p{
	font-size:15px;
	line-height:1.5;
}

.event-card:hover{
	transform:translateY(-6px);
	border-color:#F07A6A;
	box-shadow:0 0 18px #F07A6A;
}

.event-card h3::after{
	content:"";
	display:block;
	width:60px;
	height:3px;
	background:#F07A6A;
	margin:10px auto 0;
}

/* =========================
CONTACT PAGE
========================= */

.contact-page{
	position: relative;
	padding: 80px 20px;
	min-height: 600px;
	overflow: hidden;
}

.contact-watermark{
	position: fixed;
	top: 40%;
	left: 0px;
	transform: translateY(-50%);
	width: 400px;
	height: 400px;
	background-image: url("../images/ship.png");
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	opacity: .5;
	filter: brightness(0.6) drop-shadow(0 0 20px rgba(240,122,106,.3));
	z-index: -1;
	pointer-events: none;
}

.contact-section{
	max-width:700px;
	margin:80px auto;
	padding:40px;
	text-align:center;
	background:#0a0a0a;
	border:3px solid #F07A6A;
	border-radius:10px;
	box-shadow:
		0 0 10px #F07A6A,
		inset 0 0 10px rgba(240,122,106,.2);
}

.contact-form{
	display:flex;
	flex-direction:column;
	gap:15px;
	margin-top:30px;
	text-align:left;
}

.contact-form input,
.contact-form select,
.contact-form textarea{
	background:#111;
	border:2px solid #333;
	color:white;
	padding:10px;
	border-radius:5px;
	font-family:Montserrat;
}

.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus{
	outline:none;
	border-color:#F07A6A;
	box-shadow:0 0 8px #F07A6A;
}

/* =========================
STAGE LIGHTS
========================= */

.stage-lights{
	position:fixed;
	top:0;
	left:0;
	width:100%;
	height:100%;
	pointer-events:none;
	background:
		repeating-linear-gradient(
		75deg,
		transparent 0px,
		transparent 120px,
		rgba(240,122,106,.07) 130px,
		transparent 140px
		);
	background-size:800px 800px;
	animation:stageSweep 20s linear infinite;
	z-index:-1;
}

@keyframes stageSweep{
	0%{
		background-position:-600px 0;
	}
	100%{
		background-position:600px 0;
	}
}
}

/* =========================
VIDEO GRID
========================= */
.video-grid {
  display: grid;
  max-width: 900px; /* or whatever your desired container width */
  margin: 60px auto;
  padding: 0 20px;
  gap: 20px; /* vertical gap */
  grid-template-columns: repeat(2, 1fr); /* two equal columns for smaller videos */
  grid-auto-rows: auto;
}

.video-card{
	background:#0a0a0a;
	padding:20px;
	border-radius:10px;
	border:3px solid #F07A6A;
	text-align:center;
	max-width:900px;
	gap: 50px;
	box-shadow:
	0 0 10px rgba(240,122,106,.4),
	inset 0 0 12px rgba(240,122,106,.15);
}

.twitch-card {
	grid-column: 1 / -1; /* span full width */
	margin-bottom: 20px; /* spacing below Twitch before next row */
}

.video-card:not(.twitch-card) {
  width: 100%; /* fill their column */
}

/* Responsive: stack everything on mobile */
@media (max-width: 768px) {
  .video-grid {
    grid-template-columns: 1fr; /* stack all videos */
    gap: 50px; /* vertical gap */
  }
  
  .video-card {
	max-width:90%;
  }

  .twitch-card {
    grid-column: auto; /* full width automatically */
    margin-bottom: 0;
  }
}

/* =========================
RESPONSIVE VIDEO EMBEDS
========================= */

.video-wrapper{
	position:relative;
	width:100%;
	aspect-ratio:16/9;
	margin-top:15px;
}

.video-wrapper iframe{
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	border:none;
	border-radius:6px;
}

/* Featured Twitch player */

.large-video{
	aspect-ratio:16/9;
}

/* =========================
REVIEWS
========================= */

.review-grid{
	max-width:900px;
	margin:60px auto;
	display:grid;
	gap:25px;
	padding:0 20px;
}

.review-card{
	background:#111;
	padding:25px;
	border-radius:10px;
	border:2px solid #F07A6A;
}

/* =========================
LIVE STREAM INDICATOR
========================= */

.live-indicator{
	display:inline-block;
	width:12px;
	height:12px;
	border-radius:50%;
	background:#666;
	margin-right:10px;
	vertical-align:middle;
}

.live-indicator.live{
	background:#ff2a2a;
	box-shadow:
	0 0 6px #ff2a2a,
	0 0 12px #ff2a2a;
	animation:livePulse 1.5s infinite;
}

@keyframes livePulse{
	0%{transform:scale(1);}
	50%{transform:scale(1.3);}
	100%{transform:scale(1);}
}

/* =========================
MOBILE FIXES
========================= */

@media (max-width: 768px){

	/* BIO STACK */
	.bio-card{
		flex-direction:column;
		align-items:center;
		text-align:center;
	}

	.bio-card img{
		width:100%;
		height:auto;
		max-width:300px;
	}

	/* GRID SINGLE COLUMN */
	.show-grid{
		grid-template-columns:1fr;
		gap:20px;
	}

	/* FIX FLIP CARDS */
	.flip-card{
		aspect-ratio: 4/3; /* allow variable height */
	}

  .flip-back{
		padding:20px;
		font-size:14px;
		overflow-y:auto;
	}
	/* DISABLE HOVER SCALE 
	.flip-card:hover .flip-inner{
		transform:none;
	}*/
	
	.flip-card.flipped .flip-inner{
		transform:rotateY(180deg);
	}

  .flip-inner {
    transform-style: preserve-3d;
    transition: transform 0.7s;
  }
}

/* Desktop / large screens */
@media (min-width: 769px) {
  .show-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* 2 columns */
    grid-auto-rows: auto;
    gap: 40px;
    max-width: 900px; /* or 1100px if you prefer */
    margin: 40px auto;
  }
  
  /* Ensure custom show still spans full width */
  .show-card.custom-show {
    grid-column: 1 / -1;
  }
}