:root{--bg: #f5f6f8;--surface: #ffffff;--surface-2: #eef0f3;--text: #16181d;--muted: #5d6472;--border: #dcdfe5;--accent: #6d28d9;--accent-text: #ffffff;--accent-soft: #efe8fd;--hero-a: #fff4d6;--hero-b: #fde4f1;--hero-c: #e6edff;--bonus: #c2410c;--bonus-soft: #fdeee4;--good: #1f8a4c;--good-soft: #e3f4ea;--warn: #a8680f;--code-bg: #f0f2f5;--shadow: 0 1px 2px rgba(0,0,0,.05), 0 4px 14px rgba(0,0,0,.04);color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0f1115;--surface: #171a20;--surface-2: #20242c;--text: #e8eaef;--muted: #9aa2b1;--border: #2b303a;--accent: #a78bfa;--accent-text: #160b2e;--accent-soft: #261d3d;--hero-a: #2b2414;--hero-b: #2d1726;--hero-c: #18203a;--bonus: #fb923c;--bonus-soft: #3a2316;--good: #4cc27f;--good-soft: #16301f;--warn: #e0b04a;--code-bg: #12151a;--shadow: none;color-scheme:dark}}:root[data-theme=dark]{--bg: #0f1115;--surface: #171a20;--surface-2: #20242c;--text: #e8eaef;--muted: #9aa2b1;--border: #2b303a;--accent: #a78bfa;--accent-text: #160b2e;--accent-soft: #261d3d;--hero-a: #2b2414;--hero-b: #2d1726;--hero-c: #18203a;--bonus: #fb923c;--bonus-soft: #3a2316;--good: #4cc27f;--good-soft: #16301f;--warn: #e0b04a;--code-bg: #12151a;--shadow: none;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.55 -apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,sans-serif}a{color:var(--accent)}code,pre,.mono{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.wrap{max-width:1080px;margin:0 auto;padding:0 16px}.topbar{border-bottom:1px solid var(--border);background:var(--surface)}.topbar .wrap{display:flex;align-items:center;gap:16px;height:52px}.brand{display:flex;align-items:center;gap:8px;color:var(--text);text-decoration:none;font-weight:600;margin-right:auto}.brand b{font:600 11px/1 JetBrains Mono,ui-monospace,monospace;letter-spacing:.1em;background:#09090d;color:#ff0;border:1px solid rgba(255,255,0,.35);padding:5px 7px;border-radius:2px}.topbar nav{display:flex;align-items:center}.topbar nav a{color:var(--muted);text-decoration:none;font-size:14px;margin-left:14px}.topbar nav a:hover{color:var(--text)}.topbar nav a.lang{border:1px solid var(--border);border-radius:999px;padding:3px 10px}@media(max-width:520px){.topbar nav a.hide-sm{display:none}}.fun,h1,.content h2{font-family:Fredoka,Segoe UI,Inter,Roboto,sans-serif}.hero{margin:20px 0 18px;padding:26px 28px;border-radius:18px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;background:radial-gradient(circle at 12% 20%,var(--hero-a) 0,transparent 45%),radial-gradient(circle at 85% 80%,var(--hero-b) 0,transparent 50%),linear-gradient(135deg,var(--hero-c),var(--hero-a))}.hero-balls{display:grid;grid-template-columns:repeat(3,64px);gap:10px;transform:rotate(-6deg)}.hero-balls .ball{width:64px;height:64px;animation:bob 3.2s ease-in-out infinite}.hero-balls .ball:nth-child(2n){animation-delay:-1.1s;transform:translateY(12px)}.hero-balls .ball:nth-child(3n){animation-delay:-2s}.hero-balls .ball .num{font-size:21px}@keyframes bob{50%{translate:0 -6px}}@media(max-width:820px){.hero{grid-template-columns:1fr;padding:20px 18px}.hero-balls{display:none}}.crumbs{font-size:13px;color:var(--muted);margin:0 0 10px}.crumbs a{color:var(--muted)}h1{font-size:clamp(28px,4.4vw,42px);font-weight:600;line-height:1.12;margin:0 0 12px;letter-spacing:-.01em;max-width:820px}.lede{font-size:17px;color:var(--muted);margin:0 0 18px;max-width:780px}.badges{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.badges li{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;padding:5px 12px;border-radius:999px;background:var(--surface);border:1px solid var(--border)}.badges svg{width:15px;height:15px;color:var(--good);flex:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;box-shadow:var(--shadow);min-width:0}.tool{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;overflow:hidden;border-radius:16px;position:relative}.ticket-head{margin:-20px -20px 0;padding:12px 20px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;background:linear-gradient(90deg,#6d28d9,#db2777 60%,#f59e0b);color:#fff}.ticket-head .fun{font-size:18px;font-weight:600}.ticket-head .tag{font-size:13px;background:#fff3;padding:3px 10px;border-radius:999px}.tool>*,.field{min-width:0}.field{display:grid;gap:6px}.field>span,.inline-label{font-size:13px;font-weight:600;color:var(--muted)}.controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:14px}@media(max-width:720px){.controls{grid-template-columns:1fr}}input[type=text],input[type=date],input[type=number],select{font:inherit;font-size:15px;padding:9px 11px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);width:100%;min-width:0}input[type=number]{width:72px;padding:6px 8px}input:focus-visible,select:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.text-row{display:flex;gap:8px}.text-row input{flex:1;font-size:16px}.opts{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;font-size:14px}.opts label{display:inline-flex;align-items:center;gap:6px}.opts select,.opts input[type=date]{width:auto;padding:5px 8px}.opts input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);margin:0}.custom{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;font-size:14px;padding:12px;border-radius:8px;background:var(--surface-2)}.custom[hidden]{display:none}.custom .muted{color:var(--muted);font-size:13px}button{font:inherit;font-size:14px;border-radius:8px;padding:8px 14px;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);white-space:nowrap}button:hover:not(:disabled){background:var(--surface-2)}button.primary{background:var(--accent);color:var(--accent-text);border-color:transparent;font-weight:600}button.primary:hover:not(:disabled){background:var(--accent);filter:brightness(1.08)}button.draw{font-family:Fredoka,Segoe UI,sans-serif;font-size:17px;font-weight:600;padding:9px 20px;border-radius:999px;background:linear-gradient(180deg,#ffd84d,#f5a700);color:#3b2600;border:0;box-shadow:0 3px #c98400,0 6px 14px #f5a70059;transition:transform .08s,box-shadow .08s}button.draw:hover:not(:disabled){background:linear-gradient(180deg,#ffe066,#f8b000)}button.draw:active{transform:translateY(2px);box-shadow:0 1px #c98400,0 3px 8px #f5a7004d}button.pill{border-radius:999px}button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:520px){.text-row{flex-wrap:wrap}.text-row input{flex-basis:100%}.text-row button{flex:1}}.result{border-top:2px dashed var(--border);padding-top:18px;position:relative}.result:before,.result:after{content:"";position:absolute;top:-13px;width:24px;height:24px;border-radius:50%;background:var(--bg);border:1px solid var(--border)}.result:before{left:-33px}.result:after{right:-33px}.result-empty{color:var(--muted);font-size:14px;margin:10px 0 0}.ghost{display:flex;flex-wrap:wrap;gap:8px}.ghost .ball{--c: #c9ccd3;opacity:.55}.ghost .ball .num{color:#8a8f99}.tickets{display:grid;gap:12px}.ticket{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}.ticket .lbl{font:600 13px/1 Fredoka,sans-serif;color:var(--accent);background:var(--accent-soft);padding:5px 10px;border-radius:999px;min-width:86px;text-align:center}.balls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex:1 1 260px;min-width:0}.ball{--c: #f5b301;position:relative;flex:none;display:inline-grid;place-items:center;width:50px;height:50px;border-radius:50%;background:radial-gradient(circle at 30% 24%,#ffffffe6 0 7%,#fff0 26%),radial-gradient(circle at 50% 45%,var(--c) 52%,color-mix(in srgb,var(--c) 62%,#000) 100%);box-shadow:inset -3px -5px 8px #00000038,0 3px 7px #0000002e}.ball .num{display:grid;place-items:center;width:62%;height:62%;border-radius:50%;background:#fff;color:#1d1d22;font:600 17px/1 Fredoka,Segoe UI,sans-serif;font-variant-numeric:tabular-nums;box-shadow:inset 0 -1px 2px #00000026}.ball.bonus:after{content:"★";position:absolute;top:-5px;right:-3px;font-size:13px;line-height:1;color:#f5b301;text-shadow:0 1px 1px rgba(0,0,0,.35)}.ball.pop{animation:roll .65s cubic-bezier(.3,1.4,.5,1) both}@keyframes roll{0%{transform:translateY(-36px) rotate(-240deg) scale(.5);opacity:0}70%{transform:translateY(3px) rotate(12deg) scale(1.06);opacity:1}to{transform:none}}.confetti{position:absolute;inset:0;pointer-events:none;overflow:visible}.confetti i{position:absolute;left:var(--x0);top:30px;width:7px;height:11px;border-radius:2px;background:var(--cc);animation:confetti 1.3s ease-out var(--d) forwards;opacity:0}@keyframes confetti{0%{opacity:1;transform:translate(0) rotate(0)}to{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--r))}}@media(prefers-reduced-motion:reduce){.ball.pop,.hero-balls .ball{animation:none}.confetti{display:none}}.plus{color:var(--muted);font:700 20px/1 Fredoka,sans-serif}@media(max-width:520px){.ticket .lbl{min-width:0}.ball{width:40px;height:40px}.ball .num{font-size:15px}.balls{gap:6px}}.ticket-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}details.math{margin-top:14px;font-size:13px}details.math summary{cursor:pointer;color:var(--accent);font-weight:600}.kv{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 14px;margin:12px 0}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px}@media(max-width:560px){.kv{grid-template-columns:1fr}.kv dd{margin-bottom:6px}}.scroll{overflow-x:auto}table.trace{border-collapse:collapse;font-size:12px;width:100%}table.trace th,table.trace td{text-align:right;padding:5px 8px;border-bottom:1px solid var(--border);white-space:nowrap;font-variant-numeric:tabular-nums}table.trace th{color:var(--muted);font-weight:600}table.trace td:first-child,table.trace th:first-child{text-align:left}table.trace td.mono{font-size:12px}.glance{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:0;padding:0;overflow:hidden}.glance h2{grid-column:1 / -1;margin:0;padding:14px 20px 6px;font-size:16px}.glance div{padding:10px 20px 14px}.glance dt{font-size:12px;color:var(--muted)}.glance dd{margin:2px 0 0;font-weight:600;font-variant-numeric:tabular-nums}.glance p{grid-column:1 / -1;margin:0;padding:12px 20px 16px;border-top:1px solid var(--border);font-size:14px}.content{max-width:780px;margin:28px auto 0;font-size:16px;line-height:1.7}.content h2{font-size:24px;line-height:1.25;margin:44px 0 12px;letter-spacing:-.01em}.content h3{font-size:17px;margin:26px 0 6px}.content ol,.content ul{padding-left:22px}.content li{margin:6px 0}.content code{white-space:pre-wrap;font-size:.88em;background:var(--code-bg);padding:1px 5px;border-radius:4px}.content pre{background:var(--code-bg);border:1px solid var(--border);border-radius:10px;padding:14px 16px;overflow-x:auto;font-size:13px;line-height:1.55}.content pre code{background:none;padding:0;font-size:inherit}.pipeline{list-style:none;padding:0!important;counter-reset:s}.pipeline li{counter-increment:s;position:relative;padding-left:40px;margin:14px 0}.pipeline li:before{content:counter(s);position:absolute;left:0;top:2px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-size:13px;font-weight:700}table.ex{width:100%;border-collapse:collapse;font-size:14px;margin:12px 0}table.ex th,table.ex td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top}table.ex th{font-weight:600;background:var(--surface-2)}table.ex td.mono{font-size:12.5px;white-space:nowrap}.same{color:var(--good);font-weight:600}.test-head{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.progress{flex:1 1 160px;height:8px;background:var(--surface-2);border-radius:999px;overflow:hidden}.progress>div{height:100%;width:0;background:var(--accent)}.chart{margin-top:14px;position:relative}.chart h3{margin:10px 0 4px;font-size:14px}.chart svg{display:block;width:100%;height:auto;overflow:visible}.chart .axis{fill:var(--muted);font-size:11px}.chart .grid{stroke:var(--border);stroke-width:1}.chart .exp{stroke:var(--text);stroke-width:1.5;stroke-dasharray:5 4}.chart .bar{fill:var(--accent)}.chart .bar.bonus{fill:var(--bonus)}.chart .bar.hl{filter:brightness(1.25)}.chart .hit{fill:transparent;cursor:crosshair}.tip{position:absolute;pointer-events:none;background:var(--text);color:var(--bg);font-size:12px;padding:5px 8px;border-radius:6px;white-space:nowrap;transform:translate(-50%,-110%);z-index:2}.tip[hidden]{display:none}.verdict{font-size:14px;margin:10px 0 0}.verdict b{color:var(--good)}.verdict.bad b{color:var(--warn)}details.tbl summary{cursor:pointer;font-size:13px;color:var(--accent);margin-top:8px}details.tbl table{border-collapse:collapse;font-size:12px;margin-top:8px}details.tbl th,details.tbl td{padding:3px 10px;text-align:right;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums}.faq details{border:1px solid var(--border);border-radius:10px;background:var(--surface);margin:8px 0}.faq summary{cursor:pointer;padding:12px 16px;font-weight:600}.faq .ans{padding:0 16px 14px;font-size:15px}.faq .ans>p:first-child{margin-top:0}.faq details[open] summary{color:var(--accent)}.test{margin:12px 0 4px}.games{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 16px}.games h3{grid-column:1 / -1;margin:18px 0 2px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.games a{display:flex;justify-content:space-between;gap:8px;padding:10px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface);text-decoration:none;color:var(--text);font-size:14px}.games a span{color:var(--muted);font-size:12px;white-space:nowrap}.games a[aria-current]{border-color:var(--accent)}.responsible{font-size:13px;color:var(--muted);border-top:1px solid var(--border);margin-top:40px;padding-top:16px}footer{margin-top:40px;border-top:1px solid var(--border);padding:20px 0 40px;font-size:13px;color:var(--muted)}footer .wrap{display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:space-between}footer a{color:var(--muted)}
