.cabp-root{max-width:1100px;margin:0 auto;font-family:inherit;color:#17203b}
.cabp-toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:0 0 12px}
.cabp-toolbar .cabp-title{font-size:clamp(1.15rem,2.2vw,1.65rem);font-weight:800;margin:0}
.cabp-help{font-size:.95rem;opacity:.85}
.cabp-viewport{position:relative;width:100%;overflow:hidden;border-radius:24px;border:3px solid rgba(108,82,174,.24);background:#bfe8ff;box-shadow:0 16px 40px rgba(40,56,96,.13);touch-action:none;user-select:none;-webkit-user-select:none}
.cabp-stage{position:absolute;left:0;top:0;width:1000px;height:707px;overflow:hidden;transform-origin:0 0;background:#bfe8ff;cursor:crosshair}
.cabp-sky{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;z-index:0}
.cabp-cloud-layer,.cabp-bubble-layer,.cabp-projectile-layer,.cabp-falling-layer,.cabp-pop-layer{position:absolute;inset:0;pointer-events:none}
.cabp-cloud-layer{z-index:1}.cabp-bubble-layer{z-index:3}.cabp-projectile-layer{z-index:7}.cabp-pop-layer{z-index:8}.cabp-falling-layer{z-index:9}
.cabp-cloud{position:absolute;left:0;top:0;height:auto;will-change:transform;pointer-events:none;filter:drop-shadow(0 4px 3px rgba(70,100,140,.08))}
.cabp-bubble{position:absolute;left:0;top:0;width:140px;height:140px;transform:translate(-50%,-50%);will-change:transform;pointer-events:none}
.cabp-bubble-shell{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.cabp-bubble-content{position:absolute;left:50%;top:50%;width:66%;height:66%;transform:translate(-50%,-50%);object-fit:contain;pointer-events:none;filter:drop-shadow(0 2px 1px rgba(0,0,0,.07))}
.cabp-bubble[data-kind="friend"] .cabp-bubble-content{width:61%;height:61%}
.cabp-bubble[data-kind="coin"] .cabp-bubble-content{width:53%;height:53%}
.cabp-pop{position:absolute;left:0;top:0;width:180px;height:180px;object-fit:contain;transform:translate(-50%,-50%) scale(.55);opacity:0;animation:cabp-pop .46s ease-out forwards;pointer-events:none}
@keyframes cabp-pop{0%{opacity:.2;transform:translate(-50%,-50%) scale(.45) rotate(-8deg)}35%{opacity:1;transform:translate(-50%,-50%) scale(1.04) rotate(3deg)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.38) rotate(8deg)}}
.cabp-projectile{position:absolute;left:0;top:0;width:54px;height:54px;object-fit:contain;transform:translate(-50%,-50%);will-change:transform;pointer-events:none;filter:drop-shadow(0 3px 2px rgba(0,0,0,.18))}
.cabp-falling{position:absolute;left:0;top:0;width:185px;height:auto;transform:translate(-50%,-50%);will-change:transform;pointer-events:none;filter:drop-shadow(0 5px 4px rgba(0,0,0,.15))}
.cabp-target{position:absolute;z-index:11;left:500px;top:250px;width:106px;height:106px;object-fit:contain;transform:translate(-50%,-50%);pointer-events:none;opacity:.9;filter:drop-shadow(0 2px 2px rgba(255,255,255,.35))}
.cabp-gun-wrap{position:absolute;z-index:10;left:50%;bottom:-286px;width:560px;height:555px;transform:translateX(-50%);transform-origin:50% 78%;pointer-events:none;will-change:transform}
.cabp-gun{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:3;pointer-events:none}
.cabp-ammo{position:absolute;left:50%;top:24px;width:120px;height:230px;transform:translateX(-50%);z-index:2;overflow:hidden;pointer-events:none}
.cabp-ammo-ball{position:absolute;left:50%;width:84px;height:84px;object-fit:contain;transform:translateX(-50%);transition:top .22s ease,transform .22s ease;filter:drop-shadow(0 3px 2px rgba(0,0,0,.12))}
.cabp-ammo-ball:nth-child(1){top:0}.cabp-ammo-ball:nth-child(2){top:64px}.cabp-ammo-ball:nth-child(3){top:128px}
.cabp-ammo.cabp-roll .cabp-ammo-ball:nth-child(1){top:-62px;transform:translateX(-50%) rotate(70deg)}
.cabp-ammo.cabp-roll .cabp-ammo-ball:nth-child(2){top:0;transform:translateX(-50%) rotate(70deg)}
.cabp-ammo.cabp-roll .cabp-ammo-ball:nth-child(3){top:64px;transform:translateX(-50%) rotate(70deg)}
.cabp-hud{position:absolute;z-index:12;left:22px;right:22px;top:18px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;pointer-events:none}
.cabp-card{background:rgba(255,255,255,.92);border:3px solid #6f53ae;border-radius:22px;box-shadow:0 7px 20px rgba(59,59,92,.12);padding:12px 18px;min-width:190px;backdrop-filter:blur(3px)}
.cabp-prompt-letter{font-weight:900;font-size:38px;line-height:1;color:#e85b53;text-align:center;text-transform:uppercase}
.cabp-prompt-label{font-weight:800;font-size:17px;letter-spacing:.05em;text-align:center;margin-top:5px}
.cabp-stats{display:grid;grid-template-columns:auto auto;gap:7px 18px;font-weight:800;font-size:17px}
.cabp-stats span:nth-child(even){text-align:right}
.cabp-feedback{position:absolute;z-index:13;left:50%;top:50%;transform:translate(-50%,-50%);padding:13px 22px;border-radius:18px;background:rgba(255,255,255,.94);border:3px solid #6f53ae;font-weight:900;font-size:24px;box-shadow:0 12px 25px rgba(42,51,78,.15);opacity:0;pointer-events:none;transition:opacity .15s ease}
.cabp-feedback.show{opacity:1}
.cabp-start{position:absolute;z-index:20;inset:0;display:grid;place-items:center;background:rgba(225,244,255,.45);backdrop-filter:blur(3px)}
.cabp-start-panel{max-width:520px;margin:24px;padding:26px 30px;border-radius:26px;background:rgba(255,255,255,.96);border:3px solid #6f53ae;text-align:center;box-shadow:0 18px 45px rgba(46,58,94,.18)}
.cabp-start-panel h3{margin:0 0 12px;font-size:28px}.cabp-start-panel p{margin:8px 0 18px;font-size:17px;line-height:1.45}
.cabp-start-btn{appearance:none;border:0;border-radius:18px;padding:13px 23px;background:#6f53ae;color:#fff;font:inherit;font-weight:900;font-size:19px;cursor:pointer;box-shadow:0 5px 0 #4e387f}
.cabp-start-btn:active{transform:translateY(2px);box-shadow:0 3px 0 #4e387f}
.cabp-complete{position:absolute;z-index:21;inset:0;display:grid;place-items:center;background:rgba(225,244,255,.46);backdrop-filter:blur(3px)}
.cabp-complete[hidden]{display:none}.cabp-complete-panel{max-width:500px;margin:24px;padding:28px;border-radius:26px;background:#fff;border:3px solid #6f53ae;text-align:center;box-shadow:0 18px 45px rgba(46,58,94,.18)}
.cabp-complete-panel h3{font-size:30px;margin:0 0 10px}.cabp-complete-panel p{font-size:18px}.cabp-complete-panel button{margin-top:8px}
@media (max-width:650px){.cabp-toolbar{margin-bottom:8px}.cabp-help{font-size:.86rem}.cabp-card{min-width:150px;padding:9px 12px;border-width:2px}.cabp-prompt-letter{font-size:30px}.cabp-prompt-label,.cabp-stats{font-size:14px}.cabp-hud{left:12px;right:12px;top:10px;gap:8px}}
@media (prefers-reduced-motion:reduce){.cabp-pop{animation-duration:.01ms}.cabp-ammo-ball{transition:none}}

/* v0.2.0 — ten-level progression */
.cabp-level-strip{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:520px}
.cabp-level-btn{appearance:none;border:2px solid #6f53ae;border-radius:12px;background:#fff;color:#4e387f;min-width:42px;min-height:38px;padding:6px 9px;font:inherit;font-weight:900;cursor:pointer;box-shadow:0 2px 0 rgba(78,56,127,.18)}
.cabp-level-btn.active{background:#6f53ae;color:#fff}.cabp-level-btn.earned::after{content:' ✓';font-size:.8em}
.cabp-prompt-card{min-width:220px}.cabp-prompt-word{font-size:20px;font-weight:900;letter-spacing:.06em;text-align:center;color:#4e387f;margin-bottom:4px;text-transform:uppercase}
.cabp-speed{display:inline-block;margin:4px 0 18px;padding:7px 12px;border-radius:999px;background:#eef5ff;color:#4e387f;font-weight:900;font-size:14px}
.cabp-complete-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.cabp-start-btn.cabp-secondary{background:#fff;color:#5b438f;border:2px solid #6f53ae;box-shadow:0 4px 0 #d8cee9}
.cabp-start[hidden]{display:none}
@media(max-width:760px){.cabp-level-strip{justify-content:flex-start;max-width:none;width:100%}.cabp-level-btn{min-width:38px;min-height:36px;padding:5px 7px}.cabp-prompt-card{min-width:155px}.cabp-prompt-word{font-size:16px}}

/* v0.2.1 — shared jewel reward integration */
.cabp-toolbar-right{display:flex;align-items:flex-start;justify-content:flex-end;gap:10px;flex-wrap:wrap;flex:1 1 520px}
.cabp-jewel-hud{display:flex;align-items:center;gap:8px;min-width:245px;padding:7px 10px;border:2px solid #dbe3ef;border-radius:14px;background:#fff;box-shadow:0 2px 0 rgba(78,56,127,.08)}
.cabp-jewel-visual{display:block;width:54px;height:46px;flex:0 0 54px}.cabp-jewel-visual img{width:100%;height:100%;object-fit:contain;display:block;transition:opacity .2s ease}
.cabp-jewel-hud>span:last-child{display:flex;flex-direction:column;line-height:1.15}.cabp-jewel-hud strong{font-size:.9rem}.cabp-jewel-hud small{font-size:.78rem;font-weight:800;color:#526077;margin-top:3px}
.cabp-jewel-hud.earned{border-color:#67a97d;background:#eefaf2}.cabp-jewel-hud.complete{border-color:#d4ad38;background:#fff8d9}
.cabp-jewel-hud.award{animation:cabpJewelAward .8s ease}@keyframes cabpJewelAward{0%{transform:scale(1)}42%{transform:scale(1.1)}100%{transform:scale(1)}}
@media(max-width:760px){.cabp-toolbar-right{justify-content:flex-start;width:100%}.cabp-jewel-hud{width:100%;min-width:0}.cabp-jewel-visual{width:48px;height:42px;flex-basis:48px}}
@media(prefers-reduced-motion:reduce){.cabp-jewel-hud.award{animation:none}}

/* v0.3.0 — compact controls and out-of-reward time trials */
.cabp-toolbar-main{display:flex;flex-direction:column;gap:4px;min-width:220px}
.cabp-toolbar-right{align-items:flex-end;gap:8px}
.cabp-playmode-strip{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:100%}
.cabp-mode-btn{appearance:none;border:2px solid #6f53ae;border-radius:999px;background:#fff;color:#4e387f;padding:6px 12px;font:inherit;font-size:.84rem;font-weight:900;cursor:pointer;box-shadow:0 2px 0 rgba(78,56,127,.18)}
.cabp-mode-btn.active{background:#6f53ae;color:#fff}
.cabp-level-strip[hidden],.cabp-jewel-hud[hidden]{display:none!important}
.cabp-stats{min-width:230px}
.cabp-stats span:nth-child(odd){opacity:.88}
.cabp-stats span:nth-child(even){max-width:125px;justify-self:end;text-align:right}
@media(max-width:920px){.cabp-toolbar-right{justify-content:flex-start;align-items:flex-start;width:100%}.cabp-playmode-strip{justify-content:flex-start}}
@media(max-width:760px){.cabp-mode-btn{font-size:.78rem;padding:6px 10px}.cabp-stats{min-width:180px}}

/* v0.3.1 — keep the playfield visible; controls live in a compact drawer */
.cabp-toolbar{position:relative;margin:0 0 6px;min-height:36px;flex-wrap:nowrap}
.cabp-toolbar-main{gap:1px;min-width:0;flex:1 1 auto}
.cabp-toolbar .cabp-title{font-size:1rem;line-height:1.1}
.cabp-help{font-size:.72rem;line-height:1.1}
.cabp-game-menu{position:relative;flex:0 0 auto;z-index:60}
.cabp-game-menu summary{list-style:none}.cabp-game-menu summary::-webkit-details-marker{display:none}
.cabp-game-menu-summary{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border:2px solid #6f53ae;border-radius:12px;background:#fff;color:#4e387f;padding:7px 11px;font:inherit;font-size:.8rem;font-weight:900;line-height:1.1;box-shadow:0 2px 0 rgba(78,56,127,.16)}
.cabp-game-menu-summary:hover,.cabp-game-menu-summary:focus-visible{background:#f5f0ff;outline:3px solid rgba(111,83,174,.18);outline-offset:2px}
.cabp-game-menu .cabp-toolbar-right{position:absolute;right:0;top:calc(100% + 5px);width:min(720px,88vw);max-height:min(70vh,620px);overflow:auto;display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:12px;background:rgba(255,255,255,.98);border:2px solid #6f53ae;border-radius:16px;box-shadow:0 14px 34px rgba(42,51,78,.2);z-index:61}
.cabp-game-menu .cabp-playmode-strip,.cabp-game-menu .cabp-level-strip{justify-content:flex-start;max-width:none;width:100%}
.cabp-game-menu .cabp-jewel-hud{width:100%;min-width:0}
.cabp-share{background:#e85b53;box-shadow:0 5px 0 #b23d37}
.cabp-share:active{box-shadow:0 3px 0 #b23d37}
@media(max-width:760px){
  .cabp-toolbar{min-height:34px}
  .cabp-toolbar .cabp-title{font-size:.9rem}.cabp-help{font-size:.64rem}
  .cabp-game-menu-summary{font-size:.72rem;padding:6px 9px}
  .cabp-game-menu .cabp-toolbar-right{right:0;width:min(92vw,560px);padding:10px}
}
