:root{--navy: #0f2c52;--ink: #0a1f3b;--y: #ffd23f;--o: #ff8a1f;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none;background:var(--navy);color:#fff;font-family:ui-rounded,SF Pro Rounded,Arial Rounded MT Bold,system-ui,sans-serif;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:inherit;border:0;padding:0;margin:0;background:none;cursor:pointer;touch-action:manipulation}svg{display:block}#app{position:fixed;inset:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background-color:var(--navy);background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:40px 40px}.screen{height:100%;display:flex;flex-direction:column;gap:14px;padding:16px 22px 18px;animation:screen-in .45s cubic-bezier(.2,.8,.2,1)}@keyframes screen-in{0%{opacity:0;transform:scale(.96)}}.chip,.tile,.big,.rb,.more,.crumb{transition:transform .15s ease,background .25s,box-shadow .25s}.chip:active,.tile:active,.big:active,.rb:active,.more:active,button.crumb:active{transform:translateY(4px) scale(.96)}.head{display:flex;align-items:center;gap:14px;flex:none}.head>svg{width:60px;height:60px;animation:spin 12s linear infinite}.logo{font-size:36px;font-weight:800;letter-spacing:1px}.logo b{color:var(--y)}.stars{margin-left:auto;display:flex;align-items:center;gap:8px;height:66px;padding:0 22px 0 12px;border-radius:40px;background:#ffffff1f;color:#fff;font-size:36px;font-weight:800}.stars svg{width:48px;height:48px}.stars .of{font-size:20px;font-weight:700;opacity:.55}.pop{animation:pop .55s cubic-bezier(.3,1.6,.5,1)}@keyframes pop{40%{transform:scale(1.3)}}.flystar{position:fixed;left:0;top:0;width:60px;height:60px;margin:-30px 0 0 -30px;pointer-events:none;z-index:10;filter:drop-shadow(0 0 14px rgba(255,210,63,.9))}.flystar svg{width:100%;height:100%}.tile .star.pending{opacity:0}.tile .star.pop{animation:pop .55s cubic-bezier(.3,1.6,.5,1)}.chips{display:flex;gap:12px;flex-wrap:wrap;flex:none}.chip{width:108px;height:76px;border-radius:22px;background:#ffffff1f;display:flex;align-items:center;justify-content:center}.chip svg{width:44px;height:44px}.chip[aria-pressed=true]{background:var(--o);color:var(--ink);box-shadow:0 6px #b85c0a}.grid{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:20px;padding:6px 4px 28px;align-content:start}.screen.home{padding-bottom:0}.grid{padding-top:0;margin-bottom:calc(-1*env(safe-area-inset-bottom));padding-bottom:calc(40px + env(safe-area-inset-bottom))}.ghead{grid-column:1 / -1;position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:12px;height:64px;margin:6px -4px 0;padding:0 16px;border-radius:0 0 20px 20px;background:#0f2c52;box-shadow:0 8px 14px -6px #00000073;font-size:26px;font-weight:800;text-align:left}.ghead[hidden]{display:none}.ghead .layers{width:44px;height:44px;flex:none}.ghead .gname{flex:1}.ghead .gstars{display:flex;align-items:center;gap:6px;font-size:20px;font-weight:700;opacity:.85}.ghead .gstars svg{width:28px;height:28px}.tile{position:relative;aspect-ratio:1.15;border-radius:28px;background:#eaf2fb;box-shadow:0 8px 0 var(--ink);display:flex;align-items:center;justify-content:center}.tile[hidden]{display:none}.tile .art{width:84%;height:auto}.tile .ring{position:absolute;right:10px;bottom:10px;width:40px;height:40px}.tile .star{position:absolute;right:8px;bottom:8px;width:44px;height:44px;animation:bob 2s ease-in-out infinite}.tile.opening{animation:open-tile .25s ease-in forwards}@keyframes open-tile{to{transform:scale(1.12);opacity:.4}}.top{display:flex;align-items:center;gap:14px;height:80px;flex:none}.big{width:76px;height:76px;border-radius:24px;background:var(--y);color:var(--ink);display:flex;align-items:center;justify-content:center;box-shadow:0 6px #b8901a;flex:none}.big svg{width:40px;height:40px}.crumbs{display:flex;align-items:center;gap:6px;min-width:0}.crumb{width:76px;height:76px;border-radius:20px;background:#eaf2fb;display:flex;align-items:center;justify-content:center;padding:8px;flex:none;overflow:hidden}.crumb svg{width:100%;height:100%}.crumb.here{box-shadow:inset 0 0 0 5px var(--o)}.crumb.next{background:transparent;border:3px dashed rgba(255,255,255,.35);color:#ffffff80;padding:18px}.chev{width:18px;height:26px;color:#ffffff80;flex:none}.grow{flex:1}.pips{display:flex;gap:7px;background:#ffffff1f;padding:12px 16px;border-radius:40px;flex-wrap:wrap;max-width:42%}.pips i{width:20px;height:20px;border-radius:6px;border:3px solid rgba(255,255,255,.4);transition:all .35s cubic-bezier(.34,1.6,.6,1)}.pips i.f{background:var(--y);border-color:var(--y)}.mid{flex:1;min-height:0;display:flex;gap:14px}.stage{flex:1;min-width:0;position:relative}.stage.waking:after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:40px;background:radial-gradient(closest-side,rgba(255,228,92,.35),transparent);animation:wake 1s ease-out forwards}@keyframes wake{0%{opacity:0;transform:scale(.6)}30%{opacity:1}to{opacity:0;transform:scale(1.2)}}.rail{width:96px;display:flex;flex-direction:column;justify-content:center;gap:16px;flex:none}.rb{width:96px;height:96px;border-radius:28px;background:#ffffff24;display:flex;align-items:center;justify-content:center}.rb svg{width:52px;height:52px}.power{color:#7dffb0}.power[aria-pressed=true]{background:#2ecc71;color:var(--ink);box-shadow:0 0 0 5px #2ecc7159,0 0 34px #2ecc71b3}.card{flex:none;display:flex;align-items:center;gap:16px;background:#fff;color:var(--ink);border-radius:32px;padding:12px 16px;box-shadow:0 6px 0 var(--ink);min-height:104px}.more{width:84px;height:84px;border-radius:50%;background:var(--y);color:var(--ink);display:flex;align-items:center;justify-content:center;box-shadow:0 6px #b8901a;flex:none}.more svg{width:46px;height:46px}.more.invite{animation:invite .9s ease-in-out .6s 2}@keyframes invite{50%{transform:scale(1.14) rotate(-8deg)}}.words{flex:1;min-width:0}.nm{font-size:34px;font-weight:700;line-height:1.1}.ds{font-size:18px;line-height:1.3;color:#3d5573;margin-top:4px}.bars{display:flex;gap:5px;align-items:center;height:44px;opacity:0;transition:opacity .2s;flex:none}.talking .bars{opacity:1}.bars i{width:7px;height:40px;border-radius:4px;background:#ffb21f;transform:scaleY(.35);animation:bar .8s ease-in-out infinite}.bars i:nth-child(2){animation-delay:.2s}.bars i:nth-child(3){animation-delay:.4s}.bars i:nth-child(4){animation-delay:.1s}@keyframes bar{50%{transform:scaleY(1)}}.board{position:absolute;cursor:pointer;transform-origin:0 0}.board .measure{position:absolute;inset:0;width:100%;height:100%;visibility:hidden}.measure.off .a-on,.measure.off .a-current,.measure.off .a-rise{display:none}.board .bg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.part,.hit,.screw{position:absolute}.part{pointer-events:none;will-change:transform;transition:transform .9s cubic-bezier(.34,1.4,.55,1)}.hit{transition:transform .9s cubic-bezier(.34,1.4,.55,1)}.board.still .part,.board.still .hit,.board.still .cover{transition:none}.pin{position:absolute;inset:0}.pin>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.pin>svg *{pointer-events:visiblePainted}.pin.boing{animation:boing .5s ease-out}.pin.pluck{animation:pluck .9s cubic-bezier(.3,1.3,.5,1)}@keyframes boing{30%{transform:scale(1.07)}65%{transform:scale(.98)}}@keyframes pluck{25%{transform:scale(1.14) rotate(-4deg)}60%{transform:scale(.97) rotate(1.5deg)}}.hl{position:absolute;border:calc(var(--u) * 5) solid var(--y);border-radius:calc(var(--u) * 26);background:#ffd23f21;box-shadow:0 0 calc(var(--u) * 26) #ffd23f99,inset 0 0 calc(var(--u) * 16) #ffd23f59;opacity:0;transition:opacity .25s;pointer-events:none}.pin.sel .hl{opacity:1}.wiggle{animation:wiggle .9s ease-in-out}@keyframes wiggle{20%{transform:rotate(-6deg)}40%{transform:rotate(6deg)}60%{transform:rotate(-3deg)}80%{transform:rotate(2deg)}}.badge{position:absolute;width:calc(var(--u) * 76);height:calc(var(--u) * 76);margin:calc(var(--u) * -38) 0 0 calc(var(--u) * -38);pointer-events:auto}.badge svg,.sin svg,.cin svg{display:block;width:100%;height:100%}.bin{width:100%;height:100%;animation:badge 1.6s ease-in-out infinite}.bin.wiggle{animation:wiggle .9s ease-in-out}@keyframes badge{50%{transform:scale(1.13)}}.covered .badge{display:none}.cover{position:absolute;inset:0;will-change:transform;transition:transform 1s cubic-bezier(.5,-.3,.35,1),opacity .7s ease-in .3s}.cin{width:100%;height:100%}.cin svg{overflow:visible}.cover.gone{opacity:0;pointer-events:none}.cin.wob{animation:wiggle .5s ease-in-out}.screw{will-change:transform}.sin{position:absolute;inset:0}.screw .ring{position:absolute;inset:27.5%;border-radius:50%;border:calc(var(--u) * 6) solid var(--y);animation:ping 1.5s ease-out infinite;pointer-events:none}@keyframes ping{0%{transform:scale(1);opacity:.9}to{transform:scale(2.1);opacity:0}}.screw.out{pointer-events:none}.screw.out .ring{display:none}.screw.out .sin{animation:unscrew .9s ease-in forwards}.screw.done{display:none}@keyframes unscrew{0%{transform:rotate(0)}65%{transform:rotate(-720deg) scale(1.15)}to{transform:translateY(calc(var(--u) * -140)) rotate(-900deg) scale(.6);opacity:0}}.screw.in .sin{animation:screw-in .7s ease-out}@keyframes screw-in{0%{transform:translateY(calc(var(--u) * -140)) rotate(720deg) scale(.6);opacity:0}}.screw.nudge .sin{animation:wiggle .6s ease-in-out}.links{opacity:0;transition:opacity .8s}.allout .links{opacity:1}.board.enter{animation:enter .7s cubic-bezier(.2,.9,.25,1.1);transform-origin:center}@keyframes enter{0%{opacity:0;transform:scale(.4)}}.board.leave{animation:leave .3s ease-in forwards;transform-origin:center}@keyframes leave{to{opacity:0;transform:scale(.6)}}.board.zooming{transition:transform .65s cubic-bezier(.65,0,.35,1),opacity .3s ease-in .35s}.board.fading{opacity:0}.flow{animation:dash .7s linear infinite}.burst{position:absolute;left:50%;top:45%;pointer-events:none}.burst i{position:absolute;width:38px;height:38px;margin:-19px;background:var(--y);clip-path:polygon(50% 0,62% 35%,100% 38%,70% 60%,80% 100%,50% 77%,20% 100%,30% 60%,0 38%,38% 35%);animation:star 1.4s cubic-bezier(.15,.8,.3,1) forwards}@keyframes star{0%{transform:translate(0) scale(.3) rotate(0);opacity:1}80%{opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(1.2) rotate(200deg);opacity:0}}[class*=a-]{transform-box:fill-box;transform-origin:center}.a-flame{transform-origin:50% 0}.on .a-spin{animation:spin-up 1.4s ease-in,spin .9s linear 1.4s infinite}.on .a-spin-fast{animation:spin-up 1.2s ease-in,spin .35s linear 1.2s infinite}.on .a-spin-slow{animation:spin 3s linear infinite}.on .a-spin-back{animation:spin-up 1.4s ease-in reverse,spin .9s linear 1.4s infinite reverse}.on .a-pulse{animation:pulse .22s ease-in-out infinite alternate}.on .a-rise{animation:rise 1.8s ease-out infinite}.on .a-slide{animation:slide 1.2s ease-in-out infinite alternate}.on .a-swing{animation:swing 1s ease-in-out infinite alternate}.on .a-shake{animation:shake .14s linear infinite}.on .a-bob{animation:bob 1s ease-in-out infinite}.on .a-blink{animation:blink 1s steps(1) infinite}.on .a-glow{animation:glow 1.1s ease-in-out infinite}.on .a-flame{animation:flame .12s ease-in-out infinite alternate}.on .a-flow{animation:dash .7s linear infinite}.a-current,.current{fill:none;stroke:#ffe45c;stroke-width:12px;stroke-linecap:round;stroke-dasharray:0 30}.halo{stroke:#ffd23f;stroke-width:30px}.current.halo{opacity:.3}.a-current{opacity:0;transition:opacity .4s}.on .a-current{opacity:1;animation:current .6s linear infinite}.on .a-current.halo{opacity:.3}.current{animation:current .6s linear infinite}.a-rise{opacity:0}.a-on,.a-off{transition:opacity .5s}.a-on:not(.on *){opacity:0}.on .a-off{opacity:0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes spin-up{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.07)}}@keyframes rise{0%{transform:translateY(0);opacity:0}20%{opacity:1}to{transform:translateY(-70px);opacity:0}}@keyframes slide{0%{transform:translate(-24px)}to{transform:translate(24px)}}@keyframes current{to{stroke-dashoffset:-30}}@keyframes swing{0%{transform:rotate(-35deg)}to{transform:rotate(35deg)}}@keyframes shake{25%{transform:translate(2px,-1px)}75%{transform:translate(-2px,1px)}}@keyframes bob{50%{transform:translateY(-10px)}}@keyframes blink{50%{opacity:0}}@keyframes glow{0%,to{opacity:.45}50%{opacity:1}}@keyframes flame{0%{transform:scaleY(.8)}to{transform:scaleY(1.15)}}@keyframes dash{to{stroke-dashoffset:-28}}@media(max-width:760px){.rail{width:72px}.rb{width:72px;height:72px}.rb svg{width:40px;height:40px}.nm{font-size:26px}.ds{display:none}}@media(prefers-reduced-motion:reduce){.scene .part,.scene .hit,.cover{transition-duration:.01s}}
