:root{--ink: #1f2544;--muted: #5b6386;--orange: #ff7a1a;--orange2: #e85d00;--teal: #14b8a6;--teal2: #0b8f82;--yellow: #ffc93c;--glass: rgba(255, 255, 255, .86);--glass-d: rgba(20, 24, 48, .55);--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);font-family:Poppins,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);-webkit-text-size-adjust:100%;text-size-adjust:100%}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{overflow:hidden;overscroll-behavior:none;background:#2f6f80;touch-action:manipulation;-webkit-user-select:none;user-select:none}input{font:inherit;font-size:16px;-webkit-user-select:text;user-select:text}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:3px solid #ffd23f;outline-offset:2px}.scene{position:fixed;inset:0;z-index:0;pointer-events:none}.scene svg{width:100%;height:100%;display:block}.scene-dim{position:absolute;inset:0;background:#0d1030}.btn{--a: #ffa04a;--b: var(--orange2);position:relative;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;padding:6px 18px;border-radius:16px;background:linear-gradient(var(--a),var(--b));color:#fff;font-weight:800;font-size:16px;letter-spacing:.2px;line-height:1.15;box-shadow:0 5px #00000038,0 8px 18px #0000002e;text-shadow:0 1px 0 rgba(0,0,0,.2);transition:transform .08s,box-shadow .08s}.btn:before{content:"";position:absolute;left:10px;right:10px;top:4px;height:36%;border-radius:12px;background:#ffffff40;pointer-events:none}.btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px #00000038}.btn:disabled{filter:grayscale(.6);opacity:.65}.btn small{font-size:12.5px;font-weight:600;opacity:.92}.btn.teal{--a: #3fd6c4;--b: var(--teal2)}.btn.purple{--a: #b48cff;--b: #7445d8}.btn.blue{--a: #6aaeff;--b: #2f6fd6}.btn.green{--a: #5ad690;--b: #1e9a58}.btn.gray{--a: #9aa3b8;--b: #5f6880}.btn.yellow{--a: #ffd970;--b: #f0a500;color:#4a3000;text-shadow:none}.btn.red{--a: #ff7b7b;--b: #d93a3a}.btn.xl{min-height:64px;font-size:22px;border-radius:20px;width:100%}.btn.sm{min-height:38px;font-size:14px;padding:4px 14px;border-radius:12px}.chip{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:var(--glass);font-weight:800;font-size:14px;color:var(--ink);box-shadow:0 3px 10px #00000026;white-space:nowrap}.chip small{font-weight:600;color:var(--muted)}.chip.round{width:40px;height:40px;padding:0;justify-content:center;font-size:18px}.muted{color:var(--muted)}.small{font-size:12.5px}.center{text-align:center}.logo{display:flex;flex-direction:column;align-items:center;gap:6px;filter:drop-shadow(0 8px 14px rgba(0,0,0,.3))}.logo-row{display:flex;gap:6px;align-items:center}.lt{width:clamp(46px,13vw,66px);height:clamp(46px,13vw,66px);display:grid;place-items:center;border-radius:14px;font-weight:900;font-size:clamp(28px,8.4vw,42px);color:#fff;border:3px solid #fff;box-shadow:0 5px #00000040;transform:rotate(calc((var(--i) - 3.5) * 2deg));animation:drop .6s cubic-bezier(.2,1.5,.5,1) both;animation-delay:calc(var(--i) * .06s)}.lt.o{background:linear-gradient(#ffa04a,#ff6a00)}.lt.t{background:linear-gradient(#3fd6c4,#0b8f82)}.loupe{font-size:clamp(30px,8vw,42px);margin-left:2px;transform:rotate(-12deg)}.logo.sm .lt{width:34px;height:34px;font-size:20px;border-radius:9px;border-width:2px}@keyframes drop{0%{transform:translateY(-30px) scale(.6);opacity:0}}.home{position:fixed;inset:0;overflow-y:auto;touch-action:pan-y}.home-in{position:relative;z-index:1;min-height:100%;max-width:560px;margin:0 auto;padding:calc(12px + var(--safe-t)) 16px calc(20px + var(--safe-b));display:flex;flex-direction:column;align-items:center;gap:14px}.home-top{width:100%;display:flex;justify-content:space-between;gap:8px}.home-top .who{max-width:72%;overflow:hidden;text-overflow:ellipsis}.tagline{color:#fff;font-weight:700;font-size:15px;text-align:center;text-shadow:0 2px 6px rgba(0,0,0,.5);margin-top:-4px}.summary{width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:12px;border-radius:20px;background:var(--glass);box-shadow:0 8px 24px #0003}.summary>div{text-align:center}.summary small{display:block;font-size:11px;font-weight:700;color:var(--muted);line-height:1.2}.summary b{font-size:19px;font-weight:900}.sum-bar{grid-column:1 / -1;position:relative;height:22px;border-radius:11px;background:#e4e8f3;overflow:hidden;margin-top:4px}.sum-bar i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#ffc93c,#ff7a1a);border-radius:11px}.sum-bar span{position:relative;font-size:12px;font-weight:800;line-height:22px}.menu{width:100%;display:flex;flex-direction:column;gap:12px}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.menu-grid .btn{font-size:15px}@media(max-width:380px){.summary{grid-template-columns:repeat(2,1fr)}.menu-grid .btn{font-size:13.5px;padding:6px 8px}}.page{position:fixed;inset:0;display:flex;flex-direction:column}.topbar{position:relative;z-index:2;display:flex;align-items:center;gap:10px;padding:calc(10px + var(--safe-t)) 14px 10px;background:var(--glass);box-shadow:0 4px 16px #00000026}.topbar h1{flex:1;font-size:19px;font-weight:900}.icon{width:42px;height:42px;border-radius:12px;background:#fff;box-shadow:0 3px #00000026;font-size:20px;font-weight:900}.page-scroll{position:relative;z-index:1;flex:1;overflow-y:auto;padding:16px 14px calc(30px + var(--safe-b));touch-action:pan-y}.page-scroll.narrow>*{max-width:640px;margin-left:auto;margin-right:auto}.card{background:var(--glass);border-radius:20px;padding:14px 16px;box-shadow:0 8px 24px #0000002e;margin-bottom:14px}.card p{margin:6px 0;font-size:14.5px}.note{background:var(--glass);border-radius:14px;padding:10px 14px;font-size:13.5px;margin-bottom:10px}.page-scroll>.muted,.page-scroll .muted.center{color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.6);margin:8px 0 14px;font-size:14px}.row-btns{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}.row-btns.center{justify-content:center;margin-top:16px}.col-btns{display:flex;flex-direction:column;gap:10px;margin-top:16px}.sec{color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.6);font-size:17px;margin:18px 0 8px}.legend{display:flex;gap:8px;justify-content:center;margin-bottom:8px;flex-wrap:wrap}.lg{padding:4px 10px;border-radius:999px;font-size:12px;font-weight:800;background:#fff}.lg.done{background:#ffc93c}.lg.open{background:#fff}.lg.lock{background:#c8cdd9}.lv-group{max-width:760px;margin:0 auto 18px}.lv-group h3{color:#fff;font-size:18px;font-weight:900;text-shadow:0 2px 6px rgba(0,0,0,.55);margin:10px 4px 8px}.lv-group h3 small{display:block;font-size:12.5px;font-weight:600;opacity:.9}.lv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(66px,1fr));gap:8px}.lv{aspect-ratio:1;border-radius:16px;background:#fff;box-shadow:0 4px #0000002e;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05}.lv b{font-size:22px;font-weight:900}.lv .st{font-size:11px;color:#f0a500;font-weight:700;letter-spacing:-1px}.lv small{font-size:10px;color:var(--muted);font-weight:700}.lv:not(.done):not(.lock) .st{color:var(--muted);letter-spacing:0;font-size:10px}.lv.done{background:linear-gradient(#fff6d2,#ffd97a)}.lv.cur{background:linear-gradient(#ffb066,#ff7a1a);color:#fff;animation:pulse 1.4s ease-in-out infinite}.lv.cur .st{color:#fff}.lv.lock{background:#c8cdd9;box-shadow:none;color:#6b7390}.lv.lock b{font-size:18px}@keyframes pulse{50%{box-shadow:0 4px #0000002e,0 0 0 8px #ffc93c73}}.play{position:fixed;inset:0;display:flex;flex-direction:column}.hud{position:relative;z-index:2;display:flex;align-items:center;gap:8px;margin:calc(8px + var(--safe-t)) 8px 0;padding:6px 8px;border-radius:20px;background:var(--glass);box-shadow:0 6px 18px #0003}.hud-btn{position:relative;width:42px;height:42px;flex:none;border-radius:13px;background:#fff;box-shadow:0 3px #00000026;font-size:16px;font-weight:900;letter-spacing:-2px}.hud-btn.hint{background:linear-gradient(#ffd970,#f0a500);font-size:19px;letter-spacing:0}.hud-btn.hint span{position:absolute;right:-5px;top:-5px;min-width:19px;height:19px;border-radius:10px;background:var(--ink);color:#fff;font-size:11px;display:grid;place-items:center}.hud-btn:disabled{opacity:.5}.hud-title{flex:1;min-width:0;line-height:1.15}.hud-title b{display:block;font-size:17px;font-weight:900}.hud-title small{display:block;font-size:11.5px;font-weight:700;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hud-score{text-align:right;line-height:1.1;padding:0 4px}.hud-score small{display:block;font-size:10.5px;font-weight:800;color:var(--muted)}.hud-score b{font-size:20px;font-weight:900;font-variant-numeric:tabular-nums}.ring{position:relative;width:46px;height:46px;flex:none}.ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring .rbg{fill:#fff;stroke:#e4e8f3;stroke-width:5}.ring .rfg{fill:none;stroke:var(--teal);stroke-width:5;stroke-linecap:round;transition:stroke-dashoffset .2s linear}.ring b{position:absolute;inset:0;display:grid;place-items:center;font-size:15px;font-weight:900}.ring.warn .rfg{stroke:#ef4444}.ring.warn b{color:#ef4444;animation:beat .5s ease-in-out infinite}@keyframes beat{50%{transform:scale(1.18)}}@media(max-width:400px){.hud{gap:5px;padding:5px 6px}.hud-btn{width:38px;height:38px}.hud-title b{font-size:15px}.hud-score b{font-size:17px}}.play-main{position:relative;z-index:1;flex:1;min-height:0;display:flex;flex-direction:column;gap:10px;padding:10px 8px calc(10px + var(--safe-b))}.board-box{flex:1;min-height:0;display:grid;place-items:center}.board-frame{position:relative;padding:8px;border-radius:22px;background:#ffffff80;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 14px 34px #00000047,inset 0 0 0 2px #ffffffb3}.board{display:grid;grid-template-columns:repeat(var(--n),1fr);grid-template-rows:repeat(var(--n),1fr);gap:clamp(2px,.6vmin,5px);touch-action:none;cursor:pointer}.board.off{cursor:default}.cell{display:grid;place-items:center;border-radius:22%;background:#fff;font-weight:800;color:var(--ink);box-shadow:0 2px #1f25442e;transition:background .12s,color .12s,transform .12s;pointer-events:none}.cell.got{background:var(--c);color:#fff;box-shadow:0 2px #00000040}.cell.sel{background:var(--orange);color:#fff;transform:scale(1.08);box-shadow:0 3px 0 var(--orange2)}.cell.bad{background:#ef4444;color:#fff;animation:shake .35s}.cell.dup{background:#ffc93c;color:#4a3000}.cell.pop{animation:popc .55s ease}.cell.hint{animation:hint 1s ease-in-out infinite;outline:3px solid #ffc93c}.cell.rev:not(.got){background:#ffe0e0;color:#c81e1e;outline:2px dashed #ef4444;outline-offset:-3px}@keyframes shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes popc{40%{transform:scale(1.25) rotate(-6deg)}}@keyframes hint{50%{background:#fff1b8;transform:scale(1.1)}}.paused-cover{display:grid;place-items:center;align-content:center;font-size:54px;color:var(--ink);background:#fff;border-radius:16px}.paused-cover small{font-size:18px;font-weight:800}.float{position:absolute;left:50%;top:-14px;transform:translate(-50%);padding:7px 16px;border-radius:999px;font-weight:900;font-size:15px;white-space:nowrap;box-shadow:0 6px 16px #00000040;animation:floatIn 1.4s ease forwards;pointer-events:none;z-index:3}.float.ok{background:#20a560;color:#fff}.float.bad{background:#ef4444;color:#fff}.float.info{background:#ffc93c;color:#4a3000}.float.big{background:linear-gradient(#b48cff,#7445d8);color:#fff;font-size:16px}@keyframes floatIn{0%{opacity:0;transform:translate(-50%,10px) scale(.8)}15%{opacity:1;transform:translate(-50%) scale(1.05)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-12px)}}.words{background:var(--glass);border-radius:20px;padding:10px 12px;box-shadow:0 8px 24px #0003}.words-head{display:flex;justify-content:space-between;align-items:center;font-weight:800;font-size:14px}.words-head b{color:var(--teal2)}.words-bar{height:7px;border-radius:4px;background:#e4e8f3;margin:6px 0 8px;overflow:hidden}.words-bar i{display:block;height:100%;background:linear-gradient(90deg,#3fd6c4,#0b8f82);transition:width .3s}.chips{list-style:none;display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.chips li{padding:5px 12px;border-radius:999px;background:#fff;border:2px solid #e1e5f0;font-weight:800;font-size:13.5px;letter-spacing:.3px;transition:all .25s}.chips li.hinted{border-style:dashed;border-color:#f0a500;background:#fff8e1;color:#6a4a00}.chips li.hidden-left{background:transparent;border:2px dashed rgba(31,37,68,.25);color:var(--muted);font-weight:700}.chips li.found{background:var(--c);border-color:var(--c);color:#fff;text-decoration:line-through;text-decoration-thickness:2px;animation:popc .5s}@media(min-width:900px)and (min-aspect-ratio:5/4){.play-main{flex-direction:row;align-items:stretch;padding:14px 18px 18px;gap:18px}.words{width:290px;flex:none;align-self:center;max-height:100%;overflow-y:auto}.chips{flex-direction:column}.chips li{text-align:center;font-size:15px;padding:7px 12px}.hud{max-width:1100px;width:calc(100% - 36px);margin-left:auto;margin-right:auto}}.modal{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:16px;background:#0d10308c;backdrop-filter:blur(3px);animation:fade .2s}@keyframes fade{0%{opacity:0}}.panel{position:relative;width:min(100%,400px);max-height:calc(100% - 16px);overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;border-radius:26px;padding:22px 20px 20px;background:#fff;box-shadow:0 24px 50px #0006;animation:pop .35s cubic-bezier(.2,1.4,.4,1);touch-action:pan-y}.panel::-webkit-scrollbar{display:none}.panel.wide{width:min(100%,560px)}@keyframes pop{0%{transform:scale(.75);opacity:0}}.panel h2{font-size:24px;font-weight:900;text-align:center;margin-bottom:6px}.panel p{font-size:14.5px;line-height:1.45;text-align:center}.x{position:absolute;right:12px;top:12px;width:34px;height:34px;border-radius:50%;background:#eef1f8;font-weight:900}.result.win{background:linear-gradient(#fffaf0,#fff)}.result.lose{background:linear-gradient(#fff3f3,#fff)}.res-sub{color:var(--muted);font-weight:700}.stars{display:flex;justify-content:center;gap:4px;font-size:52px;line-height:1;margin:6px 0}.stars span{color:#dfe3ee;transform:scale(0);animation:starIn .45s cubic-bezier(.2,1.6,.4,1) forwards;animation-delay:var(--d);text-shadow:0 3px 0 rgba(0,0,0,.15)}.stars span.on{color:#ffc93c}.stars span:nth-child(2){font-size:64px}@keyframes starIn{to{transform:scale(1)}}.record{text-align:center;margin:6px auto;padding:5px 14px;border-radius:999px;background:linear-gradient(#ff9ec4,#e2508f);color:#fff;font-weight:900;font-size:13.5px;width:fit-content;animation:pulse 1.4s infinite}.res-table{margin-top:10px;border-radius:16px;background:#f4f6fb;padding:6px 12px}.res-table div{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px dashed #dde2ee;font-size:14.5px}.res-table div:last-child{border-bottom:0}.res-table b{font-weight:900}.res-table .neg{color:#d93a3a}.res-table .tot{font-size:17px}.res-table .tot b{color:var(--orange2);font-size:20px}.missing{margin-top:10px;text-align:center}.missing small{color:var(--muted);font-weight:700}.missing div{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;margin-top:6px}.missing span{padding:3px 10px;border-radius:999px;background:#ffe0e0;color:#c81e1e;font-weight:800;font-size:13px}.form label{display:block;font-weight:800;font-size:13.5px;margin-top:10px}.form input{display:block;width:100%;margin-top:4px;padding:12px 14px;border-radius:14px;border:2px solid #dde2ee;outline:none;font-weight:700;color:var(--ink)}.form input:focus{border-color:var(--orange)}.err{color:#d93a3a;font-size:13px;font-weight:700;min-height:18px;margin-top:8px;text-align:center}.players{list-style:none;display:flex;flex-direction:column;gap:8px;margin-top:10px}.players li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-radius:14px;background:#f4f6fb}.players li.cur{background:#fff3dc;outline:2px solid #ffc93c}.players b{display:block}.players small{display:block;font-size:12px;color:var(--muted)}.players em{font-style:normal;font-weight:800;color:var(--orange2);font-size:13px}.tabs{display:flex;gap:6px;background:var(--glass);padding:5px;border-radius:16px;margin-bottom:10px}.tabs button{flex:1;padding:10px;border-radius:12px;font-weight:800}.tabs button[aria-selected=true]{background:linear-gradient(#ffa04a,#ff6a00);color:#fff}.lb{background:var(--glass);border-radius:18px;padding:6px;box-shadow:0 8px 24px #0000002e}.lb-row{display:grid;grid-template-columns:34px 1fr 74px 38px 52px 58px;align-items:center;gap:4px;padding:8px 6px;border-radius:12px;font-size:13.5px;text-align:center}.lb-row.head{font-size:11.5px;font-weight:800;color:var(--muted)}.lb-row .nm{text-align:left;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-row:nth-child(2n):not(.head){background:#fff9}.lb-row.me{background:#fff3dc!important;outline:2px solid #ffc93c}.lb-row b{font-weight:900;color:var(--orange2)}@media(max-width:400px){.lb-row{grid-template-columns:26px 1fr 62px 30px 42px 48px;font-size:12.5px}}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.stat{background:var(--glass);border-radius:18px;padding:12px;box-shadow:0 6px 16px #00000026}.stat .si{font-size:22px}.stat small{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-top:2px}.stat b{font-size:20px;font-weight:900}.hist{list-style:none;display:flex;flex-direction:column;gap:6px}.hist li{display:grid;grid-template-columns:1fr auto 70px 54px;gap:8px;align-items:center;background:var(--glass);border-radius:12px;padding:8px 12px;font-size:13.5px;font-weight:700}.hist .ok{color:#1e9a58}.hist .no{color:#d93a3a}.hist b{text-align:right}.hist small{color:var(--muted);text-align:right}.toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #e4e8f3;cursor:pointer}.toggle:last-child{border-bottom:0}.toggle b{display:block;font-size:15px}.toggle small{display:block;font-size:12.5px;color:var(--muted)}.toggle input{position:absolute;opacity:0;pointer-events:none}.toggle i{flex:none;width:52px;height:30px;border-radius:15px;background:#cfd5e3;position:relative;transition:background .2s}.toggle i:after{content:"";position:absolute;left:3px;top:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 4px #00000040;transition:transform .2s}.toggle input:checked+i{background:var(--teal)}.toggle input:checked+i:after{transform:translate(22px)}.toggle input:focus-visible+i{outline:3px solid #ffd23f}.howto{background:var(--glass);border-radius:20px;padding:14px 18px 14px 36px;box-shadow:0 8px 24px #0000002e}.howto li{margin:8px 0;font-size:14.5px;line-height:1.5}.howto-demo{display:flex;flex-direction:column;align-items:center}.howto-demo .muted.center{color:var(--muted);text-shadow:none;margin:8px 0 0}.mini{display:grid;grid-template-columns:repeat(5,44px);gap:5px;padding:8px;border-radius:16px;background:#eef1f8}.mcell{width:44px;height:44px;border-radius:10px;background:#fff;display:grid;place-items:center;font-weight:900;font-size:20px;box-shadow:0 2px #0000001f;transition:all .2s}.mcell.sel{background:var(--orange);color:#fff;transform:scale(1.06)}.mcell.got{background:var(--c);color:#fff}.center-msg{position:fixed;inset:0;display:grid;place-items:center;gap:12px;color:#fff;font-weight:800}.reduce *,.reduce *:before,.reduce *:after{animation:none!important;transition:none!important}.reduce .stars span{transform:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-height:760px){.panel{padding:16px 16px 14px}.panel h2{font-size:21px;margin-bottom:2px}.stars{font-size:40px;margin:2px 0}.stars span:nth-child(2){font-size:50px}.res-table{margin-top:6px;padding:4px 12px}.res-table div{padding:3px 0;font-size:13.5px}.res-table .tot b{font-size:18px}.col-btns{margin-top:10px;gap:8px}.col-btns .btn{min-height:42px;font-size:15px}.record{margin:2px auto}}@media(max-height:600px){.res-table div:nth-last-child(-n+2){display:none}}
