:root{--cell:clamp(28px, min((100vw - 76px) / 5, (100svh - 190px) / 9), 64px);--gap:6px;--pitch:calc(var(--cell) + var(--gap));--arrow-up:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 32'%3E%3Cpath d='M13 2 23.5 14.5H17.5V29.5h-9V14.5H2.5z' fill='%23ffd24a' stroke='%23171320' stroke-width='2.5' stroke-linejoin='round'/%3E%3C/svg%3E");--arrow-down:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 32'%3E%3Cpath d='M13 30 2.5 17.5H8.5V2.5h9V17.5H23.5z' fill='%23ffd24a' stroke='%23171320' stroke-width='2.5' stroke-linejoin='round'/%3E%3C/svg%3E");--radius:calc(var(--cell) / 2);font-synthesis:none;font-family:Avenir Next,Hiragino Sans,system-ui,sans-serif}:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#f0e7e2;--muted:#9c8f97;--glass:#fffaf40d;--edge:#fffaf41a;--accent:#86d9b4;--on-accent:#14261f;--page-bg:radial-gradient(70vmax 50vmax at 15% -15%, #33294a 0%, transparent 62%), radial-gradient(60vmax 45vmax at 95% 5%, #23403f 0%, transparent 58%), radial-gradient(50vmax 50vmax at 50% 120%, #402c3a 0%, transparent 60%), #171320;--panel-bg:linear-gradient(180deg, #fffaf412, #fffaf405);--panel-shadow:0 30px 70px -34px #0a060ed9;--well-bg:#120d1857;--lane-bg:linear-gradient(180deg, #fffaf414, #fffaf408 25%, #fffaf405), #1a142080;--lane-edge:inset 1.5px 0 0 #fffaf40f, inset -1.5px 0 0 #0c081066;--lane-depth:inset 0 0 22px #0c08105c;--slot-bg:#1a142073;--slot-edge:inset 0 1px 0 #fffaf40d;--mark-line:#fffaf44d;--mark-line-soft:#fffaf429;--orb-veil:#1713204d;--orb-shadow:#08050c99;--spark:#fffaf49e;--flash-ink:#fbf4ee;--text-halo:0 2px 6px #0c081099;--overlay-bg:#140f1ab8;--modal-bg:linear-gradient(180deg, #2b2338, #211b2c);--modal-shadow:0 40px 80px -34px #0a060ed9;--primary-ink:#17291f;--primary-bg:linear-gradient(180deg, #9fe3c2, #6cc4a2);--primary-shadow:0 10px 24px -14px #6cc4a2e6;--danger-ink:#2c1614;--danger-bg:linear-gradient(180deg, #e5a79c, #cf8377);--danger-shadow:0 10px 24px -14px #cf8377e6}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#4a3f3c;--muted:#9a8b85;--glass:#7858420d;--edge:#78584224;--accent:#3f9678;--on-accent:#fdf9f4;--page-bg:radial-gradient(70vmax 50vmax at 15% -15%, #efe3d6 0%, transparent 62%), radial-gradient(60vmax 45vmax at 95% 5%, #dfe9de 0%, transparent 58%), radial-gradient(50vmax 50vmax at 50% 120%, #f0e0dd 0%, transparent 60%), #f2ebe0;--panel-bg:linear-gradient(180deg, #fffcf6b8, #fffcf66b);--panel-shadow:0 30px 70px -36px #78584280;--well-bg:#7858420f;--lane-bg:linear-gradient(180deg, #78584233, #78584224 25%, #7858421f), #fffcf638;--lane-edge:inset 1.5px 0 0 #fffcf68c, inset -1.5px 0 0 #7858421f;--lane-depth:inset 0 0 22px #78584229;--slot-bg:#78584221;--slot-edge:inset 0 1px 0 #fffcf6b3;--mark-line:#78584252;--mark-line-soft:#7858423d;--orb-veil:transparent;--orb-shadow:#78584261;--spark:#fffcf6d9;--flash-ink:#4a3f3c;--text-halo:0 2px 6px #fffcf6f2;--overlay-bg:#eee6dabd;--modal-bg:linear-gradient(180deg, #fffcf6, #f5ede1);--modal-shadow:0 40px 80px -36px #78584273;--primary-ink:#fdf9f4;--primary-bg:linear-gradient(180deg, #63b899, #3f9678);--primary-shadow:0 10px 24px -14px #3f9678cc;--danger-ink:#fdf9f4;--danger-bg:linear-gradient(180deg, #c9796c, #b25f52);--danger-shadow:0 10px 24px -14px #b25f52cc}html{overflow-x:clip}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;touch-action:pan-x pan-y;margin:0}body{min-height:100svh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);color:var(--ink);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;overscroll-behavior:none;background:var(--page-bg);place-items:center;display:grid}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}svg{width:100%;height:100%;display:block}.game{width:calc(var(--cell) * 5 + var(--gap) * 4 + 28px);background:var(--panel-bg);border:1px solid var(--edge);box-shadow:var(--panel-shadow);border-radius:26px;flex-direction:column;gap:12px;padding:14px;display:flex}.title{background:var(--panel-bg);border:1px solid var(--edge);width:min(372px,100vw - 32px);box-shadow:var(--panel-shadow);border-radius:26px;flex-direction:column;align-items:stretch;gap:16px;padding:24px 18px;display:flex;position:relative}.title-update{position:absolute;top:14px;left:14px}.title-sound{position:absolute;top:14px;right:14px}.title-logo{text-align:center;letter-spacing:.06em;font-size:1.6rem;font-weight:800}.title-lead{text-align:center;letter-spacing:.06em;font-size:.92rem;font-weight:700}.goal-list{flex-direction:column;gap:6px;margin-top:6px;padding:0;list-style:none;display:flex}.goal-row{position:relative}.goal-pick{border:1px solid var(--edge);background:var(--glass);text-align:left;border-radius:14px;grid-template-columns:auto 1fr;align-items:center;column-gap:12px;width:100%;padding:9px 12px;display:grid}.goal-pick .orb{grid-row:1/3;width:34px;height:34px;font-size:.62rem;position:relative}.goal-text{flex-direction:column;grid-area:1/2/3;gap:2px;min-width:0;display:flex}.goal-text strong{font-variant-numeric:tabular-nums;font-size:1rem;line-height:1.4}.goal-state{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-size:.68rem;line-height:1.5;display:flex}.goal-head{grid-template-columns:4.6rem auto;align-items:baseline;display:grid}.goal-mark{white-space:nowrap;color:var(--accent);font-variant-numeric:tabular-nums;font-size:.74rem;font-style:normal}.goal-mark.done{color:var(--muted)}.goal-row.resumable .goal-pick{padding-right:68px}.goal-restart{color:var(--muted);text-underline-offset:2px;padding:4px;font-size:.64rem;line-height:1.3;text-decoration:underline;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.title-footer{border-top:1px solid var(--edge);flex-direction:column;align-items:center;gap:12px;padding-top:14px;display:flex}.title-options{flex-wrap:wrap;justify-content:center;gap:8px 12px;display:flex}.title-options .icon-button{width:48px;height:48px;padding:12px}.labeled-icon{align-items:center;gap:6px;display:flex}.labeled-icon-name{letter-spacing:.06em;color:var(--muted);font-size:.68rem}.legal{color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:3px 10px;font-size:.58rem;display:flex}.legal-copy{letter-spacing:.03em}.title-version{letter-spacing:.03em;color:var(--muted);opacity:.65;font-variant-numeric:tabular-nums;margin-left:6px;font-size:.52rem;font-weight:600}.legal-link{font-size:inherit;color:var(--muted);text-underline-offset:2px;text-decoration:underline}.legal-body{text-align:left;flex-direction:column;gap:10px;width:100%;font-size:.74rem;line-height:1.75;display:flex}.legal-body h3{color:var(--ink);font-size:.74rem;font-weight:700}.legal-body ol{flex-direction:column;gap:8px;padding-left:1.2em;display:flex}.tutorial-overlay{z-index:12}.tutorial{background:var(--modal-bg)}.tutorial-hud{z-index:3;pointer-events:none;position:relative}.tutorial-hud[data-focus=next] .goal:not(.far),.tutorial-hud[data-focus=goal] .goal.far,.tutorial-hud[data-focus=coins] .coins,.tutorial-hud[data-focus=tools] .tools-toggle{position:relative}.tutorial-hud[data-focus=next] .goal:not(.far):after,.tutorial-hud[data-focus=goal] .goal.far:after,.tutorial-hud[data-focus=coins] .coins:after,.tutorial-hud[data-focus=tools] .tools-toggle:after{content:"";z-index:3;background:var(--arrow-up) center / contain no-repeat;width:42px;height:48px;margin-left:-21px;animation:1.1s ease-in-out infinite point-up;position:absolute;top:calc(100% + 6px);left:50%}.tutorial-hud[data-focus=tools] .tools-toggle:after{background-image:var(--arrow-down);animation-name:point-down;top:auto;bottom:calc(100% + 4px)}@keyframes point-up{0%,to{transform:translateY(6px)}50%{transform:translateY(-4px)}}@keyframes point-down{0%,to{transform:translateY(-6px)}50%{transform:translateY(4px)}}.tutorial-count{color:var(--ink);font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:700}.tutorial-field{cursor:default;pointer-events:none}.tutorial-step{z-index:2;pointer-events:auto;flex-direction:column;gap:10px;display:flex;position:absolute;inset:38% 0 auto}.tutorial-row{align-items:stretch;gap:6px;height:190px;display:flex}.tutorial-arrow{width:46px;height:46px;color:var(--primary-ink);background:var(--primary-bg);box-shadow:var(--primary-shadow);border-radius:50%;flex:none;align-self:center;place-items:center;padding:12px;transition:transform .12s;display:grid}.tutorial-arrow:active{transform:scale(.92)}.tutorial-arrow:disabled{color:var(--muted);background:var(--glass);box-shadow:inset 0 0 0 1px var(--edge);cursor:default}.tutorial-note{border:1px solid var(--edge);background:var(--modal-bg);min-width:0;box-shadow:var(--modal-shadow);border-radius:16px;flex-direction:column;flex:1;justify-content:center;gap:8px;padding:18px;display:flex;overflow-y:auto}.tutorial-note h2{font-size:1.05rem}.tutorial-note p{color:var(--ink);font-size:.92rem;line-height:1.75}.tutorial-controls{border:1px solid var(--edge);background:var(--modal-bg);box-shadow:var(--modal-shadow);border-radius:999px;align-self:center;align-items:center;gap:12px;padding:5px 6px 5px 16px;display:flex}.tutorial-controls .secondary{background:var(--well-bg);padding:8px 22px}.share-overlay{z-index:11}.qr{background:#fffdf8;border-radius:12px;width:152px;padding:8px}.qr svg{width:100%;height:auto;display:block}.qr path{fill:#1b1520}.share-url{text-align:center;max-width:100%;color:var(--muted);word-break:break-all;font-size:.66rem;line-height:1.5}.modal-actions{gap:8px;display:flex}.share-row{justify-content:center;gap:6px;width:100%;display:flex}.share-item{border:1px solid var(--edge);background:var(--glass);min-width:0;color:var(--muted);border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:5px;padding:8px 2px;text-decoration:none;display:flex}.share-icon{width:19px;height:19px}.share-name{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.02em;max-width:100%;font-size:.54rem;overflow:hidden}.share-notice{text-align:center;color:var(--accent);align-items:center;gap:6px;font-size:.68rem;line-height:1.5;display:flex}.share-notice-icon{flex:none;width:13px;height:13px}.hud{flex-direction:column;gap:8px;display:flex}.hud-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.hud-row:last-child{gap:6px}.icon-button{border:1px solid var(--edge);width:38px;height:38px;color:var(--muted);background:var(--glass);border-radius:12px;padding:9px}.icon-button.on{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 40%, transparent)}.sound-slot{display:flex;position:relative}.icon-button.hint{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 55%, transparent);animation:1.6s ease-out 3 sound-hint}@keyframes sound-hint{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 50%, transparent)}70%{box-shadow:0 0 0 12px #0000}to{box-shadow:0 0 #0000}}.sound-callout{white-space:nowrap;color:var(--on-accent);background:var(--accent);z-index:2;pointer-events:none;border-radius:9px;padding:4px 9px;font-size:.68rem;animation:7s ease-out forwards sound-callout;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 4px 12px #0c081047}.sound-callout:before{content:"";border:5px solid #0000;border-bottom-color:var(--accent);position:absolute;bottom:100%;right:13px}@keyframes sound-callout{0%{opacity:0;transform:translateY(-4px)}6%,86%{opacity:1;transform:none}to{opacity:0;transform:translateY(-4px)}}::view-transition-old(root){animation-duration:.42s;animation-timing-function:ease}::view-transition-new(root){animation-duration:.42s;animation-timing-function:ease}@media (prefers-reduced-motion:reduce){::view-transition-old(root){animation-duration:1ms}::view-transition-new(root){animation-duration:1ms}.icon-button.hint{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent);animation:none}.sound-callout{animation:none}.clear-ring,.clear-spark{opacity:0;animation:none}.field{transition:none}.tutorial-hud [data-focus]:after,.tutorial-hud .goal:after,.tutorial-hud .coins:after,.tutorial-hud .tools-toggle:after{animation:none}}.score{background:var(--well-bg);border:1px solid var(--edge);border-radius:14px;flex-direction:column;flex:1;align-items:center;padding:3px 10px;display:flex}.score strong{font-variant-numeric:tabular-nums;letter-spacing:.02em;font-size:1.55rem;line-height:1.15}.best{letter-spacing:.14em;color:var(--muted);font-variant-numeric:tabular-nums;font-size:.62rem}.level{letter-spacing:.06em;color:var(--ink);font-variant-numeric:tabular-nums;font-size:.9rem;font-weight:800}.marks{align-items:center;gap:8px;margin-right:auto;display:flex}.goal{flex-direction:column-reverse;align-items:center;display:flex}.goal-label{letter-spacing:.14em;color:var(--muted);font-size:.66rem;line-height:1}.goal .orb{width:34px;height:34px;font-size:.62rem;position:relative}.coin{vertical-align:-1px;background:radial-gradient(circle at 32% 28%,#fdf1d2,#e8bd72 55%,#bd9152);border-radius:50%;width:13px;height:13px;display:inline-block}.coin.small{width:9px;height:9px;box-shadow:none}.coins{font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-weight:700;display:flex}.tools{display:flex;position:relative}.tools-toggle{z-index:5;position:relative}.tools-toggle.disabled{opacity:.4}.tools-catch{z-index:4;position:fixed;inset:0}.tools-panel{z-index:5;border:1px solid var(--edge);background:var(--modal-bg);box-shadow:var(--modal-shadow);transform-origin:100% 0;border-radius:14px;flex-direction:column;gap:2px;padding:6px;animation:.14s ease-out tools-open;display:flex;position:absolute;top:calc(100% + 8px);right:0}.tool{white-space:nowrap;text-align:left;border-radius:10px;align-items:center;gap:10px;padding:9px 10px;display:flex}.tool.active{box-shadow:inset 0 0 0 1px var(--accent)}.tool.disabled{opacity:.4;cursor:not-allowed}.tool-icon{width:18px;height:18px;color:var(--ink)}.tool-label{flex:1;font-size:.8rem}.tool-cost{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:3px;font-size:.72rem;display:flex}@keyframes tools-open{0%{opacity:0;transform:scale(.94)translateY(-4px)}}@media (pointer:coarse){.icon-button{width:44px;height:44px}.tool{padding:12px}.tool-icon{width:20px;height:20px}}.field{gap:var(--gap);cursor:pointer;touch-action:none;flex-direction:column;transition:filter .7s;display:flex;position:relative}.field.over{filter:grayscale()brightness(.92)}.board,.launcher{grid-template-columns:repeat(5, var(--cell));gap:var(--gap);display:grid}.board{position:relative}.lane{height:calc(var(--pitch) * 8 - var(--gap));border-radius:var(--radius);background:var(--lane-bg);box-shadow:var(--lane-edge), var(--lane-depth);transition:box-shadow .15s;position:relative}.lane.aimed{box-shadow:var(--lane-edge), inset 0 0 22px color-mix(in srgb, var(--accent) 16%, transparent), 0 0 0 1px color-mix(in srgb, var(--accent) 28%, transparent)}.orb{top:calc(var(--row,0) * var(--pitch));width:var(--cell);height:var(--cell);color:#33292c;letter-spacing:-.02em;background:radial-gradient(circle at 34% 26%, #fffcf699, #fffcf600 46%), radial-gradient(circle at 62% 88%, #462d2838, #462d2800 52%), linear-gradient(var(--orb-veil), var(--orb-veil)), var(--tint,currentcolor);box-shadow:0 4px 7px -3px var(--orb-shadow),  inset 0 2px 3px -1px #fffcf64d, inset 0 -4px 9px -1px #462d284d;animation:pop var(--pop-ms,.18s) ease-out;transition:top var(--shift-ms,.3s) cubic-bezier(.3, .1, .2, 1);pointer-events:none;border-radius:50%;place-items:center;font-size:clamp(.78rem,3.9vmin,1.1rem);font-weight:800;display:grid;position:absolute;left:0}.orb.long{font-size:clamp(.6rem,2.9vmin,.82rem)}.orb.wrapped:before{content:"";border:2px solid #fffcf6d9;border-radius:50%;position:absolute;inset:6px}.orb-value{text-shadow:0 1px #ffffff47;position:relative}.orb-unit{margin-left:.06em;font-size:1.15em}.orb.flying{z-index:2;animation:fly var(--flight-ms,.25s) cubic-bezier(.22, .62, .3, 1) both;transition:none}.orb.absorbing{--dx:calc((var(--to-col) - var(--col)) * (var(--cell) + var(--gap)));--dy:calc((var(--to-row) - var(--row)) * var(--pitch));left:calc(var(--col) * (var(--cell) + var(--gap)));top:calc(var(--row) * var(--pitch));z-index:2;animation:absorb var(--absorb-ms,.38s) cubic-bezier(.4, .02, .3, 1) forwards}.burst{top:calc(var(--row,0) * var(--pitch));width:var(--cell);height:var(--cell);border:3px solid var(--tint,#fff);pointer-events:none;z-index:3;animation:shockwave var(--burst-ms,.32s) cubic-bezier(.15, .6, .3, 1) forwards;border-radius:50%;position:absolute;left:0}.burst:before{content:"";background:radial-gradient(circle, var(--spark), transparent 62%);animation:flashout calc(var(--burst-ms,.32s) * .7) ease-out forwards;border-radius:50%;position:absolute;inset:-14%}.gain{text-align:center;color:var(--tint,currentcolor);text-shadow:var(--text-halo);animation:gain var(--burst-ms,.32s) ease-out forwards;font-size:.72rem;font-weight:800;position:absolute;inset:auto 0 92%}.preview{top:calc(var(--row,0) * var(--pitch));width:var(--cell);height:var(--cell);border:2px dashed var(--mark-line);pointer-events:none;border-radius:50%;position:absolute;left:0}.pick-mark{top:calc(var(--row,0) * var(--pitch));width:var(--cell);height:var(--cell);border:2px solid var(--accent);pointer-events:none;border-radius:50%;animation:.9s infinite blink;position:absolute;left:0}.board.picking{cursor:crosshair}.slot{height:var(--cell);border-radius:var(--radius);background:var(--slot-bg);box-shadow:var(--slot-edge);place-items:center;display:grid;position:relative}.slot.firing{animation:.22s ease-out recoil}.slot.firing:after{content:"";background:radial-gradient(circle, var(--spark), transparent 65%);pointer-events:none;border-radius:50%;animation:.26s ease-out forwards flashout;position:absolute;inset:0}.slot-mark{border-left:5px solid #0000;border-right:5px solid #0000;border-bottom:7px solid var(--mark-line-soft);width:0;height:0}.flash{text-align:center;letter-spacing:.04em;color:var(--flash-ink);text-shadow:var(--text-halo);pointer-events:none;animation:rise var(--message-ms,.9s) ease-out forwards;font-size:1.35rem;font-weight:800;position:absolute;inset:38% 0 auto}.board-hint{text-align:center;color:var(--accent);font-size:.72rem;position:absolute;inset:auto 0 -24px}.overlay{background:var(--overlay-bg);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:10;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--modal-bg);border:1px solid var(--edge);min-width:264px;max-width:calc(100vw - 28px);max-height:calc(100svh - 32px);box-shadow:var(--modal-shadow);border-radius:22px;flex-direction:column;align-items:center;gap:16px;padding:30px 34px;display:flex;position:relative;overflow-y:auto}.share-modal,.legal-modal{width:352px;padding:24px 20px}.modal h2{letter-spacing:.04em;font-size:1.1rem}.close{color:var(--muted);position:absolute;top:10px;right:12px}.ladder{align-items:center;gap:12px;display:flex}.ladder .orb{width:52px;height:52px;position:relative}.ladder .dim{opacity:.45;transform:scale(.76)}.ladder .hero{transform:scale(1.18)}.reward{align-items:center;gap:6px;font-weight:700;display:flex}.result strong{font-variant-numeric:tabular-nums;font-size:1.5rem}.primary{color:var(--primary-ink);background:var(--primary-bg);box-shadow:var(--primary-shadow);border-radius:999px;padding:11px 30px;font-weight:700}.primary.danger{color:var(--danger-ink);background:var(--danger-bg);box-shadow:var(--danger-shadow)}.confirm-note{text-align:center;max-width:17rem;color:var(--muted);font-size:.78rem;line-height:1.6}.modal-settings{border-top:1px solid var(--edge);justify-content:center;width:100%;margin-top:2px;padding-top:14px;display:flex}.secondary{color:var(--ink);border:1px solid var(--edge);background:var(--glass);border-radius:999px;padding:10px 26px;font-size:.86rem;font-weight:600}.ghost{color:var(--muted);font-size:.82rem}.clear-stage{place-items:center;width:100%;height:96px;display:grid;position:relative}.clear-stage .orb{z-index:1;width:58px;height:58px;font-size:.86rem;animation:.56s cubic-bezier(.2,.9,.3,1) both clear-pop;position:relative}.clear-ring{border:2px solid var(--accent);border-radius:50%;width:58px;height:58px;animation:1.7s ease-out infinite clear-ring;position:absolute}.clear-spark{left:calc(50% + var(--x,0px));background:var(--tint,currentcolor);border-radius:50%;width:7px;height:7px;animation:2.4s ease-out infinite clear-spark;position:absolute;bottom:18px}@keyframes clear-pop{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@keyframes clear-ring{0%{opacity:.65;transform:scale(1)}to{opacity:0;transform:scale(2.5)}}@keyframes clear-spark{0%{opacity:0;transform:translateY(16px)}25%{opacity:.85}to{opacity:0;transform:translateY(-52px)}}@keyframes pop{0%{transform:scale(.94)}62%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}30%{opacity:1}to{opacity:0;transform:translateY(-20px)}}@keyframes blink{50%{opacity:.3}}@keyframes recoil{0%{transform:translateY(0)}30%{transform:translateY(5px)scaleY(.86)}to{transform:none}}@keyframes fly{0%{transform:translateY(calc(var(--from-rows,0) * var(--pitch))) scale(1.34);filter:brightness(1.3)}to{filter:brightness();transform:translateY(0)scale(.94)}}@keyframes absorb{0%{opacity:1;filter:brightness();transform:none}25%{transform:translate(calc(var(--dx) * -.06), calc(var(--dy) * -.06)) scale(1.06);filter:brightness(1.25)}to{transform:translate(var(--dx), var(--dy)) scale(.32);opacity:.4;filter:brightness(1.6)}}@keyframes shockwave{0%{opacity:.95;transform:scale(.55)}to{opacity:0;transform:scale(2.2)}}@keyframes flashout{0%{opacity:.9;transform:scale(.7)}to{opacity:0;transform:scale(1.5)}}@keyframes gain{0%{opacity:0;transform:translateY(6px)scale(.8)}25%{opacity:1;transform:translateY(0)scale(1.1)}to{opacity:0;transform:translateY(-16px)scale(1)}}.idle-cat{--cat-h:calc(var(--cell) * 1.6);--cat-w:calc(var(--cat-h) * 11 / 12);--cat-in:-60vw;--cat-row:0;--cat-approach:0;z-index:3;pointer-events:none;top:calc(var(--cat-row) * var(--pitch) + var(--cell) - var(--cat-h));width:var(--cat-w);height:var(--cat-h);margin-left:calc(var(--cat-w) / -2);position:absolute}.idle-cat.from-right{--cat-in:60vw}.idle-cat.away{display:none}.idle-cat-sprite{background-image:url(/cat.webp);background-repeat:no-repeat;background-size:calc(var(--cat-w) * 8) calc(var(--cat-h) * 3);width:100%;height:100%;display:block}.idle-cat.from-right .idle-cat-sprite{transform:scaleX(-1)}@keyframes cat-walk{0%{background-position:0 0}to{background-position:calc(var(--cat-w) * -2) 0}}@keyframes cat-settle{0%{background-position:0 calc(var(--cat-h) * -1)}to{background-position:calc(var(--cat-w) * -8) calc(var(--cat-h) * -1)}}@keyframes cat-sleep-curl{0%{background-position:0 calc(var(--cat-h) * -2)}to{background-position:calc(var(--cat-w) * -4) calc(var(--cat-h) * -2)}}@keyframes cat-come{0%{transform:translate(var(--cat-in), calc(var(--pitch) * var(--cat-approach)))}to{transform:translate(0)}}@keyframes cat-go{0%{transform:translate(0)}to{transform:translate(calc(var(--cat-in) * -1), calc(var(--pitch) * var(--cat-approach) * -1))}}.idle-cat.coming{animation:cat-come var(--cat-come-ms) linear forwards}.idle-cat.coming .idle-cat-sprite{animation:.7s steps(2,end) infinite cat-walk}.idle-cat.settling .idle-cat-sprite{animation:cat-settle var(--cat-settle-ms) steps(8) forwards}.idle-cat.sleeping .idle-cat-sprite{animation:cat-sleep-curl var(--cat-nap-ms) steps(4) infinite}.idle-cat.leaving{animation:cat-go var(--cat-flee-ms) ease-in forwards}.idle-cat.leaving .idle-cat-sprite{animation:.46s steps(2,end) infinite cat-walk}@media (prefers-reduced-motion:reduce){.idle-cat{display:none}.orb,.flash,.pick-mark,.burst,.burst:before,.gain,.slot.firing,.slot.firing:after,.orb.flying,.orb.absorbing{animation:none}.orb{transition:none}.burst,.slot.firing:after{display:none}}
