{#if loading}

Loading today’s puzzle…

{:else}
{#each Array(maxGuesses) as _, r (r)} {@const g = guesses[r]} {@const cs = cols[r] || null}
{#each Array(length) as _, c (c)} {@const ch = g ? g[c] : (r === guesses.length ? current[c] : '')}
{(ch || '').toUpperCase()}
{/each}
{/each}
{#if message}

{message}

{/if} {#if status !== 'playing'}

{status === 'won' ? '✦ nicely done ✦' : 'today’s word:'} {#if status === 'lost' && answer}{answer.toUpperCase()}{/if}

{#if why}

Why this word{why}

{/if} {#if stats}
{stats.played}played
{stats.played ? Math.round(100 * stats.won / stats.played) : 0}%solved
{stats.streak}streak
{/if}
{/if}
{#if status === 'playing'}
{#each ROWS as row, ri (ri)}
{#if ri === 2}{/if} {#each row as k (k)} {/each} {#if ri === 2}{/if}
{/each}
{/if} {/if}