:root {
  --page-width-max: 1150px;
  --page-width-min: 320px;
}

@font-face {
  font-family: 'Source Code Pro';
  src: url('/data/SourceCodePro-Regular.ttf') format('truetype');
}

/* https://stackoverflow.com/a/4407335 */
.noselect {
  -webkit-touch-callout: none; /* iOS Safari */
  -webkit-user-select: none; /* Safari */
  -khtml-user-select: none; /* Konqueror HTML */
  -moz-user-select: none; /* Old versions of Firefox */
  -ms-user-select: none; /* Internet Explorer/Edge */
  user-select: none; /* Non-prefixed version, currently
                                  supported by Chrome, Edge, Opera and Firefox */
}

/* Use with "animation: turnOn 1s linear" to simulate panel power-on */
@keyframes turnOn {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

/* Use with "animation: slideOpen 4.5s linear" to simulate random doors uncovering/covering */
@keyframes slideUp {
  0% {
    height: 100%;
  }
  100% {
    height: 0%;
  }
}

/* Slider control main bar */
input[type='range'] {
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  border-radius: 3px;
  height: 15px;
  margin-bottom: 5px;
  margin-top: 5px;
  outline: none;
  width: 100%;
}
/* Slider control icon */
input[type='range']::-webkit-slider-thumb {
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  background: url('slider.png');
  background-size: 17px 33px;
  height: 33px;
  width: 17px;
}
input[type='range']::-moz-range-thumb {
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  background: url('slider.png');
  background-size: 17px 33px;
  height: 33px;
  width: 17px;
}
input[type='range']::-ms-thumb {
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  background: url('slider.png');
  background-size: 17px 33px;
  height: 33px;
  width: 17px;
}

body {
  background: url('/data/SWR_Tatortgame_background_it.webp');
  background-attachment: fixed;
  background-size: cover;
}

p {
  padding: 5px 0;
}



/* ###  GPS Map ###  */

@keyframes pulse {
  0% {
      transform: translate(-50%, -50%) scale(1);
      opacity: 1;
  }
  90% {
      transform: translate(-50%, -50%) scale(7);
      opacity: 0.5;
  }
  100% {
      transform: translate(-50%, -50%) scale(1);
      opacity: 1;
  }
}

@keyframes pulseOut {
  0% {
      transform: translate(-50%, -50%) scale(1);
      opacity: 1;
  }
  100% {
      transform: translate(-50%, -50%) scale(10);
      opacity: 0.1;
  }
}
.pulsing-dot {
    position: absolute;
    width: 3.2rem; 
    height: auto;
    left: 46%; 
    top: 57%; 
    transform: translate(-50%, -50%); 
}
.dot-outer-circle, .dot-inner-circle, .dot-dot {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
}
.dot-dot {
  width: 4px;
  height: 4px;
  background-color: red;
}
.dot-outer-circle {
  width: 16px;
  height: 16px;
  border: .3px solid red;
  opacity: 0.6;
  animation: pulseOut .7s infinite ease-out;
}
.dot-inner-circle {
  width: 6px;
  height: 6px;
  background-color: red;
  animation: pulse 0.7s infinite ease-out;
}

.zoom-controls {
  position: absolute;
  top: 8rem;
  right: 4rem;
  display: flex;
  flex-direction: column;
}

.zoom-button {
  width: 50px;
  height: 50px;
  background-color: #0c2f5b;
  border: 2px solid white;
  color: #fff;
  font-size: 2rem;
  font-family: sans-serif;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 2px;
  cursor: pointer;
  user-select: none;
}
.zoom-button:first-child {
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  border-bottom-left-radius: 0px;
  border-bottom-right-radius: 0px;
}

.zoom-button:last-child {
  margin-bottom: 0;
  border-top-left-radius: 0px;
  border-top-right-radius: 0px;
  border-bottom-left-radius: 10px;
  border-bottom-right-radius: 10px;
}


.zoom-button.disabled {
  opacity: .5;
  cursor: not-allowed;
}