:root{
  /* Thumb-biased: cardinals larger, diagonals smaller */
  --btnSize: 48px;       /* base cell size */
  --gap: 6px;            /* tighter grid gap */
  --padInset: 8px;       /* pad interior padding */
  --padBg: rgba(0,0,0,0.22);
  --btnBg: rgba(255,255,255,0.12);
  --btnBgDown: rgba(255,255,255,0.24);
  --text: rgba(255,255,255,0.92);
  --padRadius: 16px;

  /* Thumb ergonomics */
  --diagScale: 0.82;     /* diagonals are harder to hit precisely */
  --cardScale: 1.10;     /* cardinals are the primary inputs */
}

html, body {
  margin: 0;
  padding: 0;
  height: 100%;
  background: #0b0f14;
  color: var(--text);
  font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  overscroll-behavior: none;
  touch-action: none;
}

#app { position: relative; height: 100vh; width: 100vw; overflow: hidden; }
#game { position:absolute; inset:0; z-index: 0; }
#hud  { position: absolute; inset: 0; pointer-events: auto; z-index: 10; }


#topBar {
  position: absolute;
  top: 8px;
  left: 8px;
  right: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  pointer-events: auto;
}

#status {
  background: rgba(0,0,0,0.35);
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 12px;
  padding: 6px 10px;
  font-size: 13px;
  font-weight: 600;
  max-width: 72vw;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  white-space: pre-line;
}


.btn {
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 12px;
  background: var(--btnBg);
  color: var(--text);
  font-size: 18px;
  font-weight: 800;
  line-height: 1;
  display: grid;
  place-items: center;
  padding: 0;
  user-select: none;
  -webkit-user-select: none;
  pointer-events: auto;

  /* Better thumb feel */
  -webkit-tap-highlight-color: transparent;
}

.btn:active { background: var(--btnBgDown); }

.btn.small {
  height: 34px;
  padding: 0 12px;
  font-size: 13px;
  border-radius: 10px;
}

/* Control pads */
.pad3{
  position: absolute;

  /* Safe-area aware (phones with gesture bars/notches) */
  bottom: calc(10px + env(safe-area-inset-bottom));
  width: calc(var(--btnSize)*3 + var(--gap)*2 + (var(--padInset)*2));
  height: calc(var(--btnSize)*3 + var(--gap)*2 + (var(--padInset)*2));
  padding: var(--padInset);

  background: var(--padBg);
  border-radius: var(--padRadius);

  display: grid;
  grid-template-columns: repeat(3, var(--btnSize));
  grid-template-rows: repeat(3, var(--btnSize));
  gap: var(--gap);

  pointer-events: auto;
}

/* Thumb-biased placement */
#movePad  { left:  calc(10px + env(safe-area-inset-left)); }
#attackPad{ right: calc(10px + env(safe-area-inset-right)); }

/* Single attack button */
#attackPad.atkOne{
  display: grid;
  place-items: center;
  grid-template-columns: none;
  grid-template-rows: none;
}


.atkBig{
  width: calc(var(--btnSize)*3 + var(--gap)*2);
  height: calc(var(--btnSize)*3 + var(--gap)*2);
  border-radius: 18px;
  font-size: 20px;
  letter-spacing: 0.12em;
}


.padbtn{
  width: var(--btnSize);
  height: var(--btnSize);
  border-radius: 14px;

  transform-origin: 50% 50%;
  transition: transform 70ms ease-out, background 70ms ease-out;
}

/* Larger cardinal directions (easier thumb flicks) */
#movePad  [data-move="0,-1"],
#movePad  [data-move="0,1"],
#movePad  [data-move="-1,0"],
#movePad  [data-move="1,0"],
#attackPad [data-atk="0,-1"],
#attackPad [data-atk="0,1"],
#attackPad [data-atk="-1,0"],
#attackPad [data-atk="1,0"]{
  transform: scale(var(--cardScale));
}

/* Smaller diagonals (reduce accidental diagonal hits) */
#movePad  [data-move="-1,-1"],
#movePad  [data-move="1,-1"],
#movePad  [data-move="-1,1"],
#movePad  [data-move="1,1"],
#attackPad [data-atk="-1,-1"],
#attackPad [data-atk="1,-1"],
#attackPad [data-atk="-1,1"],
#attackPad [data-atk="1,1"]{
  transform: scale(var(--diagScale));
}

.pad-center{
  border-radius: 14px;
  border: 1px dashed rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.04);
}

.atk-center{
  display: grid;
  place-items: center;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.10em;
  opacity: 0.75;
}

/* Landscape: tighten */
@media (orientation: landscape){
  :root{
    --btnSize: 44px;
    --gap: 5px;
    --padInset: 7px;
    --diagScale: 0.80;
    --cardScale: 1.08;
  }

  #status{ max-width: 58vw; }

  #movePad  { left:  calc(8px + env(safe-area-inset-left)); }
  #attackPad{ right: calc(8px + env(safe-area-inset-right)); }
  .pad3{ bottom: calc(8px + env(safe-area-inset-bottom)); }
}

/* Very small screens */
@media (max-width: 380px){
  :root{
    --btnSize: 40px;
    --gap: 4px;
    --padInset: 6px;
    --diagScale: 0.78;
    --cardScale: 1.06;
  }
}

/* Ensure on-screen controls receive taps; canvas should not intercept pointer events */
#game canvas { pointer-events: none; }


/* --- Mobile viewport safety --- */
#app {
  height: 100vh;
  height: 100dvh;
  padding-bottom: env(safe-area-inset-bottom);
}

.pad3 {
  bottom: max(16px, calc(16px + env(safe-area-inset-bottom)));
}


/* --- Pond water background (requires /images/water.png) --- */
#app {
  background-image: url("images/grass.jpg");
  background-repeat: repeat;
  background-size: cover;
  background-position: 0 0;
  animation: waterPan 18000s linear infinite;
}

@keyframes waterPan {
  0%   { background-position: 0px 0px; }
  100% { background-position: 260px 180px; }
}

/* Ensure Phaser canvas is transparent so the water shows through */
#game canvas { background: transparent !important; }


#highScore{
  position:absolute;
  right:12px;
  top:10px;
  font: 14px/1.2 system-ui;
  color:#fff;
  opacity:0.9;
  text-align:right;
  pointer-events:none;
  white-space:nowrap;
}

#gameOver{
  position:fixed;
  left:50%;
  top:45%;
  transform:translate(-50%,-50%);
  z-index:99998;
  display:none;
  font: 22px/1.25 system-ui;
  color:#fff;
  text-align:center;
  white-space:pre-line;
  padding:16px 18px;
  border-radius:16px;
  background:rgba(0,0,0,0.55);
  backdrop-filter:blur(8px);
  pointer-events: auto;
}

#restartOverlay{
  pointer-events: auto;

  margin-top: 14px;
  padding: 14px 18px;
  font-size: 18px;
  border-radius: 14px;
  min-width: 160px;
  justify-content: center;
}

#restartOverlay{
  pointer-events: auto;
 pointer-events: auto; }

#restart{ display:none !important; }



/* --- Global Leaderboard Panel --- */
#leaderboardPanel{
  position: fixed;
  left: 10px;
  right: 10px;
  top: 64px;
  max-width: 560px;
  margin: 0 auto;
  background: rgba(10, 18, 24, 0.92);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 14px;
  box-shadow: 0 10px 40px rgba(0,0,0,0.45);
  z-index: 50;
  backdrop-filter: blur(8px);
}
#leaderboardPanel.hidden{ display:none; }
#leaderboardPanel .panelHeader{
  display:flex;
  align-items:center;
  justify-content: space-between;
  padding: 10px 12px;
  border-bottom: 1px solid rgba(255,255,255,0.10);
}
#leaderboardPanel .panelTitle{
  font-weight: 700;
  letter-spacing: 0.2px;
}
#leaderboardPanel .panelBody{
  padding: 10px 12px 12px 12px;
}
#leaderboardPanel .nameRow{
  display:flex;
  gap: 8px;
  align-items:center;
  flex-wrap: wrap;
  margin-bottom: 10px;
}
#leaderboardPanel .nameRow label{
  opacity: 0.85;
  font-size: 12px;
}
#playerNameInput{
  flex: 1 1 160px;
  min-width: 160px;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.15);
  background: rgba(0,0,0,0.20);
  color: #e7f1ff;
  outline: none;
}
#playerNameInput::placeholder{ color: rgba(231,241,255,0.55); }

.lbMeta{
  font-size: 12px;
  opacity: 0.85;
  margin: 8px 0;
}
.lbList{
  margin: 0;
  padding-left: 18px;
  max-height: 44vh;
  overflow: auto;
}
.lbList li{
  display:flex;
  justify-content: space-between;
  gap: 10px;
  padding: 6px 4px;
  border-bottom: 1px dashed rgba(255,255,255,0.10);
  font-size: 14px;
}
.lbList .lbName{
  overflow:hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 280px;
}
.lbList .lbScore{
  font-variant-numeric: tabular-nums;
  opacity: 0.95;
}
.lbHint{
  font-size: 12px;
  opacity: 0.70;
  margin-top: 10px;
  line-height: 1.25;
}

/* Secondary button variant (used for Share Score) */
.btn.secondary{
  background: rgba(255,255,255,0.10);
  border: 1px solid rgba(255,255,255,0.14);
}
