/* -------------------------------------------------------------
 * Realistic 3D Driving Simulator - Custom Styles & FX
 * ------------------------------------------------------------- */
@keyframes fadeIn {
  from { opacity: 0; transform: scale(0.95); }
  to { opacity: 1; transform: scale(1); }
}

.animate-fade-in {
  animation: fadeIn 0.25s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.text-glow {
  text-shadow: 0 0 15px rgba(251, 191, 36, 0.4);
}

/* Touch Control Feedback */
.touch-ctrl-btn {
  touch-action: none;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
  transition: transform 0.08s ease, filter 0.08s ease;
}

.touch-ctrl-btn:active,
.touch-ctrl-btn.active {
  transform: scale(0.92);
  filter: brightness(1.25);
}

.ctrl-sub-btn {
  touch-action: none;
  -webkit-tap-highlight-color: transparent;
  transition: all 0.1s ease;
}

.ctrl-sub-btn:active {
  transform: scale(0.9);
}

/* Push to start button */
.engine-push-btn {
  box-shadow: 0 4px 10px rgba(0,0,0,0.5), inset 0 1px 2px rgba(255,255,255,0.4);
  transition: transform 0.08s ease, box-shadow 0.08s ease;
}

.engine-push-btn:active {
  transform: scale(0.93) translateY(2px);
  box-shadow: 0 1px 4px rgba(0,0,0,0.6);
}

/* Minimap GPS styling */
.gps-frame {
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.7), 0 0 15px rgba(6, 182, 212, 0.2);
}

/* Blinkers animation */
@keyframes blinkerPulse {
  0%, 100% { color: #52525b; text-shadow: none; }
  50% { color: #f59e0b; text-shadow: 0 0 8px #f59e0b; }
}

.blinking {
  animation: blinkerPulse 0.5s infinite;
}

/* Prevent accidental scrolling / selection on mobile */
html, body {
  position: fixed;
  width: 100%;
  height: 100%;
  touch-action: manipulation;
}