:root{font-family:ui-rounded,Nunito,Segoe UI Rounded,system-ui,sans-serif;-webkit-text-size-adjust:100%}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{overscroll-behavior:none}.game{position:relative;min-height:100dvh;max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:clamp(8px,2vh,18px);padding:clamp(10px,2.5vw,28px);user-select:none;-webkit-user-select:none;touch-action:manipulation}.home-btn{position:absolute;z-index:6;top:clamp(8px,2vw,18px);left:clamp(8px,2vw,18px);width:clamp(46px,9vw,58px);height:clamp(46px,9vw,58px);padding:clamp(10px,2.2vw,14px);border:none;border-radius:50%;background:#ffffffe6;color:#5b6b4a;box-shadow:0 3px #0000001f;cursor:pointer;transition:transform .12s ease,background .12s ease}.home-btn:hover{background:#fff}.home-btn:active{transform:translateY(3px)}.picker{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(20px,5vh,48px);padding:clamp(20px,5vw,48px);background:linear-gradient(180deg,#eaf6ff,#e9f7e0)}.picker-head{display:flex;flex-direction:column;align-items:center;gap:clamp(6px,1.6vh,16px);text-align:center}.logo{margin:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.16em;font-family:"Baloo 2",Trebuchet MS,system-ui,sans-serif;font-weight:800;font-size:clamp(48px,10vw,104px);line-height:.92;animation:logoBob 3.4s ease-in-out infinite}.logo-word{display:inline-block;-webkit-text-stroke:.13em #fffaf0;paint-order:stroke fill;filter:drop-shadow(0 6px 5px rgba(0,0,0,.18))}.logo-make{color:#6b5cff;transform:rotate(-4deg)}.logo-it{color:#ff9a3c;transform:rotate(3deg) translateY(-.05em)}.logo-go{color:#4caf3f;transform:rotate(-3deg)}.picker-title{margin:0;font-family:"Baloo 2",Trebuchet MS,system-ui,sans-serif;font-weight:700;font-size:clamp(19px,3vw,30px);color:#5c6b4a}@keyframes logoBob{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.logo-wrap{position:relative;display:inline-flex;flex-direction:column;align-items:center}.logo-swoosh{width:76%;height:clamp(12px,2.4vw,22px)}.logo-spark{position:absolute;color:#ffd23d;font-size:clamp(20px,4vw,40px);line-height:1;pointer-events:none;filter:drop-shadow(0 1px 1px rgba(0,0,0,.12));animation:twinkle 2.2s ease-in-out infinite}.spark-a{top:-10%;left:-3%}.spark-b{top:2%;right:-4%;color:#ff7aa8;font-size:clamp(14px,2.8vw,28px);animation-delay:.5s}.spark-c{bottom:28%;left:5%;color:#6bd0ff;font-size:clamp(13px,2.6vw,24px);animation-delay:1.1s}@keyframes twinkle{0%,to{opacity:.45;transform:scale(.8) rotate(0)}50%{opacity:1;transform:scale(1.15) rotate(18deg)}}.picker-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:clamp(18px,4vw,36px);width:100%;max-width:780px}.picker-tile{position:relative;aspect-ratio:4 / 3;border:none;border-radius:28px;cursor:pointer;overflow:hidden;box-shadow:0 8px #0000001f;transition:transform .12s ease}.picker-tile:active{transform:translateY(4px)}.picker-hero{position:absolute;left:0;right:0;top:20%;bottom:8%}.picker-hero .sprite{object-fit:contain;object-position:center bottom}.picker-tile:hover{transform:translateY(-6px);box-shadow:0 14px #0000001a}.picker-tile:hover .picker-hero,.picker-tile:focus-visible .picker-hero{animation:heroWiggle .7s ease}@keyframes heroWiggle{0%,to{transform:translateY(0) rotate(0)}30%{transform:translateY(-7px) rotate(-4deg)}65%{transform:translateY(-2px) rotate(4deg)}}.picker-cry{position:absolute;z-index:2;top:5%;left:50%;transform:translate(-50%,8px) scale(.7);padding:.18em .7em;border-radius:999px;background:#fff;color:#444;font-family:"Baloo 2",Trebuchet MS,system-ui,sans-serif;font-weight:700;font-size:clamp(13px,2.4vw,21px);white-space:nowrap;box-shadow:0 4px 10px #00000029;opacity:0;pointer-events:none;transition:opacity .16s ease,transform .16s ease}.picker-cry:after{content:"";position:absolute;left:50%;bottom:-6px;transform:translate(-50%);border:6px solid transparent;border-top-color:#fff}.picker-tile:hover .picker-cry,.picker-tile:focus-visible .picker-cry{opacity:1;transform:translate(-50%) scale(1)}.sprite{width:100%;height:100%;object-fit:contain;display:block;-webkit-user-drag:none}.backdrop-img{object-fit:cover}.sprite.hero-art{--flip: -1;transform:scaleX(var(--flip));transform-origin:bottom center}.sprite.hero-art.faces-right{--flip: 1}.partner{display:flex;align-items:center;gap:14px;min-height:78px;padding:12px 18px;background:#ffffffd9;border-radius:22px;box-shadow:0 4px 14px #00000014}.partner-face{flex:0 0 auto;width:56px;height:56px}.partner-say{margin:0;font-size:clamp(18px,2.6vw,26px);font-weight:800;line-height:1.35}.partner-say .word{display:inline-block;padding:0 .09em;transition:transform .14s ease,color .14s ease;transform-origin:center 72%}.partner-say .word.spoken{transform:scale(1.18);color:#e0398b}.partner.celebrate{background:#fff7d6;animation:pop .5s ease}.track{position:relative;flex:1 1 auto;min-height:230px;border-radius:24px;overflow:hidden;box-shadow:0 6px 18px #0000001a,inset 0 0 0 3px #ffffff4d}.scene-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.path{position:absolute;z-index:1;left:6%;right:6%;bottom:11%;height:6.5%;border-radius:999px;background:#d6b88680}.sun{position:absolute;z-index:1;top:5%;right:6%;width:14%;aspect-ratio:1 / 1;border:none;background:transparent;padding:0;cursor:pointer}.sun.poke{animation:sunPoke .55s ease}.obstacle-slot{position:absolute;z-index:1;bottom:11%;width:15%;aspect-ratio:1 / 1;transform:translate(-50%);display:flex;align-items:flex-end;justify-content:center}.obstacle{object-position:center bottom}.goal-slot{position:absolute;z-index:1;bottom:15%;width:11%;aspect-ratio:1 / 1;transform:translate(-50%);filter:drop-shadow(0 3px 4px rgba(0,0,0,.18));transition:opacity .3s ease}.track.won .goal-slot{opacity:0}.win-burst{position:absolute;z-index:1;bottom:16%;width:20%;aspect-ratio:1 / 1;transform:translate(-50%);border-radius:50%;background:radial-gradient(circle,#ffeea0a6,#ffeea000 70%);pointer-events:none;animation:winBurst .7s ease-out}.hero-shadow{position:absolute;z-index:1;bottom:13%;width:16%;aspect-ratio:1 / 1;transform:translate(-50%);display:flex;align-items:flex-end;justify-content:center;pointer-events:none}.shadow-ellipse{width:42%;height:8px;border-radius:50%;background:radial-gradient(ellipse at center,#00000047,#0000 72%)}.hero{position:absolute;z-index:2;bottom:14%;width:16%;aspect-ratio:1 / 1;transform:translate(-50%);display:flex;align-items:flex-end;justify-content:center;pointer-events:none}.hero.clickable{pointer-events:auto;cursor:pointer}.hero-inner{width:100%;height:100%;transform-origin:bottom center}.hero .sprite{object-position:center bottom}.hero-inner.idle{animation:idleBob 2.6s ease-in-out infinite}.hero-inner.idle .sprite.hero-art{animation:earTwitch 4.5s ease-in-out infinite}.hero-inner.walk{animation:walkBob .42s ease-in-out infinite}.hero-inner.jump{animation:jumpArc .56s ease}.hero-inner.climb{animation:climbMove .56s ease}.hero-inner.duck{animation:duckSquash .56s ease}.hero-inner.stumble,.hero-inner.splash{animation:stumbleWobble .56s ease}.hero-inner.cheer{animation:cheerBounce .85s ease 2}.hero-inner.petting{animation:petSquish .5s ease}.track.reduced .hero-inner,.track.reduced .hero-inner .sprite.hero-art{animation:none!important}.hearts{position:absolute;z-index:3;bottom:34%;width:16%;transform:translate(-50%);display:flex;justify-content:center;gap:8px;pointer-events:none}.hearts span{font-size:22px;color:#ff6f9c;opacity:0;animation:heartFloat .9s ease-out}.hearts span:nth-child(2){animation-delay:.08s}.hearts span:nth-child(3){animation-delay:.16s}.overlay{position:absolute;z-index:3;pointer-events:none}.overlay.celebrate{bottom:20%;width:22%;aspect-ratio:1 / 1;transform:translate(-50%);display:flex;align-items:flex-end;justify-content:center;animation:pop .5s ease}.overlay.celebrate svg rect{transform-box:fill-box;transform-origin:center;animation:confettiFall 1s ease-in forwards}.overlay.celebrate svg rect:nth-of-type(2n){animation-duration:1.25s}.plan{display:flex;align-items:center;gap:8px;min-height:96px;padding:8px 12px;background:#ffffffb8;border:3px solid rgba(0,0,0,.1);border-radius:22px}.plan-cap{flex:0 0 auto;width:50px;height:50px}.plan-lane{flex:1 1 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;min-height:74px;padding:6px 10px;border-radius:14px;background:repeating-linear-gradient(90deg,rgba(0,0,0,.04) 0 18px,transparent 18px 30px)}.slot{width:64px;height:64px;display:grid;place-items:center;border-radius:16px}.slot.empty{border:3px dashed rgba(0,0,0,.22)}.slot.empty svg{width:60%;height:60%}.chip{position:relative;width:64px;height:64px;padding:4px;border:none;border-radius:16px;background:#fff;box-shadow:0 3px 8px #0000001f;cursor:pointer}.chip-remove{position:absolute;top:-7px;right:-7px;width:22px;height:22px;border-radius:50%;background:#ff5d5d;color:#fff;font-size:17px;line-height:21px;font-weight:900;text-align:center;box-shadow:0 1px 4px #0000004d;transition:transform .12s ease}.chip:hover .chip-remove,.chip:focus-visible .chip-remove{transform:scale(1.2)}.chip:disabled .chip-remove{display:none}.chip .action-art{border-radius:13px}.chip.highlight{outline:4px solid #ff5d5d;animation:wobble .7s ease infinite}.chip.active{outline:4px solid #ffcf3a;box-shadow:0 0 14px #ffc832f2;transform:scale(1.12);z-index:1}.chip.repeat{position:relative;width:80px;background:#fff7e6;box-shadow:0 3px 8px #0000001f,0 0 0 3px #f4b740}.repeat-badge{position:absolute;left:0;right:0;bottom:3px;display:flex;justify-content:center;gap:3px;pointer-events:none}.repeat-badge .pip{width:7px;height:7px;border-radius:50%;background:#ef8a17;box-shadow:0 0 0 1.5px #fff}.token-tray{display:flex;gap:clamp(14px,4vw,36px);align-items:center;justify-content:center;padding-top:2px}.token{position:relative;width:clamp(84px,16vw,116px);height:clamp(84px,16vw,116px);padding:0;border:none;border-radius:50%;background:transparent;box-shadow:0 5px #0000001f;cursor:pointer;transition:transform .12s ease}.token:active{transform:translateY(3px)}.token.offer{animation:pulse .9s ease infinite}.repeat-tool .action-art{filter:brightness(.82) saturate(.92)}.repeat-tool .repeat-loop{position:absolute;left:50%;top:50%;width:58%;height:58%;transform:translate(-50%,-50%);padding:9%;color:#fff;background:#ef8a17eb;border-radius:50%;box-shadow:0 2px 6px #00000059;pointer-events:none}.action-art{position:relative;width:100%;height:100%;border-radius:50%;display:grid;place-items:center;overflow:hidden}.action-glyph{position:absolute;width:72%;left:14%;bottom:12%;opacity:.5;pointer-events:none}.action-art.jump{background:radial-gradient(circle at 50% 36%,#eafbe1,#a9e08f)}.action-art.climb{background:radial-gradient(circle at 50% 36%,#efe7ff,#bfa9ff)}.action-art.duck{background:radial-gradient(circle at 50% 36%,#ffe9d6,#ffc08a)}.action-art .sprite{width:86%;height:86%}.tap-hint{position:absolute;bottom:-38px;left:50%;width:52px;height:64px;transform:translate(-50%);animation:tapBounce .9s ease infinite;pointer-events:none}.token:disabled,.chip:disabled,.btn:disabled{opacity:.45;cursor:default}.controls{display:flex;gap:clamp(16px,5vw,40px);align-items:center;justify-content:center;padding-top:4px}.btn{display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;cursor:pointer}.btn.go{width:clamp(84px,17vw,120px);height:clamp(84px,17vw,120px);background:#36c46a;box-shadow:0 6px #239a4f}.btn.go:active{transform:translateY(3px);box-shadow:0 3px #239a4f}.btn.secondary{width:72px;height:72px;background:#fff;box-shadow:0 4px #0000001f}.mute-icon{font-size:30px;line-height:1}:focus-visible{outline:4px solid #2b6cff;outline-offset:3px}@keyframes idleBob{0%,to{transform:translateY(0)}50%{transform:translateY(-4%)}}@keyframes walkBob{0%,to{transform:translateY(0)}50%{transform:translateY(-10%)}}@keyframes jumpArc{0%{transform:translateY(0)}45%{transform:translateY(-46%)}to{transform:translateY(0)}}@keyframes climbMove{0%{transform:translateY(8%) rotate(-4deg)}to{transform:translateY(0) rotate(0)}}@keyframes duckSquash{0%,to{transform:scaleY(1)}50%{transform:scaleY(.72)}}@keyframes stumbleWobble{0%{transform:rotate(0)}25%{transform:rotate(-13deg) translateY(4%)}60%{transform:rotate(9deg)}to{transform:rotate(0)}}@keyframes cheerBounce{0%,to{transform:translateY(0)}30%{transform:translateY(-24%)}55%{transform:translateY(0)}72%{transform:translateY(-12%)}90%{transform:translateY(0)}}@keyframes petSquish{0%{transform:scale(1)}30%{transform:scale(1.12,.9)}55%{transform:scale(.94,1.08)}to{transform:scale(1)}}@keyframes earTwitch{0%,84%,to{transform:scaleX(var(--flip)) rotate(0)}88%{transform:scaleX(var(--flip)) rotate(-5deg)}92%{transform:scaleX(var(--flip)) rotate(4deg)}96%{transform:scaleX(var(--flip)) rotate(-1deg)}}@keyframes heartFloat{0%{opacity:0;transform:translateY(0) scale(.6)}30%{opacity:1}to{opacity:0;transform:translateY(-42px) scale(1.1)}}@keyframes winBurst{0%{transform:translate(-50%) scale(.3);opacity:.9}to{transform:translate(-50%) scale(1.7);opacity:0}}@keyframes confettiFall{0%{opacity:0;transform:translateY(-8px) rotate(0)}18%{opacity:1}to{opacity:0;transform:translateY(58px) rotate(240deg)}}@keyframes sunPoke{0%{transform:scale(1)}25%{transform:scale(.82,1.12)}50%{transform:scale(1.1,.9)}72%{transform:scale(.96,1.04)}to{transform:scale(1)}}@keyframes pop{0%{transform:scale(.6);opacity:.4}70%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@keyframes wobble{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}@keyframes tapBounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-10px)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.partner-say .word.spoken{transform:none}}
