@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url("./fonts/poppins-latin-400-normal-SFWTNBQB.woff2") format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url("./fonts/poppins-latin-600-normal-3BUSBBSI.woff2") format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url("./fonts/poppins-latin-700-normal-TKEB4KWA.woff2") format("woff2")}:root{--night-0: #070b2e;--night-1: #0f1858;--night-2: #1d2a8c;--night-3: #3442c2;--lavender: #c9cdf5;--gold: #ffd800;--gold-dark: #e0bd00;--red: #e11f22;--ring: #f00;--ink: #2510a5;--text: #1b1d33;--muted: #555a78;--paper: #f7f5f0;--card: #fff;--line: #dcdae4;--focus: #ffd800;--win: #2f7463;--no: #cc0000;--b: #3a41ab;--i: #e11f22;--n: #ffd800;--g: #2f7463;--o: #dcdcdc;--radius: 14px;--font: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);font-size:1rem;line-height:1.6;color:var(--text);background:var(--paper)}img,svg{display:block;max-width:100%}a{color:var(--ink)}h1,h2,h3,h4{line-height:1.2;margin:0 0 .5em}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.skip-link{position:absolute;left:8px;top:-60px;z-index:50;padding:8px 14px;border-radius:8px;background:var(--gold);color:var(--ink);font-weight:600}.skip-link:focus{top:8px}[hidden]{display:none!important}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;min-height:44px;padding:.55em 1.1em;border:2px solid var(--line);border-radius:999px;background:var(--card);color:var(--text);font:600 1rem/1.2 var(--font);text-decoration:none;cursor:pointer;touch-action:manipulation}.btn:hover{border-color:var(--ink)}.btn:disabled{opacity:.45;cursor:default}.btn-sm{min-height:36px;padding:.35em .9em;font-size:.9rem}.btn-primary{background:var(--gold);border-color:var(--gold);color:var(--ink)}.btn-primary:hover{background:var(--gold-dark);border-color:var(--gold-dark)}.btn-danger{background:var(--no);border-color:var(--no);color:#fff}.btn-quiet{border-color:transparent;background:transparent}.btn-icon{width:44px;padding:0}.btn-icon svg{width:22px;height:22px}.input{min-height:44px;padding:.5em .75em;border:2px solid var(--line);border-radius:10px;background:#fff;color:var(--text);font:400 1rem var(--font)}.input:focus{border-color:var(--ink)}.input[aria-invalid=true]{border-color:var(--no)}.input-sm{min-height:38px;padding:.3em .6em}.hint{display:block;color:var(--muted);font-size:.9rem}.error-text{color:var(--no);font-weight:600}.field{margin:0 0 1.25rem;border:0;padding:0}.field label,.field legend{display:block;margin-bottom:.35rem;font-weight:600}.segmented{display:inline-flex;padding:3px;border-radius:999px;background:#2510a514}.segmented label{position:relative}.segmented input{position:absolute;opacity:0;inset:0}.segmented span{display:block;min-height:38px;padding:.45em 1em;border-radius:999px;font-weight:600;cursor:pointer}.segmented input:checked+span{background:var(--ink);color:#fff}.segmented input:focus-visible+span{outline:3px solid var(--focus);outline-offset:1px}.switch-row{display:flex;gap:.8rem;align-items:flex-start;margin:0 0 1.1rem;cursor:pointer}.switch-row input{width:22px;height:22px;margin:.15rem 0 0;accent-color:var(--ink);flex:none}.pro-tag{display:inline-block;padding:.05em .5em;border-radius:999px;background:var(--ink);color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.04em;vertical-align:middle}.site-rail{background:var(--night-0);color:#fff}.site-rail-inner{display:flex;align-items:center;gap:1rem;max-width:1400px;margin:0 auto;padding:.6rem 16px}.wordmark{display:inline-flex;align-items:center;gap:.55rem;color:#fff;font-weight:700;font-size:1.1rem;text-decoration:none;white-space:nowrap}.wordmark svg{width:32px;height:32px}.wm-accent{color:var(--gold)}.site-nav{flex:1}.site-nav ul{display:flex;flex-wrap:wrap;gap:.25rem 1rem;margin:0;padding:0;list-style:none}.site-nav a{color:var(--lavender);text-decoration:none;font-weight:600}.site-nav a[aria-current=page],.site-nav a:hover{color:#fff}.site-rail-cta{margin-left:auto}.site-footer{background:var(--night-0);color:var(--lavender);font-size:.9rem}.site-footer-inner{max-width:1000px;margin:0 auto;padding:2rem 16px 2.5rem}.site-footer ul{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin:0 0 1rem;padding:0;list-style:none}.site-footer a{color:#fff}.offline-status .btn{margin-left:.5rem}.content{padding:2.5rem 16px 3rem}.content-inner{max-width:760px;margin:0 auto}.content-inner.wide{max-width:1100px}.content h1{font-size:clamp(1.8rem,4vw,2.4rem);color:var(--ink)}.content h2{margin-top:2rem;font-size:1.45rem;color:var(--ink)}.content p,.content li{max-width:68ch}.steps li,.ticks li{margin-bottom:.5rem}.faq{margin-top:2.5rem}.faq details{border-top:1px solid var(--line);padding:.25rem 0}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{padding:.7rem 0;font-weight:600;cursor:pointer}.faq details p{margin-top:0}.caller-wrap{background:radial-gradient(ellipse at 50% 30%,var(--night-3) 0%,var(--night-2) 30%,var(--night-1) 62%,var(--night-0) 100%);color:#fff;padding:.75rem 12px 1.25rem}.caller-title{max-width:1400px;margin:0 auto .6rem;font-size:1.05rem;font-weight:700;color:#fff}.caller-title span{margin-left:.5rem;color:var(--lavender);font-weight:400;font-size:.9rem}.caller-mount{max-width:1400px;margin:0 auto;min-height:520px}.caller-loading{padding:3rem 1rem;text-align:center;color:var(--lavender)}.caller{display:grid;gap:14px;grid-template-columns:1fr;grid-template-areas:"stage" "controls" "board"}.caller.is-full{height:100vh;height:100dvh;padding:2vmin;overflow:hidden;background:radial-gradient(ellipse at 50% 30%,var(--night-3) 0%,var(--night-2) 30%,var(--night-1) 62%,var(--night-0) 100%)}.caller-stage{grid-area:stage;display:flex;align-items:center;gap:16px}.caller-board{grid-area:board;min-width:0;container-type:inline-size}.caller-controls{grid-area:controls;display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}@media(min-width:900px){.caller{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"board board board" "ball count pattern" "ball recent pattern" "controls controls controls";gap:12px 32px}.caller .caller-stage,.caller .caller-facts{display:contents}.caller .caller-ball{grid-area:ball;flex-direction:row;align-self:center;gap:1.25rem}.caller .caller-nickname{max-width:13ch;min-height:0;text-align:left;font-size:clamp(1.1rem,1.9vw,2rem)}.caller .caller-count{grid-area:count;align-self:end}.caller .caller-recent{grid-area:recent;align-self:start}.caller .caller-pattern{grid-area:pattern;align-self:center}.caller{grid-template-rows:minmax(0,1fr) auto auto auto;height:max(520px,calc(100vh - 118px));height:max(520px,calc(100dvh - 118px))}.caller.is-full{height:100vh;height:100dvh;gap:1.2vmin 3vw}.caller .caller-board{container-type:size;align-self:stretch;min-height:0}.caller .board{width:min(100%,290cqh);margin:0 auto;gap:1.6cqh}.is-full .caller-count{font-size:3.2vmin}}.caller-ball{display:flex;flex-direction:column;align-items:center;gap:.5rem;flex:none}.caller-nickname{margin:0;max-width:18ch;min-height:2.6em;color:var(--gold);font-weight:600;font-size:clamp(.95rem,1.6vw,1.5rem);line-height:1.3;text-align:center}.caller-facts{display:flex;flex-direction:column;gap:.75rem;min-width:0}.caller-count{margin:0;color:var(--lavender);font-size:clamp(1rem,1.5vw,1.4rem)}.caller-count strong{color:#fff;font-size:1.15em}.caller-count .dot{margin:0 .15em}.caller-label{display:block;color:var(--lavender);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.caller-recent ol{display:flex;flex-wrap:wrap;gap:6px;margin:.3rem 0 0;padding:0;list-style:none}.caller-pattern{display:inline-flex;align-items:center;gap:.75rem;padding:.5rem .9rem .5rem .5rem;border:2px solid rgba(201,205,245,.35);border-radius:var(--radius);background:#070b2e73;color:#fff;font:inherit;text-align:left;cursor:pointer}.caller-pattern:hover{border-color:var(--gold)}@media(min-width:900px){.caller-pattern{flex-direction:column;gap:.5rem;padding:.75rem 1rem;text-align:center}.caller-pattern .pattern-pic{width:clamp(90px,min(10vw,15vh),190px);gap:3px;padding:6px;border-radius:10px}.caller-pattern strong{display:block;font-size:clamp(1.05rem,1.4vw,1.6rem)}.is-full .caller-pattern .pattern-pic{width:min(10vw,15vh)}.is-full .caller-pattern strong{font-size:2.6vmin}.is-full .caller-label{font-size:1.5vmin}}.ball{--s: 56px;--c: var(--b);display:grid;place-items:center;width:var(--s);height:var(--s);border-radius:50%;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.55) 0 8%,transparent 30%),radial-gradient(circle at 50% 50%,var(--c) 55%,color-mix(in srgb,var(--c) 55%,#000) 100%);box-shadow:0 calc(var(--s) * .05) calc(var(--s) * .12) #00000073;flex:none}.ball-face{display:flex;flex-direction:column;align-items:center;justify-content:center;width:70%;height:70%;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 calc(var(--s) * .035) var(--ring);color:var(--ink);font-weight:700;line-height:1}.ball-letter{font-size:calc(var(--s) * .15)}.ball-number{font-size:calc(var(--s) * .3);letter-spacing:-.03em}.ball-sm{--s: 46px}.ball-md{--s: 90px}.ball-xl{--s: clamp(130px, 34vw, 190px)}@media(min-width:900px){.ball-xl{--s: clamp(120px, min(13vw, 22vh), 230px)}.is-full .ball-xl{--s: min(16vw, 26vh)}.is-full .caller-nickname{font-size:3.4vmin}.is-full .ball-sm{--s: min(4.6vw, 8vh)}}.ball-empty{--c: #4a5196}.ball-empty .ball-letter{font-size:calc(var(--s) * .11);letter-spacing:.05em}.ball-B{--c: var(--b)}.ball-I{--c: var(--i)}.ball-N{--c: var(--n)}.ball-G{--c: var(--g)}.ball-O{--c: var(--o)}.board{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;container-type:inline-size}.board-row{display:grid;grid-template-rows:repeat(16,auto);gap:4px}.board-letter,.board-cell{display:grid;place-items:center;min-height:32px;border-radius:8px;font-weight:700;font-size:1rem;line-height:1}.board-letter{background:var(--c, var(--b));color:#fff;font-size:1.15rem;min-height:38px}.board-letter.ball-N,.board-letter.ball-O{color:var(--ink)}.board-cell{border:0;padding:0;background:#ffffff12;color:#c9cdf58c;font-family:var(--font)}button.board-cell{cursor:pointer}button.board-cell:hover{background:#ffffff2e;color:#fff}.board-cell.is-called{background:#fff;color:var(--ink)}.board-cell.is-last{background:var(--gold);color:var(--ink);animation:last 1.1s ease-in-out 3}.board-cell.is-out{opacity:.3}@keyframes last{50%{box-shadow:0 0 0 4px #ffd8008c;transform:scale(1.08)}}@media(min-width:900px){.board{grid-template-columns:none;gap:1cqi}.board-row{grid-template-rows:none;grid-template-columns:minmax(0,1.15fr) repeat(15,minmax(0,1fr));gap:.6cqi}.board-letter,.board-cell{min-height:0;aspect-ratio:1;border-radius:.9cqi;font-size:3.5cqi}.board-letter{border-radius:50%;font-size:3.8cqi}.caller-board{align-self:center}}@media(prefers-reduced-motion:reduce){.board-cell.is-last{animation:none}}.controls-main,.controls-mode,.controls-more{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.controls-more{margin-left:auto}.caller .btn-call{min-height:56px;min-width:13rem;padding:.6em 1.6em;border-color:var(--gold);background:var(--gold);color:var(--ink);font-size:1.2rem;box-shadow:0 4px 0 var(--gold-dark)}.caller .btn-call:hover{background:#ffe24a}.caller .btn-call:active{transform:translateY(2px);box-shadow:0 2px 0 var(--gold-dark)}.caller .btn-call.is-running{background:transparent;color:var(--gold);box-shadow:none}.caller .btn-ghost{border-color:#c9cdf566;background:transparent;color:#fff}.caller .btn-ghost:hover:not(:disabled){border-color:var(--gold)}.caller .segmented{background:#070b2e8c}.caller .segmented span{color:var(--lavender)}.caller .segmented input:checked+span{background:var(--lavender);color:var(--ink)}.every{display:inline-flex;align-items:center;gap:.4rem;color:var(--lavender);font-weight:600}.caller-status{flex-basis:100%;order:3;margin:0;color:var(--lavender);font-size:.95rem}.caller-status .btn{margin-left:.5rem}.free-left{color:var(--gold)}@media(min-width:900px){.caller-status{flex-basis:auto;order:0}}.is-full .caller-controls{gap:1vmin 1.5vmin}.pattern-pic{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding:4px;border-radius:6px;background:#fff;flex:none;align-self:flex-start}.pattern-pic span{aspect-ratio:1;border-radius:2px;background:#e6e4ef}.pattern-pic span.on{background:#ff2d55}.pattern-pic span.free{background:#c9c6d8}.pattern-pic-sm{width:56px}.pattern-pic-md{width:64px}dialog{width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;border:0;border-radius:18px;background:var(--card);color:var(--text);box-shadow:0 24px 60px #070b2e80}dialog.wide{width:min(900px,calc(100vw - 24px))}dialog::backdrop{background:#070b2eb3}.dialog-shell{display:flex;flex-direction:column;max-height:calc(100dvh - 24px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1rem .5rem 1.4rem}.dialog-head h2{margin:0;font-size:1.3rem;color:var(--ink)}.dialog-body{padding:.25rem 1.4rem 1.2rem;overflow:auto}.dialog-foot{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.6rem;padding:1rem 1.4rem;border-top:1px solid var(--line)}.pattern-group{margin-top:1.2rem;font-size:1rem}.pattern-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px;margin:0;padding:0;list-style:none}.pattern-tile{position:relative;display:flex;flex-direction:column;align-items:center;gap:.4rem;width:100%;height:100%;padding:.6rem .4rem;border:2px solid var(--line);border-radius:12px;background:#fff;color:var(--text);font:600 .85rem/1.25 var(--font);text-align:center;cursor:pointer}.pattern-tile .pattern-pic{width:64px;background:#f1eff7}.pattern-tile:hover{border-color:var(--ink)}.pattern-tile.is-current{border-color:var(--ink);background:#eeebff}.pattern-tile.is-locked .pattern-pic{opacity:.6}.pattern-tile .pro-tag{position:absolute;top:6px;right:6px}.check-row{display:flex;gap:.5rem}.check-row .input{flex:1;min-width:0;font-size:1.2rem;font-weight:600;letter-spacing:.05em}.check-form label{display:block;margin-bottom:.35rem;font-weight:600}.check-verdict{margin:1rem 0 .75rem}.check-verdict.is-win strong{color:var(--win);font-size:1.3rem}.check-verdict.is-no strong{color:var(--no)}.mini-card{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;max-width:320px}.mini-card-head{display:grid;place-items:center;min-height:36px;border-radius:8px;background:var(--c);color:#fff;font-weight:700}.mini-card-head.ball-N,.mini-card-head.ball-O{color:var(--ink)}.mini-card-cell{display:grid;place-items:center;aspect-ratio:1;border:2px solid var(--line);border-radius:8px;font-weight:700;font-size:1.1rem}.mini-card-cell:nth-child(18){font-size:.7rem}.mini-card-cell.is-dabbed{background:#e6e2ff;border-color:#b9b0f5}.mini-card-cell.is-winning{background:var(--gold);border-color:var(--gold-dark);color:var(--ink)}.mini-card-cell.is-missing{border-color:#ff8c00;box-shadow:inset 0 0 0 2px #ff8c00}.stats-head{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem}.stats-head h1{margin:0}.stats-periods{display:flex;gap:.5rem}.stats-periods a{padding:.25rem .7rem;border-radius:999px;text-decoration:none;font-weight:600}.stats-periods a[aria-current=page]{background:var(--ink);color:#fff}.stats-signout{margin-left:auto}.stats-code{overflow:auto;padding:.75rem;border-radius:8px;background:#fff;border:1px solid var(--line)}.stats-login{max-width:380px}.stats-figures{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin:1.5rem 0}.stats-figures div{padding:.9rem 1rem;border-radius:12px;background:#fff;border:1px solid var(--line)}.stats-figures dt{color:var(--muted);font-size:.85rem}.stats-figures dd{margin:0;font-size:1.6rem;font-weight:700;color:var(--ink)}.stats-figures small{display:block;font-size:.8rem;font-weight:400;color:var(--muted)}.stats-chart{margin:0}.stats-bars{display:grid;grid-template-columns:repeat(var(--n),1fr);align-items:end;gap:2px;height:180px;padding:8px;border-radius:12px;background:#fff;border:1px solid var(--line)}.stats-bar{position:relative;height:100%}.stats-bar span{position:absolute;bottom:0;width:50%;border-radius:2px 2px 0 0}.stats-bar .is-started,.key.is-started:before{background:var(--night-3)}.stats-bar .is-finished,.key.is-finished:before{background:var(--gold-dark)}.stats-bar .is-finished{left:50%}.key:before{content:"";display:inline-block;width:10px;height:10px;margin-right:.3rem;border-radius:2px}.stats-axis{margin-left:1rem;color:var(--muted);font-size:.85rem}.stats-breakdowns{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.stats-block{padding:1rem;border-radius:12px;background:#fff;border:1px solid var(--line)}.stats-block h3{display:flex;justify-content:space-between;font-size:1rem}.stats-block h4{margin:.75rem 0 .35rem;color:var(--muted);font-size:.85rem}.stats-split{margin:0;padding:0;list-style:none}.stats-split li{display:grid;grid-template-columns:9rem 1fr 5rem;align-items:center;gap:.5rem;font-size:.85rem}.stats-split .track{height:8px;border-radius:4px;background:#ece9f6}.stats-split .track span{display:block;height:100%;border-radius:4px;background:var(--night-3)}.stats-split .num{text-align:right}.stats-note,.stats-period-note,.stats-empty{color:var(--muted);font-size:.9rem}@media(max-width:600px){.site-rail-inner{flex-wrap:wrap}.caller .btn-call{flex:1;min-width:0}.controls-main{width:100%}.controls-more{margin-left:0}.ball-md{--s: 70px}.ball-sm{--s: 38px}}.tool-wrap{padding:2rem 16px 2.5rem;background:#fff;border-bottom:1px solid var(--line)}.tool-wrap.tool-dark{background:radial-gradient(ellipse at 50% 30%,var(--night-3) 0%,var(--night-2) 30%,var(--night-1) 62%,var(--night-0) 100%);color:#fff;border-bottom:0}.tool-head,.tool-mount{max-width:1100px;margin:0 auto}.tool-head h1{margin-bottom:.25rem;font-size:clamp(1.8rem,4vw,2.4rem);color:var(--ink)}.tool-dark .tool-head h1{color:#fff}.tool-head p{margin:0 0 1.5rem;max-width:68ch;color:var(--muted)}.tool-dark .tool-head p{color:var(--lavender)}.tool-loading{padding:2rem 0;color:var(--muted)}.tool-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin:.75rem 0}.btn-lg{min-height:52px;padding:.6em 1.5em;font-size:1.1rem}.hint.warn{color:var(--no);font-weight:600}.lead{font-size:1.1rem}.segmented-light span{min-width:3.2rem;text-align:center}.print-tool{display:grid;gap:2rem}@media(min-width:860px){.print-tool{grid-template-columns:minmax(280px,380px) 1fr;align-items:start}}.tool-form .input{width:100%;max-width:22rem}.print-summary{margin:1rem 0 0;font-size:1.05rem}.print-preview{min-width:0}.print-page{display:grid;gap:4%;align-content:start;width:min(100%,520px);aspect-ratio:612 / 792;padding:6%;border:1px solid var(--line);border-radius:6px;background:#fff;box-shadow:0 10px 30px #070b2e26;position:relative}.print-page.paper-a4{aspect-ratio:595 / 842}.print-page.per-2{grid-template-rows:1fr 1fr}.print-page.per-4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.print-card{display:flex;flex-direction:column;align-items:center;min-height:0}.print-card .mini-card{height:100%;max-width:none;aspect-ratio:5 / 6;grid-template-rows:repeat(6,1fr);gap:0;border:1.5px solid #b3b3b3;border-radius:6px;overflow:hidden;min-height:0}.print-card .mini-card-head{min-height:0;border-radius:0;font-size:clamp(.6rem,2.4vw,1.4rem)}.print-card .mini-card-cell{aspect-ratio:auto;border:0;border-radius:0;border-right:1px solid #d1d1d1;border-bottom:1px solid #d1d1d1;color:var(--ink);font-size:clamp(.5rem,1.9vw,1.2rem)}.print-page.per-4 .mini-card-cell,.print-page.per-4 .mini-card-head{font-size:clamp(.45rem,1.2vw,.8rem)}.print-card .mini-card-cell:nth-child(18){color:var(--red);font-size:.55em}.print-card-title{margin:0 0 .3rem;font-weight:700;font-size:.8rem}.print-card-number{margin:.2rem 0 0;color:#555;font-weight:700;font-size:.65rem}.print-footer{position:absolute;left:0;right:0;bottom:2%;margin:0;color:gray;font-size:.55rem;text-align:center}.check-tool{display:grid;gap:2rem}@media(min-width:900px){.check-tool{grid-template-columns:1fr minmax(300px,380px);align-items:start}}.check-pattern-row{display:flex;align-items:center;gap:.75rem}.check-pattern-row .pattern-pic{background:#f1eff7}.check-pattern-row .input{flex:1;max-width:20rem}.pick-board{display:grid;gap:4px;margin-top:.5rem}.pick-row{display:grid;grid-template-columns:repeat(16,minmax(0,1fr));gap:4px}.pick-letter,.pick{display:grid;place-items:center;aspect-ratio:1;min-height:26px;border-radius:6px;font:700 clamp(.65rem,1.6vw,.95rem) var(--font)}.pick-letter{background:var(--c);color:#fff}.pick-letter.ball-N,.pick-letter.ball-O{color:var(--ink)}.pick{border:1.5px solid var(--line);background:#fff;color:var(--text);padding:0;cursor:pointer}.pick:hover{border-color:var(--ink)}.pick.is-on{background:var(--ink);border-color:var(--ink);color:#fff}.generator{display:grid;justify-items:center;gap:1.25rem}.generator-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem 2rem}.generator .segmented{background:#070b2e8c}.generator .segmented span{color:var(--lavender)}.generator .segmented input:checked+span{background:var(--lavender);color:var(--ink)}.generator .btn-call{min-height:56px;min-width:15rem;border-color:var(--gold);background:var(--gold);color:var(--ink);font-size:1.2rem;box-shadow:0 4px 0 var(--gold-dark)}.generator .btn-ghost{border-color:#c9cdf566;background:transparent;color:#fff}.generator-actions{justify-content:center}.ball-uk{--c: var(--red)}.generator-history{display:flex;flex-wrap:wrap;justify-content:center;gap:.35rem .9rem;max-width:900px;margin:0;padding:0;list-style:none;color:var(--lavender);font-weight:600}.generator-history li:first-child{color:var(--gold)}.gen-board{display:grid;gap:5px;width:100%;max-width:900px}.gen-row{display:grid;gap:5px}.gen-75 .gen-row{grid-template-columns:repeat(16,minmax(0,1fr))}.gen-90 .gen-row{grid-template-columns:repeat(10,minmax(0,1fr))}.gen-letter,.gen-cell{display:grid;place-items:center;min-height:30px;border-radius:6px;font-weight:700;font-size:clamp(.65rem,1.7vw,1rem)}.gen-letter{background:var(--c);color:#fff}.gen-letter.ball-N,.gen-letter.ball-O{color:var(--ink)}.gen-cell{background:#ffffff12;color:#c9cdf58c}.gen-cell.is-on{background:#fff;color:var(--ink)}.gen-cell.is-last{background:var(--gold)}.pattern-entries{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px;margin:1rem 0 2rem;padding:0;list-style:none}.pattern-entry{display:flex;gap:1rem;padding:1rem;border:1px solid var(--line);border-radius:14px;background:#fff;scroll-margin-top:1rem}.pattern-entry h3{margin:0 0 .3rem;font-size:1.05rem;color:var(--ink)}.pattern-entry p{margin:0 0 .6rem;font-size:.9rem}.pattern-pic-lg{width:96px;background:#f1eff7}@media(max-width:600px){.site-rail-inner{flex-wrap:wrap;gap:.4rem 1rem}.site-nav{order:3;flex-basis:100%;overflow-x:auto;scrollbar-width:none}.site-nav ul{flex-wrap:nowrap;white-space:nowrap;gap:1.1rem;padding-bottom:.15rem}.site-nav a{font-size:.9rem}.gen-75,.pick-board{grid-template-columns:repeat(5,minmax(0,1fr))}.gen-75 .gen-row,.pick-row{grid-template-columns:minmax(0,1fr)}.pick-letter,.pick{aspect-ratio:auto;min-height:32px}}.check-tool{grid-template-columns:minmax(0,1fr)}.check-inputs,.check-output{min-width:0}@media(min-width:900px){.check-tool{grid-template-columns:minmax(0,1fr) minmax(300px,380px)}}.check-pattern-row .input{min-width:0}.print-preview .caller-label{color:var(--muted)}.print-footer{color:#666}.letters-switch{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:.3rem .9rem;border:2px solid rgba(201,205,245,.4);border-radius:999px;color:#fff;font-weight:600;cursor:pointer}.letters-switch:has(input:checked){border-color:var(--gold);color:var(--gold)}.letters-switch input{width:20px;height:20px;margin:0;accent-color:var(--gold)}.caller-letters{display:block;margin-top:.15rem;color:var(--gold);font-weight:700;font-size:.9rem}.is-full .caller-letters{font-size:2vmin}@media(min-width:900px){.is-full .btn{min-height:40px;padding:.35em .9em;font-size:.95rem}.caller.is-full .btn-call{min-height:46px;min-width:11rem;font-size:1.1rem}.is-full .segmented span{min-height:34px;padding:.35em .85em}.is-full .letters-switch{min-height:40px}.is-full .caller-status.is-quiet{display:none}}@media(max-width:899px){.caller.is-full{overflow-y:auto}}.letters-which{white-space:nowrap}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.qr{display:block;width:100%;height:auto;border-radius:8px}.caller{position:relative}.caller .btn-ghost.is-live{border-color:var(--gold);color:var(--gold)}.join-panel{display:flex;align-items:center;gap:.9rem;padding:.6rem .9rem .6rem .6rem;border:2px solid rgba(201,205,245,.35);border-radius:var(--radius);background:#070b2e73;color:#fff}.join-panel .qr{width:clamp(84px,min(9vw,14vh),170px);flex:none}.join-text{display:flex;flex-direction:column;gap:.1rem}.join-url{font-weight:600;font-size:clamp(.9rem,1.2vw,1.3rem)}.join-code{color:var(--gold);font-weight:700;font-size:clamp(1.4rem,2.4vw,2.6rem);letter-spacing:.12em;line-height:1.1}.join-count{color:var(--lavender);font-size:.9rem}.is-full .join-panel .qr{width:min(11vw,18vh)}.is-full .join-url{font-size:2vmin}.is-full .join-code{font-size:4vmin}dialog .join-panel{background:var(--night-1);margin-bottom:.75rem}dialog .join-panel .qr{width:170px}@media(min-width:900px){.caller.has-join{grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-areas:"board board board board" "ball count join pattern" "ball recent join pattern" "controls controls controls controls"}.caller .caller-join{grid-area:join;align-self:center}}.claim-overlay{position:absolute;inset:0;z-index:5;display:grid;place-items:center;padding:2vmin;background:#070b2eb8;border-radius:var(--radius)}.claim-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1.5rem 2.5rem;max-width:1000px;padding:clamp(1rem,3vmin,2.5rem);border-radius:20px;background:#fff;color:var(--text);box-shadow:0 24px 60px #00000080}.claim-banner .mini-card{width:min(320px,70vw)}.claim-title{margin:0;font-size:clamp(2.5rem,8vmin,6rem);font-weight:700;line-height:1}.claim-banner.is-win .claim-title{color:var(--win)}.claim-banner.is-not-yet .claim-title{color:var(--no)}.claim-detail{margin:.5rem 0 1rem;font-size:clamp(1.1rem,2.6vmin,2rem);font-weight:600}.live-section{padding:1rem 0;border-bottom:1px solid var(--line)}.live-section h3{margin-bottom:.4rem;color:var(--ink)}.live-section p{margin:0 0 .75rem}.remote-qr{display:flex;align-items:center;gap:1.25rem}.remote-qr .qr{width:170px;flex:none}.tv-form{display:flex;flex-wrap:wrap;gap:.5rem}.tv-code-input{width:10rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase}.warn-box{padding:.6rem .8rem;border-radius:10px;background:#fff4e5;color:#6b3a00}.link-button{padding:0;border:0;background:none;color:var(--ink);font:inherit;font-weight:600;text-decoration:underline;cursor:pointer}.live-stop{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin:1rem 0 0}@media(max-width:600px){.remote-qr{flex-direction:column;align-items:flex-start}}main.bare{min-height:100vh;min-height:100dvh;background:radial-gradient(ellipse at 50% 30%,var(--night-3) 0%,var(--night-2) 30%,var(--night-1) 62%,var(--night-0) 100%);color:#fff}.bare .tool-loading{color:var(--lavender);text-align:center}.bare .offline-status{display:none}.play,.remote{max-width:560px;margin:0 auto;padding:1rem 16px 2rem}.play-message,.play-join{padding:2rem 0 1rem}.play-message h1,.play-join h1{color:#fff;font-size:1.8rem}.play-join label{display:block;margin:.75rem 0 .35rem;font-weight:600}.play-join .switch-row{margin-top:1.25rem}.play-join .hint,.play .hint,.remote .hint{color:var(--lavender)}.play-join .input{width:100%}.join-code-input{font-size:2rem;font-weight:700;letter-spacing:.25em;text-align:center;text-transform:uppercase}.play-join .btn-lg{width:100%;margin-top:1rem}.play .error-text,.remote .error-text{color:#ffb4b4}.play-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.play-last{display:flex;align-items:center;gap:.8rem}.play-last p{margin:0}.play-nick{color:var(--gold);font-weight:600;line-height:1.25}.play-count{color:var(--lavender);font-size:.9rem}.play-pattern{display:flex;flex-direction:column;align-items:center;gap:.25rem;font-size:.8rem;font-weight:600;text-align:center}.player-card{padding:.6rem;border-radius:16px;background:#fff;color:var(--ink)}.player-card-row{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-bottom:4px}.player-card-head{display:grid;place-items:center;min-height:42px;border-radius:8px;background:var(--c);color:#fff;font-weight:700;font-size:1.4rem}.player-card-head.ball-N,.player-card-head.ball-O{color:var(--ink)}.player-cell{display:grid;place-items:center;aspect-ratio:1;border:2px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:700 clamp(1.2rem,6vw,1.9rem) var(--font);cursor:pointer;touch-action:manipulation}.player-cell.is-free{color:var(--red);font-size:.85rem}.player-cell.is-marked{background:radial-gradient(circle,#e11f22bf 0 55%,#fff 57%);border-color:#f2a1a2;color:#fff}.player-cell.is-free.is-marked{background:radial-gradient(circle,#e11f2259 0 55%,#fff 57%);color:var(--red)}.player-cell.is-fresh{animation:last .8s ease-in-out 3;border-color:var(--gold)}.player-card-number{margin:.4rem 0 0;color:var(--muted);font-weight:700;text-align:center}.play-verdict{margin:1rem 0 0;padding:.75rem 1rem;border-radius:12px;background:#ffffff1f;text-align:center;font-size:1.1rem}.play-verdict.is-win{background:var(--win);font-size:1.5rem}.play-verdict.is-not-yet{background:#e11f2259}.play .btn-bingo{width:100%;min-height:72px;margin-top:1rem;border-color:var(--gold);background:var(--gold);color:var(--ink);font-size:2rem;letter-spacing:.06em;box-shadow:0 5px 0 var(--gold-dark)}.play-options{margin-top:1.25rem}.play-options .btn-quiet,.live-stop .btn-quiet{color:inherit}.play .btn,.remote .btn{color:var(--text)}.play .btn-ghost,.remote .btn-ghost,.play .btn-quiet{border-color:#c9cdf566;background:transparent;color:#fff}.host-your-own{margin-top:2rem;padding:1rem;border-radius:14px;background:#070b2e8c;font-size:.95rem}.host-your-own p{margin:0 0 .6rem}.host-links{display:flex;flex-wrap:wrap;gap:.5rem}.remote-status{margin:0 0 .75rem;color:var(--lavender);font-size:.85rem;text-align:center}.remote-status.is-offline{color:var(--gold)}.remote-ball{display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center}.remote-ball .caller-count{margin:0}.remote-main,.remote-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}.remote .btn-call{flex:1;min-height:64px;border-color:var(--gold);background:var(--gold);color:var(--ink);font-size:1.3rem;box-shadow:0 4px 0 var(--gold-dark)}.remote .btn-call.is-running{background:transparent;color:var(--gold);box-shadow:none}.remote .segmented{background:#070b2e8c}.remote .segmented span{color:var(--lavender)}.remote .segmented input:checked+span{background:var(--lavender);color:var(--ink)}.remote .caller-status{margin:.5rem 0 0}.remote-board{margin-top:1.25rem}.remote-board summary{cursor:pointer;font-weight:600}.remote .pick-board{grid-template-columns:repeat(5,minmax(0,1fr))}.remote .pick-row{grid-template-columns:minmax(0,1fr)}.remote .pick{aspect-ratio:auto;min-height:34px}.remote .pick:disabled{opacity:1}.tv-pairing{display:grid;place-content:center;justify-items:center;min-height:100vh;min-height:100dvh;padding:4vmin;text-align:center}.tv-pairing .caller-label{font-size:2.5vmin}.tv-code{margin:2vmin 0;color:var(--gold);font-weight:700;font-size:min(16vw,22vmin);letter-spacing:.08em;line-height:1}.tv-steps{max-width:60ch;font-size:max(1rem,2.4vmin);text-align:left}.tv-loading{padding-top:40vh}.caller.is-display{background:transparent}.tv-controls{justify-content:flex-end;opacity:.6}.tv-controls:hover,.tv-controls:focus-within{opacity:1}.tv-title{margin:0;font-size:2.5vmin}
