/* Touch controls and hiding-spot overlays. All live inside #ui (pointer-events: none). */

.joystick-ring {
  position: fixed;
  box-sizing: border-box;
  border-radius: 50%;
  border: 2px solid rgba(240, 236, 225, 0.45);
  background: rgba(240, 236, 225, 0.12);
  pointer-events: none;
  display: none;
  touch-action: none;
}
.joystick-ring.is-visible { display: block; }

.joystick-knob {
  position: absolute;
  left: 50%;
  top: 50%;
  margin: -26px 0 0 -26px;
  border-radius: 50%;
  background: rgba(240, 236, 225, 0.55);
  border: 2px solid rgba(240, 236, 225, 0.8);
}

.action-button {
  position: fixed;
  right: calc(24px + env(safe-area-inset-right, 0px));
  bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  width: 96px;
  height: 96px;
  padding: 0;
  border-radius: 50%;
  border: 2px solid rgba(240, 236, 225, 0.6);
  background: var(--panel, rgba(20, 18, 16, 0.7));
  background-color: rgba(20, 18, 16, 0.7);
  color: var(--text, #f0ece1);
  font: 700 17px/1.1 system-ui, sans-serif;
  text-align: center;
  pointer-events: auto;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: transparent;
  cursor: pointer;
  transition: transform 80ms ease, background-color 80ms ease;
}
.action-button[hidden] { display: none; }
.action-button:active,
.action-button.is-pressed {
  transform: scale(0.92);
  background-color: rgba(70, 62, 52, 0.85);
  border-color: var(--text, #f0ece1);
}

.action-label {
  position: relative;
  display: block;
  padding: 0 8px;
  pointer-events: none;
}

.action-ring {
  position: absolute;
  inset: -6px;
  width: calc(100% + 12px);
  height: calc(100% + 12px);
  transform: rotate(-90deg);
  pointer-events: none;
  display: none;
}
.action-ring.is-visible { display: block; }
.action-ring circle {
  fill: none;
  stroke: var(--text, #f0ece1);
  stroke-width: 5;
  stroke-linecap: round;
}

/* Hiding-spot overlays */
.hide-overlay {
  position: fixed;
  inset: 0;
  pointer-events: none;
}

.hide-closet {
  background:
    repeating-linear-gradient(
      90deg,
      rgba(8, 5, 3, 0.96) 0,
      rgba(8, 5, 3, 0.96) 46px,
      rgba(8, 5, 3, 0) 46px,
      rgba(8, 5, 3, 0) 58px
    ),
    radial-gradient(ellipse at center, rgba(0, 0, 0, 0.25) 40%, rgba(0, 0, 0, 0.8) 100%);
}

.hide-bush {
  background:
    radial-gradient(circle at 8% 12%, rgba(14, 48, 18, 0.95) 0 11%, transparent 12%),
    radial-gradient(circle at 24% 4%, rgba(20, 62, 22, 0.95) 0 10%, transparent 11%),
    radial-gradient(circle at 78% 6%, rgba(16, 54, 20, 0.95) 0 12%, transparent 13%),
    radial-gradient(circle at 94% 20%, rgba(12, 42, 16, 0.95) 0 11%, transparent 12%),
    radial-gradient(circle at 4% 70%, rgba(18, 58, 22, 0.95) 0 13%, transparent 14%),
    radial-gradient(circle at 96% 76%, rgba(14, 48, 18, 0.95) 0 14%, transparent 15%),
    radial-gradient(circle at 20% 98%, rgba(12, 44, 16, 0.95) 0 14%, transparent 15%),
    radial-gradient(circle at 70% 100%, rgba(20, 62, 22, 0.95) 0 15%, transparent 16%),
    radial-gradient(ellipse at center, rgba(0, 10, 2, 0) 35%, rgba(4, 22, 6, 0.92) 100%);
}

.hide-ballPit {
  background:
    radial-gradient(circle at 6% 96%, #e53935 0 6.5%, transparent 7%),
    radial-gradient(circle at 17% 100%, #fdd835 0 7.5%, transparent 8%),
    radial-gradient(circle at 29% 95%, #1e88e5 0 6.5%, transparent 7%),
    radial-gradient(circle at 41% 100%, #43a047 0 7.5%, transparent 8%),
    radial-gradient(circle at 53% 95%, #fb8c00 0 6.5%, transparent 7%),
    radial-gradient(circle at 65% 100%, #8e24aa 0 7.5%, transparent 8%),
    radial-gradient(circle at 77% 95%, #e53935 0 6.5%, transparent 7%),
    radial-gradient(circle at 89% 100%, #1e88e5 0 7.5%, transparent 8%),
    radial-gradient(circle at 99% 95%, #fdd835 0 6.5%, transparent 7%),
    linear-gradient(to top, rgba(0, 0, 0, 0.55) 0, transparent 22%);
}
