:root{--game-green:#6aaa64;--game-yellow:#c9b458;--game-gray:#787c7e;--game-non-prefix:#d68a8a;--color-grid-background:transparent;--color-cell-background:color-mix(in srgb, currentColor 6%, transparent);--color-tile-background:var(--background,#fff);--color-tile-border:color-mix(in srgb, currentColor 35%, transparent);--color-tile-cell-divider:color-mix(in srgb, currentColor 22%, transparent);--color-tile-text:currentColor;--color-tile-shadow:color-mix(in srgb, currentColor 25%, transparent);--color-tile-success:var(--game-green);--color-tile-merge-outline:var(--game-green);--color-warning:var(--game-yellow);--color-danger:#d44;--color-cell-green:var(--game-green);--color-cell-green-text:#fff;--color-cell-yellow:var(--game-yellow);--color-cell-yellow-text:#fff;--color-cell-gray:var(--game-gray);--color-cell-gray-text:#fff;--color-cell-non-prefix:var(--game-non-prefix);--color-cell-non-prefix-text:#fff;--color-cell-shadow:#0000002e;--color-interactive:currentColor;--color-interactive-secondary:color-mix(in srgb, currentColor 50%, transparent);--shadow-opacity:1;--max-puzzle-size:min(60vmin, 640px);--ease-out-back:cubic-bezier(.34, 1.56, .64, 1)}.dark{--game-green:#538d4e;--game-yellow:#b59f3b;--game-gray:#565758;--game-non-prefix:#b56464;--color-cell-shadow:#0000008c}*{box-sizing:border-box}.board-container{width:100%;max-width:var(--max-puzzle-size);grid-template-areas:"content";display:grid}.status,.hint{text-align:center;pointer-events:none;grid-area:content}.status{color:var(--muted-foreground,currentColor);align-self:start;font-size:1rem;transform:translateY(-2.5rem)}.hint{color:var(--muted-foreground,currentColor);align-self:end;margin:0;font-size:.95rem;transform:translateY(1.4rem)}.board{aspect-ratio:1;width:100%;height:auto;max-height:var(--max-puzzle-size);pointer-events:none;touch-action:none;-webkit-user-select:none;user-select:none;grid-area:content;justify-self:center;overflow:visible}.background{fill:#dcdcdc;stroke:var(--color-grid-background);stroke-width:.5px;rx:.5px}.grid-cell{fill:var(--color-cell-background);stroke:none;rx:.375px;transform-box:fill-box;transform-origin:50%;transform:scale(.95)}.tile{pointer-events:auto;--drag-x:0px;--drag-y:0px;transform:translate(calc(var(--x) * var(--scale) + var(--drag-x)), calc(var(--y) * var(--scale) + var(--drag-y)));transform-box:fill-box;transform-origin:0 0;transition:transform .1s ease-out,scale .1s ease-out}.tile.selected{transition:none}.tile.not-interactive{pointer-events:none}.rotation-wrapper{transform:rotate(calc(var(--rotations,0) * 90deg));transform-box:fill-box;transform-origin:50%;transition:transform .2s var(--ease-out-back)}.tile-inner-wrapper{transform-box:fill-box;transform-origin:50%;transition:transform .1s ease-out,opacity .1s ease-out}.tile.selected .tile-inner-wrapper{opacity:.85;transform:scale(1.05)rotate(-.7deg)}.cell{--cell-border-color:var(--color-tile-border);transform:translate(calc(var(--x) * var(--scale)), calc(var(--y) * var(--scale)));transform-box:fill-box;transform-origin:0 0;cursor:pointer}.tile.selected .cell{cursor:grabbing}.not-interactive *{cursor:default!important}.cell-border{stroke:var(--cell-border-color);stroke-width:.5px;fill:none;pointer-events:none;transition:stroke .2s ease-out,stroke-width .2s ease-out}@keyframes cell-flip{0%{transform:scaleY(1)}50%{transform:scaleY(.05)}to{transform:scaleY(1)}}@keyframes cell-old-face{0%,49.999%{opacity:1}50%,to{opacity:0}}.cell-flip-wrapper{transform-box:fill-box;transform-origin:50%}.cell-flip-wrapper.flipping{animation:.5s cubic-bezier(.4,0,.2,1) both cell-flip;animation-delay:var(--flip-delay,0s)}.cell-flip-wrapper.flipping .cell-face-old{animation:.5s step-end both cell-old-face;animation-delay:var(--flip-delay,0s)}.cell-face{--cell-border-color:var(--color-tile-border);pointer-events:none}.fill{fill:var(--color-tile-background);rx:.5px;cursor:pointer;filter:drop-shadow(0 .25px .4px var(--color-cell-shadow))}.shadow .fill{fill:var(--color-tile-shadow);opacity:var(--shadow-opacity)}.shadow .cell{--cell-border-color:var(--color-tile-shadow)}.shadow.invalid .fill{fill:var(--color-danger);opacity:.45}.shadow.invalid .cell{--cell-border-color:var(--color-danger)}.cell-text-wrapper{transform:rotate(calc(var(--rotations,0) * -90deg));transform-box:fill-box;transform-origin:50%;transition:transform .2s var(--ease-out-back)}.rotation-wrapper-background,.tile-drag-box{opacity:0;pointer-events:none}.tile-drag-box{pointer-events:auto}.cell-text{text-transform:uppercase;fill:var(--color-tile-text);pointer-events:none;-webkit-user-select:none;user-select:none;font-weight:550;transition:fill .2s ease-out}.cell-letter-correct{--cell-border-color:var(--color-cell-green)}.cell.cell-letter-correct>.cell-flip-wrapper>.fill,.cell-face.cell-letter-correct>.fill{fill:var(--color-cell-green)}.cell.cell-letter-correct>.cell-flip-wrapper>.cell-text-wrapper>.cell-text,.cell-face.cell-letter-correct .cell-text{fill:var(--color-cell-green-text);font-weight:700}.cell-letter-present{--cell-border-color:var(--color-cell-yellow)}.cell.cell-letter-present>.cell-flip-wrapper>.fill,.cell-face.cell-letter-present>.fill{fill:var(--color-cell-yellow)}.cell.cell-letter-present>.cell-flip-wrapper>.cell-text-wrapper>.cell-text,.cell-face.cell-letter-present .cell-text{fill:var(--color-cell-yellow-text);font-weight:700}.cell-letter-absent{--cell-border-color:var(--color-cell-gray)}.cell.cell-letter-absent>.cell-flip-wrapper>.fill,.cell-face.cell-letter-absent>.fill{fill:var(--color-cell-gray)}.cell.cell-letter-absent>.cell-flip-wrapper>.cell-text-wrapper>.cell-text,.cell-face.cell-letter-absent .cell-text{fill:var(--color-cell-gray-text);font-weight:700}.cell-letter-non-prefix{--cell-border-color:var(--color-cell-non-prefix)}.cell.cell-letter-non-prefix>.cell-flip-wrapper>.fill,.cell-face.cell-letter-non-prefix>.fill{fill:var(--color-cell-non-prefix)}.cell.cell-letter-non-prefix>.cell-flip-wrapper>.cell-text-wrapper>.cell-text,.cell-face.cell-letter-non-prefix .cell-text{fill:var(--color-cell-non-prefix-text);font-weight:700}.cell-green{--cell-border-color:var(--color-cell-green)}.cell.cell-green>.cell-flip-wrapper>.fill,.cell-face.cell-green>.fill{fill:var(--color-cell-green)}.cell.cell-green>.cell-flip-wrapper>.cell-text-wrapper>.cell-text,.cell-face.cell-green .cell-text{fill:var(--color-cell-green-text)}.merged-tile.merged-aligned .cell .cell-border{stroke-width:.6px}.merged-tile.merged-aligned .cell{--cell-border-color:var(--color-tile-merge-outline);color:var(--game-green)}.merged-tile.merged-rotated .cell .cell-border{stroke-width:.8px;stroke-dasharray:1.2 .8}.merged-tile.merged-rotated .cell{--cell-border-color:var(--color-warning)}.tile-drag-box{fill:#0000;pointer-events:auto}.connection-edge{stroke:var(--cell-border-color);stroke-width:.6px;stroke-dasharray:1.4 .8;pointer-events:none}.status-solved{color:var(--color-tile-success);font-size:1.05rem;font-weight:600}@keyframes solved-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.board-container.solved .merged-tile .tile-inner-wrapper{transform-box:fill-box;transform-origin:50%;animation:1.6s ease-in-out infinite solved-pulse}@keyframes failed-to-rotate{0%,to{transform:rotate(0)}20%{transform:rotate(-10deg)}40%{transform:rotate(10deg)}60%{transform:rotate(-10deg)}80%{transform:rotate(10deg)}}.failed-to-rotate .tile-inner-wrapper{transform-box:fill-box;transform-origin:50%;animation:.4s ease-out both failed-to-rotate}
