.ls-game{padding:var(--space-24);margin-block:var(--space-24);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-panel);font-variant-numeric:tabular-nums}.ls-game button,.ls-game input,.ls-game textarea{font:inherit}.ls-game .help{margin-block:var(--space-16)}.ls-game :is(button,input,textarea,[tabindex]):focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.ls-fields{display:flex;gap:var(--space-20);flex-wrap:wrap;align-items:flex-start}.ls-field{display:flex;flex-direction:column;gap:var(--space-8);border:0;padding:0;margin:var(--space-16) 0;font-size:var(--type-label-size);line-height:var(--type-label-line);font-weight:var(--type-label-weight);min-width:0;max-width:100%}.ls-field legend{margin-bottom:var(--space-8)}.ls-field input,.ls-field textarea{max-width:100%;border:1px solid var(--color-border);border-radius:var(--radius-control);padding:var(--space-12);min-height:48px;background:var(--color-surface);color:var(--color-text)}.ls-field input{width:180px;font-size:24px}.ls-field textarea{width:600px;font-size:18px;line-height:30px;resize:vertical}.ls-game>label.ls-field{display:flex;width:100%}.ls-givens,.ls-choices,.ls-palette,.ls-pool,.ls-target-items{display:flex;flex-wrap:wrap;gap:var(--space-8);align-items:center}.ls-given,.ls-choice,.ls-token{min-width:48px;min-height:48px;border:2px solid var(--color-border);border-radius:var(--radius-control);padding:var(--space-8) var(--space-12);background:var(--color-surface);color:var(--color-text);display:inline-flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--space-4);font-size:18px;line-height:26px;position:relative}.ls-given{border-color:var(--color-divider)}.ls-choice[aria-pressed=true],.ls-token[aria-pressed=true],.ls-hit[aria-pressed=true]{border:3px solid var(--color-primary);background:var(--color-selection)}.ls-choice[aria-pressed=true]:after{content:"";position:absolute;right:4px;top:4px;width:8px;height:8px;border-radius:50%;background:var(--color-primary)}.ls-choice>.ls-drawing{width:72px;height:72px}.ls-choice:hover,.ls-token:hover{background:var(--color-subtle)}.ls-art{display:block;width:80px;height:80px;background:url('/assets/characters/legacy-bank-atlas-v2.png') var(--art-x) var(--art-y)/400% 300% no-repeat}.ls-art-caption{font-size:16px;line-height:24px}.ls-visual{margin-block:var(--space-16)}.ls-zoom{margin-bottom:var(--space-12);font-size:16px}.ls-scroll{max-width:100%;overflow:auto;overscroll-behavior:contain}.ls-canvas{position:relative;max-width:720px;aspect-ratio:var(--ls-ratio);min-width:240px}.ls-canvas>.ls-drawing,.ls-canvas>img{width:100%;height:100%;object-fit:contain;display:block}.ls-visual.expanded .ls-canvas{min-width:720px}.ls-drawing text{font-family:var(--font-body)}.ls-hit{position:absolute;min-width:44px;min-height:44px;border:2px solid transparent;border-radius:var(--radius-puzzle-cell);background:transparent;transform:translate(-1px,-1px);cursor:pointer}.ls-hit:hover{background:color-mix(in srgb,var(--color-selection) 50%,transparent)}.ls-hit[aria-pressed=true]{background:color-mix(in srgb,var(--color-selection) 65%,transparent)}.ls-formula{font-size:24px;line-height:32px;margin-block:var(--space-24);white-space:pre-wrap;overflow-wrap:anywhere}.ls-table{border-collapse:collapse;font-size:16px;line-height:26px}.ls-table :is(th,td){padding:var(--space-12);border-bottom:1px solid var(--color-divider);text-align:left}.ls-table caption{text-align:left;color:var(--color-secondary);padding-bottom:var(--space-8)}.ls-pool{min-height:88px;margin-block:var(--space-16)}.ls-token{touch-action:none;cursor:grab;min-width:64px}.ls-targets{display:flex;gap:var(--space-8);isolation:isolate}.ls-target{flex:1;min-width:0;min-height:120px;border:2px dashed var(--color-border);border-radius:var(--radius-control);padding:var(--space-8);cursor:pointer}.ls-target-label{display:block;font-size:16px;font-weight:600;line-height:24px;margin-bottom:var(--space-8)}.ls-target-items{align-content:flex-start;min-height:64px}.ls-target .ls-token{min-width:44px;padding:var(--space-4)}.ls-target .ls-art-caption{display:none}.ls-target .ls-art{width:56px;height:56px}.ls-venn{gap:0;min-height:180px;background:radial-gradient(ellipse 30% 45% at 35% 50%,transparent 97%,var(--color-primary) 98% 99%,transparent 100%),radial-gradient(ellipse 30% 45% at 65% 50%,transparent 97%,var(--color-focus) 98% 99%,transparent 100%)}.ls-venn .ls-target{border:0;padding:var(--space-12) var(--space-4)}.ls-venn .ls-target:nth-child(2){padding-top:var(--space-32)}.ls-ghost{position:fixed;z-index:9999;pointer-events:none;box-shadow:var(--shadow-pet-drag);opacity:.9;transform:scale(1.05)}.ls-board{display:grid;grid-template-columns:repeat(var(--ls-cols),48px);width:max-content;gap:0;margin:var(--space-16) 0}.ls-cell{width:48px;height:48px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);padding:0;font-size:18px;font-weight:600;line-height:24px}.ls-cell[data-mark]:not([data-mark="0"]):not([data-mark="X"]){background:var(--color-selection);border:2px solid var(--color-primary)}.ls-cell[data-mark="X"]{background:var(--color-secondary);color:var(--color-on-primary)}.ls-cell:disabled{opacity:1;cursor:not-allowed}.ls-cell[data-fixed=true]{box-shadow:inset 0 0 0 3px var(--color-divider)}.ls-path,.ls-history{display:flex;flex-wrap:wrap;gap:var(--space-12);padding-left:var(--space-24);font-size:16px;line-height:26px;min-height:32px;margin-block:var(--space-12)}.ls-process{min-height:200px;margin-block:var(--space-16);display:flex;gap:var(--space-16);align-items:flex-end;justify-content:center;flex-wrap:wrap}.ls-process svg{width:100%;max-width:560px;min-height:180px}.ls-process-actions{display:flex;flex-wrap:wrap;gap:var(--space-8)}.ls-process-actions .button{font-size:16px;line-height:24px}.ls-feedback{min-height:78px;margin-top:var(--space-16);font-size:16px;line-height:26px}.ls-game[data-verdict=wrong] .ls-feedback{color:var(--color-error)}.ls-game[data-verdict=correct] .ls-feedback{color:var(--color-success)}.ls-game .game-actions{display:flex;flex-wrap:wrap;gap:var(--space-12)}.ls-construction svg{max-width:100%;display:block}.ls-process-item{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:80px}.ls-process-number{font-size:40px;line-height:48px;font-weight:600}.ls-chip{width:32px;height:32px;border-radius:50%;border:2px solid var(--color-primary);background:var(--color-selection);display:block}.ls-draft-pieces{display:flex;flex-wrap:wrap;gap:8px;min-height:80px;align-content:flex-start}.ls-scratch{margin-block:var(--space-16)}.ls-object-tray{display:flex;gap:8px;flex-wrap:wrap}.ls-given-object{width:56px;height:56px;border:0;background:transparent;padding:0;display:flex;align-items:center;justify-content:center}.ls-given-object[aria-pressed=true]{outline:2px dashed var(--color-primary)}
@media(max-width:760px){.ls-game{padding:var(--space-12)}.ls-art{width:64px;height:64px}.ls-choices{gap:var(--space-8)}.ls-game .button{max-width:100%;white-space:normal}.ls-pool .ls-token{padding:var(--space-8)}.ls-target-items{min-height:72px}.ls-field input{width:148px}.ls-field{width:100%}.ls-canvas:has(.ls-hit){min-width:480px}.ls-venn{min-height:230px}.ls-target-label{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){.ls-game *{transition:none!important;animation:none!important}}
.ls-symbol{width:48px;height:48px;fill:var(--color-selection);stroke:var(--color-primary);stroke-width:2}.ls-cut-overlay{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.ls-cut-overlay line{stroke:var(--color-focus);stroke-width:20;opacity:.16;cursor:pointer}.ls-cut-overlay line:hover,.ls-cut-overlay line:focus-visible{opacity:.5}.ls-cut-overlay line[aria-pressed=true]{opacity:.9;stroke:var(--color-primary);stroke-width:8}.ls-board[data-clues]{grid-template-columns:28px repeat(var(--ls-cols),48px)}.ls-clue{display:flex;align-items:center;justify-content:center;font-size:16px;line-height:24px;min-height:28px}.ls-cell[data-block-right]{border-right:3px solid var(--color-text)}.ls-cell[data-block-bottom]{border-bottom:3px solid var(--color-text)}.ls-cell{position:relative}.ls-cell svg{width:30px;height:30px;fill:var(--color-primary)}.ls-cell .ls-given-dot{position:absolute;left:3px;top:3px;width:8px;height:8px;border:2px solid var(--color-text);border-radius:50%;background:var(--color-surface)}.ls-peg{position:relative;min-height:190px;flex:1;display:flex;flex-direction:column-reverse;align-items:center;justify-content:flex-start;padding-bottom:30px;background:linear-gradient(var(--color-border),var(--color-border)) 50% 15px/5px 145px no-repeat}.ls-peg>strong{position:absolute;bottom:0}.ls-disk{height:32px;border:2px solid var(--color-primary);border-radius:var(--radius-puzzle-cell);background:var(--color-selection);z-index:1;touch-action:none;min-width:44px;font-size:16px}.ls-hanoi{flex-wrap:nowrap;width:100%}.ls-boat-bank{flex:1;min-width:0;min-height:220px;align-self:stretch;border-bottom:4px solid var(--color-puzzle-water);padding:8px;display:flex;align-items:center;flex-direction:column;gap:8px}.ls-crossing{flex-wrap:nowrap;gap:32px}.ls-crossing-object{border:0;background:transparent;padding:0;touch-action:none;min-width:64px;min-height:64px}.ls-crossing-object img{width:64px;height:80px;object-fit:contain}.ls-triangle-controls{display:flex;flex-wrap:wrap;gap:8px}.ls-turn{width:100px;min-height:100px}.ls-sticks svg{max-width:100%;display:block}.ls-stick{stroke:var(--color-puzzle-wood-line);stroke-width:10;stroke-linecap:round;cursor:grab;touch-action:none}.ls-stick[data-empty=true]{stroke:var(--color-border);stroke-dasharray:4 8;stroke-width:4}.ls-stick[aria-pressed=true]{stroke:var(--color-focus)}.ls-construction [data-handle]{cursor:grab;touch-action:none}.ls-construction{touch-action:none}.ls-given[aria-pressed=true]{background:var(--color-selection);outline:2px dashed var(--color-primary)}.ls-task-links{list-style:none;padding:0}.ls-task-links>li{padding-block:var(--space-16);border-bottom:1px solid var(--color-divider)}.ls-task-links a{font-size:18px;line-height:30px}.ls-task-links .help{margin:8px 0 0}.ls-scratch-container{border:1px solid var(--color-divider);border-radius:var(--radius-panel);padding:12px;min-height:120px;flex:1}.ls-scratch-box-art{width:100%;height:140px;object-fit:contain}.ls-chip-button{border:0;background:none;padding:6px;min-width:44px;min-height:44px;touch-action:none}.ls-chip-button svg{width:32px;height:32px;fill:var(--color-selection);stroke:var(--color-primary)}

.ls-turn svg{width:56px;height:56px}.ls-turn span{font-size:16px;line-height:24px}.ls-game[data-variant=ordinal] .ls-set{flex-wrap:nowrap}.ls-game[data-variant=ordinal] .ls-choice{flex:1;min-width:0;padding:4px}.ls-game[data-variant=ordinal] .ls-art{width:64px;height:64px}@media(max-width:600px){.ls-game[data-variant=ordinal] .ls-set{gap:4px}.ls-game[data-variant=ordinal] .ls-choice{width:44px;min-height:48px;padding:0}.ls-game[data-variant=ordinal] .ls-art{width:44px;height:44px}.ls-game[data-variant=ordinal] .ls-art-caption{display:none}}
.ls-object-groups{display:flex;gap:16px;align-items:flex-start}.ls-object-groups>div{flex:1;min-width:0}.ls-given-object{flex:none}.ls-given-object svg{width:44px;height:44px}.ls-given-object .ls-art{width:56px;height:56px}.ls-given-object .ls-art-caption{display:none}.ls-given-object[data-draft-mark]{width:56px;height:56px;border-radius:var(--radius-control)}.ls-chip-boxes{display:flex;gap:12px}.ls-draft-box{position:relative;flex:1;min-width:0;height:264px;cursor:pointer}.ls-draft-box .ls-scratch-box-art{position:absolute;inset:24px 0 auto;width:100%;height:220px}.ls-draft-inside{position:absolute;left:20%;top:24%;width:60%;height:56%;display:flex;align-content:flex-start;align-items:flex-start;flex-wrap:wrap}.ls-box-answer{position:absolute;inset:auto 0 0;align-items:center!important;gap:4px!important;margin:0!important;background:var(--color-surface)}.ls-box-answer input{width:96px;min-height:44px;font-size:24px;padding:4px}.ls-box-answer{font-size:16px}.ls-chip-button[aria-pressed=true]{outline:3px solid var(--color-focus);outline-offset:-3px;border-radius:50%}@media(max-width:600px){.ls-chip-boxes{flex-direction:column}.ls-draft-box{flex:none;width:100%;height:240px}.ls-draft-box .ls-scratch-box-art{height:210px;inset:0}.ls-draft-inside{top:20%;height:58%}.ls-draft-pieces{min-height:88px}}
.ls-person{width:64px;height:80px;object-fit:contain}.ls-given-object .ls-art{background-size:400% 300%}.ls-draft-box .ls-scratch-box-art{pointer-events:none}@media(max-width:600px){.ls-draft-box{height:264px}}
.ls-target{height:var(--target-height,224px);min-height:0;display:flex;flex-direction:column}.ls-target-items{flex:1;min-height:0;overflow:auto;align-content:flex-start}.ls-target-items .ls-token{max-width:100%;overflow-wrap:anywhere}.ls-target .ls-person{max-width:56px;height:64px}.ls-token>svg{width:48px;height:80px;flex:none}.ls-venn{height:var(--target-height,272px)}
.ls-sticks{position:relative;aspect-ratio:400/300}.ls-sticks>svg{width:100%;height:100%}.ls-stick-control{position:absolute;width:44px;height:44px;min-width:44px;min-height:44px;border:0;border-radius:50%;clip-path:circle(50%);background:transparent;transform:translate(-50%,-50%);touch-action:none}.ls-stick-control[aria-pressed=true]{background:color-mix(in srgb,var(--color-focus) 18%,transparent)}
.ls-crossing .ls-boat-bank{height:400px;overflow:auto;flex:none;width:calc((100% - 32px)/2)}.ls-cut-overlay line{stroke-width:2;opacity:.45;vector-effect:non-scaling-stroke;pointer-events:none}.ls-cut-overlay line[data-cut]{stroke:transparent;stroke-width:44;opacity:1;pointer-events:stroke;vector-effect:non-scaling-stroke}.ls-cut-overlay line[data-cut]:hover,.ls-cut-overlay line[data-cut]:focus-visible{stroke:var(--color-focus);opacity:.15}.ls-cut-overlay line[data-cut][aria-pressed=true]{stroke:var(--color-primary);stroke-width:6;opacity:.9}
.ls-cut-overlay line[data-cut][aria-pressed=true]{stroke:transparent;stroke-width:44;opacity:1}.ls-cut-overlay line[data-cut-line][data-selected=true]{stroke:var(--color-primary);stroke-width:6;opacity:.9}

/* Keep move numbers inside each nonbreaking item, including double digits. */
.ls-game .ls-history,.ls-game .ls-path{list-style:none;counter-reset:scene-move;padding:0;gap:var(--space-12)}
.ls-game :is(.ls-history,.ls-path)>li{display:inline-flex;flex:0 0 auto;gap:var(--space-8);white-space:nowrap;margin:0;padding:0}
.ls-game :is(.ls-history,.ls-path)>li::before{counter-increment:scene-move;content:counter(scene-move) ".";position:static;min-width:0}
[data-completion=automatic] [data-scene-check][hidden], [data-completion=automatic] .game-actions button[hidden]{display:none!important}

.ls-scoreboard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-16);margin:var(--space-16) 0;font-variant-numeric:tabular-nums}.ls-scoreboard dt{font-size:16px;line-height:26px;color:var(--color-secondary)}.ls-scoreboard dd{font-size:24px;line-height:32px;font-weight:600;margin:0;color:var(--color-text)}.ls-construction{padding:var(--space-24)}.ls-construction svg{overflow:visible;touch-action:none}.ls-game .ls-feedback{min-height:26px}.ls-draft-pieces[aria-pressed=true]{outline:2px solid var(--color-primary)}

.ls-scoreboard>div{display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-4)}

.ls-game:has(.ls-construction) .ls-fields:not([hidden]){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-16)}.ls-game:has(.ls-construction) .ls-field{margin-block:var(--space-8)}

.ls-cell svg.ls-board-mark,.ls-choice svg.ls-board-mark{width:30px;height:30px;fill:none;stroke:var(--color-primary);stroke-width:2.5;stroke-linecap:round}.ls-board[data-crosses] .ls-cell[data-mark="X"]{background:var(--color-selection);border:2px solid var(--color-primary);color:var(--color-text)}

.ls-disk{height:44px;min-height:44px;flex-shrink:0}
