*{box-sizing:border-box}body{margin:0;background:#f0f0f0;color:#182f27;font:16px/1.65 system-ui,sans-serif;padding:20px 12px 40px}main{max-width:560px;margin:auto}a{color:#285b43;text-underline-offset:4px}h1{font-size:clamp(26px,6vw,36px);margin:18px 0 8px}p{margin:8px 0 16px}.toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center}#restart{background:#285b43;color:#fff;padding:10px 18px;border:0;border-radius:6px;font:inherit;cursor:pointer;min-height:44px}#stage{position:relative;padding:clamp(22px,6vw,40px);margin-top:16px;border:1px solid #bbcabf;border-radius:8px;background:#dce5dc}#game-board{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px}.tile{width:100%;aspect-ratio:1;border:1px solid #9ba99e;border-radius:4px;background:#fffdf6;color:#182f27;font:clamp(20px,5.5vw,36px)/1 system-ui;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;user-select:none;touch-action:manipulation}.tile:disabled{color:#182f27;opacity:1;cursor:default}.tile.empty{visibility:hidden}.tile.selected{background:#fff2a3;outline:2px solid #866b00;outline-offset:-2px}button:focus-visible,a:focus-visible{outline:3px solid #1769aa;outline-offset:3px}#connection{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden}#connection polyline{fill:none;stroke:#a53e1b;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}#message{min-height:3.4em;margin:16px 0}
