/*  */
@import url('https://fonts.googleapis.com/css2?family=Bitcount+Single:wght@100..900&display=swap');
:root {
	--bg-dark: rgb(0,0,0);
  	--primary-color: oklch(56.71% 0.1517 299.04);
	--accent-color: oklch(58.08% 0.0642 224.24);
	--hover-color: oklch(64.367% 0.06217 223.097);
	--contrast: oklch(98.9% 0.0403 107.11);

	--max-width: 960px;
	--radius:10px;
}

*, *::before,*::after{
	margin: 0;
}

body {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 0;
	padding: 0 1rem;
	line-height: 1.5;
	background-color: #243b55;
	background-image: linear-gradient(to bottom, #243b55, #141e30);
	color: var(--contrast);
	font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
	& header, main, footer{
		box-sizing: border-box;
		width: 100%;
		margin:1rem;
		max-width: var(--max-width);
		background: linear-gradient(to right, #000000, #152331);
		border: 1px dotted var(--primary-color);
		border-radius: var(--radius);
		box-shadow: 0 0 5px rgb(223, 233, 243),
			0 0 10px rgb(223, 233, 243);
	}
	& a, a:hover, a:focus {color:var(--contrast);}
	& u {
		text-decoration: #f00 wavy underline;
	}
	
	@media (max-width:800px){
		padding: 0;
		& header, main, footer{
			border: none;
			box-shadow: none;
			border-radius: 0;
			margin: 0;
			padding: 1rem 0;
		}
	}
}

header{
	padding-top: 1rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	& h1,p {
		font-family: "Bitcount Single", monospace;
		font-weight: 400;
		padding: 0 1rem;
		text-align: center;
	}
	& h1 {
		font-size: clamp(1.75rem, 0.9167rem + 4.1667vw, 3rem);
	}
	& p {
		font-size: clamp(1rem, 0.6667rem + 1.6667vw, 1.5rem);
	}
}

nav{
	display: flex;
	justify-content: start;
	padding: 1rem;
	margin-top: 1rem;
	& ul {
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
		gap: 1rem;
		list-style-type: none;
		padding: 0;
	}
	& a, a:hover, a:focus{
		text-decoration: none;
		font-family: Arial, sans-serif;
	}
	/*
	& a, a:hover,a:focus {
		border: 1px dotted var(--accent-color);
		border-radius: var(--radius);
		text-decoration: none;
		color: #fff;
		padding: 0.5rem 1rem;
		font-family: Arial, sans-serif;
		text-transform: uppercase;
	}
	/*
	& a:hover{
		background: var(--accent-color);
	}*/
}

main{
	display: grid;
	gap: 10px;
	grid-template-columns: 3fr 1fr;
	padding: 1rem;
	& article,aside{
	  min-width: 0;
		padding: 1rem;
		/*border:1px dotted var(--primary-color);
		border-radius: var(--radius);
		background-color: var(--contrast);
		background-image: linear-gradient(to bottom, rgb(223, 233, 243) 0%, rgb(250, 245, 245) 100%);
		box-shadow: 0 0 5px rgb(223, 233, 243),
			0 0 10px rgb(223, 233, 243);*/
	}
	& section, div, p, h1, h2, h3, h4, h5, h6 {
		margin: 1rem 0;
	}
	@media (max-width: 800px){
		display: flex;
		flex-direction: column;
	}
}

footer{
	padding: 2rem 0;
	color:var(--contrast);
	p{
		padding:0 1rem;
	}
}

picture, img, video, iframe, audio, figure{
	max-width:100%;
	height:auto;
}

figcaption{
	font-style: italic;
	text-align: center;
}

fieldset {
	border: 1px dotted var(--primary-color);
	border-radius: 0.5rem;
	display: flex;
	flex-direction: column;
	gap:5px;
	min-width: 0;
	width: 100%;
	box-sizing: border-box;
	& * {
		width: 100%;
		box-sizing: border-box;
	}
	& textarea, select, input:not([type="color"],[type="file"],[type="radio"]), button{
		border: 1px solid var(--primary-color);
		padding: 0.5rem;
		border-radius: 0.5rem;
		margin: 0.5rem 0;
	}
	& legend{
		width:fit-content;
	}
	& #formStatus {
		margin-top: 10px; 
		display: none;
		color: var(--contrast);
	}
}

pre, code{
	max-width: 100%;
	overflow-x: auto;
	white-space: pre;
	word-wrap: normal;
	background: #141e30;
	color: rgb(58, 221, 101);
	font-family: 'Courier New', Courier, monospace;
	word-break: break-all;
}

#commentsContainer{
	padding: 1rem;
	border: 1px dotted var(--primary-color);
	border-radius: var(--radius);
	& div {margin: 0;}

	& .comment-card{
		background:rgba(14,53,92,1);
		background-image: linear-gradient( to right,  #152331, #29435E);
		padding: 1rem;
		margin: 0.5rem 0;
	}
	& .comment-meta{
		font-weight: bold;
		border-bottom:1px dotted rgba(255,229,145,1);
		margin-bottom: 1rem;
	}
}

.btn-grad {
  background-image: linear-gradient(to right, #16222A 0%, #3A6073 51%, #16222A 100%);
}

.btn-grad {
  padding: 0.5rem 1rem;
  text-align: center;
  text-transform: uppercase;
  transition: 0.5s;
  background-size: 200% auto;
  color: var(--contrast);
  box-shadow: 0 0 5px #fff;
  border-radius: 10px;
  display: block;
  outline: none;
  border: none;
}

.btn-grad:hover {
  background-position: right center;
  color: #fff;
  text-decoration: none;
}

/* Full-page background cover */
.loading-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(250, 250, 250, 0.9); 
  z-index: 9999;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

/* CSS Animated Spinner */
.loading-spinner {
  width: 50px;
  height: 50px;
  border: 5px solid #f3f3f3; /* Light grey track */
  border-top: 5px solid #3498db; /* Blue spinning accent */
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

/* Rotation Animation */
@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* Utility class to hide the loader via JavaScript */
.loading-overlay.hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none; /* Prevents clicking blocked elements */
}

.svg-icons{
	display:inline-block;
	height:1rem;
	vertical-align:-0.125rem;
	width:1rem;
	fill:currentColor;

}
.neon-pulse {
	color: #fff;
  text-shadow:
      0 0 7px #fff,
	  0 0 15px #fff,
	  0 0 21px #fff,
      0 0 42px #5271ff,
      0 0 82px #5271ff,
      0 0 92px #5271ff,
      0 0 102px #5271ff,
      0 0 151px #5271ff;
}