:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#17324d;--muted:#5b7288;--line:#234b68;--paper:#fffdf5;--sky:#ccefff;--sky-deep:#8fd3ee;--grass:#70c37b;--shadow:#234b6833;--rocket-main:#fff8e8;--rocket-shade:#ded8ca;--rocket-accent:#ed625a;font-family:ui-rounded,SF Pro Rounded,Arial Rounded MT Bold,system-ui,sans-serif}*{box-sizing:border-box}html,body{min-height:100%}body{color:var(--ink);overscroll-behavior:none;background:radial-gradient(circle at 8% 5%,#ffffffe6 0 8%,#0000 24%),#e8f6f4;margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}button:focus-visible,a:focus-visible{outline-offset:3px;outline:4px solid #176ca1}[hidden]{display:none!important}.game-shell{width:min(1220px,100%);min-height:100dvh;padding:max(12px,env(safe-area-inset-top)) clamp(10px,2.2vw,28px) max(12px,env(safe-area-inset-bottom));margin:auto}.topbar{grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;min-height:58px;margin-bottom:12px;display:grid}.round-button{border:3px solid var(--line);width:52px;height:52px;color:var(--ink);background:var(--paper);box-shadow:0 5px 0 var(--shadow);cursor:pointer;border-radius:50%;place-items:center;padding:0;text-decoration:none;transition:transform .12s,box-shadow .12s;display:grid}.round-button:active{box-shadow:0 1px 0 var(--shadow);transform:translateY(4px)}.round-button svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;width:25px;height:25px}.sound-off,.sound-button[aria-pressed=true] .sound-off,.sound-button[aria-pressed=false] .sound-on{display:none}.sound-button[aria-pressed=false] .sound-off{display:block}.title-lockup{min-width:0}.title-lockup p{color:var(--muted);letter-spacing:.13em;text-transform:uppercase;margin:0 0 2px;font-size:.68rem;font-weight:900}h1,h2,p{margin-top:0}h1{letter-spacing:-.045em;margin-bottom:0;font-size:clamp(1.45rem,3vw,2.15rem);font-weight:950;line-height:1}.mission-dots{background:#fffdf5b8;border:2px solid #234b6824;border-radius:999px;gap:8px;padding:8px 11px;display:flex}.mission-dot{aspect-ratio:1;border:2px solid var(--line);background:0 0;border-radius:50%;width:11px;transition:all .2s}.mission-dot.is-current{background:#ffd85a;transform:scale(1.25)}.mission-dot.is-complete{background:#55b974}.play-card{border:3px solid var(--line);background:var(--paper);box-shadow:0 9px 0 var(--shadow);border-radius:26px;overflow:hidden}.instruction-card{border-bottom:3px solid var(--line);background:#fffdf5;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;min-height:76px;padding:10px 16px;display:grid}.step-badge{aspect-ratio:1;border:3px solid var(--line);color:#fff;background:#5e82df;border-radius:15px;place-items:center;width:46px;font-size:1.25rem;font-weight:950;display:grid;box-shadow:0 4px #234b6829}.instruction-card p{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:2px;font-size:.68rem;font-weight:900}.instruction-card h2{letter-spacing:-.025em;margin-bottom:0;font-size:clamp(1rem,2.2vw,1.38rem);font-weight:950;line-height:1.05}.part-count{background:#eaf4f5;border-radius:15px;justify-content:center;align-items:baseline;gap:3px;min-width:66px;padding:7px 10px;display:flex}.part-count strong{font-size:1.45rem}.part-count span{color:var(--muted);font-size:.83rem;font-weight:900}.game-board{touch-action:none;isolation:isolate;background:linear-gradient(to bottom,transparent 0 79%,#ffffff57 79% 80%,transparent 80%),linear-gradient(to bottom,var(--sky) 0 76%,var(--sky-deep) 76% 80%,var(--grass) 80%);height:clamp(570px,100dvh - 124px,760px);min-height:570px;transition:background 1s;position:relative;overflow:hidden}.game-board:after{content:"";z-index:-1;background:#205c4a2b;border-radius:50%;width:min(45%,390px);height:7%;transition:opacity .4s;position:absolute;bottom:4.5%;left:50%;transform:translate(-50%)}.sky-decor{z-index:-2;pointer-events:none;position:absolute;inset:0;overflow:hidden}.cloud{fill:#ffffffa8;width:clamp(95px,14vw,150px);position:absolute}.cloud-one{top:10%;left:4%}.cloud-two{opacity:.72;top:23%;right:5%;transform:scale(.75)}.sun{aspect-ratio:1;background:#ffdf62;border-radius:50%;width:70px;position:absolute;top:5%;right:14%;box-shadow:0 0 0 17px #ffdf6238}.star{color:#fff5b1;opacity:0;font-size:22px;transition:opacity .8s;position:absolute}.star-one{top:19%;left:18%}.star-two{top:10%;right:26%}.star-three{top:42%;right:10%}.rocket-zone{z-index:2;width:min(29%,300px);height:min(75%,540px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.rocket{transform-origin:50% 100%;position:absolute;inset:0}.rocket-svg{width:100%;height:100%;overflow:visible}.rocket-shadow{fill:#1c4b512e;transition:opacity .3s}.rocket-template{fill:#ffffff38;stroke:#234b689e;stroke-width:3.5px;stroke-dasharray:8 8;stroke-linejoin:round}.slot.is-next{animation:1.25s ease-in-out infinite slot-pulse}.placed-rocket{stroke:var(--line);stroke-width:4px;stroke-linejoin:round}.rocket-fill{opacity:0;transition:opacity .28s}.rocket-fill.is-visible{opacity:1}.window-layer{opacity:0;transition:opacity .28s}.window-layer.is-visible{opacity:1}.window-rim{fill:#ffdf62}.window-glass{fill:#7ac8e4}.window-shine{fill:#ffffffa3;stroke:none}.rocket-details{fill:none;stroke:var(--line);stroke-width:4px;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity .25s}.rocket-details circle{fill:var(--rocket-dark);stroke:none}.rocket-details .bolt-mark{fill:#ffdf62;stroke:var(--line);stroke-width:3px}.rocket.is-built .rocket-details{opacity:1}.rocket.is-built .rocket-template{opacity:0}.parts-layer{z-index:5;pointer-events:none;position:absolute;inset:0}.rocket-piece{width:var(--piece-width);height:var(--piece-height);cursor:grab;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 7px 3px #234b6833);background:0 0;border:0;place-items:center;min-width:52px;min-height:70px;padding:0;transition:left .38s cubic-bezier(.2,.8,.2,1),top .38s cubic-bezier(.2,.8,.2,1),transform .2s,opacity .2s;display:grid;position:absolute}.rocket-piece svg{pointer-events:none;width:100%;height:100%;overflow:visible}.rocket-piece .piece-shape{stroke:var(--line);stroke-width:4px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.rocket-piece:after{content:"";opacity:0;border:3px solid #ffffffd1;border-radius:22px;transition:all .15s;position:absolute;inset:-5px}.rocket-piece:hover:after,.rocket-piece:focus-visible:after{opacity:1}.rocket-piece.is-dragging{z-index:20;cursor:grabbing;transform:scale(1.08) rotate(var(--drag-tilt));filter:drop-shadow(0 15px 7px #234b6840);transition:transform .12s}.rocket-piece.is-returning{animation:.38s piece-wiggle}.rocket-piece.is-placed{opacity:0;pointer-events:none;transform:scale(.75)}.animal-tray{z-index:12;border:3px solid var(--line);box-shadow:0 7px 0 var(--shadow);background:#fffdf5f0;border-radius:24px;justify-content:center;align-items:flex-end;gap:clamp(7px,1.5vw,17px);padding:13px 14px 10px;animation:.45s cubic-bezier(.2,.9,.2,1) tray-in;display:flex;position:absolute;inset:auto 3% 2.3%}.animal-card{--animal-color:#ef665c;aspect-ratio:1/1.05;border:3px solid var(--line);background:color-mix(in srgb,var(--animal-color),white 75%);width:min(16%,126px);min-width:72px;box-shadow:0 5px 0 color-mix(in srgb,var(--animal-color),#234b68 35%);cursor:grab;touch-action:none;border-radius:19px;place-items:center;padding:4px;transition:transform .16s,opacity .2s;display:grid;position:relative}.animal-card svg{pointer-events:none;width:88%;height:88%;overflow:visible}.animal-card .fur{fill:var(--animal-color)}.animal-card .fur-light{fill:color-mix(in srgb,var(--animal-color),white 42%)}.animal-card .line{fill:none;stroke:var(--line);stroke-width:4px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.animal-card .eye{fill:var(--line)}.animal-card:after{content:"";aspect-ratio:1;border:2px solid var(--paper);background:var(--animal-color);width:15px;box-shadow:0 1px 0 var(--line);border-radius:50%;position:absolute;bottom:7px;right:7px}.animal-card:hover{transform:translateY(-5px)}.animal-card.is-dragging{z-index:100;pointer-events:none;margin:0;position:fixed;transform:translate(-50%,-50%)scale(1.12)rotate(-3deg)}.animal-card.is-wrong{animation:.45s animal-no}.animal-card.is-boarded{opacity:0;pointer-events:none;transform:translateY(-45px)scale(.4)}.passenger-window{stroke:none}.passenger-window .fur{fill:var(--passenger-color)}.passenger-window .fur-light{fill:color-mix(in srgb,var(--passenger-color),white 42%)}.passenger-window .line{fill:none;stroke:var(--line);stroke-width:4px;stroke-linecap:round;stroke-linejoin:round}.passenger-window .eye{fill:var(--line)}.passenger-portrait{opacity:1;transform-origin:50px 50px;transform:none}.control-panel{z-index:14;border:3px solid var(--line);width:clamp(250px,24%,310px);box-shadow:0 9px 0 var(--shadow),inset 0 0 0 6px #ffffff85;background:#e9ece8;border-radius:27px;padding:18px 17px 20px;transition:background .2s;animation:.45s cubic-bezier(.2,.9,.2,1) panel-in;position:absolute;top:50%;right:3%;transform:translateY(-50%)}.control-panel.is-complete{background:#dff1e4}.control-panel p{color:var(--muted);letter-spacing:.1em;text-align:center;text-transform:uppercase;margin-bottom:15px;font-size:.76rem;font-weight:950}.control-buttons{justify-content:center;gap:14px;display:flex}.launch-control{aspect-ratio:1;border:3px solid var(--line);cursor:pointer;background:#b7c1c2;border-radius:50%;width:clamp(62px,5.8vw,74px);padding:0;transition:transform .13s,box-shadow .13s;position:relative;box-shadow:0 10px #7e8c8f,0 12px 10px #234b6833}.launch-control span{background:var(--button-color);border:2px solid #234b684d;border-radius:50%;place-items:center;transition:transform .13s,box-shadow .13s,filter .13s;display:grid;position:absolute;inset:7px;box-shadow:inset 0 7px #fff6,inset 0 -4px #234b6824}.launch-control i{color:#fff;opacity:0;text-shadow:0 2px #234b6840;font-size:1.55rem;font-style:normal;font-weight:950;line-height:1;transition:all .14s;transform:scale(.5)}.control-red{--button-color:#ed625a}.control-yellow{--button-color:#f8cd45}.control-green{--button-color:#55b974}.launch-control:active,.launch-control.is-pushed{transform:translateY(9px);box-shadow:0 1px #7e8c8f,0 2px 2px #234b6829}.launch-control:active span,.launch-control.is-pushed span{filter:saturate(.78)brightness(.92);transform:translateY(3px)scale(.94);box-shadow:inset 0 7px 8px #234b6840,inset 0 1px #fff3}.launch-control.is-pushed i{opacity:1;transform:scale(1)}.launch-control.is-pushed{transition:none;transform:translateY(9px)!important;box-shadow:0 1px #7e8c8f,0 2px 2px #234b6829!important}.launch-control.is-pushed span{transition:none;filter:saturate(.78)brightness(.92)!important;transform:translateY(3px)scale(.94)!important;box-shadow:inset 0 7px 8px #234b6840,inset 0 1px #fff3!important}.launch-control.is-pushed i{transition:none;opacity:1!important;transform:scale(1)!important}.animal-tray,.control-panel{animation:none}.smoke{fill:#f6f3e9;stroke:#bdc8c7;stroke-width:3px;opacity:0;transform-origin:130px 430px}.rocket.is-ready .smoke{opacity:1;animation:1.35s ease-in-out infinite smoke-puff}.flame{opacity:0;transform-origin:130px 419px}.flame-outer{fill:#f06445;stroke:var(--line);stroke-width:3px}.flame-inner{fill:#ffd84c;stroke:none}.rocket.is-launching .flame{opacity:1;animation:.11s ease-in-out infinite alternate flame-flicker}.rocket.is-launching .smoke{opacity:0}.swipe-cue{z-index:5;color:var(--line);flex-direction:column;align-items:center;animation:1.1s ease-in-out infinite cue-bob;display:flex;position:absolute;top:31%;left:-86px}.swipe-cue svg{fill:none;stroke:currentColor;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;width:34px;height:48px}.swipe-cue span{white-space:nowrap;background:#fffdf5e0;border-radius:999px;padding:5px 8px;font-size:.75rem;font-weight:950}.rocket.is-ready{cursor:grab;touch-action:none}.game-board.is-space{background:radial-gradient(circle at 72% 18%,#7868bb 0,#344c86 36%,#14284d 78%)}.game-board.is-space:after,.game-board.is-space .sun,.game-board.is-space .cloud{opacity:0}.game-board.is-space .star{opacity:1}.game-board.is-launching .rocket{animation:2.3s cubic-bezier(.5,0,.8,.2) forwards launch-up}.game-board.is-launching .rocket-shadow{opacity:0}.launch-finale{z-index:30;color:#fff;text-align:center;background:radial-gradient(circle at 50% 43%,#6d62b94d,#0000 35%);align-content:center;justify-items:center;padding:24px;animation:.45s both finale-in;display:grid;position:absolute;inset:0}.finale-kicker{color:#ffe374;letter-spacing:.13em;text-transform:uppercase;margin-bottom:5px;font-size:.78rem;font-weight:950}.launch-finale h2{letter-spacing:-.055em;text-shadow:0 4px #0c1f3e59;margin-bottom:21px;font-size:clamp(2rem,5vw,4rem);font-weight:950}.next-rocket{min-height:62px;color:var(--ink);cursor:pointer;background:#ffdc58;border:3px solid #fff;border-radius:999px;align-items:center;gap:14px;padding:10px 12px 10px 22px;font-size:1.05rem;font-weight:950;display:flex;box-shadow:0 7px #081a3761}.next-rocket svg{color:#fff;background:var(--line);fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;border-radius:50%;width:39px;height:39px;padding:7px}.next-rocket:active{transform:translateY(5px);box-shadow:0 2px #081a3761}.toast{z-index:50;border:3px solid var(--line);background:var(--paper);max-width:min(80%,360px);box-shadow:0 5px 0 var(--shadow);text-align:center;opacity:0;pointer-events:none;border-radius:999px;padding:10px 15px;font-size:.9rem;font-weight:950;transition:opacity .18s,transform .25s;position:absolute;top:20px;left:50%;transform:translate(-50%,-10px)scale(.95)}.toast.is-visible{opacity:1;transform:translate(-50%)scale(1)}.celebration-layer{z-index:1000;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti-piece{width:11px;height:18px;animation:confetti-fall var(--fall-time) ease-in forwards;border-radius:3px;position:absolute;top:-24px}.confetti-piece:nth-child(2n){border-radius:50%}.confetti-piece:nth-child(3n){width:18px;height:8px}@keyframes slot-pulse{50%{fill:#ffffff8c;stroke:#fff}}@keyframes piece-wiggle{25%{transform:rotate(-6deg)}60%{transform:rotate(5deg)}}@keyframes tray-in{0%{opacity:0;transform:translateY(70px)}}@keyframes panel-in{0%{opacity:0;transform:translate(60px,-50%)}}@keyframes animal-no{25%{transform:translate(-8px)rotate(-3deg)}55%{transform:translate(8px)rotate(3deg)}}@keyframes passenger-pop{0%{opacity:0;transform:translateY(25px)scale(.72)}}@keyframes smoke-puff{50%{opacity:.7;transform:translateY(7px)scale(1.13)}}@keyframes flame-flicker{to{transform:scaleY(.86)scaleX(1.08)}}@keyframes cue-bob{50%{transform:translateY(-9px)}}@keyframes launch-up{0%{transform:translateY(0)}8%{transform:translate(-3px,-5px)rotate(-1deg)}13%{transform:translate(4px,-8px)rotate(1deg)}20%{transform:translateY(-14px)}to{transform:translateY(-145vh)scale(.7)}}@keyframes finale-in{0%{opacity:0;transform:scale(1.05)}}@keyframes confetti-fall{to{transform:translate3d(var(--drift),110vh,0) rotate(720deg)}}@media (width<=760px){.game-shell{padding-inline:7px}.topbar{grid-template-columns:auto minmax(0,1fr) auto;gap:8px}.mission-dots,.title-lockup p{display:none}.round-button{width:46px;height:46px}.play-card{border-radius:20px}.instruction-card{gap:9px;min-height:68px;padding:8px 10px}.step-badge{border-radius:13px;width:41px}.instruction-card h2{font-size:.98rem}.part-count{min-width:55px;padding-inline:7px}.part-count strong{font-size:1.2rem}.game-board{height:calc(100dvh - 190px);min-height:540px}.rocket-zone{width:min(45%,245px);height:66%;top:46%}.cloud-one{left:-7%}.cloud-two{right:-12%}.sun{width:52px;right:8%}.animal-tray{border-radius:19px;gap:5px;padding:9px 7px 8px;inset-inline:1.5%}.animal-card{border-width:2px;border-radius:14px;width:19%;min-width:0}.control-panel{width:min(92%,350px);padding:14px 14px 17px;top:auto;bottom:2.5%;right:50%;transform:translate(50%)}.control-panel p{margin-bottom:11px}.control-buttons{gap:15px}.launch-control{width:68px}.swipe-cue{left:-60px}.swipe-cue span{font-size:.67rem}}@media (height<=680px) and (width>=761px){.game-board{height:540px;min-height:540px}.rocket-zone{height:87%}.animal-tray{padding-block:8px 6px}.animal-card{max-width:90px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
