@charset "UTF-8";
:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#172b35;background:#f4f6f8;font-synthesis:none;--accent:#087c4b;--tint:#edf8f2;--line:#e1e7eb}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #1271bd;outline-offset:4px}[hidden]{display:none!important}.topbar{background:#fff;border-bottom:1px solid var(--line)}.topbar-inner{max-width:1200px;margin:auto;padding:22px 32px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{text-decoration:none;font-size:1.45rem;font-weight:800;letter-spacing:-.06em;display:flex;align-items:center}.brand-mark{background:#087c4b;color:white;width:35px;height:35px;display:grid;place-items:center;border-radius:10px;font-size:2rem;line-height:1;margin-right:10px;letter-spacing:0}.brand-period{color:#087c4b}.header-back{display:inline-flex;align-items:center;gap:10px;font-size:.875rem;color:#66747e;text-decoration:none}.header-back svg{width:16px;height:16px;flex:none}.header-back:hover{color:#087c4b}main{max-width:1200px;margin:auto;padding:40px 32px 24px}.eyebrow{font-size:.75rem;font-weight:750;letter-spacing:.17em;color:#087c4b;margin:0 0 12px}h1{font-size:clamp(2rem,4vw,2.9rem);letter-spacing:-.045em;line-height:1.15;margin:0 0 13px;font-weight:750}.intro>p:last-child{color:#65747e;margin:0;font-size:1rem;line-height:1.6}.mobile-break{display:none}.modalities-section{margin:32px 0 26px}.section-label{display:flex;align-items:center;gap:10px}.step{font-size:.75rem;font-weight:750;color:#667783;border:1px solid #dce3e8;border-radius:6px;padding:4px 6px;background:#fff}h2{font-size:1rem;margin:0;letter-spacing:-.015em;font-weight:700}.modalities{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-top:16px}.modality{position:relative;min-height:98px;border:2px solid transparent;border-radius:13px;padding:17px 14px;text-align:left;background:var(--game-color);color:var(--game-ink,#fff);transition:transform .15s,box-shadow .15s}.modality:hover{transform:translateY(-2px)}.modality[aria-pressed="true"]{outline:2px solid var(--game-color);outline-offset:3px;box-shadow:0 5px 14px #172b3510}.modality-name{display:block;font-weight:750;font-size:1rem;margin-top:7px}.modality-range{font-size:.75rem;opacity:.95}.selected-check{position:absolute;right:10px;top:9px;font-size:.8rem;width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:#ffffff2b;visibility:hidden}.modality[aria-pressed="true"] .selected-check{visibility:visible}.workspace{display:grid;grid-template-columns:340px minmax(0,1fr);gap:24px;align-items:start}.panel{border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 4px 20px #1d344304}.settings{padding:26px}.selected-heading{display:flex;gap:10px;align-items:center;margin-top:28px}.color-bar{width:5px;height:25px;border-radius:5px;background:var(--accent)}h3{margin:0;font-size:1.4rem;letter-spacing:-.03em}.game-description{font-size:.875rem;line-height:1.6;color:#61717c;margin:12px 0 24px}.field{margin:0 0 22px}label{display:block;font-size:.875rem;font-weight:650;margin-bottom:9px}input,select{width:100%;min-height:48px;border:1px solid #cad4dc;border-radius:9px;background:#fff;color:#172b35;padding:11px 13px}select:disabled{background:#f4f6f8;color:#52636f;opacity:1}small{display:block;font-size:.8rem;color:#687883;line-height:1.5;margin-top:7px}.primary{border:0;border-radius:10px;background:var(--accent);color:#fff;min-height:49px;padding:12px 18px;width:100%;font-weight:700;display:flex;align-items:center;justify-content:center;gap:10px}.primary:hover{filter:brightness(.92)}.primary span{font-size:1.5rem;line-height:1}.settings-note{display:flex;gap:10px;margin:20px 0 17px;color:#61717c;font-size:.8rem;line-height:1.55}.settings-note>span{color:var(--accent);font-size:1rem}.settings-note p{margin:0}.rules-link{font-size:.8rem;color:#596d7a;text-underline-offset:3px}.rules-link span{margin-left:3px}.results{padding:26px;min-height:525px}.results-header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-bottom:23px;border-bottom:1px solid var(--line)}.results-header p{font-size:.875rem;color:#6b7a84;margin:10px 0 0}.secondary,.copy-one{background:#fff;border:1px solid #d8e0e6;border-radius:8px;padding:10px 13px;color:#415765;font-size:.875rem;font-weight:600;min-height:42px}.secondary:hover,.copy-one:hover{background:#f4f6f8}.empty-state{padding:67px 10px 45px;text-align:center;max-width:370px;margin:auto}.empty-balls{display:flex;justify-content:center;gap:10px;margin-bottom:25px}.empty-balls span{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;font-size:1.4rem;font-weight:650;color:#8a9ba5;background:#f0f4f6;border:1px solid #e1e8ed}.empty-balls span:nth-child(2){transform:translateY(-9px);background:var(--tint);color:var(--accent);border-color:transparent}.empty-state h3{font-size:1.15rem;letter-spacing:-.02em}.empty-state p{font-size:.875rem;line-height:1.7;color:#6a7b87;margin:13px 0 25px}.empty-state strong{font-weight:600;color:#445c6b}.empty-caption{font-size:.75rem;color:#697b88}.games{display:grid;gap:14px;margin-top:20px}.game-card{border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:12px;padding:16px;animation:appear .2s ease-out}.game-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.game-top h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:#657681;font-weight:700}.copy-one{border:0;min-height:35px;padding:6px 9px;font-size:.8rem}.balls{display:flex;flex-wrap:wrap;gap:8px}.ball{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;background:var(--tint);color:var(--accent);font-size:1rem;font-weight:750;font-variant-numeric:tabular-nums;border:1px solid color-mix(in srgb,var(--accent) 12%,transparent)}.column-balls{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.number-column{display:flex;align-items:center;flex-direction:column;gap:7px}.column-label{font-size:.75rem;color:#647781}.number-column .ball{width:100%;max-width:43px;aspect-ratio:1;height:auto}.batch-note{font-size:.8rem;line-height:1.6;color:#6a7c88;margin:20px 0 0}.error{font-size:.875rem;color:#a22331;line-height:1.5}footer{border-top:1px solid #dde5eb;margin-top:36px;padding-top:20px;text-align:center;color:#687b88;font-size:.75rem;line-height:1.6}footer p{margin:4px 0}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);background:#183a2c;color:white;padding:13px 22px;border-radius:12px;box-shadow:0 8px 30px #13291f30;opacity:0;pointer-events:none;transition:.2s;max-width:calc(100% - 32px);font-size:.875rem;text-align:center;z-index:10}.toast.visible{opacity:1;transform:translate(-50%,0)}dialog{width:min(540px,calc(100% - 32px));border:1px solid var(--line);border-radius:16px;padding:25px;color:#172b35}dialog::backdrop{background:#142e3d77}dialog p{font-size:.875rem;line-height:1.6;color:#607380}textarea{width:100%;min-height:180px;margin:5px 0 20px;border:1px solid #cbd5de;border-radius:8px;padding:12px;resize:vertical}.noscript{padding:24px;text-align:center;color:#a22331}@keyframes appear{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1300px){main{padding-top:48px}.intro{margin-bottom:38px}}
@media(max-width:1000px){.modalities{grid-template-columns:repeat(3,minmax(0,1fr))}.modality{min-height:82px}.workspace{grid-template-columns:300px minmax(0,1fr);gap:18px}.settings,.results{padding:22px}.results-header{align-items:flex-start;flex-wrap:wrap}}
@media(max-width:700px){.topbar-inner{padding:18px 20px;flex-wrap:wrap}.brand{font-size:1.25rem}.header-back{font-size:.8125rem}.header-back svg{width:14px;height:14px}main{padding:30px 20px 20px}.mobile-break{display:block}.intro>p:last-child{max-width:300px;font-size:.9375rem}.modalities-section{margin-top:27px}.modalities{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.modality{min-height:85px;padding:14px}.workspace{grid-template-columns:1fr;gap:20px}.settings,.results{padding:22px}.selected-heading{margin-top:22px}.results{min-height:360px}.empty-state{padding:40px 5px 20px}.results-header{gap:12px}.ball{width:39px;height:39px}.balls{gap:7px}.game-card{padding:13px}.column-balls{gap:4px}.column-label{font-size:.75rem}.number-column .ball{font-size:.875rem}.toast{bottom:16px}footer{text-align:left;margin-top:25px}.primary{min-height:52px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.results-header{flex-wrap:wrap}.results-actions{display:flex;flex-wrap:wrap;gap:8px}.game-title{display:flex;flex-wrap:wrap;align-items:center;gap:9px}.game-size{font-size:.75rem;color:#687b88}.footer-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px}.footer-brand{font-size:.9375rem;font-weight:700;color:#344e5e}.footer-brand span{font-size:.875rem;font-weight:400}.footer-bar nav{display:flex;flex-wrap:wrap;gap:4px 12px}.footer-bar nav button{border:0;background:transparent;color:#415765;font-size:.875rem;min-height:44px;padding:8px 4px;text-decoration:underline;text-underline-offset:4px}.footer-bar nav button:hover{color:var(--accent)}.disclaimer{max-width:920px;margin:10px auto 0}footer .copyright{margin-top:22px;color:#536b7a}.info-dialog{width:min(640px,calc(100% - 32px));max-height:85vh;overflow-y:auto}.info-header{display:flex;align-items:center;justify-content:space-between;gap:20px;position:sticky;top:-25px;background:#fff;padding:14px 0;border-bottom:1px solid var(--line);margin-bottom:18px}.info-header h2{font-size:1.2rem}.info-dialog p,.info-dialog li{font-size:1rem;line-height:1.75;color:#4e6472}.info-dialog ol{padding-left:24px}.info-dialog li{margin:10px 0}body:has(dialog[open]){overflow:hidden}@media(max-width:700px){.footer-bar{display:block}.footer-bar nav{margin-top:10px}.footer-brand span{display:inline}.info-dialog{padding:20px}.info-header{top:-20px}.results-actions{width:100%}}
