/* Pop-specific playfield, movement and celebration. */
.game-title{color:#b36768}.game-main{max-width:1000px}.adventure-label{display:block;font-size:10px;letter-spacing:2px;font-weight:800;color:#867097;margin:14px 0}.game-intro{max-width:720px}.game-intro h2{margin-top:14px}.game-intro .gentle-note{font-size:12px;margin:0}.level-preview{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:25px 0 0}.level-preview li{background:#f0ebe4;border:1px solid #e8e1d8;border-radius:18px;padding:18px 14px}.level-preview li:nth-child(2){background:#eaf0ed;border-color:#dce7e0}.level-preview li:nth-child(3){background:#eee7f6;border-color:#e4d9ef}.level-preview li>span{display:block;font-size:34px;height:48px;color:#8360af;font-weight:800}.level-preview strong{display:block;font-size:14px}.level-preview small{display:block;font-size:11px;margin-top:8px;color:#69616f}.adventure-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 20px}.level-path{list-style:none;display:flex;gap:20px;padding:0;margin:0}.level-path li{display:flex;align-items:center;gap:7px;font-size:12px;color:#746978}.level-path li>span:first-child{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1px solid #dfd3e8;background:#f1eaf7}.level-path li[aria-current]{color:#694491;font-weight:800}.level-path li[aria-current]>span:first-child{background:#7954b2;color:white;border-color:#7954b2}.level-path li.is-done>span:first-child{background:#e3eee7;color:#376a55;border-color:#b8d7c5}.score-pill{font-size:13px;background:#f6ecd6;color:#775b22;border:1px solid #ebdcb9;border-radius:30px;padding:9px 14px;white-space:nowrap}.score-pill>span:first-child{color:#9b752e}.round-heading{margin-bottom:12px}.round-heading h2{font-size:26px;letter-spacing:-.7px;margin:5px 0 0}.level-eyebrow{font-size:9px;letter-spacing:1.7px;font-weight:800;color:#84718e}.round-progress{font-size:14px}.piki-coach{display:flex;align-items:center;gap:10px;min-height:62px;margin:0 0 12px;padding:7px 16px;background:#f1ebf6;border-radius:20px}.piki-coach img{flex-shrink:0}.piki-coach p{font-size:14px;color:#635273;line-height:1.5;margin:0}.next-target{margin-left:auto;display:flex;align-items:center;gap:9px;font-size:12px;white-space:nowrap;color:#665175}.next-target strong{display:grid;place-items:center;width:36px;height:36px;background:#fff;border:1px solid #ded0eb;border-radius:12px;color:#62458d;font-size:24px}.round .balloon-field{position:relative;isolation:isolate;background:radial-gradient(ellipse at 50% 15%,#fffaf1,#f5e8e6);min-height:390px;max-height:560px;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(110px,1fr));gap:8px;padding:18px;overflow:hidden;border:1px solid #efe2dc}.balloon-field:before,.balloon-field:after{content:'';position:absolute;width:200px;height:65px;border-radius:50%;background:#fff7;z-index:-1;pointer-events:none}.balloon-field:before{left:-50px;top:35px;transform:rotate(-20deg)}.balloon-field:after{right:-60px;bottom:40px;transform:rotate(-20deg)}.balloon-slot{position:relative;display:grid;place-items:center;min-width:0;min-height:110px}.pop-target{min-height:0;width:82px;height:96px;padding:0;border-radius:50%;background:none;touch-action:manipulation;z-index:1}.pop-target:hover{background:none}.pop-target:focus-visible{outline:3px solid #65458c;outline-offset:7px}.balloon-shape{width:82px;height:96px;display:grid;place-items:center;box-shadow:inset -8px -5px 0 #0000000b,0 5px 10px #875a6810}.balloon-shape:before{height:23px;width:12px;left:16px;top:12px}.balloon-shape:after{top:95px;left:40px;height:22px;background:#b9a5a1}.balloon-face{font-size:18px;letter-spacing:2px;color:#5b4459;transform:translateY(9px)}.balloon-number{font-size:35px;font-weight:900;color:#392e49;line-height:1;text-shadow:0 1px 0 #ffffff80;transform:rotate(calc(var(--tilt) * -1))}.is-ordered .balloon-shape:before{height:18px;width:9px;left:13px}.pop-target.is-next .balloon-shape{outline:3px dashed #82639f;outline-offset:7px}.show-hint .pop-target.is-next .balloon-shape{outline-width:5px;outline-color:#5a3588;background:#cfb5ec}.is-moving .pop-target{animation:balloon-drift var(--drift-time) ease-in-out var(--drift-delay) infinite}.is-moving .pop-target:focus-visible,.motion-paused .pop-target,.page-paused .pop-target{animation-play-state:paused}.round-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:15px}.round-actions .secondary-button{font-size:13px;min-height:46px;padding:10px 20px}.pop-burst{position:absolute;pointer-events:none;z-index:2;animation:burst-life .75s linear forwards;color:#987139}.pop-burst>span{position:absolute;font-size:26px;animation:spark-out .65s ease-out forwards;--x:-39px;--y:-33px}.pop-burst>span:nth-child(2){--x:35px;--y:-26px;color:#9473bf;font-size:33px}.pop-burst>span:nth-child(3){--x:23px;--y:27px;color:#bd8b80;font-size:21px}.pop-burst>b{display:block;font-size:21px;color:#785098;animation:points-up .7s ease-out forwards}.celebration-piki{position:relative;display:inline-block;margin:20px 0 0}.game-intro .celebration-piki img{width:180px;height:180px}.hurrah{position:absolute;right:-58px;top:-5px;border-radius:20px 20px 20px 3px;border:1px solid #e0d2eb;background:white;color:#7954b2;transform:rotate(9deg);font-weight:800;font-size:22px;padding:12px 18px;z-index:1}.is-celebrating #happy-piki{animation:piki-hurrah .85s ease-in-out 3}.is-celebrating .hurrah{animation:hurrah-in .45s ease-out both}.win-stars{font-size:54px;margin:15px 0;letter-spacing:9px;color:#b48a31}.is-celebrating .win-stars{animation:stars-in .6s .1s backwards}.result-score{display:inline-block;padding:10px 20px;border-radius:30px;background:#f3ead6;color:#7b5d24;font-size:16px;font-weight:700}.celebration .completion-note{margin:16px 0 0}.star-shower{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:20}.star-shower>span{position:absolute;left:var(--left);top:-50px;font-size:var(--size);animation:star-rain var(--duration) ease-in var(--delay) both}.celebration h2:focus{outline:none}
@keyframes balloon-drift{0%,100%{transform:translate(-9px,4px) rotate(-3deg)}25%{transform:translate(8px,-8px) rotate(2deg)}50%{transform:translate(12px,3px) rotate(4deg)}75%{transform:translate(-6px,9px) rotate(-2deg)}}
@keyframes burst-life{0%,80%{opacity:1}100%{opacity:0}}
@keyframes spark-out{from{transform:translate(-50%,-50%) scale(.3);opacity:1}to{transform:translate(var(--x),var(--y)) scale(1);opacity:0}}
@keyframes points-up{from{transform:translate(-50%,-25%);opacity:1}to{transform:translate(-50%,-55px);opacity:0}}
@keyframes piki-hurrah{0%,100%{transform:translateY(0) rotate(-6deg) scale(1)}25%{transform:translateY(5px) rotate(0) scale(1.06,.94)}55%{transform:translateY(-30px) rotate(10deg) scale(.96,1.04)}80%{transform:translateY(0) rotate(-4deg) scale(1.05,.95)}}
@keyframes hurrah-in{from{opacity:0;transform:rotate(-6deg) scale(.6)}to{opacity:1;transform:rotate(9deg) scale(1)}}
@keyframes stars-in{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes star-rain{0%{transform:translateY(-40px) rotate(0);opacity:0}10%{opacity:1}85%{opacity:1}100%{transform:translateY(calc(100dvh + 90px)) rotate(var(--spin));opacity:0}}
@media(max-width:650px){.game-main{padding:16px 12px}.adventure-bar{margin-bottom:16px}.level-path{gap:12px}.step-label{display:none}.level-path li>span:first-child{width:29px;height:29px}.score-pill{font-size:12px;padding:8px 11px}.round-heading h2{font-size:24px}.piki-coach{padding:6px 10px;gap:7px}.piki-coach img{width:38px;height:38px}.piki-coach p{font-size:12px}.next-target{font-size:10px;gap:6px}.next-target strong{width:30px;height:32px;font-size:23px}.round .balloon-field{padding:14px 8px;gap:4px;min-height:370px;grid-template-rows:repeat(3,minmax(108px,1fr))}.balloon-slot{min-height:108px}.pop-target,.balloon-shape{width:66px;height:80px}.balloon-shape:after{top:79px;left:32px;height:18px}.balloon-shape:before{width:10px;height:19px;left:12px}.balloon-number{font-size:30px}.balloon-face{font-size:14px}.pop-target.is-next .balloon-shape{outline-offset:4px}.level-preview{gap:7px}.level-preview li{padding:14px 8px}.level-preview strong{font-size:11px}.level-preview small{font-size:10px;line-height:1.4}.level-preview li>span{font-size:28px;height:40px}.game-intro{padding:14px 4px}.game-intro>img{width:110px;height:110px}.game-intro p{font-size:14px}.game-intro .celebration-piki img{width:145px;height:145px}.hurrah{right:-45px;font-size:19px;padding:10px 14px}.celebration h2{font-size:29px}.round-actions{gap:8px}.round-actions .secondary-button{padding:10px 14px;font-size:12px}}
@media(max-width:360px){.piki-coach{flex-wrap:wrap}.next-target{margin-left:45px}.round .balloon-field{padding-inline:6px}.level-path{gap:8px}.pop-target,.balloon-shape{width:60px;height:76px}.balloon-shape:after{top:75px;left:29px}.balloon-number{font-size:29px}}
@media(max-height:550px) and (orientation:landscape){.game-main{padding:10px 20px}.adventure-bar{margin-bottom:8px}.round-heading h2{font-size:21px}.piki-coach{min-height:44px}.piki-coach img{height:30px;width:30px}.round .balloon-field{min-height:310px;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,92px);padding:10px}.balloon-slot{min-height:92px}.pop-target,.balloon-shape{width:60px;height:74px}.balloon-shape:after{top:73px;left:29px;height:14px}.balloon-number{font-size:29px}}
@media(prefers-reduced-motion:reduce){.star-shower,.pop-burst{display:none}.is-moving .pop-target{animation:none}.celebration #happy-piki{transform:none}}
/* Level selection and a wider horizontal chase in level 2. */
.level-preview li{padding:0;overflow:visible}.level-preview button{display:block;width:100%;height:100%;padding:18px 14px;border:0;background:none;border-radius:18px;color:inherit}.level-preview button>span{display:block;font-size:34px;height:48px;color:#8360af;font-weight:800}.level-preview button:not(:disabled):hover{background:#ffffff66}.level-preview button:disabled{opacity:.55}.level-preview small{line-height:1.5}.round .wide-drift{grid-template-columns:1fr}.wide-drift .balloon-slot{grid-column:1;display:block}.wide-drift .pop-target{position:absolute;left:4px;top:calc(50% - 48px);animation:balloon-sweep var(--sweep-time) ease-in-out var(--sweep-delay) infinite alternate}.wide-drift .pop-target:focus-visible,.wide-drift.motion-paused .pop-target,.wide-drift.page-paused .pop-target{animation-play-state:paused}
@keyframes balloon-sweep{from{transform:translateX(0)}to{transform:translateX(var(--travel-x,0px))}}
@media(max-width:650px){.level-preview button{padding:14px 8px}.level-preview button>span{font-size:28px;height:40px}.wide-drift .pop-target{top:calc(50% - 40px)}}
@media(prefers-reduced-motion:reduce){.wide-drift .pop-target{animation:none;left:calc(50% - 41px)}}

.is-ordered .balloon-slot{--number-travel:clamp(6px,calc((100vw - 290px)/12),60px)}.is-ordered .pop-target{animation-name:numbered-wander}@keyframes numbered-wander{0%,100%{transform:translate(calc(-1 * var(--number-travel)),0)}25%{transform:translate(0,-22px)}50%{transform:translate(var(--number-travel),0)}75%{transform:translate(0,22px)}}

.round .is-ordered{min-height:510px;grid-template-rows:repeat(3,minmax(148px,1fr))}
