/* ==========================
   Keyframes (Animations)
   ========================== */
@keyframes shake {
	0%   { transform: translate(calc(0.33 * var(--shake-intensity)), calc(0.33 * var(--shake-intensity))) rotate(0deg); }
	10%  { transform: translate(calc(-0.33 * var(--shake-intensity)), calc(-0.66 * var(--shake-intensity))) rotate(-1deg); }
	20%  { transform: translate(calc(-1 * var(--shake-intensity)), 0px) rotate(1deg); }
	30%  { transform: translate(var(--shake-intensity), calc(0.66 * var(--shake-intensity))) rotate(0deg); }
	40%  { transform: translate(calc(0.33 * var(--shake-intensity)), calc(-0.33 * var(--shake-intensity))) rotate(1deg); }
	50%  { transform: translate(calc(-0.33 * var(--shake-intensity)), calc(0.66 * var(--shake-intensity))) rotate(-1deg); }
	60%  { transform: translate(calc(-1 * var(--shake-intensity)), calc(0.33 * var(--shake-intensity))) rotate(0deg); }
	70%  { transform: translate(var(--shake-intensity), calc(0.33 * var(--shake-intensity))) rotate(-1deg); }
	80%  { transform: translate(calc(-0.33 * var(--shake-intensity)), calc(-0.33 * var(--shake-intensity))) rotate(1deg); }
	90%  { transform: translate(calc(0.33 * var(--shake-intensity)), calc(0.66 * var(--shake-intensity))) rotate(0deg); }
	100% { transform: translate(calc(0.33 * var(--shake-intensity)), calc(-0.66 * var(--shake-intensity))) rotate(-1deg); }
}
@keyframes pulse {
	100% {
		transform: scale(1);
	}
	0% {
		transform: scale(var(--pulse-scale));
	}
}

/* ==========================
   Base Styles
   ========================== */
html {
	scroll-behavior: smooth;
	scrollbar-color: #bada55 #111;
	scrollbar-width: thin;
	
}
body {
	margin: 0;
	font-family: sans-serif;
	font-size: 16px;
	color: white;
	background-color: #111;
	background: #111 url('images/body-background.webp') bottom / cover no-repeat;
}
h1, h2, h3 {
	font-family: 'Road Rage', sans-serif;
	color: #bada55;
	text-transform: uppercase;
}
h1 {
	font-size: 64px;
}
h2 {
	font-size: 48px;
}
h3 {
	font-size: 36px;
}
@media screen and (max-width: 799px) {
	h1 {
		font-size: 48px;
	}
	h2 {
		font-size: 42px;
	}
	h3 {
		font-size: 32px;
	}
	
}
a, a:visited, a:active {
	color: #cccccc;
}
a:hover:not(.button) {
	color: #bada55;
}

/* ==========================
   Layout Sections
   ========================== */
.section {
	padding: 60px 20px;
	text-align: center;
	max-width: 1080px;
	margin: 0 auto;
}

/* ==========================
   Hero Section
   ========================== */
.hero {
	background: url('images/hero-background.webp') center/cover no-repeat;
	text-align: center;
	padding: 100px 20px;
	box-shadow: inset 0px 0px 10px rgba(0,0,0,.6)
}
.hero img {
	max-width: 600px;
	width: 80%;
	margin-bottom: 20px;
	--shake-intensity: 1px;
	animation: shake 0.4s infinite linear;
}
.hero h1.logo {
	--pulse-scale: 1.06;
	animation: pulse 0.45s infinite ease-in;
	margin: 0 auto;
	max-width: 90vw;
}

/* ==========================
   Responsive Video
   ========================== */
.responsive-video {
	position: relative;
	width: 100%;
	margin: 0 auto;
	padding-bottom: 56.25%;
	height: 0;
}
.responsive-video iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

/* ==========================
   Show List (Upcoming Shows)
   ========================== */
.show-list {
	list-style: none;
	padding: 0;
	margin: 0 auto 30px auto;
	max-width: 600px;
}
.show-list li {
	background: rgba(34,34,34,.5);
	margin: 15px 0;
	padding: 20px;
	border-radius: 10px;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	font-size: 20px;
	box-shadow: 0 5px 10px rgba(0,0,0,0.3);
	transition: all .2s;
	line-height: inherit;
}
.show-list li:hover {
	transform: scale(1.1);
	box-shadow: 0 10px 20px rgba(0,0,0,0.6);
	z-index: 999;
}
.show-list li.has-poster:hover {
	cursor: pointer;
}
.show-list li.past-gig:not(.show) {
	display: none;
}
.show-list li.past-gig.show {
	opacity: .6;
}
.show-list .date {
	font-weight: bold;
	color: #bada55;
	margin-right: 15px;
}
.show-list .date a {
	text-decoration: none;
	color: #bada55;
}
.show-list .time {
	color: #fff;
	margin-right: 15px;
}
.show-list .venue {
	color: #cccccc;
	flex-basis: 100%;
	margin-top: 8px;
	font-size: 16px;
	text-align: left;
}
.show-list .details {
	display: block;
	width: 100%;
	margin-top: 10px;
	font-size: 16px;
	font-style: italic;
	text-align: left;
}

/* ==========================
   Bio Grid (Band Members)
   ========================== */
.bio-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: stretch;
	max-width: 1000px;
	margin: 0 auto;
	margin-top: 20px;
}
.bio-member {
	background: rgba(34,34,34,.5);
	box-shadow: 0 5px 10px rgba(0,0,0,0.3);
	padding: 20px;
	border-radius: 10px;
	max-width: 250px;
	margin: 10px;
	transition: all .2s;
}
.bio-member img {
	width: 100%;
	height: auto;
	border-radius: 10px;
	margin-bottom: 10px;
}
.bio-member h3 {
	margin: 0;
}
.bio-member:nth-child(odd) {
	transform: rotate(-1deg);
}
.bio-member:nth-child(even) {
	transform: rotate(1deg);
}
.bio-member:hover {
	box-shadow: 0 10px 20px rgba(0,0,0,0.6);
	transform: scale(1.05) rotate(0deg);
	z-index: 999;
}

/* ==========================
   Form Styles
   ========================== */
form {
	display: flex;
	flex-direction: column;
	max-width: 400px;
	margin: 0 auto;
}
form input, form textarea {
	padding: 10px;
	margin: 10px 0;
	border: none;
	border-radius: 5px;
	font-family: sans-serif;
}
form button,
a.button {
	background-color: #bada55;
	color: #111;
	border: none;
	padding: 10px;
	font-size: 32px;
	cursor: pointer;
	border-radius: 5px;
	text-decoration: none;
	display: inline-block;
	text-transform: uppercase;
	font-family: 'Road Rage', sans-serif;
	margin: 10px 0;
}
form button:hover,
a.button:hover {
	--shake-intensity: 1px;
	animation: shake 0.4s infinite linear;
}

/* ==========================
   Footer Styles
   ========================== */
img.oscar {
	width: 150px; 
	height: auto; 
	display: block; 
	margin: 20px auto;
}
img.oscar:hover {
	--shake-intensity: 13px;
	animation: shake 0.4s infinite linear;
	cursor: grabbing;
}
ul.social-links {
	list-style: none;
	padding: 0;
	margin: 20px auto 0 auto;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 20px;
}
ul.social-links li {
	margin: 0;
}
ul.social-links li a img {
	width: 40px;
	height: 40px;
}
ul.social-links li a img:hover {
	--shake-intensity: 1px;
	animation: shake 0.4s infinite linear;
	cursor: pointer;
}