:root{--bg:#f4f4f0;--panel:#fff;--panel-edge:#e3e3dd;--key:#fff;--key-edge:#121212;--tile:#efefe6;--tile-text:#121212;--tile-on:#5a594e;--text:#121212;--muted:#7a7a76;--orange:#121212;--orange-dark:#000;--red:#c8372d;--perfect:#2f9e44;--great:#58a85f;--ok:#c9a227;--far:#c9782e;--miss:#b5b5ad;--empty:#e6e6e0;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Libre Franklin,Franklin Gothic,Helvetica Neue,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}a{color:var(--muted)}.app{height:100%;position:relative}.sidebar{z-index:2;flex-direction:column;gap:10px;width:180px;padding:16px 12px;display:flex;position:absolute;top:0;bottom:0;left:0;overflow-y:auto}.player{background:var(--panel);border:1px solid var(--panel-edge);opacity:.6;border-radius:12px;align-items:center;gap:10px;padding:8px 10px;transition:opacity .2s;display:flex}.player.live,.player.done,.player.me{opacity:1}.player.me{border-color:var(--text)}.avatar-wrap{flex:none;position:relative}.avatar{object-fit:cover;background:var(--tile);border-radius:50%;width:40px;height:40px;display:block}.avatar.fallback{color:var(--text);place-items:center;font-weight:700;display:grid}.presence{border:2px solid var(--panel);background:#3ba55c;border-radius:50%;width:12px;height:12px;position:absolute;bottom:-2px;right:-2px}.player.live .presence{animation:1.4s ease-in-out infinite pulse}@keyframes pulse{50%{transform:scale(1.25)}}.player-body{flex:1;gap:4px;min-width:0;display:grid}.player-name{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:700;overflow:hidden}.player-name.editable{cursor:text}.player-name .pencil{color:var(--muted);font-size:11px}.player-name.editable:hover{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.rename{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--text);border-radius:4px;outline:none;width:100%;padding:1px 4px;font-size:12px;font-weight:700}.dots{gap:4px;display:flex}.dot{background:var(--empty);border-radius:3px;width:14px;height:14px}.player-score{color:var(--muted);font-size:11px}.player.done .player-score{color:var(--text)}.stage{grid-template-rows:1fr auto;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.device{transform:scale(var(--scale,1));transform-origin:50%;background:var(--panel);border:1px solid var(--panel-edge);border-radius:18px;flex-direction:column;align-self:center;display:flex;overflow:hidden;box-shadow:0 16px 48px #0000001a}.notice{color:var(--muted);text-align:center;margin:auto;padding:20px;font-size:13px}.notice.error{color:var(--red)}.notice small{color:var(--muted);margin-top:6px;font-size:10px;display:block}.footer{justify-content:center;gap:18px;padding:6px 0 10px;font-size:11px;display:flex}.footer a{color:var(--muted);border-bottom:1px dotted var(--muted);text-decoration:none}.footer a:hover{color:var(--text)}.bar{letter-spacing:.04em;white-space:nowrap;border-bottom:1px solid var(--panel-edge);align-items:center;gap:8px;margin-bottom:6px;padding:12px 14px 6px;font-size:11px;display:flex}.brand{color:var(--text);letter-spacing:.08em;font-weight:900}.no{color:var(--muted);text-overflow:ellipsis;overflow:hidden}.points{white-space:nowrap;color:var(--muted);margin-left:auto;font-weight:700}.board{flex-direction:column;gap:6px;padding:6px 12px 0;display:flex}.solved{color:#121212;text-align:center;border-radius:6px;align-content:center;gap:2px;min-height:58px;padding:8px 10px;display:grid}.solved strong{letter-spacing:.04em;text-transform:uppercase;font-size:12px}.solved span{font-size:11px}.grid{grid-template-columns:repeat(4,1fr);grid-auto-rows:58px;gap:6px;display:grid}.tile{background:var(--tile);color:var(--tile-text);letter-spacing:.02em;overflow-wrap:anywhere;text-transform:uppercase;border:0;border-radius:6px;padding:4px 3px;font-size:12px;font-weight:800;line-height:1.1;transition:transform 90ms,background-color .12s,color .12s}.tile.long{font-size:10px}.tile.xlong{letter-spacing:0;font-size:9px}.tile:active:not(:disabled){transform:scale(.95)}.tile.on{background:var(--tile-on);color:#fff}.grid.shake{animation:.4s ease-in-out shake}.tile.fly-bounce{animation:.42s cubic-bezier(.3,.7,.4,1.4) both hop;animation-delay:calc(var(--i) * 90ms)}@keyframes hop{40%{transform:translateY(-12px)}to{transform:none}}.tile.fly-move,.tile.fly-merge{z-index:1;position:relative}.tile.fly-merge{background:var(--level);color:#121212;border-radius:3px;transition:background-color .26s,color .26s,transform .26s,border-radius .26s;transform:scale(1.03)}.solved.fresh{animation:.32s ease-out both fuse}@keyframes fuse{0%{opacity:.4;transform:scaleX(.97)}to{opacity:1;transform:none}}@keyframes shake{20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.toast-slot{place-items:center;height:32px;display:grid}.toast{background:var(--text);color:#fff;border-radius:4px;padding:6px 14px;font-size:12px;font-weight:600;animation:.2s ease-out both rise}.toast.correct,.toast.near,.toast.wrong{background:var(--text)}.mistakes{color:var(--text);justify-content:center;align-items:center;gap:8px;padding:0 12px;font-size:12px;display:flex}.pips{gap:8px;display:flex}.pip{background:var(--tile-on);border-radius:50%;width:14px;height:14px;transition:transform .2s,opacity .2s}.pip:not(.on){opacity:0;transform:scale(0)}.mistakes .count{display:none}.actions{justify-content:center;gap:8px;margin-top:auto;padding:10px 12px 12px;display:flex}.key{background:var(--key);border:1px solid var(--key-edge);color:var(--text);border-radius:999px;flex:1;height:40px;padding:0 16px;font-size:12px;font-weight:600}.key:active:not(:disabled){transform:translateY(1px)}.key:disabled{color:var(--muted);border-color:var(--muted)}.key.guess{flex:1.2}.key.guess:not(:disabled){color:#fff;background:var(--text);border-color:var(--text);transition:background-color .12s,color .12s}.summary{flex-direction:column;flex:1;gap:10px;padding:8px 14px 14px;display:flex;overflow:auto}.big-score{text-align:center;color:var(--text);font-size:26px;font-weight:800;animation:.42s cubic-bezier(.2,.8,.2,1) both pop}.big-score.lost{color:var(--muted)}.big-score small{color:var(--muted);margin-top:4px;font-size:11px;font-weight:400;display:block}.results{gap:6px;margin:0;padding:0;list-style:none;display:grid}.result{color:#121212;text-align:center;animation:.28s ease-out both rise;animation-delay:calc(.12s + var(--i,0) * 60ms);border-radius:6px;gap:2px;padding:8px 10px;display:grid}.result.missed{opacity:.55}.result-title{letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:800}.result-words{font-size:11px}.emoji-grid{justify-content:center;gap:3px;display:grid}.emoji-row{gap:3px;display:flex}.emoji-cell{border-radius:3px;width:16px;height:16px}.hint{text-align:center;color:var(--muted);margin:0;font-size:10px;animation:.28s ease-out .48s both rise}.cta{background:var(--text);border:1px solid var(--text);color:#fff;letter-spacing:.04em;border-radius:999px;padding:11px;font-size:13px;font-weight:700}.cta:active{transform:translateY(1px)}.cta:disabled{opacity:.35;cursor:default}.t-perfect{color:var(--perfect)!important}.t-great{color:var(--great)!important}.t-ok{color:var(--ok)!important}.t-far{color:var(--far)!important}.t-miss{color:var(--muted)!important}.builder{flex-direction:column;flex:1;gap:8px;padding:6px 14px 14px;display:flex;overflow:auto}.builder.done{justify-content:center;gap:12px}.builder.done .key{flex:none;align-self:center;padding:0 28px}.field-row{gap:6px;display:flex}.field-row .name-input{flex:1;min-width:0}.name-input{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--panel-edge);border-radius:6px;outline:none;width:100%;padding:7px 8px;font-size:12px;font-weight:600}.name-input:focus{border-color:var(--text)}.name-input.link{text-align:center;font-size:11px}.group{background:var(--tile);border-left:6px solid var(--c);border-radius:8px;gap:4px;padding:6px;display:grid}.group .cat{text-transform:uppercase}.words{grid-template-columns:repeat(2,1fr);gap:4px;display:grid}.name-input.word{text-transform:uppercase;padding:6px;font-size:11px}.name-input.word.dupe{border-color:var(--red)}.form-error{color:var(--red);text-align:center;margin:0;font-size:10px}.name-title{text-align:center;margin:0;font-size:18px;font-weight:800}.name-sub{color:var(--muted);text-align:center;margin:0 0 6px;font-size:11px;line-height:1.5}@media (width<=640px){.app{flex-direction:column;display:flex}.sidebar{flex-direction:row;flex:none;width:auto;padding:10px;position:static;overflow-x:auto}.player{flex:none}.player-name{max-width:90px}.stage{flex:1;position:relative}}::view-transition-old(root){animation-duration:.24s;animation-timing-function:ease}::view-transition-new(root){animation-duration:.24s;animation-timing-function:ease}.sidebar{view-transition-name:sidebar}.bar{view-transition-name:bar}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.08)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}.solved,.result,.big-score,.hint,.toast,.grid.shake,.tile.fly-bounce{animation:none}}
