*{margin:0;padding:0;box-sizing:border-box}html,body{height:100vh;height:100dvh;overflow:hidden;overscroll-behavior:none;background:#7ed6f5}body{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:none;font-family:ui-rounded,Comic Sans MS,Chalkboard SE,system-ui,sans-serif}#root{height:100%}.viewport{position:fixed;top:0;right:0;bottom:0;left:0;height:100vh;height:100dvh;overflow:hidden;touch-action:none;transition:background 1.4s ease}.bg-pool{background:linear-gradient(#7ed6f5 55%,#4cc4ef)}.bg-sea{background:linear-gradient(#7ed6f5 45%,#2bb3e8)}.bg-beach{background:linear-gradient(#7ed6f5 40%,#a5e2f8 60%,#f8d77e)}.bg-sunset{background:linear-gradient(#ffb37e 20%,#b678d9)}.lb-cloud{position:absolute;width:260px;height:90px;border-radius:60px;background:#ffffff8c;filter:blur(2px);pointer-events:none;z-index:0}.lb-cloud:before{content:"";position:absolute;left:56px;top:-38px;width:130px;height:90px;border-radius:50%;background:inherit}.lb-c1{top:8%;animation:cloud-drift 52s linear infinite}.lb-c2{top:72%;animation:cloud-drift 74s linear infinite reverse}@keyframes cloud-drift{0%{transform:translate(-320px)}to{transform:translate(110vw)}}#stage{position:absolute;left:50%;top:50%;width:720px;height:1280px;z-index:1}.shaker{position:absolute;top:0;right:0;bottom:0;left:0}.shaker.shake{animation:shake .22s linear}.shaker.shake-big{animation:shake-big .45s linear}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px,4px)}50%{transform:translate(5px,-5px)}75%{transform:translate(-4px,-3px)}}@keyframes shake-big{0%,to{transform:translate(0)}15%{transform:translate(-12px,8px)}30%{transform:translate(11px,-9px)}45%{transform:translate(-9px,-7px)}60%{transform:translate(9px,8px)}75%{transform:translate(-7px,5px)}90%{transform:translate(5px,-4px)}}.scene-root{position:absolute;top:0;right:0;bottom:0;left:0;animation:scene-fade .5s ease}@keyframes scene-fade{0%{opacity:.2}to{opacity:1}}.scene-root.enter-right{animation:enter-right .9s ease-out}@keyframes enter-right{0%{transform:translate(260px);opacity:.2}to{transform:translate(0);opacity:1}}.scene-root.pan-left{animation:pan-left 2s ease-in-out forwards}@keyframes pan-left{0%{transform:translate(0);opacity:1}80%{opacity:1}to{transform:translate(-760px);opacity:.5}}svg.scene{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}svg.scene g,svg.scene path,svg.scene rect,svg.scene circle,svg.scene ellipse,svg.scene polygon,svg.scene polyline,svg.scene text{transform-box:fill-box;transform-origin:center}.particle-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:5}.particle{position:absolute;left:0;top:0;will-change:transform,opacity;pointer-events:none}.flash{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;opacity:0;pointer-events:none;z-index:8;transition:opacity .12s}.flash.on{opacity:1;transition:none}.boot-title{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:9;animation:title-out 2.2s ease forwards}.boot-title svg{width:86%}.title-word{font-size:88px;font-weight:900;fill:#fff;stroke:#1e2a4a;stroke-width:10px;paint-order:stroke;stroke-linejoin:round}.tw1{fill:#4da8ff;animation:title-wobble .9s ease-in-out infinite}.tw2{fill:#ffe84d;animation:title-wobble .9s ease-in-out .15s infinite}.tw3{fill:#ff6b5e;animation:title-wobble .9s ease-in-out .3s infinite}@keyframes title-wobble{0%,to{transform:rotate(-2deg) scale(1)}50%{transform:rotate(2deg) scale(1.05)}}@keyframes title-out{0%{opacity:0;transform:scale(.6)}12%{opacity:1;transform:scale(1)}82%{opacity:1}to{opacity:0;transform:scale(1.15)}}.hint-hand{position:absolute;width:140px;height:140px;margin-left:-70px;margin-top:-20px;pointer-events:none;z-index:7;animation:hint-in .3s ease}@keyframes hint-in{0%{opacity:0}to{opacity:1}}.hint-hand svg{width:100%;height:100%;filter:drop-shadow(0 6px 8px rgba(30,42,74,.35))}.hint-tap svg{animation:hint-bounce .83s ease-in-out infinite;transform:scale(var(--hscale, 1))}@keyframes hint-bounce{0%,to{transform:translateY(0) scale(var(--hscale, 1))}45%{transform:translateY(24px) scale(var(--hscale, 1))}55%{transform:translateY(22px) scale(calc(var(--hscale, 1) * .92))}}.hint-drag svg{animation:hint-stroke 1.8s ease-in-out infinite}@keyframes hint-stroke{0%{transform:translate(0) scale(var(--hscale, 1));opacity:.3}15%{opacity:1}60%{transform:translate(var(--hdx, 0px),var(--hdy, 160px)) scale(var(--hscale, 1));opacity:1}80%{opacity:0}to{transform:translate(var(--hdx, 0px),var(--hdy, 160px)) scale(var(--hscale, 1));opacity:0}}.sunny .breathe{animation:breathe 2s ease-in-out infinite;transform-origin:center bottom}@keyframes breathe{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.03)}}.sunny .pupil{animation:blink 4.2s infinite}.sunny .pupil:last-of-type{animation-duration:4.6s}@keyframes blink{0%,93%,to{transform:scaleY(1)}95%,97%{transform:scaleY(.1)}}.sunny .limb path{transform-origin:center top}.sunny .limb.flail.armL path{animation:flail .4s ease-in-out infinite}.sunny .limb.flail.armR path{animation:flail .34s ease-in-out infinite reverse}.sunny .limb.flail.legL path{animation:flail .3s ease-in-out infinite}.sunny .limb.flail.legR path{animation:flail .37s ease-in-out infinite reverse}@keyframes flail{0%,to{transform:rotate(-65deg)}50%{transform:rotate(65deg)}}.sunny-pose{transition:transform .35s ease;transform-origin:center bottom}.sunny-pose.windup{transform:scaleY(.82) translateY(30px)}.sun-spin{animation:sun-spin .8s ease-in-out}@keyframes sun-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.board-bend{animation:board-bend .55s ease-out;transform-origin:right center}@keyframes board-bend{0%{transform:rotate(0)}25%{transform:rotate(7deg)}50%{transform:rotate(-5deg)}75%{transform:rotate(3deg)}to{transform:rotate(0)}}.water-surface.ws1{animation:water-drift 4s linear infinite}.water-surface.ws2{animation:water-drift-b 6s linear infinite}@keyframes water-drift{0%{transform:translate(0)}to{transform:translate(-130px)}}@keyframes water-drift-b{0%{transform:translate(0)}to{transform:translate(-90px)}}.slosh{animation:slosh 1.5s ease-in-out}@keyframes slosh{0%,to{transform:translate(0) translateY(0)}20%{transform:translate(-26px) translateY(-10px)}45%{transform:translate(22px) translateY(6px)}70%{transform:translate(-14px) translateY(-4px)}}.duck{animation:duck-bob 2.4s ease-in-out infinite}@keyframes duck-bob{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-9px) rotate(3deg)}}.duck-hop{animation:duck-hop .6s ease-out}@keyframes duck-hop{0%{transform:translateY(0)}40%{transform:translateY(-64px) rotate(-14deg)}70%{transform:translateY(4px)}85%{transform:translateY(-8px)}to{transform:translateY(0)}}.duck-launch{animation:duck-launch 1.1s cubic-bezier(.3,.6,.4,1)}@keyframes duck-launch{0%{transform:translateY(0) rotate(0)}45%{transform:translateY(-210px) rotate(200deg)}80%{transform:translateY(6px) rotate(360deg)}90%{transform:translateY(-12px) rotate(360deg)}to{transform:translateY(0) rotate(360deg)}}.ripple{animation:ripple .9s ease-out forwards}.ripple.r2{animation-delay:.15s;animation-fill-mode:both}@keyframes ripple{0%{transform:scale(.4);opacity:.95}to{transform:scale(4);opacity:0}}.splash-pop{transform-origin:center bottom;animation:splash-pop 1s ease-out forwards}@keyframes splash-pop{0%{transform:scale(.15,.1);opacity:1}30%{transform:scale(1.15,1.1);opacity:1}55%{transform:scale(1);opacity:.9}to{transform:scale(1.2,.6) translateY(40px);opacity:0}}.surface-rise{animation:surface-rise .7s cubic-bezier(.2,1.4,.4,1)}@keyframes surface-rise{0%{transform:translateY(190px);opacity:0}to{transform:translateY(0);opacity:1}}.orbit-stars{animation:orbit 1.8s linear infinite}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.paddle-off{animation:paddle-off 1.6s ease-in forwards!important}@keyframes paddle-off{0%{transform:translate(0) rotate(0)}to{transform:translate(560px) rotate(6deg)}}.gull-sweep{animation:gull-sweep 1.7s ease-in-out forwards}@keyframes gull-sweep{0%{transform:translate(790px,500px) scale(1)}to{transform:translate(-160px,190px) scale(1.6)}}.wave.w1{animation:wave-1 7s linear infinite}.wave.w2{animation:wave-2 9s linear infinite}.wave.w3{animation:wave-3 11s linear infinite}@keyframes wave-1{0%{transform:translate(0)}to{transform:translate(-240px)}}@keyframes wave-2{0%{transform:translate(0)}to{transform:translate(-280px)}}@keyframes wave-3{0%{transform:translate(0)}to{transform:translate(-340px)}}.cloud-bob{animation:cloud-bob 3.4s ease-in-out infinite}@keyframes cloud-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}.gull-bob{animation:gull-bob 2.2s ease-in-out infinite}@keyframes gull-bob{0%,to{transform:translate(0)}50%{transform:translate(18px,-12px)}}.gull-loop{animation:gull-loop 1.2s ease-in-out}@keyframes gull-loop{0%{transform:rotate(0) translateY(0)}50%{transform:rotate(-360deg) translateY(-46px)}to{transform:rotate(-360deg) translateY(0)}}.dolphin{animation:dolphin 9s ease-in-out infinite;opacity:0}@keyframes dolphin{0%,64%{transform:translate(-90px,900px) rotate(20deg);opacity:0}70%{transform:translate(120px,700px) rotate(0);opacity:1}78%{transform:translate(330px,640px) rotate(-10deg);opacity:1}86%{transform:translate(560px,730px) rotate(-30deg);opacity:1}92%,to{transform:translate(760px,920px) rotate(-40deg);opacity:0}}.shell-off{opacity:.75}.shell-on{animation:shell-pop .55s cubic-bezier(.2,1.6,.4,1);filter:drop-shadow(0 0 16px #ffe84d)}@keyframes shell-pop{0%{transform:scale(1)}50%{transform:scale(1.45) rotate(8deg)}to{transform:scale(1)}}.bulge{animation:bulge-roll .85s ease-in forwards}@keyframes bulge-roll{0%{transform:translate(0) scale(.3);opacity:0}25%{transform:translate(calc(var(--bdx, 0px) * .25)) scale(1);opacity:.95}85%{transform:translate(var(--bdx, 0px)) scale(1.05);opacity:.9}to{transform:translate(var(--bdx, 0px)) scale(.4);opacity:0}}.trick-hop{animation:trick-hop .55s cubic-bezier(.3,.9,.4,1)}@keyframes trick-hop{0%{transform:translateY(0) rotate(0)}45%{transform:translateY(-150px) rotate(-9deg)}80%{transform:translateY(12px)}to{transform:translateY(0)}}.trick-spin{animation:trick-spin .7s ease-in-out}@keyframes trick-spin{0%{transform:translateY(0) rotate(0)}60%{transform:translateY(-130px) rotate(340deg)}to{transform:translateY(0) rotate(360deg)}}.trick-loop{animation:trick-loop .95s ease-in-out}@keyframes trick-loop{0%{transform:translateY(0) rotate(0)}30%{transform:translateY(-200px) rotate(-140deg)}65%{transform:translateY(-230px) rotate(-280deg)}to{transform:translateY(0) rotate(-360deg)}}.trick-aerial{animation:trick-aerial 1s ease-in-out}@keyframes trick-aerial{0%{transform:translateY(0) rotate(0)}40%{transform:translateY(-330px) rotate(160deg)}70%{transform:translateY(-260px) rotate(330deg)}88%{transform:translateY(18px) rotate(360deg) scaleY(.8)}to{transform:translateY(0) rotate(360deg) scaleY(1)}}.rainbow-trail{animation:trail-fade 1s ease-out forwards}@keyframes trail-fade{0%{opacity:0}25%{opacity:1}to{opacity:0}}.fish-leap{animation:fish-leap 1.6s ease-in-out forwards}.fish-flip{animation:fish-flip .6s linear forwards}@keyframes fish-leap{0%{transform:translateY(30px) rotate(-30deg);opacity:0}15%{opacity:1}45%{transform:translateY(-230px) rotate(0);opacity:1}85%{transform:translateY(20px) rotate(40deg);opacity:1}to{transform:translateY(60px) rotate(50deg);opacity:0}}@keyframes fish-flip{0%{transform:translateY(-160px) rotate(0) scale(1.1);opacity:1}to{transform:translateY(-190px) rotate(360deg) scale(.9);opacity:0}}.golden-wave{animation:golden-wave 2.5s ease-in-out forwards}@keyframes golden-wave{0%{transform:translate(880px);opacity:0}30%{opacity:1}to{transform:translate(-260px);opacity:1}}.outline-glow{animation:outline-glow 1.6s ease-in-out infinite}@keyframes outline-glow{0%,to{opacity:.5}50%{opacity:1}}.piece-pop{transform-origin:center bottom;animation:piece-pop .6s cubic-bezier(.2,1.7,.35,1)}@keyframes piece-pop{0%{transform:scale(.1) translateY(-140px);opacity:0}55%{transform:scale(1.12,.85) translateY(0);opacity:1}75%{transform:scale(.94,1.08)}to{transform:scale(1)}}.flag-unfurl .flag-cloth{transform-origin:left center;animation:flag-wave 1.1s ease-in-out infinite}@keyframes flag-wave{0%,to{transform:scaleX(1) skewY(0)}50%{transform:scaleX(.82) skewY(6deg)}}.decor-breathe{animation:decor-breathe 1.9s ease-in-out infinite}@keyframes decor-breathe{0%,to{transform:scale(1) rotate(-3deg)}50%{transform:scale(1.09) rotate(3deg)}}.decor-pop{animation:decor-pop .55s cubic-bezier(.2,1.7,.35,1)}@keyframes decor-pop{0%{transform:scale(.2) translateY(-90px);opacity:0}60%{transform:scale(1.25);opacity:1}to{transform:scale(1)}}.bucket-breathe{animation:bucket-breathe 1.7s ease-in-out infinite}@keyframes bucket-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.crab-walk{animation:crab-walk 15s ease-in-out infinite alternate}@keyframes crab-walk{0%{transform:translate(110px)}25%{transform:translate(300px) translateY(-6px)}50%{transform:translate(470px)}75%{transform:translate(330px) translateY(-6px)}to{transform:translate(140px)}}.crab-dance{animation:crab-dance .85s ease-in-out}@keyframes crab-dance{0%,to{transform:rotate(0) translateY(0)}20%{transform:rotate(-14deg) translateY(-22px)}40%{transform:rotate(12deg) translateY(-30px)}60%{transform:rotate(-10deg) translateY(-18px)}80%{transform:rotate(8deg) translateY(-6px)}}.board-wobble{transform-origin:center bottom;animation:board-wobble .9s ease-in-out}@keyframes board-wobble{0%,to{transform:rotate(0)}20%{transform:rotate(-12deg)}45%{transform:rotate(9deg)}70%{transform:rotate(-5deg)}88%{transform:rotate(3deg)}}.jelly{animation:jelly .65s ease-in-out}@keyframes jelly{0%,to{transform:scale(1)}25%{transform:scale(1.06,.92)}50%{transform:scale(.94,1.07)}75%{transform:scale(1.03,.97)}}.sunny-walker{transition:transform .48s ease-in-out}.s3-act{transform-origin:center bottom;transition:transform .25s ease}.s3-act.scoop{transform:scaleY(.78) scaleX(1.1) translateY(24px)}.s3-act.clap{animation:clap .5s ease-in-out}@keyframes clap{0%,to{transform:rotate(0)}25%{transform:rotate(-7deg) translateY(-14px)}60%{transform:rotate(7deg) translateY(-18px)}}.s3-act.hero{animation:hero .7s cubic-bezier(.2,1.5,.4,1) forwards}@keyframes hero{0%{transform:scale(1)}to{transform:scale(1.16) translateY(-26px) rotate(-4deg)}}.s3-act.flex{animation:flexy .7s ease-in-out}@keyframes flexy{0%,to{transform:scale(1.16) translateY(-26px) rotate(-4deg)}50%{transform:scale(1.24) translateY(-40px) rotate(5deg)}}.jiggle{animation:jiggle .32s ease-in-out infinite}@keyframes jiggle{0%,to{transform:translate(0) rotate(-.7deg)}50%{transform:translate(2px,-3px) rotate(.9deg)}}.target-ring{animation:target-ring 1.1s ease-in-out infinite}@keyframes target-ring{0%,to{transform:scale(1);opacity:.9}50%{transform:scale(1.12);opacity:.45}}.chunk-fly{animation:chunk-fly 1.5s cubic-bezier(.25,.5,.6,1) forwards}@keyframes chunk-fly{0%{transform:translate(0) rotate(0);opacity:1}35%{transform:translate(calc(var(--fx, 160px) * .55),-250px) rotate(calc(var(--fr, 540deg) * .4));opacity:1}70%{transform:translate(var(--fx, 160px),130px) rotate(calc(var(--fr, 540deg) * .75));opacity:1}78%{transform:translate(calc(var(--fx, 160px) * 1.05),60px) rotate(calc(var(--fr, 540deg) * .82))}to{transform:translate(calc(var(--fx, 160px) * 1.2),560px) rotate(var(--fr, 540deg));opacity:0}}.crab-surf{animation:crab-surf 1.7s ease-in forwards}@keyframes crab-surf{0%{transform:translateY(-140px) rotate(0);opacity:1}60%{transform:translate(380px,-420px) rotate(24deg);opacity:1}to{transform:translate(700px,-320px) rotate(40deg);opacity:0}}.ice-hidden{opacity:0;transition:opacity .3s}.ice-in{opacity:1;transition:opacity .6s ease}.crack-pop{animation:crack-pop .3s cubic-bezier(.2,1.4,.4,1)}@keyframes crack-pop{0%{transform:scale(0)}to{transform:scale(1)}}.shard{animation:shard-fly 2.2s cubic-bezier(.3,.4,.6,1) forwards;will-change:transform,opacity}@keyframes shard-fly{0%{transform:translate(0) rotate(0);opacity:1}30%{transform:translate(calc(var(--sdx, 0px) * .4),var(--sup, -180px)) rotate(calc(var(--srot, 720deg) * .35));opacity:1}to{transform:translate(var(--sdx, 0px),620px) rotate(var(--srot, 720deg));opacity:.75}}.seaweed{transform-origin:center bottom;animation:seaweed 2.6s ease-in-out infinite}@keyframes seaweed{0%,to{transform:rotate(-6deg)}50%{transform:rotate(7deg)}}.chest-lid{transform-origin:left bottom;transition:transform .4s cubic-bezier(.2,1.5,.4,1)}.chest-lid.open{transform:rotate(-72deg) translateY(-8px)}.hat-tip{animation:hat-tip .8s ease-in-out}@keyframes hat-tip{0%,to{transform:rotate(0) translateY(0)}35%{transform:rotate(-28deg) translate(-16px,-26px)}65%{transform:rotate(-24deg) translate(-13px,-20px)}}.fish-hang{animation:fish-hang 1.4s ease-in-out infinite}@keyframes fish-hang{0%,to{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-13px) rotate(4deg)}}.fish-hang .fish-eye{animation:fish-blink 2.8s infinite}@keyframes fish-blink{0%,90%,to{transform:scaleY(1)}94%{transform:scaleY(.1)}}.fish-chute{animation:fish-chute 2.3s ease-in forwards}@keyframes fish-chute{0%{transform:translateY(0) rotate(0)}20%{transform:translateY(30px) rotate(-8deg)}50%{transform:translateY(120px) rotate(7deg)}80%{transform:translateY(210px) rotate(-5deg)}to{transform:translateY(255px) rotate(0)}}.fish-landed{transform:translateY(255px)}.s4-act{transform-origin:center bottom}.s4-act.thumbs{animation:thumbs 1s ease-in-out infinite}@keyframes thumbs{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg) translateY(-8px)}}.s4-act.leap{animation:leap .75s cubic-bezier(.3,1.4,.5,1)}@keyframes leap{0%{transform:translateY(0)}50%{transform:translateY(-180px) rotate(10deg)}to{transform:translateY(0)}}.s4-act.ricochet{animation:ricochet .9s ease-out}@keyframes ricochet{0%{transform:translate(-240px,-120px) rotate(-260deg)}60%{transform:translate(-40px,-40px) rotate(-60deg)}80%{transform:translate(10px,8px) rotate(8deg)}to{transform:translate(0) rotate(0)}}.s4-act.dance{animation:breakdance .6s ease-in-out infinite}@keyframes breakdance{0%,to{transform:rotate(-14deg) translateY(0) scale(1)}25%{transform:rotate(0) translateY(-36px) scale(.94,1.08)}50%{transform:rotate(14deg) translateY(0) scale(1.06,.92)}75%{transform:rotate(0) translateY(-20px)}}.s4-act.shardsurf{animation:shard-surf 1.6s ease-in-out forwards}@keyframes shard-surf{0%{transform:translate(0) rotate(0)}50%{transform:translate(-180px,240px) rotate(-10deg)}to{transform:translate(-10px,430px) rotate(6deg)}}.mega-time svg.scene>g,.mega-time svg.scene>rect,.mega-time svg.scene>path{animation:mega-bounce .5s ease-in-out infinite}@keyframes mega-bounce{0%,to{translate:0 0}50%{translate:0 -14px}}.replay-drop{animation:replay-drop .8s cubic-bezier(.25,1.5,.45,1)}@keyframes replay-drop{0%{transform:translateY(-460px)}70%{transform:translateY(24px)}to{transform:translateY(0)}}.replay-pulse{animation:replay-pulse 1s ease-in-out infinite}@keyframes replay-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.09)}}.rewind-anim{animation:rewind 1.5s ease-in forwards}@keyframes rewind{0%{transform:scale(1) rotate(0);filter:none;opacity:1}40%{transform:scale(.8) rotate(-4deg) translate(140px);filter:saturate(1.6) brightness(1.2)}to{transform:scale(.05) rotate(20deg) translate(720px);filter:saturate(2) brightness(1.6);opacity:0}}
