:root{color-scheme:dark;--bg:#08080d;--panel:#14141e;--text:#f4f6ff;--muted:#a0a0b4;--border:#ffffff14;--accent:#7c5cff;--pink:#ff4d7d}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 0 0,#7c5cff20,transparent 55%),radial-gradient(ellipse at 100% 100%,#ff4d7d16,transparent 55%),var(--bg);color:var(--text);font:14px/1.4 Arial,Helvetica,sans-serif;min-height:100vh;min-height:100dvh;padding:max(10px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}canvas:focus{outline:none}button:active:not(:disabled){transform:scale(.98)}[hidden]{display:none!important}
.app{max-width:1280px;margin:auto}.toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin-bottom:14px}.toolbar>a{justify-self:start}.actions{justify-self:end;display:flex;gap:7px}.icon{display:inline-grid;place-items:center;min-width:44px;height:44px;padding:0 10px;border:1px solid var(--border);border-radius:13px;background:#ffffff08;color:var(--text);text-decoration:none;font-size:22px}
.stats{display:flex;gap:7px;justify-content:center}.stat{min-width:80px;background:#ffffff06;border:1px solid var(--border);border-radius:15px;padding:8px 14px;text-align:center}.stat span{display:block;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.stat strong{display:block;font-size:21px;line-height:1.3;font-variant-numeric:tabular-nums}.stat.status strong{font-size:13px;line-height:27px}.status{min-width:100px}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;align-items:start;gap:18px}.playArea{min-width:0}.gameFrame{position:relative;width:100%;max-width:100%;aspect-ratio:10/7;margin:0 auto;background:#04100b;border:1px solid #62efa923;border-radius:22px;overflow:hidden;box-shadow:0 18px 55px #0004}canvas{display:block;width:100%;height:100%;touch-action:none;user-select:none}
.overlay{position:absolute;inset:0;display:grid;place-items:center;padding:12px;background:#020706b8;backdrop-filter:blur(3px)}.overlayCard{width:min(330px,100%);padding:22px;text-align:center;background:#11151de8;border:1px solid var(--border);border-radius:22px}.overlayCard h1{margin:0;font-size:clamp(23px,3vw,34px);letter-spacing:-.04em}.overlayCard p{color:var(--muted);margin:10px 0 18px}.primary{background:linear-gradient(130deg,var(--pink),var(--accent));border:0;border-radius:13px;min-height:46px;padding:10px 20px;font-weight:800;width:100%}.secondary{width:100%;margin-top:8px;min-height:44px;background:#ffffff0c;border:1px solid var(--border);border-radius:12px}
footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;color:var(--muted);font-size:11px}.player{max-width:44%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dpad{display:none;justify-content:center;gap:8px;width:100%}.dpad button{width:48px;height:44px;border:1px solid var(--border);background:var(--panel);border-radius:12px;font-size:23px;user-select:none}
.leaderboard{border-radius:20px;border:1px solid var(--border);background:linear-gradient(145deg,#1b1b27,#101018);padding:16px;max-height:calc(100dvh - 104px);overflow:auto;scrollbar-width:thin;scrollbar-color:#ffffff25 transparent;align-self:start}.leaderHead{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.leaderHead h2{margin:3px 0 0;font-size:25px;letter-spacing:-.04em}.eyebrow{font-size:9px;letter-spacing:.15em;font-weight:800;color:var(--muted)}.columns,.row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px}.columns{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:6px}.row{min-height:44px;padding:8px 0;border-bottom:1px solid #ffffff08}.rank{width:26px;text-align:center;font-weight:800;color:var(--muted)}.row:nth-child(1) .rank{color:#ffd35b}.row:nth-child(2) .rank{color:#cbd1d8}.row:nth-child(3) .rank{color:#d9a37d}.name{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.points{font-weight:800;font-size:12px;font-variant-numeric:tabular-nums}.isYou .name{color:#76edb7}.empty{opacity:.35}.refresh{border:0;background:transparent;color:var(--muted);width:100%;min-height:44px;margin-top:6px;font-size:12px}.muted{color:var(--muted);font-size:12px}.mobileLeaderboard,.closeLeader{display:none}
dialog{width:min(440px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;background:#181824;color:var(--text);border:1px solid #ffffff20;border-radius:22px;padding:24px;box-shadow:0 20px 80px #0008}dialog::backdrop{background:#030309b8;backdrop-filter:blur(5px)}dialog h2{margin:6px 0;font-size:25px;letter-spacing:-.03em}dialog p{color:var(--muted);font-size:13px}label{display:block;margin-top:18px;margin-bottom:6px;font-weight:700}input:not([type=checkbox]){width:100%;background:#090912;border:1px solid #ffffff25;padding:12px;border-radius:12px;color:var(--text);font-size:16px;min-height:46px}input:focus{outline:2px solid var(--accent);outline-offset:1px}.error{color:#ff92ad;min-height:18px}.dialogHead{display:flex;justify-content:space-between;align-items:center;gap:10px}.check{display:flex;gap:10px;align-items:center;min-height:36px;font-size:14px}.check input{width:20px;height:20px;accent-color:var(--accent)}.toast{position:fixed;bottom:max(15px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:#28223b;border:1px solid #7c5cff66;max-width:calc(100vw - 24px);width:max-content;padding:13px 18px;border-radius:14px;box-shadow:0 10px 50px #0005;z-index:20;font-size:13px}.collect{position:absolute;color:#b4ffd4;font-size:clamp(18px,3vw,28px);font-weight:900;pointer-events:none;opacity:0;text-shadow:0 2px 12px #000;transform:translate(-50%,-50%)}.collect.pop{animation:collect .48s ease-out}@keyframes collect{0%{opacity:1;transform:translate(-50%,-40%) scale(.75)}35%{opacity:1;transform:translate(-50%,-85%) scale(1.15)}100%{opacity:0;transform:translate(-50%,-150%) scale(.95)}}
@media(max-width:800px){
  body{padding:max(6px,env(safe-area-inset-top)) 0 max(8px,env(safe-area-inset-bottom));overflow-x:hidden}
  .app{width:100%;max-width:none}
  .toolbar{grid-template-columns:40px minmax(0,1fr) auto;gap:6px;margin-bottom:8px;padding-inline:max(6px,env(safe-area-inset-left));align-items:center}
  .toolbar>a{grid-column:1;grid-row:1}
  .stats{grid-column:2;grid-row:1;min-width:0;gap:4px}
  .actions{grid-column:3;grid-row:1;gap:4px}
  .icon{min-width:40px;height:40px;padding:0 7px;border-radius:12px;font-size:20px}
  .stat{flex:1 1 0;min-width:0;padding:5px 4px;border-radius:13px}
  .stat span{font-size:8px;letter-spacing:.1em}
  .stat strong{font-size:18px;line-height:1.25}
  .stat.status strong{font-size:11px;line-height:23px;white-space:nowrap}
  .status{min-width:0}
  .layout{grid-template-columns:1fr;gap:0}
  .playArea{width:100%;min-width:0}
  .gameFrame{width:100%;max-width:none;border-radius:18px;box-shadow:0 12px 38px #0004}
  .overlay{padding:10px}
  .overlayCard{width:min(360px,calc(100% - 8px));padding:18px;border-radius:18px}
  .overlayCard h1{font-size:clamp(24px,7vw,31px)}
  .overlayCard p{font-size:13px;margin:7px 0 13px}
  footer{margin-top:7px;padding-inline:max(8px,env(safe-area-inset-left));gap:6px;font-size:11px}
  .help{font-size:0}
  .help::after{content:'Swipe on the board to turn';font-size:11px}
  .player{max-width:48%;font-size:11px}
  .dpad{display:none!important}
  .mobileLeaderboard,.closeLeader{display:inline-grid}
  .leaderboard{display:none}
  .leaderboard.open{display:block;position:fixed;z-index:10;right:max(8px,env(safe-area-inset-right));top:max(8px,env(safe-area-inset-top));width:min(340px,calc(100vw - 16px));max-height:calc(100dvh - 16px);box-shadow:0 0 0 100vmax #000a}
}
@media(pointer:coarse) and (min-width:801px){.dpad{display:flex}}
@media(max-width:440px){
  .toolbar{grid-template-columns:38px minmax(0,1fr) auto;gap:4px;margin-bottom:7px}
  .icon{min-width:38px;height:38px;padding:0 6px}
  .stats{gap:3px}
  .stat{padding:4px 3px;border-radius:12px}
  .stat strong{font-size:17px}
  .stat.status strong{font-size:10px;line-height:22px}
  .gameFrame{border-radius:15px}
  .overlayCard{padding:15px}
  .overlayCard p{font-size:12px;margin:6px 0 10px}
  footer{font-size:10px}
  .help::after{font-size:10px}
  .player{max-width:42%}
}
@media(max-height:500px) and (min-width:441px){body{padding-top:6px;padding-bottom:6px}.toolbar{margin-bottom:6px}.stat{padding:4px 10px}.gameFrame{border-radius:14px}.overlayCard{padding:10px;max-width:300px}.overlayCard h1{font-size:21px}.overlayCard p{font-size:11px;margin:3px 0 6px}.primary{min-height:40px}footer{margin-top:5px}.leaderHead{margin-bottom:6px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
