.catch-game{justify-items:stretch;gap:18px;width:100%;display:grid}.catch-game--hurt .catch-stage-wrap{animation:.45s catch-shake}.catch-game--hurt .catch-stage-wrap:after{content:"";pointer-events:none;background:#c4453647;animation:.45s catch-flash;position:absolute;inset:0}@keyframes catch-shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}@keyframes catch-flash{0%{opacity:.85}to{opacity:0}}.catch-stat--combo{position:relative}.catch-combo-badge{color:#071b3b;background:#f6cb61;border:2px solid #203249;padding:2px 6px;font-size:11px;font-weight:900;position:absolute;top:6px;right:8px;box-shadow:2px 2px #20324940}.catch-lives-hearts{letter-spacing:0;gap:4px;font-size:18px;display:inline-flex}.catch-heart--on{color:#e85d75}.catch-heart--off{color:#425168;opacity:.45}.catch-lives--loss .catch-heart--on{animation:.5s catch-heart-pop}@keyframes catch-heart-pop{0%{transform:scale(1)}35%{color:#c44536;transform:scale(1.35)}to{transform:scale(1)}}.catch-fx-pop{pointer-events:none;animation:.55s forwards catch-pop}.catch-fx-points{pointer-events:none;animation:.85s forwards catch-float-up}.catch-fx-points-text{font:900 14px/1 var(--pixel-font,system-ui);fill:#fff8e9;stroke:#203249;stroke-width:3px;paint-order:stroke}@keyframes catch-pop{0%{opacity:1;transform:scale(.6)}to{opacity:0;transform:scale(1.6)}}@keyframes catch-float-up{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-28px)}}@media (prefers-reduced-motion:reduce){.catch-game--hurt .catch-stage-wrap,.catch-game--hurt .catch-stage-wrap:after,.catch-fx-pop,.catch-fx-points,.catch-lives--loss .catch-heart--on{animation:none}.catch-game--hurt .catch-stage-wrap:after{opacity:0}}.catch-playfield{box-sizing:border-box;gap:18px;width:100%;max-width:400px;margin-inline:auto;display:grid}@media (min-width:721px){.catch-playfield{width:min(100%,400px);min-width:360px;max-width:400px}}.catch-hud{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.catch-stat{border:2px solid var(--pixel-ink);background:var(--pixel-panel);padding:10px 12px;box-shadow:3px 3px #263b3620}.catch-stat span{color:var(--pixel-muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:800;display:block}.catch-stat strong{font-size:20px;font-weight:900}.catch-stage-wrap{aspect-ratio:320/480;border:3px solid var(--pixel-ink);touch-action:none;background:#1a1228;width:100%;position:relative;box-shadow:6px 6px #263b3626}.catch-stage{width:100%;height:100%;image-rendering:pixelated;-webkit-user-select:none;user-select:none;display:block}.catch-overlay{text-align:center;background:#1a1228c7;place-content:center;gap:12px;padding:24px;display:grid;position:absolute;inset:0}.catch-overlay--won{place-content:start center;gap:10px;max-height:72%;margin-top:auto;padding:16px;overflow-y:auto}.catch-controls--won{justify-content:center}.catch-overlay h2{color:#fff8e9;margin:0;font-size:28px;font-weight:900}.catch-overlay p{color:#efeadf;margin:0;line-height:1.6}.catch-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.catch-controls button{min-height:44px}.catch-level-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;display:grid}.catch-level-card{border:2px solid var(--pixel-ink);background:var(--pixel-panel);text-align:left;cursor:pointer;min-height:88px;padding:12px;box-shadow:3px 3px #263b3620}.catch-level-card[data-locked=true]{opacity:.55;cursor:not-allowed}.catch-level-card[data-selected=true]{background:var(--pixel-sage);border-color:var(--pixel-pine)}.catch-level-card strong{font-size:16px;display:block}.catch-level-card-line{color:var(--pixel-muted);margin-top:4px;font-size:13px;line-height:1.4;display:block}.catch-level-grid--overlay{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;max-height:min(42vh,220px);overflow-y:auto}.catch-level-grid--overlay .catch-level-card{min-height:72px;padding:8px 10px;font-size:13px}.catch-level-grid--overlay .catch-level-card strong{font-size:14px}.catch-mobile-pad{grid-template-columns:1fr 1fr;gap:10px;max-width:400px;margin-inline:auto;display:none}@media (max-width:720px){.catch-playfield{max-width:none}.catch-hud{grid-template-columns:repeat(2,minmax(0,1fr))}.catch-mobile-pad{max-width:none;display:grid}}.catch-stage-wrap{border-color:#35455f;box-shadow:0 0 0 2px #c99a55,6px 6px #17243a38}.catch-stat{background:#f5e8cf;border-color:#665443;box-shadow:inset 0 -3px #dfc8a1}.catch-level-card{background:#f8eedb;padding:6px;overflow:hidden}.catch-level-card[data-locked=true]{opacity:.8}.catch-level-card[data-selected=true]{outline-offset:1px;background:#e3eecf;outline:2px solid #51735b}.catch-level-card strong{align-items:center;gap:4px;margin-top:5px;font-size:14px;display:flex}.catch-level-thumb{background:#12243a;border:2px solid #34435a;height:76px;display:block;overflow:hidden}.catch-level-thumb svg{width:100%;height:100%;image-rendering:pixelated}.catch-level-card-line{font-size:12px}.catch-level-card-line>span{vertical-align:middle;display:inline-flex}.catch-legend{color:#fff2d5;background:#182b40;border:2px solid #d1a26a;justify-content:space-between;gap:6px;padding:8px 4px;font-size:12px;font-weight:700;display:flex}.catch-legend>span{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.catch-legend svg{width:28px;height:28px;image-rendering:pixelated}.catch-overlay.arcade-overlay-ink{background:0 0;color:var(--pixel-ink,#263b36)!important}.catch-overlay.arcade-overlay-ink h2{text-shadow:none;font-size:24px;color:var(--pixel-ink,#263b36)!important}.catch-overlay.arcade-overlay-ink p{color:var(--pixel-ink,#263b36)!important}.catch-bonus-legend{opacity:.9;justify-content:center;gap:10px;padding:4px 8px 8px;display:flex}.catch-bonus-legend__item{image-rendering:pixelated;align-items:center;display:inline-flex}.catch-overlay button{min-height:44px}.catch-overlay--won .catch-level-thumb{height:38px}.catch-mobile-pad button{min-height:48px}.catch-game button:focus-visible{outline-offset:3px;outline:3px solid #df9a31}.catch-item-art--treat{filter:drop-shadow(0 0 1px #fff1b0)}.catch-fx-pop{transform-box:fill-box;transform-origin:50%}@media (max-width:360px){.catch-level-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catch-level-card strong{font-size:13px}.catch-overlay{padding:12px}.catch-legend,.catch-level-card-line{font-size:11px}}@media (prefers-reduced-motion:reduce){.catch-fx-pop,.catch-fx-points{opacity:1}.catch-game--hurt .catch-stage-wrap{outline:3px solid #db718b}}.catch-stat--goal .arcade-progress-bar{width:100%;max-width:100%;margin-top:6px}
