@charset "UTF-8";
.cabinet,.cabinet *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
#stage{overscroll-behavior:contain}#stage canvas{-webkit-user-drag:none}
:root{font-family:Inter,"Yu Gothic UI",Meiryo,sans-serif;color:#173d43;background:#f4efdf;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 12% 20%,#f9dcb4 0,transparent 34%),radial-gradient(circle at 80% 85%,#cbe3d4 0,transparent 37%),#f4efdf}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:3px solid #fa6b41;outline-offset:3px}button:disabled{cursor:default;opacity:.45}.arcade{max-width:1150px;margin:auto;min-height:100svh;display:flex;align-items:center;justify-content:center;gap:90px;padding:30px}.intro{width:370px;flex-shrink:0}.brand{font-size:13px;font-weight:900;letter-spacing:2px;display:flex;align-items:center;gap:9px}.paw{font-size:34px;color:#f46746}.brand-sub{margin-left:auto;font-size:9px;letter-spacing:1px}.eyebrow{font-size:10px;letter-spacing:2.4px;font-weight:800;margin:52px 0 15px;color:#587877}.nyan{font-size:20px;font-weight:900;letter-spacing:3px;margin:0 0 7px}h1{font-family:Impact,"Arial Black",sans-serif;font-size:114px;letter-spacing:-3px;line-height:.83;margin:0;position:relative;transform:rotate(-4deg);text-shadow:4px 5px 0 #f4efdf,6px 7px 0 #173d43;width:max-content}h1 span{color:#f56945}h1 i{font-size:68px;position:absolute;right:-60px;top:0;color:#f7b734;font-style:normal;text-shadow:none}.lead{font-size:25px;font-weight:900;line-height:1.45;margin:30px 0 12px}.description{font-size:12px;line-height:1.9;color:#56706c}.instruction{display:flex;gap:14px;border-top:1px solid #173d4328;align-items:center;padding:11px 0}.instruction>b{font-size:12px;background:#173d43;color:#fff7e8;border-radius:50%;width:29px;height:29px;text-align:center;padding-top:6px}.instruction p{font-size:11px;line-height:1.8;margin:0;color:#55716c}.instruction strong{font-size:12px;color:#173d43}.edition{font-size:8px;letter-spacing:1px;display:flex;gap:6px;margin-top:25px}.edition>span:first-child{color:#f66e45}.edition>span:last-child{margin-left:auto}.cabinet{width:min(450px,calc((100svh - 90px)*.6154));flex-shrink:0;background:#173d43;padding:9px;border-radius:23px;box-shadow:0 16px 0 #0c2930,0 30px 65px #173d4333;user-select:none}.cabinet-top{height:32px;display:flex;align-items:center;justify-content:space-between;color:#fff8df;font-size:10px;padding:0 5px 8px}.cabinet-top b{letter-spacing:1px}.cabinet-top>div{display:flex;gap:4px}.cabinet-top button{color:#fff8df;background:#ffffff14;border:1px solid #ffffff25;border-radius:5px;font-size:9px;padding:4px 6px}#stage{position:relative;aspect-ratio:480/780;overflow:hidden;border-radius:10px;background:#81d8d9;touch-action:none}canvas{width:100%;height:100%;display:block}.hud{position:absolute;top:14px;left:17px;right:17px;display:flex;justify-content:space-between;pointer-events:none}.hud small{font-weight:900;letter-spacing:1.5px;font-size:8px;display:block;color:#22444c}.hud strong{font-family:"Arial Black",sans-serif;display:block;font-size:22px;line-height:1.2;color:#163c44}.hud-right{text-align:right}.hud-right strong{color:#f26659;font-size:17px;letter-spacing:1px;margin-top:4px}.cabinet-foot{height:21px;color:#b9d2c9;display:flex;justify-content:space-between;padding:8px 7px 0;font-size:7px;letter-spacing:1.1px}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#12404d1c;backdrop-filter:blur(3px);z-index:5}.overlay[hidden]{display:none}.start-card{background:#fff7e8f5;border:2px solid #173d43;border-radius:19px;box-shadow:7px 7px 0 #173d43;width:84%;padding:26px 20px;text-align:center;transform:rotate(-2deg)}.ticket{font-size:8px;letter-spacing:1.2px;font-weight:900;border-bottom:1px dashed #173d4360;padding-bottom:12px}h2{font-family:Impact,"Arial Black",sans-serif;font-size:69px;line-height:.86;letter-spacing:-1px;margin:25px 0;color:#173d43}h2 span{display:block;color:#f46949}.start-card p{font-size:12px;line-height:1.9;font-weight:700}.play{width:100%;background:#f56a44;color:#fff9e9;border:2px solid #173d43;border-radius:10px;font-size:19px;font-weight:900;box-shadow:0 4px 0 #173d43;padding:14px 10px;margin-top:12px}.play span{float:right;margin-right:7px}.play:hover{background:#e85935}.play:active{transform:translateY(3px);box-shadow:0 1px 0 #173d43}.start-card .start-note{font-size:9px;color:#687d78;margin:16px 0 0}.bottom-ui{position:absolute;bottom:13px;left:15px;right:15px;display:flex;justify-content:space-between;align-items:end;pointer-events:none}.bottom-ui>div{background:#fff8e6dc;border:1px solid #163d4330;border-radius:8px;padding:8px 11px}.bottom-ui b{font-size:11px;display:block}.bottom-ui span{font-size:9px;display:block;margin-top:3px}#bomb{pointer-events:auto;border:2px solid #173d43;border-radius:14px;background:#ffe27d;color:#173d43;box-shadow:0 4px 0 #173d43;padding:7px 15px;min-width:85px}#bomb>span{font-size:27px;line-height:1;margin:0}#bomb small{font-size:7px;letter-spacing:.5px}#bomb.ready{animation:breathe 1.4s ease-in-out infinite}#combo{position:absolute;top:77px;left:19px;pointer-events:none;display:none;color:#f35d45;transform:rotate(-7deg);text-shadow:2px 2px #fff9e7}#combo b{font-family:Impact,"Arial Black",sans-serif;font-size:46px;line-height:.9}#combo span{display:block;letter-spacing:2px;font-size:10px;font-weight:900}#power{position:absolute;top:78px;right:13px;display:flex;gap:4px;flex-direction:column;align-items:end;pointer-events:none}#power span{font-size:8px;font-weight:900;background:#173d43;color:#fff8e8;padding:5px 7px;border-radius:5px}#toast{position:absolute;top:41%;width:100%;text-align:center;font-weight:1000;font-size:24px;color:#fff9e9;text-shadow:2px 2px #173d43,-1px -1px #173d43;pointer-events:none;opacity:0;transition:opacity .12s;transform:rotate(-5deg)}#toast.show{opacity:1}#boss-hud{position:absolute;top:60px;left:12%;width:76%;text-align:center}#boss-hud span{font-size:10px;font-weight:900;letter-spacing:1px;text-shadow:0 1px #fff8e8}#boss-hud>div{height:13px;border:2px solid #173d43;border-radius:7px;background:#fff8e8;overflow:hidden;margin-top:4px;box-shadow:0 2px 0 #173d4355}#boss-life{display:block;height:100%;width:100%;background:#43c7aa;transition:width .12s linear,background .2s ease,box-shadow .2s ease}#result{font-size:11px;line-height:2}#result strong{display:block;font-size:30px;color:#f26847}.reduced #bomb.ready{animation:none}@keyframes breathe{50%{box-shadow:0 4px 0 #173d43,0 0 0 5px #ffe27d50}}@media(max-width:1050px){.arcade{gap:28px;padding:20px}.intro{width:280px}h1{font-size:95px}.brand-sub{display:none}.eyebrow{margin-top:30px;letter-spacing:1px}.lead{font-size:21px}.instruction p{font-size:10px}}@media(max-width:640px){body{background:#173d43}.arcade{padding:0;min-height:100svh}.intro{display:none}.cabinet{width:min(100vw,calc((100svh - 53px)*.6154));padding:0;border-radius:0;box-shadow:none}.cabinet-top{height:32px;padding:4px 8px}#stage{border-radius:0}.cabinet-foot{padding:7px 8px 0}.cabinet-top button{font-size:10px}.cabinet-top>span{font-size:11px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Keep scores and upgrades clear of the active field. */
.hud{top:0;left:0;right:0;padding:14px 17px 12px;background:linear-gradient(#e6faf1f5,#e6faf1bb,transparent)}
#power{top:145px;right:9px}


#danger-strip{position:absolute;top:53px;left:12px;right:12px;text-align:center;border-radius:5px;background:#fff3dce8;color:#375455;font-size:9px;font-weight:900;padding:5px;pointer-events:none}
#danger-strip.warning{background:#d94932;color:#fff5d6}
.cat-effort #danger-strip{top:143px}
#boss-hud{top:98px;left:9%;width:52%}
#power{top:151px}


.edge-marker{position:absolute;left:14px;background:#173d43ed;color:#fff4cb;font-size:9px;font-weight:900;border-radius:5px;padding:5px 8px;pointer-events:none}.edge-marker:empty{display:none}#above{top:82px}#below{bottom:94px}#tower-level{position:absolute;bottom:15px;left:132px;font-size:8px;color:#fff9df;font-weight:900;pointer-events:none}


@media(min-width:641px){.arcade{align-items:flex-start}.cabinet{position:sticky;top:20px}.intro{padding-top:15px}}


#tower-level{top:122px;right:10px;bottom:auto;left:auto;background:#fff3dbdf;color:#315157;padding:4px 6px;border-radius:4px}


/* Keep every status label out of the right-hand cat and gondola lane. */
.hud{padding:8px 14px 6px}.hud strong{font-size:20px}.hud-right strong{font-size:15px}
#danger-strip{left:12px;right:auto;width:66%;font-size:8px;text-align:left;top:49px}
#boss-hud{top:96px;left:14px;width:58%;pointer-events:none}
#tower-level{top:123px;left:14px;right:auto}
#power{top:147px;left:14px;right:auto;align-items:start}
#above{top:73px}#combo{top:213px}


#rock-alert{position:absolute;left:5%;right:5%;top:31%;padding:13px 8px;border:2px solid #ed9638;border-radius:10px;background:#fff2c2ce;color:#693817;text-align:center;pointer-events:none;box-shadow:0 0 0 5px #eeae3725;z-index:2}
#rock-alert[hidden]{display:none}#rock-alert strong{display:block;font-size:clamp(14px,3vw,21px)}#rock-alert span{display:block;font-size:10px;margin-top:5px}#rock-alert.critical{background:#922c29d9;color:#fff3ce;border-color:#ffdc6a;box-shadow:0 0 0 8px #ec4b3035}
#danger-strip{background-image:linear-gradient(#e9ac5270,#e9ac5270);background-repeat:no-repeat}
#combo{top:255px}

#boss-name{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:8px;letter-spacing:0}#power{flex-flow:row wrap;max-width:65%;gap:3px}#power span{font-size:7px;padding:4px 5px}

#result .final-score{font-size:34px;line-height:1.15;margin:8px 0 12px}.final-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:4px 0 8px}.final-stats b{display:flex;flex-direction:column;justify-content:center;min-height:68px;border:1px solid #173d4340;border-radius:9px;background:#fffdf4;font-size:10px;line-height:1.25}.final-stats em{display:block;color:#f26847;font-family:"Arial Black",sans-serif;font-size:25px;font-style:normal;line-height:1.1}.final-combo{font-size:10px;font-weight:900;letter-spacing:.5px;color:#58706e}

.bottom-ui{gap:5px}.bottom-ui>div{padding:8px 9px}.bottom-ui b{font-size:10px}#bomb,#cat-push{pointer-events:auto;border:2px solid #173d43;border-radius:12px;color:#173d43;box-shadow:0 4px 0 #173d43;padding:6px 9px;min-width:78px}#bomb{background:#ffe27d}#cat-push{background:#bce4bd}#bomb>span,#cat-push>span{font-size:22px;line-height:1;margin:0}#bomb small,#cat-push small{display:block;font-size:7px;letter-spacing:.4px}#bomb.ready,#cat-push.ready{animation:breathe 1.4s ease-in-out infinite}.reduced #cat-push.ready{animation:none}@media(max-width:640px){.bottom-ui{left:8px;right:8px}.bottom-ui>div{padding:6px}#bomb,#cat-push{min-width:72px;padding:5px 6px}}
.bottom-ui[hidden]{display:none}

/* Boss announcements stay readable while item pickups keep using the center toast. */
#boss-toast{position:absolute;left:18px;right:18px;bottom:104px;z-index:4;padding:10px 14px;border:2px solid #fff0c3;border-radius:9px;background:#173d43e8;color:#fff4c9;text-align:center;font-size:15px;font-weight:1000;letter-spacing:.5px;text-shadow:0 2px #0b2328;box-shadow:0 5px 0 #0b2930aa,0 0 18px #f46b4933;pointer-events:none;opacity:0;transform:translateY(8px);transition:opacity .15s,transform .15s}
#boss-toast.show{opacity:1;transform:translateY(0)}
#boss-toast.final-verse{bottom:46px;transition:none;padding:13px 16px;background:#080913f5;border-color:#ff765f;color:#fff7dc;font-size:16px;line-height:1.45;text-shadow:0 2px #000,0 0 10px #ff493d99;box-shadow:0 5px 0 #03070aaa,0 0 25px #ff382d66}
#boss-toast.final-taunt{top:145px;bottom:auto;padding:12px 16px;background:#fff4d9fa;border-color:#ef4c48;color:#3d2020;font-size:15px;line-height:1.45;text-shadow:none;box-shadow:0 5px 0 #5c2224aa,0 0 24px #ff4e3e55}
#boss-toast.final-death{bottom:118px;padding:13px 16px;background:#17090df5;border-color:#ff513f;color:#fff0cf;font-size:16px;line-height:1.5;text-shadow:0 2px #000,0 0 11px #ff3e33aa;box-shadow:0 5px 0 #050205cc,0 0 28px #ff382d77}
#boss-hud>div{height:19px;border-radius:10px;border-width:3px}
#boss-hud span{font-size:11px}
#boss-hud.final{left:4%;width:92%;top:91px}
#boss-hud.final>div{height:29px;border-radius:15px;border-width:4px;box-shadow:0 3px 0 #173d4377,0 0 16px #ff526b55}
#boss-hud.final span{font-size:14px;letter-spacing:1.4px}
@media(max-width:640px){#boss-toast{left:10px;right:10px;bottom:94px;font-size:14px;padding:9px 10px}#boss-toast.final-taunt{top:142px;bottom:auto;font-size:14px}#boss-toast.final-death{bottom:112px;font-size:15px}}

/* Keep weapon levels and remaining time in the lower left play area. */
#power{top:auto;bottom:12px;left:8px;right:178px;max-width:none;display:flex;flex-flow:column nowrap;align-items:stretch;gap:3px;padding:4px;border:1px solid #fff8e680;border-radius:8px;background:#173d438a;box-shadow:0 3px 0 #12303977;z-index:3}
#power[hidden]{display:none}
#power span{display:block;margin:0;padding:3px 5px;font-size:7px;line-height:1.2;white-space:normal;overflow-wrap:anywhere}
#power span.base-shot{background:#fff8e6;color:#173d43}
.bottom-ui{left:auto;right:8px;bottom:12px;justify-content:flex-end;gap:5px}
@media(max-width:360px){#power{right:165px}#power span{font-size:6px;padding:3px 4px}#bomb,#cat-push{min-width:68px;padding:4px 5px}}

/* A small local-only record inside the existing start/result card. */
.start-card .personal-best{font-size:10px;line-height:1.45;white-space:pre-line;margin:8px 0;color:#245c5e}
.overlay{overflow-y:auto}.start-card{max-height:100%;overflow-y:auto}
/* SLO-NYAN GAME COLLECTION: shared exterior only; game layout stays native. */
.series-band{width:100%;background:#24172f;color:#fff6e6;border-bottom:2px solid #f2b84b;box-shadow:0 5px 16px #173d4330;position:relative;z-index:20}.series-band__inner{width:min(100%,1150px);min-height:44px;margin:auto;padding:5px 30px;display:flex;align-items:center;justify-content:space-between;gap:14px}.series-mark{display:flex;align-items:center;gap:8px}.series-mark__icon{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:#e95767;color:#fff;font-size:19px;line-height:1}.series-mark div,.series-game{display:flex;flex-direction:column;gap:1px}.series-mark b{font-size:13px;line-height:1.15;letter-spacing:.06em}.series-mark small,.series-game small{font-size:6px;line-height:1;letter-spacing:.16em;color:#d9b66c}.series-game{text-align:right}.series-game strong{font-size:13px;line-height:1.1;letter-spacing:.1em;color:#fff}.series-note{width:min(100% - 40px,1090px);margin:0 auto 18px;padding:11px 0 0;border-top:1px solid #173d4328;text-align:center;font-size:8px;line-height:1.65;color:#6f827e}.series-note b{color:#385c59;letter-spacing:.08em;margin-right:8px}body:has(#overlay[hidden])>.series-note{display:none}.arcade{min-height:calc(100svh - 44px)}
@media(max-width:640px){.series-band__inner{min-height:40px;padding:4px 10px}.series-mark{gap:6px}.series-mark__icon{width:23px;height:23px;font-size:16px}.series-mark b{font-size:10px}.series-mark small,.series-game small{font-size:5px}.series-game strong{font-size:10px}.series-note{width:calc(100% - 20px);margin-bottom:8px;padding-top:7px;font-size:6px;color:#b9d2c9;border-color:#ffffff22}.series-note b{display:none}.arcade{min-height:calc(100svh - 40px)}}

.series-back{display:block;width:max-content;max-width:100%;margin:0 auto;padding:0 12px 4px;min-height:24px;box-sizing:border-box;font-size:11px;line-height:20px;color:#f5db9c;text-decoration:underline;text-underline-offset:3px;touch-action:manipulation}.series-back:hover{color:#fff6e6}.series-back:focus-visible{outline:2px solid #f2b84b;outline-offset:1px}
