:root{--ground:#0f1218;--rock:#262b36;--dirt:#7c5231;--dirt-lit:#9c6a41;--water:#3f8cf4;--sand:#cdab74;--plant-dry:#1d3529;--plant-wet:#45d69a;--ink:#8b93a3;--cell:clamp(26px, min(11vw, 9vh), 58px)}*{box-sizing:border-box}body{background:var(--ground);min-height:100vh;color:var(--ink);-webkit-text-size-adjust:100%;flex-direction:column;align-items:center;gap:1.25rem;margin:0;padding:1.5rem;font-family:system-ui,sans-serif;display:flex}header{align-self:flex-end;font-size:.75rem}header a{color:#4b5464;text-decoration:none}header a:hover,header a:focus-visible{color:var(--ink)}main{flex-direction:column;align-items:center;gap:1.25rem;margin:auto 0;display:flex}h1{letter-spacing:.32em;text-transform:uppercase;color:#4b5464;margin:0;font-size:.9rem;font-weight:500}#board{grid-template-columns:repeat(var(--w,1), var(--cell));grid-template-rows:repeat(var(--h,1), var(--cell));border-radius:8px;outline:none;gap:2px;padding:2px;transition:filter .4s;display:grid}#board:focus-visible{box-shadow:0 0 0 2px #3a4353}.cell{background:var(--ground);border-radius:3px;transition:background-color 70ms linear;position:relative}.cell[data-cell=rock]{background:var(--rock)}.cell[data-cell=dirt]{background:var(--dirt)}.cell[data-cell=water]{background:var(--water)}.cell[data-cell=sand]{background:var(--sand);border-radius:40% 40% 20% 20%}.cell[data-cell=drain]{background:linear-gradient(#05070a,#000 65%);box-shadow:inset 0 5px 7px -3px #000}.cell[data-cell=plant]{background:var(--plant-dry);overflow:hidden}.cell[data-cell=plant]:after{content:"";background:var(--plant-wet);transform:scaleY(var(--fill,0));transform-origin:bottom;transition:transform .26s;position:absolute;inset:0}.cell[data-diggable=true]{cursor:pointer}.cell[data-diggable=true]:hover{background:var(--dirt-lit)}.cell[data-cursor]{outline-offset:-2px;outline:2px solid #e7ebf2}#board[data-hint=on] .cell[data-diggable=true]{animation:1.8s ease-in-out infinite breathe}@keyframes breathe{50%{background:var(--dirt-lit)}}#board[data-state=lost]{filter:saturate(.2)}#board[data-state=finished]{filter:brightness(1.15)}@media (prefers-reduced-motion:reduce){.cell,.cell[data-cell=plant]:after,#board{transition:none}#board[data-hint=on] .cell[data-diggable=true]{background:var(--dirt-lit);animation:none}}
