body {
	background-color: rgba(20, 20, 20, 1);
	color: rgba(224, 214, 195, 1);
	font-family: 'Georgia', serif;
}

.header {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	flex-wrap: wrap;
	padding: 1vw 0vw;
	gap: 1.5vw;
}

.logo {
	height: 150px;
	flex: 0 0 auto;
}

.lore {
	flex: 1 1 auto;
	max-width: 100%;
	border-left: .3vw solid rgba(139, 94, 60, 1);
	border-radius: .5vw;
	padding-left: .2vw;
	font-family: 'Uncial Antiqua', serif;
	color: rgba(215, 196, 120, 1);
	font-size: 1.2vw;
	line-height: 1.8;
	background: rgba(34, 27, 22, 0.5);
	letter-spacing: .1vw;
	padding: 1vw 1.5vw;
}

.lore-quote {
	font-style: italic;
	quotes: "“" "”";
	position: relative;
}

.lore-quote:before {
	content: open-quote;
	font-size: 1.6vw;
	position: absolute;
	left: -.9vw;
	top: -.7vw;
	color: rgba(163, 140, 109, 1);
}

.lore-quote:after {
	content: close-quote;
	font-size: 1.6vw;
	display: inline-block;
	vertical-align: baseline;
	transform: translateY(1.1vw);
	margin-left: -.4vw;
	color: rgba(163, 140, 109, 1);
}

.online-members {
	flex: 0 0 auto;
	background: rgba(38, 34, 28, 1);
	padding: 1vw .75vw;
	border: .1vw solid rgba(75, 57, 45, 1);
	border-radius: .6vw;
	font-family: 'Cinzel', monospace;
	min-width: 15vw;
	max-width: 25vw;
}

.online-members h3 {
	margin-top: 0;
	font-size: 1.1vw;
	color: rgba(202, 165, 109, 1);
	border-bottom: .2vw solid rgba(75, 57, 45, 1);
	padding-bottom: .4vw;
	font-family: 'Cinzel', serif;
	text-transform: uppercase;
}

.online-members h2 {
	margin-top: 0;
	font-size: 1.3vw;
	color: rgba(202, 165, 109, 1);
	border-bottom: .2vw solid rgba(75, 57, 45, 1);
	padding-bottom: .4vw;
}

.online-members ul {
	list-style-type: none;
	padding: 0rem;
}

.online-status-dot {
	display: inline-block;
	width: 1vw;
	height: 1vw;
	margin-right: .6vw;
	border-radius: 50%;
}

.online {
	background-color: rgba(76, 175, 80, 1);
}

.offline {
	background-color: rgba(242, 21, 21, 1);
}

.online-streamers-container {
	display: inline-block;
	padding: .9vw;
	gap: .75rem;
}

.offline-banner, .background, .back {
	background: url('/images/bayou-bg.png') no-repeat center center;
	background-size: cover;
	position: relative;
	min-height: 50vh;
	height: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(244, 232, 216, 1);
	font-family: 'Cinzel', serif; /* Western Feeling */
}

.background, .back {
	gap: 1.5vw;
	flex-wrap: wrap;
}

.offline-overlay {
	background: rgba(0, 0, 0, 0.6);
	padding: 3rem;
	border: 2px solid rgba(163, 130, 82, 1);
	border-radius: 1rem;
	box-shadow: 0 0 30px rgba(0, 0, 0, 0.9);
}

.offline-overlay h1 {
	font-size: 3rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin-bottom: 1rem;
}

.offline-overlay p {
	font-size: 1.5rem;
	opacity: 0.8;
}

/* Optional: Flackern */
@keyframes flicker {
	0%, 18%, 22%, 25%, 53%, 57%, 100% {
    opacity: 1;
  }
  20%, 24%, 55% {
	  opacity: 0.4;
	  }
}
.offline-overlay {
	animation: flicker 5s infinite;
}

.online-streamers-container {
	margin-top: 1rem;
	background: rgba(0, 0, 0, 0.6);
	padding: 1.5rem;
	border: 2px solid rgba(163, 130, 82, 1);
	border-radius: 1rem;
	box-shadow: 0 0 30px rgba(0, 0, 0, 0.9);
	height: auto;
}

@keyframes torchFlicker {
  0%, 19%, 22%, 25%, 53%, 57%, 100% {
    box-shadow: 0 0 20px rgba(255, 140, 20, 0.15);
  }
  20%, 24%, 55% {
    box-shadow: 0 0 35px rgba(255, 100, 10, 0.4);
  }
}

.online-streamers-container {
  animation: torchFlicker 4s infinite ease-in-out;
}

form {
	width: 40em;
}

legend {
	border: .2vw solid rgba(163, 130, 82, 1);
}

input[type="text"], input[type="password"]  {
	width: 90%;
	margin: .7vw 0vw;
	padding: .5vw;
	background: none;
	color: rgba(163, 140, 109, 1);
	outline: none;
}

.center {
	text-align: center;
}

.loginform {
	display: none;
}

button {
	all: unset;
	box-sizing: border-box;
}

button.logoutbutton, button.login {
	width: 90%;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	margin: .5vw auto;
	padding: .7vw .5vw;
	background-color: rgba(50, 38, 23, 0.8);
	color: rgba(244, 232, 216, 1);
	border: 2px solid rgba(163, 140, 109, 1);
	border-radius: 8px;
	font-family: 'Cinzel', serif;
	text-transform: uppercase;
	letter-spacing: 1px;
	cursor: pointer;
	transition: all 0.2s ease-in-out;
}

button.logoutbutton:hover, button.login:hover {
	background-color: rgba(80, 60, 40, .9);
	transform: scale(1.02);
}

@media (max-width: 768px) {
	button.logoutbutton.halfwidth {
		width: 90%;
		display: block;
		margin: .5vw auto;
	}
}

button.logoutbutton.halfwidth {
	width: 45%;
	margin: .5vw 1%;
}

button.logoutbutton.fullwidth {
	width: 90%;
	margin: .5vw auto;
}

.logout-box.hidden {
  display: none;
}

.lock-icon {
	display: inline-block;
	width: 24px;
	height: 45px;
	margin-right: 8px;
	background-size: contain;
	background-repeat: no-repeat;
	vertical-align: middle;
	transition: background-image 0.2s ease-in-out;
	opacity: 1;
}

button.login .lock-icon {
	background-image: url('/images/icons/lock-closed.png');
}

button.login:hover .lock-icon {
	background-image: url('/images/icons/lock-open.png');
}

button.logoutbutton .lock-icon {
	background-image: url('/images/icons/lock-open.png');
}

button.logoutbutton:hover .lock-icon {
	background-image: url('/images/icons/lock-closed.png');
}

.logout-box {
	display: flex;
	align-items: center;
	justify-content: center;
}

.secbuttonspan {
	width: 1px;
	height: 45px;
	margin-right: 8px;
	background-size: contain;
	background-repeat: no-repeat;
	vertical-align: middle;
}

.logout-box {
	margin: 2vh 0;
}

.bloodmoon-container {
	position: absolute;
	top: .5vw;
	right: 20vw;
	z-index: 1;
	animation: pulseGlow 5s ease-in-out infinite;
	pointer-events: none;
}

.bloodmoon {
	width: 200px;
	height: auto;
	opacity: .75;
	filter: drop-shadow(0 0 10px rgba(255, 0, 0 , .4));
}

@keyframes pulseGlow {
	0%, 100% {
		transform: scale(1);
		filter: drop-shadow(0 0 10px rgba(255, 40, 40, .4));
		opacity: .75;
	}
	25% {
		filter: drop-shadow(0 0 14px rgba(255, 0, 0, .6));
		opacity: .85;
	}
	50% {
		transform: scale(1.15);
		filter: drop-shadow(0 0 20px rgba(255, 20, 20, .7));
		opacity: .90;
	}
	75% {
		filter: drop-shadow(0 0 14px rgba(255, 0, 0, .6));
		opacity: .95;
	}
}

.moon-smoke {
	position: absolute;
	top: 5vw;
	right: 20vw;
	width: 100px;
	height: 80px;
	background: url('/images/bloodmoon/smoke.png') no-repeat center;
	background-size: contain;
	filter: blur(1.5px) opacity(.9);
	pointer-events: none;
	z-index: 2;
	animation: driftLeft 12s ease-in-out infinite, fadeInOut 12s ease-in-out infinite;
}

@keyframes driftLeft {
	0% { transform: translateX(0px) translateY(0px) scale(1); }
	50% { transform: translateX(-40px) translateY(-10px) scale(1.05); }
	100% { transform: translateX(-80px) translateY(0px) scale(1); }
}

@keyframes fadeInOut {
	0%, 100% { opacity: 0; }
	10%, 90% { opacity: .6; }
	50% { opacity: .3; }
}

.vidprev {
	transition: transform .3s ease, box-shadow .3s ease;
	border: 2px solid rgba(163, 140, 109, .4);
	border-radius: .5vw;
	box-shadow: 0 0 10px rgba(163, 130, 82, .2);
}

.vidprev:hover {
	transform: scale(1.03);
	box-shadow: 0 0 25px rgba(255, 160, 80, .4), 0 0 10px rgba(255, 200, 150, .2) inset;
}

.session-warning-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	background: rgba(0, 0, 0, .7);
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 9999;
}

.session-box {
	background: rgba(38, 34, 28, .95);
	border: 2px solid rgba(163, 130, 82, 1);
	border-radius: 1rem;
	padding: 2rem 3rem;
	color: rgba(244, 232, 216, 1);
	font-family: 'Cinzel', serif;
	text-align: center;
	box-shadow: 0 0 30px rgba(0, 0, 0, .9);
}

.session-box button {
	margin-top: 1rem;
	padding: .6rem 2rem;
	background: rgba(80, 60, 40, .9);
	color: inherit;
	border: 2px solid rgba(163, 130, 82, 1);
	border-radius: 8px;
	cursor: pointer;
	font-family: 'Cinzel', serif;
	text-transform: uppercase;
}

.hidden {
	display: none !important;
}

#player {
  display: block;
  width: 100% !important;
  max-width: 1280px;
  aspect-ratio: 16/9;
}

.vidcontainer {
	min-width: 760px;
	max-width: 1280px;
	aspec-ratio: 16 / 9;
}