:root{
  --felt:#0B3A38; --felt-d:#062522; --wood:#4A2A18;
  --brass:#c9a35e; --brass-l:#e8cf93; --ink:#f3ead7; --muted:#9fb3ae;
  --glass:rgba(7,25,26,.78);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none;touch-action:none}
body{
  background:
    radial-gradient(ellipse at 50% 18%, #20302f 0%, #0d1516 55%, #040808 100%);
  color:var(--ink);
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  -webkit-user-select:none;user-select:none;
}
#game{position:fixed;inset:0}
#game canvas{display:block;touch-action:none}
.hidden{display:none !important}

.ov{
  position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;
  padding:140px 16px 24px;overflow:auto;
  background:radial-gradient(ellipse at 50% 46%,rgba(214,168,90,.12) 0%,rgba(3,10,10,.2) 48%,rgba(3,10,10,.55) 100%);
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
}
.ov.solid{background:radial-gradient(ellipse at 50% 30%,#12302f 0%,#061312 70%);z-index:30;padding-top:24px}
@media (max-height:620px){.ov{padding-top:16px;align-items:flex-start}}
.card{
  width:min(100%,400px);margin:auto;text-align:center;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.07'/%3E%3C/svg%3E"),
    linear-gradient(180deg,rgba(255,244,220,.07) 0%,rgba(255,244,220,0) 38%),
    linear-gradient(180deg,rgba(16,42,41,.93),rgba(6,20,20,.96));
  border:1px solid rgba(201,163,94,.55);border-radius:24px;padding:24px 20px 20px;
  outline:1px solid rgba(201,163,94,.08);outline-offset:-7px;
  box-shadow:0 0 60px rgba(214,168,90,.15),0 30px 80px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.08);
  color:var(--ink);
}
.card.wide{width:min(100%,440px)}
.eyebrow{margin:0 0 6px;font-size:12px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--brass)}
.brand{margin:0 0 10px;font-family:Oswald,"Archivo Narrow",Impact,sans-serif;font-weight:700;font-size:40px;line-height:1.1;letter-spacing:.11em;
  background:linear-gradient(180deg,#FFF4DC 15%,#E3C48A 100%);-webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 12px rgba(227,196,138,.28))}
#menu .eyebrow::after,#pause .eyebrow::after{
  content:"";display:block;height:10px;margin:10px auto 6px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='10'%3E%3Cdefs%3E%3ClinearGradient id='a'%3E%3Cstop offset='0' stop-color='%23c9a35e' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23c9a35e'/%3E%3C/linearGradient%3E%3ClinearGradient id='b'%3E%3Cstop offset='0' stop-color='%23c9a35e'/%3E%3Cstop offset='1' stop-color='%23c9a35e' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect x='0' y='4.5' width='68' height='1' fill='url(%23a)'/%3E%3Crect x='92' y='4.5' width='68' height='1' fill='url(%23b)'/%3E%3Cpolygon points='80,0.5 85,5 80,9.5 75,5' fill='%23e3c48a'/%3E%3C/svg%3E") center/160px 10px no-repeat;
}
.brand.small{font-size:28px}
.lede{margin:0 0 16px;font-size:15px;line-height:1.55;color:rgba(243,234,215,.74)}
.muted{color:var(--muted);font-size:14px;line-height:1.5;margin:10px 0 0}
.note{margin:4px 0 12px;font-size:14px;color:var(--brass-l);min-height:20px}
.tiny{font-size:12px;color:var(--muted);margin:10px 0 4px}
.online{min-height:20px}
.stats{display:flex;gap:10px;margin:0 0 14px}
.stats>div{flex:1;background:linear-gradient(180deg,rgba(255,244,220,.06),rgba(255,255,255,.02));border:1px solid rgba(201,163,94,.42);border-radius:14px;padding:10px 6px;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 2px 8px rgba(0,0,0,.25)}
.stats span{display:block;font-family:Oswald,sans-serif;font-weight:600;font-size:28px;color:var(--brass-l);line-height:1.1}
.stats small{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(243,234,215,.7)}
.bigscore{font-family:Oswald,sans-serif;font-weight:700;font-size:78px;line-height:1.05;color:var(--brass-l);text-shadow:0 4px 24px rgba(201,163,94,.35);margin:2px 0}
.btn{
  display:block;width:100%;min-height:52px;margin-top:10px;padding:12px 16px;
  border-radius:14px;border:1px solid rgba(201,163,94,.7);background:linear-gradient(180deg,rgba(255,244,220,.09),rgba(255,255,255,.025));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 2px 8px rgba(0,0,0,.25);
  color:var(--ink);font:600 15px Inter,sans-serif;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;
  -webkit-user-select:none;user-select:none;transition:transform .12s ease,background .12s ease;
}
.btn.primary{background:linear-gradient(180deg,#ecd292,#b88a3e);color:#2a1808;border-color:#f3dfae;box-shadow:inset 0 1px 0 rgba(255,255,255,.6),inset 0 -3px 6px rgba(120,70,15,.38),0 6px 20px rgba(200,150,70,.35)}
.btn.ghost{background:transparent;border-color:rgba(255,255,255,.12);color:rgba(243,234,215,.62);min-height:46px;font-size:12px;letter-spacing:.16em;box-shadow:none}
#btnSound::before,#pSound::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:10px;vertical-align:1px;background:#5fd1a0;box-shadow:0 0 8px rgba(95,209,160,.7)}
#btnSound.off::before,#pSound.off::before{background:#6b7776;box-shadow:none}
.btn:active{transform:scale(.97)}
.btn:focus-visible,.tab:focus-visible{outline:3px solid #fff;outline-offset:2px}
@media (hover:hover){.btn:hover{background:rgba(201,163,94,.16)}.btn.primary:hover{background:linear-gradient(180deg,#f0d598,#c4973f)}}

.bar{height:8px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden;margin:6px 6px 0}
.bar i{display:block;height:100%;width:6%;border-radius:99px;background:linear-gradient(90deg,#b88a3e,#e8cf93);transition:width .25s ease}
.rack{display:block;margin:0 auto 10px}
.rack circle{animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.55}50%{opacity:1}}

.tabs{display:flex;gap:8px;margin:8px 0 10px}
.tab{flex:1;min-height:44px;border-radius:12px;border:1px solid rgba(201,163,94,.35);background:transparent;color:var(--muted);font:600 13px Inter,sans-serif;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.tab.on{background:rgba(201,163,94,.2);color:var(--brass-l);border-color:var(--brass)}
.localbest{font-size:13px;color:var(--muted);letter-spacing:.06em}
.localbest b{color:var(--brass-l);font-family:Oswald,sans-serif;font-size:18px;margin-left:6px}
.list{list-style:none;margin:10px 0 0;padding:0;max-height:300px;overflow:auto;text-align:left;touch-action:pan-y}
.list li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;font-size:15px;border-bottom:1px solid rgba(255,255,255,.05)}
.list li.you{background:rgba(201,163,94,.18);border:1px solid rgba(201,163,94,.5)}
.list li .rk{width:28px;font-family:Oswald,sans-serif;color:var(--brass);font-size:17px}
.list li .nm{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.list li .sc{font-family:Oswald,sans-serif;font-size:18px;color:var(--brass-l)}

@media (prefers-reduced-motion:reduce){
  .rack circle{animation:none}
  .bar i,.btn{transition:none}
}