* {
  margin: 0;
  padding: 0;
}

html,
body {
  height: 100%;
}

body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding-top: 37.5vh; /* za f11 more bit 39vh. za ne f11 pa 37.5 */
  box-sizing: border-box;
  background: url('../img/ozadje.png') center no-repeat;
  background-size: cover;
  background-attachment: fixed;
}

.cel {
  display: grid;
  justify-items: center;
  transform: none;
}

.player {
  width: 70px;
  height: 70px;
  background-image: url('../img/ribic.png');
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  transform: translateX(-30px);
}

.hook {
  width: 20px;
  height: 20px;
}

.maze {
  display: flex;
  margin: auto;
  max-width: 90vw;
  height: auto;
  overflow: visible;
}

.fish {
  display: flex;
  width: 30px;
  height: 30px;
  margin-left: -40px;
  background-size: cover;
}

/* ------------------------- */
/* LAKS */
/* ------------------------- */

.path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 3000;
  stroke-dashoffset: 3000;
  pointer-events: none;
}

/* mehak halo okoli laksa */
.path-glow {
  stroke: rgba(255, 255, 255, 0.08);
  stroke-width: 5.5;
  filter: blur(1.8px);
  opacity: 0.9;
  animation: linePulseGlow 2.8s ease-in-out infinite alternate;
}

/* glavni prozoren svetel laks */
.path-main {
  stroke: rgba(255, 255, 255, 0.42);
  stroke-width: 1.25;
  opacity: 0.95;
  filter:
    drop-shadow(0 0 1px rgba(255, 255, 255, 0.55))
    drop-shadow(0 0 3px rgba(190, 230, 255, 0.22))
    drop-shadow(0 0 6px rgba(255, 255, 255, 0.10));
  animation: linePulseMain 2.2s ease-in-out infinite alternate;
}

/* premikajoč se lesket po laksu */
.path-shine {
  stroke: rgba(255, 255, 255, 0.75);
  stroke-width: 0.7;
  opacity: 0.55;
  filter: drop-shadow(0 0 2px rgba(255, 255, 255, 0.7));
  animation: shinePulse 1.6s ease-in-out infinite alternate;
}

@keyframes shinePulse {
  from {
    opacity: 0.25;
    filter: drop-shadow(0 0 1px rgba(255, 255, 255, 0.35));
  }
  to {
    opacity: 0.7;
    filter: drop-shadow(0 0 4px rgba(255, 255, 255, 0.9));
  }
}

@keyframes linePulseMain {
  from {
    opacity: 0.5;
    filter:
      drop-shadow(0 0 1px rgba(255, 255, 255, 0.35))
      drop-shadow(0 0 2px rgba(190, 230, 255, 0.12))
      drop-shadow(0 0 4px rgba(255, 255, 255, 0.06));
  }
  to {
    opacity: 1;
    filter:
      drop-shadow(0 0 1px rgba(255, 255, 255, 0.75))
      drop-shadow(0 0 4px rgba(190, 230, 255, 0.3))
      drop-shadow(0 0 8px rgba(255, 255, 255, 0.12));
  }
}

@keyframes linePulseGlow {
  from {
    opacity: 0.45;
  }
  to {
    opacity: 0.95;
  }
}

.reel-btn {
  position: fixed;
  left: 20px;
  bottom: 20px;
  width: 120px;
  height: 120px;
  display: none;
  cursor: pointer;
  z-index: 999;
}

.reel-btn:hover {
  transform: scale(1.05);
}

.reel-btn:active {
  transform: scale(0.96);
}

.reel-btn img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  user-select: none;
  -webkit-user-drag: none;
  display: block;
  transition: transform 0.45s ease-out;
  transform: rotate(0deg);
}
}