*{box-sizing:border-box;margin:0;padding:0}html,body{min-height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none;touch-action:manipulation}#app{min-height:100%;display:flex;align-items:flex-start;justify-content:center;padding:16px}.game{width:min(92vw,400px);display:flex;flex-direction:column;gap:14px}.crumb{font-size:14px}.crumb a{color:var(--accent);text-decoration:none;font-weight:700}.crumb a:hover{text-decoration:underline}.topbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.title{font-size:clamp(28px,8vw,44px);font-weight:800;line-height:1;letter-spacing:-1px}.scores{display:flex;gap:8px}.score-box{background:var(--board-bg);color:var(--accent-text);border-radius:6px;padding:6px 12px;text-align:center;min-width:58px}.score-box .label{font-size:10px;text-transform:uppercase;letter-spacing:1px;opacity:.85;font-weight:700}.score-box .value{font-size:20px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}.board-wrap{position:relative;border-radius:10px}.board-scroll{overflow-x:auto;overflow-y:hidden;border-radius:10px;-webkit-overflow-scrolling:touch}.board{display:grid;grid-template-columns:repeat(var(--cols),1fr);gap:2px;padding:6px;background:var(--board-bg);border-radius:10px;min-width:calc(var(--cols) * 32px);touch-action:pan-x}.tile{aspect-ratio:1 / 1;min-width:26px;display:flex;align-items:center;justify-content:center;border-radius:4px;font-size:clamp(16px,5vw,26px);line-height:1;user-select:none;-webkit-user-select:none}.tile.floor{background:var(--cell-bg)}.tile.wall{background:#3a2f26;box-shadow:inset 0 0 0 1px #00000040}.tile.target{background:var(--cell-bg);color:#d98a2b;font-weight:800}.tile.crate{background:var(--cell-bg)}.tile.crate.done{background:#6fbf73}.tile.player,.tile.player.on-target{background:var(--cell-bg)}.controls{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.btn{background:var(--accent);color:var(--accent-text);border:none;border-radius:6px;padding:10px 12px;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap;transition:filter .12s ease}.btn:hover{filter:brightness(1.05)}.btn:active{filter:brightness(.95)}.btn.ghost{background:var(--surface);color:var(--text);border:1px solid var(--line)}.btn.ghost:hover{border-color:var(--accent);filter:none}.dpad{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);gap:8px;max-width:260px;width:100%;margin:0 auto}.dbtn{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:8px;font-size:22px;font-weight:800;padding:12px 0;cursor:pointer;transition:background .12s ease,transform 80ms ease}.dbtn:hover{background:var(--line)}.dbtn:active{transform:scale(.94)}.dbtn.up{grid-column:2;grid-row:1}.dbtn.left{grid-column:1;grid-row:2}.dbtn.down{grid-column:2;grid-row:2}.dbtn.right{grid-column:3;grid-row:2}.how{font-size:13px;opacity:.85;line-height:1.5}.how b{font-weight:700}.overlay{position:absolute;inset:0;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:20px;background:var(--overlay-bg);z-index:10;opacity:0;pointer-events:none;transition:opacity .2s ease}.overlay.show{opacity:1;pointer-events:auto}.overlay .msg{font-size:clamp(26px,8vw,40px);font-weight:800;color:#43a047}.overlay .sub{font-size:15px;color:var(--text);opacity:.9;font-variant-numeric:tabular-nums}.overlay .actions{display:flex;gap:10px;margin-top:8px}
