:root{--ground: #F3F1EA;--panel: #FFFFFF;--soft: #ECE9DF;--ink: #16161A;--body: #3A3934;--muted: #55534D;--rule: #C9C5B8;--accent: #2B4C9B;--accent-dark: #1C3370;--warn: #8A3B12;--warn-fill: #FBF1EA;--sans: "IBM Plex Sans", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--pixel: "Silkscreen", var(--mono);color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5}a{color:var(--accent)}a:hover{color:var(--accent-dark)}h1,h2,h3{margin:0;line-height:1.15}p{margin:0}button,input,select{font:inherit;color:inherit}[hidden]{display:none!important}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.site-header{border-bottom:2px solid var(--ink);background:var(--panel)}.site-header .inner{max-width:1160px;margin:0 auto;padding:14px 24px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-family:var(--pixel);font-size:20px;letter-spacing:.5px}.brand-mark{width:22px;height:22px;flex-shrink:0;image-rendering:pixelated;filter:drop-shadow(2px 2px 0 var(--ink));background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22' shape-rendering='crispEdges'><defs><pattern id='d' width='2' height='2' patternUnits='userSpaceOnUse'><rect width='2' height='2' fill='%23FFFFFF'/><rect width='1' height='1' fill='%2316161A'/><rect x='1' y='1' width='1' height='1' fill='%2316161A'/></pattern></defs><rect x='3' width='16' height='17' fill='%2316161A'/><rect x='4' y='1' width='14' height='15' fill='%23FFFFFF'/><rect x='6' y='2' width='10' height='8' fill='%2316161A'/><rect x='7' y='3' width='8' height='6' fill='url(%23d)'/><rect x='11' y='12' width='5' height='1' fill='%2316161A'/><rect x='5' y='17' width='12' height='3' fill='%2316161A'/><rect x='6' y='17' width='10' height='2' fill='%23FFFFFF'/></svg>") center / 22px 22px no-repeat}.site-nav{display:flex;flex-wrap:wrap;gap:4px}.site-nav a{padding:10px 14px;color:var(--ink);text-decoration:none}.site-nav a[aria-current=page]{font-weight:600;border-bottom:2px solid var(--ink)}main{max-width:1160px;margin:0 auto;padding:40px 24px 80px;display:flex;flex-direction:column;gap:44px}.eyebrow{font-family:var(--pixel);font-size:13px;letter-spacing:1px;color:var(--muted)}.lede{font-size:18px;line-height:1.55;color:var(--body);max-width:680px}.note{font-size:14px;color:var(--muted)}.button{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 20px;border:2px solid var(--ink);background:var(--panel);color:var(--ink);font-weight:600;text-decoration:none;cursor:pointer}.button.primary{background:var(--ink);color:#fff;box-shadow:3px 3px 0 var(--accent)}.button.primary:hover,.button.primary:focus-visible{color:#fff;transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--accent)}.button.primary:active{transform:translate(3px,3px);box-shadow:none}.button:focus-visible,.chip:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.button.quiet{border-color:transparent;background:transparent;color:var(--warn);text-decoration:underline}.badge{font-family:var(--pixel);font-size:11px;padding:3px 6px;border:2px solid var(--ink)}.badge.solid{background:var(--ink);color:#fff}.badge.free{border-color:var(--accent);color:var(--accent)}.badge.progress{border-color:var(--warn);color:var(--warn)}.window{border:2px solid var(--ink);background:var(--panel);box-shadow:4px 4px 0 var(--ink)}.titlebar{height:14px;border-bottom:2px solid var(--ink);padding:3px 6px;background:repeating-linear-gradient(#FFFFFF 0 2px,var(--ink) 2px 3px);background-clip:content-box}.dither{background-color:#e7e4da;background-image:radial-gradient(var(--ink) .8px,transparent .9px);background-size:6px 6px}.icon-slot{width:64px;height:64px;background:var(--panel);border:2px solid var(--ink);display:grid;place-items:center}.icon-slot img{width:64px;height:64px;image-rendering:pixelated}.drop{flex-direction:row;border:2px dashed var(--ink);background:var(--soft);padding:22px 24px;display:flex;flex-wrap:wrap;align-items:center;gap:18px}.drop[data-state=found]{background:var(--panel)}.drop[data-state=wrong]{border-color:var(--warn);background:var(--warn-fill)}.drop .message{flex:999 1 380px;min-width:0;display:flex;flex-direction:column;gap:4px}.drop h2{font-size:20px;font-weight:600}html.dragging .drop{outline:4px solid var(--accent);outline-offset:4px}main#home{padding-top:56px;gap:48px}.intro{flex-direction:row;flex-wrap:wrap;gap:40px;align-items:flex-end}.intro .text{flex:999 1 520px;min-width:0;display:flex;flex-direction:column;gap:18px}.intro h1{font-size:52px;line-height:1.05;letter-spacing:-.5px}.intro .lede{font-size:19px;max-width:640px}@media(max-width:600px){.intro h1{font-size:36px}}.facts{flex:1 1 260px;margin:0;padding:18px 20px;display:flex;flex-direction:column;gap:10px;font-size:15px}.facts p{margin:0;color:var(--body)}.facts strong{color:var(--ink)}.drop{padding:28px;gap:24px}.drop .message{gap:6px}.drop h2{font-size:22px}.drop .message p{font-size:16px;color:var(--body)}.drop .button{min-height:48px;padding:0 22px}#drop-choose{box-shadow:3px 3px 0 var(--ink)}#drop-choose:focus-within{outline:3px solid var(--accent);outline-offset:2px}.yours{list-style:none;margin:0;padding:24px;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:24px;border:2px solid var(--ink);background:#e7e4da}.yours li{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;min-width:0}.yours .play-icon{width:72px;height:72px;display:grid;place-items:center;background:var(--panel);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink)}.yours .play-icon:hover,.yours .play-icon:focus-visible{box-shadow:3px 3px 0 var(--accent)}.yours .play-icon:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.yours .icon-slot,.yours .icon-slot img{width:48px;height:48px}.yours .icon-slot.has-icon{border:none;background:none}.yours .name{max-width:100%;padding:2px 6px;background:var(--panel);border:1px solid var(--ink);font-size:14px;font-weight:600;line-height:1.3;color:var(--ink);text-decoration:none}.yours .name:hover,.yours .name:focus-visible{text-decoration:underline}.yours .version{font-family:var(--mono);font-size:12px;padding:1px 5px;background:var(--ground);color:var(--body)}.controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.search{flex:999 1 320px;min-width:0;display:flex;align-items:center;gap:10px;min-height:48px;padding:0 14px;border:2px solid var(--ink);background:var(--panel)}.search input{flex-grow:1;min-width:0;border:0;outline:none;background:transparent;font-size:16px}.control{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600}.control select{min-height:48px;padding:0 10px;border:2px solid var(--ink);background:var(--panel);font-weight:400;font-size:15px}.views{display:flex;border:2px solid var(--ink);background:var(--panel)}.views button{width:48px;height:44px;display:grid;place-items:center;border:0;background:var(--panel);cursor:pointer}.views button+button{border-left:2px solid var(--ink)}.views button[aria-pressed=true]{background:var(--ink);color:#fff}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{min-height:44px;padding:0 14px;border:2px solid var(--ink);background:var(--panel);font-size:14px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:8px}.chip[aria-pressed=true]{background:var(--ink);color:#fff}.chip .count{font-family:var(--mono);font-weight:400;font-size:13px}.grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px}.card{display:flex;flex-direction:column}.card .titlebar{height:12px;padding:2px 6px}.card .art{height:104px;border-bottom:2px solid var(--ink);display:grid;place-items:center}.card .icon-slot{width:52px;height:52px}.card .icon-slot img{width:32px;height:32px}.card .body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px;flex-grow:1}.card h3{font-size:16px;line-height:1.25}.card h3 a{color:var(--ink);text-decoration:none}.card .by{font-size:13px;color:var(--muted)}.card .badges{margin-top:auto;padding-top:6px;display:flex;flex-wrap:wrap;gap:6px}.table-box{border:2px solid var(--ink);background:var(--panel);overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:15px}th{text-align:left;font-weight:600;background:var(--soft);border-bottom:2px solid var(--ink)}th,td{padding:10px 14px}tbody tr+tr{border-top:1px solid var(--rule)}td.mono{font-family:var(--mono);font-size:13px}.empty{border:2px dashed var(--ink);padding:24px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}.hero{display:flex;flex-direction:row;flex-wrap:wrap;gap:40px;align-items:stretch}.hero .text{flex:999 1 520px;min-width:0;display:flex;flex-direction:column;gap:14px}.hero h1{font-size:48px;letter-spacing:-.5px}.hero .art{flex:1 1 280px;min-height:240px;display:grid;place-items:center}.hero .icon-slot{width:128px;height:128px}.hero .icon-slot img{width:96px;height:96px}.actions{display:flex;flex-wrap:wrap;gap:12px;padding-top:6px}.columns{display:flex;flex-wrap:wrap;gap:40px;align-items:flex-start}.columns>.main{flex:999 1 560px;min-width:0;display:flex;flex-direction:column;gap:40px}.columns>aside{flex:1 1 300px;min-width:0;display:flex;flex-direction:column;gap:24px}section{display:flex;flex-direction:column;gap:14px}section>h2{font-size:26px}.box{padding:18px 20px;display:flex;flex-direction:column;gap:8px;font-size:15px}.box h2{font-size:18px}main#game{padding-top:36px}.hero .text{gap:16px}.hero h1{font-size:52px;line-height:1.05;font-weight:700}.hero .lede{font-size:19px;max-width:640px}.hero .badge{font-size:12px;padding:4px 8px}.hero .actions{gap:14px;padding-top:8px}.hero .button{min-height:52px}.hero .button.primary{padding:0 28px;font-size:18px;box-shadow:4px 4px 0 var(--accent)}.hero .art{flex-basis:300px;min-height:260px;box-shadow:5px 5px 0 var(--ink)}.hero .icon-slot{text-align:center;font-family:var(--mono);font-size:12px;line-height:1.3;color:var(--body)}.screens-head{display:flex;flex-direction:column;gap:2px}.screens-head h2{font-size:28px}.screens{list-style:none;margin:0;padding:4px 4px 12px;display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--ink) var(--soft)}.screens:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.screens li{flex:0 0 auto;width:min(320px,78vw);scroll-snap-align:start;display:flex;flex-direction:column;gap:10px}.screens a{display:block;border:2px solid var(--ink);background:var(--ink);line-height:0}.screens a:hover{outline:2px solid var(--accent);outline-offset:2px}.screens a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.screens img{width:100%;height:auto;object-fit:contain;background-size:cover;image-rendering:auto}.screens .caption{display:flex;gap:10px;align-items:baseline;font-size:15px;font-weight:600}.screens .caption span:first-child{font-family:var(--pixel);font-size:12px;font-weight:400;color:var(--muted)}.screen-view{padding:0;border:0;background:transparent;max-width:100vw;max-height:100vh;width:100vw;height:100vh;overflow:hidden}.screen-view::backdrop{background:#000000d9}.screen-view[open]{display:flex;align-items:center;justify-content:center;gap:8px}.screen-view-figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:10px;min-width:0}.screen-view-figure img{display:block;height:auto;image-rendering:pixelated}.screen-view-figure figcaption{color:#e9e6dc;font-size:15px;text-align:center}#screen-view-count{font-family:var(--pixel);font-size:11px;color:#a9a69c;margin-right:6px}.screen-view-arrow,.screen-view-close{flex-shrink:0;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:#e9e6dc;font-size:34px;line-height:1;cursor:pointer}.screen-view-arrow:hover,.screen-view-close:hover,.screen-view-arrow:focus-visible,.screen-view-close:focus-visible{background:#ffffff1f;outline:none}.screen-view-close{position:fixed;top:12px;right:12px;font-size:30px}.screen-view-arrow[hidden]{display:block;visibility:hidden}.columns>.main{gap:44px}.columns>.main section{gap:16px}.columns>.main section>h2{font-size:28px}.columns>aside .titlebar{height:20px;padding:4px 8px}ul.progress{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}ul.progress li{display:flex;gap:12px;align-items:baseline;color:var(--body)}ul.progress .label{font-family:var(--pixel);font-size:12px;min-width:64px;flex-shrink:0;color:var(--ink)}ul.progress .label.open{color:var(--warn)}ul.progress .label.added{color:var(--accent)}.keys{margin:0;display:flex;flex-direction:column}.keys dt{font-family:var(--mono);font-size:14px;font-weight:500;color:var(--ink);padding-top:10px;border-top:1px solid var(--rule)}.keys dt:first-child{padding-top:0;border-top:0}.keys dd{margin:2px 0 0;padding-bottom:10px;color:var(--body);font-size:15px;line-height:1.45}.keys dd:last-child{padding-bottom:0}.site-footer{border-top:2px solid var(--ink);padding-top:22px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;font-size:14px;color:var(--muted)}.steps{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:20px}.steps li{flex:1 1 240px;min-width:0;border-top:2px solid var(--ink);padding-top:14px;display:flex;flex-direction:column;gap:6px;font-size:15px;color:var(--body)}.steps strong{font-size:18px;color:var(--ink)}.proof{border:2px dashed var(--ink);background:var(--soft);padding:20px 22px;display:flex;flex-wrap:wrap;gap:18px;align-items:center}.proof .badge{font-size:13px;padding:4px 8px;border:0}.proof p{margin:0;flex:999 1 420px;min-width:0;font-size:16px;line-height:1.55;color:var(--ink)}
