@font-face {
  font-family: 'VT323';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/vt323/v17/pxiKyp0ihIEF2isfFJA.ttf) format('truetype');
}
* {
  box-sizing: border-box;
}
body {
  background: #383838;
  color: #1498ce;
  font-family: 'VT323';
  font-size: 24px;
  -webkit-font-smoothing: none;
  line-height: 1.2;
  display: flex;
  justify-content: center;
  align-items: center;
}
.header {
	display: flex;
	justify-content: space-between;
	padding-bottom: 0.5rem;
	border-bottom: thick #1498ce dashed;
	margin-bottom: 0.2rem;
}
.login {
	align-self: last baseline;
	padding-right: 1.6rem;
}
.items {
	overflow-y: scroll;
	overflow-x: clip;
	scrollbar-color: #1498ce black;
	scrollbar-width: thin;
}
h1 {
  font-size: 4rem;
  margin-bottom: 1rem;
  margin-top: 0;
  text-transform: uppercase;
}
p {
  margin-bottom: 2rem;
}

.messagelist {
	margin-bottom: 0.5rem;
	margin-top: 0;
}
.update {
	margin: 0;
}
button {
	all: revert;
	background: inherit;
	border: none;
	box-sizing: border-box;
	font-size: xx-large;
	font-family: inherit;
	text-shadow: inherit;
}
a,
button,
a:visited {
  border-bottom: 0.2rem solid #1498ce;
  color: #1498ce;
  text-decoration: none;
}

a:active,
a:focus,
a:hover,
button:hover {
  background-color: #1498ce;
  color: #031e11;
  cursor: pointer;
}
.piece {
  display: block;
  height: 100%;
  left: 0;
  top: 0;
  width: 100%;
}
.noclick {
  pointer-events: none;
}

.message {
	border-radius: 30px;
	border-width: 4px;
	border-style: groove;
	border-color: #1498ce;
	padding: 1rem 2rem;
	margin-bottom: 1rem;
	width: 99%;
        animation: textShadow 22s ease-in-out infinite; 
}

.message:last-of-type {
	margin-bottom: initial;
}
.frame {
  background-color: transparent;
  border-radius: 2rem;
  border: 1rem solid;
  border-bottom-color: #121212;
  border-left-color: #080808;
  border-right-color: #080808;
  border-top-color: #020202;
  box-shadow: inset 0 0 18rem black,
    inset 0 0 3rem black,
    0 0 10rem black;
  height: 96%;
  position: absolute;
  top: 2%;
  width: 80vw;
  pointer-events: none;
  max-width: 1800px;
  overflow: hidden;
}

.output {
  animation: crt-output 10ms infinite, textpulse 7s infinite;
  background-color: #031e11;
  overflow: clip;
  position: absolute;
  padding: 2rem 2rem 0 2rem;
  pointer-events: auto;
  text-shadow: 0rem 0.2rem 1rem #0c467b;
  z-index: -1;
  display: grid;
  grid-template-rows: 100px 1fr;
}
.messagedisplay{
  animation: crt-output 10ms infinite;
  background-color: #031e11;
  overflow: clip;
  position: absolute;
  padding: 2rem 2rem 0 2rem;
  pointer-events: auto;
  text-shadow: 0rem 0.2rem 1rem #0c467b;
  z-index: -1;
}

.dividerline {
	width: 100%;
	height: 4px;
	border-top: 2px solid;
	border-bottom: 2px solid;
}
@keyframes crt-output {
  0% {
    opacity: 0.9;
  }
  50% {
    opacity: 1;
  }
}

@keyframes textpulse {
	0% {
	  text-shadow: 0rem 0.2rem 1rem #0c467b;
	}
	50% {
	  text-shadow: 0rem 0.2rem 1rem #0c467b;
	}
	51%{
	  text-shadow: 0rem 0.2rem 0.5rem #0c469b;
	}
	52% {
	  text-shadow: 0rem 0.2rem 1rem #0c467b;
	}
	90% {
	  text-shadow: 0rem 0.2rem 1rem #0c467b;
	}
	91% {
	  text-shadow: 0rem 0.2rem 0.5rem #0c469b;
	}
	92% {
	  text-shadow: 0rem 0.2rem 1rem #0c467b;
	}
	95% {
	  text-shadow: 0rem 0.2rem 1rem #0c467b;
	}
	96% {
	  text-shadow: 0rem 0.2rem 0.5rem #0c469b;
	}
	97% {
	  text-shadow: 0rem 0.2rem 1rem #0c467b;
	}
	100% {
	  text-shadow: 0rem 0.2rem 1rem #0c467b;
	}

}
.scanlines {
/*  background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0) 50%, rgba(0, 0, 0, 0.2) 70%, rgba(0, 0, 0, 0.6));
  background-size: 100% 0.3rem;*/
  background: repeating-linear-gradient(
    0deg,
    rgba(0,0,0, 0.15),
    rgba(0,0,0, 0.15) 1px,
    transparent 1px,
    transparent 2px
    );
  border-radius: 2rem;
  position: absolute;
}
.glow {
  /* animation: crt-glow 60s infinite; */
  background: radial-gradient(circle at center, #1b59d4 0%, rgba(27, 89, 212, 0.88) 58%, rgba(21, 92, 235, 0.57) 80%, rgba(19, 29, 94, 0.27) 93%, rgba(10, 12, 23, 0) 100%);
  opacity: 0.15;
  pointer-events: none;
  position: fixed;
}

.overlay {
  backdrop-filter: blur(6px) brightness(1.8) ;
  opacity: 0.25;
  display: block;
  height: 3rem;
  left: 0;
  top: 0;
  width: 140%;
  transform: rotate(-2deg) translateX(-20%) translateY(-30vh);
  animation: 22s linear infinite overlayScan;
}

.overlay2 {
  backdrop-filter: blur(6px) brightness(1.6) ;
  opacity: 0.25;
  display: block;
  height: 2rem;
  left: 0;
  top: 0;
  width: 140%;
  transform: rotate(-2deg) translateX(-20%) translateY(-30vh);
  animation: 22s linear 10s infinite overlayScan;
}

.overlay3 {
  backdrop-filter: blur(4px) brightness(1.5) ;
  opacity: 0.28;
  display: block;
  height: 8rem;
  left: 0;
  top: 0;
  width: 140%;
  transform: rotate(-2deg) translateX(-20%) translateY(-30vh);
  animation: 44s linear 30s infinite overlayScan;
}

@keyframes overlayScan {
	0% {
		transform: rotate(-2deg) translateX(-20%) translateY(-30vh);
	}
	42% {
		transform: rotate(-2deg) translateX(-20%) translateY(100vh);
	}
	100% {
		transform: rotate(-2deg) translateX(-20%) translateY(100vh);
	}
}

@keyframes crt-glow {
  0% {
    opacity: 0.1;
  }
  50% {
    opacity: 0.2;
  }
  100% {
    opacity: 0.1;
  }
}

@keyframes textShadow {
  0% {
  text-shadow: 0rem 0.2rem 1rem #0c467b;
  }
  15% {
  text-shadow: 0rem 0.2rem 0.8rem #0c467b;
  }
  22% {
  text-shadow: 0rem 0rem 0.9rem #0c467b;
  }
  30% {
  text-shadow: 0rem 0.2rem 1rem #0c4683;
  }
  40% {
    text-shadow: 0rem 0.2rem 1.1rem #0c467b;
  }
  50% {
  text-shadow: 0rem 0.2rem 1rem #0c467b;
  }
  65% {
  text-shadow: 0rem 0.2rem 0.7rem #0c467b;
  }
  77% {
  text-shadow: 0rem 0.2rem 1.3rem #0c467b;
  }
  82% {
  text-shadow: 0.1rem 0.2rem 1.1rem #0c467b;
  }
  87% {
  text-shadow: 0rem 0.2rem 1rem #0c467b;
  }
  94% {
  text-shadow: 0rem 0rem 0.9rem #0c467b;
  }
  100% {
  text-shadow: 0rem 0.2rem 1rem #0c467b;
  }
}

::selection {
  background-color: #1498ce;
  color: #05031e;
  text-shadow: none!important;
}

.dialogclose {
	position: absolute;
	top: 2rem;
	right: 2rem;
	height: 4rem;
	width: 4rem;
}

.dialogclosebutton {
	position: absolute;
	width: 100%;
	height: 100%;
	border: none;
}
.close {
	position: absolute;
	width: 100%;
	height: 100%;
	border: none;
	left: 0;
	top: 0;
}
.close::before, .close::after {
	position: absolute;
	left: 50%;
	content: '   ';
	height: 4rem;
	width: 4px;
	background-color: #1498ce;
}

.close:hover::before, .close:hover::after {
	background-color: #000;
}

.close:before {
	transform: rotate(45deg);
}
.close:after {
	transform: rotate(-45deg);
}

/* Open state of the dialog  */
dialog:open {
  opacity: 1;
  transform: translateY(0) scaleY(1);
}

/* Closed state of the dialog   */
dialog {
  opacity: 0;
  /* transform: translateY(-100vh) scaleY(0); */
  transform: translateY(-40vh) scaleY(0);
  transition:
    opacity 0.7s ease-out,
    transform 0.7s ease-out allow-discrete,
    overlay 0.7s ease-out allow-discrete,
    display 0.7s ease-out allow-discrete;
  background: #383838;
  color: #1498ce;
  font-family: 'VT323';
  font-size: 32px;
  border-radius: 2rem;
  border-width: thin;
  border-style: groove;
  border-color: #1498ce;
  box-shadow: inset 0 0 18rem black,
    inset 0 0 3rem black,
    0 0 1.6rem 0.2rem #1498ce;
  width: 60vw;
  max-width: 1200px;
  height: 72vh;
  /* Equivalent to
  transition: all 0.7s allow-discrete; */
}

/* Before open state  */
/* Needs to be after the previous dialog:open rule to take effect,
    as the specificity is the same */
@starting-style {
  dialog:open {
    opacity: 0;
    transform: translateY(-40vh) scaleY(0);
  }
}

/* Transition the :backdrop when the dialog modal is promoted to the top layer */
dialog::backdrop {
  background-color: transparent;
  transition:
    display 0.7s allow-discrete,
    overlay 0.7s allow-discrete,
    background-color 0.7s;
  /* Equivalent to
  transition: all 0.7s allow-discrete; */
}

dialog:open::backdrop {
  background-color: rgb(0 0 0 / 70%);
  backdrop-filter: blur(0.2rem);
}

/* This starting-style rule cannot be nested inside the above selector
because the nesting selector cannot represent pseudo-elements. */

@starting-style {
  dialog:open::backdrop {
    background-color: transparent;
  }
}
