:root{--bg:#070B16;--panel:#0B1330;--line:rgba(255,255,255,.1);--text:#EAF1FF;--muted:rgba(234,241,255,.68);--accent:#60A5FA;--good:#22C55E;--warn:#F59E0B;--shadow: 0 14px 40px rgba(0,0,0,.45);--r:18px}*{box-sizing:border-box}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial;color:var(--text);background:radial-gradient(900px 500px at 15% 0%,rgba(96,165,250,.22),transparent 55%),radial-gradient(800px 500px at 90% 10%,rgba(34,197,94,.14),transparent 55%),var(--bg)}a{color:inherit}.panel{background:linear-gradient(180deg,#ffffff0a,#ffffff05);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}.layout{width:100%;max-width:none;margin:0;padding:12px;display:flex;gap:12px;min-height:100svh}.left{width:320px;min-width:280px;display:flex;flex-direction:column}.right{flex:1;min-width:0;display:flex;flex-direction:column}.head{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;margin-bottom:12px}.head>div:first-child{text-align:center}.brandTitle{font-weight:1000;font-size:20px;letter-spacing:.2px;line-height:1.05;background:linear-gradient(90deg,#eaf1ff,#60a5faf2);-webkit-background-clip:text;background-clip:text;color:transparent}.brandTag{font-size:12px;color:var(--muted);margin-top:6px;line-height:1.35}.brandTitle{font-size:22px;font-weight:900;letter-spacing:.02em;margin-bottom:2px}.brandTag{font-size:11px;opacity:.7;line-height:1.3}.badge{font-size:11px;letter-spacing:1px;font-weight:1000;padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:#ffffff08;color:#eaf1ffeb}.pad{padding:12px}.btn{border:1px solid var(--line);background:#ffffff08;color:var(--text);border-radius:16px;padding:10px 12px;font-weight:900;cursor:pointer}.btn:hover{border-color:#60a5fa59}.btn.primary{background:#60a5fa38;border-color:#60a5fa8c}.btn.big{width:100%;padding:14px 12px;font-size:14px;text-transform:uppercase;letter-spacing:.5px}.btn:disabled{opacity:.55;cursor:not-allowed}.tiny{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.35}.codeRow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 8px}.code{font-size:22px;font-weight:1000;letter-spacing:3px}.link{font-size:12px;text-decoration:none;border:1px solid var(--line);padding:8px 10px;border-radius:999px;background:#ffffff05}.link:hover{border-color:#60a5fa59}.qrBox{display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px 0 10px;max-width:220px;margin:10px auto}.qrFrame{width:230px;height:230px;border-radius:18px;border:1px solid rgba(255,255,255,.12);background:#0000002e;display:flex;align-items:center;justify-content:center}.banner{border-top:1px solid var(--line);padding:10px 12px;font-size:12px;color:var(--muted);display:flex;justify-content:center;background:#ffffff05;margin-top:auto}.topbar{padding:12px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:#ffffff05}.stats{font-size:12px;color:var(--muted);font-weight:900}.lastWrap{display:flex;align-items:center;gap:10px}.lastLabel{font-size:12px;color:var(--muted)}.lastBox{position:relative;width:130px;height:74px;border-radius:18px;border:1px solid rgba(255,255,255,.12);background:#00000029;display:flex;align-items:center;justify-content:center;overflow:hidden}.lastNum{font-size:38px;font-weight:1000;position:relative;z-index:2}.pop{animation:pop .42s cubic-bezier(.2,.9,.2,1)}@keyframes pop{0%{transform:scale(.9)}55%{transform:scale(1.14)}to{transform:scale(1)}}.burst{position:absolute;width:14px;height:14px;border-radius:999px;border:2px solid rgba(245,158,11,.75);left:50%;top:50%;transform:translate(-50%,-50%) scale(.2);opacity:0;pointer-events:none;z-index:1}.burst.play{animation:burst .52s ease-out forwards}@keyframes burst{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}15%{opacity:.9}to{opacity:0;transform:translate(-50%,-50%) scale(5.2)}}.boardWrap{padding:10px;display:flex;flex-direction:column;gap:10px;flex:1;min-height:0}.board{position:relative;background:#00000024;border:1px solid var(--line);border-radius:var(--r);padding:10px;overflow:auto}.board:after{content:"";position:absolute;inset:0;background:radial-gradient(180px 180px at 10% 15%,rgba(96,165,250,.1),transparent 60%),radial-gradient(200px 200px at 80% 25%,rgba(34,197,94,.08),transparent 62%),radial-gradient(240px 240px at 40% 90%,rgba(245,158,11,.06),transparent 65%);pointer-events:none;opacity:.9}.bingoh{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:6px;background:#090d1edb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:8px 6px;border-radius:14px;border:1px solid rgba(255,255,255,.06)}.bingohCell{height:56px;border-radius:16px;border:1px solid rgba(255,255,255,.08);background:#ffffff08;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:1000;letter-spacing:4px}.rows{position:relative;z-index:1;display:grid;gap:6px;min-width:820px}.row{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.nCell{position:relative;height:64px;border-radius:16px;border:1px solid var(--line);background:#ffffff05;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:1000;overflow:hidden}.nCell:before{content:"";position:absolute;inset:-30%;background:linear-gradient(90deg,transparent 20%,rgba(255,255,255,.14) 50%,transparent 80%);transform:translate(-120%) rotate(12deg);opacity:0;pointer-events:none}.nCell.sweep:before{opacity:1;animation:sweep .52s ease-out forwards}@keyframes sweep{0%{transform:translate(-120%) rotate(12deg)}to{transform:translate(120%) rotate(12deg)}}.nCell.called{background:#22c55e2e;border-color:#22c55e8c}.nCell.last{background:#f59e0b38;border-color:#f59e0ba6;transform:translateY(-1px)}.pulse{animation:pulse .52s cubic-bezier(.2,.9,.2,1)}@keyframes pulse{0%{transform:scale(.96)}45%{transform:scale(1.06)}to{transform:scale(1)}}.history{background:#00000024;border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;overflow:hidden}.historyTitle{font-size:12px;color:var(--muted);font-weight:1000;margin-bottom:10px}.pills{display:flex;flex-wrap:nowrap;gap:10px;overflow-x:auto;overflow-y:hidden;padding-bottom:6px;-webkit-overflow-scrolling:touch}.pill{padding:12px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:#ffffff08;font-weight:1000;font-size:16px;flex:0 0 auto}.pill.last{background:#f59e0b38;border-color:#f59e0ba6}.footer{border-top:1px solid var(--line);padding:10px 12px;font-size:12px;color:var(--muted);display:flex;justify-content:center;background:#ffffff05}.joinWrap{min-height:100svh;display:flex;align-items:center;justify-content:center;padding:16px}.joinCard{width:min(560px,100%);background:linear-gradient(180deg,#ffffff0a,#ffffff05);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:16px}.joinTitle{font-size:18px;font-weight:1000}.joinTag{margin-top:6px;color:var(--muted);font-size:12px;line-height:1.35}.joinSub{margin-top:10px;color:var(--muted);font-size:12px}.input{width:100%;margin:14px 0 12px;padding:14px 12px;border-radius:16px;border:1px solid var(--line);background:#0000002e;color:var(--text);font-size:18px;font-weight:900;letter-spacing:3px;outline:none}.playerWrap{max-width:980px;margin:0 auto;padding:14px;min-height:100svh}.playerTop{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.playerTitle{font-size:18px;font-weight:1000}.playerBoard{background:#00000024;border:1px solid var(--line);border-radius:var(--r);padding:10px;box-shadow:var(--shadow)}.pRows{display:grid;gap:6px}.pRow{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.pCell2{height:64px;border-radius:16px;border:1px solid var(--line);background:#ffffff05;color:var(--text);font-size:20px;font-weight:1000;cursor:pointer}.pCell2.marked{background:#22c55e2e;border-color:#22c55e8c}.pCell2.free{background:#60a5fa2e;border-color:#60a5fa73}.playerNote{margin-top:12px;color:var(--muted);font-size:12px}@media(max-width:980px){.layout{flex-direction:column}.left{width:auto}.rows{min-width:0}}:root{--b: rgba(96,165,250,.85);--i: rgba(34,197,94,.8);--n: rgba(245,158,11,.9);--g: rgba(167,139,250,.85);--o: rgba(244,63,94,.8)}.sectionTitle{margin-top:10px;font-size:12px;font-weight:1000;color:var(--muted)}.patternGrid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:8px}.pCell{height:40px;border-radius:14px;border:1px solid var(--line);background:#ffffff05;color:var(--text);font-weight:1000;cursor:pointer}.pCell.on{background:#22c55e2e;border-color:#22c55e8c}.pCell.free{background:#60a5fa2e;border-color:#60a5fa73;cursor:default}.miniRow{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.btn.small{padding:8px 10px;border-radius:999px;font-size:12px}.board.wide{padding:12px}.wideRow{display:flex;align-items:center;gap:10px;margin-bottom:10px}.sideLetter{width:44px;height:64px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-weight:1000;letter-spacing:2px;border:1px solid rgba(255,255,255,.1);background:#ffffff08}.wideNums{display:grid;grid-template-columns:repeat(15,minmax(34px,1fr));gap:6px;flex:1;min-width:900px}.wideCell{height:54px;font-size:18px;border-radius:14px}.wideRow.B .sideLetter{border-color:#60a5fa59;box-shadow:0 0 0 1px #60a5fa1f inset}.wideRow.I .sideLetter{border-color:#22c55e59;box-shadow:0 0 0 1px #22c55e1f inset}.wideRow.N .sideLetter{border-color:#f59e0b59;box-shadow:0 0 0 1px #f59e0b1f inset}.wideRow.G .sideLetter{border-color:#a78bfa59;box-shadow:0 0 0 1px #a78bfa1f inset}.wideRow.O .sideLetter{border-color:#f43f5e4d;box-shadow:0 0 0 1px #f43f5e1a inset}.notice{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border-radius:16px;border:1px solid rgba(96,165,250,.35);background:#60a5fa1a;margin-bottom:12px}.nCell.called{background:#22c55e33;border-color:#22c55e99}.nCell.last{background:#f59e0b3d;border-color:#f59e0bb3}@media(max-width:980px){.wideNums{min-width:0;grid-template-columns:repeat(15,minmax(26px,1fr))}.wideCell{height:44px;font-size:14px;border-radius:12px}.sideLetter{height:44px;width:38px;border-radius:14px}}.patternCard{margin-top:10px;padding:12px;border-radius:18px;border:1px solid rgba(96,165,250,.28);background:radial-gradient(220px 160px at 20% 0%,rgba(96,165,250,.14),transparent 55%),radial-gradient(260px 180px at 90% 30%,rgba(34,197,94,.1),transparent 55%),#0000002e}.patternCard .sectionTitle{margin-top:0}.board.rolling{box-shadow:0 0 0 1px #ffffff14 inset,0 18px 44px #00000073}#bigBoard{position:relative;overflow:hidden}#bigBoard.scan:before{content:"";position:absolute;top:0;left:-35%;width:35%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.08) 20%,rgba(96,165,250,.55) 50%,rgba(255,255,255,.08) 80%,transparent 100%);transform:skew(-12deg);animation:sweepAcross 1.4s ease-in-out forwards;z-index:5;pointer-events:none;filter:blur(2px)}@keyframes sweepAcross{0%{left:-35%;opacity:0}10%{opacity:1}90%{opacity:1}to{left:110%;opacity:0}}.board.rolling{box-shadow:0 0 0 1px #ffffff1f inset,0 0 28px #60a5fa40,0 24px 60px #0009;transition:box-shadow .3s ease}.board.rolling .wideCell{animation:cellBlink .6s ease-in-out infinite alternate}@keyframes cellBlink{0%{filter:brightness(1)}to{filter:brightness(1.25)}}.sideLetter.blink{animation:blinkGlow .9s ease-in-out}@keyframes blinkGlow{0%,to{transform:scale(1);filter:brightness(1)}25%{transform:scale(1.06);filter:brightness(1.45)}50%{transform:scale(1);filter:brightness(1.2)}}.lastNum.ghost{opacity:.7;animation:ghostPulse .7s ease-in-out infinite}@keyframes ghostPulse{0%,to{transform:scale(1);opacity:.65}50%{transform:scale(1.08);opacity:.9}}.pill{position:relative;width:66px;height:66px;padding:0;border-radius:999px;display:flex;align-items:center;justify-content:center;font-weight:1000;font-size:22px;border:1px solid rgba(255,255,255,.12);background:radial-gradient(circle at 30% 28%,rgba(255,255,255,.34),transparent 38%),radial-gradient(circle at 30% 28%,rgba(255,255,255,.18),transparent 55%),radial-gradient(circle at 50% 70%,rgba(0,0,0,.22),transparent 55%),repeating-radial-gradient(circle at 50% 50%,rgba(255,255,255,.06) 0 1px,transparent 1px 7px),#ffffff0d;box-shadow:0 14px 28px #00000073,inset 0 1px #ffffff2e}.pill.last{border-color:#f59e0bbf;background:radial-gradient(circle at 28% 24%,rgba(255,255,255,.4),transparent 38%),radial-gradient(circle at 28% 24%,rgba(245,158,11,.22),transparent 55%),radial-gradient(circle at 50% 75%,rgba(0,0,0,.22),transparent 60%),repeating-radial-gradient(circle at 50% 50%,rgba(255,255,255,.07) 0 1px,transparent 1px 7px),#f59e0b14}.pill{animation:ballIn .26s ease-out}@keyframes ballIn{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}.countdownDots{display:inline-flex;align-items:center;gap:8px}.countdownDots span{width:10px;height:10px;border-radius:999px;background:#60a5fad9;box-shadow:0 0 16px #60a5fa59;opacity:.25;transform:translateY(0);animation:dotPulse .9s ease-in-out infinite}.countdownDots span:nth-child(2){animation-delay:.15s}.countdownDots span:nth-child(3){animation-delay:.3s}@keyframes dotPulse{0%{opacity:.25;transform:translateY(0) scale(.9)}40%{opacity:1;transform:translateY(-2px) scale(1.08)}to{opacity:.25;transform:translateY(0) scale(.9)}}.lastBottom{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:18px 14px 22px;margin-bottom:14px;border-radius:22px;border:1px solid rgba(255,255,255,.12);background:radial-gradient(520px 220px at 50% 0%,rgba(96,165,250,.1),transparent 60%),linear-gradient(180deg,#ffffff0d,#ffffff05),#0000003d;box-shadow:0 22px 70px #0000008c,inset 0 1px #ffffff1f,0 0 0 1px #60a5fa14;overflow:hidden}.lastBottom.sweep:after{content:"";position:absolute;top:-40%;left:-60%;width:45%;height:180%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),rgba(96,165,250,.22),rgba(255,255,255,.12),transparent);transform:rotate(18deg);filter:blur(2px);animation:lastPanelSweep .7s ease-out forwards;pointer-events:none;z-index:3}@keyframes lastPanelSweep{0%{left:-60%;opacity:0}15%{opacity:1}to{left:130%;opacity:0}}.lastBottomLabel{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.lastBottomNum{min-height:64px;font-size:56px;font-weight:1000;line-height:1;color:#fff;text-shadow:0 10px 30px rgba(0,0,0,.6),0 0 22px rgba(245,158,11,.35)}.lastBottomNum.ghost{opacity:.8}.lastBottom{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:18px 14px 22px;margin-bottom:14px;border-radius:22px;border:1px solid rgba(255,255,255,.12);background:radial-gradient(420px 180px at 50% 0%,rgba(245,158,11,.18),rgba(96,165,250,.1),transparent 65%),linear-gradient(180deg,#ffffff0f,#ffffff05),#00000040;box-shadow:0 22px 70px #0000008c,inset 0 1px #ffffff24;overflow:hidden}.lastBottomLabel{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:#ffffff9e}.lastBottomNum{position:relative;min-height:70px;font-size:64px;font-weight:1000;line-height:1;color:#fff;padding:10px 18px;border-radius:18px;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.22),transparent 45%),#ffffff0d;border:1px solid rgba(255,255,255,.14);box-shadow:0 18px 40px #0009,inset 0 1px #ffffff2e;text-shadow:0 16px 50px rgba(0,0,0,.75),0 0 26px rgba(245,158,11,.3)}.lastBottomNum.reveal:after{content:"";position:absolute;top:-40%;left:-60%;width:50%;height:180%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);transform:rotate(20deg);animation:shine .7s ease-out forwards;pointer-events:none}@keyframes shine{0%{left:-60%;opacity:0}15%{opacity:1}to{left:130%;opacity:0}}.lastBottomNum.ghost{opacity:.85}.lastCombo{display:flex;align-items:center;gap:12px}.lastBadge{width:54px;height:54px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-weight:1000;font-size:22px;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;box-shadow:inset 0 1px #ffffff29}.lastBadge.B{border-color:#60a5fa8c}.lastBadge.I{border-color:#22c55e8c}.lastBadge.N{border-color:#f59e0ba6}.lastBadge.G{border-color:#a78bfa99}.lastBadge.O{border-color:#f43f5e8c}.idleDots{display:inline-flex;align-items:center;gap:10px}.idleDots span{width:8px;height:8px;border-radius:999px;background:#ffffff73;opacity:.25;animation:idlePulse 1.6s ease-in-out infinite}.idleDots span:nth-child(2){animation-delay:.2s}.idleDots span:nth-child(3){animation-delay:.4s}@keyframes idlePulse{0%{opacity:.2}40%{opacity:.55}to{opacity:.2}}.idleInline{display:flex;align-items:center;gap:10px;opacity:.75}.idleText{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#ffffffa6}.left{height:100svh;display:flex;flex-direction:column}.leftScroll{flex:1;overflow:auto;padding-right:6px}.leftFooter{position:sticky;bottom:0;padding:12px 12px 14px;border-top:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#0000,#00000073 30%,#000000b3);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;flex-direction:column;gap:10px}.modalOverlay{position:fixed;inset:0;background:#000000a6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:9999}.modalCard{width:min(560px,92vw);border-radius:22px;border:1px solid rgba(255,255,255,.14);background:#0a0c10eb;box-shadow:0 30px 90px #000000b3;padding:16px}.modalTop{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.modalTitle{font-size:18px;font-weight:900}.modalQR{display:flex;justify-content:center;padding:16px;border-radius:18px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1)}.qrWrap{cursor:pointer;border-radius:18px;padding:10px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a}.qrWrap:hover{border-color:#60a5fa59}.qrFrame{position:relative}.qrOverlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0000008c;opacity:0;transition:opacity .2s ease;font-size:12px;letter-spacing:.12em;text-transform:uppercase}.qrFrame:hover .qrOverlay{opacity:1}.panel.left .card.pad{padding:14px}.panel.left .card.pad{padding:12px}.qrBox{margin:10px auto}.qrBox .tiny{margin-top:6px}.patternCard{margin-top:12px}.patternGrid{margin-top:8px}.appHeader{text-align:center;margin-bottom:18px}.appTitle{font-size:34px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#e5edff}.appTag{margin-top:6px;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:#ffffff8c}.appHeader:after{content:"";display:block;width:140px;height:1px;margin:14px auto 0;background:linear-gradient(90deg,transparent,rgba(147,197,253,.55),transparent)}*::-webkit-scrollbar{width:8px}*::-webkit-scrollbar-track{background:#ffffff0a;border-radius:10px}*::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#93c5fd73,#60a5fa59);border-radius:10px}*::-webkit-scrollbar-thumb:hover{background:#93c5fda6}*{scrollbar-width:thin;scrollbar-color:rgba(147,197,253,.45) rgba(255,255,255,.04)}.appTitle{animation:titleFade .7s ease-out both}@keyframes titleFade{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.history .historyRow{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:10px!important;overflow-x:auto!important;overflow-y:hidden!important;padding-bottom:6px!important;-webkit-overflow-scrolling:touch}.history .historyRow .pill{flex:0 0 auto!important}.leftIntro{margin-top:14px;display:flex;flex-direction:column;gap:12px}.introCard{padding:12px;border-radius:18px;border:1px solid rgba(255,255,255,.1);background:radial-gradient(220px 160px at 15% 0%,rgba(96,165,250,.12),transparent 55%),#0000002e}.introTitle{font-size:12px;font-weight:1000;letter-spacing:.18em;text-transform:uppercase;color:#ffffffb3;margin-bottom:10px}.introSteps{margin:0;padding-left:18px;color:#eaf1ffd1;font-size:13px;line-height:1.55}.introSteps li{margin:6px 0}.introList{list-style:none;padding:0;margin:0;color:#eaf1ffd1;font-size:13px;line-height:1.55}.introList li{margin:6px 0}
