:root{--bg:#0f1220;--panel:#191d2e;--ink:#eef1f8;--muted:#98a0b8;--accent:#ffd34e;--line:rgba(255,255,255,0.08)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;min-height:100dvh}.wrap{max-width:460px;margin:0 auto;padding:20px 16px 48px;display:flex;flex-direction:column;gap:16px}.top{text-align:center}.title{font-size:26px;font-weight:800;letter-spacing:-.02em;margin:4px 0 2px}.title .star{color:var(--accent)}.sub{margin:0}.meta,.sub{color:var(--muted);font-size:13px}.meta{display:flex;justify-content:center;gap:18px}.meta b{color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.board{display:grid;width:100%;aspect-ratio:1;background:#2b2b2b;border:2px solid #2b2b2b;border-radius:10px;overflow:hidden;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cell{position:relative;display:flex;align-items:center;justify-content:center;font-size:clamp(18px,6vw,30px);line-height:1;padding:0;margin:0;border:none;cursor:pointer;color:#1a1a1a;transition:filter .08s ease}.cell:active{filter:brightness(.92)}.cell .mark{color:rgba(0,0,0,.32);font-size:.62em;font-weight:700}.cell .star{filter:drop-shadow(0 1px 1px rgba(0,0,0,.25))}.cell.err{box-shadow:inset 0 0 0 3px #e53935;z-index:1}.cell.err .star{filter:none}.controls{display:flex;gap:10px;justify-content:center}button.btn{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:10px 16px;font-size:14px;font-weight:600;cursor:pointer}button.btn:hover{border-color:rgba(255,255,255,.22)}button.btn.primary{background:var(--accent);color:#241c00;border-color:var(--accent)}.hint{color:var(--muted);font-size:12.5px;line-height:1.5}.hint,.win{text-align:center}.win{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:10px}.win h2{margin:0;font-size:20px}.win .time{font-size:34px;font-weight:800;color:var(--accent);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}details.help{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 14px;font-size:13.5px;color:var(--muted)}details.help summary{cursor:pointer;color:var(--ink);font-weight:600}details.help ul{margin:10px 0 2px;padding-left:18px;line-height:1.6}.copied{color:var(--accent);font-size:13px;min-height:16px}.foot{text-align:center;color:var(--muted);font-size:11.5px}