:root{--ink:#282451;--ink-soft:#282451ad;--ink-faint:#2824516b;--on-pastel:#282451;--paper:#eff2f7;--surface:#fff;--well:#eff2f7;--line:#e1e5ef;--scrim:#28245152;--pink:#f2a0d5;--lilac:#bdc0f2;--sky:#a7ddf2;--mint:#aef2b9;--butter:#f2d57e;--peach:#f7be96;--periwinkle:#9db4f0;--hot:#f869c5;--hot-soft:#ffedf9;--bevel:inset -2px 2px 0 #ffffff80, inset 2px -2px 0 #0000001a;--r-cell:5px;--r-key:12px;--r-panel:24px;--focus:0 0 0 3px var(--surface), 0 0 0 6px var(--hot);--ease-out:cubic-bezier(.16, 1, .3, 1);--font:"Rubik", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.25rem;--text-xl:1.625rem;--text-2xl:2.25rem;--text-3xl:clamp(2.25rem, 6vw, 3.25rem);--header-height:64px;--gutter:clamp(16px, 4vw, 40px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (width<=640px),(height<=500px){:root{--header-height:52px}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ink:#eceefb;--ink-soft:#eceefbb8;--ink-faint:#eceefb73;--paper:#16143a;--surface:#211e4b;--well:#2b2860;--line:#34306c;--scrim:#0a08248c;--hot-soft:#3a2560;--bevel:inset -2px 2px 0 #ffffff73, inset 2px -2px 0 #00000024;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--ink:#eceefb;--ink-soft:#eceefbb8;--ink-faint:#eceefb73;--paper:#16143a;--surface:#211e4b;--well:#2b2860;--line:#34306c;--scrim:#0a08248c;--hot-soft:#3a2560;--bevel:inset -2px 2px 0 #ffffff73, inset 2px -2px 0 #00000024;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{background:var(--paper);min-height:100dvh;color:var(--ink);font-family:var(--font);font-size:var(--text-md);-webkit-font-smoothing:antialiased;margin:0;line-height:1.5}h1,h2,h3,p,ul,ol,figure{margin:0}h1,h2,h3{letter-spacing:-.01em;text-wrap:balance;line-height:1.15}img,svg{max-width:100%;display:block}button{font:inherit;color:inherit}a{color:inherit}:focus-visible{box-shadow:var(--focus);outline:none}code{font-family:var(--font-mono);font-size:.9em}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.rainbow-text{background-image:linear-gradient(90deg, var(--lilac), var(--pink), var(--butter), var(--sky), var(--lilac));color:#0000;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;animation:3s linear infinite rainbow}@keyframes rainbow{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.piece-i{--c:var(--sky)}.piece-j{--c:var(--periwinkle)}.piece-l{--c:var(--peach)}.piece-o{--c:var(--butter)}.piece-s{--c:var(--mint)}.piece-t{--c:var(--lilac)}.piece-z{--c:var(--pink)}.tone-pink{--tone:var(--pink)}.tone-sky{--tone:var(--sky)}.tone-lilac{--tone:var(--lilac)}.tone-mint{--tone:var(--mint)}.tone-butter{--tone:var(--butter)}.block{border-radius:var(--r-cell);background:var(--c,var(--well));box-shadow:var(--bevel)}@keyframes block-fly{0%{opacity:1;animation-timing-function:cubic-bezier(.2,.8,.4,1);translate:0;rotate:0deg;scale:1}35%{translate:calc(var(--dx) * .45) var(--rise);animation-timing-function:cubic-bezier(.5,0,.9,.5)}to{translate:var(--dx) var(--fall);rotate:var(--spin);opacity:0;scale:.35}}.logo[data-v-1875f89e]{color:var(--ink);display:inline-flex}.logo[data-v-1875f89e] svg{width:auto;height:26px}.header{z-index:20;height:var(--header-height);padding:0 var(--gutter);padding-top:env(safe-area-inset-top);background:color-mix(in srgb, var(--paper) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);align-items:center;gap:16px;display:flex;position:sticky;top:0}.header__brand{flex:none;text-decoration:none;display:flex}.header .header__mark{display:none}.header__nav{background:var(--surface);border-radius:16px;gap:4px;margin:0 auto;padding:4px;display:flex}.header__link{min-height:40px;color:var(--ink-soft);border-radius:12px;align-items:center;gap:8px;padding:0 16px;font-weight:600;text-decoration:none;transition:background .16s,color .16s;display:flex;position:relative}.header__link:hover{color:var(--ink)}.header__link.is-active{background:var(--hot-soft);color:var(--ink)}.header__link.is-active svg{color:var(--hot)}.header__count{background:var(--well);font-size:var(--text-xs);font-variant-numeric:tabular-nums;border-radius:8px;padding:2px 7px}.header__dot{background:var(--hot);border-radius:50%;width:8px;height:8px;position:absolute;top:6px;right:6px}.header__tools{gap:4px;display:flex}.header__tool{width:40px;height:40px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:12px;place-items:center;display:grid}.header__tool:hover{background:var(--surface);color:var(--ink)}@media (width<=640px){.header{gap:8px}.header .header__logo{display:none}.header .header__mark{display:flex}.header__link{padding:0 12px}}@media (width<=380px){.header__link svg{display:none}}.art{grid-template-columns:repeat(var(--columns), var(--block));grid-auto-rows:var(--block);gap:max(1px, var(--block) / 8);display:grid}.art__block.block{border-radius:max(2px, var(--block) / 4);animation:art-pop .42s var(--ease-out) calc(var(--order) * 45ms) both}@keyframes art-pop{0%{opacity:0;transform:translateY(-60%)scale(.4)}70%{opacity:1;transform:translateY(6%)scale(1.08)}to{transform:none}}.toasts{top:calc(var(--header-height) + 12px);z-index:50;pointer-events:none;gap:8px;width:min(360px,100vw - 32px);margin:0;padding:0;list-style:none;display:grid;position:fixed;right:16px}@media (width<=899px){.toasts{left:50%;right:auto;transform:translate(-50%)}}.toast{background:var(--surface);color:var(--ink);box-shadow:0 4px 0 var(--line), 0 12px 32px #2824511f;pointer-events:auto;border-radius:18px;align-items:center;gap:12px;padding:12px 12px 12px 16px;display:flex}.toast--unlock{box-shadow:0 4px 0 color-mix(in oklab, var(--pink), var(--on-pastel) 24%), 0 12px 32px #28245129}.toast__art{background:var(--tone);width:52px;height:52px;box-shadow:var(--bevel);animation:toast-pop .52s var(--ease-out);border-radius:14px;flex:none;place-items:center;display:grid;position:relative}.toast__medal{filter:drop-shadow(0 2px #2824512e);position:absolute;top:-16px;left:-12px}.toast__text{font-size:var(--text-sm);flex:1;line-height:1.3;display:grid}.toast__text span{color:var(--ink-soft)}.toast__close{width:32px;height:32px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid}@keyframes toast-pop{0%{transform:scale(.4)rotate(-12deg)}60%{transform:scale(1.12)rotate(4deg)}}.toast-enter-active,.toast-leave-active{transition:opacity .24s ease, transform .32s var(--ease-out)}.toast-enter-from,.toast-leave-to{opacity:0;transform:translateY(-12px)scale(.96)}.board{border-radius:var(--r-panel);background:var(--surface);box-shadow:0 6px 0 var(--line);padding:8px;position:relative}.board__grid{grid-template-columns:repeat(10, var(--cell));grid-auto-rows:var(--cell);touch-action:none;-webkit-user-select:none;user-select:none;gap:2px;display:grid;position:relative}.board__grid--thud{animation:.18s ease-out board-thud}.board__grid--quake{animation:.46s ease-out board-quake}.cell{border-radius:var(--r-cell);background:var(--well)}.cell--locked,.cell--active{background:var(--c);box-shadow:var(--bevel)}.cell--ghost{background:color-mix(in srgb, var(--c) 22%, transparent);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--c) 85%, transparent)}.cell--clearing{background:var(--c);animation:.26s ease-in forwards cell-clear}.board--over .cell--locked{filter:saturate(.35);transition:filter .6s}.fx{--pad:8px;--pitch:calc(var(--cell) + 2px);inset:calc(-1 * var(--pad));border-radius:var(--r-panel);pointer-events:none;position:absolute;overflow:hidden}.fx__beam{top:calc(var(--pad) + var(--row) * var(--pitch));height:var(--cell);border-radius:var(--r-cell);box-shadow:0 0 18px 4px color-mix(in srgb, var(--hot) 45%, transparent);animation:fx-beam .46s var(--ease-out) forwards;background:linear-gradient(90deg,#0000,#fff 25% 75%,#0000);position:absolute;left:0;right:0}.fx__beam--max{background:linear-gradient(90deg, var(--sky), var(--lilac), var(--pink), var(--butter), var(--mint));box-shadow:0 0 24px 8px color-mix(in srgb, var(--hot) 55%, transparent)}.fx__shard{top:calc(var(--pad) + var(--row) * var(--pitch));left:calc(var(--pad) + var(--x) * var(--pitch));width:var(--cell);height:var(--cell);opacity:0;animation:block-fly .82s var(--delay) both;position:absolute}.fx__score{top:calc(var(--pad) + var(--row) * var(--pitch) + var(--cell) / 2);color:var(--ink);text-align:center;-webkit-text-stroke:6px var(--surface);paint-order:stroke fill;animation:fx-score 1.1s var(--ease-out) forwards;flex-direction:column;align-items:center;font-weight:800;line-height:1;display:flex;position:absolute;left:0;right:0}.fx__score strong{font-size:max(1.25rem, var(--cell) * 1.1);font-variant-numeric:tabular-nums}.fx__score span{font-size:max(.875rem, var(--cell) * .6);margin-top:4px}.fx__score--max{color:var(--hot)}@media (prefers-reduced-motion:reduce){.fx__score{animation:none;transform:translateY(-50%)}}@keyframes cell-clear{0%{box-shadow:var(--bevel)}35%{background:#fff;transform:scale(1.08)}to{opacity:0;background:#fff;transform:scale(.3)}}@keyframes fx-beam{0%{opacity:1;transform:scaleX(0)}45%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(1)scaleY(.15)}}@keyframes fx-score{0%{opacity:0;transform:translateY(-50%)scale(.5)}18%{opacity:1;transform:translateY(-50%)scale(1.12)}30%{transform:translateY(-50%)scale(1)}75%{opacity:1}to{opacity:0;transform:translateY(calc(-50% - 36px))scale(1)}}@keyframes board-thud{35%{transform:translateY(4px)}}@keyframes board-quake{15%{transform:translate(-5px,3px)rotate(-.6deg)}30%{transform:translate(5px,-2px)rotate(.6deg)}45%{transform:translate(-4px,2px)rotate(-.4deg)}60%{transform:translate(3px,-1px)rotate(.3deg)}80%{transform:translate(-1px,1px)}}.meter{gap:3px;height:12px;display:flex}.meter__segment{background:var(--well);border-radius:3px;flex:1;transition:background .2s}.meter__segment.is-filled{background:var(--hot);box-shadow:var(--bevel)}.meter__bar{background:linear-gradient(90deg, var(--hot) calc(var(--fill) * 100%), var(--well) 0);border-radius:4px;flex:1}.hud{background:var(--surface);border-radius:18px;flex-direction:column;gap:20px;padding:18px;display:flex}.hud__label{font-size:var(--text-sm);color:var(--ink-soft)}.hud__label strong{color:var(--ink);font-weight:700}.hud__value{font-size:var(--text-lg);font-variant-numeric:tabular-nums;margin:0;font-weight:700}.hud__value--big{font-size:var(--text-2xl);font-weight:800;line-height:1.1;display:block}.hud__row{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.hud__hint{font-size:var(--text-xs);color:var(--ink-faint)}.hud__extra{grid-template-columns:1fr 1fr;gap:12px;margin:0;display:grid}.hud__extra dd{margin:0}@media (width<=899px){.hud{grid-template-columns:auto auto;place-content:center space-between;gap:6px 12px;padding:10px 14px;display:grid}.hud__score{align-items:baseline;gap:6px;display:flex}.hud__value--big{font-size:var(--text-lg)}.hud__level{display:contents}.hud__row{white-space:nowrap;align-self:baseline;margin:0}.hud__hint{display:none}.hud .meter{grid-column:1/-1;height:8px}.hud__extra{display:none}}@media (width<=480px){.hud{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 8px;container-type:inline-size}.hud__score{grid-column:1/-1}.hud__value--big{font-size:min(var(--text-lg), 24cqi)}.hud__row{align-self:center}.hud .meter{grid-column:auto}.hud__score .hud__label{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}}.confetti{border-radius:inherit;pointer-events:none;position:absolute;inset:0;overflow:hidden;container-type:size}.confetti__piece{width:var(--size);height:var(--size);opacity:0;border-radius:3px;position:absolute}.confetti--rain .confetti__piece{top:calc(-1 * var(--size));left:var(--left);animation:confetti-rain var(--duration) linear var(--delay) both}.confetti--burst .confetti__piece{animation:block-fly var(--duration) var(--delay) both;top:45%;left:50%}@keyframes confetti-rain{0%{opacity:1;transform:translate(0)rotate(0)}25%{transform:translate(var(--dx), 25cqh) rotate(calc(var(--spin) * .25))}50%{transform:translate(calc(var(--dx) * -.6), 50cqh) rotate(calc(var(--spin) * .5))}85%{opacity:1}to{opacity:0;transform:translate(var(--dx), calc(100cqh + 20px)) rotate(var(--spin))}}.keycap{background:var(--surface);min-width:28px;height:28px;color:var(--ink);font-family:var(--font);font-size:var(--text-xs);box-shadow:inset 0 0 0 1.5px var(--line), 0 2px 0 var(--line);border-radius:7px;place-items:center;padding:0 6px;font-weight:600;display:inline-grid}.keycap--wide{padding:0 10px}.overlay{z-index:5;border-radius:var(--r-panel);background:color-mix(in srgb, var(--surface) 58%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);place-items:center;padding:12px;display:grid;position:absolute;inset:0;overflow-y:auto}.overlay__card{text-align:center;flex-direction:column;align-items:center;gap:12px;width:min(100%,320px);display:flex;position:relative}.overlay__mark svg{height:44px}.overlay__title{font-size:var(--text-xl);font-weight:800}.overlay__text{max-width:30ch;font-size:var(--text-sm);color:var(--ink-soft)}.overlay__primary{margin-top:8px}.overlay__actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:8px;display:flex}.overlay__hint{font-size:var(--text-sm);color:var(--ink-soft);align-items:center;gap:6px;display:flex}.overlay__link{color:var(--ink);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.overlay__celebration{margin-bottom:4px}.overlay__score{font-size:var(--text-3xl);font-variant-numeric:tabular-nums;font-weight:800;line-height:1}.overlay__stats{gap:20px;margin:0;display:flex}.overlay__stats div{flex-direction:column-reverse;display:flex}.overlay__stats dt{font-size:var(--text-xs);color:var(--ink-soft)}.overlay__stats dd{font-variant-numeric:tabular-nums;margin:0;font-weight:700}.overlay__unlocked{background:var(--hot-soft);border-radius:16px;width:100%;padding:12px}.overlay__unlocked ul{gap:6px;margin-top:8px;padding:0;list-style:none;display:grid}.overlay__unlocked a{background:var(--surface);border-radius:10px;align-items:center;gap:10px;padding:6px 8px;font-weight:600;text-decoration:none;display:flex}.overlay__subtitle{font-size:var(--text-sm);font-weight:600}.overlay__read{font-size:var(--text-xs);color:var(--ink-soft);margin-left:auto}.overlay-enter-active,.overlay-leave-active{transition:opacity .2s}.overlay-enter-active .overlay__card,.overlay-leave-active .overlay__card{transition:transform .32s var(--ease-out)}.overlay-enter-from,.overlay-leave-to{opacity:0}.overlay-enter-from .overlay__card,.overlay-leave-to .overlay__card{transform:translateY(12px)scale(.97)}.hints{padding:4px 4px 0}.hints ul{gap:8px;padding:0;list-style:none;display:grid}.hints li{font-size:var(--text-sm);color:var(--ink-soft);align-items:center;gap:10px;display:flex}.hints__keys{gap:4px;min-width:78px;display:flex}.next-unlock{background:var(--surface);border-radius:18px;align-items:center;gap:12px;padding:12px 14px;text-decoration:none;display:flex}.next-unlock__icon{flex:none;position:relative}.next-unlock__icon img{filter:grayscale()opacity(.55)}.next-unlock__lock{background:var(--ink);color:var(--surface);box-sizing:content-box;border-radius:50%;padding:3px;position:absolute;bottom:-2px;right:-4px}.next-unlock__text{flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}.next-unlock__label{font-size:var(--text-xs);color:var(--ink-soft)}.next-unlock__chevron{color:var(--ink-faint)}.next-unlock:hover .next-unlock__chevron{color:var(--ink)}.mini{--mini:16px;grid-template-columns:repeat(var(--cols), var(--mini));grid-template-rows:repeat(var(--rows), var(--mini));gap:2px;display:grid}.mini .block{border-radius:4px}.slot{background:var(--surface);color:var(--ink);text-align:left;font:inherit;border:0;border-radius:18px;flex-direction:column;gap:12px;padding:14px 16px 16px;transition:opacity .2s;display:flex}.slot--interactive{cursor:pointer;touch-action:manipulation}.slot--dimmed{opacity:.45}.slot__label{font-size:var(--text-sm);color:var(--ink-soft);font-weight:600}.slot__pieces{flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:34px;display:flex}.slot__pieces .mini:not(:first-child){--mini:12px;opacity:.85}.slot__empty{font-size:var(--text-xs);color:var(--ink-faint);text-align:center}.touch{width:100%;padding-bottom:env(safe-area-inset-bottom);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;justify-content:space-between;gap:12px;display:flex}.touch__group{gap:8px;display:flex}.touch__key.key{border-radius:14px;width:clamp(46px,13.5vw,64px);min-height:0}.game{--board-chrome:60px;--side:clamp(190px, 18vw, 240px);--gap:24px;--cell-by-height:calc((100dvh - var(--header-height) - 2 * var(--gap) - var(--board-chrome)) / 20);--cell-by-width:calc((100vw - 2 * var(--side) - 2 * var(--gap) - 2 * var(--gutter) - 56px) / 10);--cell:clamp(14px, min(var(--cell-by-height), var(--cell-by-width)), 34px);grid-template-columns:var(--side) auto var(--side);place-content:center;align-items:start;gap:var(--gap);min-height:calc(100dvh - var(--header-height));padding:var(--gap) var(--gutter);overscroll-behavior:none;grid-template-areas:"left stage right";display:grid}.game__left,.game__right{flex-direction:column;gap:12px;display:flex}.game__left{grid-area:left}.game__right{grid-area:right}.game__stage{grid-area:stage;position:relative}.game__unlock{margin-top:auto}.game__pause{align-self:stretch}.game__levelup{z-index:4;border-radius:var(--r-panel);pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.game__levelup-text{background:var(--butter);color:var(--on-pastel);box-shadow:var(--bevel), 0 6px 0 color-mix(in oklab, var(--butter), var(--on-pastel) 24%);animation:level-up 1.6s var(--ease-out) forwards;border-radius:20px;flex-direction:column;align-items:center;padding:14px 28px 16px;line-height:1;display:flex}.game__levelup-text span{font-size:var(--text-sm);font-weight:700}.game__levelup-text strong{font-size:var(--text-3xl);font-variant-numeric:tabular-nums;font-weight:800}@media (width<=899px){.game{--gap:10px;--gutter:12px;--top-row:64px;--controls:0px;--cell-by-height:calc((100dvh - var(--header-height) - var(--top-row) - var(--controls) - 4 * var(--gap) - var(--board-chrome)) / 20);--cell-by-width:calc((100vw - 2 * var(--gutter) - 34px) / 10);height:calc(100dvh - var(--header-height));grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-areas:"hold hud next pause""stage stage stage stage""touch touch touch touch";place-content:start stretch;align-items:stretch;min-height:0;overflow:hidden}.game--touch{--controls:calc(62px + env(safe-area-inset-bottom))}.game__left,.game__right{display:contents}.game__hold{grid-area:hold}.game__hud{grid-area:hud}.game__next{grid-area:next}.game__next .mini:not(:first-child){display:none}.game__pause{grid-area:pause;align-self:center;width:44px;height:44px}.game__unlock,.game__hints{display:none}.game__stage{justify-content:center;display:flex}.game__touch{grid-area:touch;align-self:end}.game .slot{border-radius:14px;flex-direction:row;align-items:center;gap:8px;padding:8px 10px}.game .slot__label{writing-mode:vertical-rl;font-size:10px;transform:rotate(180deg)}.game .slot__pieces{min-width:40px;min-height:40px}.game .slot__empty{width:24px;height:24px;box-shadow:inset 0 0 0 2px var(--line);border-radius:6px;font-size:0}.game .slot .mini{--mini:10px}}@media (height<=500px) and (orientation:landscape) and (pointer:coarse){.game{--gap:8px;--cell-by-height:calc((100dvh - var(--header-height) - 2 * var(--gap) - var(--board-chrome)) / 20);height:calc(100dvh - var(--header-height));grid-template-columns:auto auto auto auto auto;grid-template-areas:"move left stage right act";justify-content:center;align-items:center}.game__left,.game__right{width:150px;display:flex}.game__unlock{display:none}.game .touch{display:contents}.game .touch__group{grid-template-columns:repeat(2,auto);justify-content:center;gap:10px;display:grid}.game .touch__group .key:last-child{grid-column:1/-1;justify-self:center}.game .touch__group--move .key:nth-child(2){order:3;grid-column:1/-1;justify-self:center}.game .touch__group--move .key:last-child{grid-column:auto}.game .touch__group--move{grid-area:move}.game .touch__group--act{grid-area:act}.game .hud{flex-direction:column;align-items:stretch}}@keyframes level-up{0%{opacity:0;transform:scale(.4)rotate(-8deg)}18%{opacity:1;transform:scale(1.12)rotate(3deg)}28%{transform:scale(1)rotate(0)}80%{opacity:1;transform:scale(1)}to{opacity:0;transform:translateY(-24px)scale(.96)}}
