*{box-sizing:border-box} :root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--page);font-synthesis:none}body{margin:0}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:4px}a{color:inherit;text-underline-offset:4px}.skip{position:absolute;left:12px;top:-90px;padding:10px;background:var(--paper);z-index:20}.skip:focus{top:10px}.header,main,footer{width:min(1120px,calc(100% - 48px));margin:auto}.header{height:88px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-size:22px;font-weight:800;text-decoration:none;display:flex;align-items:center;gap:10px;letter-spacing:-.7px}.brand svg{width:34px;height:34px}.header>a:last-child{font-size:13px;text-decoration:none;font-weight:650}.heading{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:38px 0 30px}.eyebrow{font-size:10px;letter-spacing:2.4px;font-weight:800;margin:0 0 12px;color:var(--muted)}h1{font-size:clamp(26px,3.6vw,42px);letter-spacing:-1.5px;line-height:1.1;margin:0}.intro{font-size:15px;color:var(--muted);margin:13px 0 0}.challenge-picker{display:grid;gap:9px;font-size:11px;font-weight:750;color:var(--muted);min-width:190px}.challenge-picker select{border:1px solid var(--line);border-radius:10px;padding:11px 30px 11px 12px;background:var(--paper);color:var(--ink);max-width:100%}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:24px;align-items:start}.board-panel{border-radius:22px;background:var(--panel);padding:22px;box-shadow:var(--shadow);min-width:0}.board-top{display:flex;justify-content:space-between;gap:12px;font-size:12px;font-weight:700;margin-bottom:18px}.board-top>span:last-child{color:var(--muted)}.stage{position:relative;width:100%;max-width:500px;margin:0 auto}.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.stats>div{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--stat);border-radius:12px;padding:13px 15px}.stats span{font-size:11px;color:var(--muted)}.stats strong{font-size:21px;font-variant-numeric:tabular-nums}.rail{border:1px solid var(--line);background:var(--paper);border-radius:22px;padding:24px}.rail h2{font-size:17px;letter-spacing:-.4px;margin:0 0 15px}.rail p{font-size:13px;line-height:1.65;color:var(--muted);margin:10px 0}.rail .feedback{min-height:44px;color:var(--ink);font-weight:650;padding:13px 0;border-top:1px solid var(--line);margin-top:22px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.actions button,.next{border:1px solid var(--line);background:var(--paper);border-radius:10px;min-height:43px;font-size:12px;font-weight:700;color:var(--ink)}.actions #hint{grid-column:1/-1;background:var(--accent);color:var(--accent-text);border-color:transparent}.next{width:100%;margin-top:14px;background:var(--accent);color:var(--accent-text);border-color:transparent}.result{margin-top:18px;border-radius:13px;padding:15px;background:var(--stat)}.result h2{margin-bottom:7px}.result p{margin:0}.save-notice{border:1px solid #b87934;background:#fff4dd;color:#5a3513;padding:14px 17px;border-radius:12px;margin-bottom:22px;font-size:13px}.save-notice p{margin:0 0 10px;line-height:1.55}.save-notice button{border:1px solid #b87934;padding:8px 12px;border-radius:7px;background:#fff8ec;color:inherit;font-size:12px}.save-notice details{margin-top:12px;font-size:11px;overflow-wrap:anywhere}.about{margin-top:36px;padding:23px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;align-items:center}.about p{font-size:13px;color:var(--muted);max-width:650px;line-height:1.65;margin:0}.about a{font-size:12px;white-space:nowrap;font-weight:700}footer{padding:22px 0 32px;display:flex;justify-content:space-between;gap:16px;font-size:11px;color:var(--muted)}footer nav{display:flex;gap:20px}dialog{width:min(420px,calc(100% - 32px));border:1px solid var(--line);padding:25px;border-radius:18px;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#10172488}dialog h2{font-size:20px;margin:0 0 15px}dialog p{font-size:14px;line-height:1.6}.dialog-actions{display:flex;justify-content:end;gap:10px;margin-top:24px}.dialog-actions button{border:1px solid var(--line);border-radius:9px;padding:11px 14px;background:var(--paper);color:var(--ink)}.dialog-actions button:last-child{background:var(--accent);color:var(--accent-text)}[hidden]{display:none!important}.article{max-width:720px;padding:48px 0 24px}.article h1{margin-bottom:30px}.article h2{font-size:20px;letter-spacing:-.3px;margin:30px 0 10px}.article p{font-size:15px;line-height:1.8;color:var(--muted)}.article>.back{display:inline-block;margin:22px 0;font-weight:700}.noscript{padding:20px;text-align:center}@media(max-width:760px){.play-layout{grid-template-columns:minmax(0,1fr)}.rail{padding:20px}.rail h2{margin-bottom:8px}.rail .feedback{margin-top:14px;padding:12px 0;min-height:0}.actions{grid-template-columns:1fr 1fr 1fr}.actions #hint{grid-column:auto}.about{margin-top:22px;align-items:start;flex-direction:column;gap:8px}.board-panel{padding:18px}.rail>p{max-width:100%}}@media(max-width:480px){.header,main,footer{width:calc(100% - 28px)}.header{height:68px}.brand{font-size:20px}.heading{padding:26px 0 22px;display:grid;gap:20px}.intro{font-size:13px}.challenge-picker{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px}.challenge-picker select{width:100%;min-width:0}.play-layout{gap:14px}.board-panel{padding:14px;border-radius:16px}.board-top{font-size:11px;margin-bottom:12px}.stats{margin-top:13px}.stats>div{padding:10px 12px}.stats span{font-size:10px}.rail{padding:17px;border-radius:16px}footer{font-size:10px;flex-wrap:wrap}.article{padding-top:30px}h1{letter-spacing:-.8px}}

 :root{--page:#f6f2fa;--paper:#fefaff;--panel:#e3dbed;--stat:#f6f0fc;--ink:#42345c;--muted:#847293;--line:#e0d6e8;--accent:#655086;--accent-text:#fff9ef;--focus:#ba7a34;--shadow:0 15px 32px #513e6412}.stage{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px;background:#ccbedb;border:1px solid #c8b9d7;border-radius:18px;touch-action:none}.tile{aspect-ratio:1;display:grid;place-items:center;border-radius:12px;background:#baaacc55;font-size:clamp(24px,4vw,37px);font-weight:750;letter-spacing:-1px;color:#625071;font-variant-numeric:tabular-nums;border:1px solid #bdaacc20;box-shadow:inset 0 1px 1px #ffffff50}.tile.filled{background:#f9f2e5;box-shadow:0 3px 1px #74628225}.tile[data-value="4"]{background:#ede2d3}.tile[data-value="8"]{background:#efc398;color:#805232}.tile[data-value="16"]{background:#e3a374;color:#fff9ed}.tile[data-value="32"]{background:#c88794;color:#fff}.tile[data-value="64"]{background:#a372a6;color:#fff}.tile[data-value="128"]{background:#815d9d;color:#fff}.tile[data-value="256"]{background:#65508e;color:#fff4dc;box-shadow:0 0 15px #74628260}.tile.spawned{animation:arrive .2s ease-out}.direction-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:20px}.direction-pad button{min-height:45px;border:1px solid #d8cce2;border-radius:11px;font-size:24px;background:#eee6f5;color:#655086}.direction-pad [data-direction="up"]{grid-column:2}.direction-pad [data-direction="left"]{grid-column:1}.direction-pad [data-direction="down"]{grid-column:2}.direction-pad [data-direction="right"]{grid-column:3;grid-row:2}.direction-pad button.hinted{outline:3px dashed #b9783e;outline-offset:2px}.rail .key-note{font-size:10px;text-align:center;letter-spacing:.3px}.target{font-size:12px}.rail .result{background:#eadde7}@keyframes arrive{from{transform:scale(.8);opacity:.3}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.tile.spawned{animation:none}}@media(max-width:760px){.direction-pad{grid-template-columns:repeat(4,1fr);margin-top:13px}.direction-pad [data-direction]{grid-column:auto;grid-row:auto}}@media(max-width:480px){.stage{padding:9px;gap:8px;border-radius:13px}.tile{border-radius:9px;font-size:29px}}
