:root{--bg: #0a0a0a;--fg: #f5f5f5;--muted: #a3a3a3;--accent: #22c55e;--accent-dim: #166534;--danger: #ef4444;--surface: #171717;--radius: 12px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--fg);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:var(--bg)}#root{min-height:100dvh}.page{min-height:100dvh;padding:1rem;padding-bottom:max(1rem,env(safe-area-inset-bottom))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.landing .hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1rem;padding-top:2rem}.landing h1{font-size:2.5rem;margin:0;letter-spacing:-.04em}.tagline{font-size:1.125rem;color:var(--muted);max-width:20rem}.demo-zoom{width:min(280px,80vw);aspect-ratio:1;border-radius:var(--radius);overflow:hidden;background:var(--surface);margin:1rem 0}.demo-inner{width:100%;height:100%;background:radial-gradient(circle at 30% 30%,var(--accent),#052e16 70%);transition:transform .35s ease}.cta-row{display:flex;flex-direction:column;gap:.75rem;width:min(320px,100%)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.875rem 1.25rem;border-radius:var(--radius);border:none;font-size:1rem;font-weight:600;cursor:pointer;text-decoration:none;transition:transform .15s,opacity .15s}.btn:active{transform:scale(.98)}.btn.primary{background:var(--accent);color:#052e16}.btn.secondary{background:var(--surface);color:var(--fg);border:1px solid #333}.btn.ghost{background:transparent;color:var(--muted)}.link-muted{color:var(--muted);font-size:.9rem}.page.play{display:flex;flex-direction:column;padding:0;gap:0}.play-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--bg)}.puzzle-num{font-weight:700;color:var(--muted)}.dezoom-dots{display:flex;gap:6px}.dezoom-dots .dot{width:10px;height:10px;border-radius:50%;background:#333;transition:background .3s}.dezoom-dots .dot.used{background:var(--accent)}.zoom-frame{flex:1;min-height:50dvh;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#000}.zoom-image{width:100%;height:100%;object-fit:cover;transition:transform .35s ease,opacity .2s;animation:dezoomIn .35s ease}@keyframes dezoomIn{0%{transform:scale(1.08);opacity:.85}to{transform:scale(1);opacity:1}}.guess-form{display:flex;gap:.5rem;padding:1rem;background:var(--surface)}.guess-form input{flex:1;padding:.875rem 1rem;border-radius:var(--radius);border:1px solid #333;background:var(--bg);color:var(--fg);font-size:1rem}.guess-form input:focus{outline:2px solid var(--accent);outline-offset:2px}.guess-form button{padding:.875rem 1.25rem;border-radius:var(--radius);border:none;background:var(--accent);color:#052e16;font-weight:700;cursor:pointer}.guess-form button:disabled{opacity:.5;cursor:not-allowed}.timer{text-align:center;color:var(--muted);font-size:.85rem;padding-bottom:.5rem}.error{color:var(--danger);text-align:center;padding:.5rem}.loading{text-align:center;padding:2rem}.result h1{font-size:2rem;margin-top:2rem}.result .score{font-size:3rem;font-weight:800;color:var(--accent)}.stats{list-style:none;padding:0;display:flex;gap:1rem;color:var(--muted)}.share-preview{background:var(--surface);padding:1rem;border-radius:var(--radius);font-size:.85rem;overflow-x:auto;white-space:pre-wrap}.result-nav{display:flex;gap:1rem;margin-top:1.5rem}.result-nav a{color:var(--accent)}.lb-list{list-style:none;padding:0;margin:1rem 0}.lb-list li{display:grid;grid-template-columns:3rem 1fr 4rem;padding:.625rem 0;border-bottom:1px solid #222}.lb-list li.me{background:#22c55e1a;border-radius:var(--radius)}.lb-list .pts{text-align:right;font-weight:700;color:var(--accent)}.my-rank{color:var(--accent);font-weight:600}.muted{color:var(--muted)}.login form,.admin-form{display:flex;flex-direction:column;gap:.75rem;max-width:360px}.login input,.admin-form input{padding:.75rem;border-radius:var(--radius);border:1px solid #333;background:var(--surface);color:var(--fg)}.login label,.admin-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem}
