.ws{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;max-width:520px;margin:0 auto;user-select:none;-webkit-user-select:none}.ws-top{display:flex;align-items:center;gap:10px;min-height:44px}.ws-dots{display:flex;gap:8px;align-items:center;flex:1 1 auto}.ws-dot{width:16px;height:16px;border-radius:50%;background:var(--line);transition:background calc(.2s * var(--motion))}.ws-dot.is-now{background:transparent;box-shadow:inset 0 0 0 3px var(--ink)}.ws-dot.is-clean{background:var(--leaf)}.ws-dot.is-hinted{background:var(--sun)}.ws-time{color:var(--ink-2);font-size:.95rem;font-variant-numeric:tabular-nums;white-space:nowrap}.ws-time b{color:var(--ink);font-weight:700}.ws-gear{min-width:44px;padding:8px 10px;font-size:1.25rem}.ws-label{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:1.1rem}.ws-label b{font-family:var(--font-display);font-size:1.2rem}.ws-label span{color:var(--ink-2);white-space:nowrap}.ws-stage{display:grid;gap:12px}.ws-stage.is-in{animation:ws-in calc(.32s * var(--motion)) ease-out}@keyframes ws-in{0%{transform:translate(36px);opacity:0}to{transform:none;opacity:1}}.ws-slots{--gap: 6px;display:grid;grid-template-columns:repeat(var(--n, 5),minmax(0,64px));gap:var(--gap);justify-content:center}.ws-slots[data-n="7"]{--gap: 3px}@media(min-width:420px){.ws-slots[data-n="7"]{--gap: 6px}}.ws-slot{aspect-ratio:1 / 1.08;min-width:0;min-height:48px;padding:0;border-radius:10px;border:2px dashed var(--ink-2);background:transparent;font-family:var(--font-display);font-weight:800;font-size:clamp(1.6rem,7.6vw,2.2rem);line-height:1;color:var(--ink);cursor:pointer;display:grid;place-items:center;transition:background calc(.12s * var(--motion)),border-color calc(.12s * var(--motion))}.ws-slot:disabled{cursor:default;opacity:1}.ws-slot.is-next{border-color:var(--ink);border-style:solid;background:var(--cell-related)}.ws-slot.is-filled{border-style:solid;border-color:var(--ink);background:var(--cell)}.ws-slot.is-pop{animation:sk-place calc(.14s * var(--motion)) ease-out}.ws-slot.is-locked{background:var(--sun);border-color:var(--sun);color:#2a1f16}.ws-slots.is-shake{animation:ws-shake calc(.42s * var(--motion)) ease-in-out}@keyframes ws-shake{15%,55%{transform:translate(-7px)}35%,75%{transform:translate(7px)}}.ws-slots.is-solved .ws-slot{background:var(--leaf);border-color:var(--leaf);color:#fff;animation:ws-win calc(.4s * var(--motion)) ease-out both}.ws-slots.is-solved .ws-slot:nth-child(2){animation-delay:calc(.04s * var(--motion))}.ws-slots.is-solved .ws-slot:nth-child(3){animation-delay:calc(.08s * var(--motion))}.ws-slots.is-solved .ws-slot:nth-child(4){animation-delay:calc(.12s * var(--motion))}.ws-slots.is-solved .ws-slot:nth-child(5){animation-delay:calc(.16s * var(--motion))}.ws-slots.is-solved .ws-slot:nth-child(6){animation-delay:calc(.2s * var(--motion))}.ws-slots.is-solved .ws-slot:nth-child(7){animation-delay:calc(.24s * var(--motion))}@keyframes ws-win{0%{transform:none}40%{transform:translateY(-8px) scale(1.06)}to{transform:none}}.ws-msg{min-height:1.5em;text-align:center;color:var(--ink-2);font-size:1.05rem;font-weight:600}.ws-msg.is-bad{color:var(--coral)}.ws-msg.is-good{color:var(--leaf)}.ws-rack{--t: 62px;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0 auto}.ws-rack[data-n="6"]{--t: 52px;gap:6px}.ws-rack[data-n="7"]{--t: 64px;max-width:280px}@media(min-width:560px){.ws-rack,.ws-rack[data-n="6"]{--t: 64px;gap:8px}.ws-rack[data-n="7"]{max-width:none}}.ws-tile{width:var(--t);height:calc(var(--t) * 1.06);padding:0;border-radius:12px;border:2px solid var(--line);background:var(--cell);box-shadow:0 4px 0 var(--line);font-family:var(--font-display);font-weight:800;font-size:calc(var(--t) * .5);line-height:1;color:var(--ink);display:grid;place-items:center;cursor:pointer;touch-action:manipulation;transition:transform calc(.08s * var(--motion))}.ws-tile:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 var(--line)}.ws-tile.is-used{background:transparent;box-shadow:none;border:2px dashed var(--line);cursor:default}.ws-tile:disabled{opacity:1}.ws-rack.is-shuffle .ws-tile:not(.is-used){animation:ws-flip calc(.22s * var(--motion)) ease-out}@keyframes ws-flip{0%{transform:scale(.8) rotate(-6deg);opacity:.5}to{transform:none;opacity:1}}.ws-rack.is-nudge{animation:ws-shake calc(.3s * var(--motion)) ease-in-out}.ws-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.ws-tool{min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:1.05rem;font-weight:700;padding:8px 10px}.ws-ico svg{width:22px;height:22px;display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}@media(max-width:380px){.ws-tool{padding:8px 4px;gap:4px}.ws-ico svg{width:18px;height:18px}}.ws-keys{margin:0;text-align:center;color:var(--ink-2);font-size:.95rem;display:none}@media(pointer:fine)and (min-width:700px){.ws-keys{display:block}}@media(min-width:700px){.ws{max-width:640px;gap:14px}.ws-slots{grid-template-columns:repeat(var(--n, 5),minmax(0,80px))}.ws-slots[data-n="7"]{--gap: 6px}.ws-slot{font-size:2.5rem;border-radius:12px}.ws-rack,.ws-rack[data-n="6"],.ws-rack[data-n="7"]{--t: 76px;gap:10px}.ws-label{font-size:1.2rem}.ws-label b{font-size:1.35rem}.ws-msg{font-size:1.15rem}.ws-tool{min-height:56px;font-size:1.15rem}.ws-dot{width:18px;height:18px}.ws-time{font-size:1.05rem}}.ws.is-complete .ws-stage,.ws.is-complete .ws-tools,.ws.is-complete .ws-keys,.ws.is-complete .ws-label{display:none}.ws-done{text-align:center;display:grid;gap:10px;justify-items:center;padding:4px 0 8px}.ws-done h2{margin:0;font-size:1.4rem}.ws-done p{margin:0;color:var(--ink-2);font-size:1.05rem}.ws-done-words{display:grid;gap:6px;justify-items:center}.ws-done-word{display:flex;gap:4px}.ws-done-word span{width:34px;height:36px;display:grid;place-items:center;border-radius:8px;background:var(--leaf);color:#fff;font-family:var(--font-display);font-weight:800;font-size:1.2rem}.ws-done-word.is-hinted span{background:var(--sun);color:#2a1f16}.ws-done-buttons{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.ws-done-buttons .suvi-btn{min-height:48px;min-width:140px;font-size:1.05rem;font-weight:700}
