* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html, body {
  width: 100%;
  height: 100%;
  background: #1a1a2e;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  touch-action: none;
}

#game-root {
  position: relative;
  display: block;
}

#game-canvas {
  display: block;
  cursor: crosshair;
  image-rendering: pixelated;
}

#game-canvas.tool-hose   { cursor: url('GoodImages/HoseIcon.png') 32 32, crosshair; }
#game-canvas.tool-sponge { cursor: url('GoodImages/SpongeIcon.png') 32 32, crosshair; }
#game-canvas.tool-polish { cursor: url('GoodImages/PolishIcon.png') 32 32, crosshair; }
#game-canvas.tool-towel  { cursor: url('GoodImages/TowelIcon.png') 32 32, crosshair; }

@keyframes floatUp {
  0%   { transform: translateY(0); opacity: 1; }
  100% { transform: translateY(-60px); opacity: 0; }
}

.float-text {
  position: absolute;
  font-size: 1.4rem;
  font-weight: bold;
  color: #FFD700;
  text-shadow: 0 2px 4px rgba(0,0,0,0.8);
  pointer-events: none;
  animation: floatUp 1s ease-out forwards;
  white-space: nowrap;
}

@keyframes shimmer {
  0%,100% { opacity: 0.7; }
  50%      { opacity: 1; }
}

.stage-badge {
  animation: shimmer 1.5s ease-in-out infinite;
}

#rotate-overlay {
  position: fixed;
  inset: 0;
  background: #0d2137;
  color: #fff;
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  text-align: center;
  font-family: Arial, sans-serif;
  padding: 20px;
}

#rotate-overlay.visible {
  display: flex;
}

#rotate-overlay .icon {
  font-size: 64px;
  animation: rotateHint 1.6s ease-in-out infinite;
  margin-bottom: 16px;
}

#rotate-overlay p {
  font-size: 18px;
  font-weight: bold;
  color: #29b6f6;
}

@keyframes rotateHint {
  0%, 100% { transform: rotate(0deg); }
  50%      { transform: rotate(-90deg); }
}