:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-2:#ffb703;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--accent-gradient:linear-gradient(135deg, var(--accent), var(--accent-2));--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:"Racing Sans One", system-ui, "Segoe UI", Roboto, sans-serif;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background .3s,color .3s}@media (width<=1024px){:root{font-size:16px}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}*{box-sizing:border-box}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.2px;margin:0;font-size:40px;line-height:1.25}@media (width<=1024px){h1{font-size:30px}}p{margin:0}#app{flex-direction:column;min-height:100svh;display:flex}.tire-wrap[data-v-348a6da9]{flex:none;margin-bottom:10px;position:relative}.tire[data-v-348a6da9]{filter:drop-shadow(0 2px 2px #0000004d);width:30px;height:30px;animation:1.4s linear infinite tire-spin-348a6da9;display:block}@media (width<=1024px){.tire[data-v-348a6da9]{width:22px;height:22px}}.smoke[data-v-348a6da9]{pointer-events:none;width:0;height:0;position:absolute;bottom:-2px;left:50%}.puff[data-v-348a6da9]{bottom:0;left:calc(var(--i) * 9px - 16px);opacity:0;width:12px;height:12px;animation:1s ease-out forwards puff-rise-348a6da9;animation-delay:calc(var(--i) * .1s + .1s);background:radial-gradient(circle,#a0a0aad9,#a0a0aa00);border-radius:50%;position:absolute}@keyframes tire-spin-348a6da9{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes puff-rise-348a6da9{0%{opacity:0;transform:translateY(0)scale(.4)}25%{opacity:.85}to{opacity:0;transform:translateY(-22px)scale(1.7)}}.bingo-app[data-v-ac3626f1]{box-sizing:border-box;text-align:center;width:100%;max-width:640px;margin:0 auto;padding:40px 20px 60px}.top-bar[data-v-ac3626f1]{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.lang-switch[data-v-ac3626f1]{background:var(--code-bg);border:1px solid var(--border);border-radius:20px;gap:2px;padding:3px;display:inline-flex}.lang-btn[data-v-ac3626f1]{font:inherit;color:var(--text);cursor:pointer;filter:grayscale(.85)opacity(.6);background:0 0;border:none;border-radius:16px;justify-content:center;align-items:center;padding:6px 9px;transition:filter .2s,background .25s,transform .15s;display:inline-flex}.flag-icon[data-v-ac3626f1]{width:22px;line-height:0;display:block}.flag-icon[data-v-ac3626f1] svg{border-radius:2px;width:100%;height:auto;display:block;box-shadow:0 0 0 1px #00000026}.lang-btn[data-v-ac3626f1]:hover{filter:grayscale(.3)opacity(.85)}.lang-btn.active[data-v-ac3626f1]{filter:grayscale(0)opacity();background:var(--accent-bg);box-shadow:0 0 0 1.5px var(--accent-border) inset}.lang-btn[data-v-ac3626f1]:active{transform:scale(.88)}.theme-btn[data-v-ac3626f1]{border:1px solid var(--border);background:var(--code-bg);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;transition:transform .15s,box-shadow .2s;display:inline-flex;overflow:hidden}.theme-btn[data-v-ac3626f1]:hover{box-shadow:var(--shadow)}.theme-btn[data-v-ac3626f1]:active{transform:scale(.88)}.theme-icon[data-v-ac3626f1]{font-size:16px;line-height:1;animation:.4s cubic-bezier(.34,1.56,.64,1) theme-pop-ac3626f1;display:inline-block}@keyframes theme-pop-ac3626f1{0%{opacity:0;transform:scale(.4)rotate(-90deg)}60%{opacity:1;transform:scale(1.2)rotate(10deg)}to{opacity:1;transform:scale(1)rotate(0)}}.title-row[data-v-ac3626f1]{justify-content:center;align-items:center;gap:10px;display:flex}.bingo-header h1[data-v-ac3626f1]{margin:0 0 10px}.subtitle[data-v-ac3626f1]{color:var(--text);margin-bottom:24px;font-size:15px}.toolbar[data-v-ac3626f1]{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.progress[data-v-ac3626f1]{color:var(--text);align-items:baseline;gap:4px;font-size:14px;display:flex}.progress-count[data-v-ac3626f1]{font-family:var(--heading);color:var(--text-h);font-variant-numeric:tabular-nums;font-size:20px}.progress-lines[data-v-ac3626f1]{color:var(--accent);font-weight:600}.reset-btn[data-v-ac3626f1]{border:1px solid var(--accent-border);background:var(--accent-bg);color:var(--accent);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:600;transition:transform .15s,box-shadow .2s;display:inline-flex}.reset-btn[data-v-ac3626f1]:hover{box-shadow:var(--shadow)}.reset-btn[data-v-ac3626f1]:active{transform:scale(.94)}.reset-icon[data-v-ac3626f1]{transition:transform .4s;display:inline-block}.reset-btn:active .reset-icon[data-v-ac3626f1]{transform:rotate(-180deg)}.grid-wrap[data-v-ac3626f1]{perspective:1200px}.grid[data-v-ac3626f1]{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.cell[data-v-ac3626f1]{aspect-ratio:1;border:1px solid var(--border);background:var(--bg);color:var(--text-h);font:inherit;text-align:center;cursor:pointer;transform-origin:50%;opacity:1;animation:.45s cubic-bezier(.34,1.56,.64,1) both cell-in-ac3626f1;animation-delay:var(--delay);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:6px;font-size:12px;line-height:1.25;transition:transform .15s,box-shadow .25s,border-color .25s;display:flex;position:relative;overflow:hidden}@media (width<=480px){.cell[data-v-ac3626f1]{padding:4px;font-size:10px}}.cell[data-v-ac3626f1]:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.cell[data-v-ac3626f1]:active{transform:scale(.92)}.cell-emoji[data-v-ac3626f1]{z-index:1;font-size:20px;line-height:1;transition:transform .2s;position:relative}@media (width<=480px){.cell-emoji[data-v-ac3626f1]{font-size:16px}}.cell-text[data-v-ac3626f1]{z-index:1;transition:opacity .2s,transform .2s;position:relative}.cell.marked .cell-emoji[data-v-ac3626f1]{transform:scale(1.1)rotate(-6deg)}.stamp[data-v-ac3626f1]{background:radial-gradient(circle at center, var(--accent) 0%, var(--accent-2) 100%);opacity:0;z-index:0;border-radius:10px;position:absolute;inset:0;transform:scale(0)}.cell.marked .stamp[data-v-ac3626f1]{animation:.4s cubic-bezier(.34,1.56,.64,1) forwards stamp-in-ac3626f1}.cell.marked .cell-text[data-v-ac3626f1]{color:#fff;text-shadow:0 1px 2px #00000040}.cell.marked[data-v-ac3626f1]:after{content:"✕";z-index:2;color:#ffffffd9;opacity:0;justify-content:center;align-items:center;font-size:26px;font-weight:800;animation:.35s 80ms forwards check-in-ac3626f1;display:flex;position:absolute;inset:0}.cell.in-line[data-v-ac3626f1]{animation:1.1s ease-in-out line-glow-ac3626f1}@keyframes cell-in-ac3626f1{0%{opacity:0;transform:scale(.5)rotateX(40deg)}to{opacity:1;transform:scale(1)rotateX(0)}}@keyframes stamp-in-ac3626f1{0%{opacity:0;transform:scale(0)rotate(-25deg)}60%{opacity:1;transform:scale(1.15)rotate(6deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes check-in-ac3626f1{0%{opacity:0;transform:scale(.3)}70%{opacity:1;transform:scale(1.3)}to{opacity:1;transform:scale(1)}}@keyframes line-glow-ac3626f1{0%{box-shadow:0 0 #aa3bff99}50%{box-shadow:0 0 0 6px #aa3bff00}to{box-shadow:0 0 #aa3bff00}}.toast[data-v-ac3626f1]{letter-spacing:1px;color:#fff;background:var(--accent-gradient);z-index:50;pointer-events:none;border-radius:14px;padding:18px 36px;font-size:32px;font-weight:800;position:fixed;top:18%;left:50%;transform:translate(-50%);box-shadow:0 20px 40px #00000040}.toast.blackout[data-v-ac3626f1]{box-shadow:0 20px 40px #00000040,0 0 0 3px #fff6}.toast-enter-active[data-v-ac3626f1]{animation:.5s cubic-bezier(.34,1.56,.64,1) toast-in-ac3626f1}.toast-leave-active[data-v-ac3626f1]{animation:.4s forwards toast-out-ac3626f1}@keyframes toast-in-ac3626f1{0%{opacity:0;transform:translate(-50%,-10px)scale(.6)rotate(-4deg)}60%{opacity:1;transform:translate(-50%,4px)scale(1.08)rotate(2deg)}to{opacity:1;transform:translate(-50%)scale(1)rotate(0)}}@keyframes toast-out-ac3626f1{to{opacity:0;transform:translate(-50%,-16px)scale(.8)}}.modal-backdrop[data-v-ac3626f1]{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;box-sizing:border-box;background:#08060d8c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal[data-v-ac3626f1]{background:var(--bg);border:1px solid var(--border);width:100%;max-width:340px;box-shadow:var(--shadow);text-align:center;border-radius:16px;padding:24px}.modal-title[data-v-ac3626f1]{color:var(--text-h);margin-bottom:8px;font-size:19px;font-weight:700}.modal-body[data-v-ac3626f1]{color:var(--text);margin-bottom:20px;font-size:14px}.modal-actions[data-v-ac3626f1]{gap:10px;display:flex}.modal-btn[data-v-ac3626f1]{font:inherit;cursor:pointer;border-radius:8px;flex:1;padding:10px 14px;font-size:14px;font-weight:600;transition:transform .15s,box-shadow .2s}.modal-btn[data-v-ac3626f1]:active{transform:scale(.94)}.modal-btn.cancel[data-v-ac3626f1]{border:1px solid var(--border);color:var(--text-h);background:0 0}.modal-btn.cancel[data-v-ac3626f1]:hover{box-shadow:var(--shadow)}.modal-btn.confirm[data-v-ac3626f1]{background:var(--accent-gradient);color:#fff;border:1px solid #0000}.modal-btn.confirm[data-v-ac3626f1]:hover{box-shadow:var(--shadow)}.modal-enter-active .modal[data-v-ac3626f1]{animation:.35s cubic-bezier(.34,1.56,.64,1) modal-in-ac3626f1}.modal-leave-active .modal[data-v-ac3626f1]{animation:.2s reverse modal-in-ac3626f1}.modal-enter-active[data-v-ac3626f1],.modal-leave-active[data-v-ac3626f1]{transition:opacity .2s}.modal-enter-from[data-v-ac3626f1],.modal-leave-to[data-v-ac3626f1]{opacity:0}@keyframes modal-in-ac3626f1{0%{opacity:0;transform:scale(.75)translateY(10px)}60%{opacity:1;transform:scale(1.03)translateY(0)}to{opacity:1;transform:scale(1)translateY(0)}}
