:root {
  --bg: #0f1724;
  --panel: #0b1220;
  --accent: #00d1b2;
  --muted: #9aa4b2;
  --board-size: 600px;
}

body {
  margin: 0;
  font-family: Inter, sans-serif;
  background: linear-gradient(180deg,#071025 0%, #071b2b 100%);
  color: #dbe7ef;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
}

.app-shell {
  width: 100%;
  max-width: 980px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}


.header{
display:flex;
align-items:center;
justify-content:space-between;
gap:16px;
}


.title{font-size:20px;margin:0}
.controls{display:flex;align-items:center;gap:28px}
.btn{
background:var(--accent);
color:#021018;
border:none;
padding:8px 12px;
border-radius:8px;
cursor:pointer;
font-weight:600;
}
.btn:active{transform:translateY(1px)}
.score{color:var(--muted);font-weight:600}


.game-board{
width:var(--board-size);
height:var(--board-size);
background:
linear-gradient(180deg, rgba(255,255,255,0.02), transparent);
border-radius:12px;
border:1px solid rgba(255,255,255,0.04);
box-shadow: 0 8px 30px rgba(2,6,23,0.6);
margin:auto;
position:relative; /* JS will absolutely position segments here */
overflow:hidden;
outline:none;
display:block;
}


/* optional subtle grid for debugging — JS can toggle a .show-grid class */
.game-board.show-grid{
background-image: linear-gradient(0deg, rgba(255,255,255,0.02) 1px, transparent 1px),
linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px);
background-size: 20px 20px, 20px 20px;
}


.overlay{
position:absolute;
inset:0;
display:flex;
align-items:center;
justify-content:center;
font-weight:700;
font-size:20px;
background:linear-gradient(180deg, rgba(2,6,23,0.6), rgba(2,6,23,0.3));
color:var(--muted);
}
.hidden{display:none}


/* snake segment default style (JS can create elements with this class) */
.segment{
position:absolute;
width:20px; /* JS should match this to the movement grid */
height:20px;
border-radius:4px;
background: linear-gradient(180deg, var(--accent), #00a88a);
box-shadow: 0 2px 6px rgba(0,0,0,0.45), inset 0 -6px 12px rgba(255,255,255,0.02);
transform: translate(-50%,-50%);
will-change: transform;
}
#gameBoard {
  width: 600px;
  height: 600px;
  display: grid;
  grid-template-rows: repeat(20, 1fr);
  grid-template-columns: repeat(20, 1fr);
  background:
linear-gradient(180deg, rgb(136, 27, 27), transparent);
}
.bdy{
  background-color: rgb(22, 215, 164);
  height: 30px;
}
/* .snake{
  
  width: 20px;
  height: 20px;
  position: absolute;
} */

.footer{color:var(--muted);font-size:13px;text-align:center}


/* Responsive tweak: scale board down on small screens */
@media (max-width:720px){
:root{--board-size:92vw}
}