.vlx-ws-game-wrapper {
  font-family: Arial, sans-serif;
  position: relative;
  transition: opacity 0.1s ease;
  opacity: 0;
}

.vlx-ws-game-wrapper.vlx-ws-ready {
  opacity: 1;
}

.vlx-ws-grid-container {
  box-sizing: border-box;
}

.vlx-ws-grid {
  width: 100%;
  height: 100%;
}

.vlx-ws-letter {
  font-size: 25px;
  font-weight: bold;
  position: relative;
  box-sizing: border-box;
}

.vlx-ws-letter.vlx-ws-selecting {
  z-index: 1;
}

.vlx-ws-letter.vlx-ws-found {
  z-index: 2;
}

.vlx-ws-letter.vlx-ws-selection-start-horizontal {
  border-radius: 50% 0 0 50%;
}

.vlx-ws-letter.vlx-ws-selection-end-horizontal {
  border-radius: 0 50% 50% 0;
}

.vlx-ws-letter.vlx-ws-selection-start-vertical {
  border-radius: 50% 50% 0 0;
}

.vlx-ws-letter.vlx-ws-selection-end-vertical {
  border-radius: 0 0 50% 50%;
}

.vlx-ws-letter.vlx-ws-selection-start-diagonal-down {
  border-radius: 50% 0 0 0;
}

.vlx-ws-letter.vlx-ws-selection-end-diagonal-down {
  border-radius: 0 0 50% 0;
}

.vlx-ws-letter.vlx-ws-selection-start-diagonal-up {
  border-radius: 0 0 0 50%;
}

.vlx-ws-letter.vlx-ws-selection-end-diagonal-up {
  border-radius: 0 50% 0 0;
}

.vlx-ws-letter.vlx-ws-selection-start-horizontal.vlx-ws-selection-end-horizontal,
.vlx-ws-letter.vlx-ws-selection-start-vertical.vlx-ws-selection-end-vertical,
.vlx-ws-letter.vlx-ws-selection-start-diagonal-down.vlx-ws-selection-end-diagonal-down,
.vlx-ws-letter.vlx-ws-selection-start-diagonal-up.vlx-ws-selection-end-diagonal-up,
.vlx-ws-letter.vlx-ws-found-start-horizontal.vlx-ws-found-end-horizontal,
.vlx-ws-letter.vlx-ws-found-start-vertical.vlx-ws-found-end-vertical,
.vlx-ws-letter.vlx-ws-found-start-diagonal-down.vlx-ws-found-end-diagonal-down,
.vlx-ws-letter.vlx-ws-found-start-diagonal-up.vlx-ws-found-end-diagonal-up {
  border-radius: 50%;
}

.vlx-ws-letter.vlx-ws-found-start-horizontal {
  border-radius: 50% 0 0 50%;
}

.vlx-ws-letter.vlx-ws-found-end-horizontal {
  border-radius: 0 50% 50% 0;
}

.vlx-ws-letter.vlx-ws-found-start-vertical {
  border-radius: 50% 50% 0 0;
}

.vlx-ws-letter.vlx-ws-found-end-vertical {
  border-radius: 0 0 50% 50%;
}

.vlx-ws-letter.vlx-ws-found-start-diagonal-down {
  border-radius: 50% 0 0 0;
}

.vlx-ws-letter.vlx-ws-found-end-diagonal-down {
  border-radius: 0 0 50% 0;
}

.vlx-ws-letter.vlx-ws-found-start-diagonal-up {
  border-radius: 0 0 0 50%;
}

.vlx-ws-letter.vlx-ws-found-end-diagonal-up {
  border-radius: 0 50% 0 0;
}

.vlx-ws-letter.vlx-ws-debug-highlight {
  z-index: 3;
  color: #ffffff !important;
  background-color: #ff00ff !important;
}

.vlx-ws-words-container {
  box-sizing: border-box;
  transform: translateY(30px);
  opacity: 0 !important;
}

.vlx-ws-word {
  font-size: 25px;
  font-weight: bold;
  transform: translateY(10px);
  white-space: nowrap;
  opacity: 0 !important;
}

.vlx-ws-word.vlx-ws-found {
  /* text-decoration: line-through; */
}

.vlx-ws-word.vlx-ws-pulsing {
  animation: vlx-ws-pulse 0.5s ease;
}

@keyframes vlx-ws-pulse {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.15);
    opacity: 0.8;
  }
}

.vlx-ws-score,
.vlx-ws-timer {
  font-size: 90px;
  font-weight: bold;
  box-sizing: border-box;
  white-space: nowrap;
  color: #ffffff;
}

.vlx-ws-score.vlx-ws-score-increase {
  animation: vlx-ws-score-up 0.6s ease;
}

.vlx-ws-score.vlx-ws-score-decrease {
  animation: vlx-ws-score-down 0.6s ease;
}

@keyframes vlx-ws-score-up {
  0% {
    transform: scale(1);
    filter: brightness(1);
  }
  30% {
    transform: scale(1.3);
    filter: brightness(1.4) saturate(1.3);
  }
  50% {
    transform: scale(1.2);
    filter: brightness(1.3) saturate(1.2);
  }
  100% {
    transform: scale(1);
    filter: brightness(1);
  }
}

@keyframes vlx-ws-score-down {
  0% {
    transform: scale(1);
    filter: brightness(1) hue-rotate(0deg);
  }
  20% {
    transform: scale(0.85) translateY(3px);
    filter: brightness(0.7) hue-rotate(-10deg);
  }
  40% {
    transform: scale(0.9) translateY(-2px);
    filter: brightness(0.8) hue-rotate(-5deg);
  }
  60% {
    transform: scale(0.95) translateY(1px);
    filter: brightness(0.9);
  }
  100% {
    transform: scale(1) translateY(0);
    filter: brightness(1) hue-rotate(0deg);
  }
}

.vlx-ws-timer.vlx-ws-timer-warning {
  animation: vlx-ws-timer-pulse 1s ease-in-out infinite;
}

@keyframes vlx-ws-timer-pulse {
  0%, 100% {
    transform: scale(1);
    filter: brightness(1);
  }
  50% {
    transform: scale(1.08);
    filter: brightness(1.3) saturate(1.4);
  }
}

.vlx-ws-timer.vlx-ws-blinking .vlx-ws-timer-value {
  animation: vlx-ws-blink 0.5s infinite;
}

@keyframes vlx-ws-blink {
  0%, 49% {
    opacity: 1;
  }
  50%, 100% {
    opacity: 0;
  }
}

.vlx-ws-overlay {
  box-sizing: border-box;
  transition: opacity 0.15s ease;
}

.vlx-ws-popup {
  font-size: 56px;
  box-sizing: border-box;
  transition: opacity 0.25s ease, transform 0.1s ease-out;
  background-position: top center;
  background-size: cover;
}

.vlx-ws-popup-content h1 {
  font-size: 160% !important;
}

.vlx-ws-popup-content h2 {
  font-size: 135% !important;
}

.vlx-ws-popup-content h3 {
  font-size: 120% !important;
}

.vlx-ws-popup-content {
  max-width: 90%;
  text-align: center;
}

.vlx-ws-popup-button {
  font-size: 16px;
  font-weight: bold;
  padding: 12px 24px;
  cursor: pointer;
  transition: all 0.3s ease;
  border: none;
  border-radius: 4px;
  outline: none;
}

.vlx-ws-popup-button:hover {
  transform: scale(1.05);
  opacity: 0.9;
}

.vlx-ws-popup-button:active {
  transform: scale(0.95);
}

/* Start Screen Styles */
.vlx-ws-start-screen {
  /* No transition on initial load - controlled by JavaScript */
}

.vlx-ws-start-button {
  transition: all 0.3s ease;
}

.vlx-ws-start-button:hover {
  transform: scale(1.05);
  opacity: 0.9;
}

.vlx-ws-start-button:active {
  transform: scale(0.95);
}

.vlx-ws-start-button-image {
  max-width: 100%;
  height: auto;
}

.vlx-ws-start-button-text,
.vlx-ws-start-button-text-icon {
  user-select: none;
}
