@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:500;src:url(./fredoka-latin-500-normal-B0JifZgm.woff2)format("woff2"),url(./fredoka-latin-500-normal-BL692wg7.woff)format("woff")}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:600;src:url(./fredoka-latin-600-normal-C4zohCW5.woff2)format("woff2"),url(./fredoka-latin-600-normal-CcrEjrB4.woff)format("woff")}:root{--bg:#12151f;--bg-deep:#1b2030;--panel:#242a3d;--panel-hidden:#2a3044;--panel-edge:#38405a;--accent:#ff7a3d;--accent-btn:#e2723f;--accent-dim:#d1591f;--gold:#ffb100;--gold-dim:#d99400;--text:#f1f2f7;--text-dim:#8b93ab;--font-display:"Fredoka", -apple-system, BlinkMacSystemFont, sans-serif;--font-ui:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--radius:16px;--radius-tube:12px;--radius-slot:5px;--shadow-card:inset 0 1px 0 #ffffff0d, 0 4px 12px #00000059;--grid-gap:clamp(2px, .8vw, 5px);--tile-font:clamp(15px, 8.1vw - 4px, 46px)}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes pill-bump{0%{transform:scale(1)}40%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes flash-out{0%{opacity:0}20%{opacity:1}to{opacity:0}}@keyframes banner-in{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@keyframes rise-in{to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes tap-hint{0%,70%,to{transform:translateY(0)}80%{transform:translateY(-3px)}}@keyframes drift-warm{0%,to{transform:translate(0)}50%{transform:translate(9vmax,6vmax)}}@keyframes drift-gold{0%,to{transform:translate(0)}50%{transform:translate(-8vmax,-7vmax)}}@keyframes row-sweep{0%{opacity:0;background-position:50% 0}18%,80%{opacity:1}to{opacity:0;background-position:50% 100%}}@keyframes solved-breathe{0%,to{opacity:.35}50%{opacity:1}}@keyframes board-shine{0%{opacity:0;transform:translate(-60%)}8%,38%{opacity:1}50%,to{opacity:0;transform:translate(280%)}}@keyframes score-shine{0%{background-position:180% 0}to{background-position:-80% 0}}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}html,body{background:radial-gradient(circle at 50% 0%, var(--bg) 0%, var(--bg-deep) 100%);width:100%;height:100%;color:var(--text);font-family:var(--font-ui);touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;margin:0;padding:0;overflow:hidden}#app{z-index:2;width:100%;height:100%;min-height:100dvh;padding:max(14px, env(safe-area-inset-top)) 6px max(14px, env(safe-area-inset-bottom));flex-direction:column;align-items:center;display:flex;position:relative}.wrap{flex-direction:column;flex:1;width:100%;max-width:720px;display:flex}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.backdrop{z-index:0;pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.backdrop__glow{will-change:transform;border-radius:50%;width:80vmax;height:80vmax;position:absolute}.backdrop__glow--warm{background:radial-gradient(circle,#ff7a3d21 0%,#ff7a3d00 65%);animation:38s ease-in-out infinite drift-warm;top:-34vmax;left:-24vmax}.backdrop__glow--gold{background:radial-gradient(circle,#ffb1001a 0%,#ffb10000 65%);animation:52s ease-in-out infinite drift-gold;bottom:-38vmax;right:-28vmax}.backdrop__vignette{background:radial-gradient(at 50% 40%,#06080e00 42%,#06080e8c 100%);position:absolute;top:0;bottom:0;left:0;right:0}.fx-ambient{z-index:1;pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}.fx-burst{z-index:1003;pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}.topbar{justify-content:center;align-items:center;gap:10px;margin:auto 2px 16px;display:flex}.topbar__title{top:calc(env(safe-area-inset-top,0px) + 44px);left:calc(env(safe-area-inset-left,0px) + 48px);max-width:min(40vw,320px);font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:clamp(19px,4.5vw,26px);font-weight:600;position:absolute;overflow:hidden}.topbar__stats{align-items:center;gap:12px;display:flex}@media (max-width:600px){.topbar__title{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}.stat{color:var(--text-dim);font-family:var(--font-display);white-space:nowrap;align-items:baseline;gap:5px;padding:5px 2px;font-size:clamp(15px,3.6vw,19px);font-weight:600;display:flex}.stat__icon{opacity:.85;font-size:.9em;line-height:1}.stat__value{color:var(--text);font-variant-numeric:tabular-nums;text-align:right;min-width:3.4ch;display:inline-block}.stat__value--bump{animation:.35s ease-out pill-bump}#movesStat .stat__value{min-width:1.6ch}.progress-pill{border:1.5px solid var(--panel-edge);background:var(--bg-deep);color:var(--gold);font-family:var(--font-display);white-space:nowrap;border-radius:999px;padding:6px 16px;font-size:clamp(15px,3.6vw,19px);font-weight:600}.progress-pill--bump{animation:.35s ease-out pill-bump}.hint{color:var(--text-dim);text-align:center;opacity:.7;margin:12px 0 auto;font-size:clamp(10px,2.2vw,12px)}.shelf{gap:var(--grid-gap);justify-content:center;width:100%;margin-bottom:14px;display:flex}.shelf__slot{width:calc((100% - (9 - 1) * var(--grid-gap)) / 9);aspect-ratio:1;border:1.5px dashed var(--panel-edge);background:var(--bg-deep);font-size:var(--tile-font);border-radius:10px;flex:none;justify-content:center;align-items:center;line-height:1;transition:border-color .15s,box-shadow .15s,transform .1s;display:flex;container-type:inline-size}.shelf__slot--filled{background:var(--panel);box-shadow:var(--shadow-card);border-style:solid}.shelf__slot.is-drop-target{border-color:var(--accent);transform:scale(1.04);box-shadow:0 0 0 3px #ff7a3d40}.shelf__slot.is-rejecting{animation:.28s shake}.shelf__tile{cursor:grab;touch-action:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.board{gap:var(--grid-gap);flex:0 auto;grid-template-columns:repeat(9,1fr);align-items:start;padding:6px 0 14px;display:grid;position:relative}.board__shine{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.board__shine:after{content:"";will-change:transform;background:linear-gradient(100deg,#fff0 0%,#ffffff0d 50%,#fff0 100%);width:45%;animation:9s ease-in-out infinite board-shine;position:absolute;top:0;bottom:0;left:0;-webkit-mask-image:linear-gradient(#0000 0%,#000 18% 82%,#0000 100%);mask-image:linear-gradient(#0000 0%,#000 18% 82%,#0000 100%)}.tube{border:1px solid var(--panel-edge);border-radius:var(--radius-tube);background:var(--panel);width:100%;box-shadow:var(--shadow-card);flex-direction:column;gap:clamp(1px,.4vw,2px);padding:clamp(2px,.8vw,4px) 1px;transition:border-color .15s,box-shadow .15s,transform .1s;display:flex;position:relative;container-type:inline-size}.tube--solved{border-color:var(--gold);box-shadow:0 0 0 3px #ffb1004d, var(--shadow-card)}.tube--solved:before{content:"";border-radius:inherit;pointer-events:none;will-change:opacity;animation:3.4s ease-in-out infinite solved-breathe;position:absolute;top:-1px;bottom:-1px;left:-1px;right:-1px;box-shadow:0 0 0 3px #ffb10073,0 0 18px #ffb1004d}.tube--sweep:after{content:"";border-radius:inherit;pointer-events:none;background-image:linear-gradient(#fff0 38%,#ffe7b073 50%,#fff0 62%);background-size:100% 260%;animation:.7s ease-out row-sweep;position:absolute;top:0;bottom:0;left:0;right:0}.tube.is-drop-target{border-color:var(--accent);box-shadow:0 0 0 3px #ff7a3d40, var(--shadow-card);transform:scale(1.03)}.tube.is-rejecting{animation:.28s shake}.slot{aspect-ratio:1;border-radius:var(--radius-slot);width:100%;font-size:var(--tile-font);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;line-height:1;display:flex}.slot--empty{background:#ffffff06;border:none}.slot--filled{border:1px solid var(--panel-edge);background:var(--panel)}.slot--hidden{background:var(--panel-hidden);color:var(--text-dim);font-family:var(--font-display);font-size:calc(var(--tile-font) * .62);cursor:pointer;font-weight:600;transition:filter .12s}.slot--hidden:active{filter:brightness(1.35)}.slot--draggable{cursor:grab;touch-action:none;transition:filter .12s}@media (hover:hover){.slot--draggable:hover{filter:brightness(1.2)}}.slot--draggable:active{filter:brightness(1.3)}.slot--lifted{opacity:.25}@supports (width:1cqw){.slot,.shelf__tile{font-size:78cqw}.slot--hidden{font-size:48cqw}}.drag-ghost{z-index:999;pointer-events:none;flex-direction:column;gap:2px;display:flex;position:fixed;transform:translate(-50%,-50%)}.drag-ghost__tile{width:calc(var(--tile-font) / .78);height:calc(var(--tile-font) / .78);border:2px solid var(--accent);background:var(--panel);font-size:var(--tile-font);will-change:transform;border-radius:8px;flex:none;justify-content:center;align-items:center;line-height:1;display:flex;box-shadow:0 6px 14px #00000073,0 0 0 1px #ff7a3d40}.controls{justify-content:center;gap:10px;margin-top:14px;display:flex}button{background:var(--accent-btn);box-shadow:0 4px 0 var(--accent-dim);color:#fff;font-family:var(--font-display);cursor:pointer;border:none;border-radius:999px;padding:clamp(10px,2vw,13px) clamp(20px,3vw,26px);font-size:clamp(14px,2.4vw,16px);font-weight:600;transition:transform 80ms,box-shadow 80ms,filter .12s}@media (hover:hover){button:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}}button:active:not(:disabled){box-shadow:0 1px 0 var(--accent-dim);transform:translateY(3px)}button:disabled{opacity:.4;cursor:default}.btn--ghost{background:var(--panel);box-shadow:0 4px 0 var(--panel-edge);color:var(--text-dim)}.btn--ghost:active:not(:disabled){box-shadow:0 1px 0 var(--panel-edge)}.btn--icon{padding:clamp(10px,2vw,13px) clamp(14px,2.4vw,18px)}.intro{z-index:1500;background:#0a0c14b8;justify-content:center;align-items:center;padding:clamp(10px,3vw,24px);animation:.25s ease-out fade-in;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.intro__card{border:1px solid var(--panel-edge);border-radius:var(--radius);background:var(--bg-deep);-webkit-overflow-scrolling:touch;flex-direction:column;align-items:center;gap:10px;width:min(440px,100%);max-height:100%;padding:clamp(18px,4vw,26px) clamp(16px,4vw,24px);animation:.35s ease-out banner-in;display:flex;overflow-y:auto;box-shadow:0 18px 40px #00000073}.intro__logo{font-size:34px;line-height:1}.intro__title{color:var(--text);font-family:var(--font-display);margin:0;font-size:clamp(19px,4.4vw,23px);font-weight:600}.intro__lede{max-width:30ch;color:var(--text-dim);text-align:center;margin:-4px 0 4px;font-size:clamp(13px,2.8vw,14px);line-height:1.45}.intro__steps{flex-direction:column;gap:12px;width:100%;display:flex}.intro__step{border-radius:var(--radius-tube);background:var(--panel);border:1px solid #0000;gap:11px;padding:11px 12px;display:flex}.intro__step--key{border-color:var(--accent)}.intro__step-icon{flex:none;font-size:19px;line-height:1.3}.intro__step-text{flex-direction:column;flex:auto;gap:3px;min-width:0;display:flex}.intro__step-heading{color:var(--text);font-family:var(--font-display);font-size:clamp(14px,3vw,15px);font-weight:600}.intro__step-body{color:var(--text-dim);margin:0;font-size:clamp(12.5px,2.7vw,13.5px);line-height:1.45}.intro__art{align-items:center;gap:4px;margin-top:5px;display:flex}.intro__tile{border-radius:var(--radius-slot);background:var(--panel-edge);flex:none;justify-content:center;align-items:center;width:26px;height:26px;font-size:15px;line-height:1;display:flex}.intro__tile--hidden{background:var(--panel-hidden);color:var(--text-dim);font-family:var(--font-display);font-size:14px;font-weight:600}.intro__tile--empty{border:1.5px dashed var(--panel-edge);background:var(--bg-deep)}.intro__tile--shelf{border-radius:8px}.intro__tile--lift{box-shadow:0 0 0 2px var(--accent)}.intro__tile--point{animation:1.6s ease-in-out infinite tap-hint}.intro__arrow{color:var(--text-dim);font-size:14px}.intro__play{width:100%;max-width:220px;margin-top:4px}@media (prefers-reduced-motion:reduce){.intro,.intro__card,.intro__tile--point{animation:none}}.burst{z-index:1000;pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.burst:before{content:"";background:radial-gradient(circle at 50% 45%,#ffb10059 0%,#ffb10000 60%);animation:.9s ease-out forwards flash-out;position:absolute;top:0;bottom:0;left:0;right:0}.burst__tile{pointer-events:none;will-change:transform, opacity;justify-content:center;align-items:center;display:flex;position:fixed}.win{z-index:1002;background:#0a0c149e;flex-direction:column;justify-content:center;align-items:center;gap:18px;animation:.3s ease-out fade-in;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.win__title{color:var(--gold-dim);font-family:var(--font-display);text-align:center;opacity:0;font-size:clamp(22px,5vw,32px);font-weight:600;animation:.5s ease-out .4s forwards banner-in;transform:scale(.6)}.win__score{background-image:linear-gradient(100deg, var(--gold) 25%, #fff3cf 45%, var(--gold) 62%);color:#0000;-webkit-text-fill-color:transparent;font-family:var(--font-display);font-variant-numeric:tabular-nums;opacity:0;background-size:300% 100%;-webkit-background-clip:text;background-clip:text;margin-top:-10px;font-size:clamp(38px,11vw,62px);font-weight:600;line-height:1;animation:.5s ease-out .55s forwards banner-in,2.2s ease-out .9s 2 score-shine;transform:scale(.6)}.win__moves{color:var(--text-dim);font-family:var(--font-display);opacity:0;margin-top:-12px;font-size:clamp(14px,3vw,17px);font-weight:500;animation:.4s ease-out .75s forwards rise-in}.win__best{color:var(--text-dim);font-family:var(--font-display);opacity:0;margin-top:-10px;font-size:clamp(12px,2.6vw,14px);font-weight:500;animation:.4s ease-out .85s forwards rise-in}.win__best--new{color:var(--gold-dim);font-weight:600}.win__button{opacity:0;animation:.4s ease-out 1s forwards rise-in;transform:translateY(10px)}.loading-screen{z-index:2000;background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:14px;transition:opacity .35s;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.loading-screen--hidden{opacity:0;pointer-events:none}.loading-screen__logo{font-size:44px}.loading-screen__title{color:var(--text);font-family:var(--font-display);font-size:18px;font-weight:600}.loading-screen__spinner{border:2px solid var(--panel-edge);border-top-color:var(--accent);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin}
/*$vite$:1*/