:root{--paper: #f7f0e1;--surface: #fffaf0;--ink: #2b2118;--ink-2: #5b4a3a;--line: #d9c9a8;--brass: #8a5a12;--brass-hover: #6f4709;--brass-soft: #f1dfb8;--blueprint: #1e3a5c;--blueprint-line: #3d6290;--floor: #24466d;--ok: #1f6b3d;--ok-soft: #e3f1e6;--bad: #b3261e;--bad-soft: #fbe5e2;--focus: #0b57d0;--fs-1: .8125rem;--fs-2: .9375rem;--fs-3: 1.0625rem;--fs-4: 1.3125rem;--fs-5: 1.625rem;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--radius: 10px;--radius-sm: 8px;--tap: 44px;font-family:ui-rounded,SF Pro Rounded,Segoe UI,system-ui,-apple-system,Roboto,sans-serif;font-size:100%;line-height:1.45;color:var(--ink);background:var(--paper);-webkit-text-size-adjust:100%}*{box-sizing:border-box}body{margin:0;min-width:320px;font-size:var(--fs-2)}h1,h2,h3,p,ul,ol{margin:0}h1,h2,h3{text-wrap:balance}p,li{text-wrap:pretty}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.icon{width:1.1em;height:1.1em;vertical-align:-.2em;flex:none}.app{max-width:1180px;margin:0 auto;padding:0 var(--space-4) var(--space-5)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0}.brand{display:flex;align-items:center;gap:var(--space-2)}.brand-name{font-size:var(--fs-4);font-weight:700}.btn{min-height:var(--tap);padding:0 var(--space-4);border:2px solid var(--brass);border-radius:var(--radius-sm);background:var(--surface);color:var(--brass);font:inherit;font-weight:600;cursor:pointer;transition:background-color .12s ease,color .12s ease;touch-action:manipulation}.btn-primary{background:var(--brass);color:#fff}@media (hover: hover){.btn:hover:not(:disabled){background:var(--brass-soft)}.btn-primary:hover:not(:disabled){background:var(--brass-hover)}}.btn-quiet{border-color:var(--line);color:var(--ink)}.btn:disabled,.btn-primary:disabled{border-color:var(--line);border-style:dashed;background:transparent;color:var(--ink-2);cursor:not-allowed}.modes{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);margin-block-end:var(--space-3)}.tab{min-height:var(--tap);border:2px solid var(--line);border-radius:var(--radius-sm);background:transparent;color:var(--ink);font:inherit;font-weight:600;cursor:pointer}.tab-on{border-color:var(--ink);background:var(--ink);color:var(--paper)}.level-pick{display:grid;grid-template-columns:auto repeat(6,minmax(36px,1fr));gap:var(--space-2);padding:0 0 var(--space-1);margin-block-end:40px;list-style:none;overflow-x:auto}.chip{display:inline-flex;align-items:center;justify-content:center;gap:2px;width:100%;min-height:var(--tap);padding:0 var(--space-2);border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit;font-weight:600;cursor:pointer}.chip-done{border-color:var(--ok);color:var(--ok)}.chip-on{border-color:var(--brass);background:var(--brass);color:#fff}.play{display:grid;gap:var(--space-3);grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "board" "run" "tray" "coach" "rules"}.level-head{grid-area:head}.board-wrap{grid-area:board}.run{grid-area:run}.tray{grid-area:tray}.coach{grid-area:coach}.rules{grid-area:rules}@media (min-width: 900px){.level-pick{grid-template-columns:auto repeat(6,52px)}.play{grid-template-columns:minmax(0,1fr) 380px;grid-template-rows:auto auto auto auto 1fr;grid-template-areas:"board head" "board run" "board tray" "board coach" "board rules";column-gap:var(--space-5);align-items:start}.board-wrap{position:sticky;top:var(--space-3)}}.level-head h2{font-size:var(--fs-4);line-height:1.2}.goal{color:var(--ink-2);margin-block-start:var(--space-1)}.targets{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);padding:0;margin-block-start:var(--space-2);list-style:none}.targets li{display:flex;align-items:center;gap:var(--space-2)}.badge{display:inline-grid;place-items:center;width:24px;height:24px;border:2px solid var(--ink);border-radius:50%;background:#fff;font-weight:700;font-size:var(--fs-1)}.target-done .badge{border-color:var(--ok);background:var(--ok-soft)}.board-frame{max-width:600px;margin:0 auto;padding:6px;border-radius:14px;background:var(--brass)}.board{position:relative;display:grid;width:100%;border-radius:var(--radius);background:var(--blueprint);overflow:hidden}.cell{position:relative;aspect-ratio:1;min-width:0;padding:0;border:0;box-shadow:inset 0 0 0 1px var(--blueprint-line);background:linear-gradient(var(--blueprint-line),var(--blueprint-line)) center / 18% 1px no-repeat,linear-gradient(var(--blueprint-line),var(--blueprint-line)) center / 1px 18% no-repeat,var(--floor);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.cell-wall,.cell-source,.cell-target,.cell-piece{background:var(--floor)}.cell-wall{cursor:not-allowed}.cell:focus-visible{z-index:2;outline:3px solid #fff;outline-offset:-3px;box-shadow:inset 0 0 0 6px var(--focus)}.cell-hint:after{content:"";position:absolute;top:12%;right:12%;bottom:12%;left:12%;border:3px dashed #ffd166;border-radius:var(--radius-sm);pointer-events:none}.tile-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.tile-svg text{font-family:inherit}.pulse-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.pulse-layer text{font-family:inherit}.wheel-spin{animation:spin 1.6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.controls{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:var(--space-2)}.status{display:flex;gap:var(--space-2);align-items:baseline;margin-block-start:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--surface);border:2px solid var(--line)}.status-won{border-color:var(--ok);background:var(--ok-soft);color:var(--ok);font-weight:600}.status-failed{border-color:var(--bad);background:var(--bad-soft);color:var(--bad);font-weight:600}.after{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-block-start:var(--space-2)}.hint-line{color:var(--ink-2);margin-block-end:var(--space-2)}.tools{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:var(--space-2)}.tool{display:flex;flex-direction:column;align-items:center;gap:2px;min-height:88px;padding:var(--space-2) var(--space-1);border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;touch-action:manipulation}.tool-on{border-color:var(--brass);box-shadow:inset 0 0 0 2px var(--brass);background:var(--brass-soft)}.tool:disabled{opacity:.55;cursor:not-allowed}.tool-icon{position:relative;display:grid;place-items:center;width:36px;height:36px;border-radius:6px;background:var(--floor);color:#fff}.tool-x{background:var(--bad-soft);color:var(--bad)}.tool-name{font-weight:600;font-size:var(--fs-1)}.tool-count{font-size:var(--fs-1);color:var(--ink-2);text-align:center;line-height:1.2}.tray-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-block-start:var(--space-2)}.notice:empty{display:none}.notice{margin-block-start:var(--space-2);color:var(--ink-2)}.share-field{display:grid;gap:var(--space-1);margin-block-start:var(--space-2);font-weight:600}.share-field input{min-height:var(--tap);width:100%;padding:0 var(--space-2);border:2px solid var(--line);border-radius:var(--radius-sm);background:#fff;color:var(--ink);font:inherit;font-weight:400}.coach,.rules{padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:var(--surface)}.coach h3,.rules h3{font-size:var(--fs-3);margin-block-end:var(--space-2)}.coach ol{display:grid;gap:var(--space-2);padding:0;list-style:none}.coach li{display:flex;gap:var(--space-2);align-items:flex-start}.coach .tick{display:inline-grid;place-items:center;flex:none;width:24px;height:24px;border-radius:50%;border:2px solid var(--ink-2);font-size:var(--fs-1);font-weight:700}.coach li.done{color:var(--ok)}.coach li.done .tick{border-color:var(--ok);background:var(--ok-soft)}.rules details{margin-block-start:var(--space-3)}.rules summary{min-height:var(--tap);display:flex;align-items:center;font-weight:600;cursor:pointer}.rules ul,.log{display:grid;gap:var(--space-1);padding-inline-start:1.2em}.log{max-height:260px;overflow-y:auto;font-size:var(--fs-1)}.motion{display:grid;gap:var(--space-1);margin-block-start:var(--space-3);font-weight:600}.motion select{min-height:var(--tap);padding:0 var(--space-2);border:2px solid var(--line);border-radius:var(--radius-sm);background:#fff;color:var(--ink);font:inherit;font-weight:400}.chain{display:grid;gap:var(--space-2);margin-block-end:var(--space-4)}.chain-title{font-size:var(--fs-3)}.fine{color:var(--ink-2);font-size:var(--fs-1)}.source-card{display:grid;gap:var(--space-2);justify-items:start;padding:var(--space-3) var(--space-4);border:2px solid var(--line);border-radius:var(--radius);background:var(--surface)}.source-card a{color:var(--focus);font-weight:600}.mono-line{overflow-wrap:anywhere}.banner{padding:var(--space-2) var(--space-3);margin-block-end:var(--space-3);border-radius:var(--radius-sm)}.banner-bad{border:2px solid var(--bad);background:var(--bad-soft);color:var(--bad)}.foot{margin-block-start:var(--space-5);color:var(--ink-2);font-size:var(--fs-1)}@media (prefers-reduced-motion: reduce){.wheel-spin{animation:none}.btn,.tool{transition:none}}
