/* The three cards belong to the arena, with the kitten visible behind them. */
.start-guide[hidden]{display:none!important}
.start-guide{position:absolute;z-index:30;left:50%;bottom:18px;transform:translateX(-50%);width:calc(100% - 32px);max-width:390px;padding:19px;border:1px solid #ddcbbb;border-radius:22px;background:#fffaf2f5;box-shadow:0 12px 36px #643f2524;animation:guide-appear .22s ease-out}
.guide-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.guide-top .eyebrow{font-size:9px;color:var(--muted);letter-spacing:1px}.guide-dots{display:flex;gap:5px}.guide-dots i{height:5px;width:5px;border-radius:50%;background:#d9d1c3}.guide-dots .active{width:18px;background:var(--red)}
.guide-content{display:flex;align-items:center;gap:13px;min-height:96px}.guide-content h2{font:600 19px/1.2 var(--sans);letter-spacing:-.6px;margin:0 0 6px}.guide-content p{font-size:12px;line-height:1.5;margin:0;color:#71685b}.guide-art{width:54px;height:54px;flex:none;display:grid;place-items:center;position:relative;border-radius:15px;background:#eee5d5;color:var(--red);font-size:37px}.guide-art svg{width:32px;height:32px}.guide-tap i{position:absolute;bottom:8px;border:1px solid var(--red);width:23px;height:9px;border-radius:50%;opacity:.5}.guide-target img{width:42px;transform:rotate(-45deg)}.guide-gift{font-size:28px;font-weight:600}.guide-gift small{font-size:12px;margin-top:-18px}.guide-next{width:100%;min-height:52px;font-size:18px;justify-content:center}.guide-next svg{width:20px}
.before-start .play-panel>.balance-row,.before-start .play-panel>.hit-btn,.before-start .play-panel>.super-btn,.before-start .play-panel>.buy-btn,.before-start .play-panel>.cooperate{display:none!important}.before-start .scene-tap{visibility:hidden}.before-start .target-wrap{opacity:0;pointer-events:none}.hammer{display:none!important}.before-start .cat-wrap{translate:0 -65px;animation:welcome-float 3.5s ease-in-out infinite}.before-start .public-ranking{opacity:.32;pointer-events:none}.before-start .cat-shadow{opacity:.25;scale:.85}
.cat-wrap .cat-playing{display:none}.game-started .cat-wrap>img:first-child{display:none}.game-started .cat-wrap .cat-playing{display:block}.game-started .cat-wrap{animation:none;translate:0 0;rotate:0deg;transition:translate .4s ease-out;transform-origin:47% 92%}.game-started .hitting .cat-wrap{animation:kitten-strike .38s ease-in-out}.game-started .super-hitting .cat-wrap{animation:kitten-strike .65s ease-in-out}
.target-wrap{--hit-depth:96px;translate:0 calc(var(--hit-sink,0) * var(--hit-depth));transition:translate .2s ease-out,opacity .4s;bottom:105px;left:305px;right:auto;z-index:2}.target{padding:5px;background:#fff;border:1px solid #c9c2b4;border-radius:2px;box-shadow:3px 4px 0 #bcb29d,5px 7px 10px #573b2326;transform:rotate(-45deg);width:145px;height:86px;display:grid;place-items:center}.target img{width:100%;height:100%;object-fit:contain}.target:before,.target:after{display:none}.hitting .target{animation:psd-impact .38s ease-in-out}.super-hitting .target{animation:psd-impact .65s ease-in-out}.final-scene .target{transform:rotate(-45deg)!important}.final-scene .target-wrap{translate:0 200px}.impact{top:auto;bottom:142px;left:290px;right:auto}.particle{top:auto;bottom:138px;left:330px}
/* A continuous five-row list on every screen; examples carry no invented score. */
.ticker-window{height:200px;overflow:hidden;position:relative}.public-ranking-list{height:auto;max-height:none;overflow:visible}.public-ranking-list li{height:40px;min-height:40px;max-height:40px;padding:0;border:0}.ticker-moving{animation:ranking-pass var(--ticker-seconds,190s) linear infinite;will-change:transform}.ticker-window:focus-within .ticker-moving{animation-play-state:paused}.ranking-demo-label{font-size:8px;letter-spacing:0;text-transform:none}.rank-explainer,.ranking-footnote{display:none}.full-ranking-list{height:50dvh!important;max-height:none;overflow:auto}.full-ranking-list li{height:40px;min-height:40px}
@keyframes ranking-pass{to{transform:translateY(calc(var(--ticker-count) * -40px))}}
@keyframes welcome-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes kitten-strike{0%,100%{transform:translate(0,0) rotate(0deg)}44%{transform:translate(38px,18px) rotate(32deg)}65%{transform:translate(38px,18px) rotate(32deg)}}
@keyframes psd-impact{0%,100%{transform:rotate(-45deg)}45%{transform:rotate(-42deg) translateY(4px)}70%{transform:rotate(-47deg)}}
@keyframes guide-appear{from{opacity:0;translate:0 7px}to{opacity:1;translate:0 0}}
@media(max-width:800px){
 html,body{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto}.app-shell{height:auto;min-height:100svh;overflow:visible;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}main{flex:1}.intro{padding:16px 0}.mission{padding-bottom:25px}.game-layout{flex:1}.play-column{flex:1}.scene,.before-start .scene{height:clamp(310px,44svh,440px);min-height:310px;flex:1;overflow:hidden}.before-start .scene{min-height:365px}.public-ranking{top:-15px;width:140px}.public-ranking h2{font-size:25px}.public-ranking .ranking-demo-label{display:block;font-size:7px;background:none;padding:0;margin:0 0 5px;color:#938674;line-height:1.3}.ticker-window{height:110px}.public-ranking-list li{height:22px;min-height:22px;max-height:22px;gap:4px}.ticker-moving{animation-name:ranking-pass-mobile}.public-position{font-size:8px;width:14px}.public-nickname,.public-ranking-list strong{font-size:9px}.rank-avatar{width:16px;height:16px;font-size:7px}
 .character-layer{width:280px;height:320px;transform-origin:left bottom}.cat-wrap{height:288px;width:230px;left:0;bottom:27px}.game-started .cat-wrap{width:250px;height:313px;left:-12px;bottom:26px}.before-start .cat-wrap{translate:0 -70px}.cat-shadow{left:19px;bottom:26px;width:170px}.ground-back{bottom:-5px;height:52px}.ground-front{bottom:-57px;height:91px}.target-wrap{--hit-depth:82px;left:calc(205px * var(--actor-scale,.8));bottom:53px;transform:none;width:98px;height:58px}.target{width:98px;height:58px;padding:3px}.impact{bottom:99px;left:calc(205px * var(--actor-scale,.8));font-size:26px}.particle{bottom:90px;left:calc(230px * var(--actor-scale,.8))}
 .start-guide{bottom:15px;padding:16px;max-width:390px;width:calc(100% - 16px);border-radius:20px}.guide-content{min-height:94px}.guide-content h2{font-size:18px}.guide-content p{font-size:12px}.guide-next{min-height:53px;font-size:20px}.play-panel{padding:18px 0 12px;min-height:154px;align-content:start}.before-start .play-panel{min-height:95px;padding-top:14px}.balance-row{margin-bottom:12px}.hit-btn{min-height:64px;font-size:23px}.guide-next{min-height:53px;font-size:20px}.personal-stat{margin-top:15px;line-height:23px}.personal-stat b{font-size:18px}.ranking-complete-toggle{min-height:42px}.ranking-complete-toggle small{font-size:8px}.bottom-nav{padding:4px 0 10px}.bottom-nav button{min-height:44px}.cooperating .scene{min-height:280px}.rank-details-open .scene{min-height:250px}.rank-details-open .play-panel{min-height:300px}.rank-details-open .public-ranking{visibility:hidden}.inline-ranking-list li{height:32px}.full-ranking-list li{height:40px;min-height:40px}
}
@keyframes ranking-pass-mobile{to{transform:translateY(calc(var(--ticker-count) * -22px))}}
@media(max-width:370px){.public-ranking{width:126px}.guide-content{gap:10px}.guide-art{width:44px;height:48px;font-size:30px}.guide-content h2{font-size:16px}.guide-content p{font-size:11px}.guide-gift small{font-size:11px}.public-nickname,.public-ranking-list strong{font-size:8px}}
@media(max-width:800px) and (max-height:700px){.topbar{min-height:53px;height:53px}.intro{padding:10px 0}.scene{min-height:280px;height:280px}.before-start .scene{min-height:340px}.before-start .cat-wrap{translate:0 -65px}.play-panel{padding-top:14px}.hit-btn{min-height:58px}.guide-next{min-height:50px}.bottom-nav button{min-height:42px}}
@media(prefers-reduced-motion:reduce){.before-start .cat-wrap,.game-started .hitting .cat-wrap,.game-started .super-hitting .cat-wrap,.hitting .target,.super-hitting .target,.start-guide{animation:none!important}.ticker-moving{animation:none!important;transform:none!important}.ticker-window{overflow-y:auto}.ticker-window li[data-clone]{display:none}.cat-wrap,.target-wrap{transition:none}}
/* Keep the strike below the compact ranking on narrow screens. */
@media(max-width:800px){.game-started .scene{min-height:385px}.game-started .ticker-window{height:66px}.game-started .public-ranking{max-height:none}.game-started .public-ranking .ranking-demo-label{margin-bottom:3px}}
