:root{--bg0:#efeae2;--card:#f7f4ee;--ink:#1f1e1b;--muted:#6f6a61;--line:#e3ddd2;--accent:#2f6d56;--tile-fill:#fbf9f5;--tile-border:#d5cfc3;--tile-ink:#1f1e1b;--filled-border:#2a2824;--correct:#2f6d56;--correct-ink:#f7f4ee;--present:#c4a15a;--present-ink:#1f1e1b;--absent:#6f6a61;--absent-ink:#f7f4ee;--key:#f7f4ee;--key-ink:#1f1e1b;--panel:#f7f4ee;--danger:#8c3f38;--serif:Georgia, "Iowan Old Style", Palatino, "Palatino Linotype", serif;--sans:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--sans);background:var(--bg0);color:var(--ink)}html[data-theme=dark]{--bg0:#141311;--card:#221f1c;--ink:#f3eee6;--muted:#b1a89c;--line:#34312c;--accent:#9dc7b4;--tile-fill:#1c1a17;--tile-border:#3a3732;--tile-ink:#f3eee6;--filled-border:#e7e1d6;--correct:#2f6d56;--correct-ink:#f3eee6;--present:#c4a15a;--present-ink:#1f1e1b;--absent:#3a3732;--absent-ink:#c9c0b3;--key:#2a2723;--key-ink:#f3eee6;--panel:#221f1c;--danger:#e7b4ad;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-palette=contrast]{--correct:#1d4e89;--correct-ink:#f7f4ee;--present:#c46a1a;--present-ink:#1f1e1b}html[data-theme=dark][data-palette=contrast]{--correct:#3e7cbf;--correct-ink:#f7f4ee;--present:#e0a04a;--present-ink:#1f1e1b}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg0);min-height:100dvh;margin:0}button,textarea{font:inherit;color:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.app{max-width:480px;height:100dvh;padding:calc(10px + env(safe-area-inset-top)) 12px calc(8px + env(safe-area-inset-bottom));flex-direction:column;gap:8px;margin:0 auto;display:flex}.top{justify-content:space-between;align-items:center;gap:12px;display:flex}.brand{line-height:.95}.kicker{font-family:var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-size:.72rem;font-weight:650;display:block}.brand h1{font-family:var(--serif);letter-spacing:-.03em;color:var(--ink);margin:1px 0 0;font-size:2.55rem;font-weight:700}.header-actions,.mode-row,.result-actions,.setting{align-items:center;display:flex}.header-actions{gap:8px}.icon-button{border:1px solid var(--line);background:var(--card);width:40px;height:40px;color:var(--ink);border-radius:12px;font-weight:650}.glyph{width:18px;height:18px;margin:0 auto;display:block}.mode-row{justify-content:space-between;gap:10px}.segment{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:3px;display:flex}.segment button{color:var(--muted);background:0 0;border:0;border-radius:999px;padding:7px 14px;font-size:.92rem;font-weight:650}.segment button[aria-selected=true],.segment button[aria-pressed=true]{background:var(--accent);color:#f7f4ee}html[data-theme=dark] .segment button[aria-selected=true],html[data-theme=dark] .segment button[aria-pressed=true]{color:#141311}.date-label,.hint,.fine-print{color:var(--muted)}.date-label{font-family:var(--serif);margin:0;font-size:.98rem}.text-button,.ghost,.primary{border-radius:999px;font-weight:650}.text-button{color:var(--accent);background:0 0;border:0;padding:6px 2px}.message{text-align:center;min-height:1.4em;font-family:var(--serif);letter-spacing:.01em;margin:0;font-weight:700}.message.error{color:var(--danger)}.result-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.primary,.ghost{border:0;padding:10px 16px}.primary{background:var(--accent);color:#f7f4ee}html[data-theme=dark] .primary{color:#141311}.ghost{border:1px solid var(--line);background:0 0}.board-wrap{flex:1;justify-content:center;align-items:center;min-height:0;display:flex}.board{grid-template-rows:repeat(6,minmax(0,1fr));gap:6px;width:min(100%,350px);height:min(420px,100%);display:grid}.row{perspective:600px;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.tile{border:2px solid var(--tile-border);background:var(--tile-fill);color:var(--tile-ink);font-family:var(--serif);text-transform:uppercase;-webkit-user-select:none;user-select:none;border-radius:4px;place-items:center;font-size:clamp(1.35rem,5vw,1.9rem);font-weight:700;display:grid}.tile.filled{border-color:var(--filled-border)}.tile[data-score=correct]:not(.reveal){background:var(--correct);border-color:var(--correct);color:var(--correct-ink)}.tile[data-score=present]:not(.reveal){background:var(--present);border-color:var(--present);color:var(--present-ink)}.tile[data-score=absent]:not(.reveal){background:var(--absent);border-color:var(--absent);color:var(--absent-ink)}html[data-palette=contrast] .tile[data-score=present]:not(.reveal),html[data-palette=contrast] .key[data-score=present]{background-image:repeating-linear-gradient(-45deg,#0000,#0000 4px,#0000002e 4px 7px)}html[data-palette=contrast] .tile[data-score=correct]:not(.reveal),html[data-palette=contrast] .key[data-score=correct]{box-shadow:inset 0 -6px #ffffff59}.tile.pop{animation:.12s pop}.tile.reveal{animation:.55s forwards flip;animation-delay:calc(var(--i) * .28s);background:var(--tile-fill);color:var(--tile-ink);border-color:var(--filled-border)}.tile.reveal[data-score=correct]{--face:var(--correct);--face-ink:var(--correct-ink)}.tile.reveal[data-score=present]{--face:var(--present);--face-ink:var(--present-ink)}.tile.reveal[data-score=absent]{--face:var(--absent);--face-ink:var(--absent-ink)}.row.shake{animation:.45s shake}.keyboard{flex-direction:column;gap:6px;display:flex}.key-row{justify-content:center;gap:5px;display:flex}.key{border:1px solid var(--line);background:var(--key);max-width:44px;height:56px;color:var(--key-ink);text-transform:uppercase;touch-action:manipulation;border-radius:6px;flex:1;font-size:.95rem;font-weight:650}.key.wide{letter-spacing:.04em;flex:1.5;max-width:66px;font-size:.72rem}.key:disabled{opacity:1}.key[data-score=correct]{background:var(--correct);border-color:var(--correct);color:var(--correct-ink)}.key[data-score=present]{background:var(--present);border-color:var(--present);color:var(--present-ink)}.key[data-score=absent]{background:var(--absent);border-color:var(--absent);color:var(--absent-ink)}.delete-icon{width:22px;height:22px;margin:0 auto;display:block}.backdrop{z-index:5;background:#1f1e1b75;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);width:min(440px,100%);max-height:min(86dvh,720px);color:var(--ink);border:1px solid var(--line);border-radius:16px;padding:18px 18px 20px;overflow:auto;box-shadow:0 16px 40px #1f1e1b1f}.modal-head,.setting{justify-content:space-between;gap:12px}.modal h2{font-family:var(--serif);margin:0;font-size:1.7rem;font-weight:700}.modal p{line-height:1.45}.legend{gap:8px;margin:0 0 8px;padding:0;list-style:none;display:grid}.legend li{align-items:center;gap:10px;font-weight:600;display:flex}.swatch{width:42px;height:42px;font-family:var(--serif);border-radius:4px;flex:none;place-items:center;font-weight:700;display:grid}.swatch.correct{background:var(--correct);color:var(--correct-ink)}.swatch.present{background:var(--present);color:var(--present-ink)}.swatch.absent{background:var(--absent);color:var(--absent-ink)}.setting{border-top:1px solid var(--line);padding:12px 0}.setting-title{margin:0;font-weight:650}.hint,.fine-print{margin:4px 0 0;font-size:.92rem;line-height:1.4}.fine-print a{color:var(--accent)}.switch{background:var(--line);border:0;border-radius:999px;flex:none;width:52px;height:32px;position:relative}.switch:after{content:"";background:var(--card);border-radius:50%;width:26px;height:26px;transition:transform .16s;position:absolute;top:3px;left:3px}.switch[aria-checked=true]{background:var(--accent)}.switch[aria-checked=true]:after{background:var(--bg0);transform:translate(20px)}.switch:disabled{opacity:.45;cursor:not-allowed}.stat-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin:8px 0 12px;display:grid}.stat-grid div{text-align:center}.stat-grid dt{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;font-weight:650}.stat-grid dd{font-family:var(--serif);margin:2px 0 0;font-size:1.7rem;font-weight:700}.histogram{gap:6px;margin:12px 0 0;padding:0;list-style:none;display:grid}.histogram li{grid-template-columns:16px 1fr;align-items:center;gap:8px;font-weight:650;display:grid}.bar-track{background:0 0}.bar{background:var(--absent);min-width:1.4rem;color:var(--absent-ink);text-align:right;border-radius:4px;padding:4px 8px;display:block}.bar.current{background:var(--correct);color:var(--correct-ink)}textarea{border:1px solid var(--line);background:var(--bg0);resize:vertical;border-radius:12px;width:100%;min-height:140px;padding:10px;font-size:16px}@keyframes pop{50%{transform:scale(1.06)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes flip{0%{background:var(--tile-fill);color:var(--tile-ink);border-color:var(--filled-border);transform:rotateX(0)}45%{background:var(--tile-fill);color:var(--tile-ink);border-color:var(--filled-border);transform:rotateX(-90deg)}55%{background:var(--face);color:var(--face-ink);border-color:var(--face);transform:rotateX(-90deg)}to{background:var(--face);color:var(--face-ink);border-color:var(--face);transform:rotateX(0)}}@media (height<=740px){.brand h1{font-size:2rem}.key{height:46px}.app{gap:6px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
