:root{--sky: #8fd3ff;--ui-fg: #ffffff;--ui-bg: rgba(0, 0, 0, .35);--accent: #ff8fb8;--accent-light: #ffc4d9;--accent-dark: #e2668f;--air: #7fc8ff;--air-light: #c8e8ff;--air-dark: #4f9fd8;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--edge: 24px;--action-size: clamp(116px, 30vmin, 152px)}*{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:var(--sky);overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;text-size-adjust:100%;font-family:Hiragino Maru Gothic ProN,"Rounded Mplus 1c",Yu Gothic UI,system-ui,sans-serif}button{font:inherit;-webkit-appearance:none;appearance:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}#app{position:fixed;inset:0;width:100%;height:100dvh;overflow:hidden}#game{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}.joystick{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none;z-index:5}.joystick[hidden]{display:none}.joystick-base{position:absolute;width:150px;height:150px;margin:-75px 0 0 -75px;border-radius:50%;border:5px solid rgba(255,255,255,.85);background:radial-gradient(circle,#ffffff14 40%,#ffffff47);box-shadow:0 4px 14px #0000002e;animation:joystick-pop .12s ease-out}.joystick-knob{position:absolute;width:72px;height:72px;margin:-36px 0 0 -36px;border-radius:50%;border:4px solid #ffffff;background:#fff;box-shadow:0 3px 10px #0000004d;transition:background-color .1s ease,border-color .1s ease}.joystick.is-pushed .joystick-knob{background:var(--accent-light);border-color:var(--accent)}@keyframes joystick-pop{0%{transform:scale(.7);opacity:.4}to{transform:scale(1);opacity:1}}.action-button{position:absolute;right:calc(var(--edge) + var(--safe-right));bottom:calc(calc(var(--edge) + var(--safe-bottom)) + 8px);width:var(--action-size);height:var(--action-size);border-radius:50%;border:6px solid #ffffff;background:radial-gradient(circle at 35% 28%,var(--accent-light) 0%,var(--accent) 58%);color:var(--ui-fg);box-shadow:0 8px 0 var(--accent-dark),0 12px 22px #00000047;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:24px;font-weight:800;letter-spacing:.06em;line-height:1;text-shadow:0 2px 0 rgba(0,0,0,.2);cursor:pointer;touch-action:none;z-index:10;padding:0;transition:transform .06s ease-out,box-shadow .06s ease-out}.action-button.is-pressed{transform:translateY(7px) scale(.95);box-shadow:0 1px 0 var(--accent-dark),0 3px 8px #00000040}.action-button.is-air{background:radial-gradient(circle at 35% 28%,var(--air-light) 0%,var(--air) 58%);box-shadow:0 8px 0 var(--air-dark),0 12px 22px #00000047}.action-button.is-air.is-pressed{box-shadow:0 1px 0 var(--air-dark),0 3px 8px #00000040}.action-button:focus-visible{outline:4px solid #ffffff;outline-offset:6px}.action-icon{width:40px;height:40px;background:#fff;clip-path:polygon(50% 0%,100% 60%,70% 60%,70% 100%,30% 100%,30% 60%,0% 60%);transition:transform .2s ease}.action-button.is-air .action-icon{transform:rotate(180deg)}.hud{position:absolute;left:calc(12px + var(--safe-left));top:calc(10px + var(--safe-top));padding:6px 10px;border-radius:10px;background:var(--ui-bg);color:var(--ui-fg);font-size:13px;line-height:1.5;font-variant-numeric:tabular-nums;pointer-events:none;z-index:10;white-space:pre}.hud[hidden],.hud:empty{display:none}.debug{position:absolute;right:calc(var(--edge) + var(--safe-right));top:calc(var(--edge) + var(--safe-top));display:flex;align-items:flex-start;gap:8px;max-width:62vw;z-index:10}.debug-items{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.debug.is-collapsed .debug-items{display:none}.debug button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:44px;min-height:44px;padding:8px 12px;border:2px solid rgba(255,255,255,.85);border-radius:12px;background:var(--ui-bg);color:var(--ui-fg);font-size:14px;font-weight:700;line-height:1;white-space:nowrap;cursor:pointer;touch-action:manipulation;transition:transform .06s ease-out,background-color .1s ease}.debug button:active{transform:translateY(2px);background:#0000008c}.debug button.is-on{background:#ff8fb8e6;border-color:#fff}.debug-mark{font-size:12px}.debug .debug-menu{padding:0;font-size:22px}.orientation-hint{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;background:#a6dbff;color:#fff;font-size:clamp(24px,6vmin,36px);font-weight:800;text-align:center;pointer-events:auto;touch-action:none}.orientation-hint[hidden]{display:none}.orientation-phone{width:70px;height:120px;border:6px solid #ffffff;border-radius:14px;animation:rotate-phone 2s ease-in-out infinite}@keyframes rotate-phone{0%,30%{transform:rotate(0)}60%,to{transform:rotate(-90deg)}}@media(prefers-reduced-motion:reduce){.joystick-base,.orientation-phone{animation:none}}.score{position:absolute;left:50%;top:calc(10px + var(--safe-top));transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:6px 16px 6px 12px;border-radius:999px;background:#ffffffd9;color:#e2668f;font-size:26px;font-weight:800;font-variant-numeric:tabular-nums;box-shadow:0 3px 10px #00000026;pointer-events:none;z-index:10}.score-heart{width:26px;height:26px;background:#ff6b9d;clip-path:path("M13 24 C3 16, 0 10, 3 5 C6 1, 11 2, 13 6 C15 2, 20 1, 23 5 C26 10, 23 16, 13 24 Z")}.score.is-bump{animation:score-bump .5s ease-out}@keyframes score-bump{0%{transform:translate(-50%) scale(1)}30%{transform:translate(-50%) scale(1.3)}to{transform:translate(-50%) scale(1)}}.toast{position:absolute;left:50%;top:24%;transform:translate(-50%,-50%) scale(.6);padding:8px 16px;color:#fff;font-size:clamp(36px,9vmin,56px);font-weight:900;-webkit-text-stroke:6px #ff8fb8;paint-order:stroke fill;text-shadow:0 4px 0 #e2668f;opacity:0;pointer-events:none;z-index:15;white-space:nowrap}.toast[hidden]{display:none}.toast.is-show{animation:toast-pop 2.2s ease-out forwards}@keyframes toast-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.6)}15%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}25%{transform:translate(-50%,-50%) scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-60%) scale(1)}}.start{position:absolute;inset:0;z-index:18;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(14px,4vmin,28px);padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);overflow:hidden;background:linear-gradient(165deg,#ffc9de,#ffe4ef 42%,#d8f0ff 72%,#a9dcff);cursor:pointer;touch-action:none;opacity:1;transition:opacity .4s ease}.start[hidden]{display:none}.start.is-leaving{opacity:0}.start:before,.start:after{content:"";position:absolute;width:14vmin;height:14vmin;border-radius:50%;background:#fff;opacity:.85;box-shadow:11vmin 2vmin 0 -1vmin #fff,-10vmin 3vmin 0 -2vmin #fff,20vmin 4vmin 0 -3.5vmin #fff;animation:start-drift 7s ease-in-out infinite alternate;pointer-events:none}.start:before{left:14%;top:14%}.start:after{right:16%;bottom:18%;transform:scale(.75);animation-duration:9s;animation-direction:alternate-reverse}@keyframes start-drift{0%{translate:-2vmin 0}to{translate:2vmin 0}}.start-button{position:relative;width:clamp(150px,42vmin,220px);height:clamp(150px,42vmin,220px);border-radius:50%;border:8px solid #ffffff;background:radial-gradient(circle at 35% 28%,var(--accent-light) 0%,var(--accent) 58%);box-shadow:0 10px 0 var(--accent-dark),0 16px 28px #00000038;display:flex;align-items:center;justify-content:center;animation:start-pulse 1.6s ease-in-out infinite}.start-bunny{width:76%;height:76%;margin-top:-6%;filter:drop-shadow(0 3px 0 rgba(0,0,0,.12))}@keyframes start-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.start.is-leaving .start-button{animation:none;transform:scale(1.15);transition:transform .4s ease-out}.start-logo{position:relative;display:block;width:auto;height:auto;max-width:min(76vw,640px);max-height:52vh;filter:drop-shadow(0 6px 10px rgba(0,0,0,.14));animation:start-float 3.2s ease-in-out infinite}@keyframes start-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.start-label{position:relative;padding:10px 26px;border-radius:999px;background:#ffffffeb;color:var(--accent-dark);font-size:clamp(26px,7vmin,40px);font-weight:800;letter-spacing:.08em;line-height:1.2;white-space:nowrap;box-shadow:0 4px 12px #0000001f}@media(prefers-reduced-motion:reduce){.start-button,.start-logo,.start:before,.start:after{animation:none}}@media(max-height:460px){.start{gap:clamp(8px,2.5vmin,14px)}.start-button{width:clamp(96px,26vmin,150px);height:clamp(96px,26vmin,150px);border-width:6px}.start-label{padding:6px 18px;font-size:clamp(20px,6vmin,28px)}}.mute-button{position:absolute;right:calc(var(--edge) + var(--safe-right));top:calc(var(--edge) + var(--safe-top));width:56px;height:56px;padding:0;border:4px solid #ffffff;border-radius:50%;background-color:var(--accent);background-image:radial-gradient(circle at 32% 26%,#fff9,#fff0 55%);box-shadow:0 4px 0 var(--accent-dark),0 0 0 1.5px #0000001a,0 6px 12px #00000038;display:flex;align-items:center;justify-content:center;cursor:pointer;touch-action:none;z-index:10}.mute-button.is-muted{background-color:#b9bcc6;box-shadow:0 4px #8d909a,0 0 0 1.5px #0000001a,0 6px 12px #00000038}.mute-icon{width:62%;height:62%;fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.mute-icon-body{fill:#fff}.mute-icon-slash,.is-muted .mute-icon-wave{display:none}.is-muted .mute-icon-slash{display:block}.mute-button{top:calc(var(--edge) + var(--safe-top) + 122px)}body.is-debug .minimap{top:calc(var(--edge) + var(--safe-top) + 64px)}body.is-debug .mute-button{top:calc(var(--edge) + var(--safe-top) + 64px + 122px)}@media(max-height:460px){.mute-button{top:calc(var(--edge) + var(--safe-top) + 106px)}body.is-debug .mute-button{top:calc(var(--edge) + var(--safe-top) + 64px + 106px)}}.old-ios-notice{display:none}html.old-ios .old-ios-notice{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;background:linear-gradient(165deg,#ffc9de,#ffe4ef 42%,#d8f0ff 72%,#a9dcff);color:var(--accent-dark);font-size:clamp(22px,5vmin,34px);font-weight:800;text-align:center}html.old-ios .old-ios-sub{font-size:.6em;font-weight:600}html.old-ios #app{display:none}.speech-bubble{position:absolute;left:0;top:0;z-index:11;pointer-events:none;will-change:transform;opacity:1;transition:opacity .25s ease}.speech-bubble[hidden]{display:none}.speech-bubble.is-pending,.speech-bubble.is-behind{visibility:hidden}.speech-bubble.is-out{opacity:0}.speech-bubble-body{--bubble-border: 5px;position:relative;max-width:min(70vw,420px);width:max-content;padding:10px 20px;border:var(--bubble-border) solid var(--accent);border-radius:22px;background:#fff;color:var(--accent-dark);font-size:clamp(20px,4.2vmin,30px);font-weight:800;line-height:1.3;letter-spacing:.02em;text-align:center;word-break:keep-all;overflow-wrap:anywhere;white-space:pre-line;box-shadow:0 5px 12px #00000029;transform-origin:var(--tail-x, 50%) calc(100% + 18px)}.speech-bubble-body.is-pop{animation:speech-bubble-pop .25s ease-out}@keyframes speech-bubble-pop{0%{transform:scale(.6)}60%{transform:scale(1.08)}to{transform:scale(1)}}.speech-bubble-tail{position:absolute;left:var(--tail-x, 50%);top:100%;width:0;height:0}.speech-bubble-tail:before,.speech-bubble-tail:after{content:"";position:absolute;clip-path:polygon(0% 0%,100% 0%,50% 100%)}.speech-bubble-tail:before{left:-16px;top:var(--bubble-border);width:32px;height:18px;background:var(--accent)}.speech-bubble-tail:after{left:-13.8px;top:-.5px;width:27.6px;height:16px;background:#fff}.speech-bubble-body.is-tailless .speech-bubble-tail{display:none}.speech-bubble-body.has-next{padding-right:30px}.speech-bubble-next{display:none;position:absolute;right:9px;bottom:7px;width:14px;height:11px;background:var(--accent);clip-path:polygon(0% 0%,100% 0%,50% 100%);opacity:0}.has-next .speech-bubble-next{display:block;animation:speech-bubble-next .9s ease-in-out 1.5s infinite}@keyframes speech-bubble-next{0%,to{opacity:.35;transform:translateY(-2px)}50%{opacity:1;transform:translateY(2px)}}.tutorial-hint-card{position:absolute;left:0;right:0;bottom:calc(18px + var(--safe-bottom));margin:0 auto;box-sizing:border-box;display:flex;align-items:center;gap:8px;width:max-content;max-width:46vw;height:56px;padding:0 20px;border:4px solid var(--accent);border-radius:28px;background:#fff;color:var(--accent-dark);font-size:clamp(16px,2.6vw,24px);font-weight:800;line-height:1;white-space:nowrap;box-shadow:0 5px 14px #0000002e;pointer-events:none;z-index:12;opacity:1;transition:opacity .2s ease;transform-origin:50% 100%}.tutorial-hint-card[hidden]{display:none}.tutorial-hint-card.has-icon{padding-left:4px}.tutorial-hint-icon{display:none;flex:none;width:40px;height:40px}.has-icon .tutorial-hint-icon{display:block}.tutorial-hint-icon .goal-icon{display:block;width:100%;height:100%}.tutorial-hint-text{min-width:0;overflow:hidden}.tutorial-hint-card.is-compact{left:calc(16px + var(--safe-left));right:auto;margin:0;width:56px;padding:0;justify-content:center;transform-origin:50% 50%}.tutorial-hint-card.is-compact .tutorial-hint-text{display:none}.tutorial-hint-card.is-out{opacity:0}.tutorial-hint-card.is-pop{animation:tutorial-pop .3s ease-out}@keyframes tutorial-pop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.08);opacity:1}to{transform:scale(1)}}.tutorial-hint-card.is-bump{animation:tutorial-bump .6s ease-out}@keyframes tutorial-bump{0%,to{transform:translateY(0) scale(1)}30%{transform:translateY(-14px) scale(1.12)}60%{transform:translateY(0) scale(.96)}}.goal-icon-wait{transform-origin:50% 80%;animation:goal-icon-sway .9s ease-in-out infinite alternate}@keyframes goal-icon-sway{0%{transform:rotate(-12deg)}to{transform:rotate(12deg)}}.tutorial-finger{position:absolute;width:0;height:0;pointer-events:none;z-index:12;transition:scale .3s ease-out}.tutorial-finger[hidden]{display:none}.tutorial-finger.is-stick{left:20%;top:54%}.tutorial-finger.is-look{left:68%;top:38%}.tutorial-finger.is-urgent{scale:1.3}.tutorial-finger.is-show{animation:tutorial-fade-in .3s ease-out}@keyframes tutorial-fade-in{0%{opacity:0}to{opacity:1}}.tutorial-finger-track{position:absolute;border:4px dashed rgba(255,255,255,.75);background:#ffffff29}.is-stick .tutorial-finger-track{left:-16px;top:-52px;width:32px;height:104px;border-radius:16px}.is-look .tutorial-finger-track{left:-56px;top:-16px;width:112px;height:32px;border-radius:16px}.tutorial-finger-hand{position:absolute;left:0;top:0;width:0;height:0}.is-stick .tutorial-finger-hand{animation:tutorial-stroke-up 1.6s ease-in-out infinite}@keyframes tutorial-stroke-up{0%{transform:translateY(36px);opacity:0}15%{transform:translateY(36px);opacity:1}70%{transform:translateY(-36px);opacity:1}88%,to{transform:translateY(-36px);opacity:0}}.is-look .tutorial-finger-hand{animation:tutorial-swipe 1.4s ease-in-out infinite alternate}@keyframes tutorial-swipe{0%{transform:translate(-40px)}to{transform:translate(40px)}}.tutorial-finger-icon{position:absolute;left:-23px;top:-7.5px;width:60px;height:67.5px;overflow:visible;opacity:.92;filter:drop-shadow(0 3px 4px rgba(0,0,0,.25))}.tutorial-finger-outline rect{fill:var(--accent-dark);stroke:var(--accent-dark);stroke-width:6;stroke-linejoin:round}.tutorial-finger-fill rect{fill:#fff}.tutorial-finger-nail{fill:var(--accent-light)}.tutorial-finger-ring{fill:#ffffff59;stroke:#fff;stroke-width:4;transform-box:fill-box;transform-origin:center;animation:tutorial-ring 1s ease-out infinite}@keyframes tutorial-ring{0%{transform:scale(.7);opacity:1}to{transform:scale(1.35);opacity:.2}}.tutorial-arrow{position:absolute;left:0;top:0;width:0;height:0;rotate:-45deg;pointer-events:none;z-index:12;transition:scale .3s ease-out}.tutorial-arrow[hidden]{display:none}.tutorial-arrow.is-urgent{scale:1.3}.tutorial-arrow.is-show{animation:tutorial-fade-in .3s ease-out}.tutorial-arrow-bob{position:absolute;left:-28px;bottom:0;width:56px;height:64px;animation:tutorial-arrow-bob .55s ease-in-out infinite alternate}@keyframes tutorial-arrow-bob{0%{transform:translateY(0)}to{transform:translateY(-14px)}}.tutorial-arrow-icon{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(-2.8px 2.8px 0 var(--accent-dark)) drop-shadow(-4px 4px 6px rgba(0,0,0,.2))}.tutorial-arrow-icon path{fill:var(--accent);stroke:#fff;stroke-width:4;stroke-linejoin:round}.tutorial-arrow.is-land .tutorial-arrow-icon{filter:drop-shadow(-2.8px 2.8px 0 var(--air-dark)) drop-shadow(-4px 4px 6px rgba(0,0,0,.2))}.tutorial-arrow.is-land .tutorial-arrow-icon path{fill:var(--air)}.action-button.is-hint{animation:action-hint-pulse 1s ease-in-out infinite}@keyframes action-hint-pulse{0%,to{scale:1}50%{scale:1.1}}.action-button.is-hint:after{content:"";position:absolute;inset:-14px;border:5px solid #ffffff;border-radius:50%;pointer-events:none;animation:action-hint-ring 1s ease-out infinite}@keyframes action-hint-ring{0%{transform:scale(.85);opacity:.95}to{transform:scale(1.3);opacity:0}}.tutorial-done{position:absolute;left:0;right:0;top:24%;height:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:16}.tutorial-done[hidden]{display:none}.tutorial-done-text{position:relative;color:#fff;-webkit-text-stroke:6px #ff8fb8;paint-order:stroke fill;text-shadow:0 4px 0 #e2668f;font-size:clamp(48px,13vmin,92px);font-weight:800;line-height:1.2;letter-spacing:.06em;white-space:nowrap;opacity:0}.tutorial-done.is-show .tutorial-done-text{animation:tutorial-done-pop 1.8s ease-out forwards}@keyframes tutorial-done-pop{0%{transform:scale(.3);opacity:0}14%{transform:scale(1.15);opacity:1}24%{transform:scale(.94)}34%{transform:scale(1)}80%{transform:scale(1);opacity:1}to{transform:scale(1.06);opacity:0}}.tutorial-done-burst{--spread: clamp(160px, 40vmin, 300px);position:absolute;left:50%;top:50%;width:0;height:0}.tutorial-star{position:absolute;left:-20px;top:-20px;width:40px;height:40px;background:#ffd43b;clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);opacity:0}.tutorial-star:nth-child(3n+2){background:#ff8fb8}.tutorial-star:nth-child(3n){background:#8fd3ff}.tutorial-done.is-show .tutorial-star{animation:tutorial-star-burst 1.1s ease-out forwards;animation-delay:calc(.08s + var(--i, 0) * .03s)}@keyframes tutorial-star-burst{0%{transform:translate(calc(var(--x) * var(--spread) * .5),calc(var(--y) * var(--spread) * .5)) scale(.2) rotate(0);opacity:0}15%{opacity:1}75%{opacity:1}to{transform:translate(calc(var(--x) * var(--spread)),calc(var(--y) * var(--spread))) scale(1.2) rotate(160deg);opacity:0}}.offscreen-indicator{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none;z-index:11;will-change:transform;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility 0s linear .2s}.offscreen-indicator.is-shown{opacity:1;visibility:visible;transition:opacity .2s ease}.offscreen-indicator-bounce{position:absolute;left:0;top:0;animation:offscreen-indicator-bounce .8s ease-in-out infinite;transition:scale .25s ease-out}.offscreen-indicator.is-urgent .offscreen-indicator-bounce{scale:1.3;animation-duration:.5s}@keyframes offscreen-indicator-bounce{0%,to{translate:0 0}50%{translate:calc(var(--ux, 0) * 6px) calc(var(--uy, 0) * 6px)}}.offscreen-indicator-disc{position:absolute;left:-28px;top:-28px;box-sizing:border-box;width:56px;height:56px;border:4px solid #ff8fb8;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px #00000038}.offscreen-indicator-disc .goal-icon{display:block;width:38px;height:38px}.offscreen-indicator-pointer{position:absolute;left:0;top:0;width:0;height:0;rotate:var(--angle, 90deg)}.offscreen-indicator-pointer:before{content:"";position:absolute;left:25px;top:-12px;width:17px;height:24px;background:#ff8fb8;clip-path:polygon(0% 0%,100% 50%,0% 100%)}.offscreen-indicator-safe{position:absolute;left:0;top:0;width:0;height:0;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);visibility:hidden;pointer-events:none}.score-fly-heart{position:absolute;left:-15px;top:-14px;width:30px;height:28px;pointer-events:none;z-index:14;will-change:transform;filter:drop-shadow(0 0 1.5px #ffffff) drop-shadow(0 0 1.5px #ffffff) drop-shadow(0 3px 4px rgba(0,0,0,.25))}.score-fly-heart:before{content:"";position:absolute;left:2px;top:1px;width:26px;height:26px;background:#ff6b9d;clip-path:path("M13 24 C3 16, 0 10, 3 5 C6 1, 11 2, 13 6 C15 2, 20 1, 23 5 C26 10, 23 16, 13 24 Z")}@media(prefers-reduced-motion:reduce){.is-stick .tutorial-finger-hand{animation:none;transform:translateY(-36px)}.is-look .tutorial-finger-hand{animation:none;transform:translate(40px)}.tutorial-finger-ring,.tutorial-arrow-bob,.action-button.is-hint,.action-button.is-hint:after,.tutorial-done.is-show .tutorial-star,.tutorial-hint-card.is-bump,.goal-icon-wait,.offscreen-indicator-bounce{animation:none}.action-button.is-hint:after{opacity:.9}.has-next .speech-bubble-next,.tutorial-done.is-show .tutorial-done-text{animation:none;opacity:1}}.speech-bubble-name{position:absolute;left:10px;top:calc(-.75em - var(--bubble-border));padding:1px 10px;border:3px solid #ffffff;border-radius:999px;background:var(--accent);color:#fff;font-size:.56em;font-weight:800;line-height:1.5;letter-spacing:.04em;white-space:nowrap;box-shadow:0 2px 6px #00000026}.speech-bubble-name[hidden]{display:none}.start-face{position:absolute;inset:7%;border-radius:50%;overflow:hidden;background:#a9dbff;box-shadow:inset 0 3px 6px #0000001f}.start-face img{position:absolute;width:185%;max-width:none;left:-42.5%;top:-20%;pointer-events:none;user-select:none;-webkit-user-drag:none}.start-ring{position:absolute;inset:-8px;width:calc(100% + 16px);height:calc(100% + 16px);transform:rotate(-90deg);overflow:visible;opacity:0;transition:opacity .4s ease;pointer-events:none}.start-ring-arc{fill:none;stroke:#ffd84d;stroke-width:6.5;stroke-linecap:round;transition:stroke-dashoffset .3s ease-out}.start.is-loading .start-ring{opacity:1}.start.is-loading{cursor:progress}.start.is-loading .start-button{animation:none;filter:saturate(.8) brightness(.97)}.start.is-loading .start-label{opacity:.85}.start-retry{position:absolute;inset:20%;width:60%;height:60%;display:none;fill:none;stroke:#fff;stroke-width:6;stroke-linecap:round;overflow:visible;filter:drop-shadow(0 2px 0 rgba(0,0,0,.15))}.start-retry .start-retry-head{fill:#fff;stroke-width:2;stroke-linejoin:round}.start.is-error .start-face{display:none}.start.is-error .start-retry{display:block}.cape-picker{position:absolute;left:calc(16px + var(--safe-left));top:calc(16px + var(--safe-top));width:56px;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;z-index:10}.cape-picker-toggle,.cape-picker-swatch{position:relative;flex:none;padding:0;border:4px solid #ffffff;border-radius:50%;background-color:var(--cape, #c9cbd3);background-image:radial-gradient(circle at 32% 26%,#fff9,#fff0 55%);box-shadow:0 4px 0 var(--cape-dark, #9a9ca6),0 0 0 1.5px #0000001a,0 6px 12px #00000038;display:flex;align-items:center;justify-content:center;cursor:pointer;pointer-events:auto;touch-action:none}.cape-picker-toggle{width:56px;height:56px}.cape-picker-toggle:focus-visible,.cape-picker-swatch:focus-visible{outline:4px solid #ffffff;outline-offset:4px}.cape-picker.is-open .cape-picker-toggle{transform:translateY(3px);box-shadow:0 1px 0 var(--cape-dark, #9a9ca6),0 0 0 1.5px #0000001a,0 3px 8px #00000038}.cape-picker-cape{width:30px;height:30px;overflow:visible}.cape-picker-cape path{fill:#fff;stroke:var(--cape-dark, #9a9ca6);stroke-width:2;stroke-linejoin:round}.cape-picker-cape .cape-picker-clasp{fill:var(--cape-dark, #9a9ca6);stroke:#fff;stroke-width:1.2}.cape-picker-badge{position:absolute;top:-10px;right:-10px;width:24px;height:24px;border:3px solid #ffffff;border-radius:50%;background:#ff6b9d;color:#fff;font-size:16px;font-weight:900;line-height:18px;text-align:center;box-shadow:0 2px 4px #00000040;display:none;pointer-events:none}.cape-picker-toggle.has-new .cape-picker-badge{display:block;animation:cape-picker-badge 1.2s ease-in-out infinite}.cape-picker-toggle.has-new:after{top:-8px;right:auto;left:-10px;width:20px;height:20px;animation:cape-picker-twinkle 1.6s ease-in-out infinite}@keyframes cape-picker-badge{0%,to{transform:translateY(0) scale(1)}40%{transform:translateY(-4px) scale(1.12)}60%{transform:translateY(0) scale(.96)}}@keyframes cape-picker-twinkle{0%,to{opacity:0;transform:scale(.3) rotate(0)}50%{opacity:1;transform:scale(1) rotate(45deg)}}.cape-picker-progress{display:flex;gap:6px;padding:3px 6px;border-radius:999px;background:#ffffffd9;box-shadow:0 2px 6px #00000026;pointer-events:none}.cape-picker-progress[hidden]{display:none}.cape-picker-dot{width:14px;height:14px;border-radius:50%;border:2px solid var(--cape-dark, #9a9ca6);background:#fff;transition:background-color .3s ease}.cape-picker-dot.is-filled{background:var(--cape, #ff8fb8);animation:cape-picker-fill .5s ease-out}@keyframes cape-picker-fill{0%{transform:scale(.4)}60%{transform:scale(1.35)}to{transform:scale(1)}}.cape-picker-list{position:absolute;left:calc(100% + 12px);top:-4px;display:grid;grid-template-columns:repeat(2,52px);grid-auto-rows:52px;gap:10px;padding:4px 4px 8px;pointer-events:auto;touch-action:none}.cape-picker-list[hidden]{display:none}.cape-picker-swatch{width:52px;height:52px;animation:cape-picker-pop .22s ease-out backwards;animation-delay:calc(var(--i, 0) * 30ms)}.cape-picker-swatch .cape-picker-cape{width:26px;height:26px;display:none}.cape-picker-swatch.is-selected .cape-picker-cape{display:block}.cape-picker-swatch.is-selected{box-shadow:0 4px 0 var(--cape-dark, #9a9ca6),0 0 0 4px var(--cape-dark, #9a9ca6),0 6px 12px #00000038}.cape-picker-lock{position:absolute;right:-6px;bottom:-6px;width:22px;height:22px;padding:3px;border:2px solid #ffffff;border-radius:50%;background:#9a9ca6;display:none}.cape-picker-lock rect{fill:#fff}.cape-picker-lock .cape-picker-lock-shackle{fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round}.cape-picker-swatch.is-locked{background-color:#fff;background-image:linear-gradient(var(--cape-soft, rgba(201, 203, 211, .4)),var(--cape-soft, rgba(201, 203, 211, .4)));box-shadow:0 4px #c4c6cf,0 0 0 1.5px #00000014,0 6px 12px #00000024;cursor:default}.cape-picker-swatch.is-locked .cape-picker-lock{display:block}.cape-picker-swatch.is-wiggle{animation:cape-picker-pop .22s ease-out backwards,cape-picker-wiggle .4s ease-in-out;animation-delay:calc(var(--i, 0) * 30ms),0s}@keyframes cape-picker-pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}@keyframes cape-picker-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-12deg)}75%{transform:rotate(12deg)}}.cape-picker-toggle.is-celebrate{animation:cape-picker-poyon 1s ease-out}@keyframes cape-picker-poyon{0%{transform:scale(1)}14%{transform:scale(1.28,.78)}30%{transform:scale(.84,1.22)}46%{transform:scale(1.12,.92)}62%{transform:scale(.96,1.05)}78%,to{transform:scale(1)}}.cape-picker-toggle:before,.cape-picker-swatch:before,.cape-picker-toggle:after,.cape-picker-swatch:after{content:"";position:absolute;pointer-events:none;opacity:0}.cape-picker-toggle:before,.cape-picker-swatch:before{inset:-8px;border-radius:50%;box-shadow:0 0 14px 6px #fffad2f2}.cape-picker-toggle:after,.cape-picker-swatch:after{top:-12px;right:-12px;width:26px;height:26px;background:#fff;clip-path:polygon(50% 0%,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0% 50%,38% 38%);filter:drop-shadow(0 0 3px rgba(255,220,120,.9))}.cape-picker-toggle.is-celebrate:before,.cape-picker-swatch.is-new:before{animation:cape-picker-glow 1s ease-out}.cape-picker-toggle.is-celebrate:after,.cape-picker-swatch.is-new:after{animation:cape-picker-star 1s ease-out}.cape-picker-swatch.is-new{animation:cape-picker-pop .22s ease-out backwards,cape-picker-shine 1s ease-out;animation-delay:calc(var(--i, 0) * 30ms),0s}@keyframes cape-picker-shine{0%,to{transform:scale(1)}25%{transform:scale(1.22)}50%{transform:scale(.95)}70%{transform:scale(1.05)}}@keyframes cape-picker-glow{0%{opacity:0}25%{opacity:1}to{opacity:0}}@keyframes cape-picker-star{0%{opacity:0;transform:scale(0) rotate(0)}30%{opacity:1;transform:scale(1.2) rotate(45deg)}60%{opacity:1;transform:scale(.8) rotate(90deg)}to{opacity:0;transform:scale(0) rotate(135deg)}}.cape-picker-bubble{position:absolute;left:0;top:calc(100% + 12px);display:flex;align-items:center;gap:8px;padding:8px 16px 8px 10px;border-radius:18px;background:#fff;color:#e2668f;font-size:22px;font-weight:800;line-height:1.2;white-space:nowrap;box-shadow:0 4px 12px #0003;transform-origin:28px 0;pointer-events:none}.cape-picker-bubble[hidden]{display:none}.cape-picker-bubble:before{content:"";position:absolute;left:18px;top:-9px;width:20px;height:10px;background:#fff;clip-path:polygon(50% 0%,100% 100%,0% 100%)}.cape-picker-bubble.is-show{animation:cape-picker-bubble 4s ease-out forwards}.cape-picker-bubble-dot{flex:none;width:26px;height:26px;border-radius:50%;background-color:var(--cape, #ff8fb8);background-image:radial-gradient(circle at 32% 26%,#fff9,#fff0 55%);box-shadow:0 0 0 2px var(--cape-dark, #e2668f)}.cape-picker-bubble.is-show .cape-picker-bubble-dot{animation:cape-picker-dot 1s ease-out 4}@keyframes cape-picker-bubble{0%{opacity:0;transform:scale(.6)}6%{opacity:1;transform:scale(1.1)}11%{transform:scale(1)}90%{opacity:1}to{opacity:0;transform:scale(1)}}@keyframes cape-picker-dot{0%,to{transform:scale(1);box-shadow:0 0 0 2px var(--cape-dark, #e2668f),0 0 #fff0a000}35%{transform:scale(1.25);box-shadow:0 0 0 2px var(--cape-dark, #e2668f),0 0 10px 5px #fff0a0f2}}@media(prefers-reduced-motion:reduce){.cape-picker-swatch,.cape-picker-swatch.is-new,.cape-picker-swatch.is-wiggle,.cape-picker-toggle.is-celebrate,.cape-picker-toggle.has-new .cape-picker-badge,.cape-picker-toggle.has-new:after,.cape-picker-dot.is-filled,.cape-picker-bubble.is-show,.cape-picker-bubble.is-show .cape-picker-bubble-dot{animation:none}.cape-picker-toggle.has-new:after{opacity:1}}.minimap{position:absolute;top:calc(var(--edge) + var(--safe-top));right:calc(var(--edge) + var(--safe-right));width:112px;height:112px;border:4px solid #ffffff;border-radius:50%;background-color:#cfe8a6;box-shadow:0 0 0 1.5px #0000001a,0 4px 10px #0003;overflow:hidden;pointer-events:none;z-index:10}.minimap[hidden]{display:none}.minimap-canvas{display:block;width:100%;height:100%;border-radius:50%}.minimap:after{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:inset 0 2px 5px #00000029;pointer-events:none}@media(max-height:460px){.minimap{width:96px;height:96px}}
