@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/play/gem-swap/assets/nunito-cyrillic-ext-600-normal-CWPPjBOD.woff2) format("woff2"),url(/play/gem-swap/assets/nunito-cyrillic-ext-600-normal-vnfu4DTE.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/play/gem-swap/assets/nunito-cyrillic-600-normal-DJGQ2h05.woff2) format("woff2"),url(/play/gem-swap/assets/nunito-cyrillic-600-normal-BUjmtIuu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/play/gem-swap/assets/nunito-vietnamese-600-normal-BY8O6Cug.woff2) format("woff2"),url(/play/gem-swap/assets/nunito-vietnamese-600-normal-DO1RqFw5.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/play/gem-swap/assets/nunito-latin-ext-600-normal-Dd9Zuxh1.woff2) format("woff2"),url(/play/gem-swap/assets/nunito-latin-ext-600-normal-BKUpuB78.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/play/gem-swap/assets/nunito-latin-600-normal-Br8yIETf.woff2) format("woff2"),url(/play/gem-swap/assets/nunito-latin-600-normal-Cd0eNu1l.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/play/gem-swap/assets/nunito-cyrillic-ext-800-normal-B-cvGohL.woff2) format("woff2"),url(/play/gem-swap/assets/nunito-cyrillic-ext-800-normal-pjRatrRO.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/play/gem-swap/assets/nunito-cyrillic-800-normal-D3igD7Kl.woff2) format("woff2"),url(/play/gem-swap/assets/nunito-cyrillic-800-normal-DymMgApb.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/play/gem-swap/assets/nunito-vietnamese-800-normal-D_CZYdm9.woff2) format("woff2"),url(/play/gem-swap/assets/nunito-vietnamese-800-normal-Dz0hZPb5.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/play/gem-swap/assets/nunito-latin-ext-800-normal-CtU8tJOV.woff2) format("woff2"),url(/play/gem-swap/assets/nunito-latin-ext-800-normal-CDcxIxx8.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/play/gem-swap/assets/nunito-latin-800-normal-Dz8SOQK_.woff2) format("woff2"),url(/play/gem-swap/assets/nunito-latin-800-normal-D-J0wlBY.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--vault-top: #2b1a4e;--vault-bottom: #120b24;--vignette: rgba(0, 0, 0, .35);--vault: radial-gradient(ellipse at 50% 45%, transparent 55%, var(--vignette)), linear-gradient(to bottom, var(--vault-top), var(--vault-bottom));--text: #eaf2ff;--text-dim: #9fb3c8;--accent: #f5b942;--accent-ink: #2a1d00;--button: rgba(0, 0, 0, .28);--button-line: rgba(255, 255, 255, .14);--radius: 18px;--board: rgba(26, 18, 48, .9);--board-rim: #3a2a60;--board-rim-width: 1px;--board-radius: .3;--well: #140d26;--well-gutter: 2px;--gem-ruby: #f0525f;--gem-azure: #42b4ff;--gem-jade: #2fd6a0;--gem-amber: #ff9a4d;--gem-honey: #ffd447;--gem-orchid: #e26cf0;--gem-fill: .82;--gem-gloss: rgba(255, 255, 255, .45);--gem-band: rgba(255, 255, 255, .6);--flash: #ffffff;--points: #eaf2ff;--points-edge: rgba(18, 11, 36, .85);--gem-bomb: #1c1430;--frost-1: rgba(255, 255, 255, .22);--frost-2: rgba(255, 255, 255, .38);--select-lift: .1;--select-line: #f5b942;--lift-shadow: rgba(0, 0, 0, .35);--board-margin: 12px;--board-gap-y: 16px;--hud-h: 96px;--control-min: 48px;--swipe-cells: .34;--column-w: 412px;--sheet: #1f1440;--sheet-line: #3a2a60;--sheet-w: 400px;--scrim: rgba(8, 4, 20, .6);--sheet-slide: .26s;--overlay-slide: .26s;--star-pop: .18s;--stars-apart: .2s;--dim-ms: .3s;--dim-to: .4;--confetti-ms: 1.6s;--switch-off: rgba(255, 255, 255, .16);--switch-knob: 22px;--flag-w: 28px;--flag-h: 20px;--star-off: rgba(255, 255, 255, .18);--warn: #ff6b6b;font-family:Nunito,system-ui,sans-serif;font-weight:600;color:var(--text);color-scheme:dark;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--vault);background-color:var(--vault-bottom);overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:manipulation}.screen{height:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.home{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;max-width:var(--column-w);margin:0 auto}.home-mark{width:96px;height:96px}.home-title{margin:0;font-size:40px;font-weight:800}.home-settings{position:absolute;top:calc(12px + env(safe-area-inset-top));right:calc(12px + env(safe-area-inset-right))}.home .play{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:220px;padding:8px 32px;font-size:24px}.home .play small{font-size:14px;font-weight:600}.home-version{position:absolute;right:calc(16px + env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom));margin:0;font-size:12px;color:var(--text-dim)}button{min-width:var(--control-min);min-height:var(--control-min);padding:0 20px;border:1px solid var(--button-line);border-radius:var(--radius);background:var(--button);color:var(--text);font:inherit;font-size:18px;cursor:pointer}button.primary{border-color:transparent;background:var(--accent);color:var(--accent-ink);font-weight:800}button:disabled{opacity:.4;cursor:default}.home-stars,.levels-stars{display:inline-flex;align-items:center;gap:6px;margin:0;color:var(--text-dim);font-weight:800}.glyph{width:1.1em;height:1.1em;flex:none;vertical-align:middle}.star-glyph{fill:var(--star-off)}.star-glyph.lit{fill:var(--accent)}.stars{display:inline-flex;gap:2px}.levels{display:flex;flex-direction:column;max-width:var(--column-w);margin:0 auto}.levels-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px}.levels-header h2{margin:0;font-weight:800}.levels-header .hud-button{font-size:28px}.level-grid{flex:1;min-height:0;align-content:start;display:grid;grid-template-columns:repeat(5,1fr);gap:10px;padding:0 12px 16px;overflow-y:auto}.level-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:1;padding:0;gap:2px}.level-tile strong{font-size:20px;font-weight:800}.level-tile .stars{font-size:12px}.level-tile.locked .glyph{color:var(--text-dim)}.level-tile.next{border:2px solid var(--accent)}.level-tile.locked{opacity:.35}.game{display:flex;flex-direction:column;max-width:var(--column-w);margin:0 auto;touch-action:none}.hud{display:flex;flex-direction:column;justify-content:center;gap:8px;height:var(--hud-h);padding:0 12px}.hud-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px}.hud-row:last-child{grid-template-columns:auto 1fr}.hud-button{justify-self:start;padding:0;font-weight:800}.hud-button .glyph{width:22px;height:22px}.hud-moves{display:flex;flex-direction:column;align-items:center;line-height:1}.hud-moves strong{font-size:32px;font-weight:800}.hud-moves span{font-size:12px;color:var(--text-dim)}.hud-moves.low strong{color:var(--warn)}.hud-objective{display:flex;justify-content:flex-end;gap:10px;font-weight:800}.objective-item{display:inline-flex;align-items:center;gap:4px}.objective-item .glyph{width:22px;height:22px}.objective-item.done{opacity:.45}.hud-score{color:var(--text-dim)}.hud-score strong{color:var(--text);font-weight:800}.star-bar{position:relative;height:10px;border-radius:5px;background:var(--button)}.star-bar-fill{height:100%;border-radius:5px;background:var(--accent)}.star-mark{position:absolute;top:50%;display:flex;transform:translate(-50%,-50%);font-size:18px}.star-mark:last-child{transform:translate(-80%,-50%)}.star-mark .star-glyph{stroke:var(--vault-bottom);stroke-width:.15}.board-area{position:relative;flex:1;min-height:0}.board{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--vignette)}.card{display:flex;flex-direction:column;align-items:stretch;gap:10px;width:min(320px,86vw);padding:24px;border:1px solid var(--button-line);border-radius:var(--radius);background:var(--vault-top);text-align:center}.card h2{margin:0 0 4px;font-weight:800}.card p{margin:0}.card .stars{justify-content:center;font-size:40px}.card-missing{display:flex;justify-content:center;gap:12px;font-size:20px;font-weight:800}.card-score{font-size:28px;font-weight:800}.card-note{color:var(--text-dim)}.sheet{width:calc(100% - 24px);max-width:var(--sheet-w);max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:16px 20px 20px;border:1px solid var(--sheet-line);border-radius:var(--radius);background:var(--sheet);color:var(--text);overflow-y:auto}.sheet[open]{animation:slide-up var(--sheet-slide) cubic-bezier(.2,.9,.3,1) both}.sheet::backdrop{background:var(--scrim)}.sheet-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:var(--control-min)}.sheet-heading h2{margin:0;font-weight:800}.sheet-heading .hud-button{font-size:26px}.sheet>button{display:block;width:100%;margin-top:10px}.sheet p{margin:8px 0}.sheet-version{color:var(--text-dim);font-size:12px;text-align:center}.languages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.language{display:flex;align-items:center;justify-content:center;gap:8px}.language img{width:var(--flag-w);height:var(--flag-h);border-radius:3px;object-fit:cover}.language.chosen{border:2px solid var(--accent)}.setting{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:var(--control-min)}.setting input{appearance:none;position:relative;width:var(--control-min);height:var(--control-min);margin:0;background:none;cursor:pointer}.setting input:before{content:"";position:absolute;inset:12px 0;border-radius:12px;background:var(--switch-off)}.setting input:after{content:"";position:absolute;top:13px;left:2px;width:var(--switch-knob);height:var(--switch-knob);border-radius:50%;background:var(--text-dim);transition:transform .12s ease-out}.setting input:checked:before{background:var(--accent)}.setting input:checked:after{transform:translate(var(--switch-knob));background:var(--accent-ink)}.start-goal{text-align:center}.sheet .start-label{margin:4px 0 0;color:var(--text-dim);font-size:14px}.sheet .start-objective{margin:2px 0;font-size:20px;font-weight:800}.start-counts{display:flex;justify-content:center;gap:14px;font-size:20px;font-weight:800}.sheet .start-moves{color:var(--text-dim);text-align:center}.start-thresholds{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.start-threshold{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:12px;background:var(--button);font-weight:800}@keyframes slide-up{0%{opacity:0;transform:translateY(40%)}}button{transition:transform 90ms ease-out}button:active:not(:disabled){transform:scale(.96)}.home-mark{animation:float 3.2s ease-in-out infinite}.hud-moves strong.pulse,.objective-item .tick{display:inline-block;animation:pulse .22s ease-out}.star-mark.passed .star-glyph{animation:star-pop var(--star-pop) ease-out}.star-bar-fill{transition:width .12s linear}.star-bar-flash{position:absolute;inset:-3px;border-radius:8px;background:var(--accent);pointer-events:none;animation:bar-flash .36s ease-out both}.board-area{transition:opacity var(--dim-ms) ease-out}.board-area.dim{opacity:var(--dim-to)}.banner{position:absolute;top:50%;left:50%;margin:0;padding:10px 18px;border-radius:var(--radius);background:var(--sheet);font-weight:800;white-space:nowrap;pointer-events:none;transform:translate(-50%,-50%);animation:banner-in .16s ease-out both}.overlay .card{animation:slide-up var(--overlay-slide) cubic-bezier(.2,.9,.3,1) both}.overlay.lost{animation:fade-in var(--dim-ms) ease-out both}.overlay.won .stars .star-glyph{animation:star-in var(--stars-apart) cubic-bezier(.3,1.6,.5,1) both;animation-delay:var(--overlay-slide)}.overlay.won .stars .star-glyph:nth-child(2){animation-delay:calc(var(--overlay-slide) + var(--stars-apart))}.overlay.won .stars .star-glyph:nth-child(3){animation-delay:calc(var(--overlay-slide) + 2 * var(--stars-apart))}.confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none}.confetti span{position:absolute;top:-5%;width:8px;height:12px;border-radius:2px;background:var(--gem-ruby);opacity:0;animation:confetti var(--confetti-ms) cubic-bezier(.3,.6,.6,1) both;animation-delay:var(--overlay-slide)}.confetti span:nth-child(6n+2){background:var(--gem-azure)}.confetti span:nth-child(6n+3){background:var(--gem-jade)}.confetti span:nth-child(6n+4){background:var(--gem-amber)}.confetti span:nth-child(6n+5){background:var(--gem-honey)}.confetti span:nth-child(6n+6){background:var(--gem-orchid)}.confetti span:nth-child(1){left:6%;--drift: 30px}.confetti span:nth-child(2){left:12%;--drift: -20px;animation-delay:calc(var(--overlay-slide) + .12s)}.confetti span:nth-child(3){left:18%;--drift: 40px;animation-delay:calc(var(--overlay-slide) + .26s)}.confetti span:nth-child(4){left:24%;--drift: -35px;animation-delay:calc(var(--overlay-slide) + 60ms)}.confetti span:nth-child(5){left:30%;--drift: 25px;animation-delay:calc(var(--overlay-slide) + .34s)}.confetti span:nth-child(6){left:36%;--drift: -15px;animation-delay:calc(var(--overlay-slide) + .18s)}.confetti span:nth-child(7){left:42%;--drift: 35px;animation-delay:calc(var(--overlay-slide) + .4s)}.confetti span:nth-child(8){left:48%;--drift: -30px;animation-delay:calc(var(--overlay-slide) + 90ms)}.confetti span:nth-child(9){left:54%;--drift: 20px;animation-delay:calc(var(--overlay-slide) + .22s)}.confetti span:nth-child(10){left:60%;--drift: -40px;animation-delay:calc(var(--overlay-slide) + .3s)}.confetti span:nth-child(11){left:66%;--drift: 30px;animation-delay:calc(var(--overlay-slide) + 30ms)}.confetti span:nth-child(12){left:72%;--drift: -25px;animation-delay:calc(var(--overlay-slide) + .38s)}.confetti span:nth-child(13){left:78%;--drift: 15px;animation-delay:calc(var(--overlay-slide) + .15s)}.confetti span:nth-child(14){left:84%;--drift: -35px;animation-delay:calc(var(--overlay-slide) + .27s)}.confetti span:nth-child(15){left:90%;--drift: 25px;animation-delay:calc(var(--overlay-slide) + 70ms)}.confetti span:nth-child(16){left:95%;--drift: -20px;animation-delay:calc(var(--overlay-slide) + .33s)}.confetti span:nth-child(17){left:3%;--drift: 20px;animation-delay:calc(var(--overlay-slide) + .44s)}.confetti span:nth-child(18){left:51%;--drift: -10px;animation-delay:calc(var(--overlay-slide) + .48s)}@keyframes float{50%{transform:translateY(-6px)}}@keyframes pulse{40%{transform:scale(1.25)}}@keyframes star-pop{50%{transform:scale(1.4)}}@keyframes bar-flash{0%{opacity:.7}to{opacity:0}}@keyframes banner-in{0%{opacity:0;transform:translate(-50%,-30%)}}@keyframes fade-in{0%{opacity:0}}@keyframes star-in{0%{opacity:0;transform:scale(.2)}}@keyframes confetti{0%{opacity:1;transform:translate(0) rotate(0)}to{opacity:0;transform:translate(var(--drift, 0),110vh) rotate(540deg)}}@media(prefers-reduced-motion:reduce){.sheet[open],.home-mark,.hud-moves strong.pulse,.objective-item .tick,.star-mark.passed .star-glyph,.star-bar-flash,.banner,.overlay .card,.overlay.lost,.overlay.won .stars .star-glyph{animation:none}.confetti,.star-bar-flash{display:none}button,.board-area,.star-bar-fill{transition:none}button:active:not(:disabled){transform:none}}
