:root{color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none;--paper: #1c211d;--ink: #e4e8dd;--muted: #a4ae9e;--floor: #303a30;--floor-alt: #354232;--wall: #262d27;--wall-lip: #56634f;--wall-shadow: #121613;--red: #ee9b81;--green: #a2c488;--focus: #a7bddf;--player: #dce4c9;--face: #2c3930;--crate-edge: #c6b28b;--crate-fill: #746341;--door: #737f63}:root[data-theme=light]{color-scheme:light;--paper: #f3f4ef;--ink: #2a342a;--muted: #626d5c;--floor: #e2e7dc;--floor-alt: #d4ddca;--wall: #6a775c;--wall-lip: #8d9b7c;--wall-shadow: #4f5a44;--red: #a34234;--green: #37623c;--focus: #445d86;--player: #29463b;--face: #f0efda;--crate-edge: #735e40;--crate-fill: #bba57b;--door: #a8b498}*{box-sizing:border-box}body{margin:0;min-width:320px;color:var(--ink);background:var(--paper);font-size:15px}#app{min-height:100svh;padding:max(48px,env(safe-area-inset-top)) 0 max(20px,env(safe-area-inset-bottom))}button{border:0;padding:0;color:inherit;background:none;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible,summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}button:disabled{opacity:.4;cursor:default}[hidden]{display:none!important}h1,h2,p{margin:0}.shell{width:min(calc(100% - 32px),600px,max(280px,calc(100svh - 190px)));margin:0 auto}.top-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}.game-title{font-size:17px;font-weight:600;line-height:1.5}.step-count{font-variant-numeric:tabular-nums;color:var(--muted)}.step-count #turn-count,#levels-button{color:var(--ink)}.board{display:grid;position:relative;grid-template-columns:repeat(var(--size),minmax(0,1fr));aspect-ratio:1;isolation:isolate;touch-action:none;user-select:none;-webkit-user-select:none}.cell{display:grid;place-items:center;position:relative;min-width:0;aspect-ratio:1;cursor:default}.cell:not(.wall):not(.turret){background:var(--floor)}.cell.shade:not(.wall):not(.turret){background:var(--floor-alt)}.cell.wall{background:var(--wall);box-shadow:inset 0 4px 0 var(--wall-lip),inset 0 -4px 0 var(--wall-shadow)}.cell.outer-wall{background:none;box-shadow:none}.cell:focus-visible{outline-offset:-3px;z-index:6}.cell.reachable,.cell.is-player,.cell.turret[aria-disabled=false]{cursor:pointer}.piece-svg{display:block;width:100%;height:100%;pointer-events:none}.player-mark,.crate-mark,.turret-mark,.relay-mark,.plate-mark,.exit-mark{display:block;width:68%;height:68%;position:relative;z-index:3;color:var(--muted);pointer-events:none}.player-mark{position:absolute;width:62%;height:62%;z-index:5;color:var(--player)}.crate-mark{color:var(--crate-edge)}.player-mark.caught>svg{opacity:.55}.hit-mark{position:absolute;inset:0;display:grid;place-items:center;font-size:34px;font-weight:700;color:var(--red)}.turret-mark{width:60%;height:60%;color:var(--muted);transform:translateY(-8%)}.turret-mark.firing{color:var(--red)}.turret-mark.off{opacity:.38}.turret-mark small{position:absolute;right:-14%;top:-5%;font:600 12px/1 sans-serif;color:var(--ink);white-space:nowrap}.turret-beats{position:absolute;bottom:8%;display:flex;gap:3px;pointer-events:none}.turret-beats i{width:5px;height:5px;border:1px solid var(--muted);border-radius:50%}.turret-beats i.fire{background:var(--red);border-color:var(--red)}.turret-beats.idle{opacity:.45}.relay-mark{color:var(--muted);width:62%;height:62%;transform:translateY(-8%)}.relay-mark.off{color:var(--green)}.plate-mark{width:70%;height:70%;transform:translateY(-8%)}.plate-mark.pressed{color:var(--green)}.exit-mark{width:57%;height:62%;transform:translateY(-10%)}.exit-mark.open{color:var(--green)}.tile-caption{position:absolute;bottom:4%;left:0;width:100%;text-align:center;font-size:12px;font-weight:600;color:var(--ink);z-index:3;pointer-events:none;text-shadow:0 0 2px var(--paper),0 0 3px var(--paper),0 0 4px var(--paper)}.is-player .relay-mark,.is-player .plate-mark,.is-player .exit-mark{opacity:.25}.move-dot{width:6px;height:6px;border-radius:50%;background:var(--muted);z-index:3;pointer-events:none}.move-dot.risky{width:auto;height:auto;background:none;color:var(--red);font:500 25px/1 sans-serif}.move-dot.corner{position:absolute;right:6%;bottom:6%}.beam-layer{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}.beam-layer path{fill:none;stroke:var(--red);stroke-width:.04}.play-toolbar{display:flex;align-items:center;justify-content:space-between;gap:4px;width:100%;margin:8px auto 0;font-size:15px}.play-toolbar>:first-child{text-align:left}.play-toolbar>:last-child{text-align:right}.play-toolbar button{min-width:44px;min-height:44px;color:var(--muted)}.turn-action{width:64px;flex-shrink:0}#wait-button,#next-button{position:relative;width:100%;color:var(--ink);font-weight:500}#wait-button.unsafe-wait{color:var(--red)}.wait-warning{position:absolute;right:6px;top:12px;font-size:12px}.status-line{display:flow-root;min-height:56px}.board-instructions,.preview-notice,.feedback{margin-top:6px;text-align:left;color:var(--muted);font-size:13px;line-height:1.7}.feedback:empty{display:none}.feedback.error,.preview-notice{color:var(--red)}.result{display:flex;align-items:baseline;justify-content:flex-start;gap:8px;margin-top:6px;font-size:13px;line-height:1.7}.result h2{font-size:inherit;font-weight:400}.result p{color:var(--muted)}.dialog{width:min(400px,calc(100% - 40px));max-height:calc(100dvh - 48px);background:var(--paper);color:var(--ink);border:0;padding:4px;overscroll-behavior:contain}.dialog::backdrop{background:var(--paper)}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:8px}.dialog h2{font-size:18px;font-weight:600}.dialog-top button{min-height:44px;padding:0 8px;color:var(--muted);font-size:13px}.menu-note{color:var(--muted);font-size:13px;line-height:1.8}.instructions{margin-top:20px;font-size:14px;line-height:1.8}.instructions summary{cursor:pointer;min-height:44px;padding:9px 0}.instructions p+p{margin-top:12px}.menu-actions{display:flex;flex-wrap:wrap;align-items:center;gap:0 24px;margin-top:4px}.menu-actions button{min-height:44px;text-decoration:underline;text-underline-offset:4px}.hint{margin:4px 0 16px;font-size:13px;line-height:1.8}.forecast-tabs{display:flex;align-items:center;gap:16px;margin-top:16px;font-size:13px}.forecast-tabs>span{color:var(--muted)}.forecast-tabs button{min-height:44px}.forecast-tabs button[aria-pressed=true]{text-decoration:underline;text-underline-offset:4px}.save-note{margin-top:24px}.share-note{word-break:break-all}.chapter-title{margin:16px 0 0;color:var(--muted);font-size:13px;font-weight:400}.level-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px 8px;margin-top:4px}.level-choice{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;gap:5px;min-height:64px}.level-choice:disabled .level-index{color:var(--muted)}.level-choice.selected .level-index{text-decoration:underline;text-underline-offset:5px}.level-index{color:var(--ink);font-variant-numeric:tabular-nums;font-size:18px}.level-record{min-height:16px;color:var(--muted);font-size:12px;white-space:nowrap}@media(hover:hover){.play-toolbar button:hover:not(:disabled),.dialog button:hover{text-decoration:underline;text-underline-offset:4px}.cell.reachable:hover .move-dot{transform:scale(1.4)}.cell.is-player:hover .player-mark,.cell.turret[aria-disabled=false]:hover .turret-mark{opacity:.8}}@media(max-width:700px){#app{padding-top:max(24px,env(safe-area-inset-top))}.turret-mark small{font-size:11px}}@media(max-width:360px){.forecast-tabs{gap:12px}}@media(max-height:500px)and (min-width:600px){#app{padding-top:16px;padding-bottom:16px}.shell{width:max(260px,min(340px,calc(100svh - 124px)))}.top-row{margin-bottom:4px}.status-line{min-height:36px}}
