@font-face {
  font-family: 'Minecraft';
  src: url("/assets/MinecraftRegular-Bmg3.otf") format("opentype");
  font-weight: normal;
  font-style: normal;
}

:root {
  --extra-margin: 12px;
  --playfield-width: 614px;
  --playfield-half: 307px;
}

body {
  margin: 0;
  background: #000000;
  color: white;
  font-family: "Minecraft";
  overflow: hidden;
  justify-content: center;
}

canvas {
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  background: #000000;
  width: var(--playfield-width);
  height: 100vh;
  z-index: 5000;
}

#tals {
  display: none;
  flex-direction: column-reverse;
  text-align: center;
  z-index: 10000000;
  position: fixed;
  bottom: 50%;
  left: calc(50% - var(--playfield-half));
  width: var(--playfield-width);
  right: 0;
  font-size: x-large;
}

#lyrics { 
  display: flex;
  flex-direction: column-reverse;
  text-align: center;
  z-index: 5001;
  position: fixed;
  bottom: 20px;
  left: calc(50% - var(--playfield-half));
  width: var(--playfield-width);
  right: 0;
  font-size: x-large;
}

#screenTint {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.7);
  z-index: 50;
  filter: blur(0px);
  backdrop-filter: blur(0px) grayscale(0%);
  display: none;
  pointer-events: auto;
}

#leftPanel {
  position: absolute;
  top: 10px;
  left: calc(50% - var(--playfield-half) - var(--extra-margin) - 438px);
  width: 438px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-size: 15px;
}

#leftPanelBottom {
  position: static;
  width: 438px;
  display: none;
  flex-direction: column;
  gap: 10px;
  font-size: 15px;
}

#rightPanel {
  position: absolute;
  top: 10px;
  left: calc(var(--playfield-width) + var(--extra-margin) + 481px);
  width: 420px;
  display: none;
  flex-direction: column;
  gap: 12px;
  font-size: 14px;
}

#ui {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 20px;
  text-shadow: 2px 2px 0 rgba(0,0,0,0.5);
}

#fpsDisplay {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  font-size: 18px;
  position: fixed;
  top: 10px;
  right: 10px;
  text-shadow: 2px 2px 0 rgba(0,0,0,0.5);
}

#progress {
  height: 10px;
  background: #333;
  border-radius: 3px;
  filter: drop-shadow(2px 2px 0px rgba(0, 0, 0, 0.5));
}

#progressBar {
  height: 100%;
  width: 0%;
  background: #3EB489;
  border-radius: 3px;
  transition: width 0.1s ease;
}

#lvlBtns {
  display: none;
}

#health {
  display: none;
  align-items: flex-end;
  height: 400px; 
  width: 10px;
  border-radius: 3px; 
  background: #333; 
  filter: drop-shadow(2px 2px 0px rgba(0, 0, 0, 0.5));
  overflow: hidden; 
  position: fixed;
  bottom: 39px;
  left: calc(50% + var(--playfield-half) + 12px);
} 

#healthBar {
  width: 100%;
  height: 0%;
  border-radius: 3px;
  background: #3EB489; 
  transition: height 0.25s ease; 
}

.buttonRow {
  display: flex;
  gap: 6px;
}

button,
select,
input {
  background: #222;
  color: white;
  border: 1px solid #555;
  padding: 3px 6px;
  font-family: "Minecraft";
  font-size: 14px;
  cursor: pointer;
  width: auto;
  text-shadow: 2px 2px 0 rgba(0,0,0,0.5);
  filter: drop-shadow(2px 2px 0px rgba(0, 0, 0, 0.5));
}

button:hover,
select:hover,
input:hover {
  background: #333;
}

.fileBlock {
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-shadow: 2px 2px 0 rgba(0,0,0,0.5);
}

.group {
  display: flex;
  flex-direction: column;
  gap: 6px;
  text-shadow: 2px 2px 0 rgba(0,0,0,0.5);
}

.checkboxRow {
  display: flex;
  align-items: center;
  gap: 6px;
}

.inlineField {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.laserBeamSettings {
  display: flex;
  gap: 12px;
}

.rgbRow {
  display: flex;
  align-items: center;
  gap: 6px;
  text-shadow: 2px 2px 0 rgba(0,0,0,0.5);
}

.rgbRow input[type="number"] {
  width: 50px;
}

.rgbRow input[type="range"] {
  flex: 1;
}

#colorPreview {
  height: 28px;
  border: 1px solid #444;
}

#debug {
  position: absolute;
  top: 10px;
  left: calc(50% + var(--playfield-half) + 32px);
  display: none;
  flex-direction: column;
  gap: 3px;
  font-size: 12px;
  text-shadow: 2px 2px 0 rgba(0,0,0,0.5);
}

#gameplayTools,
#colorStyleTools,
#tempoTools,
#levelSettings,
#decorations {
  display: none;
  flex-direction: column;
  gap: 15px;
}

#editTools {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.toolCategory {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 6px;
}

.toolCategory h4 {
  grid-column: 1 / -1;
  margin: 0;
}

#music {
  width: 400px;
  height: 35px;
  filter: drop-shadow(2px 2px 0px rgba(0, 0, 0, 0.5));
}

.presetBtn {
  padding: 4px 8px;
  font-size: 13px;
}

.playbackBtn {
  padding: 4px 8px;
  font-size: 13px;
}

#mobileButtons button {
  padding: 10px 20px;
  font-size: 18px;
  border-radius: 5px;
  display:none;
  position:absolute;
  bottom:10px;
  left:50%;
  transform: translateX(-50%);
  gap:10px;
  z-index: 100000;
}

#hr {
  display: block;
  width: 100%;
  margin-inline-start: auto;
  margin-inline-end: auto;
  color: gray;
  border-width: 1px;
}

#levelEditorStats {
  font-size: 13px;
  text-shadow: 2px 2px 0 rgba(0,0,0,0.5);
}

#volumeDisplay {
  position: fixed;
  right: 10px;
  bottom: 10px;

  min-width: 140px;

  font-size: 20px;

  opacity: 0;
  transform: translateY(30px);

  pointer-events: none;

  transition:
    opacity 0.1s ease-out,
    transform 0.1s ease-out;

  text-shadow: 2px 2px 0 rgba(0,0,0,0.5);
}

#volumeDisplay.show {
  opacity: 1;
  transform: translateY(0);
}

#volumeDisplay.hide {
  opacity: 0;
  transform: translateY(30px);

  transition:
    opacity 1s ease,
    transform 1s ease;
}

.volumeRow {
  display: flex;
  justify-content: space-between;
  gap: 16px;
}

.prevent-select {
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

hr {
  width: 85%;
  height: 2px;
  border: none;
  background-color: white;
}

::file-selector-button {
  font-family: "Minecraft";
}