.solver-container{--solver-accent:#c9a961;--solver-accent-bright:#d4b56f;--solver-accent-dim:#b89a5a;--solver-accent-glow:rgb(201 169 97 / 40%);--solver-hint:#78a8e8;--solver-hint-bg:rgb(120 168 232 / 10%);--solver-cols:4;--solver-rows:4;--solver-cell-size:clamp(2.25rem, 12vw, 4.375rem);--solver-cell-gap:var(--space-xs);--solver-cell-radius:4px;--solver-cell-bg:#1e1e1e;--solver-cell-border:var(--color-border-subtle);--solver-cell-border-width:1px;--solver-font-mono:ui-monospace,"SF Mono","Menlo","Consolas",monospace}.solver-container{display:flex;flex-direction:column;gap:var(--space-md);width:100%;max-width:100%;padding:var(--space-md);background:rgb(255 255 255 / 3%);border:2px solid var(--color-border-medium);border-radius:12px;box-shadow:0 4px 12px rgb(0 0 0 / 40%);color:var(--color-text-primary);box-sizing:border-box}.solver-container *,.solver-container ::after,.solver-container ::before{box-sizing:border-box}.solver-container>*{min-width:0;max-width:100%}@media (width >= 48.0625em){.solver-container{width:fit-content;min-width:22.5rem;padding:var(--space-lg);margin:var(--space-md) 0}}.solver-container.is-centered{align-items:center;text-align:center}.solver-only-page .content-container{border-bottom:none}.solver-only-page .solver-container{margin-inline:auto}.solver-guide-link{padding:var(--space-md) var(--space-md) 0;text-align:center}.solver-guide-link__anchor{display:inline-block;padding:.3rem .75rem;background-color:var(--color-bg-secondary);border:1px solid var(--color-border-medium);border-radius:999px;font-size:var(--font-size-sm);font-style:normal;text-decoration:none;transition:color .15s ease,border-color .15s ease,background-color .15s ease}.solver-guide-link__anchor:focus-visible,.solver-guide-link__anchor:hover{opacity:1;color:var(--color-text-primary);background-color:var(--color-bg-tertiary);border-color:var(--color-link-page);text-decoration:none}.solver-title{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-lg);font-weight:600;text-align:center}.solver-hub{display:flex;flex-direction:column;gap:var(--space-sm);max-width:46rem;margin-inline:auto}.solver-hub__card{display:block;padding:var(--space-smd) var(--space-md);background-color:var(--color-bg-secondary);border-left:3px solid var(--color-link-solver);border-radius:0 8px 8px 0;text-decoration:none;transition:background-image .15s ease}.solver-hub__card:hover{opacity:1;background-image:linear-gradient(rgb(255 255 255 / 3%),rgb(255 255 255 / 3%));text-decoration:none}.solver-hub__card:focus-visible{outline:2px solid var(--color-link-solver);outline-offset:2px}.solver-hub__name{margin:0;color:var(--color-link-solver);font-size:var(--font-size-md);font-weight:600}.solver-hub__line{display:block;color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed)}.solver-intro{max-width:62ch;margin:var(--space-xs) auto var(--space-md);color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);text-align:center}.solver-instructions{width:0;min-width:100%;margin:0;color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);overflow-wrap:break-word;word-break:break-word}.solver-container>.danger,.solver-container>.disclaimer,.solver-container>.no-return,.solver-container>.note,.solver-container>.requirement,.solver-container>.tip{width:0;min-width:100%;margin:0;font-size:var(--font-size-sm)}.solver-container h3{margin:var(--space-md) 0;color:var(--color-text-primary);font-size:var(--font-size-lg);font-weight:600}.solver-container h4{margin:var(--space-md) 0 var(--space-sm);color:var(--color-text-secondary);font-size:var(--font-size-base);font-weight:600}.btn--solver{padding:var(--space-sm) var(--space-lg);border-color:var(--solver-accent);color:var(--solver-accent);font-size:var(--font-size-base);font-weight:600;background:0 0;transition:color .15s ease,border-color .15s ease,background-color .15s ease}.btn--solver:not(:disabled):hover{color:var(--solver-accent-bright);border-color:var(--solver-accent-bright);background:0 0}.btn--solver.is-active{background:var(--solver-accent);border-color:var(--solver-accent);color:var(--color-bg-primary);font-weight:700}.btn--solver.is-active:not(:disabled):hover{background:var(--solver-accent-bright);border-color:var(--solver-accent-bright);color:var(--color-bg-primary)}.btn--solver.is-disabled,.btn--solver:disabled{opacity:.4;cursor:not-allowed}.solver-controls{display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:space-around}.solver-controls.is-left{justify-content:flex-start}.solver-controls.is-centered{justify-content:center}.solver-controls.is-distributed{justify-content:space-around}.solver-toggle{display:inline-flex;align-items:center;gap:var(--space-xs);color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;user-select:none}.solver-toggle input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--solver-accent);cursor:pointer}.solver-form-row{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:var(--color-bg-secondary);border:1px solid var(--color-border-subtle);border-radius:8px}.solver-form-row label{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:500}.solver-color-dot{display:inline-block;width:.75em;height:.75em;border-radius:50%;margin-right:.4em;vertical-align:middle;background:var(--dot-color,currentColor)}.solver-text--green{color:var(--color-tip-text)}.solver-text--pink{color:#e08bbf}.solver-text--red{color:var(--color-no-return-text)}.solver-text--gold{color:var(--solver-accent)}.solver-container input[type=number],.solver-container input[type=text]{width:100%;padding:var(--space-sm) var(--space-md);background-color:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border-medium);border-radius:4px;font-size:var(--font-size-base);transition:border-color .15s ease,background-color .15s ease;margin:inherit 4px}.solver-container select{width:100%;background-color:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border-medium);border-radius:4px;font-size:var(--font-size-base);transition:border-color .15s ease,background-color .15s ease}.solver-container input:focus,.solver-container select:focus{outline:0;border-color:var(--solver-accent);background-color:var(--color-bg-secondary)}@media (width >= 48.0625em){.solver-form-row{flex-direction:row;align-items:center}.solver-form-row label{flex:0 0 auto}.solver-form-row input,.solver-form-row select{flex:1}}.solver-grid-wrapper{display:flex;justify-content:center;width:100%;overflow-x:auto}.solver-grid-wrapper.is-fit{overflow-x:visible}.solver-grid{display:grid;grid-template-columns:repeat(var(--solver-cols),var(--solver-cell-size));grid-template-rows:repeat(var(--solver-rows),var(--solver-cell-size));gap:var(--solver-cell-gap)}.solver-grid.is-framed{--solver-frame-bg:#111;--solver-frame-border:var(--color-border-medium);--solver-frame-padding:var(--space-xs);--solver-frame-border-width:3px;padding:var(--solver-frame-padding);background:var(--solver-frame-bg);border:var(--solver-frame-border-width) solid var(--solver-frame-border);border-radius:5px}.solver-cell{display:flex;align-items:center;justify-content:center;width:var(--solver-cell-size);height:var(--solver-cell-size);background:var(--solver-cell-bg);border:var(--solver-cell-border-width) solid var(--solver-cell-border);border-radius:var(--solver-cell-radius);color:var(--color-text-primary);font-size:var(--font-size-base);cursor:pointer;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease;user-select:none;-webkit-tap-highlight-color:transparent}.solver-cell:focus-visible{outline:2px solid var(--solver-accent);outline-offset:2px}.solver-cell.is-locked,.solver-cell[aria-disabled=true]{cursor:default}.solver-symbol-select{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.solver-symbol-select.is-grid{--symbol-size:clamp(3.5rem, 18vw, 5rem);--symbol-cols:auto-fit;display:grid;grid-template-columns:repeat(var(--symbol-cols),minmax(0,var(--symbol-size)));gap:var(--space-sm);width:100%;max-width:31.25rem;margin:0 auto}.solver-symbol-select button{padding:var(--space-xs);background-color:var(--color-bg-tertiary);border:2px solid var(--color-border-medium);border-radius:8px;cursor:pointer;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease,opacity .15s ease}.solver-symbol-select button:hover:not(:disabled){background-color:var(--color-bg-secondary);border-color:var(--solver-accent)}.solver-symbol-select button:disabled{opacity:.4;cursor:not-allowed;border-color:var(--color-border-subtle)}.solver-symbol-select button.is-selected{border-color:var(--solver-accent);box-shadow:0 0 8px var(--solver-accent-glow)}.solver-symbol-select button.is-placed{opacity:.5}.solver-symbol-select img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}.solver-symbol-select:not(.is-grid) img{width:var(--solver-cell-size);height:var(--solver-cell-size)}.solver-letter-grid{--letter-half-size:clamp(2.75rem, 12vw, 3.125rem);--letter-cell-size:calc(var(--letter-half-size) * 2);display:grid;grid-template-columns:repeat(auto-fit,var(--letter-cell-size));gap:var(--space-md);justify-content:center;width:100%;max-width:calc(var(--letter-cell-size) * 4 + var(--space-md) * 3);margin-inline:auto}.solver-letter-cell{display:flex;align-items:stretch;padding:0;background:var(--color-bg-tertiary);border:2px solid var(--color-border-medium);border-radius:4px;overflow:hidden;color:var(--color-text-primary);cursor:pointer;transition:border-color .15s ease,opacity .15s ease,box-shadow .15s ease;-webkit-tap-highlight-color:transparent}.solver-letter-cell.is-disabled,.solver-letter-cell:disabled{opacity:.35;cursor:not-allowed}.solver-letter-cell.is-selected{border-color:var(--solver-accent);box-shadow:0 0 0 1px var(--solver-accent),0 0 8px var(--solver-accent-glow)}.solver-letter-cell.is-static{cursor:default}.solver-letter-cell.is-static:hover{border-color:var(--color-border-medium)}.solver-letter-cell__letter{width:var(--letter-half-size);height:var(--letter-half-size);display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;color:var(--color-text-primary)}.solver-letter-cell__image{display:block;width:var(--letter-half-size);height:var(--letter-half-size);object-fit:contain}.solver-image-row{display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:center}.solver-image-row img{display:block;width:var(--solver-cell-size);height:var(--solver-cell-size);object-fit:contain;border-radius:4px}.solver-stack{display:flex;flex-direction:column;gap:var(--space-sm)}.solver-swatch-row{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.solver-color-swatch{width:2rem;height:2rem;padding:0;background:var(--swatch-color,var(--color-bg-tertiary));border:2px solid var(--color-border-medium);border-radius:4px;cursor:pointer;opacity:.35;transition:opacity .15s ease,border-color .15s ease,box-shadow .15s ease;-webkit-tap-highlight-color:transparent}.solver-color-swatch:hover:not(:disabled){opacity:.7;border-color:var(--color-text-muted)}.solver-color-swatch.is-selected{opacity:1;border-color:var(--solver-accent);box-shadow:0 0 0 2px var(--solver-accent),0 0 8px var(--solver-accent-glow)}.solver-color-swatch.is-selected:hover{opacity:1}.solver-color-swatch:focus-visible{opacity:1;outline:2px solid var(--solver-accent);outline-offset:2px}.solver-slot-row{display:flex;flex-direction:column;gap:var(--space-xs)}.solver-slot-row__label{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:500}@media (width >= 30em){.solver-slot-row{flex-direction:row;align-items:center;gap:var(--space-md)}.solver-slot-row__label{flex:0 0 auto;min-width:4.5rem}}.solver-step-label{margin:var(--space-sm) 0 0;color:var(--solver-accent);font-size:var(--font-size-sm);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.solver-text-picker{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-xs)}.solver-text-picker button{padding:var(--space-xs) var(--space-md);background-color:var(--color-bg-tertiary);border:1.5px solid var(--color-border-medium);border-radius:4px;color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:border-color .15s ease,background-color .15s ease,opacity .15s ease,box-shadow .15s ease}.solver-text-picker button:hover:not(:disabled){border-color:var(--solver-accent)}.solver-text-picker button:disabled{opacity:.4;cursor:not-allowed}.solver-text-picker button.is-selected{border-color:var(--solver-accent);box-shadow:0 0 0 1px var(--solver-accent),0 0 6px var(--solver-accent-glow)}.solver-output{width:0;min-width:100%;padding:var(--space-md);background:var(--color-bg-primary);border:1px solid var(--color-border-subtle);border-radius:8px;box-shadow:inset 0 2px 4px rgb(0 0 0 / 30%);overflow-wrap:break-word;word-break:break-word}.solver-output>*+*{margin-top:var(--space-sm)}.solver-output p{margin:0}.solver-formula-list{display:flex;flex-direction:column;gap:var(--space-sm);margin:0;padding:0;list-style:none}.solver-formula-list li{display:flex;flex-direction:column;gap:2px}.solver-formula-list__name{font-weight:600;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.solver-formula-list__ingredients{color:var(--color-text-primary)}.solver-formula-list__number{color:var(--solver-accent);font-weight:600}.solver-word-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,calc(var(--word-ch,16) * 1ch + 2 * var(--space-sm))),1fr));gap:var(--space-xs);font-size:clamp(.6875rem, 3.4vw, var(--font-size-sm));max-height:18.75rem;margin:0;padding:0;list-style:none;overflow-y:auto;scrollbar-width:none}.solver-word-list::-webkit-scrollbar{display:none}.solver-word-list li{padding:var(--space-xs) var(--space-sm);background:var(--color-bg-tertiary);border-radius:4px;color:var(--color-text-primary);text-align:center;white-space:nowrap}.solver-word-list--empty{color:var(--color-text-muted);font-style:italic;text-align:center}.solver-word-list li.is-group-match{background:var(--solver-hint-bg)}.solver-group-label{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-xs);margin:.5em 0;color:var(--solver-hint);font-size:var(--font-size-sm)}.solver-group-label__clear{padding:0;background:0 0;border:0;color:var(--color-text-muted);font-size:var(--font-size-sm);text-decoration:underline;cursor:pointer}.solver-container--word-filter{--word-ch:16}@media (width >= 48.0625em){.solver-container--word-filter{width:min(100%,calc(4 * (var(--word-ch) * .875ch + 2 * var(--space-sm)) + 3 * var(--space-xs) + 2 * var(--space-md) + 2px + 2 * var(--space-lg) + 4px));min-width:0}}.solver-group-label__clear:hover{color:var(--color-text-primary)}.solver-result-list{display:flex;flex-direction:column;gap:var(--space-xs);margin:0;padding:0;list-style:none}.solver-result-list li{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-xs) var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--color-bg-tertiary);border-radius:4px;color:var(--color-text-primary);font-size:var(--font-size-sm)}.solver-result-list__key{font-weight:700;color:var(--solver-accent);font-size:var(--font-size-base)}.solver-result-list__descriptor{flex:1;color:var(--color-text-primary)}.solver-result-list__meta{color:var(--color-text-primary);font-family:var(--solver-font-mono);font-size:var(--font-size-base)}.solver-result-section+.solver-result-section{margin-top:var(--space-md)}.solver-result-section__heading{margin:0 0 var(--space-xs);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.solver-output.is-centered{display:flex;justify-content:center}.solver-error{width:0;min-width:100%;color:var(--color-danger-text);font-size:var(--font-size-sm);overflow-wrap:break-word;word-break:break-word}@keyframes solver-recalc{from{opacity:.3}to{opacity:1}}.solver-output.is-recalc{animation:solver-recalc .15s ease-out}.solver-debug-panel{width:0;min-width:100%;padding:var(--space-sm) var(--space-md);background:var(--color-bg-secondary);border:1px dashed var(--color-border-medium);border-radius:4px;color:var(--color-text-secondary);font-family:var(--solver-font-mono);font-size:var(--font-size-sm);line-height:var(--line-height-normal);white-space:pre-wrap;overflow-wrap:break-word;overflow-x:auto}.solver-container--totenreich-reactor{--solver-cols:4;--solver-rows:4;--solver-cell-size:clamp(2.25rem, 16vw, 4.375rem);--solver-cell-gap:3px}.reactor-cell.cell-rod{background:#4a4a52;border-color:#666;box-shadow:inset 0 1px 3px rgb(0 0 0 / 50%)}.reactor-cell.cell-rod:hover{background:#5a5a62;border-color:#666}.reactor-cell.cell-uranium{background:#00c853;border-color:#69f0ae;box-shadow:0 0 8px rgb(0 200 83 / 70%),inset 0 1px 3px rgb(255 255 255 / 20%);cursor:default}.reactor-cell.cell-activated{background:var(--solver-accent);border-color:var(--solver-accent-bright);box-shadow:0 0 6px var(--solver-accent-glow);cursor:default}.solver-container--venom-maze{--solver-cols:6;--solver-rows:6;--solver-cell-size:clamp(2.25rem, 13vw, 3.75rem);--solver-cell-gap:2px}.solver-container--venom-maze .solver-grid.is-framed{--solver-frame-bg:#d4a961;--solver-frame-border:var(--color-bg-primary);--solver-frame-padding:var(--space-sm);--solver-frame-border-width:3px;position:relative}.venom-cell{position:relative;background:#4a9d4a;border:1px solid #2d5f2d;cursor:pointer}.venom-cell.is-target{background:#5aba5a}.venom-canvas{position:absolute;top:0;left:0;pointer-events:none;z-index:10}.venom-piece{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.venom-piece.is-preview{opacity:.6}.solver-container--floppy .solver-symbol-select.is-grid{--symbol-cols:4;--symbol-size:clamp(2.25rem, 16vw, 4.375rem)}.solver-container--floppy .solver-symbol-select.is-grid button{padding:0;border-width:1.5px}.solver-container--floppy .solver-image-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-sm);flex-wrap:nowrap}.solver-container--floppy .solver-image-row img{width:100%;height:auto;aspect-ratio:1;max-width:var(--solver-cell-size);justify-self:center}.solver-container--mahjong{--mahjong-tile-size:clamp(2.25rem, 9vw, 3rem);--mahjong-tile-gap:2px;--mahjong-meld-gap:var(--space-md);--mahjong-pair-gap:var(--space-xl)}.solver-container--mahjong .solver-symbol-select{justify-content:center;gap:var(--space-sm)}.solver-container--mahjong .solver-symbol-select button{padding:var(--space-xs)}.solver-container--mahjong .solver-symbol-select img{width:var(--mahjong-tile-size);height:var(--mahjong-tile-size)}.mahjong-progress-row{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--mahjong-tile-gap)}.mahjong-tile{width:var(--mahjong-tile-size);height:var(--mahjong-tile-size);object-fit:contain;border-radius:4px;background:var(--color-bg-secondary);cursor:pointer;transition:opacity .15s ease,box-shadow .15s ease}.mahjong-tile:hover{box-shadow:0 0 0 1px var(--solver-accent)}.mahjong-tile-empty{width:var(--mahjong-tile-size);height:var(--mahjong-tile-size);border:1.5px dashed var(--color-border-medium);border-radius:4px}.mahjong-hand{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:var(--mahjong-meld-gap)}.mahjong-meld{display:flex;gap:var(--mahjong-tile-gap)}.mahjong-meld.is-pair{margin-left:calc(var(--mahjong-pair-gap) - var(--mahjong-meld-gap))}.mahjong-meld .mahjong-tile{cursor:default}.mahjong-meld .mahjong-tile:hover{box-shadow:none}.solver-container--statue{--statue-button-size:clamp(2.75rem, 12vw, 3.5rem)}.statue-row{display:flex;flex-direction:column;gap:var(--space-xs);align-items:center}.statue-row__buttons,.statue-row__labels{display:flex;gap:var(--space-md);justify-content:center}.statue-row__buttons .btn--solver{width:var(--statue-button-size);height:var(--statue-button-size);padding:0;font-size:1.5rem;line-height:1}.statue-row__labels span{width:var(--statue-button-size);text-align:center;color:var(--color-text-secondary);font-weight:600;font-size:var(--font-size-sm)}.statue-hint{margin:0;color:var(--color-text-muted);font-size:var(--font-size-sm);font-style:italic;text-align:center}.solver-container--hammer{--statue-button-size:clamp(2.75rem, 12vw, 3.5rem)}.hammer-row{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm)}.hammer-row__item{display:flex;align-items:center;gap:var(--space-md)}.hammer-row__label{width:1.25rem;text-align:right;color:var(--color-text-secondary);font-weight:600;font-size:var(--font-size-base)}.hammer-row__item .btn--solver{width:var(--statue-button-size);height:var(--statue-button-size);padding:0;font-size:1.5rem;line-height:1}.solver-container--beamsmasher .solver-symbol-select.is-grid{--symbol-cols:6;--symbol-size:clamp(2.25rem, 13vw, 3.5rem)}.solver-container--beamsmasher .solver-symbol-select.is-grid button{padding:0;border-width:1.5px}.solver-slot-list{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-sm)}.solver-slot{--slot-half-size:clamp(2rem, 8vw, 2.5rem);display:flex;align-items:stretch;padding:0;background:var(--color-bg-tertiary);border:2px dashed var(--color-border-medium);border-radius:4px;overflow:hidden;color:var(--color-text-muted);transition:border-color .15s ease,background-color .15s ease}.solver-slot.is-filled{border-style:solid;border-color:var(--solver-accent);color:var(--color-text-primary);cursor:pointer}.solver-slot.is-filled:hover{border-color:var(--solver-accent-bright)}.solver-slot__label{width:var(--slot-half-size);height:var(--slot-half-size);display:flex;align-items:center;justify-content:center;font-size:1.125rem;font-weight:700;color:var(--color-text-primary)}.solver-slot__image{display:block;width:var(--slot-half-size);height:var(--slot-half-size);object-fit:contain}.solver-slot__placeholder{width:var(--slot-half-size);height:var(--slot-half-size);display:flex;align-items:center;justify-content:center;font-size:1.125rem;font-weight:600;color:var(--color-text-muted)}.solver-slot.is-text{align-items:center;min-width:12rem;height:auto;padding:var(--space-xs) var(--space-sm);gap:var(--space-sm)}.solver-slot.is-text .solver-slot__label{width:auto;height:auto;flex:0 0 auto}.solver-slot.is-text .solver-slot__text{flex:1;color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:500}.solver-slot.is-text .solver-slot__placeholder{flex:1;width:auto;height:auto;justify-content:flex-start;font-size:var(--font-size-sm);font-weight:400;font-style:italic}.solver-container--queens{--queens-cell-size:clamp(2rem, 10.5vw, 3rem);--queens-light:#eeeed2;--queens-dark:#769656;--queens-frame:#1a1a1a}.queens-board{display:grid;grid-template-columns:repeat(8,var(--queens-cell-size));grid-template-rows:repeat(8,var(--queens-cell-size));border:4px solid var(--queens-frame);margin:0 auto}.queens-cell{width:var(--queens-cell-size);height:var(--queens-cell-size);cursor:pointer;transition:filter .15s ease;-webkit-tap-highlight-color:transparent}.queens-cell--light{background:var(--queens-light)}.queens-cell--dark{background:var(--queens-dark)}.queens-cell.is-queen{background-image:url("data:image/svg+xml,%3C?xml version=%221.0%22 encoding=%22utf-8%22 standalone=%22no%22?%3E%0A%3C!DOCTYPE svg PUBLIC %22-//W3C//DTD SVG 1.1//EN%22%0A%22http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd%22%3E%0A%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 version=%221.1%22 width=%2245%22%0Aheight=%2245%22%3E%0A  %3Cg style=%22fill:%23000000;stroke:%23000000;stroke-width:1.5; stroke-linecap:round;stroke-linejoin:round%22%3E%0A%0A    %3Cpath d=%22M 9,26 C 17.5,24.5 30,24.5 36,26 L 38.5,13.5 L 31,25 L 30.7,10.9 L 25.5,24.5 L 22.5,10 L 19.5,24.5 L 14.3,10.9 L 14,25 L 6.5,13.5 L 9,26 z%22%0A    style=%22stroke-linecap:butt;fill:%23000000%22 /%3E%0A    %3Cpath d=%22m 9,26 c 0,2 1.5,2 2.5,4 1,1.5 1,1 0.5,3.5 -1.5,1 -1,2.5 -1,2.5 -1.5,1.5 0,2.5 0,2.5 6.5,1 16.5,1 23,0 0,0 1.5,-1 0,-2.5 0,0 0.5,-1.5 -1,-2.5 -0.5,-2.5 -0.5,-2 0.5,-3.5 1,-2 2.5,-2 2.5,-4 -8.5,-1.5 -18.5,-1.5 -27,0 z%22 /%3E%0A    %3Cpath d=%22M 11.5,30 C 15,29 30,29 33.5,30%22 /%3E%0A    %3Cpath d=%22m 12,33.5 c 6,-1 15,-1 21,0%22 /%3E%0A    %3Ccircle cx=%226%22 cy=%2212%22 r=%222%22 /%3E%0A    %3Ccircle cx=%2214%22 cy=%229%22 r=%222%22 /%3E%0A    %3Ccircle cx=%2222.5%22 cy=%228%22 r=%222%22 /%3E%0A    %3Ccircle cx=%2231%22 cy=%229%22 r=%222%22 /%3E%0A    %3Ccircle cx=%2239%22 cy=%2212%22 r=%222%22 /%3E%0A    %3Cpath d=%22M 11,38.5 A 35,35 1 0 0 34,38.5%22%0A    style=%22fill:none; stroke:%23000000;stroke-linecap:butt;%22 /%3E%0A    %3Cg style=%22fill:none; stroke:%23ffffff;%22%3E%0A      %3Cpath d=%22M 11,29 A 35,35 1 0 1 34,29%22 /%3E%0A      %3Cpath d=%22M 12.5,31.5 L 32.5,31.5%22 /%3E%0A      %3Cpath d=%22M 11.5,34.5 A 35,35 1 0 0 33.5,34.5%22 /%3E%0A      %3Cpath d=%22M 10.5,37.5 A 35,35 1 0 0 34.5,37.5%22 /%3E%0A    %3C/g%3E%0A  %3C/g%3E%0A%3C/svg%3E%0A");background-size:contain;background-repeat:no-repeat;background-position:center}.solver-container--queens[data-phase=setup] .queens-cell:hover{filter:brightness(1.15)}.solver-container--queens[data-phase=solved] .queens-cell{cursor:default}.solver-container--morse{max-width:34rem}.morse-step{margin:0;color:var(--solver-accent);font-size:var(--font-size-sm);font-weight:600}.morse-section-label{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:500}.morse-strip{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-sm) var(--space-smd);padding:var(--space-smd) var(--space-sm);background:var(--color-bg-primary);border:1px solid var(--color-border-subtle);border-radius:8px;box-shadow:inset 0 2px 4px rgb(0 0 0 / 30%)}.morse-group{display:flex;flex-direction:column;align-items:center;gap:2px}.morse-group__syms{display:flex;gap:3px}.morse-group__letter{color:var(--color-text-muted);font-family:var(--solver-font-mono);font-size:.6875rem;letter-spacing:.05em}.morse-sym{color:var(--color-border-medium);font-size:.875rem;line-height:1;transition:color .12s ease}.morse-sym.is-done{color:var(--solver-accent)}.morse-sym.is-current{color:var(--color-text-primary);animation:morse-blink 1s steps(2,start) infinite}.morse-sym.is-bad{color:var(--color-no-return-text)}@keyframes morse-blink{to{opacity:.35}}.morse-pad{display:flex;flex:1 1 0;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:4.75rem;padding:var(--space-sm);background:var(--color-bg-tertiary);border:2px solid var(--color-border-medium);border-radius:10px;color:var(--color-text-primary);cursor:pointer;transition:border-color .12s ease,background-color .12s ease}.morse-pad:hover:not(:disabled){border-color:var(--solver-accent)}.morse-pad:active:not(:disabled){background:var(--solver-accent);border-color:var(--solver-accent);color:var(--color-bg-primary)}.morse-pad:disabled{opacity:.4;cursor:not-allowed}.morse-pad__glyph{font-size:1.75rem;line-height:1}.morse-pad__label{font-size:var(--font-size-base);font-weight:600}.morse-pad__hint{color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:1}.morse-pad__hint kbd{padding:0 5px;background:var(--color-bg-primary);border:1px solid var(--color-border-medium);border-radius:3px;font-family:var(--solver-font-mono);font-size:inherit}.morse-pad:active:not(:disabled) .morse-pad__hint{color:var(--color-bg-primary)}.morse-pad:active:not(:disabled) .morse-pad__hint kbd{background:0 0;border-color:currentcolor}.morse-taps{padding:var(--space-sm) var(--space-md);color:var(--solver-accent);font-family:var(--solver-font-mono);font-size:var(--font-size-base);letter-spacing:.15em;text-align:center;overflow-wrap:anywhere}.morse-taps.is-empty{color:var(--color-text-muted);font-family:inherit;font-size:var(--font-size-sm);letter-spacing:normal}.morse-banner{width:0;min-width:100%;padding:var(--space-sm) var(--space-md);border:2px solid;border-radius:8px;font-weight:600;text-align:center}.morse-banner--answer{border-color:var(--color-tip-text);color:var(--color-tip-text);font-size:var(--font-size-md)}.morse-banner--split{border-color:var(--color-danger-text);color:var(--color-danger-text);font-size:var(--font-size-md)}.morse-candidates{display:flex;flex-direction:column;gap:var(--space-xs);font-size:var(--font-size-sm)}.morse-candidate-row,.morse-skip{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-xs)}.morse-chip{padding:1px var(--space-sm);background:0 0;border:1px solid var(--solver-accent);border-radius:999px;color:var(--solver-accent);font:inherit;font-size:var(--font-size-sm);cursor:pointer;transition:background-color .12s ease}.morse-chip.is-peeking,.morse-chip:hover{background:var(--solver-accent);color:var(--color-bg-primary)}.morse-peek{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:4.25rem;padding:var(--space-sm)}.morse-peek__label{color:var(--solver-accent);font-size:var(--font-size-sm);font-weight:600}.morse-peek__hint{color:var(--color-text-muted);font-size:var(--font-size-sm)}.morse-peek .morse-strip{align-self:stretch;justify-content:flex-start;padding:0;background:0 0;border:none;box-shadow:none}.morse-peek .morse-sym.is-pending{color:var(--color-text-muted)}.morse-current{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-xs);width:100%;padding:var(--space-lg);background:var(--color-bg-primary);border:2px solid var(--solver-accent);border-radius:12px;color:var(--color-text-primary);cursor:pointer;transition:background-color .12s ease}.morse-current:hover{background:var(--color-bg-secondary)}.morse-current:active{background:var(--solver-accent);color:var(--color-bg-primary)}.morse-current__glyph{color:var(--solver-accent);font-size:2.5rem;line-height:1}.morse-current:active .morse-current__glyph,.morse-current:active .morse-current__sub{color:var(--color-bg-primary)}.morse-current__label{font-size:var(--font-size-xl);font-weight:600}.morse-current__sub{color:var(--color-text-muted);font-size:var(--font-size-sm)}.morse-skip{color:var(--color-text-muted);font-size:var(--font-size-sm)}.morse-link{padding:0;background:0 0;border:none;color:var(--solver-accent);font-size:var(--font-size-sm);font-weight:600;text-decoration:underline;cursor:pointer}.morse-link:hover{color:var(--solver-accent-bright)}.solver-container--morse:focus-visible{outline:2px solid var(--solver-accent);outline-offset:2px}.simon-pads{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-sm)}.simon-pads.is-arranging{outline:1px dashed var(--solver-accent);outline-offset:var(--space-xs);border-radius:8px}.simon-pad-slot{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.simon-pad-move{display:flex;gap:var(--space-xs)}.simon-move{display:grid;place-items:center;width:1.75rem;height:1.75rem;padding:0;background:var(--color-bg-tertiary);border:1px solid var(--color-border-medium);border-radius:4px;color:var(--solver-accent);font-size:var(--font-size-md);line-height:1;cursor:pointer;transition:border-color .15s ease,opacity .15s ease}.simon-move:hover:not(:disabled){border-color:var(--solver-accent)}.simon-move:disabled{opacity:.35;cursor:not-allowed}.simon-move:focus-visible{outline:2px solid var(--solver-accent);outline-offset:2px}.simon-pad{position:relative;width:clamp(4rem,19vw,6rem);aspect-ratio:1;padding:0;background:var(--pad-color,var(--color-bg-tertiary));border:2px solid rgb(0 0 0 / 35%);border-radius:10px;box-shadow:inset 0 -4px 0 rgb(0 0 0 / 22%),0 2px 6px rgb(0 0 0 / 35%);color:var(--pad-ink,#fff);cursor:pointer;transition:transform .1s ease,box-shadow .1s ease,opacity .15s ease;-webkit-tap-highlight-color:transparent}.simon-pad:hover:not(:disabled){transform:translateY(-2px)}.simon-pad:active:not(:disabled){transform:translateY(1px);box-shadow:inset 0 2px 6px rgb(0 0 0 / 35%)}.simon-pad:focus-visible{outline:2px solid var(--solver-accent);outline-offset:3px}.simon-pad:disabled{cursor:default}.simon-pad__badge{position:absolute;inset:0;display:grid;place-items:center;font-size:var(--font-size-md);font-weight:700;text-shadow:0 1px 2px rgb(0 0 0 / 35%)}.simon-sequence{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-sm);margin:0;padding:0;list-style:none}.simon-slot{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:3rem}.simon-slot__chip{display:grid;place-items:center;width:2.25rem;height:2.25rem;background:var(--pad-color,transparent);border:2px solid var(--color-border-medium);border-radius:6px;color:var(--pad-ink,var(--color-text-muted));font-weight:700}.simon-slot__name{color:var(--color-text-secondary);font-size:var(--font-size-sm);text-align:center}@media (prefers-reduced-motion:reduce){.simon-pad,.simon-pad:active:not(:disabled),.simon-pad:hover:not(:disabled){transform:none;transition:none}}