html {
	height: 100%;
	letter-spacing: 2px;
	font-family: Arial, 'Courier New', Courier, monospace;
	font-size: 18px;
	line-height: 1.30;
}
body {
	margin: 0;
	background: rgb(0, 0, 60);
}
#game-container {
	position: absolute;
	top: 0;
	left: 0;
	width: 100vw;  /* 100% of the viewport width */
	height: 100vh; /* 100% of the viewport height */
	overflow: hidden; 
}
html, body, #game-container {
    /* Allow left/right and up/down movement, but block pinch-to-zoom completely */
    touch-action: pan-x pan-y; 
    
    /* Alternately, if your game takes up exactly 100% of the screen and shouldn't scroll at all: */
    /* touch-action: none; */

    /* Prevents the browser from highlighting text or graphics if the player taps aggressively */
    user-select: none;
    -webkit-user-select: none;
    
    /* Extra iOS safety layer to keep the layout from bouncing */
    position: fixed;
    overflow: hidden;
    width: 100vw;
    height: 100vh;
}
.sel {
	user-select: text;
    -webkit-user-select: text;
}
.touch {
	color:white; 
	font-size: 1.8em;
	cursor: pointer;
	position: absolute;
	top:10px;
	left:10px;
}
/* =================
Hamburger menu 
===================*/
.menu {
	display: inline-block;
	cursor: pointer;
	position: absolute;
	top:10px;
	right:40px;
	z-index: 999;
}
.bar1, .bar2, .bar3 {
	width: 1.5em;
	height: 3px;
	background-color: #33ff66;
	margin: 3px 0;
	transition: 0.4s;
}
.change .bar1 {
  transform: translate(0, 3px) rotate(-45deg);
}
.change .bar2 {opacity: 0;}
.change .bar3 {
	transform: translate(0, -9px) rotate(45deg);
}
 /* -- Deal with the menu items -- */	
 /* Dropdown Content (Hidden by Default) */
.dropdown-content {
	display:none;
}
.show {
	display:inline-block;
	position: fixed;
	float:right;  
	right: 70px;
	top: 10px;
	z-index:9999;
	/* Enabling a smooth animated transition 
	-moz-transition: 0.5s all linear;
	-webkit-transition:0.5s all linear;
	transition: 0.5s all linear;*/
}
#nav li {
	float:none;
	display: block;
	border-style:none;
	margin-bottom:5px;
}
#nav li a {
	padding: 3px 3px;
	text-decoration:none;
	font-family: 'VT323', monospace;
	color: #33ff66;
}
#nav{
	height:auto;
	margin:3px;
	padding:3px;
}
#nav li:hover {
	background-color: #33ff66;
	color:#000000;
}
#nav li a:hover {
	color:#000000;
}
.menuFloatR{
	position:inline-block;
	float:right;  
	background-color:#000000;
	top: 20px;
      right: 60px;
	z-index:999;
	width:auto;
	height:auto;
	border: solid 1px white;
	border-radius: 10px;
}
   
/* -- End deal with the menu items  -- */

 /*============================================
 Logo and top bar 
============================================*/
.logo {
	letter-spacing: 1px;
	/*color: rgb(131,150,156);*/
	color: rgb(255,255,255);
	text-shadow: 1px 2px .75px rgb(51,72,115);
	font-size: 1.75em;
	position: relative;
	margin-top:2px;
	/*width:450px;
	min-width:450px;*/
	float:left;
}
.logo2 {
	letter-spacing: -1px;
	/*color: rgb(131,150,156);*/
	color: rgb(255,255,255);
	text-shadow: 1px 2px .75px rgb(51,72,115);
	font-size: 2em;
	font-weight:bold;
}
.logo3 {
	letter-spacing: -1px;
	/*color: rgb(131,150,156);*/
	color: rgb(255,255,255);
	text-shadow: 1px 2px .75px rgb(51,72,115);
	font-size: 1.8em;
}
.logo:hover , .logo2:hover, .logo3:hover {
	text-shadow: 1px 2px .75px rgb(254,157,4);
}
/*=================================
End Logo and Top Bar
=================================*/
 .home {
  background-image: url('../images/frontCover01b.jpg');
  background-repeat: no-repeat;
  background-attachment: fixed;  
  background-size: contain;
  background-position: center;
  text-align: center;
  overflow-y: auto;		
}
#spacesuit {
	width:80px;
	height:80px;
	background-image: url('../images/tedlSq01L.png');
	background-repeat: no-repeat;
	background-size:contain;
	position: absolute;
	/*bottom: 50px;*/
	bottom: 10%;
	left: 50%;
	transform: translateX(-50%);
	transform-origin: center center;
	z-index: 10;
	/*border :1px solid white;
	border-radius:50%;*/
}
#analysis a { 
	text-decoration: none;
	color: lime;
	font-size:0.8em;
}
#analysis {
	margin-top: 10%;
	z-index: 100;
}
#over{
	margin-top:10%;
	margin-bottom:10%;
}
.crt-screen {
	height:85%;
	overflow-y: auto;		
	padding:20px;
	font-family: 'VT323', monospace;
	background-color: #000000;
	color: #33ff66;
	text-shadow: 0 0 8px rgba(51, 255, 102, 0.6);
	margin: 10px 20px;
	border: solid 1px white;
	border-radius: 10px;
	/*font-size: 0.7em;*/
}
.crt-screen .hdr {
	text-align: center;
}
.crt-screen .proc,  .post {
	padding: 2px 10px ;
	background-color: rgb(255, 255, 255);
	color: black;
	text-shadow:none;
}
.crt-screen .proc a,  .post a {
	color: black;
	text-decoration:none;
}

.crt-screen .home a {
	text-decoration:none;
}
.crt-screen .rpt .seed a {
	color: blue;
	text-decoration:underline;
}

.crt-screen .rpt li a {
	text-decoration:underline;
}

label {
	font-weight:bold;
	font-size:1.2em;
}
.crt-screen .proc a:hover {
	text-shadow: 1px 2px .75px #33ff66;
}
.touch-btn {
	width: 60px;
	height: 60px;
	background: rgba(255, 255, 255, 0.2);
	border: 2px solid rgba(255, 255, 255, 0.4);
	border-radius: 50%;
	color: white;
	font-size: 20px;
	font-weight: bold;
	outline: none;
	user-select: none; /* Prevents text highlighting when tapping fast */
	-webkit-user-select: none;
}
.point .touch-btn {
	display: inline-block;
	text-align:center;
	width: auto;
      height: auto;
	background: none;
	color: #33ff66; 
	font-size:1em;
	padding-left:4px;
	padding-right:4px;
}
.lft {
	float: left;
}
.rt {
	float: right;
}
.labeld {
	display: block;
	clear: left;
	float: left;
	width: 8em;
	text-align: left;
	padding: 5px 5px 0 0;
	color: black;
}
.datad {
	display: inline-block;
	width: 4em;
	text-align: left;
	padding: 5px 5px 0 0;
	color: black;
}
.datad .score {
	max-width: 6em;
}
.txtd {
	display: inline-block;
	font-style: italic;
}
#btn-fire {
	background: rgba(244, 67, 54, 0.4);
	border-color: #f44336;
	width: 60px;
	height: 60px;
}
.laser {
	width: 4px;
	height: 20px;
	background: red;
	background-image: linear-gradient(to top, yellow, red);
	position: absolute;
	border-radius: 15px 15px 0px 0px; /* four values */
	z-index: 5;
}
.dlaser {
	width: 4px;
	height: 20px;
	background: cyan;
	background-image: linear-gradient(to bottom, cyan, red);
	position: absolute;
}
@keyframes tumbleAndScale {
	from {
		transform: rotate(0deg) scale(var(--asteroid-scale));
	}
	to {
		transform: rotate(360deg) scale(var(--asteroid-scale));
	}
}
@keyframes charSpin {
	0% { transform: rotate(0deg) scale(1);}
	50% {transform: rotate(360deg) scale(4);}
	75% {transform: rotate(0deg) scale(1);}
	100% {transform: rotate(360deg) scale(1);}
}
@keyframes charSpin2 {
	from { 
		transform: rotate(0deg) scale(1);
	}
	to {
		transform: rotate(360deg) scale(1);}
	}
.charHit {
	/* Apply the animation globally to the element */
	animation: charSpin 30s 1 forwards, charSpin2 10s linear infinite 28s;
	transform-origin: center center;
}
.charHit2 {	
	animation-name: charSpin2; 
	animation-duration: 10s; 
	animation-iteration-count: infinite;
	animation-delay: 10s;
}
#asteroid {
	background-image: url('../images/asteroidSurfaceL.png');
	background-size:contain;
	clip-path:  polygon( 22% 2%,
		46% 0%,
		69% 6%,
		90% 20%,
		98% 44%,
		93% 68%,
		80% 90%,
		58% 99%,
		34% 95%,
		15% 82%,
		3% 58%,
		8% 28%);
	width: 50px;
	height: 50px;
	/*background: #8b7d7b;
	border-radius: 50%;*/
	position: absolute;
	z-index: 8;	
	/* Apply the animation globally to the ID */
	animation: tumbleAndScale 6s linear infinite;
	transform-origin: center center;
}
.explosion, .explosion2, .explosion3 {
	position: absolute;
	width: 60px;
	height: 60px;
	background-image: radial-gradient(circle, grey, red, yellow);
	border-radius: 50%; /* Keeps it round like the asteroid */  
}
.explosion2 {
	background-image: radial-gradient(circle, grey, white,blue);  
}	  
.explosion3 {
	background-image: radial-gradient(circle, yellow, green, blue);  
}	
#score-board, #delimiterL, #simTime, #impact, #impTotal , #suit, #hlth {
	transform: rotateX(10deg) rotateY(35deg);
	transform-style: preserve-3d;
	position: relative;
	left:0px;
	z-index: 20;
 }
#space-rocks, #slasers, #hits,  #miss , #delimiterR, #accuracy{
	transform: rotateX(10deg) rotateY(-35deg) ;
	transform-style: preserve-3d;
	position: relative;
	right:0px;
 	z-index: 20;
}
#demo {
	
}
.uth{
	display: none;
	font-size: 0.7em;
	width:15%;
	color:white;
	left:5px;	
	top:5%;
	z-index: 30;	
}
.hud{
	position: absolute;
	width:20%;
	height:15%;
	perspective: 350px;
	border: 4px inset rgba(255, 255, 255, 0.4);
	background-color: rgba(255, 255, 255, 0.2);
	border-radius: 15px;
	top:5%;
	z-index: 30;
}  
.lhud {
	left:25%;
}
.rhud {
	right:25%;
	font-size: 1.1em;
	text-align:right;
}	  
	  
#score-board { 
	top: 20px; 
	font-size: 1.4em
}
#simTime { 
	top: 30px; 
}
#impact { 
	top: 40px; 
}
#impTotal { 
	top: 50px; 
}	  
#delimiterL { 
	top: 60px; 
}
#suit { 
	top: 70px; 
}
#hlth { 
	top: 80px; 
	border: 1px solid lime; 
	width:100%;
	background-color:lime
}
#space-rocks { 
	top: 20px; 
	font-size: 1.4em
}
#slasers { 
	top: 30px; 
}
#hits { 
	top: 40px; 
}
#miss { 
	top: 50px; 
}
#delimiterR { 
	top: 60px; 
}
#accuracy { 
	top: 70px; 
}
#game-over-screen {
	position: absolute;
	top: 50%;
	left: 50%;
	max-height:200px;
	transform: translate(-50%, -50%);
	color: red;
	font-family: 'Courier New', Courier, monospace;
	font-size: 1.8em;
	font-weight: bold;
	text-align: center;
	display: none;
 	z-index: 200;
}
.sim-btn, .post .sim-btn, .ops .sim-btn, .al .sim-btn {
	margin: 20px 0px;
	padding: 10px 10px;
	font-family: 'Courier New', Courier, monospace;
	font-size: 1.3em;
	font-weight: bold;
	background: lime;
	color: black;
	border: none;
	cursor: pointer;
	border-radius: 5px;
	text-decoration: none;
}

.post .sim-btn, .ops .sim-btn, .al .sim-btn {
	width:40%;
}
.sim-btn:hover {
	background: #00ff00;
	box-shadow: 0 0 10px lime;
 }
.star {
	background: lime;
	position: absolute;
	border-radius: 50%;
	z-index: -1;
} 
.point {
	cursor:pointer; 
}
.explosion-particle {
	position: absolute; /* Needed for JS to position them */
	width: 4px;       
	height: 6px;
	background-color: rgb(255, 255, 255); 
	box-shadow: 0 0 5px rgb(255, 213, 0); 
	border-radius: 2px; 
	/* pointer-events: none; Make sure lasers pass THROUGH them */
}
.norm {
	color: white;
}
.warning{
	color: yellow;
}
.danger{
	color: red;
}
.midscr{
	position: relative;
	top:20%;
}
.lowscr{
	position: relative;
	top:50%;
}
#mobile-controls {
	display: flex;
	justify-content: space-between;
	position: absolute;
	bottom: 20%;
	left: 0;
	width: 100vw;
	padding: 0 30px;
	box-sizing: border-box;
	pointer-events: auto; /* Ensure touches register! */
	z-index: 100;
}
.footer a:visited {
	color: #33ff66;
}
.footer {
	position: relative;
	bottom: 0;
	width: 100%;	
	padding: 2em .25em 2em 0.25em;
	height: 30px;
	font-size:1em;
	color: #33ff66;
	text-align: left;
	}
.home .footer {
	position: absolute;
}	
.post .footer, .post .footer a{
	color: black;
}
.home a{
	text-decoration: underline;
	color: #33ff66;
}
.footer a, .ops a{
	text-decoration: none;
	color: #33ff66;
}
.ops .cntrs li{
	list-style-type:none;
}
 .cntrs .symbol{
	font-size:1.8em;
}
.ops .objs li{
	list-style-type:disc;
}
.underL {
	text-decoration: underline;
}
.bold {
	font-weight: 900;
	font-size:1.2em;
}
div .tab li{
	list-style-type:none;
	line-height:1.4em
}

/* Scores */
.rptScores .table .sc {
	display: inline-block;
	width: 10ch;
	text-align: left;
}
.rptScores .table .nm {
	display: inline-block;
	width: 20ch;
	text-align: left;
}
.rptScores .table .dt {
	display: inline-block;
	width: 15ch;
	text-align: left;	
}	
.rptScores .table .dt2 {
	display: inline-block;
	width: auto;
	text-align: left;	
}

.rptScores .table div{
	padding: 0.25em;
	border: 1px solid black;
}
.shade{
	background-color: #f2f2f2;
}
.rptScores .table div:hover {
	background-color: #fbfdb6;
}
.rptScores .table {
	height: 50vh;
	overflow-y:auto;
	box-sizing: border-box;
}
.bright {
	background-color: rgba(244, 67, 54, 0.4);
	border-color: #f44336;
}

input[type="text"] {
    font-size:1.2em;
}
.tooltip {
	position: relative;
	display: block;
	cursor: pointer;
}
.tooltiptext {
	visibility: hidden;
	width: 25%;
	background-color: black;
	color: #fff;
	text-align: left;
	border-radius: 6px;
	padding: 5px 10px;
	position: absolute;
	z-index: 1;
	top: 10%;
	left: 20%;
	
}

.tooltip:hover .tooltiptext {
	visibility: visible;
	overflow-y: visible;
}
/* Extra small devices (phones, 600px and down) */
@media only screen and (min-width: 300px) and (max-width: 600px) {
	html {
		letter-spacing: 1px;
		font-size: 0.9em;
		line-height: 1;
	}
	.hud {
		width:45%;
		height:40px;
	}
	body {
	}
	.lhud{
		left:2.5%;
	 }
	.rhud{
		right:2.5%;
	}	  
	#spacesuit {
		width:55px;
		height:55px;
		bottom: 20%;
	}
	.logo {
		text-shadow: 0.25px 0.5px .19px rgb(51,72,115);
	}
	.logo2 {
		letter-spacing: -1px;
		text-shadow: 0.5px 1px .375px rgb(51,72,115);
		font-weight:bold;
	}	
	.logo3 {
		letter-spacing: -1px;
		text-shadow: 0.4px .75px .2px rgb(51,72,115);
	}
	.rptScores .table .dt {
		display:inline-block;
		width:auto;
	}	
	.rptScores .table .dt2 {
		display:inline-block;
		width:auto;
	}

.post .sim-btn, .ops .sim-btn, .al .sim-btn {
	width:75%;
}
}

/* Small devices (portrait tablets and large phones, 600px and up) */
@media only screen and (min-width: 600px) {
	 .hud{
		width:30%;
		height:40px;
	  }
	 .lhud{
		left:10%;
	 }
	.rhud{
		right:10%;
	 }	
	#spacesuit {
		width:60px;
		height:60px;
	   	bottom: 20%;
	}
	.tooltiptext {
		width: 50%;
	}
}
/* Medium devices (landscape tablets, 768px and up) */
@media only screen and (min-width: 768px) {
	 .hud {
		width:30%;
		max-width:250px;
		height:40px;
	  }
	#spacesuit {
		width:60px;
		height:60px;
		bottom: 10%;
	}

}

/* Large devices (laptops/desktops, 992px and up) */
@media only screen and (min-width: 992px) {
	.lhud{
		left:25%;
	}
	.rhud{
		right:25%;
	}	
}

/* Extra large devices (large laptops and desktops, 1200px and up) */
@media only screen and (min-width: 1200px) {
	#spacesuit {
		width:70px;
		height:70px;
		bottom: 10%;
	}
	.tooltiptext {
		width: 40%;
	}
}

/* small devices (820px and down) */
@media only screen and (max-width: 820px) and (min-height: 640px) {
	.home {
		background-size: cover;
	}
}

@media only screen and (max-width: 1024px) {

	.ops #mobile-controls {
		display: inline;
		position: relative;	
	}
	.movement-group {
		display: flex;
		gap: 20px;
	}
	.touch-btn {
		width: 60px;
		height: 60px;
		background: rgba(255, 255, 255, 0.2);
		border: 2px solid rgba(255, 255, 255, 0.4);
		border-radius: 50%;
		color: white;
		font-size: 1.2em;
		font-weight: bold;
		outline: none;
		user-select: none; /* Prevents text highlighting when tapping fast */
		-webkit-user-select: none;
	}

    /* Make the fire button stand out slightly */
	#btn-fire {
		background: rgba(244, 67, 54, 0.4);
		border-color: #f44336;
		width: 70px;
		height: 70px;
	}
}
@media only screen and (max-width: 600px) {
	.tooltiptext {
		width: 50%;
	}
}
@media only screen and (max-width: 300px) {
	html {
		letter-spacing: 1px;
		font-size: 0.65em;
		line-height: 1;
	}
	.hud {
		width:45%;
		height:40px;
	}
	body {
	}
	.logo {
	letter-spacing: 1px;
	/*color: rgb(131,150,156);*/
	color: rgb(255,255,255);
	text-shadow: 1px 2px .75px rgb(51,72,115);
	font-size: 1.5em;
	}
	h1 {
		font-size: 1.5em;
	}
	
	.lhud{
		left:2.5%;
	 }
	.rhud{
		right:2.5%;
	}	  
	#spacesuit {
		width:55px;
		height:55px;
		bottom: 20%;
	}
	.logo {
		text-shadow: 0.25px 0.5px .19px rgb(51,72,115);
	}
	.logo2 {
		letter-spacing: -1px;
		text-shadow: 0.5px 1px .375px rgb(51,72,115);
		font-weight:bold;
	}	
	.logo3 {
		letter-spacing: -1px;
		text-shadow: 0.4px .75px .2px rgb(51,72,115);
	}
	.crt-screen {		
		padding:10px;
	}
	form #alName {
		width:90%;
	}

	.sim-btn, .post .sim-btn {
	margin: 20px 0px;
	padding: 10px 10px;
	font-size: 1.4em;
	width:100%;
	font-weight: bold;
	border-radius: 3px;
	}
	.seed {
		overflow-wrap: break-word;
		word-wrap: break-word;
	}
	
	#mobile-controls {
		bottom: 20%;
		padding: 0 10px;
	}
	
	.movement-group {
		display: flex;
		gap: 20px;
	}
	.touch-btn {
		width: 40px;
		height: 40px;
		font-weight: bold;
	}
    /* Make the fire button stand out slightly */
	#btn-fire {
		width: 45px;
		height: 45px;
	}
	.touch {
		font-size: 2.8em;
	}
	.rptScores .table .dt {
		display:inline-block;
	}	
	.rptScores .table .dt2 {
		display:inline-block;
	}

	.post .sim-btn, .ops .sim-btn, .al .sim-btn {
		width:90%;
	}
}

@media only screen and (max-width: 180px) {
	html {
		letter-spacing: 1px;
		font-size: 0.65em;
		line-height: 1;
	}
	.hud {
		width:45%;
		height:40px;
	}
	body {
	}
	.lhud{
		left:2.5%;
	 }
	.rhud{
		right:2.5%;
	}	  
	#spacesuit {
		width:55px;
		height:55px;
		bottom: 20%;
	}
	.logo {
		text-shadow: 0.25px 0.5px .19px rgb(51,72,115);
	}
	.logo2 {
		letter-spacing: -1px;
		text-shadow: 0.5px 1px .375px rgb(51,72,115);
		font-weight:bold;
	}	
	.logo3 {
		letter-spacing: -1px;
		text-shadow: 0.4px .75px .2px rgb(51,72,115);
	}
	#mobile-controls {
		bottom: 20%;
		padding: 0 10px;
	}
	.movement-group {
		display: flex;
		gap: 5px;
	}
	.touch-btn {
		width: 40px;
		height: 40px;
		font-sizeX: 0.75em;
		font-weight: normal;
	}

    /* Make the fire button stand out slightly */
	#btn-fire {
		width: 45px;
		height: 45px;
	}
	.rptScores .table .sc {
		width:100%;
	}	
	.rptScores .table .nm {
		width:100%;;
	}
	
	.rptScores .table .dt {
		display: inline-block;
	}	
	.rptScores .table .dt2 {
		display: inline-block;
	}

	.post .sim-btn, .ops .sim-btn, .al .sim-btn {
		width:100%;
	}
}
/* Touchscreen devices with tall screens */
@media only screen and (min-height: 800px) {
	
}

/* Touchscreen devices with low height screens */
@media only screen and (orientation: landscape) {
	#mobile-controls {
		left: 10vw;
		width: 80vw;
	}
	.sim-btn, .post .sim-btn {
		margin: 10px 0px;
	}
	#game-over-screen {
		top: 40%;
		max-height:150px;
		font-size: 1.5em;
	}
	#analysis {
	margin-top: 5%;
	}
	#over{
	margin-top:5%;
	margin-bottom:5%;
	}
}

@media print {
	html, body, .crt-screen, .footer, a, p, i {
		color:black;
		background: white;
		position: relative;
		overflow:visible !important;
		height: auto !important;
		max-height: none !important;
	}
	.crt-screen{
		text-shadow: none; 
		padding:10px;
		
	}
	.footer {
		page-break-after: always;
		position: absolute;
	}
	.footer a{
	text-decoration: none;
	color: #000000;
	}
	.footer a:visited {
	color: #000000;
	}
	.nprn {
		display:none;
	}
}