.cargo{--cargo-cell:clamp(36px, 7vw, 58px);--cargo-mini:11px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:16px 22px;width:100%;display:grid}.cargo[data-holding] .cargo-deck{cursor:copy}.cargo[data-dragging],.cargo[data-dragging] *{cursor:grabbing!important}.cargo-caption{margin-bottom:6px}.cargo-deck{border:1px solid var(--bone-3);touch-action:none;gap:0;width:max-content;display:grid}.cargo-cell{width:var(--cargo-cell);height:var(--cargo-cell);border:1px dotted var(--bone-4);cursor:pointer;background:0 0;padding:0}.cargo-cell[data-lot]{background:var(--ink);background-image:repeating-linear-gradient(135deg, var(--bone-4) 0 1px, transparent 1px 6px);border:0}.cargo-cell[data-t]{border-top:2px solid var(--bone)}.cargo-cell[data-r]{border-right:2px solid var(--bone)}.cargo-cell[data-b]{border-bottom:2px solid var(--bone)}.cargo-cell[data-l]{border-left:2px solid var(--bone)}.cargo-cell[data-blocked]{border:1px solid var(--bone-3);background:var(--ink);background-image:radial-gradient(circle, var(--bone-3) 0 30%, transparent 31% 42%, var(--bone-3) 43% 47%, transparent 48%);cursor:default}.cargo-cell[data-ghost=ok]{background-image:repeating-linear-gradient(135deg, var(--signal) 0 1px, transparent 1px 6px);outline:2px solid var(--signal);outline-offset:-4px}.cargo-cell[data-ghost=bad]{outline:2px dashed var(--signal);outline-offset:-5px}.cargo[data-done] .cargo-cell[data-lot]{background-image:none;background:var(--ink)}.cargo-quay{gap:8px;display:grid}.cargo-quay-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.cargo-tools{gap:6px;display:flex}.cargo-tool{min-height:34px}.cargo-pile{--slot:calc(var(--cargo-extent) * (var(--cargo-mini) + 1px) + 4px);grid-template-columns:repeat(auto-fill, minmax(max(96px, calc(var(--slot) + 22px)), 1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.cargo-lot{grid-template-rows:var(--slot) auto;border:1px solid var(--bone-4);background:var(--ink);width:100%;color:inherit;font:inherit;cursor:grab;touch-action:none;place-items:center;gap:6px;padding:8px 6px;display:grid}.cargo-lot:hover:not([disabled]){border-color:var(--bone-2)}.cargo-lot[data-aboard]{cursor:default;border-style:dashed}.cargo-shape-box{width:var(--slot);height:var(--slot);place-items:center;display:grid}.cargo-lot[data-held]{border-color:var(--signal);box-shadow:inset 0 0 0 1px var(--signal)}.cargo-shape{gap:1px;display:grid}.cargo-shape i{width:var(--cargo-mini);height:var(--cargo-mini)}.cargo-shape i[data-on]{background:var(--bone)}.cargo-lot[data-held] .cargo-shape i[data-on]{background:var(--signal)}.cargo-label{-webkit-line-clamp:2;letter-spacing:.08em;text-align:center;-webkit-box-orient:vertical;height:2.6em;font-size:9.5px;line-height:1.3;display:-webkit-box;overflow:hidden}.cargo-lot[data-aboard] .cargo-label{color:var(--bone-3)}.cargo-help{margin:2px 0 0}.cargo-float{z-index:90;pointer-events:none;position:fixed}.cargo-float i{width:var(--cargo-cell);height:var(--cargo-cell);border:2px solid var(--signal);background:var(--ink);background-image:repeating-linear-gradient(135deg, var(--signal) 0 1px, transparent 1px 6px);position:absolute}@media (max-width:760px){.cargo{grid-template-columns:minmax(0,1fr)}.cargo-deck-wrap{justify-self:center}}
.codex{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);grid-template-areas:"page stack""shelves stack""foot foot""note note";align-content:start;gap:12px 16px;width:100%;display:grid}.codex-page{border:1px solid var(--bone-3);grid-area:page;padding:14px 16px;display:grid}.codex-leaf{visibility:hidden;grid-area:1/1;grid-template-rows:auto auto 1fr auto;gap:6px;display:grid}.codex-leaf[data-at]{visibility:visible}.codex-name{margin:0;font-size:30px;line-height:1.05}.codex-clue{color:var(--bone-2);margin:0;font-size:19px;line-height:1.35}.codex-on{white-space:nowrap;text-overflow:ellipsis;color:var(--bone);overflow:hidden}.codex-shelves{grid-area:shelves;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.codex-shelf{border:1px solid var(--bone-3);background:var(--ink);min-height:46px;color:var(--bone);font:inherit;text-align:left;cursor:pointer;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:0 10px;display:grid}.codex-shelf:hover:not([disabled]){border-color:var(--bone);box-shadow:inset 2px 0 0 var(--bone)}.codex-shelf[data-on]{border-color:var(--signal);color:var(--signal)}.codex-shelf[disabled]{cursor:default}.codex-stack{grid-area:stack;align-content:start;gap:2px;margin:0;padding:0;list-style:none;display:grid}.codex-stack button{width:100%;min-height:28px;color:var(--bone-2);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:16px 1fr auto;align-items:center;gap:8px;padding:2px 8px;font-size:12px;display:grid}.codex-stack button[data-at]{color:var(--bone);box-shadow:inset 2px 0 0 var(--bone)}.codex-stack button[data-ok]{color:var(--bone)}.codex-stack button[data-bad]{color:var(--signal)}.codex-mark{place-items:center;display:grid}.codex-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.codex-foot{flex-wrap:wrap;grid-area:foot;justify-content:space-between;align-items:center;gap:8px 14px;display:flex}.codex-note{min-height:2.8em;color:var(--signal);grid-area:note;margin:0;line-height:1.4}@media (max-width:700px){.codex{grid-template-columns:minmax(0,1fr);grid-template-areas:"page""shelves""foot""note""stack"}.codex-shelves{grid-template-columns:repeat(2,minmax(0,1fr))}.codex-name{font-size:24px}.codex-clue{font-size:17px}.codex-note{min-height:4.2em}}
.jam{width:100%}.jam-inner{gap:8px;width:min(100%,440px);margin:0 auto;display:grid}.jam-caption{justify-content:space-between;gap:12px;display:flex}.jam-caption .signal{color:var(--signal)}.jam-road{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;width:100%;height:auto;display:block}.jam-rock{stroke:none}.jam-hatch{stroke:var(--bone-4);stroke-width:2px}.jam-surface{fill:var(--ink)}.jam-rules line{stroke:var(--bone-4);stroke-width:1px;vector-effect:non-scaling-stroke;shape-rendering:crispedges}.jam-wall{fill:none;stroke:var(--bone-3);stroke-width:2px;vector-effect:non-scaling-stroke;shape-rendering:crispedges}.jam-exit path{fill:none;stroke:var(--signal);stroke-width:2px;stroke-linecap:square;vector-effect:non-scaling-stroke}.jam-lane{fill:none;stroke:var(--bone-3);stroke-width:1px;stroke-dasharray:3 4;vector-effect:non-scaling-stroke}.jam-piece{cursor:grab;outline:none;transition:transform .11s ease-out}.jam-piece[data-dragging]{transition:none}.jam-road[data-dragging],.jam-road[data-dragging] .jam-piece{cursor:grabbing}.jam[data-done] .jam-piece,.jam[data-disabled] .jam-piece{cursor:default}.jam-body{fill:var(--ink);stroke:var(--bone);stroke-width:2px;vector-effect:non-scaling-stroke}.jam-wheel{fill:var(--bone)}.jam-bed{fill:none;stroke:var(--bone-3);stroke-width:1px;vector-effect:non-scaling-stroke}.jam-bench{stroke:var(--bone-2);stroke-width:1.5px;vector-effect:non-scaling-stroke}.jam-load{stroke:var(--bone-3);stroke-width:1px;vector-effect:non-scaling-stroke}.jam-hatch-load{stroke:var(--bone-2);stroke-width:1.6px}.jam-piece[data-p] .jam-body{stroke:var(--signal);stroke-width:2.5px}.jam-piece[data-p] .jam-wheel{fill:var(--signal)}.jam-bed-p{stroke:var(--signal-dim)}.jam-p{fill:var(--signal);font-family:var(--mono);letter-spacing:0;font-size:34px;font-weight:600}.jam-ring{fill:none;stroke:var(--signal);stroke-width:1.5px;stroke-dasharray:5 4;vector-effect:non-scaling-stroke;pointer-events:none;visibility:hidden}.jam-piece[data-sel] .jam-ring{visibility:visible}.jam[data-keys] .jam-piece:focus:not([data-sel]) .jam-ring{visibility:visible;stroke:var(--bone-2)}.jam[data-done] .jam-ring{visibility:hidden}@media (hover:hover){.jam:not([data-disabled]):not([data-done]) .jam-piece:hover:not([data-sel]) .jam-body{stroke-width:3px}}.jam[data-disabled]:not([data-done]) .jam-road{opacity:.55}.jam-roll{animation:.72s cubic-bezier(.45,0,.85,.35) forwards jam-roll}@keyframes jam-roll{to{transform:translate(320px)}}.jam-note{min-height:2.9em;color:var(--bone-2);margin:0;font-size:15px;line-height:1.45}.jam-tools{justify-content:flex-end;gap:8px;display:flex}.jam-tool{min-height:36px;padding:0 12px}@media (hover:none){.jam-keys{display:none}}@media (prefers-reduced-motion:reduce){.jam-piece{transition:none}}@media (max-width:420px){.jam-note{min-height:4.35em;font-size:14px}}
