:root{--bg: #fdf6ec;--surface: #ffffff;--fg: #2d2a26;--muted: #6b6459;--border: #e2d9c8;--accent: #1d6fae;--success: #1e7e46;--warning: #b45309;--error: #c0392b;--star: #b45309;--radius: 16px;--shadow: 0 4px 12px rgb(0 0 0 / .08);--tap: 48px;--gap: 8px}*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--fg);background:var(--bg);touch-action:manipulation;-webkit-text-size-adjust:100%}body{min-height:100dvh;display:flex;flex-direction:column}button,.btn{min-width:var(--tap);min-height:var(--tap);padding:10px 20px;font-size:1.1rem;font-weight:700;border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--fg);cursor:pointer;box-shadow:var(--shadow)}button:active{transform:scale(.97)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.success{background:var(--success);border-color:var(--success);color:#fff}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}#game{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:var(--gap);overflow:hidden}.stars{font-size:2rem;letter-spacing:4px;color:var(--star)}.stars .off{color:var(--border)}.loading{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:12px;flex-direction:column;color:var(--muted);font-size:1.1rem;background:var(--bg);z-index:5}.loading .spinner{width:56px;height:56px;border-radius:50%;border:6px solid var(--border);border-top-color:var(--accent);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.grid{display:grid;gap:var(--gap);width:100%;max-width:720px;margin:0 auto}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.shake{animation:shake .3s ease}@keyframes pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.pop{animation:pop .25s ease}.hint{display:flex;align-items:center;gap:var(--gap);padding:var(--gap);font-size:1.05rem;color:var(--muted);justify-content:center}
