.sifter{display:flex;flex-direction:column;gap:var(--space-4);align-items:stretch;width:100%;max-width:26rem;margin-inline:auto}.sifter__scoreboard{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2)}.sifter__stat{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-2);background:var(--surface);border:var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-hard-sm)}.sifter__stat--score{background:var(--block-lilac)}.sifter__stat.is-found{background:var(--block-mint)}.sifter__stat-value{font-family:var(--font-display);font-weight:var(--weight-black);font-size:var(--text-xl);line-height:1;color:var(--ink)}.sifter__stat-label{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.sifter__clue{background:var(--surface);border:var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-hard-sm);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-1)}.sifter__clue.is-found{background:var(--block-mint)}.sifter__clue-eyebrow{margin:0;font-family:var(--font-display);font-weight:var(--weight-black);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--primary)}.sifter__clue-text{margin:0;font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-lg);color:var(--ink);line-height:1.25}.sifter__clue-meta{margin:0;font-size:var(--text-sm);color:var(--ink-muted)}.sifter__board{display:grid;gap:6px;width:100%;padding:var(--space-3);background:var(--board-bg);border:var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-hard)}.sifter__cell{aspect-ratio:1 / 1;background:var(--surface);border:var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-hard-sm);font-family:var(--font-display);font-weight:var(--weight-black);font-size:clamp(1.6rem,7vw,2.4rem);color:var(--ink);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;display:inline-flex;align-items:center;justify-content:center}.sifter__cell:disabled{cursor:default}.sifter__cell.is-traced{background:var(--block-lilac);border-color:var(--ink);transform:translate(2px,2px);box-shadow:none}.sifter__cell.is-head{outline:3px solid var(--primary);outline-offset:-3px}.sifter__trace{display:flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:3rem;padding:var(--space-2) var(--space-3);background:var(--surface);border:var(--border);border-radius:var(--radius-pill);box-shadow:var(--shadow-hard-sm)}.sifter__trace-word{font-family:var(--font-display);font-weight:var(--weight-black);font-size:var(--text-xl);letter-spacing:.08em;color:var(--ink)}.sifter__trace-len{font-family:var(--font-mono);font-weight:var(--weight-bold);font-size:var(--text-sm);color:var(--ink-muted);padding:2px 8px;background:var(--surface-sunken);border-radius:var(--radius-pill)}.sifter__trace-placeholder{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-sm);color:var(--ink-muted);text-align:center}.sifter__feedback{margin:0;min-height:1.5em;font-weight:var(--weight-bold);color:var(--ink-muted);text-align:center}.sifter__controls{display:flex;gap:var(--space-2);flex-wrap:wrap;justify-content:center}.sifter__finds{width:100%}.sifter__finds-title{margin:0 0 var(--space-2);font-family:var(--font-display);font-weight:var(--weight-black);color:var(--primary);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.08em}.sifter__finds-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}.sifter__chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);background:var(--surface);border:var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-hard-sm);font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-sm)}.sifter__chip.is-key{background:var(--block-mint)}.sifter__chip-word{letter-spacing:.05em}.sifter__chip-pts{font-family:var(--font-mono);color:var(--ink-muted);font-size:var(--text-xs)}
