:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#efe4d0;--paper-deep:#e5d6bc;--card:#f7f1e6;--ink:#1d1712;--ink-soft:#6b5e52;--line:#dccdb8;--accent:#b8431f;--accent-text:#8d3014;--accent-ink:#fff8f3;--hit:#1b6b73;--hit-ink:#f4fffe;--vowel:#8a4e0b;--vowel-bg:#f6e3c8;--miss:#7d746a;--shadow:#1d1712;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--radius:14px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#14110e;--paper-deep:#0c0a08;--card:#231c16;--ink:#f6efe4;--ink-soft:#cbbba6;--line:#3d342c;--accent:#e3895d;--accent-text:#f0b08a;--accent-ink:#1d1712;--hit:#3cb8c2;--hit-ink:#062326;--vowel:#e2b170;--vowel-bg:#3a2c18;--miss:#b3a89c;--shadow:#000}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--paper);color:var(--ink);margin:0}body{font:16px/1.45 var(--sans);background-image:radial-gradient(ellipse at top, color-mix(in srgb, var(--card) 80%, transparent), transparent 55%), repeating-linear-gradient(0deg, transparent, transparent 3px, color-mix(in srgb, var(--ink) 4%, transparent) 4px);min-height:100dvh}body.locked{overflow:hidden}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3,p{margin:0}.sr-only,.live{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{max-width:520px;min-height:100dvh;padding:calc(12px + env(safe-area-inset-top)) 14px calc(16px + env(safe-area-inset-bottom));flex-direction:column;gap:12px;margin:0 auto;display:flex}.top{justify-content:space-between;align-items:center;gap:8px;display:flex}.brand{align-items:center;gap:10px;min-width:0;display:flex}.mark-logo{width:42px;height:42px;color:var(--ink);flex:none}h1{font-family:var(--serif);letter-spacing:-.03em;font-size:22px;font-weight:650;line-height:1.1}.sub{color:var(--ink-soft);margin-top:2px;font-size:13px}.top-actions{gap:2px;display:flex}.icon,.key,button.full,button.secondary{border:0}.icon{width:44px;height:44px;color:var(--ink);background:0 0;border-radius:12px;place-items:center;padding:0;display:grid}.icon svg{width:24px;height:24px}.icon:active{background:color-mix(in srgb, var(--ink) 8%, transparent)}.banner,.card{background:var(--card);border-radius:var(--radius);box-shadow:0 1px 0 var(--line);padding:14px}.banner{color:var(--ink-soft);font-size:14px}.card h2{font-family:var(--serif);margin-bottom:6px;font-size:26px}.card p{color:var(--ink-soft);margin-bottom:12px}.empty{text-align:center;color:var(--ink-soft);padding:8px 0 4px}.statusline{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.score-wrap{position:relative}.score{font-family:var(--serif);letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:46px;line-height:.9}.score-label,.pip-label{color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;font-size:12px}.flash{font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:8px;font-weight:800;animation:1.1s forwards rise;position:absolute;top:0;left:100%}.flash.good{color:var(--hit)}.flash.bad{color:var(--accent-text)}.flash.spend{color:var(--vowel)}.opens{text-align:right;padding-bottom:4px}.opens b{font-family:var(--serif);font-variant-numeric:tabular-nums;font-size:22px;line-height:1;display:block}.pips{align-items:center;gap:6px;padding-bottom:4px;display:flex}.pip{border:1.5px solid var(--ink);background:0 0;border-radius:3px;width:14px;height:14px}.pip.used{background:var(--ink)}.category{text-align:center;text-transform:uppercase;letter-spacing:.16em;color:var(--accent-text);font-size:12px;font-weight:750}.board{perspective:800px;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:10px 12px;padding:4px 0 2px;display:flex}.word{align-items:flex-end;gap:4px;min-width:0;max-width:100%;display:flex}.tile{aspect-ratio:4/5;width:34px;min-width:0;max-width:34px;height:auto;font-family:var(--serif);border:1.5px solid var(--ink);box-shadow:0 2px 0 var(--shadow);background:var(--card);color:var(--ink);border-radius:5px;flex:0 34px;place-items:center;font-size:clamp(14px,4.6vw,22px);font-weight:650;display:grid;position:relative;overflow:hidden}.board.compact .tile{flex-basis:30px;width:30px;max-width:30px}.board.tiny .tile{flex-basis:26px;width:26px;max-width:26px;font-size:16px}.tile.blank{background:color-mix(in srgb, var(--ink) 10%, var(--paper));color:#0000;border-color:color-mix(in srgb, var(--ink) 28%, transparent);box-shadow:inset 0 -2px 0 color-mix(in srgb, var(--ink) 12%, transparent)}.tile.input{background:var(--card);padding:0}.tile input{text-align:center;width:100%;height:100%;font:inherit;text-transform:uppercase;background:0 0;border:0;border-radius:4px;min-height:0;padding:0;font-size:16px}.board.compact .tile input,.board.tiny .tile input{font-size:16px}.mark{font-family:var(--serif);color:var(--ink);padding:0 1px 6px;font-size:22px;line-height:1}.tile.fresh{animation:.46s cubic-bezier(.2,.8,.2,1) turn}.board.done .tile.on{animation:.38s cubic-bezier(.2,.8,.2,1) turn;animation-delay:calc(var(--i) * 16ms)}.board.shake{animation:.36s shake}.tile.pulse{box-shadow:none;border-color:#0000;animation:1.1s ease-in-out infinite pulse}.mode-note{text-align:center;color:var(--ink-soft);letter-spacing:.04em;font-size:13px}.switch{background:var(--card);border-radius:var(--radius);align-items:flex-start;gap:12px;padding:12px;display:flex}.switch input{width:22px;height:22px;accent-color:var(--accent);flex:none;margin-top:2px}.switch strong{display:block}.switch small,.fine{color:var(--ink-soft);font-size:13px;line-height:1.4;display:block}.fine{margin:8px 0}.dock{flex-direction:column;gap:10px;margin-top:auto;display:flex}.app.solving .dock{margin-top:8px}.hint{text-align:center;color:var(--ink-soft);font-size:13px}.keys{flex-direction:column;gap:6px;display:flex}.key-row{justify-content:center;gap:4px;display:flex}.key{background:var(--card);max-width:36px;height:48px;color:var(--ink);border:1.5px solid var(--line);box-shadow:0 1px 0 color-mix(in srgb, var(--ink) 25%, transparent);border-radius:8px;flex:1 1 0;padding:0;font-size:15px;font-weight:750;position:relative}.key.vowel{border-color:var(--vowel);color:var(--vowel);background:var(--vowel-bg)}.key.hit{background:var(--hit);color:var(--hit-ink);border-color:var(--hit)}.key.miss{color:var(--ink-soft);background:color-mix(in srgb, var(--ink) 12%, var(--card));box-shadow:none;border-style:solid;text-decoration:line-through;text-decoration-thickness:2px}.key.poor{opacity:.45}.key i{letter-spacing:0;opacity:.8;font-size:8px;font-style:normal;position:absolute;bottom:1px;right:2px}.key:active:not(:disabled){transform:translateY(1px)}.cb .key.hit{box-shadow:inset 0 -4px 0 var(--hit-ink)}.cb .key.vowel{box-shadow:inset 4px 0 0 var(--vowel)}.cb .key.miss{background-image:repeating-linear-gradient(-45deg, transparent, transparent 3px, color-mix(in srgb, var(--miss) 45%, transparent) 3px, color-mix(in srgb, var(--miss) 45%, transparent) 4px)}button.full,button.secondary,button.ghost{border-radius:12px;width:100%;min-height:48px;font-weight:750;display:block}button.full{background:var(--accent);color:var(--accent-ink)}button.secondary{color:var(--ink);border:1.5px solid var(--ink);background:0 0}button.full.solve{margin-top:2px}button.ghost,button.full.ghost{color:var(--ink);border:1.5px solid var(--line);background:0 0}.solve-actions{flex-direction:column;gap:8px;display:flex}.result{background:var(--card);box-shadow:0 1px 0 var(--line);border-radius:18px;flex-direction:column;gap:8px;padding:16px 14px 14px;animation:.42s both rise-in;display:flex}.result-kicker{font-family:var(--serif);text-align:center;font-size:22px}.result-score{font-family:var(--serif);text-align:center;letter-spacing:-.04em;font-variant-numeric:tabular-nums;margin:6px 0;font-size:52px;line-height:1}.result-score span{font-family:var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-top:4px;font-size:12px;display:block}.pill{letter-spacing:.06em;text-transform:uppercase;border:1.5px solid var(--ink);border-radius:999px;margin:0 auto 8px;padding:2px 8px;font-size:12px;font-weight:750;display:table}.ledger{margin:8px 0 12px}.ledger div{font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;padding:3px 0;display:flex}.ledger dt{color:var(--ink-soft);font-weight:500}.ledger dd{margin:0;font-weight:750}.share-preview{white-space:pre-wrap;background:var(--paper);border-radius:12px;margin:0 0 12px;padding:12px;font-family:inherit;font-size:15px;line-height:1.45}.countdown{text-align:center;color:var(--ink-soft);margin-top:10px;font-size:14px}.countdown b{color:var(--ink);font-variant-numeric:tabular-nums}.sheet-bg{background:color-mix(in srgb, var(--ink) 45%, transparent);z-index:20;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--card);width:100%;max-width:520px;max-height:min(92dvh,760px);padding:8px 16px calc(20px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;overflow:auto}.sheet-bar{background:var(--card);justify-content:space-between;align-items:center;padding:8px 0;display:flex;position:sticky;top:0}.sheet h2{font-family:var(--serif);font-size:28px}.sheet p{margin:8px 0}.rules{flex-direction:column;gap:8px;margin:8px 0;padding-left:18px;display:flex}.rules li{padding-left:4px}.legend{flex-wrap:wrap;gap:8px 12px;margin:8px 0;font-size:14px;display:flex}.stat-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0;display:grid}.stat{background:var(--paper);text-align:center;border-radius:12px;padding:10px 2px}.stat b{font-family:var(--serif);font-variant-numeric:tabular-nums;font-size:24px;display:block}.stat span{color:var(--ink-soft);letter-spacing:.06em;text-transform:uppercase;font-size:11px}.dist-title{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin:14px 0 8px;font-size:13px}.dist{flex-direction:column;gap:6px;display:flex}.dist-row{font-variant-numeric:tabular-nums;grid-template-columns:72px 1fr 24px;align-items:center;gap:8px;font-size:13px;display:grid}.dist-track{background:var(--line);border-radius:99px;height:12px;overflow:hidden}.dist-fill{background:var(--ink);border-radius:99px;min-width:0;height:100%;display:block}.dist-row.today .dist-fill{background:var(--accent)}.dist-row.today .dist-label{font-weight:750}.dist-n{text-align:right}.toast{left:50%;bottom:calc(20px + env(safe-area-inset-bottom));background:var(--ink);color:var(--paper);z-index:30;box-shadow:0 8px 24px color-mix(in srgb, var(--ink) 30%, transparent);border-radius:999px;padding:10px 16px;font-weight:700;position:fixed;transform:translate(-50%)}@keyframes turn{0%{opacity:.2;transform:rotateX(90deg)}to{opacity:1;transform:none}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}@keyframes rise{0%{opacity:0;transform:translateY(4px)}15%{opacity:1}to{opacity:0;transform:translateY(-16px)}}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes pulse{0%,to{opacity:.45}50%{opacity:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width>=720px){.sheet-bg{align-items:center;padding:24px}.sheet{border-radius:22px}}
