/* Director menu text is ff9c00 */

body {
    overflow: hidden;
    background-color: black;
    margin:0;
}

/************************************************************* 
CSS WEB FONTS
*************************************************************/

@font-face {
  font-family: 'PixelFJVerdana12pt';
  src: local('PixelFJVerdana12pt'),
    url('../fonts/PixelFJVerdana12pt.ttf') format('truetype'),
    url('../fonts/PixelFJVerdana12pt.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'w95fa';
  src: local('w95fa'),
    url('../fonts/w95fa/W95FA.otf') format('truetype'),
    url('../fonts/w95fa/w95fa.woff') format('woff'),
    url('../fonts/w95fa/w95fa.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
}

.pixelFont {
    font-family:PixelFJVerdana12pt, 'Lucida Console', 'Courier New', Tahoma, Verdana, sans-serif;
    font-size:5px;
    letter-spacing:2px;
    line-height: 3;
}

.pixelFont2 {
    font-family:w95fa, 'Lucida Console', 'Courier New', Tahoma, Verdana, sans-serif;
    font-size:13px; 
    letter-spacing:1px;
    line-height: 1.2; 
    color:rgb(140, 140, 140);
    text-shadow: 1px 1px black;
    cursor:default;
}

.pixelFont3 {
    font-family:w95fa, 'Lucida Console', 'Courier New', Tahoma, Verdana, sans-serif;
    font-size:13px; 
    letter-spacing:1px;
    color:rgb(140, 140, 140);
    text-shadow: 1px 1px black;
}

.pixelFont4 {
    font-family:w95fa, 'Lucida Console', 'Courier New', Tahoma, Verdana, sans-serif;
    font-size:9px; 
    letter-spacing:1px;
    color:rgb(140, 140, 140);
    text-shadow: 1px 1px black;
}

.pixelFont5 {
    font-family:w95fa, 'Lucida Console', 'Courier New', Tahoma, Verdana, sans-serif;
    font-size:15px; 
    letter-spacing:1px;
    color:rgb(140, 140, 140);
    text-shadow: 1px 1px black;
}

/************************************************************* 
CSS FOR THE PROGRESS BAR. 
*************************************************************/

.progress {
    width: 1px;
    height:25px;
}

/************************************************************* 
LAYER BACKGOUND STYLES
*************************************************************/

.covering {
    /* This covers the entire screen. Applied to
    layer background divs that cover the whole screen */
    position: absolute;
    /* display:none; */
    /* left:0;
    top:0; */
    inset: 0;
    width: 100%;
    height: 100vh;
    background-color: black;
    transition: opacity 1.5s, visibility 1.5s;
    box-sizing: border-box;
    overflow: hidden;
}

.coveringTransparent {
    /* This covers the entire screen. Applied to
    layer background divs that cover the whole screen
    and are transparent. */
    position: absolute;
    width: 100%;
    height: 100vh;
    transition: opacity 1.5s, visibility 1.5s;
    box-sizing: border-box;
    overflow: hidden;
}

#layerGamePlay {
  /* Layer in which all game play occurs.  */
  position: fixed;
  inset: 0;
  overflow: hidden;
}

#gameWorld {
  /* Layer that game play occurs in. It gets scaled.  */
  --play-scale: 0.5;
  position: absolute;
  left: 0;
  top: 0;
  width: calc(100% / var(--play-scale));
  height: calc(100% / var(--play-scale));
  transform: scale(var(--play-scale));
  transform-origin: top left;
}

.displayBlock {
    display:block;
}

.centerer {
    /* Applied to a parent when you want the child 
    horiz and vert centered.  */
    display:flex;
    justify-content: center;
    align-items: center;
}

.centerHV {
    /* Centers horizontally and vertically  */
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.centerH1 {
    /* Centers horizontally  */
    text-align: center;
}

.block {
    display:block;
}

.centerGrid {
  display: grid;
  place-items: center;
}

.leftImage {
    float: left;
    margin-right: 5px;
    height:39px;
    width:auto;
}

.imageWidth350 {
    width:350px;
    height:auto;
}

.responsiveImage {
    max-width: 100%;
    height: auto;
}

.centerH2 {
    /* Centers horizontally and vertically  */
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}

.maxWidth550 {
    /* Used in the About section.  */
    width: 90%;
    max-width: 550px;
    height: 100%;
    overflow: auto;
    padding:5px;
    scrollbar-color: #444 #111;  /* Firefox: thumb track */
    scrollbar-width: thin;       /* Firefox */
}

.maxWidth550::-webkit-scrollbar {
    width: 8px;
}

.maxWidth550::-webkit-scrollbar-track {
    background: #111;
}

.maxWidth550::-webkit-scrollbar-thumb {
    background: #444;
    border-radius: 4px;
}

.maxWidth550::-webkit-scrollbar-thumb:hover {
    background: #ff6600;
}

.invisible {
    visibility: hidden;
    opacity: 0;
}

.arial {
    font-family:Arial, Helvetica, sans-serif;
    color:rgb(140, 140, 140);
    text-shadow: 1px 1px black;
}

.times {
    font-family:'Times New Roman', Times, serif;
    color:rgb(170, 170, 170);
    text-shadow: 1px 1px rgb(82, 82, 82);
}

.size12 {
    font-size:12px;
}

.introText1 {
    font-family:Arial, Helvetica, sans-serif;
    color:rgb(140, 140, 140);
    text-shadow: 1px 1px black;
    text-align: center;
    cursor:default;
}

.introText {
    color:rgb(140, 140, 140);
    text-shadow: 1px 1px black;
    text-align: center;
    cursor:default;
}

.greybg {
    padding:7px;
    background-color: rgb(20, 20, 20);
    border:1px solid rgb(71, 71, 71);
    border-radius: 4px;
}

.pointer {
    cursor: pointer;
}

.smallLogo1 {
    /* Small logo at top left  */
    padding:5px;
}

.textAreaContainer {
    display: flex;
    justify-content: center;
}
.idTextArea {
    font-family:w95fa, 'Lucida Console', 'Courier New', Tahoma, Verdana, sans-serif;
    font-size:13px;
    width:112px;
    height:14px;
    /* font-family:Verdana, Geneva, Tahoma, sans-serif; */
    /* background-color: #f60; */
    text-align: center;
    background-color: #ff7214;
    color:black;
    text-shadow: 1px 1px #ff8f44;
    resize:none;
    overflow:hidden;
    border:5px 3dvb gray;
}

.button1 {
    /* Orange buttons and drop down menus  */
	/* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#ff6600+0,ff6600+10,ff894f+50,ff6600+91,ff6600+100 */
    background: linear-gradient(to bottom,  #ff6600 0%,#ff6600 10%,#ff894f 50%,#ff6600 91%,#ff6600 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
	text-shadow: 1px 1px rgb(255, 190, 146);
	text-align: center;
	color:black;
	font-size: 13px;
	font-weight: bold;
	font-variant:small-caps;
	cursor: pointer;
	box-sizing: border-box;
	padding:2px;
	width:100%;
	border:1px solid gray;
    border-radius: 4px;
}

.button1:hover {
    /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#900000+1,8c1a1a+50,900000+100 */
    background: linear-gradient(to bottom,  #900000 1%,#8c1a1a 50%,#900000 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
    text-shadow: 1px 1px rgb(210, 0, 0);
    opacity:1;
}

.OKbutton1 {
    width:70px;
    margin:0 auto;
}

/************************************************************* 
GRADIENTS 
*************************************************************/

.orangeVertical {
    /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#ff6600+0,ff6600+10,ff894f+50,ff6600+91,ff6600+100 */
background: linear-gradient(to bottom,  #ff6600 0%,#ff6600 10%,#ff894f 50%,#ff6600 91%,#ff6600 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
}

.greyblack1 {
    /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#000000+1,6b6b6b+50,000000+100 */
    background: linear-gradient(to bottom,  #000000 1%,#6b6b6b 50%,#000000 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */

}

/************************************************************* 
SLIDERS
*************************************************************/

.slider1 {
    appearance: none;
    -webkit-appearance: none;
    background-color: transparent;
    width: 120px;
    height: 40px; /* Must match thumb height — Firefox clips the thumb to the input's box height */
    overflow: visible;
    touch-action: none; /* Prevent browser scroll interception so touch drag works */
}

/* .slider1::-webkit-slider-runnable-track {
    position: relative;
    height: 8px;
    background: linear-gradient(to bottom,  #ff6600 0%,#ff6600 10%,#ff894f 50%,#ff6600 91%,#ff6600 100%); 
    border-radius: 4px;
    cursor:pointer;
} */

.slider1::-webkit-slider-runnable-track {
  background-image: url('../images/sliderrail2.png'); /* Your image file */
  background-size: cover; /* Or 'contain', '100% 100%' */
  background-position: center;
  background-repeat: no-repeat;
  height: 24px;
  cursor: pointer;
}

/* .slider1::-moz-range-track {
    position: relative;
    height: 8px;
    background: linear-gradient(to bottom,  #ff6600 0%,#ff6600 10%,#ff894f 50%,#ff6600 91%,#ff6600 100%);
    border-radius: 4px;
    cursor:pointer;
} */

.slider1::-moz-range-track {
  background-image: url('../images/sliderrail2.png');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  height: 24px;
  cursor: pointer;
}

/* .slider1::-webkit-slider-thumb {
    box-sizing: border-box;
    appearance: none;
    position: relative;
    background: linear-gradient(to bottom,  #ff6600 0%,#ff6600 10%,#ff894f 50%,#ff6600 91%,#ff6600 100%); 
    border: 2px solid rgb(49, 0, 0);
    border-radius: 4px;
    width: 24px;
    height: 24px;
    top: 50%;
    translate: 0 -50%;
    cursor:-webkit-grab;
} */

.slider1::-webkit-slider-thumb {
    -webkit-appearance: none; /* Removes default WebKit thumb styles */
    /* Set the dimensions of your image */
    width: 20px;
    height: 40px;
    /* Apply your bitmap image */
    background-image: url('../images/sliderThumbOrange.jpg'); /* Use the path to your image */
    background-size: contain; /* Ensures the image fits within the bounds */
    background-repeat: no-repeat;
    cursor: grab; /* Makes it clear the thumb is interactive */
    /* Adjust vertical positioning to center on track (formula: (track_height/2) - (thumb_height/2)) */
    /* margin-top: -10px; Example calculation */
    margin-top: -7px;
}

/* .slider1:hover::-webkit-slider-thumb {
    background: linear-gradient(to bottom,  #900000 1%,#8c1a1a 50%,#900000 100%); 
} */

.slider1:hover::-webkit-slider-thumb {
    background-image: url('../images/sliderThumbRed.jpg');
} 

/* .slider1::-moz-range-thumb {
    box-sizing: border-box;
    appearance: none;
    position: relative;
    
    background: linear-gradient(to bottom,  #ff6600 0%,#ff6600 10%,#ff894f 50%,#ff6600 91%,#ff6600 100%); 
    border: 2px solid rgb(49, 0, 0);
    border-radius: 4px;
    width: 24px;
    height: 24px;
    cursor:-moz-grab;
} */

.slider1::-moz-range-thumb {
    appearance: none;
    -moz-appearance: none;
    border: none; /* Firefox adds a default border that can affect sizing */
    /* Set the dimensions of your image */
    width: 20px;
    height: 40px;
    /* Apply your bitmap image */
    background-image: url('../images/sliderThumbOrange.jpg');
    background-size: contain;
    background-repeat: no-repeat;
    cursor: -moz-grab;
}

.slider1::-moz-range-progress {
    background:transparent;
}


/************************************************************* 
TV WINDOW 
*************************************************************/

.layerTV {
	/* Contains the TV window that displays on
    mouseover of menu commands. */
	position:fixed;
	background-color:hsla(0, 0%, 0%, 0.85);
	width:214px;
	height:170px;
    visibility: hidden;
	opacity:0;
    transition: opacity 0.25s, visibility 0.25s;
    top: -300px;
    left: -300px;
    /* display: flex;
    justify-content: center;   
    align-items: center;    */
}

.tvText{
    font-family: w95fa, 'Lucida Console', 'Courier New', Tahoma, Verdana, sans-serif;
    font-size:13px;
    letter-spacing:1px;
    color:rgb(164, 164, 164);
    text-shadow: 2px 2px black;
    text-align: center;
    position: absolute;
    top: 50%;
    left: 50%;
    width:214px;
    transform: translate(-50%, -50%);
    white-space: pre-wrap;
}

.tvImage {
    position: absolute;
    width: 214px;
    height: 170px;
    top: 0;
    left: 0;
    pointer-events: none;
}

.gradientAnimation {
    /* nothing  */
}

.test {
    position:absolute;
    color:lime;
    left:350px;
    top:350px;
}

/* MAIN MENU STYLES ***************************************************/

.mainMenuSVGBackground {
    width:600px;
    height:600px;
    z-index: 0;
    pointer-events: none;
}

.flexCenter {
    display: flex;
    justify-content: center;
    align-items: center;
}

.mainMenuTitle {
    font-family: w95fa, 'Lucida Console', 'Courier New', Tahoma, Verdana, sans-serif;
    font-size: 9px;
    letter-spacing: 2px;
    margin-bottom: 15px;
    text-align: center;
    color: rgb(140, 140, 140);
    text-shadow: 1px 1px black;
    cursor: default;
}

#mainMenuLogo {
    text-align: center;
}

.menuItem {
    font-family: w95fa, 'Lucida Console', 'Courier New', Tahoma, Verdana, sans-serif;
    font-size: 13px;
    letter-spacing: 1px;
    color: rgb(255, 153, 0);
    text-shadow: 1px 1px black;
    text-align: center;
    cursor: pointer;
    margin-bottom: 14px;
    transition: color 0.2s;
    user-select: none;
}

@media (any-pointer: coarse) {
    .menuItem {
        margin-bottom: 30px;
    }
}

.menuItem:hover {
    color: rgb(255, 0, 0);
}

.menuItem2 {
    font-family: w95fa, 'Lucida Console', 'Courier New', Tahoma, Verdana, sans-serif;
    font-size: 13px;
    letter-spacing: 1px;
    color: rgb(255, 153, 0);
    text-shadow: 1px 1px black;
    text-align: center;
    cursor: pointer;
    transition: color 0.2s;
    user-select: none;
}

.menuItem3 {
    font-family: w95fa, 'Lucida Console', 'Courier New', Tahoma, Verdana, sans-serif;
    font-size: 18px;
    font-weight: bold;
    letter-spacing: 1px;
    color: rgb(0, 0, 0);
    /* text-shadow: 1px 1px black; */
    text-shadow: 1px 1px rgb(255, 153, 0);
    /* text-shadow:1px 1px black; */
    text-align: center;
    margin-bottom: 20px;
    transition: color 0.2s;
    user-select: none;
}

.menuItem4 {
    font-family: w95fa, 'Lucida Console', 'Courier New', Tahoma, Verdana, sans-serif;
    font-size: 18px;
    font-weight: bold;
    letter-spacing: 1px;
    color: #000;
    text-shadow: 1px 1px rgb(255, 153, 0);
    text-align: center;
    cursor: pointer;
    margin-bottom: 20px;
    transition: color 0.2s;
    user-select: none;
}

.menuItem4:hover {
    color: rgb(63, 0, 0);
}

.orangePixelText {
    font-family: w95fa, 'Lucida Console', 'Courier New', Tahoma, Verdana, sans-serif;
    font-size: 11px;
    color:#ff6600;
    letter-spacing: 1px;
    text-shadow: 2px 2px black;
}

.link1 {
    /* For links in about, credits, how to.  */
    font-family: w95fa, 'Lucida Console', 'Courier New', Tahoma, Verdana, sans-serif;
    letter-spacing: 1px;
    color: rgb(255, 153, 0);
    text-shadow: 1px 1px black;
    text-decoration: none;
    cursor: pointer;
    transition: color 0.2s;
}

.link1:hover {
    color: rgb(255, 0, 0);
}

.logoInPlay {
    top:7px;
    left:7px;
    position: absolute;
    text-align: center;
    z-index: 100;
    font-family: w95fa, 'Lucida Console', 'Courier New', Tahoma, Verdana, sans-serif;
    font-size: 11px;
    letter-spacing: 1px;
    text-shadow: 2px 2px black;
}

.inGameHeader {
    position: relative;
    cursor: pointer;
}

.levelNumber {
    color: rgb(140, 140, 140);
}

.playModeInGameMenu {
    width: 140px;
    background-color: rgba(60, 60, 60, 0.9);
    padding: 8px 4px 4px 4px;
    box-sizing: border-box;
    border-radius: 0 0 3px 3px;
    margin-top: 2px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.playModeInGameMenu .gameModeMenuSliderContainer {
    background: transparent;
}

.inGameMenuItem {
    display: block;
    position: relative;
    margin-bottom: 14px;
}

@media (any-pointer: coarse) {
    .inGameMenuItem {
        margin-bottom: 20px;
    }
}

#inGameFrictionItem {
    margin-bottom: 12px;
}

.inGameBossPortraits {
    display: grid;
    grid-template-columns: repeat(2, 42px);
    grid-auto-rows: 50px;
    column-gap: 4px;
    row-gap: 4px;
    justify-content: center;
    margin-top: 6px;
    padding-top: 5px;
    border-top: 1px solid rgba(255, 153, 0, 0.3);
    overflow-y: auto;
    overflow-x: hidden;
    min-height: 0;
    flex: 1 1 auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

.inGameBossPortrait {
    width: 42px;
    height: 50px;
    cursor: pointer;
    opacity: 0.6;
    border: 2px solid transparent;
    box-sizing: border-box;
    transition: opacity 0.15s, border-color 0.15s;
}

.inGameBossPortrait:hover {
    opacity: 1;
    border-color: rgb(255, 153, 0);
}

.inGameBossPortrait.active {
    opacity: 1;
    border-color: rgb(255, 0, 0);
}

/*****************************************
MONSTER  STYLES
*******************************************/

.greenArialOuterText {
    position:absolute;
    color: #14C878;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 1em;
    visibility: hidden;
    transition: opacity 2.5s;
    z-index: 30;
}

.blueArialOuterText {
    position:absolute;
    color: #0099CC;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 1em;
    visibility: hidden;
    z-index: 30;
}

.greenTimesInnerText {
    position:absolute;
    font-family: 'Times New Roman', Times, serif;
    color:#14C878;
    /* font-size: 1.2em; */
    font-size:2em;
    z-index: 10;
}

.blueTimesInnerText {
    position:absolute;
    font-family: 'Times New Roman', Times, serif;
    color:#0099CC;
    /* font-size: 1.2em; */
    font-size:1.2em;
    z-index: 10;
}

.bossHealth {
    position: absolute;
    font-size: 14px;
    font-family: Arial, Helvetica, sans-serif;
    font-weight: bold;
    color: white;
    text-shadow: 1px 1px 2px black, -1px -1px 2px black, 1px -1px 2px black, -1px 1px 2px black;
    /* transform: translateX(-50%); */
    text-align: center;
    pointer-events: none;
    z-index: 55;
}

.bossMonster {
    z-index: 50;
}

.bossMissileDefault {
    position: absolute;
    z-index: 40;
}

.bossExplosionDefault {
    position: absolute;
    z-index: 20;
}

/*****************************************
PLAYER STYLES
*******************************************/

.playerRedTimes {
    /* The text the wreader drives */
    font-family: 'Times New Roman', Times, serif;
    font-size:1.3em;
    position:absolute;
    /* color:maroon;  */
    color:white;
    text-shadow: 2px 2px black;
    left:0px;
    top:0px;
    z-index: 70;
    white-space: nowrap;
}

/*****************************************
MISSIVE  STYLES
*******************************************/

.defaultGameModeMissives {
    position:absolute;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 1.1em;
    letter-spacing: 1px;
    text-shadow: 2px 2px black;
    color: #f60;
    z-index: 60;
}

.missive {
    position: absolute;
    width: 15px;
    height: 15px;
    visibility: visible;
}

/*****************************************
TOUCH CONTROLS
*******************************************/

#touchJoystickRing {
    position: fixed;
    display: none;
    width: 200px;
    height: 200px;
    border-radius: 50%;
    border: 2px solid rgba(255, 102, 0, 0.45);
    background: rgba(255, 102, 0, 0.07);
    pointer-events: none;
    z-index: 10;
    transform: translate(-50%, -50%);
}

#touchJoystickDot {
    position: fixed;
    display: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(255, 102, 0, 0.55);
    pointer-events: none;
    z-index: 11;
    transform: translate(-50%, -50%);
}

#touchFireButton {
    position: fixed;
    display: none;
    width: 70px;
    height: 70px;
    border-radius: 50%;
    border: 2px solid rgba(255, 102, 0, 0.45);
    background: rgba(255, 102, 0, 0.15);
    pointer-events: none;
    z-index: 10;
    transform: translate(-50%, -50%);
}

/*****************************************
MEANOMETER
*******************************************/

.meanometer {
    position: fixed;
    width:36px;
    bottom:0px;
    right:0px;
    height:0px;
}

.meanometerLabel {
    font-family: w95fa, 'Lucida Console', 'Courier New', Tahoma, Verdana, sans-serif;
    font-size: 14px;
    writing-mode: vertical-rl;
    text-orientation: upright;
    position:fixed;
    right:10px;
    bottom:10px;
    color:white;
    text-shadow: 1px 1px black;
}

.meanometerGradient {
    /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#303030+0,848484+50,303030+100 */
    background: linear-gradient(to right,  #303030 0%,#848484 50%,#303030 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
}

.bossMonsterName {
    position: absolute;
    bottom: 10px;
    left: 10px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 20px;
    font-weight: bold;
    color: white;
    text-shadow: 1px 1px 2px black;
    pointer-events: none;
    z-index: 55;
    transition: opacity 1s;
    opacity: 0;
}

/*****************************************
SVG ANIMATIONS
*******************************************/

.centerSVG {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width:500px;
    height:500px;
}

.playerExplosion {
    /* svg animation when player dies  */
    position: absolute;
    z-index: 70;
    top:-1000px;
    left:-1000px;
    width:600px;
    height:600px;
}

.textWidth1 {
    width: 300px;
    text-align: center;
}

/*****************************************
WIN INFO STYLES
*******************************************/

.winInfoCentered {
    text-align: center;
}

.winInfoWinningText {
    text-align: center;
    max-width: 300px;
    margin-left: auto;
    margin-right: auto;
}

.winInfoNarrow {
    max-width: 250px;
    margin-left: auto;
    margin-right: auto;
}

/*****************************************
GAME MODE MENU STYLES
*******************************************/

.gameModeMenuCentered {
    text-align: center;
}

.gameModeMenuCentered .menuItem {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.gameModeMenuText {
    text-align: center;
    max-width: 250px;
}

.gameModeMenuControlParent {
    position: relative;
    display: inline-block;
}

.gameModeMenuSliderContainer {
    /* Inline slider container with height-based animations */
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-in-out, padding 0.3s ease-in-out, margin-top 0.3s ease-in-out;
    margin-top: 0;
    padding: 0 5px;
    background: #000;
    /* border: 1px solid #666; */
    border-radius: 4px;
    opacity: 1;
    z-index: 1000;
    pointer-events: auto;
}

@starting-style {
    .gameModeMenuSliderContainer.expanded {
        max-height: 0;
        margin-top: 0;
        padding: 0 5px;
    }
}

.gameModeMenuSliderContainer.expanded {
    max-height: 60px; /* Enough for slider + value text */
    margin-top: 10px;
    padding: 5px;
    overflow: visible; /* Allow thumb to overflow so touch drag works */
}

.gameModeMenuSliderValue {
    text-align: center;
    margin-top: 5px;
    color: white;
}

.marginBottom1 {
    margin-bottom: 1em;
}

.marginBottom2 {
    margin-bottom: 10px;
}

.marginBottom3 {
    margin-bottom: auto;
}

.marginBottom4 {
    margin-bottom: 20px;
}

.paddingBottom1 {
    padding-bottom: 16px;
}

.aHeader {
	/* The orange text headers in the black window. */
	box-sizing: border-box;
	text-shadow: 1px 1px #000;
	background-color: #111111;
	padding:15px;
	margin-bottom:10px;
	border: 1px solid #5e5e5e;
	width:100%;
    /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#111111+0,000000+50,111111+100 */
    background: linear-gradient(to right,  #111111 0%,#000000 50%,#111111 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
}

.aSubHeader {
    padding:3px;
    /* border: 1px solid #5e5e5e; */
    border:1px solid rgb(255, 255, 255);
    background: linear-gradient(to right,  #cb2200 0%,#ff9900 var(--gx, 50%) ,#cb2200 100%);  
    
}
#layerCredits .aSubHeader {
    font-variant: small-caps;
    font-size:20px;
    /* font-family: "Arial Black", Arial, Helvetica, sans-serif; */
    font-family:'Times New Roman', Times, serif;
}
/* .aSubHeader {
    padding:5px;
    border: 1px solid #5e5e5e;
    background: linear-gradient(to right,  #111111 0%,#000000 50%,#111111 100%); 
} */

.aboutComment {
    font-family:Arial, Helvetica, sans-serif;
    color:rgb(170, 170, 170);
    text-shadow: 1px 1px rgb(0, 0, 0);
    font-size: 12px;
    /* max-width:350px; */
    max-width: 500px;
    overflow: auto;
    margin: 0 auto;
}

.aboutGraphic {
    float: left;
    width: 100px;
    height: auto;
    margin-right: 10px;
    border: 1px solid rgb(71, 71, 71);
    border-radius: 4px;
    cursor:pointer;
}

.aboutLink {
    color: #ff6600;
    text-shadow: 1px 1px black;
    text-decoration: none;
    cursor: pointer;
}   
.aboutLink:hover {
    color: maroon;
    text-shadow: 1px 1px black;
}

.fullscreen {
    position: absolute;
    top: 6px;
    right: 6px;
    z-index: 2;
    cursor: pointer;
} 

.biggestContainer {
    z-index: 1;
}

/*****************************************
MENU MUSIC CONTROLS
*******************************************/

#menuMusicControlsPanel {
    display: none;
    background-color: rgba(0, 0, 0, 0.85);
    padding: 14px 18px 10px;
    box-sizing: border-box;
    text-align: center;
    margin-top: 8px;
    max-width: 280px;
    margin-left: auto;
    margin-right: auto;
}

.menuMusicRow {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-bottom: 10px;
}

.menuMusicBtn {
    font-family: w95fa, 'Lucida Console', 'Courier New', monospace;
    font-size: 14px;
    letter-spacing: 1px;
    color: rgb(255, 153, 0);
    background: transparent;
    border: 1px solid rgb(255, 153, 0);
    cursor: pointer;
    padding: 8px 16px;
    min-width: 44px;
    min-height: 44px;
    user-select: none;
}

.menuMusicBtn:hover {
    color: rgb(255, 0, 0);
    border-color: rgb(255, 0, 0);
}

#menuMusicClose {
    border: none;
    font-size: 11px;
    padding: 4px 12px;
    min-width: unset;
    min-height: unset;
}

.menuMusicSongLabelBox {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 44px;
}

.menuMusicSongTitle {
    font-family: w95fa, 'Lucida Console', 'Courier New', monospace;
    font-size: 12px;
    letter-spacing: 1px;
    color: rgb(200, 110, 20);
    text-shadow: 1px 1px black;
    white-space: nowrap;
    margin-bottom: 3px;
}

.menuMusicLabel {
    font-family: w95fa, 'Lucida Console', 'Courier New', monospace;
    font-size: 10px;
    letter-spacing: 1px;
    color: white;
    text-shadow: 1px 1px black;
    white-space: nowrap;
}

.menuMusicSelect {
    font-family: w95fa, 'Lucida Console', 'Courier New', monospace;
    font-size: 10px;
    background: rgba(0, 0, 0, 0.8);
    color: white;
    border: 1px solid rgb(255, 153, 0);
    max-width: 160px;
    min-height: 36px;
    padding: 4px 6px;
    cursor: pointer;
}

/************************************************************* 
CSS FOR THE LEADERBOARD. 
*************************************************************/

#scoresInner {
    max-height: calc(100vh - 10px);
    overflow-y: auto;
    scrollbar-color: #444 #111;  /* Firefox: thumb track */
    scrollbar-width: thin;       /* Firefox */
}

#scoresInner::-webkit-scrollbar {
    width: 8px;
}

#scoresInner::-webkit-scrollbar-track {
    background: #111;
}

#scoresInner::-webkit-scrollbar-thumb {
    background: #444;
    border-radius: 4px;
}

#scoresInner::-webkit-scrollbar-thumb:hover {
    background: #ff6600;
}

.scoresTitle {
    font-size:35px;
}

.leaderBoardContainer {
    /* This is the div that contains the leaderboard.  */
    display: grid;
    grid-template-columns:
        max-content  /* RANK  — exactly as wide as needed */
        4fr          /* ID    — flexible wide */
        max-content  /* LEVEL — exactly as wide as needed */
        3fr;         /* SCORE — flexible wide */
    /* Cap at natural full width; shrinks with the viewport below that. */
    width: min(35em, calc(100vw - 40px));
    margin: 0 auto;
    gap: 1px;
    background-color: #1a1a1a;  /* shows through gap, creating tile-separator lines */
}

/* ---- shared cell base ---- */
.lbCell {
    font-family: w95fa, 'Lucida Console', 'Courier New', Tahoma, Verdana, sans-serif;
    font-size: 25px;
    letter-spacing: 1px;
    padding: 6px 10px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    background-color: #0d0d0d;
}

/* ---- header row cells (row 1) ---- */
.lbHeaderCell {
    color: #ff6600;
    text-shadow: 2px 2px black, 0 0 10px rgba(255, 102, 0, 0.7);
    background-color: #1a0800;
    text-align: center;
    font-size: 13px;
    letter-spacing: 3px;
    padding: 9px 10px;
}

/* ---- data row cells (rows 2–N) ---- */
.lbDataCell {
    color: rgb(140, 140, 140);
    background-color: #0d0d0d;
}

/* ---- current player's rows (both in-top-100 and appended at bottom) ---- */
.lbPlayerCell {
    color: #ff9900;
    background-color: #1a1100;
    text-shadow: 0 0 6px rgba(255, 153, 0, 0.5);
}

/* ---- winner row (shown only when competition has expired) ---- */
.lbWinnerCell {
    color: #ffd700;
    background-color: #1a1400;
    text-shadow: 0 0 10px #ffd700;
}

/* ---- podium rows (top 3 active competitions) ---- */
@keyframes goldPulse {
    0%, 100% { text-shadow: 0 0 6px #ffd700; }
    50%       { text-shadow: 0 0 16px #ffd700, 0 0 28px #ffa500; }
}

.lbGold {
    color: #ffd700;
    background-color: #161300;
    animation: goldPulse 2.5s ease-in-out infinite;
}

.lbSilver {
    color: #c8c8c8;
    background-color: #111;
    text-shadow: 0 0 6px rgba(200, 200, 200, 0.45);
}

.lbBronze {
    color: #cd7f32;
    background-color: #110900;
    text-shadow: 0 0 6px rgba(205, 127, 50, 0.45);
}

/* ---- competition-over banner ---- */
.scoresExpiredBanner {
    font-family: w95fa, 'Lucida Console', 'Courier New', Tahoma, Verdana, sans-serif;
    font-size: 13px;
    letter-spacing: 2px;
    color: #ffd700;
    text-align: center;
    text-shadow: 0 0 8px #ffd700;
    margin: 6px 0;
}

/* ---- per-column alignment ---- */
.lbColRank,
.lbColLevel,
.lbColScore {
    text-align: right;
}

.lbColId {
    text-align: left;
}

.selectLeaderboard {
    background: linear-gradient(to bottom,  #ff6600 0%,#ff6600 10%,#ff894f 50%,#ff6600 91%,#ff6600 100%);
    color: black;
    text-shadow: 1px 1px rgb(255, 190, 146);
    text-align: center;
    font-size: 13px;
    font-weight: bold;
    font-variant: small-caps;
    cursor: pointer;
    box-sizing: border-box;
    padding: 2px;
    width: 100%;
    border: 1px solid gray;
    border-radius: 4px;
    margin-top:0px;
    margin-bottom:10px;
}

/************************************************************* 
WORD FOR WEIRDOS 
*************************************************************/
.wfwContainer {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    background-color: #1a1a1a;
    font-family: Verdana, Geneva, Tahoma, sans-serif;
    overflow: hidden;
    box-sizing: border-box;
}

#layerPlayModeEdit {
    top: 0;
    left: 0;
}

.wfwBody {
    flex: 1;
    overflow-y: auto;
    box-sizing: border-box;
}

.wfwHeader {
    display: flex;
    align-items: center;
    padding: 6px 10px;
    height: 40px;
    border-bottom: 1px solid #555;
    flex-shrink: 0;
}

.wfwBurgerMenuBtn {
    font-size: 18px;
    cursor: pointer;
    margin-right: 10px;
    color: white;
    line-height: 1;
}

#wfwHeader:hover .wfwBurgerMenuBtn,
#wfwHeader:hover .wfwHeaderTitle,
.wfwBurgerMenuBtnActive,
.wfwHeaderTitleActive {
    color: #ff6600;
}

.wfwMenu {
    position: absolute;
    top: 51px;
    left: 0;
    width: 230px;
    background-color: rgba(20, 20, 20, 0.97);
    border-right: 1px solid #555;
    border-bottom: 1px solid #555;
    padding: 16px 0 12px 0;
    z-index: 10;
    display: none;
    box-sizing: border-box;
}

.wfwMenu.wfwMenuOpen {
    display: block;
}

.wfwMenuItem {
    font-family: w95fa, 'Lucida Console', 'Courier New', Tahoma, Verdana, sans-serif;
    font-size: 13px;
    letter-spacing: 1px;
    color: rgb(255, 153, 0);
    text-shadow: 1px 1px black;
    cursor: pointer;
    padding: 10px 24px;
    transition: color 0.2s, background-color 0.2s;
}

.wfwMenuItem:hover {
    color: rgb(255, 255, 255);
    background-color: rgba(80, 0, 0, 0.85);
    border-top: 1px solid black;
    border-bottom: 1px solid black;
}

.wfwMenuItemDisabled {
    color: #555 !important;
    cursor: default;
    text-shadow: none;
    pointer-events: none;
}

/* Read-only mode: dim editable fields so the poem is clearly not editable */
.wfwReadOnly .wfwInput {
    opacity: 0.55;
    cursor: default;
}

.wfwReadOnly .wfwCell {
    opacity: 0.65;
    cursor: default;
}

.wfwReadOnly .wfwCell:focus {
    border-color: #444;
}

.wfwReadOnly .wfwSpawnToggle {
    opacity: 0.55;
}

.wfwReadOnly .wfwSpawnCheckbox,
.wfwReadOnly .wfwSpawnCheckboxLabel {
    cursor: default;
}

.wfwMenuHint {
    font-family: Verdana, Geneva, Tahoma, sans-serif;
    font-size: 0.75em;
    font-style: italic;
    color: #888;
    padding: 14px 24px 4px 24px;
}

.wfwHeaderTitle {
    font-size: 0.85em;
    color: white;
    cursor: pointer;
}

.wfwHeaderTitleActive {
    color: #ff6600;
}

.wfwTitleAuthorRow {
    display: flex;
    gap: 8px;
    padding: 10px 8px 0 8px;
    flex-shrink: 0;
}

.wfwFieldCol {
    display: flex;
    flex-direction: column;
}

.wfwTitleCol {
    flex: 2;
}

.wfwAuthorCol {
    flex: 1;
}

.wfwInput {
    width: 100%;
    box-sizing: border-box;
    background-color: #333;
    color: white;
    border: 1px solid #555;
    padding: 3px 5px;
    font-size: 0.8em;
    font-family: Verdana, Geneva, Tahoma, sans-serif;
    outline: none;
}

.wfwInput:focus {
    border-color: #888;
}

.wfwLabel {
    color: #ff6600;
    font-size: 0.75em;
    cursor: pointer;
    padding: 2px 0 14px 0;
    user-select: none;
}

.wfwLabel:hover {
    color: rgb(210, 0, 0);
}

/* Title and Author labels are decorative only — no click action, no hover effect */
#wfwTitleLabel,
#wfwAuthorLabel {
    cursor: default;
}

#wfwTitleLabel:hover,
#wfwAuthorLabel:hover {
    color: #ff6600;
}

.wfwSection {
    padding: 4px 8px 0 8px;
    flex-shrink: 0;
}

.wfwRows {
    overflow-y: auto;
    max-height: 185px; /* ~5 rows */
    min-height: 37px;
}

.wfwResizeHandle {
    height: 7px;
    margin: 3px 0 2px 0;
    cursor: ns-resize;
    flex-shrink: 0;
    border-radius: 2px;
    background: repeating-linear-gradient(
        to right,
        #555 0px, #555 5px,
        transparent 5px, transparent 9px
    );
    opacity: 0.6;
}

.wfwResizeHandle:hover {
    opacity: 1;
    background: repeating-linear-gradient(
        to right,
        #888 0px, #888 5px,
        transparent 5px, transparent 9px
    );
}

/* .wfwRow, .wfwRowBtn, .wfwCell etc. are used by dynamically added rows (JS) */
.wfwRow {
    display: flex;
    align-items: stretch;
    margin-bottom: 1px;
}

.wfwRowBtn {
    width: 22px;
    min-width: 22px;
    background-color: #555;
    color: #ddd;
    border: 1px solid #666;
    cursor: pointer;
    font-size: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 2px;
    user-select: none;
    flex-shrink: 0;
}

.wfwRowBtn:hover {
    background-color: #777;
}

.wfwRowBtnActive {
    background-color: #777;
    color: #ff6600;
}

.wfwRowMenu {
    position: fixed;
    background-color: rgba(20, 20, 20, 0.97);
    border: 1px solid #555;
    padding: 8px 0;
    z-index: 1000;
    display: none;
    box-sizing: border-box;
    min-width: 150px;
}

.wfwRowMenuItem {
    font-family: w95fa, 'Lucida Console', 'Courier New', Tahoma, Verdana, sans-serif;
    font-size: 13px;
    letter-spacing: 1px;
    color: rgb(255, 153, 0);
    text-shadow: 1px 1px black;
    cursor: pointer;
    padding: 8px 16px;
    transition: color 0.2s, background-color 0.2s;
}

.wfwRowMenuItem:hover:not(.wfwRowMenuItemDisabled) {
    color: rgb(255, 255, 255);
    background-color: rgba(80, 0, 0, 0.85);
    border-top: 1px solid black;
    border-bottom: 1px solid black;
}

.wfwRowMenuItemDisabled {
    color: #555;
    cursor: default;
    text-shadow: none;
}

.wfwCell {
    border: 1px solid #444;
    box-sizing: border-box;
    resize: none;
    font-size: 0.8em;
    padding: 3px 4px;
    font-family: Verdana, Geneva, Tahoma, sans-serif;
    background-color: #2a2a2a;
    min-height: 36px;
    outline: none;
    overflow-y: auto;
}

.wfwCell:focus {
    border-color: #888;
}

.wfwCell1 {
    flex: 1;
}

.wfwCell2 {
    flex: 2;
    margin-left: 2px;
}

.wfwArteroids1Cell,
.wfwExplosions1Cell {
    color: #33cc33;
}

.wfwArteroids2Cell,
.wfwExplosions2Cell {
    color: #33cccc;
}

.wfwSectionLabelRow {
    position: relative;
    display: flex;
    align-items: flex-start;
}

.wfwSectionLabelRow .wfwSpawnToggle {
    position: absolute;
    right: 0;
    top: 0;
}

.wfwRowBtnSpacer {
    width: 24px;
    min-width: 24px;
    flex-shrink: 0;
}

.wfwSectionLabel {
    flex: 1;
    padding-left: 2px;
}

.wfwExplosionLabel {
    flex: 2;
}

.wfwFieldBlock {
    padding: 4px 8px 0 8px;
    flex-shrink: 0;
}

.wfwMissivesLabelRow {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.wfwSpawnToggle {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    white-space: nowrap;
    gap: 4px;
    padding-left: 8px;
}

.wfwSpawnCheckbox {
    cursor: pointer;
    margin: 0;
}

.wfwSpawnCheckboxLabel {
    color: #ff6600;
    font-size: 0.75em;
    cursor: pointer;
    user-select: none;
}

.wfwMissivesTextarea {
    width: 100%;
    box-sizing: border-box;
    background-color: #2a2a2a;
    color: #cccccc;
    border: 1px solid #444;
    resize: none;
    font-size: 0.8em;
    line-height: 1.5;
    padding: 3px 4px;
    font-family: Verdana, Geneva, Tahoma, sans-serif;
    min-height: calc(1.5em + 8px);
    max-height: calc(4.5em + 8px);
    outline: none;
    overflow-x: hidden;
    overflow-y: auto;
}

.wfwMissivesTextarea:focus {
    border-color: #888;
}

.wfwIdEntityInput {
    color: #cc3333;
    background-color: #2a2a2a;
    border: 1px solid #444;
    width: 50%;
}

.mainMenuMusicControlsContainer {
    width:100%;
}
.mainMenuMusicNote {
    text-align: center;
    font-size: 24px;
    color: rgb(255, 153, 0);
    text-shadow: 1px 1px black;
    cursor: pointer;
}

.mainMenuMusicNote:hover {
    color: rgb(255, 0, 0);
}

.bossBioTitle {
    font-family: Times, w95fa, 'Lucida Console', 'Courier New', Tahoma, Verdana, sans-serif;
    font-weight: bold;
    font-size:16px;
    color:#f60;
    text-shadow: 1px 1px black;
}
