@import"https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&display=swap";:root{--bg: #FAFAF7;--surface: #FFFFFF;--ink: #1F2328;--muted: #6B7076;--line: #E2E3DF;--green: #4E9F5D;--yellow: #C9A92C;--gray: #7A7F85;--empty: #D5D7D2;--accent: #1F2328;--absent-key: #F1F1EE;--absent-ink: #B4B7B2;--font: "Outfit", system-ui, -apple-system, "Segoe UI", sans-serif;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #121314;--surface: #1C1D1F;--ink: #EDEEEF;--muted: #9EA2A8;--line: #2E3033;--gray: #4A4D52;--empty: #3A3C40;--accent: #EDEEEF}:root{--absent-key: #18191B;--absent-ink: #4A4D52}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;min-height:100%}body{background:var(--bg);color:var(--ink);font:16px/1.5 var(--font)}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--green);outline-offset:2px}.app{max-width:560px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding:0 12px env(safe-area-inset-bottom)}header.top{display:flex;align-items:center;justify-content:space-between;padding:14px 4px 10px}header.top h1{font-size:22px;font-weight:700;margin:0;letter-spacing:.02em}header.top .who{font-size:14px;color:var(--muted);background:none;border:0;padding:4px 6px}main{flex:1;display:flex;flex-direction:column}nav.tabs{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);background:var(--bg);position:sticky;bottom:0;padding-bottom:env(safe-area-inset-bottom)}nav.tabs button{background:none;border:0;padding:12px 0 14px;font-size:14px;color:var(--muted);font-weight:500}nav.tabs button[aria-current=page]{color:var(--ink);font-weight:600;box-shadow:inset 0 2px 0 var(--ink)}.start{padding:24px 4px;display:flex;flex-direction:column;gap:22px}.start h2{font-size:28px;line-height:1.15;margin:0}.start p{margin:0;color:var(--muted)}.field label{display:block;font-size:14px;color:var(--muted);margin-bottom:6px}.field input{width:100%;font:inherit;font-size:17px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink)}.lengths{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.lengths button{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:10px 0 8px;display:flex;flex-direction:column;align-items:center}.lengths button b{font-size:22px;line-height:1}.lengths button small{font-size:12px;color:var(--muted);margin-top:4px}.lengths button[aria-pressed=true]{background:var(--accent);color:var(--bg);border-color:var(--accent)}.lengths button[aria-pressed=true] small{color:inherit;opacity:.75}.primary{background:var(--green);color:#fff;border:0;border-radius:12px;padding:14px;font-size:17px;font-weight:600;width:100%}.primary:disabled{opacity:.5}.ghost{background:none;border:1px solid var(--line);border-radius:10px;padding:10px 14px;font-weight:500}.error{color:#c2410c;font-size:14px}.switch{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.switch-text{display:flex;flex-direction:column}.switch-text b{font-size:16px;font-weight:600}.switch-text small{font-size:13px;color:var(--muted)}.switch-track{flex:none;width:46px;height:28px;border-radius:99px;background:var(--empty);position:relative;transition:background .2s}.switch-thumb{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000004d;transition:transform .2s}.switch[aria-checked=true] .switch-track{background:var(--green)}.switch[aria-checked=true] .switch-thumb{transform:translate(18px)}.game{flex:1;display:flex;flex-direction:column;gap:10px;padding-bottom:8px}.meta{display:flex;justify-content:space-between;font-size:14px;color:var(--muted);padding:0 4px}.board-wrap{flex:1;display:flex;align-items:center;justify-content:center;min-height:0}.board{display:grid;gap:var(--gap)}.row{display:grid;grid-template-columns:repeat(var(--n),var(--tile));gap:var(--gap)}.row.shake{animation:shake .4s}.row.thinking .tile.filled{animation:pulse .5s ease-in-out infinite alternate}.tile{width:var(--tile);height:var(--tile);border:2px solid var(--empty);border-radius:6px;display:grid;place-items:center;font-weight:700;font-size:calc(var(--tile) * .5);text-transform:uppercase;-webkit-user-select:none;user-select:none;perspective:400px}.tile.filled{border-color:var(--muted);animation:pop .1s}.tile.g,.tile.y,.tile.x{color:#fff;border-color:transparent}.tile.g{background:var(--green)}.tile.y{background:var(--yellow)}.tile.x{background:var(--gray)}.tile.flip{animation:flip var(--flip) ease-in-out}.tile.win{animation:bounce .5s ease}@keyframes pop{50%{transform:scale(1.08)}}@keyframes pulse{to{transform:scale(1.05);border-color:var(--ink)}}@keyframes flip{0%{transform:rotateX(0)}50%{transform:rotateX(90deg)}to{transform:rotateX(0)}}@keyframes shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}@keyframes bounce{40%{transform:translateY(-14px)}70%{transform:translateY(3px)}}.kb{display:flex;flex-direction:column;gap:6px;-webkit-user-select:none;user-select:none}.kb-row{display:flex;gap:5px;justify-content:center}.key{flex:1;max-width:44px;height:54px;border:0;border-radius:6px;background:var(--empty);font-weight:600;font-size:15px;padding:0}.key.wide{max-width:68px;flex:1.5;font-size:12px}.key.g{background:var(--green);color:#fff}.key.y{background:var(--yellow);color:#fff}.key.x{background:var(--absent-key);color:var(--absent-ink);box-shadow:inset 0 0 0 1px var(--line)}.key:active{transform:scale(.96)}.toast{position:fixed;top:70px;left:50%;transform:translate(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:8px;font-weight:500;z-index:30}.result{position:fixed;inset:0;background:#00000059;display:flex;align-items:flex-end;justify-content:center;z-index:20;animation:fade .25s}.sheet{background:var(--surface);width:100%;max-width:560px;border-radius:18px 18px 0 0;padding:22px 20px calc(22px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px;animation:up .3s ease-out}.sheet h2{margin:0;font-size:26px}.sheet .word{font-size:22px;font-weight:700;letter-spacing:.12em}.sheet .row-btns{display:flex;gap:10px}.sheet .row-btns>*{flex:1}@keyframes fade{0%{opacity:0}}@keyframes up{0%{transform:translateY(40px);opacity:0}}.page{padding:12px 4px 24px;display:flex;flex-direction:column;gap:18px}.page h2{margin:0;font-size:22px}.page h3{margin:0 0 8px;font-size:16px}.chips{display:flex;gap:6px;overflow-x:auto}.chips button{border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:6px 14px;font-size:14px;white-space:nowrap}.chips button[aria-pressed=true]{background:var(--accent);color:var(--bg);border-color:var(--accent)}table{width:100%;border-collapse:collapse;font-size:15px}th{text-align:left;font-size:13px;color:var(--muted);font-weight:500;padding:6px 4px;border-bottom:1px solid var(--line)}td{padding:10px 4px;border-bottom:1px solid var(--line)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}tr.me td{font-weight:600}.rank{width:32px;color:var(--muted)}.medal{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;font-size:13px;font-weight:700;color:#fff}.m1{background:var(--yellow)}.m2{background:#9aa0a6}.m3{background:#b07a4e}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;text-align:center}.kpis div b{display:block;font-size:26px;font-weight:700;line-height:1.1}.kpis div span{font-size:12px;color:var(--muted)}.bars{display:flex;flex-direction:column;gap:5px}.bar{display:grid;grid-template-columns:22px 1fr;gap:8px;align-items:center;font-size:14px}.bar i{display:block;height:22px;background:var(--gray);color:#fff;border-radius:4px;font-style:normal;font-size:13px;font-weight:600;text-align:right;padding-right:7px;line-height:22px;min-width:24px}.bar i.hi{background:var(--green)}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px}.muted{color:var(--muted)}.mini{display:flex;gap:2px}.mini span{width:8px;height:8px;border-radius:2px}.empty{text-align:center;color:var(--muted);padding:24px 0}@media(prefers-reduced-motion:reduce){.tile.flip,.tile.win,.row.shake,.row.thinking .tile.filled,.tile.filled{animation:none!important}}.cel{position:fixed;inset:0;z-index:40;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0a0c106b;cursor:pointer}.cel-title{position:absolute;top:14%;left:0;right:0;text-align:center;font-size:34px;font-weight:700;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.35);animation:cel-pop .5s ease-out both}.cel-skip{position:absolute;bottom:28px;left:0;right:0;text-align:center;font-size:13px;color:#ffffffbf;animation:cel-fade .4s ease 1.5s both}.balloon{position:absolute;bottom:-140px;left:var(--x);width:var(--s);height:calc(var(--s) * 1.22);border-radius:50% 50% 46% 46%;background:var(--c);box-shadow:inset -6px -8px #0000001f;animation:balloon-rise var(--t) cubic-bezier(.25,.6,.35,1) var(--d) both}.balloon:before{content:"";position:absolute;left:50%;top:12%;width:22%;height:18%;margin-left:-11%;border-radius:50%;background:#ffffff73}.balloon:after{content:"";position:absolute;left:50%;bottom:-16px;width:2px;height:16px;background:#ffffffb3}@keyframes balloon-rise{0%{transform:translate(0) scale(1);opacity:1}78%{transform:translate(var(--dx),calc(var(--rise) * -1)) scale(1);opacity:1}86%{transform:translate(var(--dx),calc(var(--rise) * -1)) scale(1.35);opacity:1}to{transform:translate(var(--dx),calc(var(--rise) * -1)) scale(1.8);opacity:0}}.flash{position:absolute;left:50%;top:42%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:#fff;box-shadow:0 0 60px 30px #ffffffb3;animation:flash .6s ease-out var(--boom) both}.spark{position:absolute;left:50%;top:42%;width:10px;height:14px;margin:-7px 0 0 -5px;border-radius:3px;background:var(--c);animation:spark 1.1s cubic-bezier(.1,.7,.3,1) var(--boom) both}@keyframes spark{0%{transform:rotate(var(--a)) translate(0) rotate(0);opacity:1}80%{opacity:1}to{transform:rotate(var(--a)) translate(var(--r)) rotate(540deg);opacity:0}}@keyframes flash{0%{transform:scale(.2);opacity:1}to{transform:scale(9);opacity:0}}.bit{position:absolute;top:-30px;left:var(--x);width:9px;height:14px;border-radius:2px;background:var(--c);animation:fall var(--t) linear var(--d) infinite}@keyframes fall{to{transform:translateY(115vh) rotate(720deg)}}.duck-wrap{position:absolute;bottom:16%;left:0;right:0;display:flex;justify-content:center;animation:duck-in .9s cubic-bezier(.2,.8,.3,1) .2s both}.duck{font-size:92px;line-height:1;display:inline-block;transform-origin:50% 90%;animation:duck-bob .42s ease-in-out infinite alternate;filter:drop-shadow(0 6px 10px rgba(0,0,0,.25))}@keyframes duck-in{0%{transform:translate(-110vw)}to{transform:translate(0)}}@keyframes duck-bob{0%{transform:translateY(0) rotate(-7deg)}to{transform:translateY(-14px) rotate(7deg)}}.donkey-wrap{position:absolute;bottom:22%;left:0;right:0;display:flex;justify-content:center;animation:cel-pop .6s ease-out both}.donkey{font-size:110px;line-height:1;display:inline-block;transform-origin:50% 100%;animation:donkey-dance .5s ease-in-out infinite alternate;filter:drop-shadow(0 6px 10px rgba(0,0,0,.25))}@keyframes donkey-dance{0%{transform:translateY(0) rotate(-14deg) scaleX(1)}to{transform:translateY(-22px) rotate(14deg) scaleX(-1)}}.note{position:absolute;bottom:40%;font-size:30px;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.35);animation:note 2.2s ease-out var(--d) infinite}@keyframes note{0%{transform:translateY(0) rotate(0);opacity:0}20%{opacity:1}to{transform:translate(var(--dx),-220px) rotate(25deg);opacity:0}}.sad-line{position:absolute;bottom:12%;left:0;right:0;text-align:center;color:#fff;font-size:18px;font-weight:600;animation:cel-fade .5s ease .3s both}@keyframes cel-pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}@keyframes cel-fade{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.balloon,.spark,.flash,.bit,.duck,.donkey,.note,.duck-wrap{animation:none!important}.balloon,.bit,.spark,.note{display:none}}
