@import url('https://fonts.googleapis.com/css2?family=Roboto+Mono&display=swap');

/* ============================================= NAVBAR ============================================= */

.navbar {
	width: 100%;
	height: 65px;
	display: flex;
	justify-content: space-between;
	flex-wrap: nowrap;
	gap: 50px;
	margin-bottom: 40px;
	
	background-color: rgb(0, 43, 107);; /*background behind navbar */
	padding: 0% 0%;				 /* space around the links */
	box-shadow: 0 0 20px #00ffff33; /* optional neon glow effect behind box */
	border: 1px solid #00ffff;

	position: fixed;
}

.navbar-item {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: center;
	align-items: center;
	height: 100%;
	gap: 2%;

	position: relative;
}

.navbar img {

	height: 50px;
	align-items: center;
	height: 100%;

}

.navbar a {
	display: flex;

	white-space: nowrap;
	padding: 0px 16px;
	align-items: center;
	justify-content: center;
	height: 100%;
	min-width: 50px;
	
	color: #00ffff;
	text-decoration: none;
	font-family: 'Roboto Mono', monospace;
	font-weight: bold;
	font-size: clamp(20px, 1.2vw, 18px);

	transition: 0.3s ease;
}

.navbar a:hover {
	background-color: #00ffff;
	color: #000030;
	box-shadow: 0 0 10px #00ffff, 0 0 20px #00ffff, 0 0 40px #00ffff;
}

.navbar-item div:hover .nav-dropdown{
	display: flex;
}

.navbar-item div:hover .nav-dropdown-left{
	display: flex;
}

/* DROPDOWN MENU */
.nav-dropdown {
	position: absolute;
	top: 100%;
	left: 0;

	display: none;
	flex-direction: column;

	background-color: rgb(0, 43, 107);
	border: 1px solid #00ffff;
	box-shadow: 0 0 20px #00ffff33;

	min-width: 160px;
}

/* DROPDOWN MENU */
.nav-dropdown-left {
	position: absolute;
	top: 100%;
	right: 0;

	display: none;
	flex-direction: column;

	background-color: rgb(0, 43, 107);
	border: 1px solid #00ffff;
	box-shadow: 0 0 20px #00ffff33;

	min-width: 160px;
}

/* DROPDOWN LINKS */
.nav-dropdown a {
	height: auto;
	padding: 10px 16px;
	justify-content: flex-start;
}

/* DROPDOWN LINKS */
.nav-dropdown-left a {
	height: auto;
	padding: 10px 16px;
	justify-content: flex-start;
}

.content {
	padding-top: 45px;
}

/* ============================================= TITLE ============================================= */
h1 {
	color: #00ffff;
	font-size: clamp(28px, 8vw, 60px);
	text-shadow:
		0 0 5px #00ffff,
		0 0 10px #00ffff,
		0 0 20px #00ffff,
		0 0 40px #00ffff;
}

h2 {
	color: #00ffff;
	font-size: clamp(18px, 8vw, 40px);
	text-shadow:
		0 0 5px #00ffff,
		0 0 10px #00ffff,
		0 0 20px #00ffff,
		0 0 40px #00ffff;
}

body {
	background-color: #000030;
	font-family: 'Roboto Mono', monospace;
	text-align: center;
	padding-top: 0px;
	padding-left: 0px;
	padding-right: 0px;
	margin: 0px;
}

/* ============================================= BUTTONS ============================================= */
.button-container {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.button-grid {
	display: grid;
	grid-template-columns: repeat(var(--cols, 3), 1fr);
	gap: 20px;
	justify-items: center;
}

.neon-btn {
	background-color: transparent;
	color: #00ffff;
	border: 2px solid #00ffff;
	padding: 15px 40px;
	font-size: 18px;
	font-family: 'Roboto Mono', monospace;
	text-decoration: none;
	margin: 20px;
	cursor: pointer;
	text-transform: uppercase;
	letter-spacing: 2px;
	transition: 0.3s ease;
	box-shadow:
		0 0 5px #00ffff,
		0 0 10px #00ffff;
}

.neon-btn:hover {
	background-color: #00ffff;
	color: #000030;
	box-shadow:
		0 0 10px #00ffff,
		0 0 20px #00ffff,
		0 0 40px #00ffff;
}


/* ============================================= OPENING SCROLL-STYLE BUTTONS: ============================================= */
.scroll-panel {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.5s ease, opacity 0.5s ease;
	opacity: 0;
	width: 60%;
	max-width: 800px;
	margin: 0 auto;
	color: #00ffff;
}

.scroll-panel.open {
	max-height: 200px;
	opacity: 1;
}

.info-text {
	width: 60%;
	max-width: 800px;
	margin: 0 auto;
	color: #00ffff;
}


/* ============================================= LAYOUTS ============================================= */

.info-card {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: 20px;

	width: 80%;
	margin: 20px auto;
    padding: 20px;
}

.top-align {
	align-items: flex-start;
}

.info-card-vertical {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: space-between;
	gap: 20px;

	width: 80%;
	margin: 20px auto;
    padding: 20px;
}

.info-card-vertical p {
	width: 70%;
	max-width: 800px;
	margin: 0 auto;
}

.info-card .card-text {
    flex: 2;   
    text-align: left;
}

.info-card img {
    flex: 1;        
    max-width: 350px;
    height: auto;
}

.info-card .char-card-img{
	border: #00ffff solid 2px;
	border-style: dashed;
	border-radius: 100px;
	max-width: 200px;
	height: auto;
}

.stats-table {
	width: 90%;
	border: #00ffff solid 2px;
	border-collapse: collapse;
	margin: 20px auto;
}

.stats-table th, .stats-table td {
	border: #00ffff solid 1px;
	color: #00ffff;
	background-color: #012247;
	padding: 8px;
	text-align: center;

	word-wrap: break-word;
	overflow-wrap: break-word;
	white-space: normal;
	min-width: 0;
	max-width: 175px;
}

.info-table {
	width: 80%;
	border: #00ffff solid 2px;
	border-collapse: collapse;
	margin: 20px auto;
}

.info-table th, .info-table td {
	border: #00ffff solid 1px;
	color: #00ffff;
	background-color: #252530;
	padding: 8px;
	text-align: center;
}

.info-card-table {
	width: 95%;
	border: #00ffff solid 2px;
	border-collapse: collapse;
	margin: 10px auto;
}

.info-card-table th, .info-card-table td {
	border: #00ffff solid 1px;
	color: #00ffff;
	padding: 5px;
	text-align: center;
	text-wrap: break-word;
}

.info-list {
	width: 80%;
	max-width: 800px;
	margin: 20px auto;
	color: #00ffff;
	text-align: left;
}

.info-list ul {
	list-style-type: disc;
	padding-left: 20px;
	color: #00ffff;
}

.info-list li {
	margin-bottom: 10px;
	color: #00ffff;
}

.npc-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
	gap: 20px;
	justify-items: center;
}

.npc-grid div {
	background-color: #003d5b;
	border-color: #000030;
	border-radius: 20px;
	
}

.npc-grid-learn-button {
	background-color: transparent;
	color: #000030;
	border: 2px solid #000030;
	padding: 5px 30px;
	font-size: 18px;
	font-family: 'Roboto Mono', monospace;
	text-decoration: none;
	margin: 20px;
	cursor: pointer;
	text-transform: uppercase;
	letter-spacing: 2px;
	transition: 0.3s ease;
	box-shadow:
		0 0 5px #000030,
		0 0 10px #000030;
}

.npc-grid-learn-button:hover {
	background-color: #00ffff;
	color: #000030;
	box-shadow:
		0 0 10px #00ffff,
		0 0 20px #00ffff,
		0 0 40px #00ffff;
}

/* ============================================= IMAGES ============================================= */
img {
	max-width: 100%;
	height: auto;
}



/* ============================================= WAVY + SHINE TEXT ============================================= */
.wave {
	font-size: 28px;
	display: inline-block;
}

.wave span {
	display: inline-block;

	background: linear-gradient(
		120deg,
		#00aaff 0%,
		#00aaff 40%,
		#ffffff 50%,
		#00aaff 60%,
		#00aaff 100%
	);

	background-size: 200% auto;
	background-position: -200% center;

	-webkit-background-clip: text;
	background-clip: text;

	-webkit-text-fill-color: transparent;
	color: transparent;

	animation:
		wave 1.5s infinite ease-in-out,
		shineText 4s infinite linear;
}

/* Wave timing per letter */
.wave span:nth-child(1)	{ animation-delay: 0s; }
.wave span:nth-child(2)	{ animation-delay: 0.1s; }
.wave span:nth-child(3)	{ animation-delay: 0.2s; }
.wave span:nth-child(4)	{ animation-delay: 0.3s; }
.wave span:nth-child(5)	{ animation-delay: 0.4s; }
.wave span:nth-child(6)	{ animation-delay: 0.5s; }
.wave span:nth-child(7)	{ animation-delay: 0.6s; }
.wave span:nth-child(8)	{ animation-delay: 0.7s; }
.wave span:nth-child(9)	{ animation-delay: 0.8s; }
.wave span:nth-child(10) { animation-delay: 0.9s; }
.wave span:nth-child(11) { animation-delay: 1s; }
.wave span:nth-child(12) { animation-delay: 1.1s; }
.wave span:nth-child(13) { animation-delay: 1.2s; }
.wave span:nth-child(14) { animation-delay: 1.3s; }
.wave span:nth-child(15) { animation-delay: 1.4s; }
.wave span:nth-child(16) { animation-delay: 1.5s; }
.wave span:nth-child(17) { animation-delay: 1.6s; }
.wave span:nth-child(18) { animation-delay: 1.7s; }
.wave span:nth-child(19) { animation-delay: 1.8s; }
.wave span:nth-child(20) { animation-delay: 1.9s; }
.wave span:nth-child(21) { animation-delay: 2s; }
.wave span:nth-child(22) { animation-delay: 2.1s; }
.wave span:nth-child(23) { animation-delay: 2.2s; }
.wave span:nth-child(24) { animation-delay: 2.3s; }
.wave span:nth-child(25) { animation-delay: 2.4s; }
.wave span:nth-child(26) { animation-delay: 2.5s; }
.wave span:nth-child(27) { animation-delay: 2.6s; }
.wave span:nth-child(28) { animation-delay: 2.7s; }
.wave span:nth-child(29) { animation-delay: 2.8s; }
.wave span:nth-child(30) { animation-delay: 2.9s; }
.wave span:nth-child(31) { animation-delay: 3s; }
.wave span:nth-child(32) { animation-delay: 3.1s; }
.wave span:nth-child(33) { animation-delay: 3.2s; }
.wave span:nth-child(34) { animation-delay: 3.3s; }
.wave span:nth-child(35) { animation-delay: 3.4s; }
.wave span:nth-child(36) { animation-delay: 3.5s; }
.wave span:nth-child(37) { animation-delay: 3.6s; }

/* Shine animation */
@keyframes shineText {
	0% {
		background-position: -200% center;
	}
	100% {
		background-position: 200% center;
	}
}

/* Wave animation */
@keyframes wave {
	0%, 100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(-10px);
	}
}


/* RESCALING */
@media (max-width: 768px) {
	body {
		padding-top: 0px;
	}
	.mc-panel,
	.about-panel,
	.info-text {
		width: 95%;
	}
     .info-card {
    flex-direction: column; /* stack images vertically on small screens */
    gap: 20px;
  }
  .info-card img {
    width: 90%;            /* fill most of container */
  }
}
