body{min-height:100dvh}button,a{-webkit-tap-highlight-color:transparent}.app{max-width:clamp(500px,100dvh - 330px,760px);padding:max(var(--space-3), env(safe-area-inset-top)) var(--space-3) max(var(--space-3), env(safe-area-inset-bottom));gap:var(--space-3);flex-direction:column;margin:0 auto;display:flex}.main{display:contents}.top{align-items:center;gap:var(--space-2);display:flex}.brand{align-items:center;gap:var(--space-2);font-size:var(--text-lg);font-weight:700;line-height:var(--leading-tight);letter-spacing:-.01em;flex:1;margin:0;display:flex}.brand .d-shape{width:26px;height:26px;color:var(--game);flex:none}.icon-button{width:var(--tap);height:var(--tap);background:var(--off);color:var(--ink);cursor:pointer;font-size:var(--text-lg);border:0;border-radius:0;flex:none;place-items:center;font-weight:700;line-height:1;text-decoration:none;display:grid}@media (hover:hover){.icon-button:hover{background:var(--rule)}}.icon-button svg{width:20px;height:20px}.modes,.views{gap:var(--gutter);grid-template-columns:1fr 1fr;display:grid}.modes button,.views button{min-height:var(--tap);padding:var(--space-2) var(--space-1);background:var(--off);color:var(--ink);cursor:pointer;border:0;border-radius:0;line-height:1.15}.modes button[aria-pressed=true],.views button[aria-pressed=true]{background:var(--game);color:var(--game-ink);font-weight:700}.modes small{font-size:var(--text-sm);font-variant-numeric:tabular-nums;display:block}.status{justify-content:space-between;align-items:center;gap:var(--space-2);color:var(--soft);font-variant-numeric:tabular-nums;display:flex}.timer{font-size:var(--text-lg);color:var(--ink);font-weight:600}.checks{align-items:center;gap:var(--space-2);font-size:var(--text-sm);display:flex}.lives{gap:5px;display:flex}.lives span{background:var(--game);border-radius:50%;width:14px;height:14px}.lives span.used{box-shadow:inset 0 0 0 2px var(--soft);background:0 0}.lives span.spend{animation:.45s ease-out spend}@keyframes spend{0%{background:var(--ink)}40%{background:var(--ink);transform:scale(1.5)}}.board{--n:6;--gap:clamp(3px, 1.2vw, var(--gutter));grid-template-columns:repeat(var(--n), 1fr);width:min(100%, max(var(--n) * 44px, 100dvh - 360px));aspect-ratio:1;touch-action:manipulation;-webkit-user-select:none;user-select:none;margin:0 auto;display:grid}.board.size-8{--n:8}.cell,.tile{background:var(--off);color:var(--ink);place-items:center;display:grid;position:relative}.cell{aspect-ratio:1;border:calc(var(--gap) / 2) solid transparent;cursor:pointer;touch-action:manipulation;background-clip:padding-box;border-radius:0;min-width:0;padding:0}.cell[data-value=amber],.tile[data-value=amber]{background-color:var(--rye);color:var(--on-rye)}.cell[data-value=spruce],.tile[data-value=spruce]{background-color:var(--moss);color:var(--on-moss)}.cell svg,.tile svg{pointer-events:none;width:72%;height:72%}.cell svg.placed{animation:.16s ease-out place}@keyframes place{0%{transform:scale(.55)}}.cell.given,.board.skeleton .cell{cursor:default}.cell.given:before,.tile.given:before{content:"";background:currentColor;border-bottom-right-radius:100%;width:24%;max-width:14px;height:24%;max-height:14px;position:absolute;top:0;left:0}.cell.nudge{animation:.3s ease-in-out nudge}@keyframes nudge{20%,60%{transform:translate(-3px)}40%,80%{transform:translate(3px)}}.board.celebrate .cell{animation:.5s ease-out both sweep;animation-delay:calc((var(--r) + var(--c)) * 45ms)}@keyframes sweep{40%{transform:scale(1.08)}}.cell.revealed{box-shadow:inset 0 0 0 3px var(--bg), inset 0 0 0 6px var(--ink)}.cell.revealed svg{width:62%;height:62%;animation:.4s ease-out both reveal;animation-delay:calc((var(--r) + var(--c)) * 15ms)}@keyframes reveal{0%{opacity:0;transform:scale(.6)}}.cell.wrong{--hatch:color-mix(in srgb, currentColor 55%, transparent);background-image:repeating-linear-gradient(-45deg, var(--hatch) 0 3px, transparent 3px 10px)}.cell.wrong:after{content:"";pointer-events:none;border:3px solid;position:absolute;inset:3px}.board[data-view=mine] .cell.wrong svg{animation:.7s ease-in-out both wilt;animation-delay:calc((var(--r) + var(--c)) * 40ms)}@keyframes wilt{40%{transform:translateY(3px)rotate(-8deg)scale(.9)}}.cell.clash:after,.tile.bad:after{content:"";pointer-events:none;border:4px dashed;position:absolute;inset:0}.tile.bad:after{border-width:2px}.quiet-focus:focus-visible{outline:none}.cell:focus-visible{outline-offset:0;z-index:1}.board.skeleton .cell{animation:1.2s ease-in-out infinite alternate shimmer}@keyframes shimmer{to{opacity:.55}}.load-error{place-self:center;gap:var(--space-3);text-align:center;grid-area:1/1/-1/-1;justify-items:center;max-width:300px;display:grid}.load-error p{margin:0}.load-error .action{min-width:160px}@media (width<=380px){.board.size-8{--gap:3px;width:calc(100% + 16px);margin-inline:-8px}}.controls{gap:var(--gutter);grid-template-columns:1fr 1fr;display:grid}.action{min-height:52px;padding:var(--space-1) var(--space-3);text-align:center;overflow-wrap:anywhere}.action:disabled{box-shadow:inset 0 0 0 2px var(--off);color:var(--soft);cursor:default;background:0 0}.action:disabled svg{opacity:.6}.check-reason{font-size:var(--text-sm);font-weight:400;line-height:1.2}.play{gap:var(--space-3);display:grid}.new-day:empty{display:none}.new-day{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);background:var(--ink);color:var(--bg);grid-template-columns:1fr auto;display:grid}.new-day p{margin:0;font-weight:700}.new-day .action{background:var(--game);color:var(--game-ink);min-height:var(--tap)}.app[data-stale] .result .countdown,.app[data-stale] .result .hook{display:none}.action svg{flex:none;width:20px;height:20px}.toggle{align-items:center;gap:var(--space-3);min-height:var(--tap);color:var(--soft);font-size:var(--text-sm);cursor:pointer;display:flex}.toggle input{width:22px;height:22px;accent-color:var(--game);flex:none;margin:0}.result{gap:var(--space-3);text-align:center;display:grid}.result .d-result{justify-items:center;animation:.3s ease-out rise}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}.dateline{justify-content:center;gap:0 var(--space-3);font-size:var(--text-sm);font-variant-numeric:tabular-nums;flex-wrap:wrap;margin:0;display:flex}.result[data-outcome=lost] .d-result{background:var(--off);color:var(--ink)}.result[data-outcome=lost] .dateline,.result[data-outcome=lost] .result-line{color:var(--soft)}.result h2:focus{outline:none}.result h2{font-size:var(--text-xl);line-height:var(--leading-tight);margin:0}.result .stars{letter-spacing:.1em}.result-line{margin:0}.result-stats{gap:var(--gutter);grid-template-columns:repeat(4,1fr);display:grid}.result-stats div,.stat-grid div{padding:var(--space-2) var(--space-1);background:var(--off);overflow-wrap:anywhere;gap:2px;display:grid}.result-stats strong,.stat-grid strong{font-size:var(--text-lg);line-height:var(--leading-tight);font-variant-numeric:tabular-nums}.result-stats span,.stat-grid span{font-size:var(--text-xs);color:var(--soft);line-height:1.2}.result-actions{gap:var(--gutter);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}@media (width<=380px){.result-actions .action{padding-inline:var(--space-2);font-size:var(--text-sm)}}.result p.countdown,.result p.hook{color:var(--soft);margin:0}.result .countdown strong{color:var(--ink);font-variant-numeric:tabular-nums}.result .cup{width:100%;max-width:440px;margin-inline:auto}.recent{gap:var(--space-2);margin:calc(-1 * var(--space-2)) 0 var(--space-4);display:grid}.recent-label{font-size:var(--text-sm);color:var(--soft)}.recent ol{gap:var(--gutter);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.recent li{min-width:58px;padding:var(--space-1) var(--space-2);background:var(--off);font-size:var(--text-xs);font-variant-numeric:tabular-nums;justify-items:center;display:grid}.recent-number{color:var(--soft)}.toast{left:50%;bottom:max(var(--space-5), env(safe-area-inset-bottom));justify-content:center;gap:0 var(--space-3);width:max-content;max-width:calc(100vw - 16px);padding:var(--space-3) var(--space-4);background:var(--ink);color:var(--bg);font-size:var(--text-sm);text-align:center;pointer-events:none;opacity:0;flex-wrap:wrap;font-weight:600;transition:opacity .2s;display:flex;position:fixed;transform:translate(-50%)}.toast[data-edge=top]{top:var(--space-3);bottom:auto}.toast.show{opacity:1}.toast.parts .toast-part{white-space:nowrap}.toast[data-tone=good]{background:var(--game);color:var(--game-ink)}.d-dialog{width:min(540px,100vw - 24px);max-height:calc(100dvh - 24px)}.d-dialog h3{margin:0 0 var(--space-2);font-size:var(--text-md)}.rules{margin:0 0 var(--space-4);gap:var(--space-3);padding:0;line-height:1.3;list-style:none;display:grid}.rules li{gap:var(--space-1);justify-items:start;display:grid}.rules.how-to{padding-top:var(--space-3);border-top:2px solid var(--off);font-size:var(--text-sm);row-gap:var(--space-2);line-height:1.25}.rules.how-to li,.how-to .example{gap:2px}.how-to .example .tile{width:18px;height:18px}.how-to .example .tile.given:before{width:6px;height:6px}.how-to .lives span{width:12px;height:12px}.rules+.rules.how-to{margin-top:calc(-1 * var(--space-2))}@media (height<=700px),(width<=400px){.d-dialog{padding:var(--space-4)}.d-dialog h2{font-size:var(--text-lg)}.rules{font-size:var(--text-sm)}.keys{font-size:var(--text-xs)}.rules{row-gap:var(--space-2)}}.example{align-items:center;gap:3px;display:flex}.example .arrow{color:var(--soft);font-size:var(--text-xs)}.example .tile{width:26px;height:26px}.example .tile.given:before{width:8px;height:8px}.stat-grid{gap:var(--gutter);margin-bottom:var(--space-4);text-align:center;grid-template-columns:repeat(5,1fr);display:grid}@media (width<=480px){.stat-grid{grid-template-columns:repeat(6,1fr)}.stat-grid div{grid-column:span 2}.stat-grid div:nth-child(n+4){grid-column:span 3}}.keys{margin:0 0 var(--space-4);font-size:var(--text-sm);color:var(--soft)}.dialog-close{width:100%}.languages{justify-content:center;gap:var(--space-1) var(--space-4);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.languages a{min-height:var(--tap);padding:0 var(--space-1);color:var(--soft);align-items:center;display:inline-flex}.languages a[aria-current=page]{color:var(--ink);font-weight:700}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (orientation:landscape) and (height<=540px){.app{max-width:960px;height:100dvh;padding:max(var(--space-2), env(safe-area-inset-top)) max(var(--space-3), env(safe-area-inset-right)) var(--space-2) max(var(--space-3), env(safe-area-inset-left));justify-content:center;column-gap:var(--space-5);row-gap:var(--space-2);grid-template:"board top""board modes""board status""board play"1fr"board langs"/auto minmax(260px,420px);display:grid}.top{grid-area:top}.modes{grid-area:modes}.status{grid-area:status}.play{grid-area:play;min-height:0;overflow-y:auto}.langs{grid-area:langs}.board,.board.size-8{--gap:4px;width:calc(100dvh - 16px - env(safe-area-inset-top));grid-area:board;align-self:center;margin:0}.result{gap:var(--gutter)}.result .d-result{justify-content:center;align-items:baseline;gap:0 var(--space-3);padding:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.result h2,.result .d-result-figure{font-size:var(--text-lg)}.result .result-line{font-size:var(--text-sm);flex-basis:100%;line-height:1.3}.result-stats div{gap:0}.result .dateline,.result .hook,.app:not([data-status=playing]) .status{display:none}.result-stats div{padding:var(--space-1)}.result-stats strong{font-size:var(--text-md)}.modes small{margin-left:var(--space-2);display:inline}.result-actions .action{min-height:var(--tap)}.toast{left:auto;right:max(var(--space-3), env(safe-area-inset-right));max-width:420px;transform:none}}
