@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-vietnamese-wght-normal.BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-ext-wght-normal.CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-wght-normal.DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/space-mono-vietnamese-400-normal.BNOj0Qhp.woff2)format("woff2"),url(/_astro/space-mono-vietnamese-400-normal.B0PMp_xB.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/space-mono-latin-ext-400-normal.DTLbW2xa.woff2)format("woff2"),url(/_astro/space-mono-latin-ext-400-normal.D4cJI_B-.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/space-mono-latin-400-normal.Rg4St2Dn.woff2)format("woff2"),url(/_astro/space-mono-latin-400-normal._3DlpgIW.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-mono-vietnamese-700-normal.DWQgDHuA.woff2)format("woff2"),url(/_astro/space-mono-vietnamese-700-normal.D-KrLuLr.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-mono-latin-ext-700-normal.B2s3bDs2.woff2)format("woff2"),url(/_astro/space-mono-latin-ext-700-normal.B_E7P90g.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-mono-latin-700-normal.mWgeinG7.woff2)format("woff2"),url(/_astro/space-mono-latin-700-normal.D7A851RN.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink:#141414;--paper:#fff;--wash:#f3f1ec;--muted:#57534e;--line:#d8d4cb;--killer:#ff4d2e;--samurai:#7b2ff7;--jigsaw:#00a6a6;--nonogram:#ffd400;--kakuro:#1f5bff;--calcudoku:#ff2e93;--logicgrid:#18b05a;--hi:#ffd400;--link:#1f4fe0;--ok:#127a3e;--bad:#c81e1e;--display:"Bricolage Grotesque Variable", "Bricolage Grotesque", "Arial Black", system-ui, sans-serif;--body:"Bricolage Grotesque Variable", "Bricolage Grotesque", system-ui, sans-serif;--mono:"Space Mono", ui-monospace, monospace;--radius:14px;--shadow:6px 6px 0 var(--ink);color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--body);font-variation-settings:"opsz" 14;margin:0;font-size:18px;line-height:1.6}img,canvas,svg{max-width:100%;display:block}a{color:var(--link);text-underline-offset:3px;text-decoration-thickness:1.5px}a:hover{color:var(--ink)}:focus-visible{outline:3px solid var(--link);outline-offset:2px}h1,h2,h3{font-family:var(--display);letter-spacing:-.02em;text-wrap:balance;font-variation-settings:"opsz" 96;margin:0;font-weight:800;line-height:1.05}h1{letter-spacing:-.03em;font-size:clamp(2.3rem,5.2vw,4.1rem)}h2{margin:0 0 .7rem;font-size:clamp(1.6rem,3vw,2.15rem)}h3{margin:0 0 .35rem;font-size:1.3rem}p{margin:0 0 1rem}.wrap{max-width:1200px;margin:0 auto;padding:0 24px}.skip{background:var(--hi);z-index:99;padding:8px 14px;font-weight:700;position:absolute;top:0;left:-999px}.skip:focus{left:8px}.mono{font-family:var(--mono)}.tnum{font-variant-numeric:tabular-nums}.site-header{border-bottom:3px solid var(--ink);background:var(--paper);z-index:20;position:relative}.site-header .wrap{flex-wrap:wrap;align-items:center;gap:22px;padding-top:14px;padding-bottom:14px;display:flex}.logo{color:var(--ink);font-family:var(--display);letter-spacing:-.01em;align-items:stretch;font-size:21px;font-weight:800;line-height:1;text-decoration:none;display:inline-flex}.logo .cage{border:3px dashed var(--ink);padding:9px 12px 7px 18px;position:relative}.logo .cage small{font:700 10px/1 var(--mono);position:absolute;top:1px;left:4px}.logo .lab{background:var(--ink);color:var(--paper);border:3px solid var(--ink);padding:9px 12px 7px}.nav{flex-wrap:wrap;align-items:center;gap:4px;margin-left:auto;font-size:16px;font-weight:650;display:flex}.nav a{color:var(--ink);border:2px solid #0000;border-radius:999px;padding:6px 11px;text-decoration:none}.nav a:hover,.nav a[aria-current=page]{border-color:var(--ink)}.nav .btn,.nav .btn:hover{color:var(--paper);border-color:var(--ink);margin-left:6px}.nav-toggle{font:700 16px var(--display);background:var(--paper);border:3px solid var(--ink);border-radius:10px;margin-left:auto;padding:6px 12px;display:none}@media (width<=980px){.nav-toggle{display:block}.nav{flex-direction:column;align-items:stretch;width:100%;margin:0;display:none}.nav.open{display:flex}.nav a{border-radius:10px}}.btn{font:800 17px/1.1 var(--display);background:var(--ink);color:var(--paper);border:3px solid var(--ink);box-shadow:4px 4px 0 var(--accent,var(--killer));cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:11px 18px;text-decoration:none;display:inline-flex}.btn:hover{color:var(--paper);box-shadow:5px 5px 0 var(--accent,var(--killer));transform:translate(-1px,-1px)}.btn:active{box-shadow:2px 2px 0 var(--ink);transform:translate(2px,2px)}.btn.alt{background:var(--paper);color:var(--ink);box-shadow:4px 4px 0 var(--ink)}.btn.small{padding:7px 12px;font-size:15px}.btn[disabled]{opacity:.45;cursor:not-allowed}.pill{font:700 12px/1.2 var(--mono);text-transform:uppercase;letter-spacing:.02em;border:2px solid var(--ink);background:var(--paper);color:var(--ink);border-radius:999px;padding:4px 10px;display:inline-block}.pill.lv-easy{background:#dff5e6}.pill.lv-medium{background:#fff1b8}.pill.lv-hard{background:#ffd9cf}.pill.lv-expert{background:var(--ink);color:var(--paper)}.kicker{font:700 13px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.03em;margin:0 0 10px}main{padding-bottom:64px}.crumbs{font:700 13px/1.4 var(--mono);text-transform:uppercase;flex-wrap:wrap;gap:6px;padding:20px 0 0;display:flex}.crumbs a{color:var(--ink);border-bottom:2px solid #0000;text-decoration:none}.crumbs a:hover{border-color:var(--ink)}.crumbs .sep{color:var(--muted)}.pagehead{border-bottom:3px solid var(--ink);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px 28px;margin-bottom:26px;padding:14px 0 22px;display:grid}.pagehead .lede{max-width:60ch;margin:12px 0 0;font-size:1.15rem}@media (width<=860px){.pagehead{grid-template-columns:1fr}}.accent-bar{background:var(--accent,var(--killer));width:84px;height:10px;margin:0 0 14px}.prose{max-width:70ch}.prose p,.prose li{font-size:1.07rem}.prose h2{margin-top:2.2rem}.prose ul,.prose ol{margin:0 0 1rem;padding-left:1.3rem}.prose li{margin-bottom:.35rem}.copy-grid{grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:48px;margin-top:40px;display:grid}.copy-grid aside{flex-direction:column;gap:22px;display:flex;position:sticky;top:20px}@media (width<=960px){.copy-grid{grid-template-columns:1fr}.copy-grid aside{position:static}}.box{border:3px solid var(--ink);border-radius:var(--radius);background:var(--paper);padding:18px 20px}.box.wash{background:var(--wash)}.box.shadow{box-shadow:var(--shadow)}.box h3{margin-bottom:8px}.box ul{margin:0;padding-left:1.1rem}.box li{margin:4px 0}.tiles{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:22px;margin:0;padding:0;list-style:none;display:grid}.tile{height:100%;color:var(--ink);border:3px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);background:var(--paper);flex-direction:column;text-decoration:none;transition:transform .12s,box-shadow .12s;display:flex;overflow:hidden}.tile:hover{color:var(--ink);box-shadow:8px 8px 0 var(--ink);transform:translate(-2px,-2px)}.tile .art{background:var(--accent,var(--wash));border-bottom:3px solid var(--ink);aspect-ratio:1.15;place-items:center;padding:14px;display:grid}.tile .art img,.tile .art canvas{object-fit:contain;background:var(--paper);border:2px solid var(--ink);width:100%;height:100%}.tile .txt{padding:12px 15px 15px}.tile .txt p{color:#2b2925;margin:0;font-size:15.5px}.tile .meta{font:700 12px/1.3 var(--mono);text-transform:uppercase;color:var(--muted);margin-top:8px}.linklist{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.linklist a{border:2px solid var(--ink);color:var(--ink);background:var(--paper);border-radius:10px;padding:10px 14px;font-weight:700;text-decoration:none;display:block}.linklist a:hover{background:var(--hi)}.linklist small{font:400 13px var(--mono);color:var(--muted);display:block}.section{margin-top:56px}.section>h2{margin-bottom:18px}.band{background:var(--ink);color:var(--paper);margin-top:56px;padding:46px 0}.band h2,.band h3,.band a{color:var(--paper)}.band .tools{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin:0;padding:0;list-style:none;display:grid}.band .tools a{border:3px solid var(--paper);border-radius:var(--radius);height:100%;padding:18px;text-decoration:none;display:block}.band .tools a:hover{background:#262626}.band .tools .k{font:700 12px var(--mono);text-transform:uppercase;color:var(--hi)}.band .tools p{color:#ddd;margin:4px 0 0;font-size:16px}.hero{grid-template-columns:1.05fr .95fr;align-items:center;gap:44px;padding:40px 0 34px;display:grid}.hero h1{font-size:clamp(2.6rem,6vw,5rem);line-height:.95}.hero h1 em{background:var(--hi);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .12em;font-style:normal}.hero .lede{max-width:34ch;margin:18px 0 24px;font-size:1.3rem}.hero .ctas{flex-wrap:wrap;gap:14px;display:flex}@media (width<=900px){.hero{grid-template-columns:1fr}}.game{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);align-items:start;gap:34px;display:grid}.game.wide{grid-template-columns:minmax(0,1.6fr) minmax(260px,.5fr)}@media (width<=900px){.game,.game.wide{grid-template-columns:1fr}}.board-card{background:var(--paper);border:3px solid var(--ink);box-shadow:10px 10px 0 var(--accent,var(--ink));border-radius:18px;padding:16px;position:relative}.board-card .meta{font:700 13px/1.3 var(--mono);text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;gap:10px;margin-bottom:12px;display:flex}.board-wrap{touch-action:manipulation;-webkit-user-select:none;user-select:none;width:100%;position:relative}.board-wrap canvas{cursor:pointer;width:100%;height:auto}.board-wrap canvas:focus-visible{outline:3px solid var(--link);outline-offset:4px}.tabs{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.tabs button,.tabs a{font:800 15px var(--display);border:3px solid var(--ink);background:var(--paper);color:var(--ink);cursor:pointer;border-radius:12px;padding:7px 13px;text-decoration:none}.tabs [aria-pressed=true],.tabs [aria-current=page]{background:var(--hi);box-shadow:3px 3px 0 var(--ink)}.side{flex-direction:column;gap:16px;display:flex}.stats{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.stats div{border:3px solid var(--ink);border-radius:12px;padding:8px 10px}.stats b{font:800 22px/1.2 var(--display);font-variant-numeric:tabular-nums;display:block}.stats span{font:400 11px var(--mono);text-transform:uppercase}.pad{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.pad button{aspect-ratio:1.1;border:3px solid var(--ink);background:var(--paper);font:800 24px var(--display);cursor:pointer;box-shadow:3px 3px 0 var(--ink);color:var(--ink);border-radius:12px}.pad button:active{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.pad button.on{background:var(--accent,var(--killer));color:var(--paper)}.pad.notes button{font-family:var(--mono);color:var(--muted);font-size:18px}.controls{flex-wrap:wrap;gap:10px;display:flex}.controls .btn{padding:8px 12px;font-size:15px}.btn[aria-pressed=true]{background:var(--hi);color:var(--ink)}.msg{min-height:1.6em;margin:0;font-weight:700}.msg.ok{color:var(--ok)}.msg.bad{color:var(--bad)}.nav-puzzles{font:700 14px var(--mono);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.clues{border:3px solid var(--ink);border-radius:var(--radius);background:var(--wash);padding:16px 18px}.clues ol{margin:0;padding-left:1.4rem}.clues li{margin:6px 0;font-size:1rem}.clues li.done{color:var(--muted);text-decoration:line-through}.clues li button{all:unset;cursor:pointer;font:inherit;display:inline}.clues li button:focus-visible{outline:3px solid var(--link)}.techniques{color:var(--muted);font-size:14px}.noscript{border:3px dashed var(--ink);border-radius:12px;padding:16px}.print-card{border:3px solid var(--ink);border-radius:var(--radius);background:var(--paper);box-shadow:var(--shadow);grid-template-columns:170px 1fr;align-items:center;gap:18px;padding:14px;display:grid}.print-card img{border:2px solid var(--ink);background:#fff}.print-card h3{font-size:1.15rem}.print-card p{color:var(--muted);margin:4px 0 10px;font-size:15px}.prints{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:22px;display:grid}.thumbs{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.thumbs figure{border:3px solid var(--ink);background:#fff;border-radius:12px;margin:0;overflow:hidden}.thumbs img{width:100%;height:auto}.thumbs figcaption{border-top:3px solid var(--ink);font:700 12px/1.3 var(--mono);text-transform:uppercase;padding:6px 10px}table.data{border-collapse:collapse;width:100%;font-size:15.5px}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:7px 10px}table.data th{font:700 12px var(--mono);text-transform:uppercase;border-bottom:3px solid var(--ink)}.table-scroll{border:3px solid var(--ink);border-radius:var(--radius);background:#fff;padding:6px 10px;overflow-x:auto}.combo-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px;display:grid}.combo-grid section{border:3px solid var(--ink);border-radius:var(--radius);background:#fff;padding:14px 16px}.combo-grid h3{justify-content:space-between;display:flex}.combo-grid dl{font:400 15px/1.45 var(--mono);grid-template-columns:40px 1fr;gap:3px 10px;margin:0;display:grid}.combo-grid dt{font-weight:700}.combo-grid dd{margin:0}.combo-grid .uniq{background:var(--hi);padding:0 4px;font-weight:700}.calc{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;display:grid}@media (width<=860px){.calc{grid-template-columns:1fr}}.calc label{margin:0 0 6px;font-weight:700;display:block}.calc select,.calc input[type=number],.calc textarea{font:600 18px var(--body);border:3px solid var(--ink);background:#fff;border-radius:10px;width:100%;padding:8px 10px}.digit-toggles{flex-wrap:wrap;gap:6px;display:flex}.digit-toggles button{border:3px solid var(--ink);width:46px;height:46px;font:800 20px var(--display);cursor:pointer;background:#fff;border-radius:10px}.digit-toggles button[data-s=in]{background:var(--logicgrid);color:#fff}.digit-toggles button[data-s=out]{background:var(--ink);color:#fff;text-decoration:line-through}.results{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.results li{font:700 20px var(--mono);border:3px solid var(--ink);background:#fff;border-radius:10px;padding:6px 12px}.site-footer{border-top:3px solid var(--ink);background:var(--wash);padding:40px 0 60px}.foot-cols{grid-template-columns:1.3fr repeat(5,1fr);gap:24px;display:grid}.foot-cols strong{font-family:var(--display);font-size:17px}.foot-cols ul{margin:10px 0 0;padding:0;list-style:none}.foot-cols li{margin:5px 0;font-size:15.5px}.foot-cols a{color:var(--ink);text-decoration:none}.foot-cols a:hover{text-decoration:underline}.foot-small{color:var(--muted);margin-top:26px;font-size:14px}@media (width<=860px){.foot-cols{grid-template-columns:1fr 1fr}}@media print{.site-header,.site-footer,.controls,.pad,.tabs,.crumbs{display:none!important}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
