:root{--bg:#f6f7f9;--surface:#fff;--text:#1d2530;--muted:#5d6978;--line:#dfe3e8;--accent:#3b6fd4;--accent-text:#fff;--good:#1f9d55;--tilebg:#ecedf0;--hint2:#fff4d6;--hint2-line:#e5b53a;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#14181e;--surface:#1d232c;--text:#e8ecf1;--muted:#9aa6b4;--line:#2d3642;--accent:#6c97ee;--accent-text:#0e1420;--good:#3ec27a;--tilebg:#0f1318;--hint2:#3a3220;--hint2-line:#c9a03a;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#14181e;--surface:#1d232c;--text:#e8ecf1;--muted:#9aa6b4;--line:#2d3642;--accent:#6c97ee;--accent-text:#0e1420;--good:#3ec27a;--tilebg:#0f1318;--hint2:#3a3220;--hint2-line:#c9a03a;color-scheme:dark}
*{box-sizing:border-box}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
main{max-width:960px;margin:0 auto;padding:16px}
h1{font-size:1.6rem;margin:.2em 0}
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px}
.btn{font:inherit;font-weight:600;background:var(--accent);color:var(--accent-text);border:0;border-radius:10px;padding:12px 22px;cursor:pointer;min-height:44px}
.btn:focus-visible,.tile:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.muted{color:var(--muted)}
.center{text-align:center;max-width:560px;margin:8vh auto 0}
.bar{display:flex;justify-content:space-between;align-items:center;font-size:.95rem;color:var(--muted);margin-bottom:10px}
.hints{display:grid;gap:8px;margin-bottom:14px}
.hint{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:12px 14px;font-size:1.15rem;line-height:1.4}
.hint small{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:2px}
.hint.easy{background:var(--hint2);border-color:var(--hint2-line);animation:pop .4s ease}
.hint.wait{border-style:dashed;color:var(--muted);font-size:.95rem}
@keyframes pop{from{transform:scale(.97);opacity:0}to{transform:none;opacity:1}}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media (min-width:640px){.grid{grid-template-columns:repeat(3,1fr);gap:14px}}
.tile{position:relative;aspect-ratio:4/3;background:var(--tilebg);border:1px solid var(--line);border-radius:12px;padding:0;overflow:hidden;background:var(--surface);cursor:pointer}
.tile img{width:100%;height:100%;display:block;object-fit:contain}
.tile:disabled{cursor:default}
.tile .ok{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:rgba(31,157,85,.55)}
.tile.correct .ok{display:flex;animation:pop .25s ease}
.ok svg{width:55%;height:55%}
dialog{border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--text);max-width:520px;width:calc(100% - 32px);padding:20px}
dialog::backdrop{background:rgba(0,0,0,.55)}
dialog img{width:100%;max-height:42vh;object-fit:contain;background:var(--tilebg);border-radius:12px;display:block;margin:0 0 12px;border:1px solid var(--line)}
dialog .artist{margin:-.5em 0 .8em;color:var(--muted)}
dialog h2{margin:.2em 0;font-size:1.2rem;color:var(--muted)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}
.stat{border:1px solid var(--line);border-radius:12px;padding:12px 6px}
.stat b{display:block;font-size:1.5rem}
.top{max-width:960px;margin:0 auto;padding:12px 16px 0;display:flex;justify-content:flex-end}
.logo{font-weight:700;font-size:1.1rem;letter-spacing:.02em;color:var(--muted)}
.logo img{height:48px;width:auto;display:block}
[hidden]{display:none!important}
