:root{--bg-top:#1b1f3b;--bg-bottom:#0f172a;--fg:#e8ecf8;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--fg);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:radial-gradient(circle at 50% 0%, var(--bg-top), var(--bg-bottom) 70%);overscroll-behavior:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background-attachment:fixed;overflow-x:hidden}#app{min-height:100dvh}button{font-family:inherit}.no-motion *,.no-motion :before,.no-motion :after{transition-duration:1ms!important;transition-delay:0s!important;animation-duration:1ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.confetti[data-v-6ccaa2ac]{pointer-events:none;z-index:9;position:fixed;inset:0;overflow:hidden}.confetti i[data-v-6ccaa2ac]{border-radius:2px;animation-name:confetti-fall-6ccaa2ac;animation-timing-function:linear;animation-fill-mode:forwards;position:absolute;top:-6vh}@keyframes confetti-fall-6ccaa2ac{0%{opacity:1;transform:translate(0)rotate(0)}to{transform:translate(var(--drift,0px), 112vh) rotate(var(--spin,720deg));opacity:.85}}@media (prefers-reduced-motion:reduce){.confetti[data-v-6ccaa2ac]{display:none}}.overlay[data-v-b33edc78]{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:30;background:#0a0c19c7;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.card[data-v-b33edc78]{background:linear-gradient(160deg,#1e293b,#0f172a);border:1px solid #ffffff24;border-radius:20px;width:min(100%,22rem);padding:1.5rem;box-shadow:0 24px 60px #00000073}h2[data-v-b33edc78]{margin:0 0 .5rem;font-size:1.1rem}p[data-v-b33edc78]{opacity:.75;margin:0 0 1.25rem;font-size:.9rem}.actions[data-v-b33edc78]{justify-content:flex-end;gap:.6rem;display:flex}button[data-v-b33edc78]{font:inherit;cursor:pointer;border-radius:12px;padding:.55rem 1rem;font-weight:600}.ghost[data-v-b33edc78]{color:inherit;background:#ffffff0f;border:1px solid #fff3}.danger[data-v-b33edc78]{color:#fff;background:#e63946;border:0}.bottle[data-v-04be082f]{--lift:0px;cursor:pointer;width:auto;height:100%;transform:translate(var(--tx,0px), calc(var(--lift) + var(--ty,0px)));touch-action:manipulation;background:0 0;border:0;padding:0;transition:transform .18s cubic-bezier(.34,1.56,.64,1);display:block}.bottle.is-pouring[data-v-04be082f]{--lift:0px;z-index:5;transition:transform .24s cubic-bezier(.2,.7,.3,1);position:relative}.bottle[data-v-04be082f]:disabled{cursor:default}.bottle-inner[data-v-04be082f]{height:100%;display:block}.bottle-svg[data-v-04be082f]{width:100%;height:100%;animation:.38s cubic-bezier(.34,1.4,.64,1) backwards drop-in-04be082f;animation-delay:var(--entry-delay,0s);display:block;overflow:visible}.tilt[data-v-04be082f]{transition:transform .24s cubic-bezier(.2,.7,.3,1)}.glass[data-v-04be082f]{fill:#ffffff0f;stroke:#ffffff73;stroke-width:2.5px;stroke-linejoin:round}.rim[data-v-04be082f]{stroke:#ffffff8c;stroke-width:3px;stroke-linecap:round}.shine[data-v-04be082f]{fill:#ffffff38}.segment rect[data-v-04be082f]{transition:y .22s,height .22s}.segment-symbol[data-v-04be082f]{fill:#00000059;pointer-events:none;font-size:14px;font-weight:700;transition:y .22s}.stream[data-v-04be082f]{pointer-events:none}.ripple[data-v-04be082f]{pointer-events:none;animation:.38s ease-out forwards ripple-04be082f}.droplet[data-v-04be082f]{pointer-events:none;animation:.42s ease-out forwards droplet-04be082f}.spark[data-v-04be082f]{fill:#fff;pointer-events:none;animation:.6s ease-out forwards spark-04be082f}.is-selected[data-v-04be082f]{--lift:-18px}.is-selected .glass[data-v-04be082f]{stroke:#fff;filter:drop-shadow(0 0 6px #fff9)}.is-hint-from .glass[data-v-04be082f],.is-hint-to .glass[data-v-04be082f]{stroke:#ffd166;filter:drop-shadow(0 0 8px #ffd166cc)}.is-hint-from .bottle-inner[data-v-04be082f]{animation:.9s ease-in-out infinite pulse-04be082f}.is-complete .glass[data-v-04be082f]{stroke:#06d6a0e6}.is-invalid .bottle-inner[data-v-04be082f]{animation:.32s shake-04be082f}.bottle-inner.is-just-complete[data-v-04be082f]{animation:.72s cubic-bezier(.34,1.5,.64,1) seal-04be082f}.is-just-complete .glass[data-v-04be082f]{animation:.72s ease-out seal-glow-04be082f}.bottle-inner.is-celebrating[data-v-04be082f]{animation:.52s cubic-bezier(.34,1.56,.64,1) both win-bounce-04be082f;animation-delay:var(--celebrate-delay,0s)}@keyframes shake-04be082f{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}@keyframes pulse-04be082f{0%,to{opacity:1}50%{opacity:.6}}@keyframes drop-in-04be082f{0%{opacity:0;transform:translateY(-22px)}to{opacity:1;transform:translateY(0)}}@keyframes seal-04be082f{0%{transform:scale(1)}40%{transform:scale(1.09)translateY(-4px)}to{transform:scale(1)}}@keyframes seal-glow-04be082f{0%{stroke:#06d6a0e6;filter:none}35%{stroke:#fff;filter:drop-shadow(0 0 10px #06d6a0f2)}to{stroke:#06d6a0e6;filter:none}}@keyframes win-bounce-04be082f{0%{transform:translateY(0)}35%{transform:translateY(-16px)scale(1.05)}to{transform:translateY(0)}}@keyframes ripple-04be082f{0%{opacity:.85;transform:translateY(5px)}55%{opacity:.45;transform:translateY(-3px)}to{opacity:0;transform:translateY(0)}}@keyframes droplet-04be082f{0%{opacity:.9;transform:translate(0)}to{transform:translate(var(--drop-dx,0px), -14px);opacity:0}}@keyframes spark-04be082f{0%{opacity:0;transform:translate(0)}25%{opacity:1}to{transform:translate(var(--spark-dx,0px), var(--spark-dy,0px));opacity:0}}.bottle[data-v-04be082f]:focus-visible{outline-offset:4px;border-radius:12px;outline:3px solid #ffd166}@media (prefers-reduced-motion:reduce){.bottle[data-v-04be082f],.tilt[data-v-04be082f],.segment rect[data-v-04be082f],.segment-symbol[data-v-04be082f]{transition:none}.bottle-svg[data-v-04be082f],.is-invalid .bottle-inner[data-v-04be082f],.is-hint-from .bottle-inner[data-v-04be082f],.bottle-inner.is-just-complete[data-v-04be082f],.bottle-inner.is-celebrating[data-v-04be082f],.is-just-complete .glass[data-v-04be082f],.ripple[data-v-04be082f],.droplet[data-v-04be082f],.spark[data-v-04be082f]{animation:none}}.board[data-v-376c48be]{--gap:clamp(.5rem, 2.5vw, 1.1rem);--row-gap:clamp(.75rem, 3vw, 1.6rem);--max-bottle-w:min(4.75rem, calc((100dvw - 2rem - (var(--per-row) - 1) * var(--gap)) / var(--per-row)));justify-content:center;align-items:center;gap:var(--row-gap);flex-direction:column;flex:1;min-height:0;padding-block:1rem 1.5rem;display:flex}.row[data-v-376c48be]{min-height:0;max-height:calc(var(--max-bottle-w) * var(--aspect));justify-content:center;align-items:flex-end;gap:var(--gap);flex:1 1 0;display:flex}.overlay[data-v-6fcfd4b8]{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:20;background:#0a0c19c7;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.card[data-v-6fcfd4b8]{background:linear-gradient(160deg,#1e293b,#0f172a);border:1px solid #ffffff24;border-radius:20px;flex-direction:column;gap:.75rem;width:min(100%,26rem);max-height:min(85dvh,40rem);padding:1.25rem;display:flex;box-shadow:0 24px 60px #00000073}header[data-v-6fcfd4b8]{justify-content:space-between;align-items:center;display:flex}h2[data-v-6fcfd4b8]{margin:0;font-size:1.2rem}.close[data-v-6fcfd4b8]{font:inherit;color:inherit;cursor:pointer;background:#ffffff14;border:1px solid #ffffff2e;border-radius:10px;padding:.3rem .6rem}.tabs[data-v-6fcfd4b8]{gap:.4rem;margin-bottom:.75rem;display:flex}.tabs button[data-v-6fcfd4b8]{color:inherit;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff2e;border-radius:10px;flex:1;padding:.45rem .6rem;font-weight:600}.tabs button.active[data-v-6fcfd4b8]{background:#fff3;border-color:#fff6}.submit[data-v-6fcfd4b8]{gap:.5rem;display:flex}.submit input[data-v-6fcfd4b8]{font:inherit;min-width:0;color:inherit;background:#ffffff0f;border:1px solid #ffffff2e;border-radius:12px;flex:1;padding:.55rem .7rem}.submit button[data-v-6fcfd4b8]{font:inherit;white-space:nowrap;color:#06281f;cursor:pointer;background:#06d6a0;border:0;border-radius:12px;padding:.55rem .9rem;font-weight:600}.submit button[data-v-6fcfd4b8]:disabled{opacity:.4;cursor:not-allowed}.mine[data-v-6fcfd4b8],.empty[data-v-6fcfd4b8],.rank[data-v-6fcfd4b8],.error[data-v-6fcfd4b8]{margin:0;font-size:.85rem}.mine[data-v-6fcfd4b8]{opacity:.75}.rank[data-v-6fcfd4b8]{color:#ffd166;font-weight:600}.error[data-v-6fcfd4b8]{color:#ffb3b3}.list[data-v-6fcfd4b8]{flex-direction:column;gap:.15rem;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.list li[data-v-6fcfd4b8]{font-variant-numeric:tabular-nums;border-radius:8px;grid-template-columns:1.6rem minmax(0,1fr) auto auto auto;align-items:baseline;gap:.5rem;padding:.35rem .3rem;display:grid}.list li[data-v-6fcfd4b8]:nth-child(odd){background:#ffffff0d}.pos[data-v-6fcfd4b8]{opacity:.55;text-align:right}.name[data-v-6fcfd4b8]{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.lvl[data-v-6fcfd4b8]{opacity:.6;white-space:nowrap;font-size:.78rem}.stars[data-v-6fcfd4b8],.gold[data-v-6fcfd4b8]{color:#ffd166;white-space:nowrap;font-size:.78rem}.pts[data-v-6fcfd4b8]{white-space:nowrap;font-weight:700}@media (width<=26rem){.overlay[data-v-6fcfd4b8]{padding:.5rem}.card[data-v-6fcfd4b8]{padding:1rem .75rem}.submit[data-v-6fcfd4b8]{flex-wrap:wrap}.submit button[data-v-6fcfd4b8]{flex:1}.list li[data-v-6fcfd4b8]{grid-template-columns:1.4rem minmax(0,1fr) auto auto auto;gap:.35rem;font-size:.9rem}.lvl[data-v-6fcfd4b8],.stars[data-v-6fcfd4b8]{font-size:.7rem}}.stars[data-v-1b81780e]{gap:.1em;line-height:1;display:inline-flex}.star[data-v-1b81780e]{color:#ffffff38;transition:color .2s}.star.filled[data-v-1b81780e]{color:#ffd166;text-shadow:0 0 .5em #ffd16673}.star.filled.animated[data-v-1b81780e]{animation:.42s cubic-bezier(.34,1.56,.64,1) backwards pop-1b81780e}@keyframes pop-1b81780e{0%{opacity:0;transform:scale(.2)rotate(-40deg)}to{opacity:1;transform:scale(1)rotate(0)}}@media (prefers-reduced-motion:reduce){.star.filled.animated[data-v-1b81780e]{animation:none}}.overlay[data-v-6d2bec74]{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:20;background:#0a0c19b8;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.panel[data-v-6d2bec74]{background:linear-gradient(160deg,#1e293b,#0f172a);border:1px solid #ffffff24;border-radius:20px;flex-direction:column;width:min(34rem,100%);max-height:min(80dvh,44rem);padding:1.25rem;display:flex;box-shadow:0 24px 60px #00000073}header[data-v-6d2bec74]{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}h2[data-v-6d2bec74]{margin:0;font-size:1.25rem}.summary[data-v-6d2bec74]{opacity:.7;align-items:center;gap:.3rem;margin:.25rem 0 0;font-size:.8rem;display:flex}.close[data-v-6d2bec74]{font:inherit;color:inherit;cursor:pointer;background:#ffffff14;border:0;border-radius:10px;padding:.4rem .6rem}.filters[data-v-6d2bec74]{gap:.4rem;margin-bottom:.75rem;display:flex}.filters button[data-v-6d2bec74]{font:inherit;color:inherit;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff29;border-radius:999px;padding:.35rem .75rem;font-size:.78rem}.filters button.on[data-v-6d2bec74]{color:#06281f;background:#06d6a0;border-color:#0000;font-weight:600}.filters button[data-v-6d2bec74]:disabled{opacity:.35;cursor:not-allowed}.grid[data-v-6d2bec74]{grid-template-columns:repeat(auto-fill,minmax(5.6rem,1fr));gap:.5rem;margin:0;padding:.15rem;list-style:none;display:grid;overflow-y:auto}.cell[data-v-6d2bec74]{width:100%;font:inherit;color:inherit;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff24;border-radius:12px;flex-direction:column;align-items:center;gap:.2rem;padding:.5rem .3rem;transition:background .15s,transform .12s;display:flex}.cell[data-v-6d2bec74]:hover{background:#ffffff21}.cell[data-v-6d2bec74]:active{transform:scale(.95)}.cell.perfect[data-v-6d2bec74]{background:#ffd16614;border-color:#ffd16680}.cell.done[data-v-6d2bec74]:not(.perfect){border-color:#06d6a066}.cell.todo[data-v-6d2bec74]{opacity:.6}.cell.active[data-v-6d2bec74]{outline-offset:1px;outline:2px solid #06d6a0}.num[data-v-6d2bec74]{font-size:1.1rem;font-weight:700}.pts[data-v-6d2bec74]{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.8rem}.moves[data-v-6d2bec74]{opacity:.65;font-variant-numeric:tabular-nums;font-size:.65rem}.todo-label[data-v-6d2bec74]{opacity:.5}.legend[data-v-6d2bec74]{opacity:.55;text-align:center;margin:.9rem 0 0;font-size:.7rem;line-height:1.4}.legend strong[data-v-6d2bec74]{opacity:.85}.gold[data-v-6d2bec74]{color:#ffd166;white-space:nowrap;font-weight:700}.topbar[data-v-a9d51f26]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.stats[data-v-a9d51f26]{align-items:flex-start;gap:1.25rem;display:flex}.stat[data-v-a9d51f26]{flex-direction:column;line-height:1.1;display:flex}.stat.stars[data-v-a9d51f26]{gap:.3rem}.stat.level[data-v-a9d51f26]{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:flex-start;margin:0;padding:0}.stat.level:hover strong[data-v-a9d51f26],.stat.level:focus-visible strong[data-v-a9d51f26]{color:#06d6a0}.chevron[data-v-a9d51f26]{opacity:.6;margin-left:.15em;font-size:.7em}.target[data-v-a9d51f26]{opacity:.55;margin-left:.2rem;font-size:.75rem;font-weight:500}.stat strong.over[data-v-a9d51f26]{color:#ffd166}.stat small[data-v-a9d51f26]{text-transform:uppercase;letter-spacing:.08em;opacity:.65;font-size:.7rem}.stat strong[data-v-a9d51f26]{font-size:1.35rem}.tools[data-v-a9d51f26]{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.tools button[data-v-a9d51f26]{color:inherit;cursor:pointer;background:#ffffff14;border:1px solid #ffffff2e;border-radius:12px;padding:.55rem .7rem;font-size:1.1rem;line-height:1;transition:background .15s,transform .12s;position:relative}.tools button[data-v-a9d51f26]:hover:not(:disabled){background:#ffffff29}.tools button[data-v-a9d51f26]:active:not(:disabled){transform:scale(.94)}.tools button[data-v-a9d51f26]:disabled{opacity:.35;cursor:not-allowed}.tools button.mode.is-hard[data-v-a9d51f26]{background:#ff6b6b47;border-color:#ff6b6b99}.tools button.mode.is-hard[data-v-a9d51f26]:hover:not(:disabled){background:#ff6b6b61}.tools button.anim.is-off[data-v-a9d51f26]{opacity:.6}.badge[data-v-a9d51f26]{color:#1a1a2e;background:#ffd166;border-radius:999px;padding:.05rem .35rem;font-size:.65rem;font-weight:700;position:absolute;top:-6px;right:-6px}@media (width<=26rem){.topbar[data-v-a9d51f26]{gap:.6rem;padding:.6rem}.stats[data-v-a9d51f26]{gap:.85rem}.stat strong[data-v-a9d51f26]{font-size:1.15rem}.tools[data-v-a9d51f26]{gap:.35rem}.tools button[data-v-a9d51f26]{padding:.5rem .55rem;font-size:1rem}}.banner[data-v-469a727a]{left:50%;bottom:calc(1rem + env(safe-area-inset-bottom));z-index:40;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1e293bf5;border:1px solid #ffffff2e;border-radius:999px;align-items:center;gap:.6rem;width:max-content;max-width:calc(100% - 2rem);padding:.6rem .7rem .6rem 1rem;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 12px 32px #00000073}.text[data-v-469a727a]{font-size:.85rem}button[data-v-469a727a]{font:inherit;cursor:pointer;border-radius:999px}.apply[data-v-469a727a]{color:#06281f;background:#06d6a0;border:0;padding:.35rem .8rem;font-size:.82rem;font-weight:600}.apply[data-v-469a727a]:disabled{opacity:.5;cursor:default}.dismiss[data-v-469a727a]{color:inherit;opacity:.6;background:0 0;border:0;padding:.2rem .35rem}.overlay[data-v-2874df12]{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:10;background:#0a0c19b8;place-items:center;padding:1rem;animation:.22s fade-2874df12;display:grid;position:fixed;inset:0}.card[data-v-2874df12]{text-align:center;background:linear-gradient(160deg,#1e293b,#0f172a);border:1px solid #ffffff24;border-radius:20px;flex-direction:column;align-items:center;gap:.5rem;padding:2rem 2.5rem;display:flex;box-shadow:0 24px 60px #00000073}.sparkle[data-v-2874df12]{margin:0;font-size:2.75rem}h2[data-v-2874df12]{margin:0;font-size:1.4rem}.detail[data-v-2874df12]{opacity:.7;margin:.35rem 0 0}.missed[data-v-2874df12]{opacity:.55;margin:0;font-size:.8rem}.improved[data-v-2874df12]{color:#06d6a0;margin:0;font-size:.85rem;font-weight:600}.score[data-v-2874df12]{justify-content:center;align-items:baseline;gap:.4rem;margin:.4rem 0 1rem;display:flex}.score strong[data-v-2874df12]{color:#ffd166;font-size:1.2rem}.score small[data-v-2874df12]{opacity:.6}.actions[data-v-2874df12]{flex-direction:column;gap:.5rem;width:100%;display:flex}button[data-v-2874df12]{font:inherit;color:#06281f;cursor:pointer;background:#06d6a0;border:0;border-radius:999px;padding:.7rem 1.4rem;font-weight:600;transition:transform .12s,filter .15s}button.ghost[data-v-2874df12]{color:inherit;background:#ffffff14;border:1px solid #ffffff2e;padding:.5rem 1.2rem;font-size:.9rem;font-weight:500}button[data-v-2874df12]:hover{filter:brightness(1.08)}button.ghost[data-v-2874df12]:hover{background:#ffffff29}button[data-v-2874df12]:active{transform:scale(.96)}@keyframes fade-2874df12{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.overlay[data-v-2874df12]{animation:none}}.app[data-v-3d2f34b8]{min-height:100dvh;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex}main[data-v-3d2f34b8]{flex-direction:column;flex:1;justify-content:center;min-height:0;display:flex}.notice[data-v-3d2f34b8]{text-align:center;border-radius:12px;max-width:30rem;margin:0 auto 1rem;padding:.6rem 1rem;font-size:.9rem}.notice p[data-v-3d2f34b8]{margin:0}.notice.danger[data-v-3d2f34b8]{background:#e639462e;border:1px solid #e6394666}.notice.warn[data-v-3d2f34b8]{background:#ff950026;border:1px solid #ff950061}.notice.info[data-v-3d2f34b8]{background:#ffd16629;border:1px solid #ffd16666}.notice-actions[data-v-3d2f34b8]{flex-wrap:wrap;justify-content:center;gap:.4rem;margin-top:.6rem;display:flex}.notice-actions button[data-v-3d2f34b8]{font:inherit;color:inherit;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff38;border-radius:999px;padding:.35rem .75rem;font-size:.82rem}.notice-actions button[data-v-3d2f34b8]:hover{background:#ffffff2e}
