/* style.css — Minigolf */
:root{
  --bg:#9bd0a8;
  --ink:#15281c;
  --panel:rgba(15,28,20,0.78);
  --panel-light:rgba(255,255,255,0.9);
  --accent:#e54848;
  --good:#5fd07a;
  --warn:#ffd24a;
  --hot:#ff5a5a;
  --radius:14px;
  color-scheme: dark;
}
html[data-theme="light"]{
  --panel:rgba(255,255,255,0.92);
  --ink:#15281c;
  color-scheme: light;
}
@media (prefers-color-scheme: light){
  :root{ color-scheme: light; }
}
html,body{ margin:0; padding:0; height:100%; }
body{
  overflow:hidden;
  touch-action:manipulation;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);
  color:#fff;
  -webkit-font-smoothing:antialiased;
}
#game{ position:fixed; inset:0; }
#c{
  position:absolute; inset:0; width:100%; height:100%; display:block;
  touch-action:none;
  cursor:grab;
}
#c:active{ cursor:grabbing; }

/* HUD */
#hud{
  position:absolute; top:0; left:0; right:0;
  padding:14px 16px;
  display:flex; flex-direction:column; gap:10px;
  pointer-events:none;
  user-select:none;
}
.row{ display:flex; justify-content:space-between; align-items:center; gap:10px; }
.chip{
  background:var(--panel);
  color:#f6fff8;
  padding:8px 14px;
  border-radius:999px;
  font-size:13px; font-weight:600;
  letter-spacing:.02em;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  box-shadow:0 6px 20px rgba(0,0,0,0.25);
}
.chip b{ color:var(--warn); font-size:15px; margin:0 2px; }
.chip.dim{ opacity:.85; }
.chip.good{ background:rgba(28,120,60,0.92); }
#status{ min-width:90px; text-align:right; }

#power{
  position:relative;
  height:14px; width:100%; max-width:340px;
  background:rgba(0,0,0,0.32);
  border-radius:999px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,0.15);
  align-self:flex-start;
}
#powerfill{
  height:100%; width:0%;
  background:linear-gradient(90deg,#5fd07a,#ffd24a 60%,#ff5a5a);
  border-radius:999px;
  transition:width .05s linear, background .15s;
}
#powerfill.high{ background:linear-gradient(90deg,#ff8a3a,#ff5a5a); }
#powerfill.mid{ background:linear-gradient(90deg,#ffd24a,#ff8a3a); }
#powerlabel{
  position:absolute; right:10px; top:50%; transform:translateY(-50%);
  font-size:10px; font-weight:800; letter-spacing:.18em;
  color:rgba(255,255,255,0.85);
  opacity:.4; transition:opacity .2s;
  text-shadow:0 1px 2px rgba(0,0,0,0.4);
}
#hint{
  font-size:12px; color:#f6fff8;
  background:rgba(0,0,0,0.28);
  padding:6px 12px; border-radius:999px;
  align-self:flex-start;
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}

/* Win modal */
#win{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  background:rgba(8,18,12,0.55);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  z-index:5;
}
#win.hidden{ display:none; }
.card{
  background:var(--panel);
  color:#f6fff8;
  padding:30px 34px 26px;
  border-radius:22px;
  text-align:center;
  box-shadow:0 24px 60px rgba(0,0,0,0.45);
  border:1px solid rgba(255,255,255,0.12);
  min-width:260px;
  animation:pop .35s cubic-bezier(.2,.9,.3,1.3);
}
@keyframes pop{ from{ transform:scale(.8); opacity:0; } to{ transform:scale(1); opacity:1; } }
.card h1{
  margin:0 0 6px; font-size:30px; letter-spacing:.01em;
  color:#fff;
}
#winRating{ margin:0 0 14px; color:#bfe6c8; font-size:14px; }
#winStrokes{
  font-size:14px; font-weight:700; color:var(--warn);
  margin-bottom:18px; letter-spacing:.04em;
}
#playAgain{
  font-size:15px; font-weight:800;
  padding:12px 26px;
  border:none; border-radius:999px;
  background:var(--good);
  color:#0c2417;
  cursor:pointer;
  letter-spacing:.02em;
  box-shadow:0 8px 18px rgba(0,0,0,0.3);
  transition:transform .12s, box-shadow .12s;
}
#playAgain:hover{ transform:translateY(-2px); box-shadow:0 12px 22px rgba(0,0,0,0.35); }
#playAgain:active{ transform:translateY(0); }

#loading{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  background:var(--bg);
  color:var(--ink);
  font-weight:700; letter-spacing:.04em;
  z-index:6;
}

@media (max-width:480px){
  #hud{ padding:10px 12px; gap:8px; }
  .chip{ font-size:12px; padding:7px 12px; }
  #hint{ font-size:11px; }
  .card{ padding:24px 24px 20px; min-width:230px; }
  .card h1{ font-size:26px; }
}
