:root{--paper:#fbf8f3;--paper-deep:#f3eee4;--ink:#1d1c1a;--ink-soft:#5a554c;--brand:#5b57d6;--correct:#12583a;--correct-bg:#a7dfbd;--partial:#6f4a0e;--partial-bg:#f4d78d;--absent-text:#57534a;--absent-bg:#f1eee7;--absent:#d9d4cc;--absent-fill:#bdb6a9;--absent-fill-line:#9c9486;--absent-fill-text:#35322c;--line:#e7e1d5;--gap-tile:4px;--gap-row:8px;--gap-section:24px;--tile-font:27px;--radius-number:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;-webkit-text-size-adjust:100%;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body{background:var(--paper);color:var(--ink);margin:0}body{min-height:100dvh}#root{justify-content:center;min-height:100dvh;display:flex}.app{flex-direction:column;width:100%;max-width:480px;padding:0 6px 24px;display:flex}.app-footer{text-align:center;color:var(--ink-soft);opacity:.5;margin-top:auto;padding-top:20px;font-size:11px}.label{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);font-size:11px;font-weight:600}.header{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:baseline;row-gap:8px;padding:18px 2px 14px;display:flex}.wordmark{letter-spacing:-.01em;color:var(--ink);font-size:24px;font-weight:700}.puzzle-number{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:15px;font-weight:600}.target{flex-direction:column;align-items:center;gap:4px;padding:16px 0;display:flex}.target-value{color:var(--brand);font-variant-numeric:tabular-nums;font-size:40px;font-weight:700;line-height:1}.play{flex-direction:column;padding:10px 0 0;display:flex}.grid{gap:var(--gap-row);flex-direction:column;display:flex}.row{gap:var(--gap-tile);grid-template-columns:repeat(7,1fr);align-items:center;display:grid}.tile{aspect-ratio:1;width:100%;font-size:var(--tile-font);letter-spacing:-.03em;font-variant-numeric:tabular-nums;border:1.5px solid var(--line);color:var(--ink);-webkit-user-select:none;user-select:none;background:0 0;justify-content:center;align-items:center;padding:0;font-weight:800;display:flex}.tile[data-kind=number]{border-radius:var(--radius-number)}.tile[data-kind=operator]{border-radius:50%}.tile[data-state=empty]{border-color:var(--absent);background:0 0}.tile[data-state=draft]{background:var(--paper-deep);border-color:var(--absent);color:var(--ink)}.tile[data-state=correct]{background:var(--correct-bg);border-color:var(--correct);color:var(--correct)}.tile[data-state=present]{background:var(--partial-bg);border-color:var(--partial);color:var(--partial)}.tile[data-state=absent]{background:var(--absent-fill);border-color:var(--absent-fill-line);color:var(--absent-fill-text)}.grid .tile{position:relative}.grid .tile[data-state=correct]:after,.grid .tile[data-state=present]:after{top:3px;letter-spacing:0;font-size:12px;font-weight:800;line-height:1;position:absolute;inset-inline-start:5px}.grid .tile[data-state=correct]:after{content:"✓";color:var(--correct)}.grid .tile[data-state=present]:after{content:"•";color:var(--partial)}.grid .tile[data-kind=operator][data-state=correct]:after,.grid .tile[data-kind=operator][data-state=present]:after{inset-inline-start:8px}.tile[data-reveal=true]{animation:.62s both flip;animation-delay:var(--reveal-delay,0s)}@keyframes flip{0%{background:var(--paper-deep);border-color:var(--absent);color:var(--ink);transform:rotateX(0)}49%{background:var(--paper-deep);border-color:var(--absent);color:var(--ink);transform:rotateX(90deg)}50%{transform:rotateX(90deg)}to{transform:rotateX(0)}}.row[data-win=true] .tile{animation:.62s both flip,.52s cubic-bezier(.34,1.7,.5,1) both win-pop;animation-delay:var(--reveal-delay,0s), var(--pulse-delay,0s)}@keyframes win-pop{0%{transform:scale(1);box-shadow:0 0 #12583a00}40%{transform:scale(1.22);box-shadow:0 0 0 7px #12583a52}to{transform:scale(1);box-shadow:0 0 #12583a00}}@media (prefers-reduced-motion:reduce){.tile[data-reveal=true],.row[data-win=true] .tile{animation:none}}.answer{text-align:center;font-variant-numeric:tabular-nums;letter-spacing:.01em;color:var(--ink);margin-top:14px;font-size:20px;font-weight:700}.note{text-align:center;color:var(--partial);min-height:18px;margin-top:12px;font-size:13px;font-weight:500}.picker-section{padding-top:var(--gap-section);flex-direction:column;gap:10px;display:flex}.picker{grid-template-columns:repeat(8,1fr);gap:3px;margin:0 -4px;display:grid}.picker .tile{cursor:pointer;letter-spacing:-.03em;background:var(--paper-deep);border-color:var(--absent);font-size:24px;transition:transform 80ms,opacity .12s;position:relative}.picker .tile:after{content:"";position:absolute;inset:-8px}.picker .tile[data-kind=operator]{background:color-mix(in srgb, var(--brand) 10%, var(--paper));border-color:color-mix(in srgb, var(--brand) 35%, var(--paper));color:var(--brand)}.picker .tile:active:not(:disabled){transform:scale(.94)}.picker .tile:disabled{cursor:default;opacity:.6}.picker .tile[data-spent=true]{opacity:.5}.picker .tile[data-spent=true]:before{content:"";z-index:1;pointer-events:none;background:linear-gradient(to top left, transparent calc(50% - 2px), var(--ink-soft) calc(50% - 2px), var(--ink-soft) calc(50% + 2px), transparent calc(50% + 2px)), linear-gradient(to top right, transparent calc(50% - 2px), var(--ink-soft) calc(50% - 2px), var(--ink-soft) calc(50% + 2px), transparent calc(50% + 2px));position:absolute;inset:5px}.grid .tile:not(:disabled){cursor:pointer}.actions{gap:10px;margin-top:16px;display:flex}.button{white-space:nowrap;cursor:pointer;border:1.5px solid var(--line);min-height:48px;color:var(--ink);background:0 0;border-radius:12px;flex:1;font-family:inherit;font-size:15px;font-weight:600;transition:transform 80ms,opacity .12s}.button:active:not(:disabled){transform:scale(.98)}.button[data-variant=primary]{background:var(--brand);border-color:var(--brand);color:#fff;font-size:17px;font-weight:700}.button:disabled{opacity:.35;cursor:default}:where(button):focus-visible{outline:2px solid var(--brand);outline-offset:2px}.message{text-align:center;color:var(--ink-soft);padding:48px 8px;font-size:15px;line-height:1.5}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.stats{border:1px solid var(--line);background:var(--paper-deep);border-radius:12px;flex-direction:column;gap:12px;margin-top:18px;padding:16px 14px;display:flex}.figures{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.figure{flex-direction:column;align-items:center;gap:2px;display:flex}.figure-value{font-variant-numeric:tabular-nums;color:var(--ink);font-size:24px;font-weight:700;line-height:1}.figure-caption{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-size:10px;font-weight:600}.distribution{flex-direction:column;gap:4px;display:flex}.distribution-row{align-items:center;gap:8px;display:flex}.distribution-index{color:var(--ink-soft);font-variant-numeric:tabular-nums;width:10px;font-size:12px;font-weight:700}.distribution-bar{background:var(--absent);color:var(--ink);font-variant-numeric:tabular-nums;border-radius:4px;justify-content:flex-end;align-items:center;min-height:18px;padding:2px 6px;font-size:11px;font-weight:700;display:flex}.distribution-bar[data-peak=true]{background:var(--correct);color:#fff}.next-puzzle{text-align:center;color:var(--ink-soft);font-variant-numeric:tabular-nums;margin:0;font-size:13px;font-weight:700}.distribution-bar[data-current=true]{background:var(--brand);color:#fff}.header-left{align-items:baseline;gap:8px;display:flex}.header-right{align-items:center;gap:10px;display:flex}.header-link[data-active]{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:2px}.wordmark-button{cursor:pointer;color:var(--ink);background:0 0;border:0;padding:0;font-family:inherit}.header-link{color:var(--brand);cursor:pointer;background:0 0;border:0;padding:4px 2px;font-family:inherit;font-size:14px;font-weight:600}.header-icon{justify-content:center;align-items:center;line-height:0;display:inline-flex}.archive{flex-direction:column;gap:12px;padding-top:20px;display:flex}.archive-progress{color:var(--ink-soft);margin:0;font-size:14px}.archive-progress strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:20px}.archive-note{color:var(--ink-soft);margin-top:4px;font-size:12px;display:block}.archive-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.archive-row{border:1.5px solid var(--line);text-align:start;cursor:pointer;background:0 0;border-radius:12px;grid-template-columns:52px 1fr auto;align-items:center;gap:10px;width:100%;min-height:48px;padding:0 12px;font-family:inherit;transition:transform 80ms;display:grid}.archive-row:active{transform:scale(.99)}.archive-number{color:var(--ink);font-variant-numeric:tabular-nums;font-size:14px;font-weight:700}.archive-date{color:var(--ink-soft);font-size:13px}.archive-status{color:var(--ink-soft);align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.archive-row[data-status=won]{background:var(--correct-bg);border-color:var(--correct)}.archive-row[data-status=won] .archive-status{color:var(--correct)}.archive-row[data-status=lost]{background:var(--absent-bg);border-color:var(--absent)}.archive-row[data-status=started]{background:var(--partial-bg);border-color:var(--partial)}.archive-row[data-status=started] .archive-status{color:var(--partial)}.archive-row[data-status=unplayed] .archive-status{color:var(--brand)}.archive-badge{letter-spacing:.08em;text-transform:uppercase;background:var(--paper-deep);border:1px solid var(--line);color:var(--ink-soft);border-radius:4px;padding:2px 5px;font-size:9px;font-weight:700}.overlay{z-index:20;overscroll-behavior:contain;background:#1d1c1a73;justify-content:center;padding:20px;display:flex;position:fixed;inset:0;overflow-y:auto}.sheet{background:var(--paper);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:9px;width:100%;max-width:420px;margin:auto;padding:16px 20px;display:flex;position:relative}.sheet-close{top:8px;width:32px;height:32px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;font-size:24px;line-height:1;display:flex;position:absolute;inset-inline-end:10px}.sheet-close:active{transform:scale(.92)}.sheet:focus{outline:none}.sheet-title{color:var(--ink);margin:0;font-size:22px;font-weight:700}.sheet-lead{color:var(--ink);margin:0;font-size:15px;line-height:1.45}.sheet-contact{text-align:center;color:var(--ink-soft);margin:0;font-size:12px}.sheet-contact a{color:var(--brand)}.rule{border-top:1px solid var(--line);flex-direction:column;gap:6px;padding-top:9px;display:flex}.rule-title{color:var(--ink);margin:0;font-size:14px;font-weight:700}.rule-text{color:var(--ink-soft);margin:0;font-size:13.5px;line-height:1.5}.example-row{gap:5px;display:flex}.example-row .tile{flex:0 0 31px;width:31px;font-size:15px}.swatch{vertical-align:-1px;border:1.5px solid var(--absent-fill-line);background:var(--absent-fill);border-radius:3px;width:11px;height:11px;display:inline-block}.swatch[data-state=correct]{background:var(--correct-bg);border-color:var(--correct)}.swatch[data-state=present]{background:var(--partial-bg);border-color:var(--partial)}.language-choice{gap:8px;display:flex}.language-button{min-height:38px;font-size:14px}.language-button[data-selected=true]{background:var(--brand);border-color:var(--brand);color:#fff}
