@font-face {
  font-family: "AnoRegular";
  src: url("../fonts/AnoRegular-Regular.otf") format("opentype");
}

@font-face {
  font-family: "AnoBold";
  src: url("../fonts/AnoBold-Regular.otf") format("opentype");
}


body { 
  padding-bottom: 40px;
  background: #000;
  color: #fff;
  font-family: 'AnoBold', sans-serif;
  text-align: center;
  -webkit-user-select: none !important; /* Safari */
  user-select: none !important;
}

.grid-container {
  margin-top: 7vh;
  display: grid;
  grid-template-columns: repeat(5, 100px);
  grid-gap: 28px;
  background-color: rgb(0, 0, 0);
  padding: 20px;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.1);
}

.color-box {
  width: 100px;
  height: 100px;
  display: flex;
  justify-content: center;
  align-items: center;
  color: rgba(0,0,0,0.7);
  font-weight: bold;
  border-radius: 8px;
  text-shadow: 1px 1px 2px rgba(255,255,255,0.6);
}

.slider-container {
  margin-top: 4vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 15px 25px;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.1);
}

#darkenSlider {
  width: 600px;
  margin-top: 10px;
}

input[type='range'] {
  -webkit-appearance: none !important;
  background: #c5b6a1;
  height:7px;
}
input[type='range']::-webkit-slider-thumb {
  -webkit-appearance: none !important;
  background: #D5A77F;
  height:25px;
  width:25px;
  border-radius: 12px;
}

#darkenValue {
  margin-top: 1vh;
  font-size: 1.5vh;
}

a {
  color: #fff;
  text-decoration: underline;
  font-family: "AnoBold", sans-serif;
}

.modal {
  display: none; 
  position: fixed;
  z-index: 10000;
  left: 0; top: 0;
  width: 100%; height: 100%;
  background-color: rgb(0 0 0 / 84%);
  justify-content: center;
  align-items: center;
}

.modal-content {
  font-family: "AnoRegular", sans-serif;
  background: #000;
  padding: 20px;
  border: solid 4px white;
  border-radius: 31px;
  max-width: 85%;
  max-height: 80%;
  overflow-y: auto;
  font-size: 2vh;
  line-height: 1.4em;
  text-align: left;
}

.modal-content h2 {
  margin-top: 0;
  font-size: 2vh !important;
}

.modal-content strong {
  font-family: "AnoBold", sans-serif;
}

.close {
  float: right;
  font-size: 4vh;
  cursor: pointer;
  text-align: end;;
}

.alert {
  display: flex;
  align-items: center;
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1050;
  border-radius: 0;
  font-size: 1.5vh;
  padding: 0;
  max-height: 3vh;
}

.alert-msg {
  width: 100%;;
}

.alert-close {
  margin-right: 1vw;
  position: unset !important;
  padding: 6px 0px !important;
}

.register-screen {
  display: flex;
  flex-direction: column;
  position: absolute;
  justify-content: flex-start;
  top: 4vh;
  width: 100vw;
  align-items: center;
}

#register-title {
  margin-bottom: 1rem;
  font-size: 2.2vh;
  margin-top: 4vh;
  width: 80vw;
  max-width: 742px;
}

#register-form {
  margin: auto;
  width: 80vw;
  max-width: 770px;
  text-align: left;
  font-size: 1.8vh;
  margin-top: 3vh;
  margin-bottom: 10vh;
}

.form-control {
  font-size: 1.6vh;
  border-radius: 1.1vh;
  margin-top: 8px;
  margin-bottom: 24px;
}

.form-check {
  margin-top: 4vh;
  font-size: 1.5vh;
}

.form-check-label {
  font-family: 'AnoRegular';
}

#submit {
  display: block;
  margin: 3vh auto;
}

.nick-text {
  text-align: end;
  font-family: 'AnoRegular';
  font-size: 1.3vh;
  margin-top: -5px;
}

.required-fields-text {
  font-size: 1.5vh;
}

.text-danger {
  margin-top: -20px;
  margin-bottom: 1vh;
  font-family: 'AnoRegular';
  font-size: 1.3vh;
}

#register-thanks {
  position: absolute;
  top: 27vh;
  font-size: 4vh; 
  max-width: 70%;
  line-height: 1.1em;
}

#register-check-mail {
  position: absolute;
  top: 40vh;
  font-size: 2.5vh;
  font-family: 'AnoRegular';
  max-width: 70%;
  line-height: 1.1em;
}

#register-complete-msg {
  position: absolute;
  top: 50vh;
  font-size: 2.5vh;
  font-family: 'AnoRegular';
  max-width: min(529px, 60vw);
  max-width: 70%;
  line-height: 1.1em;
}

.keypad button {
    width: 60px; height: 40px;
}

.screen {
  display: none;
  position: absolute;
  inset: 0;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}

.screen.active {
  display: flex;
}

#pin-screen {
    position: absolute;
    justify-content: flex-start;
    top: 7%;
}

.logo{
  max-height: 13vh;
}

.bottom-logo {
  position: absolute;
  bottom: 12vh;
}

.pin-container {
  display: flex;
  justify-content: center;
  align-items: center;
}

.pin-title {
  font-size: 2.3vh;
  max-width: 38%;
  text-align: center;
  margin-top: 8.3vh;
}

.pin-input {
  font-family: monospace;
  font-size: 4.5rem;
  border: none;
  outline: none;
  padding: 0;
  width: calc(1.6ch * 4);
  background: repeating-linear-gradient(90deg, #ffffff 0, #fffafa 1ch 24.0718px, transparent 0, transparent 1.6ch) 0 100% / 100% 6px no-repeat;
  color: #fffcfc;
  letter-spacing: 0.6ch;
  -webkit-text-security: disc;
  -moz-text-security: disc;
}

.simple-keyboard {
  max-width: 700px;
  width: 55%;
  margin-top: 8vh;
  color: #000;
  padding: 12px !important;
}

.hg-theme-default .hg-button {
  align-items: center;
  background: #fff;
  border-bottom: 1px solid #b5b5b5;
  border-radius: 5px;
  box-shadow: 0 0 3px -1px rgba(0,0,0,.3);
  box-sizing: border-box;
  cursor: pointer;
  display: flex;
  height: 61px !important;
  justify-content: center;
  padding: 5px;
  margin: 3px;
  font-family: "AnoRegular", sans-serif;
  font-size: 1.3em;
  -webkit-tap-highlight-color: rgba(0,0,0,0);
}

.btn {
  padding: 1vh 1.2vh;
  border: 0.3vh solid #ffffff !important;
  border-radius: 2.1vh !important;
  background: #000000;
  color: #ffffff;
  font-size: 2.2vh !important;
  font-weight: bold;
  cursor: pointer;
  transition: all 0.3s;
}

#start-btn {
  margin-top: 10vh;
}

#countdown-screen {
    position: absolute;
    justify-content: flex-start;
    top: 7%;
}

#countdown {
  position: absolute;
  top: 40%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 20rem;
  display: none;
}

h1 {
  font-size: 1.8em;
  margin: 0;
}

#circle-container {
  position: absolute;
  top: 7%;
  right: 14%;
  width: 160px;
  height: 160px;
}

svg {
  position: absolute;
  top: 0;
  left: 0;
  width: 160px;
  height: 160px;
  transform: rotate(90deg) scaleX(-1);
}

circle {
  fill: none;
  stroke-width: 10;
}

#bg-circle {
  stroke: #494949;
}

#progress-circle {
  stroke: #fff;
  stroke-linecap: round;
  stroke-dasharray: 440;
  stroke-dashoffset: 440;
  transition: stroke-dashoffset 0.1s linear;
}

#level-number {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 3.8em;
  color: #fff;
  user-select: none;
}

#grid {
  display: grid;
  gap: 30px;
  width: 50vmin;
  height: 50vmin;
  justify-content: center;
  align-content: space-around;
  justify-items: center;
  margin-bottom: 15vh;
}

.circle {
  border-radius: 50%;
  cursor: pointer;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.circle:hover {
  transform: scale(1.05);
}

#message {
  font-size: 1.2em;
  margin-top: 20px;
}

.gelatine {
  animation: gelatine 0.3s;
}

@keyframes gelatine {
  from, to { transform: scale(0.1, 0.1); opacity: 0.2; }
  25% { transform: scale(0.9, 1.1);  opacity: 0.4; }
  50% { transform: scale(1.1, 0.9);  opacity: 0.6; }
  75% { transform: scale(0.95, 1.05);  opacity: 0.8;}
  100%{ transform: scale(1, 1); opacity: 1;}
}

@keyframes fadeIn {
  to {
    opacity: 1;
    transform: scale(1);
  }
}

.score-float {
  position: absolute;
  color: #00ff88;
  font-weight: bold;
  font-size: 1.4em;
  animation: floatUp 1s ease-out forwards;
  pointer-events: none;
}

@keyframes floatUp {
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0; transform: translateY(-40px); }
}

#end-screen {
  top: 7%;
  justify-content: flex-start;
}

#congrats-message {
  font-size: 3.8vh;
  position: absolute;
  top: 25vh;
}
#prescore-message {
  font-size: 4vh;
  position: absolute;
  top: 37vh;
  font-family: 'AnoRegular', sans-serif;
}
#score-message {
  font-size: 5vh;
  position: absolute;
  top: 42vh;
  font-family: 'AnoRegular', sans-serif;
}
#ranking-message {
  font-size: 2.5vh;
  position: absolute;
  top: 54vh;
  width: 60vw;
  max-width: 595px;
}

#end-btn {
  position: absolute;
  top: 80%;
}

.ranking-screen {
  margin: 0 14vw;
  margin-top: 5vh;
}

.ranking-logo {
  object-fit: contain;
  max-width: 100%;
  max-height: 21vh;
  width: 100%;
  height: auto;
}

table {
  margin-top: 3vh;
  margin-left: auto;
  margin-right: auto;
  width: 91%;
  font-size: min(2vh, 3vw);
  text-align: left;

}