@font-face{font-family:Catpuf;src:url('../OhnoSoftie-Bold.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Catpuf;src:url('../OhnoSoftie-Bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:Catpuf;src:url('../OhnoSoftie-Bold.ttf') format('truetype');font-style:normal;font-weight:900;font-display:swap}
/* Spanish inverted punctuation only: keep Ohno Softie everywhere else. */
@font-face{font-family:CatpufSpanishMarks;src:local('Arial Rounded MT Bold'),local('Arial Black'),local('Roboto Black'),local('Roboto Bold'),local('Noto Sans Bold'),local('DejaVu Sans Bold');font-style:normal;font-weight:900;font-display:swap;unicode-range:U+00A1,U+00BF}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body,#app{margin:0;width:100%;height:100%;overflow:hidden}
body,button,input{font-family:Catpuf,sans-serif;color:#292929}
[lang="es"],[lang="es"] button,[lang="es"] input{font-family:CatpufSpanishMarks,Catpuf,sans-serif}
[lang="ja"],[lang="ja"] button,[lang="ja"] input{font-family:Catpuf,"Hiragino Kaku Gothic ProN","Yu Gothic","YuGothic",Meiryo,sans-serif}
button{font:inherit;color:inherit;border:0;padding:0;background:none;cursor:pointer}
button:disabled{cursor:default}
img{display:block;max-width:none;user-select:none;-webkit-user-drag:none}
.screen{position:fixed;inset:0;overflow:hidden;background:url('../assets/back.jpg') center center/cover no-repeat}
.design-canvas{position:absolute;left:50%;top:50%;width:min(100vw,177.777778vh);height:min(56.25vw,100vh);transform:translate(-50%,-50%);container-type:size;overflow:hidden}
.scroll-clean{scrollbar-width:none;-ms-overflow-style:none}.scroll-clean::-webkit-scrollbar{display:none}
.screen-out{animation:screenOut .34s cubic-bezier(.55,.04,.91,.47) forwards}.screen-in{animation:screenIn .62s cubic-bezier(.16,1,.3,1) both}
@keyframes screenOut{to{opacity:.08;transform:scale(1.025);filter:blur(7px)}}
@keyframes screenIn{from{opacity:0;transform:scale(.982);filter:blur(7px)}to{opacity:1;transform:none;filter:none}}
#cinematic-veil{position:fixed;z-index:9999;inset:0;pointer-events:none;opacity:0;overflow:hidden}
#cinematic-veil i{position:absolute;width:48vmax;height:48vmax;border-radius:50%;background:rgba(255,232,240,.98);transform:scale(.05);filter:blur(3px)}
#cinematic-veil i:nth-child(1){left:-12%;top:-16%}#cinematic-veil i:nth-child(2){left:22%;top:18%}#cinematic-veil i:nth-child(3){right:-14%;top:-14%}#cinematic-veil i:nth-child(4){left:-8%;bottom:-22%}#cinematic-veil i:nth-child(5){right:-3%;bottom:-24%}
#cinematic-veil.enter{opacity:1}#cinematic-veil.enter i{animation:veilIn .38s cubic-bezier(.2,.8,.2,1) forwards}#cinematic-veil.leave{opacity:1;animation:veilOut .58s ease forwards}#cinematic-veil.leave i{transform:scale(1.8)}
@keyframes veilIn{to{transform:scale(1.8)}}@keyframes veilOut{to{opacity:0;filter:blur(18px)}}

/* Exact 1920x1080 design anchors */
.catpuf-logo{position:absolute;z-index:10;left:32.916667cqw;top:5.833333cqh;width:34.21875cqw;height:auto}
.page-title{position:absolute;z-index:8;left:3.65cqw;top:11.35cqh;margin:0;font-size:8.15cqh;line-height:.88;letter-spacing:-.025em;text-transform:uppercase;white-space:nowrap}
.back-btn{position:absolute;z-index:30;left:92.29cqw;top:13.15cqh;width:4.22cqw;height:auto;transition:transform .18s ease,filter .18s ease}.back-btn img{width:100%}.back-btn:hover{transform:translateX(-.35cqw) scale(1.045);filter:brightness(1.04)}
.site-footer{position:absolute;inset:0;z-index:6;pointer-events:none;color:#666}
.footer-rh{position:absolute;left:31.75cqw;top:92.86cqh;width:3.35cqw}
.footer-copy{position:absolute;left:36.2cqw;top:92.18cqh;width:27.9cqw;text-align:center;line-height:.94}.footer-copy b{display:block;font-size:.72cqh;margin-bottom:.22cqh}.footer-copy small{display:block;font-size:.43cqh;line-height:1.08}
.footer-age{position:absolute;left:64.9cqw;top:91.95cqh;width:2.62cqw}
.v-scroll{position:absolute;z-index:20;width:1.35cqw;height:53cqh;right:7.8cqw;top:30.3cqh}.v-scroll i{position:absolute;left:50%;top:0;bottom:0;width:.16cqw;background:#3b3b3b;transform:translateX(-50%)}.v-scroll img{position:absolute;left:50%;top:0;width:1.56cqw;transform:translateX(-50%);will-change:transform}
.h-scroll{position:absolute;z-index:20;left:4.3cqw;right:4.4cqw;height:3.8cqh;top:84.1cqh}.h-scroll i{position:absolute;left:0;right:0;top:1.6cqh;height:.36cqh;background:#3c3c3c}.h-scroll img{position:absolute;left:1cqw;top:.25cqh;width:6.25cqw;will-change:transform}

/* Loading */
.loading-center{position:absolute;inset:0}.loading-spinner{position:absolute;left:42.083333cqw;top:36.11cqh;width:15.9375cqw;animation:loadingTurn 2.7s ease-in-out infinite}.loading-center h2{position:absolute;top:68.15cqh;left:0;width:100%;margin:0;text-align:center;font-size:4.15cqh;line-height:1;text-transform:uppercase}
@keyframes loadingTurn{0%,100%{transform:rotate(0)}50%{transform:rotate(20deg)}}

/* Language — 02-language.png composition. Each culture cat and its flag
   button float independently; the whole pair remains one accessible language action. */
.language-stage{position:absolute;inset:0;z-index:7}
.language-choice{position:absolute;width:18cqw;height:49cqh;overflow:visible;transform-origin:50% 62%;transition:scale .2s cubic-bezier(.2,.9,.25,1),filter .2s;outline:none}
.language-choice .language-cat,.language-choice .language-flag{position:absolute;object-fit:contain;pointer-events:none;will-change:transform}
.language-choice .language-cat{z-index:1;animation:languageCatFloat var(--cat-duration,3.6s) ease-in-out var(--cat-delay,0s) infinite alternate}
.language-choice .language-flag{z-index:3;width:10.45cqw;animation:languageFlagFloat var(--flag-duration,3.1s) ease-in-out var(--flag-delay,0s) infinite alternate;filter:drop-shadow(0 .35cqh .34cqw rgba(93,70,105,.10))}
.language-choice:nth-child(1){left:6.25cqw;top:26.15cqh}.language-choice:nth-child(1) .language-cat{left:1.95cqw;top:1.3cqh;width:12.75cqw}.language-choice:nth-child(1) .language-flag{left:2.55cqw;top:28.25cqh}
.language-choice:nth-child(2){left:20.15cqw;top:35.15cqh}.language-choice:nth-child(2) .language-cat{left:.8cqw;top:.7cqh;width:15.1cqw}.language-choice:nth-child(2) .language-flag{left:3.25cqw;top:24.25cqh}
.language-choice:nth-child(3){left:34.45cqw;top:26.45cqh}.language-choice:nth-child(3) .language-cat{left:1.65cqw;top:.95cqh;width:14.45cqw}.language-choice:nth-child(3) .language-flag{left:3.05cqw;top:29.0cqh}
.language-choice:nth-child(4){left:49.8cqw;top:20.85cqh}.language-choice:nth-child(4) .language-cat{left:1.85cqw;top:1.1cqh;width:13.45cqw}.language-choice:nth-child(4) .language-flag{left:3.2cqw;top:29.15cqh}
.language-choice:nth-child(5){left:64.05cqw;top:35.4cqh}.language-choice:nth-child(5) .language-cat{left:.75cqw;top:.55cqh;width:15.2cqw}.language-choice:nth-child(5) .language-flag{left:3.2cqw;top:24.15cqh}
.language-choice:nth-child(6){left:79.2cqw;top:21.75cqh}.language-choice:nth-child(6) .language-cat{left:.55cqw;top:.8cqh;width:15.5cqw}.language-choice:nth-child(6) .language-flag{left:3.35cqw;top:29.1cqh}
.language-choice:hover,.language-choice:focus-visible{scale:1.035;filter:brightness(1.035)}
.language-choice.active{filter:brightness(1.025) drop-shadow(0 0 .55cqw rgba(255,226,151,.32))}
.language-title{position:absolute;z-index:9;left:33cqw;top:81.0cqh;width:34cqw;margin:0;text-align:center;font-size:3.55cqh;line-height:1.02;letter-spacing:-.018em;text-transform:uppercase;white-space:nowrap}
@keyframes languageCatFloat{0%{transform:translate3d(0,.18cqh,0) rotate(-.15deg)}100%{transform:translate3d(0,-.72cqh,0) rotate(.2deg)}}
@keyframes languageFlagFloat{0%{transform:translate3d(0,.16cqh,0) rotate(.12deg)}100%{transform:translate3d(0,-.54cqh,0) rotate(-.12deg)}}

/* Home - coordinates follow 03-home.png */
.home-objects{position:absolute;z-index:2;left:28.4375cqw;top:21.851852cqh;width:41.614583cqw}.home-cat{position:absolute;z-index:4;left:38.958333cqw;top:29.907407cqh;width:22.291667cqw}
.home-item{position:absolute;z-index:7;width:23.49cqw;height:14.17cqh}.home-item .puf-button{position:absolute;inset:0;width:100%;height:100%;background:url('../assets/but1.png') center/100% 100% no-repeat;text-transform:uppercase;font-size:4.15cqh;line-height:1;transition:transform .2s cubic-bezier(.2,.9,.24,1),filter .2s}.home-item .puf-button span{display:block;transform:translateY(.1cqh)}
.home-item>img{position:absolute;z-index:3;object-fit:contain;pointer-events:none;transition:transform .2s cubic-bezier(.2,.9,.24,1)}
.home-item:not(.reverse) .puf-button{padding-left:12%}.home-item.reverse .puf-button{padding-right:12%}
.home-item:hover .puf-button{transform:scale(1.025);filter:brightness(1.035)}.home-item:hover>img{transform:translateY(-.5cqh) scale(1.035)}
.home-story{left:6.7cqw;top:30.5cqh}.home-story>img{left:-.5cqw;top:-5.5cqh;width:13.3cqw;height:20.7cqh}
.home-cats{left:2.3cqw;top:45.2cqh}.home-cats>img{left:.5cqw;top:-1.5cqh;width:10.5cqw;height:12.5cqh}
.home-help{left:6.7cqw;top:59.2cqh}.home-help>img{left:-.7cqw;top:-2.6cqh;width:13.2cqw;height:15.7cqh}
.home-scores{left:69.6cqw;top:30.5cqh}.home-scores>img{right:-.8cqw;top:-5.3cqh;width:13.2cqw;height:20.2cqh}
.home-settings{left:73.2cqw;top:45.2cqh}.home-settings>img{right:-1.5cqw;top:-4.4cqh;width:13.7cqw;height:18.8cqh}
.home-credits{left:69.6cqw;top:59.2cqh}.home-credits>img{right:-.7cqw;top:-4.5cqh;width:13.5cqw;height:19cqh}
.start-wrap{position:absolute;z-index:9;left:38.1cqw;top:77cqh;width:23.49cqw;height:14.17cqh}.start-wrap .puf-button{position:absolute;inset:0;background:url('../assets/but1.png') center/100% 100% no-repeat;width:100%;height:100%;padding-right:10%;font-size:5.15cqh;text-transform:uppercase;transition:transform .2s,filter .2s}.start-wrap>img{position:absolute;z-index:3;right:-4.2cqw;top:-2.3cqh;width:10.9cqw;transition:transform .2s}.start-wrap:hover .puf-button{transform:scale(1.025);filter:brightness(1.035)}.start-wrap:hover>img{transform:translateX(.45cqw) scale(1.04)}

/* Story */
.story-cat{position:absolute;z-index:4;left:1.55cqw;top:52.3cqh;width:17.7cqw}
.story-copy{position:absolute;z-index:5;left:20.5cqw;top:33.2cqh;width:53.8cqw;height:52.2cqh;overflow:auto;text-align:center;padding:0 .9cqw 1.5cqh}.story-copy h2{margin:0 0 3.3cqh;font-size:3.95cqh;line-height:1.15;text-transform:uppercase}.story-copy p{margin:0 0 2.25cqh;font-size:1.72cqh;line-height:1.18;text-transform:uppercase}.story-copy strong{font-size:2.1cqh;line-height:1.15;text-transform:uppercase}.story-screen .v-scroll{right:21.9cqw;top:34.6cqh;height:49cqh}

/* Cats */
.cats-screen .page-count,.levels-screen .page-count{left:4.15cqw;top:34.1cqh;font-size:4.1cqh;line-height:1}
.cat-gallery{position:absolute;z-index:5;left:3.1cqw;right:3.3cqw;top:47cqh;height:35.6cqh;overflow-x:auto;overflow-y:hidden;display:flex;align-items:flex-start;gap:3.75cqw;scroll-snap-type:x proximity;padding:0 1cqw}.cat-card{position:relative;flex:0 0 16.1cqw;height:34cqh;scroll-snap-align:start}.cat-art{position:absolute;left:0;top:0;width:16.1cqw;height:27.7cqh;display:grid;place-items:center}.cat-art>img:first-child{width:16.1cqw;height:27.2cqh;object-fit:contain}.cat-card b{position:absolute;left:-1cqw;right:-1cqw;top:29.1cqh;text-align:center;font-size:2.9cqh;line-height:1;text-transform:uppercase;white-space:nowrap}.cat-card.locked .cat-art>img:first-child{opacity:.96}.lock-art{position:absolute!important;z-index:3;width:9.8cqw!important;height:auto!important;left:50%;top:50%;transform:translate(-50%,-49%)}.cat-card.open:hover .cat-art>img:first-child{transform:translateY(-.4cqh) scale(1.025);transition:transform .2s}.cats-screen .h-scroll{top:84.25cqh}

/* Cat detail window */
.overlay-card-wrap{position:fixed;z-index:5000;inset:0;display:grid;place-items:center;background:rgba(111,75,113,.06);opacity:0;transition:opacity .22s;backdrop-filter:blur(2px)}.overlay-card-wrap.show{opacity:1}
.overlay-card{position:relative;container-type:size}.overlay-window{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.cat-detail{width:min(81.72vw,145.28vh);aspect-ratio:1569/777}.cat-detail .catpuf-logo{left:25cqw;top:-11cqh;width:41.9cqw}.overlay-close{position:absolute;z-index:10;right:-1.7cqw;top:-4.9cqh;width:8.4cqw}.overlay-close img{width:100%}.detail-cat{position:absolute;z-index:3;left:6cqw;top:12.3cqh;width:38cqw;height:72cqh;object-fit:contain}.detail-copy{position:absolute;z-index:3;left:47cqw;top:14.5cqh;width:44.5cqw;height:70cqh;text-align:center;display:flex;flex-direction:column;justify-content:center}.detail-copy h2{font-size:7.1cqh;line-height:.9;margin:0 0 6.2cqh;text-transform:uppercase}.detail-copy p{font-size:2.35cqh;line-height:1.15;margin:0;text-transform:uppercase}.detail-arrow{position:absolute;z-index:10;top:48%;width:5.1cqw;opacity:1}.detail-arrow:disabled{opacity:.2}.detail-prev{left:-8.4cqw}.detail-next{right:-8.4cqw;transform:scaleX(-1)}.detail-arrow img{width:100%}

/* Help */
.help-scroll{position:absolute;left:18.8cqw;top:29cqh;width:57.2cqw;height:56cqh;overflow:auto;text-align:center;padding:0 2cqw 3cqh}.help-intro{display:grid;grid-template-columns:20% 1fr;gap:1.8cqw;align-items:center}.help-intro>img{width:100%;max-height:26cqh;object-fit:contain}.help-scroll h2{font-size:3cqh;line-height:1;margin:1.5cqh 0 1cqh;text-transform:uppercase}.help-scroll p{font-size:1.5cqh;line-height:1.16;margin:.4cqh 0 1.6cqh;text-transform:uppercase}.help-section-title{margin-top:3cqh!important}.help-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:3cqw;row-gap:2.5cqh}.help-item{display:grid;grid-template-columns:27% 1fr;align-items:center;text-align:left}.help-item>img{width:100%;height:13cqh;object-fit:contain}.help-item h3{font-size:2.2cqh;line-height:1;margin:0 0 .7cqh;text-transform:uppercase}.help-item p{font-size:1.22cqh;margin:0;line-height:1.14}.help-bottom{display:grid;grid-template-columns:1fr 1fr;gap:3cqw}.help-fun{display:block;font-size:2.8cqh;margin:2cqh 0;text-transform:uppercase}.help-screen .v-scroll{right:21.4cqw;top:30.2cqh;height:54cqh}

/* Scores */
.scores-cat{position:absolute;z-index:4;left:1.6cqw;top:52.7cqh;width:17.5cqw}.scores-list{position:absolute;z-index:5;left:21.2cqw;top:30.7cqh;width:70cqw;height:54cqh;overflow:auto}.score-row{height:10.4cqh;display:grid;grid-template-columns:8% 42% 22% 28%;align-items:center;border-bottom:.16cqh solid rgba(45,45,45,.63);font-size:4cqh;line-height:1;text-transform:uppercase}.score-row b{text-align:left}.score-row strong{text-align:left}.score-row span{text-align:center}.score-row em{font-style:normal;text-align:right}.score-loading,.empty-score{font-size:3.2cqh;text-align:center;margin-top:10cqh}.scores-screen .v-scroll{right:4.55cqw;top:31.2cqh;height:53.5cqh}

/* Settings */
.settings-cat{position:absolute;z-index:4;left:2.55cqw;top:52.4cqh;width:16.2cqw}.settings-copy{position:absolute;left:35.2cqw;top:31.2cqh;width:32.3cqw;margin:0;text-align:center;font-size:3cqh;line-height:1.07;text-transform:uppercase}
.setting{position:absolute;z-index:5;height:24cqh}.setting b{position:absolute;top:0;font-size:4.5cqh;line-height:1;text-transform:uppercase;white-space:nowrap}.setting-icon,.toggle{position:absolute}.toggle img{width:100%}.toggle{transition:transform .18s,filter .18s}.toggle:hover{transform:scale(1.035);filter:brightness(1.03)}
.music-setting{left:20.4cqw;top:53.6cqh;width:26.2cqw}.music-setting .setting-icon{left:0;top:0;width:10.73cqw}.music-setting b{left:11.2cqw;top:1cqh}.music-setting .toggle{left:13cqw;top:9.2cqh;width:11.72cqw}
.sfx-setting{left:49.5cqw;top:53.8cqh;width:32cqw}.sfx-setting b{left:0;top:.8cqh}.sfx-setting .toggle{left:1.45cqw;top:9cqh;width:11.77cqw}.sfx-setting .setting-icon{left:16cqw;top:3cqh;width:14.64cqw}

/* Credits */
.credits-cat{position:absolute;left:2.3cqw;top:48.2cqh;width:16.9cqw;z-index:4}.credits-layout{position:absolute;z-index:5;inset:0;text-align:center;text-transform:uppercase}.credit-col{position:absolute}.credit-col h2{margin:0;font-size:2.55cqh;line-height:1}.credit-tools{left:26.6cqw;top:31.3cqh;width:19.8cqw}.credit-cr1{width:5.8cqw;margin:2.2cqh auto 5.4cqh}.credit-ai-title{margin-bottom:2.1cqh!important}.credit-cr3{width:19.7cqw;margin:0 auto}.credit-media{left:44.7cqw;top:31.3cqh;width:20.2cqw}.credit-cr2{width:15.45cqw;margin:2.1cqh auto 6.3cqh}.credit-dev-title{margin-bottom:1.8cqh!important}.credit-cr4{width:10.1cqw;margin:0 auto}.credit-owner{left:65.8cqw;top:31.6cqh;width:27.8cqw}.credit-roles{font-size:2.55cqh;line-height:.92}.credit-owner>strong,.credit-owner>b{display:block;line-height:1}.credit-owner>strong{font-size:2.95cqh;margin-top:2.4cqh}.credit-owner>b{font-size:2.6cqh;margin-top:.9cqh}.credit-cr5{width:7.05cqw;margin:1.3cqh auto 0}

/* Levels */
.level-track{position:absolute;z-index:5;left:2.75cqw;right:2.8cqw;top:49.3cqh;height:34cqh;overflow-x:auto;overflow-y:hidden;display:flex;align-items:flex-start;gap:3.05cqw;padding:0 0 0 .2cqw;scroll-snap-type:x proximity}.level-node{position:relative;flex:0 0 16.3cqw;height:33.2cqh;scroll-snap-align:start}.level-disc{position:absolute;left:0;top:0;width:15.57cqw;height:27.13cqh;object-fit:contain}.level-node span{position:absolute;left:0;top:9.3cqh;width:15.57cqw;text-align:center;font-size:6cqh;line-height:1}.level-node small{position:absolute;left:0;top:28.1cqh;width:15.57cqw;text-align:center;font-size:3.4cqh;line-height:1;color:#d5b1de;letter-spacing:.25cqw}.level-lock{position:absolute;z-index:3;left:3.25cqw;top:-.1cqh;width:9.8cqw;height:24cqh;object-fit:contain}.level-node.open:hover .level-disc{transform:scale(1.025);transition:transform .18s}.levels-screen .h-scroll{top:84.2cqh}
.level-intro{position:fixed;z-index:6000;inset:0;background:url('../assets/back.jpg') center/cover no-repeat;opacity:0;display:grid;place-items:center;transition:opacity .3s}.level-intro.show{opacity:1}.intro-disc{position:absolute;width:min(28vw,49vh)}.intro-level{position:absolute;font-size:min(10vw,18vh)}.intro-cat{position:absolute;width:min(18vw,32vh);transform:translate(-16vw,16vh);opacity:0;transition:.35s}.level-intro.show .intro-cat{opacity:1;transform:translate(-14vw,13vh)}.level-intro.go{opacity:0;filter:blur(7px);transform:scale(1.03);transition:.35s}

/* Game: gameback.png is the layout, board overlays its exact 13x7 stitched grid */
.game-stage{position:fixed;inset:0;overflow:hidden;background:url('../assets/back.jpg') center/cover no-repeat;display:grid;place-items:center}
.game-frame{position:relative;width:min(95.677083vw,170.185vh);aspect-ratio:1837/1009;background:url('../assets/gameback.png') center/100% 100% no-repeat;container-type:size;touch-action:none;filter:drop-shadow(0 1.1cqh 1.6cqh rgba(112,70,101,.13))}
.board-wrap{position:absolute;left:2.177463%;top:3.865213%;width:81.872619%;height:79.187314%;overflow:visible;touch-action:none}.board,.fx-layer{position:absolute;inset:0}.board{z-index:2;display:grid;grid-template-columns:117fr 116fr 116fr 115fr 116fr 116fr 115fr 116fr 115fr 116fr 115fr 117fr 114fr;grid-template-rows:112fr 115fr 115fr 115fr 116fr 115fr 111fr;gap:0}.fx-layer{z-index:6;pointer-events:none;overflow:visible}
.game-cell{position:relative;min-width:0;min-height:0;overflow:visible;background:transparent;display:grid;place-items:center;touch-action:none}.cell-art{position:absolute;left:0;right:0;top:0;bottom:0;margin:auto;width:5.443658cqw;height:9.910803cqh;object-fit:contain;transform:translate(0,0) rotate(var(--rocket-rot,0deg));transform-origin:center;will-change:transform,opacity;transition:transform .08s linear,filter .12s}.game-cell.kind-cat .cell-art,.game-cell.kind-stone .cell-art,.game-cell.kind-special .cell-art{width:5.443658cqw;height:9.910803cqh}.game-cell.selected .cell-art{transform:scale(1.035) rotate(var(--rocket-rot,0deg));filter:brightness(1.045)}
.game-cell.drag-source{z-index:15}.game-cell.dragging .cell-art{transition:none;transform:translate(var(--drag-x),var(--drag-y)) scale(1.035);z-index:20}.game-cell.swap-preview{z-index:14}.game-cell.swap-preview .cell-art{transition:transform .04s linear;transform:translate(var(--preview-x),var(--preview-y))}.game-cell.cat-bop .cell-art{animation:catBop .42s cubic-bezier(.2,.9,.25,1)}@keyframes catBop{45%{transform:translateY(-9%) scale(1.045)}70%{transform:translateY(2%) scale(.99)}}
.rip-piece{position:absolute!important;left:0!important;right:0!important;top:0!important;bottom:0!important;margin:auto!important;width:5.443658cqw!important;height:9.910803cqh!important;object-fit:contain;z-index:22;pointer-events:none}.rip-left{clip-path:polygon(0 0,54% 0,47% 42%,52% 100%,0 100%);animation:ripLeft .48s cubic-bezier(.17,.67,.24,1) forwards}.rip-right{clip-path:polygon(54% 0,100% 0,100% 100%,52% 100%,47% 42%);animation:ripRight .48s cubic-bezier(.17,.67,.24,1) forwards}.feather-burst{position:absolute;z-index:24;left:50%;top:50%;width:155%;height:165%;object-fit:contain;pointer-events:none;transform:translate(-50%,-50%) scale(.28);opacity:0;animation:featherBurst .58s cubic-bezier(.12,.78,.18,1) forwards}
@keyframes ripLeft{to{transform:translate(-32%,27%) rotate(-20deg) scale(.93);opacity:0}}@keyframes ripRight{to{transform:translate(34%,31%) rotate(21deg) scale(.93);opacity:0}}@keyframes featherBurst{18%{opacity:1}70%{opacity:1;transform:translate(-50%,-52%) scale(1.08)}100%{opacity:0;transform:translate(-50%,-60%) scale(1.24)}}
.blast-away{animation:blastAway .25s ease-out forwards}@keyframes blastAway{to{transform:scale(.18);opacity:0}}
.stone-frag{position:absolute;z-index:25;left:0;right:0;top:0;bottom:0;margin:auto;width:5.443658cqw;height:9.910803cqh;object-fit:contain;pointer-events:none}
.explosion{position:absolute;z-index:50;transform:translate(-50%,-50%) scale(.15);transform-origin:center;opacity:0;pointer-events:none}.explosion.bomb{width:28cqw;animation:bombCloud .82s cubic-bezier(.12,.75,.18,1) forwards}.explosion.nuclear{width:42cqw;animation:nuclearCloud 1.02s cubic-bezier(.12,.75,.18,1) forwards}@keyframes bombCloud{12%{opacity:1}55%{opacity:1;transform:translate(-50%,-50%) scale(1.02)}100%{opacity:0;transform:translate(-50%,-52%) scale(1.16)}}@keyframes nuclearCloud{10%{opacity:1}48%{opacity:1;transform:translate(-50%,-50%) scale(1.02)}100%{opacity:0;transform:translate(-50%,-54%) scale(1.19)}}
.rocket-ghost{position:absolute;z-index:55;width:7.2cqw;height:8.4cqh;object-fit:contain;pointer-events:none;transform:translate(-50%,-50%) rotate(var(--rocket-angle,0deg))}.cat-rescue .cell-art{animation:catRescue .58s cubic-bezier(.2,.82,.25,1) forwards}@keyframes catRescue{55%{transform:scale(1.09) translateY(-5%)}100%{transform:scale(.82) translateY(-12%);opacity:.2}}

.power-dock{position:absolute;z-index:5;left:84.8%;top:6.8%;width:12.8%;height:75.2%;display:flex;flex-direction:column;align-items:center}.power-title{height:13.5%;width:100%;font-size:2.55cqh;line-height:.92;text-transform:uppercase;cursor:pointer}.power-item{position:relative;width:100%;height:21.6%;display:grid;place-items:center}.power-item img{max-width:67%;max-height:82%;object-fit:contain;transition:transform .16s}.power-item b{position:absolute;right:1.5%;top:32%;font-size:3.2cqh;line-height:1}.power-item:hover img{transform:scale(1.045) translateY(-2%)}
.game-hud{position:absolute;z-index:5;left:4.3%;right:4.1%;top:85.2%;height:10.2%;display:grid;grid-template-columns:18% 48% 17% 17%;align-items:center}.game-hud>div{display:flex;align-items:center;gap:1.4cqw;white-space:nowrap}.game-hud span{font-size:2.35cqh;line-height:1;text-transform:uppercase}.game-hud b{font-size:4.45cqh;line-height:1}.hud-score{padding-left:1.3cqw}.hud-score b{font-size:4.2cqh}.hud-moves,.hud-cats{justify-content:flex-end}
.game-bubble-layer{position:absolute;z-index:80;inset:0;pointer-events:none}.game-bubble{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;border:.2cqw solid #d59499;background:#f6d9da;text-align:center;text-transform:uppercase;line-height:.87;transform:translate(-50%,-50%) scale(.42);opacity:0;transition:opacity .16s,transform .25s cubic-bezier(.2,1.25,.3,1);padding:5%}.game-bubble.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.game-bubble .bubble-line{display:block;width:100%}
.combo-bubble{width:8.75cqw;aspect-ratio:1}.combo-bubble .line-1{font-size:1.15cqh}.combo-bubble .line-2{font-size:2.25cqh}.combo-bubble .line-3{font-size:2.55cqh}.combo-bubble .line-4{font-size:2.2cqh}
.wrong-bubble{width:14.8cqw;aspect-ratio:1;background:#d3989d;border-color:#fff0e8}.wrong-bubble .line-1{font-size:1.65cqh}.wrong-bubble .line-2{font-size:3.45cqh}.wrong-bubble .line-3{font-size:1.55cqh;margin-top:.9cqh}.wrong-bubble .line-4{font-size:1.95cqh}.rescue-bubble{width:10.2cqw;aspect-ratio:1}.rescue-bubble .line-1{font-size:1.25cqh}.rescue-bubble .line-2{font-size:2.3cqh}.rescue-bubble .line-3{font-size:1.8cqh}.level-bubble,.power-bubble{width:10cqw;min-height:7cqh;border-radius:4cqh;font-size:2cqh}

/* Game end screens: reproduce the supplied 1920x1080 compositions with original window/button/fireworks art */
.game-modal-wrap,.cat-unlock-wrap{position:fixed;z-index:4000;inset:0;display:grid;place-items:center;background:url('../assets/back.jpg') center/cover no-repeat;container-type:size;overflow:hidden}.cat-unlock-wrap{z-index:4200;opacity:0;transition:opacity .22s}.cat-unlock-wrap.show{opacity:1}
.game-end-footer{position:absolute;z-index:2;inset:0;pointer-events:none;color:#666}.end-rh{position:absolute;left:31.75cqw;top:92.86cqh;width:3.35cqw}.end-copy{position:absolute;left:36.2cqw;top:92.18cqh;width:27.9cqw;text-align:center;line-height:.94}.end-copy b{display:block;font-size:.72cqh;margin-bottom:.22cqh}.end-copy small{display:block;font-size:.43cqh;line-height:1.08}.end-age{position:absolute;left:64.9cqw;top:91.95cqh;width:2.62cqw}
.game-modal{position:relative;z-index:3;width:min(81.71875cqw,145.27778cqh);aspect-ratio:1569/777;background:url('../assets/window.png') center/100% 100% no-repeat;container-type:size;overflow:visible;animation:modalPop .46s cubic-bezier(.2,1.08,.25,1) both}@keyframes modalPop{from{opacity:0;transform:scale(.86)}to{opacity:1;transform:scale(1)}}
.modal-cat{position:absolute;z-index:4;left:5.5cqw;top:31.4cqh;width:29.2cqw;height:60.5cqh;object-fit:contain}.game-modal.win .modal-cat{left:5.1cqw;top:29.6cqh;width:30.5cqw;height:62.5cqh}
.modal-copy{position:absolute;z-index:8;left:21cqw;top:6.1cqh;width:70cqw;text-align:center;text-transform:uppercase}.modal-copy small{display:block;font-size:3.55cqh;line-height:1}.modal-copy h2{font-size:8.8cqh;line-height:.86;letter-spacing:-.025em;margin:1cqh 0 3.4cqh}.modal-copy p{font-size:2.65cqh;line-height:1;margin:0}.modal-copy strong{display:block;font-size:5.9cqh;line-height:1;margin-top:1.2cqh}.game-modal.lose .modal-copy{left:19cqw;top:6.5cqh;width:72cqw}.game-modal.lose .modal-copy small{font-size:3.35cqh}.game-modal.lose .modal-copy h2{font-size:9.35cqh;margin:.9cqh 0 3.5cqh}
.win-firework{position:absolute;z-index:5;width:52cqw;height:auto;object-fit:contain;pointer-events:none;filter:none}.fw-main{left:24.5cqw;top:9cqh;width:56cqw;opacity:.78;animation:winBurst .72s cubic-bezier(.1,.7,.2,1) both}.fw-left{left:-10.5cqw;top:35cqh;width:27cqw;transform:rotate(-15deg);animation:winBurstSmall .7s .08s cubic-bezier(.1,.7,.2,1) both}.fw-right-top{right:-9cqw;top:-9cqh;width:25cqw;transform:rotate(12deg);animation:winBurstSmall .7s .13s cubic-bezier(.1,.7,.2,1) both}.fw-right-bottom{right:-8cqw;bottom:-10cqh;width:31cqw;transform:rotate(6deg);animation:winBurstSmall .7s .18s cubic-bezier(.1,.7,.2,1) both}@keyframes winBurst{from{opacity:0;transform:scale(.42) rotate(-5deg)}to{opacity:.78;transform:scale(1) rotate(0)}}@keyframes winBurstSmall{from{opacity:0;scale:.42}to{opacity:.98;scale:1}}
.modal-actions{position:absolute;z-index:12;left:33.5cqw;top:61.6cqh;width:32.8cqw;height:31cqh}.modal-actions button{position:absolute;text-transform:uppercase;line-height:1;transition:transform .16s,filter .16s}.modal-actions button:hover{transform:scale(1.025);filter:brightness(1.025)}.modal-primary{left:0;top:0;width:29.4cqw;height:15.1cqh;background:url('../assets/but1.png') center/100% 100% no-repeat;font-size:4.1cqh;padding-right:3.7cqw}.modal-primary span{position:relative;z-index:2;display:block;white-space:nowrap}.modal-primary img{position:absolute;z-index:3;right:-3.15cqw;top:-.65cqh;width:9.25cqw}.modal-menu{left:4.1cqw;top:19.2cqh;width:20.3cqw;height:10.3cqh;background:url('../assets/but2.png') center/100% 100% no-repeat;font-size:2.55cqh}.modal-menu img{position:absolute;left:-3.35cqw;top:1.1cqh;width:5.2cqw}.modal-menu span{display:block;padding-left:1.1cqw;white-space:nowrap}
.score-submit{position:absolute;z-index:12;left:70.8cqw;top:60.2cqh;width:23cqw;text-align:center}.score-submit label{display:block;font-size:2.55cqh;line-height:1;text-transform:uppercase}.score-submit input{display:block;width:100%;height:5.4cqh;margin:.2cqh 0 2cqh;border:0;border-bottom:.55cqh solid #2d2d2d;border-radius:0;background:transparent;padding:0 .8cqw;text-align:center;font-size:2.4cqh;outline:none}.score-submit button{width:20.3cqw;height:10.3cqh;background:url('../assets/but2.png') center/100% 100% no-repeat;text-transform:uppercase;font-size:2.35cqh}.submit-status{position:absolute;z-index:13;left:70.8cqw;top:86.5cqh;width:23cqw;text-align:center;font-size:1.35cqh}.game-modal-wrap.unlock-pending .modal-actions,.game-modal-wrap.unlock-pending .score-submit{pointer-events:none}

/* Every 20 levels: full supplied cat-open screen, not a small invented card */
.cat-unlock-window{position:relative;z-index:3;width:min(81.71875cqw,145.27778cqh);aspect-ratio:1569/777;container-type:size;overflow:visible;transform:scale(.9);opacity:0;transition:opacity .3s,transform .4s cubic-bezier(.2,1.08,.25,1)}.cat-unlock-wrap.show .cat-unlock-window{opacity:1;transform:scale(1)}.unlock-window-art{position:absolute;inset:0;width:100%;height:100%;z-index:0}.cat-unlock-close{position:absolute;z-index:8;right:-1.9cqw;top:-5.2cqh;width:8.55cqw;transition:transform .16s}.cat-unlock-close:hover{transform:scale(1.04) rotate(3deg)}.cat-unlock-close img{width:100%}.cat-unlock-art{position:absolute;z-index:3;left:5.2cqw;top:8.5cqh;width:38.4cqw;height:72cqh;object-fit:contain}.cat-unlock-name{position:absolute;z-index:4;left:8cqw;top:79.1cqh;width:31cqw;text-align:center;font-size:3.45cqh;line-height:1;text-transform:uppercase}.cat-unlock-copy{position:absolute;z-index:4;left:48.5cqw;top:24.8cqh;width:42cqw;height:49cqh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;text-transform:uppercase;line-height:.86}.cat-unlock-copy .unlock-line{display:block}.cat-unlock-copy .unlock-line-1{font-size:4.6cqh;margin-bottom:.7cqh}.cat-unlock-copy .unlock-line-2,.cat-unlock-copy .unlock-line-3{font-size:8.7cqh;letter-spacing:-.025em}

/* Store */
.store-card{width:min(81.72vw,145.28vh);aspect-ratio:1569/777;padding:8cqh 7cqw 6cqh}.store-card .overlay-window{pointer-events:none}.store-card h2{position:relative;z-index:2;text-align:center;font-size:5.2cqh;margin:0}.store-points{position:relative;z-index:2;text-align:center;font-size:2cqh;margin:1cqh 0 2.3cqh}.store-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);gap:1.4cqw}.store-grid article{text-align:center}.store-grid article>img{width:100%;height:16cqh;object-fit:contain}.store-grid h3{font-size:2.1cqh;margin:.6cqh 0}.store-grid p{font-size:1.1cqh;line-height:1.1;min-height:7.2cqh}.store-grid small{display:block;font-size:1.15cqh}.store-grid article button{margin-top:.8cqh;height:4.6cqh;padding:0 1cqw;border-radius:2.3cqh;background:#edb4bb;font-size:1.15cqh}.store-grid article button.nope{animation:nope .36s ease}@keyframes nope{30%{transform:translateX(-.5cqw)}60%{transform:translateX(.5cqw)}}


/* === Catpuf precision/polish revision === */
/* Typography is intentionally slightly smaller across the site/game. */
.page-title{left:3.7cqw;top:11.65cqh;font-size:6.75cqh;line-height:.92}
.back-btn{left:92.3cqw;top:11.8cqh;width:4.22cqw}
.footer-copy b{font-size:.64cqh}.footer-copy small{font-size:.39cqh}
.v-scroll img{transform:translate(-50%,var(--scroll-pos,0px))}
.h-scroll img{transform:translateX(var(--scroll-pos,0px))}

/* Home: exact compact button rhythm from 03-home, with supplied boom behind the hero. */
.home-boom{position:absolute;z-index:1;left:28.2cqw;top:13.2cqh;width:43.6cqw;height:auto;pointer-events:none}
.home-objects{left:29.35cqw;top:22.6cqh;width:40.9cqw}
.home-cat{left:39.25cqw;top:28.5cqh;width:21.6cqw}
.home-item{width:15.65cqw;height:8.7cqh}
.home-item .puf-button{font-size:3.15cqh;line-height:.94}
.home-item:not(.reverse) .puf-button{padding-left:10%}.home-item.reverse .puf-button{padding-right:10%}
.home-item:hover .puf-button{transform:translateY(-.12cqh) scale(1.018);filter:brightness(1.035) drop-shadow(0 .35cqh .35cqh rgba(148,95,119,.16))}
.home-item:hover>img{transform:translateY(-.34cqh) scale(1.025)}
.home-story{left:13.0cqw;top:30.1cqh}.home-story>img{left:-4.35cqw;top:-6.1cqh;width:8.15cqw;height:auto}
.home-cats{left:6.4cqw;top:43.95cqh}.home-cats>img{left:-3.0cqw;top:-1.3cqh;width:6.15cqw;height:11.4cqh}
.home-help{left:13.0cqw;top:56.2cqh}.home-help>img{left:-4.2cqw;top:-3.1cqh;width:7.8cqw;height:auto}
.home-scores{left:59.45cqw;top:30.1cqh}.home-scores>img{right:-4.25cqw;top:-6.0cqh;width:8.05cqw;height:auto}
.home-settings{left:66.0cqw;top:43.95cqh}.home-settings>img{right:-4.2cqw;top:-4.4cqh;width:8.5cqw;height:auto}
.home-credits{left:59.45cqw;top:56.2cqh}.home-credits>img{right:-4.1cqw;top:-4.2cqh;width:8.1cqw;height:auto}
.start-wrap{left:39.25cqw;top:75.8cqh;width:21.5cqw;height:12.5cqh}
.start-wrap .puf-button{font-size:4.2cqh;padding-right:8%}.start-wrap>img{right:-3.7cqw;top:-1.9cqh;width:9.2cqw}

/* Shared content pages. */
.story-cat{left:1.7cqw;top:50.6cqh;width:16.8cqw}
.story-copy{left:20.7cqw;top:29.7cqh;width:43.4cqw;height:44.1cqh;padding:0 .8cqw 4cqh}
.story-copy h2{font-size:3.45cqh;line-height:1.12;margin:0 0 3.1cqh}
.story-copy p{font-size:1.46cqh;line-height:1.17;margin:0 0 2.25cqh}
.story-copy .story-plea{font-size:1.75cqh;margin:2.5cqh 0}
.story-copy strong{display:block;font-size:3.0cqh;line-height:1.08;margin:3.6cqh 0 2cqh}
.story-screen .v-scroll{right:33.45cqw;top:29.85cqh;height:43.3cqh}

.cats-screen .page-count,.levels-screen .page-count{left:4.2cqw;top:28.9cqh;font-size:3.45cqh}
.cat-gallery{left:3.1cqw;right:3.3cqw;top:41.7cqh;height:32.1cqh;gap:3.1cqw}
.cat-card{flex-basis:16.2cqw;height:31.5cqh}.cat-art{width:16.2cqw;height:25.7cqh}.cat-art>img:first-child{width:15.5cqw;height:25.5cqh}.cat-card b{top:26.7cqh;font-size:2.35cqh}
.cats-screen .h-scroll{top:74.25cqh}

.overlay-card-wrap{background:rgba(89,54,93,.16);backdrop-filter:blur(12px) saturate(.8);-webkit-backdrop-filter:blur(12px) saturate(.8)}
.detail-cat{left:8.1cqw;top:16.4cqh;width:33.5cqw;height:63cqh;animation:catFloat 3.1s ease-in-out infinite}
.detail-copy{left:47cqw;top:14.5cqh;width:44.5cqw;height:70cqh}.detail-copy h2{font-size:5.65cqh;margin:0 0 4.4cqh}.detail-copy p{font-size:2.05cqh;line-height:1.14}
@keyframes catFloat{0%,100%{translate:0 0;rotate:-.4deg}50%{translate:0 -1.4cqh;rotate:.55deg}}

/* Help: first viewport and the complete scroll continuation follow 06-help-01/02. */
.help-left-cat{position:absolute;z-index:4;left:1.55cqw;top:49.8cqh;width:17.2cqw;height:auto;object-fit:contain}
.help-right-cat{position:absolute;z-index:4;right:2.75cqw;top:56.0cqh;width:14.0cqw;height:24cqh;object-fit:contain}
.help-scroll{left:21.0cqw;top:27.8cqh;width:54.0cqw;height:45.0cqh;padding:0 1.5cqw 5cqh;text-align:center}
.help-intro-copy{min-height:45cqh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:.2cqh}
.help-intro-copy h2{font-size:3.15cqh;line-height:1;margin:0 0 2.7cqh}
.help-intro-copy .help-lead{font-size:3.05cqh;line-height:1.08;max-width:47cqw;margin:0 0 2.1cqh}
.help-intro-copy p:not(.help-lead){font-size:1.48cqh;line-height:1.13;max-width:47cqw;margin:0 0 2.7cqh}
.help-continuation{padding:1cqh 0 3cqh}
.help-row{min-height:30cqh;display:grid;grid-template-columns:34% 66%;align-items:center;gap:1.5cqw;padding:1.2cqh 1.2cqw;text-align:center}
.help-row.art-right{grid-template-columns:66% 34%}.help-row.art-right>img{order:2}.help-row.art-right>div{order:1}
.help-row>img{width:100%;height:24cqh;object-fit:contain}.help-row h3{font-size:3.05cqh;line-height:1;margin:0 0 1.4cqh;text-transform:uppercase}.help-row p{font-size:1.34cqh;line-height:1.14;margin:0;text-transform:uppercase}
.help-wide-heading{padding:3.6cqh 2cqw 2.4cqh;text-align:center}.help-wide-heading h2{font-size:3.25cqh;margin:0 0 1.5cqh}.help-wide-heading p{font-size:1.35cqh;line-height:1.15;margin:0 auto;max-width:45cqw}.help-wide-heading strong{display:block;font-size:2.8cqh;line-height:1.05;margin:-.5cqh 0 2cqh;text-transform:uppercase}
.help-bottom{display:grid;grid-template-columns:1fr 1fr;gap:5cqw;padding:4cqh 2cqw}.help-bottom h2{font-size:3.15cqh}.help-bottom p{font-size:1.35cqh;line-height:1.15}
.help-tips{padding:4cqh 3cqw 6cqh}.help-tips h2{font-size:3.2cqh}.help-tips p{font-size:1.45cqh;line-height:1.18}.help-fun{display:block;font-size:2.7cqh;line-height:1.05;margin:4.5cqh 0 3.6cqh}.help-tips>b{display:block;font-size:2.65cqh;text-transform:uppercase}
.help-screen .v-scroll{right:30.65cqw;top:28.7cqh;height:42.35cqh}

/* Scores alignment from 07-scores. */
.scores-cat{left:1.6cqw;top:50.2cqh;width:17.0cqw}
.scores-list{left:21.1cqw;top:27.8cqh;width:57.2cqw;height:46.2cqh}
.score-row{height:8.65cqh;grid-template-columns:9% 45% 20% 26%;font-size:3.45cqh;border-bottom:.12cqh solid rgba(45,45,45,.6)}
.scores-screen .v-scroll{right:18.55cqw;top:28.0cqh;height:45.5cqh}
.score-loading,.empty-score{font-size:2.7cqh}

.settings-copy{font-size:2.55cqh}.setting b{font-size:3.95cqh}
.credit-col h2{font-size:2.3cqh}.credit-roles{font-size:2.25cqh}.credit-owner>strong{font-size:2.65cqh}.credit-owner>b{font-size:2.3cqh}

/* Levels: six compact circles, focused level centered, fading edges. */
.levels-screen .page-count{top:28.9cqh}
.level-track{left:3.4cqw;right:3.4cqw;top:43.0cqh;height:30.9cqh;gap:2.55cqw;padding:0 41.5cqw;scroll-snap-type:x mandatory;mask-image:linear-gradient(to right,transparent 0,#000 8%,#000 92%,transparent 100%);-webkit-mask-image:linear-gradient(to right,transparent 0,#000 8%,#000 92%,transparent 100%)}
.level-node{flex:0 0 12.75cqw;height:29.5cqh;scroll-snap-align:center}.level-disc{left:.2cqw;top:0;width:12.35cqw;height:22.9cqh}.level-node span{left:.2cqw;top:7.3cqh;width:12.35cqw;font-size:4.65cqh;line-height:1}.level-node small{left:.2cqw;top:23.7cqh;width:12.35cqw;font-size:2.45cqh;letter-spacing:.16cqw}.level-lock{left:2.7cqw;top:.1cqh;width:7.35cqw;height:21.5cqh}
.level-node.current:before,.level-node.current:after{content:"";position:absolute;z-index:-1;left:50%;top:38%;width:11.6cqw;aspect-ratio:1;border:.34cqw solid rgba(224,141,190,.8);border-radius:50%;translate:-50% -50%;animation:levelPulse 1.9s ease-out infinite;pointer-events:none}.level-node.current:after{animation-delay:.72s}
@keyframes levelPulse{0%{scale:.72;opacity:.75}75%,100%{scale:1.48;opacity:0}}
.levels-screen .h-scroll{top:74.25cqh}.level-fade{display:none}
.level-intro{z-index:9000}.level-intro.show .intro-cat{animation:introCatFloat 1.1s ease-in-out infinite alternate}@keyframes introCatFloat{to{translate:0 -1.1cqh}}

/* Game frame: floor fades first, then pieces/UI. */
.game-frame{background:none}
.game-floor{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}
.board-wrap{z-index:2}.power-dock,.game-hud,.game-bubble-layer{z-index:5}
.game-frame.game-intro .game-floor{animation:gameFloorIn .58s ease both}.game-frame.game-intro .game-cell{opacity:0;animation:pieceStageIn .52s cubic-bezier(.16,.84,.22,1) both;animation-delay:var(--entry-delay,.32s)}.game-frame.game-intro .power-dock,.game-frame.game-intro .game-hud{opacity:0;animation:gameUiIn .55s .48s cubic-bezier(.16,.84,.22,1) both}
@keyframes gameFloorIn{from{opacity:0;filter:blur(8px);scale:.985}to{opacity:1;filter:none;scale:1}}@keyframes pieceStageIn{0%{opacity:0;translate:0 -2.8cqh;scale:.9}75%{opacity:1;translate:0 .28cqh;scale:1.015}100%{opacity:1;translate:0 0;scale:1}}@keyframes gameUiIn{from{opacity:0;translate:1.4cqw 0}to{opacity:1;translate:0 0}}

.cell-art{transition:filter .12s;rotate:var(--rocket-rot,0deg)}
.game-cell.selected .cell-art{transform:scale(1.035)}
.game-cell.dragging .cell-art{transform:translate(var(--drag-x),var(--drag-y)) scale(1.035)}
.game-cell.swap-preview .cell-art{transform:translate(var(--preview-x),var(--preview-y))}
.game-cell.kind-cat .cell-art{animation:catAlive 3.4s ease-in-out infinite;animation-delay:var(--life-delay,0s);transform-origin:50% 72%}
@keyframes catAlive{0%,100%{scale:1 1;translate:0 0}28%{scale:1.022 .985;translate:-.055cqw -.11cqh}55%{scale:.988 1.025;translate:.07cqw -.24cqh}78%{scale:1.014 .993;translate:-.035cqw -.08cqh}}
.game-cell.cat-bop .cell-art{animation:catBop .46s cubic-bezier(.2,.9,.25,1)}
@keyframes catBop{45%{translate:0 -8%;scale:1.045}70%{translate:0 2%;scale:.99}100%{translate:0 0;scale:1}}
.game-cell.kind-fish .cell-art{animation:fishLive 2.4s ease-in-out infinite}.game-cell.kind-yarn .cell-art{animation:yarnLive 2.8s ease-in-out infinite}.game-cell.kind-hamster .cell-art{animation:hamsterLive 2.25s ease-in-out infinite}
@keyframes fishLive{50%{translate:.13cqw -.2cqh;rotate:2deg}}@keyframes yarnLive{50%{rotate:3deg;scale:1.02}}@keyframes hamsterLive{45%{translate:0 -.18cqh;scale:1.025 .98}70%{translate:0 0;scale:.99 1.02}}

/* Bomb fuse and nuclear core stay alive without changing the special's orientation. */
.game-cell.special-bomb:after{content:"";position:absolute;z-index:12;left:50%;top:6%;width:.34cqw;aspect-ratio:1;background:#fff7a6;box-shadow:0 0 .25cqw #fff,0 0 .55cqw #ffd33d,0 0 1cqw rgba(255,175,50,.85);animation:fusePixel .55s steps(2,end) infinite;pointer-events:none}
@keyframes fusePixel{0%,100%{scale:.7;opacity:.7;translate:-.12cqw .08cqh}50%{scale:1.45;opacity:1;translate:.12cqw -.12cqh}}
.game-cell.special-nuclear:after{content:"";position:absolute;z-index:12;left:50%;top:50%;width:1.05cqw;aspect-ratio:1;border-radius:50%;translate:-50% -50%;box-shadow:0 0 .45cqw rgba(255,220,70,.8);animation:nuclearCore 1s ease-in-out infinite;pointer-events:none}.game-cell.nuclear-prime:after{animation:nuclearPrime .12s steps(2,end) infinite}
@keyframes nuclearCore{50%{scale:1.25;opacity:.38}}@keyframes nuclearPrime{50%{scale:1.8;opacity:1;box-shadow:0 0 1.5cqw #fff4a6}}
.game-cell.bomb-prime .cell-art{animation:bombPrime .14s ease-in-out 2}@keyframes bombPrime{50%{scale:1.08 .94}}

/* Rich centered impact FX. */
.explosion-fx{position:absolute;z-index:55;left:0;top:0;width:1px;height:1px;pointer-events:none}.explosion-fx .explosion-cloud{position:absolute;left:0;top:0;translate:-50% -50%;object-fit:contain;opacity:0}.explosion-fx.bomb .explosion-cloud{width:27cqw;animation:bombCloudPro .82s cubic-bezier(.12,.75,.18,1) forwards}.explosion-fx.nuclear .explosion-cloud{width:42cqw;animation:nuclearCloudPro 1.12s cubic-bezier(.12,.75,.18,1) forwards}.explosion-fx .cloud-secondary{animation-delay:.08s!important;rotate:18deg;scale:.78}.shock-ring{position:absolute;left:0;top:0;width:8cqw;aspect-ratio:1;border:.36cqw solid rgba(255,238,205,.95);border-radius:50%;translate:-50% -50%;animation:shockRing .72s ease-out forwards}.nuclear .shock-ring{width:12cqw;border-width:.5cqw;animation-duration:.95s}.blast-pixel{position:absolute;left:0;top:0;width:.42cqw;aspect-ratio:1;border-radius:18%;background:#ffe8a0;box-shadow:0 0 .4cqw rgba(255,220,135,.85);translate:-50% -50%;animation:blastPixel .72s ease-out forwards;animation-delay:var(--delay,0ms)}
@keyframes shockRing{to{scale:3.2;opacity:0}}@keyframes blastPixel{to{translate:calc(-50% + var(--dx)) calc(-50% + var(--dy));rotate:var(--rot);scale:.25;opacity:0}}@keyframes bombCloudPro{12%{opacity:1;scale:.25}55%{opacity:1;scale:1.02}100%{opacity:0;scale:1.14;translate:-50% -54%}}@keyframes nuclearCloudPro{8%{opacity:1;scale:.18;filter:brightness(1.45)}45%{opacity:1;scale:1.03;filter:brightness(1.08)}100%{opacity:0;scale:1.24;translate:-50% -57%;filter:blur(2px)}}
.rocket-ghost{width:6.4cqw;height:8.2cqh;rotate:var(--rocket-angle,0deg);transform:translate(-50%,-50%);filter:drop-shadow(0 .3cqh .2cqh rgba(134,72,68,.2))}.rocket-pixel{position:absolute;z-index:54;width:.34cqw;aspect-ratio:1;border-radius:20%;background:#ffd26a;box-shadow:0 0 .25cqw rgba(255,183,83,.8);translate:-50% -50%;animation:rocketDust .34s ease-out forwards}@keyframes rocketDust{to{translate:calc(-50% + var(--dust-x)) calc(-50% + var(--dust-y));scale:.25;opacity:0}}
.rocket-hit{animation:rocketHit .24s ease-out both}@keyframes rocketHit{0%{filter:brightness(1)}35%{filter:brightness(1.7);scale:1.05}100%{filter:brightness(1);scale:1}}

/* Gravity uses a softer landing; visual is generated with FLIP in JS. */
.cell-landing{animation:cellLanding .18s ease-out}@keyframes cellLanding{50%{scale:1.025 .975}100%{scale:1}}

/* Special power activation feedback. */
.power-activation-fx{position:absolute;z-index:60;inset:0;pointer-events:none;overflow:hidden}.power-activation-fx .power-ring{position:absolute;left:var(--x,50%);top:var(--y,50%);width:5cqw;aspect-ratio:1;border:.38cqw solid rgba(244,169,205,.9);border-radius:50%;translate:-50% -50%;animation:powerRing .64s ease-out forwards}.power-activation-fx .power-spark{position:absolute;left:var(--x,50%);top:var(--y,50%);width:.35cqw;aspect-ratio:1;background:#fff0c7;box-shadow:0 0 .4cqw #f7b9d6;translate:-50% -50%;animation:powerSpark .56s ease-out forwards}@keyframes powerRing{to{scale:4.2;opacity:0}}@keyframes powerSpark{to{translate:calc(-50% + var(--dx)) calc(-50% + var(--dy));scale:.2;opacity:0}}

/* HUD: move/cat grouped left, exit on the far right. */
.power-title{font-size:2.2cqh}.power-item b{font-size:2.85cqh}.game-hud{grid-template-columns:17% 49% 13% 13% 8%}.game-hud span{font-size:2.0cqh}.game-hud b{font-size:3.85cqh}.hud-score b{font-size:3.7cqh}.hud-moves,.hud-cats{justify-content:flex-start}.game-exit{display:grid;place-items:center;justify-self:end;width:4.15cqw;height:7.4cqh;transition:translate .17s,scale .17s}.game-exit img{width:100%;height:100%;object-fit:contain}.game-exit:hover{translate:-.18cqw 0;scale:1.035}

/* Combo / invalid typography follows 13-combos-01 and size language-independently. */
.game-bubble{border-width:.24cqw;border-color:#d7979d;background:#f6dcdd;padding:7%;box-shadow:0 .35cqh .55cqh rgba(108,74,91,.07)}
.combo-bubble{width:8.7cqw;aspect-ratio:1}.combo-bubble.combo-2 .line-1{font-size:1.05cqh}.combo-bubble.combo-2 .line-2{font-size:2.35cqh}.combo-bubble.combo-2 .line-3{font-size:2.35cqh}.combo-bubble.combo-3 .line-1{font-size:1.15cqh}.combo-bubble.combo-3 .line-2{font-size:1.35cqh}.combo-bubble.combo-3 .line-3{font-size:2.7cqh}.combo-bubble.combo-4 .line-1{font-size:1.05cqh}.combo-bubble.combo-4 .line-2,.combo-bubble.combo-4 .line-3{font-size:2.3cqh}
.wrong-bubble{width:13.1cqw;background:#d39b9f;border-color:#f8e9e4;border-width:.24cqw}.wrong-bubble .line-1{font-size:1.4cqh}.wrong-bubble .line-2{font-size:3.05cqh}.wrong-bubble .line-3{font-size:1.35cqh;margin-top:.65cqh}.wrong-bubble .line-4{font-size:1.85cqh}
.rescue-bubble{width:9.5cqw}

/* Store is deliberately larger and easier to read. */
.store-card{width:min(88vw,156.45vh);padding:6.4cqh 5.3cqw 5cqh}.store-card h2{font-size:4.75cqh}.store-points{font-size:2.25cqh;margin:.8cqh 0 1.7cqh}.store-grid{gap:1.8cqw}.store-grid article{padding:1.2cqh .8cqw;border-radius:2cqw;background:rgba(255,244,241,.22)}.store-grid article>img{height:19.5cqh}.store-grid h3{font-size:2.55cqh;margin:.35cqh 0 .7cqh}.store-grid p{font-size:1.38cqh;line-height:1.12;min-height:8.6cqh}.store-grid small{font-size:1.4cqh}.store-grid article button{height:5.6cqh;margin-top:.7cqh;padding:0 1.15cqw;border-radius:2.8cqh;font-size:1.55cqh}

/* Cat-unlock composition: smaller floating cat with clear name below. */
.cat-unlock-art{left:7.4cqw;top:12.2cqh;width:34.0cqw;height:59.5cqh;animation:catFloat 3.1s ease-in-out infinite}.cat-unlock-name{left:8.2cqw;top:74.2cqh;width:32cqw;font-size:3.0cqh}.cat-unlock-copy .unlock-line-1{font-size:4.0cqh}.cat-unlock-copy .unlock-line-2,.cat-unlock-copy .unlock-line-3{font-size:7.8cqh}

/* Exit confirmation uses supplied stitched window/buttons. */
.game-exit-wrap{position:fixed;z-index:6500;inset:0;display:grid;place-items:center;background:rgba(91,58,91,.18);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);opacity:0;transition:opacity .2s}.game-exit-wrap.show{opacity:1}.game-exit-card{position:relative;width:min(58vw,103vh);aspect-ratio:1569/777;container-type:size;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.game-exit-card>img{position:absolute;inset:0;width:100%;height:100%;z-index:-1}.game-exit-card h2{font-size:6.4cqh;line-height:.9;margin:0 0 2cqh;text-transform:uppercase}.game-exit-card p{font-size:2.0cqh;line-height:1.1;margin:0 0 4cqh;text-transform:uppercase}.game-exit-actions{display:flex;gap:2cqw}.game-exit-actions button{width:19cqw;height:9.4cqh;background:url('../assets/but1.png') center/100% 100% no-repeat;font-size:2.6cqh;text-transform:uppercase;transition:scale .17s}.game-exit-actions button:hover{scale:1.025}.game-exit-actions .to-menu{background-image:url('../assets/but2.png');width:17cqw}

/* Responsive behavior keeps the supplied art proportions. Site reflows in portrait; game keeps exact frame registration. */
@media(max-width:900px) and (orientation:portrait){
  .design-canvas{width:100vw;height:100svh;transform:translate(-50%,-50%)}
  .catpuf-logo{left:20cqw;top:2.4cqh;width:60cqw}.page-title{left:4cqw;top:15.2cqh;font-size:6.4cqh}.back-btn{left:82cqw;top:15cqh;width:13cqw}
  .site-footer{display:none}.v-scroll{right:3.5cqw;top:29cqh;height:58cqh;width:3cqw}.v-scroll i{width:.35cqw}.v-scroll img{width:3.4cqw}.h-scroll{left:5cqw;right:5cqw;top:88cqh}.h-scroll img{width:25cqw}.h-scroll i{height:.25cqh}
  .loading-spinner{left:25cqw;top:34cqh;width:50cqw}.loading-center h2{top:66cqh;font-size:4.8cqh}
  .language-screen .catpuf-logo{left:20cqw;top:2.2cqh;width:60cqw}
  .language-choice{width:30cqw!important;height:31cqh!important}
  .language-choice .language-cat{left:50%!important;top:0!important;width:auto!important;height:19cqh!important;translate:-50% 0}
  .language-choice .language-flag{left:50%!important;top:16.4cqh!important;width:16.5cqw!important;translate:-50% 0}
  .language-choice:nth-child(1){left:2cqw!important;top:19cqh!important}.language-choice:nth-child(2){left:35cqw!important;top:19cqh!important}.language-choice:nth-child(3){left:68cqw!important;top:19cqh!important}
  .language-choice:nth-child(4){left:2cqw!important;top:49cqh!important}.language-choice:nth-child(5){left:35cqw!important;top:49cqh!important}.language-choice:nth-child(6){left:68cqw!important;top:49cqh!important}
  .language-title{left:10cqw;top:83.5cqh;width:80cqw;font-size:3.55cqh;white-space:normal}
  .home-screen .catpuf-logo{left:20cqw;top:1.5cqh;width:60cqw}.home-objects{left:10cqw;top:17cqh;width:80cqw}.home-cat{left:31cqw;top:23cqh;width:38cqw}
  .home-item{width:45cqw;height:9.8cqh}.home-item .puf-button{font-size:3.5cqh}.home-item>img{max-width:18cqw!important;max-height:13cqh!important;top:-2.5cqh!important}.home-story{left:3cqw;top:53cqh}.home-scores{left:52cqw;top:53cqh}.home-cats{left:3cqw;top:64cqh}.home-settings{left:52cqw;top:64cqh}.home-help{left:3cqw;top:75cqh}.home-credits{left:52cqw;top:75cqh}.home-item:not(.reverse)>img{left:-2cqw!important}.home-item.reverse>img{right:-2cqw!important}.start-wrap{left:20cqw;top:86cqh;width:60cqw;height:10cqh}.start-wrap .puf-button{font-size:4.7cqh}.start-wrap>img{right:-10cqw;top:-1cqh;width:24cqw}
  .story-cat{left:0;top:63cqh;width:32cqw}.story-copy{left:10cqw;top:29cqh;width:78cqw;height:58cqh;padding:0 3cqw 6cqh}.story-copy h2{font-size:3.3cqh;margin-bottom:2cqh}.story-copy p{font-size:1.65cqh}.story-copy strong{font-size:2cqh}.story-screen .v-scroll{right:4cqw;top:30cqh;height:56cqh}
  .cats-screen .page-count,.levels-screen .page-count{left:5cqw;top:24cqh;font-size:3.6cqh}.cat-gallery{left:3cqw;right:3cqw;top:34cqh;height:50cqh;gap:3cqw;padding:0 1cqw}.cat-card{flex-basis:44cqw;height:48cqh}.cat-art{width:44cqw;height:39cqh}.cat-art>img:first-child{width:42cqw;height:39cqh}.cat-card b{top:40.5cqh;font-size:2.8cqh}.lock-art{width:23cqw!important}.cats-screen .h-scroll{top:86cqh}
  .help-scroll{left:7cqw;top:28cqh;width:83cqw;height:60cqh;padding:0 4cqw 5cqh}.help-intro{grid-template-columns:28% 1fr}.help-grid{grid-template-columns:1fr}.help-scroll h2{font-size:2.8cqh}.help-scroll p{font-size:1.55cqh}.help-item h3{font-size:2.2cqh}.help-item p{font-size:1.4cqh}.help-screen .v-scroll{right:3cqw;top:29cqh;height:58cqh}
  .scores-cat{left:-2cqw;top:65cqh;width:34cqw}.scores-list{left:11cqw;top:30cqh;width:82cqw;height:57cqh}.score-row{height:8.8cqh;grid-template-columns:9% 43% 20% 28%;font-size:2.2cqh}.scores-screen .v-scroll{right:2cqw;top:30cqh;height:57cqh}
  .settings-cat{left:-2cqw;top:67cqh;width:32cqw}.settings-copy{left:12cqw;top:27cqh;width:76cqw;font-size:2.65cqh}.setting{height:22cqh}.music-setting{left:7cqw;top:48cqh;width:45cqw}.music-setting .setting-icon{width:20cqw}.music-setting b{left:19cqw;font-size:3.4cqh}.music-setting .toggle{left:17cqw;top:9cqh;width:28cqw}.sfx-setting{left:50cqw;top:48cqh;width:47cqw}.sfx-setting b{left:0;font-size:3.4cqh}.sfx-setting .toggle{left:0;top:9cqh;width:28cqw}.sfx-setting .setting-icon{left:24cqw;top:1cqh;width:24cqw}
  .credits-cat{left:-2cqw;top:71cqh;width:35cqw}.credits-layout{top:0}.credit-tools{left:5cqw;top:29cqh;width:42cqw}.credit-media{left:53cqw;top:29cqh;width:42cqw}.credit-col h2{font-size:2.2cqh}.credit-cr1{width:13cqw;margin:1.3cqh auto 2cqh}.credit-cr3{width:38cqw}.credit-cr2{width:34cqw;margin:1.3cqh auto 3.2cqh}.credit-cr4{width:24cqw}.credit-owner{left:28cqw;top:65cqh;width:68cqw}.credit-roles{font-size:1.6cqh;line-height:.94}.credit-owner>strong{font-size:2.2cqh;margin-top:1.1cqh}.credit-owner>b{font-size:1.8cqh}.credit-cr5{width:10cqw;margin:.8cqh auto 0}
  .level-track{left:4cqw;right:4cqw;top:35cqh;height:48cqh;gap:4cqw}.level-node{flex-basis:43cqw;height:46cqh}.level-disc{width:42cqw;height:38cqh}.level-node span{top:13cqh;width:42cqw;font-size:7cqh}.level-node small{top:38cqh;width:42cqw;font-size:3.5cqh}.level-lock{left:9cqw;top:2cqh;width:25cqw;height:33cqh}.levels-screen .h-scroll{top:85cqh}
  .cat-detail,.store-card{width:94vw;aspect-ratio:auto;min-height:70svh}.game-modal,.cat-unlock-window{width:96vw}.cat-detail .catpuf-logo{left:19cqw;top:-7cqh;width:62cqw}.detail-cat{left:8cqw;top:12cqh;width:84cqw;height:36cqh}.detail-copy{left:8cqw;top:48cqh;width:84cqw;height:45cqh}.detail-copy h2{font-size:5.2cqh;margin-bottom:2cqh}.detail-copy p{font-size:1.7cqh}.detail-prev{left:1cqw}.detail-next{right:1cqw}.detail-arrow{top:44%;width:11cqw}.overlay-close{right:-2cqw;top:-2cqh;width:15cqw}
  .game-stage{place-items:center}.game-frame{width:100vw;filter:none}
}
@media(max-height:620px) and (orientation:landscape){.site-footer{display:none}.game-frame{width:min(98vw,174.2vh)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}


@media(max-width:900px) and (orientation:portrait){
  .page-title{top:14.8cqh;font-size:5.25cqh}.back-btn{top:14.4cqh}
  .home-boom{left:8cqw;top:14cqh;width:84cqw}.home-screen .home-objects{left:10cqw;top:18cqh;width:80cqw}.home-screen .home-cat{left:31cqw;top:24cqh;width:38cqw}
  .home-item{width:40cqw;height:8.6cqh}.home-item .puf-button{font-size:2.75cqh}.home-story{left:7cqw;top:53cqh}.home-scores{left:53cqw;top:53cqh}.home-cats{left:7cqw;top:63cqh}.home-settings{left:53cqw;top:63cqh}.home-help{left:7cqw;top:73cqh}.home-credits{left:53cqw;top:73cqh}.home-item>img{width:12cqw!important;height:auto!important;max-width:none!important;max-height:none!important;top:-2.2cqh!important}.home-item:not(.reverse)>img{left:-5cqw!important}.home-item.reverse>img{right:-5cqw!important}.start-wrap{left:22cqw;top:84cqh;width:56cqw;height:10cqh}.start-wrap .puf-button{font-size:3.8cqh}.start-wrap>img{width:20cqw;right:-8cqw;top:-1cqh}
  .story-copy{left:9cqw;top:27.5cqh;width:77cqw;height:58cqh}.story-screen .v-scroll{right:4.2cqw;top:28cqh;height:57cqh}.story-copy p{font-size:1.5cqh}
  .cats-screen .page-count,.levels-screen .page-count{top:23.3cqh;font-size:3.0cqh}.cats-screen .h-scroll,.levels-screen .h-scroll{top:86cqh}
  .detail-cat{left:15cqw;top:13cqh;width:70cqw;height:34cqh}.detail-copy{left:9cqw;top:48cqh;width:82cqw}.detail-copy h2{font-size:4.6cqh}.detail-copy p{font-size:1.55cqh}
  .help-left-cat,.help-right-cat{display:none}.help-scroll{left:7cqw;top:27cqh;width:82cqw;height:59cqh;padding:0 4cqw 6cqh}.help-screen .v-scroll{right:3cqw;top:28cqh;height:57cqh}.help-intro-copy{min-height:58cqh}.help-intro-copy .help-lead{font-size:2.5cqh}.help-row,.help-row.art-right{grid-template-columns:28% 72%;min-height:25cqh}.help-row.art-right>img{order:1}.help-row.art-right>div{order:2}.help-row>img{height:18cqh}.help-row h3{font-size:2.35cqh}.help-row p{font-size:1.24cqh}.help-bottom{grid-template-columns:1fr;gap:2cqh}
  .scores-list{left:9cqw;top:28cqh;width:80cqw;height:57cqh}.scores-screen .v-scroll{right:2.2cqw;top:29cqh;height:56cqh}.score-row{font-size:2.0cqh;grid-template-columns:9% 43% 19% 29%}
  .level-track{left:3cqw;right:3cqw;top:34cqh;height:49cqh;gap:4cqw;padding:0 27cqw;mask-image:linear-gradient(to right,transparent,#000 12%,#000 88%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,#000 12%,#000 88%,transparent)}.level-node{flex-basis:38cqw;height:45cqh}.level-disc{left:0;width:37cqw;height:35cqh}.level-node span{left:0;top:11.7cqh;width:37cqw;font-size:6cqh}.level-node small{left:0;top:35.3cqh;width:37cqw;font-size:3cqh}.level-lock{left:8cqw;width:22cqw;height:33cqh}.level-node.current:before,.level-node.current:after{width:34cqw}.levels-screen .h-scroll{top:84.8cqh}
  .store-card{width:94vw;min-height:76svh;max-height:88svh;overflow:auto;padding:7cqh 5cqw}.store-grid{grid-template-columns:1fr 1fr}.store-grid article>img{height:15cqh}.store-grid h3{font-size:2.2cqh}.store-grid p{font-size:1.35cqh;min-height:8cqh}.store-grid article button{font-size:1.45cqh}
  .game-exit-card{width:92vw}.game-exit-card h2{font-size:4.5cqh}.game-exit-card p{font-size:1.65cqh}.game-exit-actions{gap:2cqw}.game-exit-actions button{width:38cqw;height:8cqh;font-size:2.1cqh}.game-exit-actions .to-menu{width:38cqw}
}

/* Final animation variable alignment / stacking corrections. */
.level-node.current{isolation:isolate}.level-node.current:before,.level-node.current:after{z-index:0}.level-disc,.level-node>span,.level-node>small,.level-node>.level-lock{z-index:2}
.explosion-fx .cloud-2{animation-delay:.075s!important;rotate:17deg;scale:.78}
.blast-pixel{animation-delay:var(--px-delay,0ms)}
@keyframes blastPixel{to{translate:calc(-50% + var(--px-x,0px)) calc(-50% + var(--px-y,0px));rotate:var(--px-rot,24deg);scale:.25;opacity:0}}
.power-activation-fx{inset:auto;width:1px;height:1px;overflow:visible;translate:-50% -50%}
.power-activation-fx .power-ring,.power-activation-fx .power-spark{left:0;top:0}
.power-activation-fx .power-spark{animation-delay:var(--spark-delay,0ms)}
@keyframes powerSpark{to{translate:calc(-50% + var(--spark-x,0px)) calc(-50% + var(--spark-y,0px));scale:.2;opacity:0}}
.game-cell.kind-special.special-rocket .cell-art{rotate:var(--rocket-rot,0deg)!important}
/* Keep special direction in the independent rotate channel; never double-rotate during swaps/falls. */
.cell-art{transform:translate(0,0);rotate:var(--rocket-rot,0deg)}
.game-hud{grid-template-columns:17% 44% 14% 14% 11%}
.game-frame.game-intro .power-dock,.game-frame.game-intro .game-hud{animation-delay:.62s}

/* Living board characters/items from the supplied help design. */
.game-cell.kind-ice .ice-under{z-index:2;filter:saturate(.92) brightness(.98)}
.game-cell.kind-ice .ice-shell{z-index:5;opacity:.94;animation:iceBreath 2.8s ease-in-out infinite;filter:drop-shadow(0 .12cqh .14cqh rgba(117,174,213,.18))}
@keyframes iceBreath{50%{scale:1.018;filter:brightness(1.055) drop-shadow(0 .16cqh .25cqh rgba(117,174,213,.3))}}
.ice-shatter{position:absolute!important;z-index:28!important;left:0!important;right:0!important;top:0!important;bottom:0!important;margin:auto!important;width:5.443658cqw!important;height:9.910803cqh!important;object-fit:contain;pointer-events:none;animation:iceShatter .58s cubic-bezier(.15,.72,.2,1) forwards}
@keyframes iceShatter{0%{opacity:1;scale:1;filter:brightness(1)}22%{filter:brightness(1.55);scale:1.06}100%{opacity:0;scale:1.25;rotate:7deg;filter:brightness(1.2) blur(1px)}}
.feature-blast{animation:featureBlast .18s ease-out both}@keyframes featureBlast{45%{scale:1.08;filter:brightness(1.35)}100%{scale:.42;opacity:0;filter:brightness(1.15)}}
.feature-catch-fx{position:absolute;z-index:58;width:1px;height:1px;pointer-events:none}.feature-catch-fx>img{position:absolute;left:0;top:0;width:5.8cqw;height:10.4cqh;object-fit:contain;translate:-50% -50%;animation:featureCatchArt .62s cubic-bezier(.16,.86,.2,1) forwards}.feature-catch-fx>i{position:absolute;left:0;top:0;width:.32cqw;aspect-ratio:1;border-radius:35%;background:#fff0cb;box-shadow:0 0 .32cqw rgba(247,173,205,.9);translate:-50% -50%;animation:featureCatchPixel .55s ease-out forwards}
@keyframes featureCatchArt{0%{scale:.82;opacity:.55}35%{scale:1.12;opacity:1}100%{scale:.6;translate:-50% -75%;opacity:0}}@keyframes featureCatchPixel{to{translate:calc(-50% + var(--fx-x)) calc(-50% + var(--fx-y));scale:.1;opacity:0}}
.yarn-roll-fx{position:absolute;z-index:59;width:6.2cqw;height:10.7cqh;pointer-events:none;translate:-50% -50%}.yarn-roll-fx .roll-yarn{position:absolute;left:2%;bottom:0;width:72%;height:72%;object-fit:contain}.yarn-roll-fx .roll-cat{position:absolute;right:-5%;top:-12%;width:72%;height:76%;object-fit:contain;animation:rollCatBob .17s ease-in-out infinite alternate}@keyframes rollCatBob{to{translate:0 -.25cqh;rotate:2deg}}

/* ==========================================================================\n   FIDELITY LOCK 2026-08-08\n   Authoritative overrides measured against the supplied 1920x1080 concepts.\n   These rules intentionally override earlier experimental polish rules.\n   ========================================================================== */

/* Global type: slightly smaller, never crushed together. */
body,button,input{font-family:Catpuf,sans-serif;letter-spacing:.008em}
.page-title{
  position:absolute!important;
  left:3.78cqw!important;
  top:12.15cqh!important;
  margin:0!important;
  font-size:6.55cqh!important;
  line-height:.92!important;
  letter-spacing:.018em!important;
  white-space:nowrap;
}
.back-btn{left:92.15cqw!important;top:13.55cqh!important;width:4.05cqw!important}
.catpuf-logo{left:32.92cqw!important;top:5.85cqh!important;width:34.2cqw!important}

/* Counters belong BELOW the heading, not in normal document flow. */
.cats-screen .page-count,.levels-screen .page-count{
  position:absolute!important;
  z-index:12!important;
  left:4.18cqw!important;
  top:34.15cqh!important;
  width:auto!important;
  margin:0!important;
  font-size:3.82cqh!important;
  line-height:1!important;
  letter-spacing:.018em!important;
}

/* Vertical scroll visual: the thumb is centered precisely ON the rail. */
.v-scroll{pointer-events:none!important}
.v-scroll i{z-index:1!important;left:50%!important;transform:translateX(-50%)!important}
.v-scroll img{z-index:2!important;left:50%!important;transform:translate(-50%,var(--scroll-pos,0px))!important}

/* Story: content is centered as in 04-story-01 and never touches the rail. */
.story-copy{
  left:21.35cqw!important;
  top:31.9cqh!important;
  width:52.9cqw!important;
  height:52.2cqh!important;
  padding:0 1.7cqw 4.2cqh 1.2cqw!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  text-align:center!important;
}
.story-copy h2{font-size:3.45cqh!important;line-height:1.12!important;letter-spacing:.012em!important;margin:0 0 2.6cqh!important}
.story-copy p{font-size:1.48cqh!important;line-height:1.22!important;letter-spacing:.012em!important;margin:0 auto 2.0cqh!important;max-width:50.2cqw!important}
.story-copy strong{font-size:1.9cqh!important;line-height:1.18!important;letter-spacing:.014em!important}
.story-copy .story-plea{font-size:1.55cqh!important;margin:2.1cqh auto!important}
.story-screen .v-scroll{left:76.9cqw!important;right:auto!important;top:35.1cqh!important;height:51.0cqh!important;width:1.45cqw!important}
.story-screen .v-scroll img{width:1.48cqw!important}
.story-cat{left:1.8cqw!important;top:52.3cqh!important;width:17.1cqw!important}

/* Help: first viewport follows 06-help-01; continuation follows 06-help-02. */
.help-scroll{
  left:21.15cqw!important;
  top:30.55cqh!important;
  width:55.0cqw!important;
  height:53.0cqh!important;
  padding:0 2.4cqw 5cqh!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  text-align:center!important;
}
.help-intro-copy{min-height:51cqh!important;padding:0!important;display:flex!important;align-items:center!important}
.help-intro-copy h2{font-size:2.9cqh!important;line-height:1!important;letter-spacing:.014em!important;margin:0 0 2.55cqh!important}
.help-intro-copy .help-lead{font-size:2.75cqh!important;line-height:1.08!important;letter-spacing:.008em!important;max-width:48cqw!important;margin:0 auto 2.15cqh!important}
.help-intro-copy p:not(.help-lead){font-size:1.36cqh!important;line-height:1.18!important;letter-spacing:.01em!important;max-width:48.5cqw!important;margin:0 auto 2.65cqh!important}
.help-continuation{width:49.5cqw!important;margin:1.5cqh auto 0!important}
.help-row,.help-row.art-right{min-height:25cqh!important;grid-template-columns:30% 70%!important;gap:1.3cqw!important;padding:1.0cqh .8cqw!important}
.help-row.art-right>img{order:2!important}.help-row.art-right>div{order:1!important}
.help-row>img{height:18.5cqh!important;width:100%!important;object-fit:contain!important}
.help-row h3{font-size:2.45cqh!important;line-height:1!important;letter-spacing:.014em!important;margin:0 0 1.1cqh!important}
.help-row p{font-size:1.16cqh!important;line-height:1.2!important;letter-spacing:.01em!important;margin:0!important}
.help-wide-heading h2,.power-heading h2,.help-bottom h2,.help-tips h2{letter-spacing:.014em!important}
.help-screen .v-scroll{left:80.35cqw!important;right:auto!important;top:35.2cqh!important;height:49.7cqh!important;width:1.45cqw!important}
.help-screen .v-scroll img{width:1.48cqw!important}
.help-left-cat{left:1.55cqw!important;top:53.0cqh!important;width:17.0cqw!important}.help-right-cat{right:2.0cqw!important;top:64.2cqh!important;width:15.0cqw!important}

/* Scores: keep the score table left of the rail with a clean gutter. */
.scores-list{left:23.2cqw!important;top:31.2cqh!important;width:61.0cqw!important;height:52.4cqh!important;padding-right:1.7cqw!important;overflow-x:hidden!important;overflow-y:auto!important}
.score-row{height:10.25cqh!important;grid-template-columns:8% 42% 22% 28%!important;font-size:3.25cqh!important;letter-spacing:.012em!important}
.scores-screen .v-scroll{left:85.55cqw!important;right:auto!important;top:31.8cqh!important;height:52.2cqh!important;width:1.45cqw!important}
.scores-screen .v-scroll img{width:1.48cqw!important}

/* Cats: five cards in the desktop design and counter under title. */
.cat-gallery{left:3.25cqw!important;right:3.25cqw!important;top:47.0cqh!important;height:35.3cqh!important;gap:3.45cqw!important;padding:0 .8cqw!important}
.cat-card{flex:0 0 16.05cqw!important;height:34cqh!important}.cat-art{width:16.05cqw!important;height:27.3cqh!important}.cat-art>img:first-child{width:16.05cqw!important;height:27.0cqh!important}.cat-card b{top:29.0cqh!important;font-size:2.55cqh!important;letter-spacing:.012em!important}.cats-screen .h-scroll{top:84.1cqh!important}

/* Levels: six compact nodes fit, newest UNLOCKED level is centered and pulses. */
.level-track{
  left:3.15cqw!important;right:3.15cqw!important;top:46.0cqh!important;height:33.0cqh!important;
  gap:1.55cqw!important;padding:0 42.2cqw!important;scroll-snap-type:x mandatory!important;
  mask-image:linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%)!important;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%)!important;
}
.level-node{flex:0 0 13.05cqw!important;height:31cqh!important;scroll-snap-align:center!important}
.level-disc{left:.15cqw!important;top:0!important;width:12.65cqw!important;height:23.35cqh!important}
.level-node span{left:.15cqw!important;top:7.7cqh!important;width:12.65cqw!important;font-size:4.35cqh!important;line-height:1!important;letter-spacing:.01em!important}
.level-node small{left:.15cqw!important;top:24.05cqh!important;width:12.65cqw!important;font-size:2.25cqh!important;letter-spacing:.12cqw!important}
.level-lock{left:2.75cqw!important;top:.2cqh!important;width:7.45cqw!important;height:21.6cqh!important}
.level-node.current:before,.level-node.current:after{left:49%!important;top:38%!important;width:10.8cqw!important;border-width:.28cqw!important;z-index:0!important}
.levels-screen .h-scroll{top:84.15cqh!important}

/* Home typography and side art remain separated from button text. */
.home-item{width:23.5cqw!important;height:14.15cqh!important}
.home-item .puf-button{font-size:3.55cqh!important;letter-spacing:.012em!important}
.start-wrap .puf-button{font-size:4.45cqh!important;letter-spacing:.012em!important}
.home-boom{left:28.2cqw!important;top:13.2cqh!important;width:43.6cqw!important}
.home-story{left:6.65cqw!important;top:30.45cqh!important}.home-cats{left:2.25cqw!important;top:45.15cqh!important}.home-help{left:6.65cqw!important;top:59.15cqh!important}
.home-scores{left:69.55cqw!important;top:30.45cqh!important}.home-settings{left:73.15cqw!important;top:45.15cqh!important}.home-credits{left:69.55cqw!important;top:59.15cqh!important}
.home-story>img{left:-.55cqw!important;top:-5.45cqh!important;width:13.25cqw!important}.home-cats>img{left:.45cqw!important;top:-1.45cqh!important;width:10.45cqw!important}.home-help>img{left:-.65cqw!important;top:-2.55cqh!important;width:13.15cqw!important}.home-scores>img{right:-.75cqw!important;top:-5.25cqh!important;width:13.15cqw!important}.home-settings>img{right:-1.45cqw!important;top:-4.35cqh!important;width:13.65cqw!important}.home-credits>img{right:-.65cqw!important;top:-4.45cqh!important;width:13.45cqw!important}

/* Board safety: only pieces animate; board/frame can never be visually cleared by a swap. */
.board,.board-wrap,.game-floor,.game-hud,.power-dock{opacity:1;visibility:visible}
.game-cell,.cell-art{backface-visibility:hidden;-webkit-backface-visibility:hidden}
.game-cell.dragging .cell-art,.game-cell.swap-preview .cell-art{will-change:transform}

@media(max-width:900px) and (orientation:portrait){
  .page-title{left:5cqw!important;top:15.2cqh!important;font-size:4.65cqh!important;letter-spacing:.02em!important}
  .back-btn{left:83cqw!important;top:14.7cqh!important;width:12cqw!important}
  .cats-screen .page-count,.levels-screen .page-count{left:5.2cqw!important;top:22.1cqh!important;font-size:2.75cqh!important}
  .story-copy{left:8cqw!important;top:28cqh!important;width:79cqw!important;height:58cqh!important;padding-right:5cqw!important}.story-screen .v-scroll{left:91cqw!important;top:29cqh!important;height:56cqh!important;width:3cqw!important}.story-screen .v-scroll img{width:3.1cqw!important}
  .help-scroll{left:7cqw!important;top:28cqh!important;width:81cqw!important;height:58cqh!important;padding:0 5cqw 6cqh 3cqw!important}.help-screen .v-scroll{left:91cqw!important;top:29cqh!important;height:56cqh!important;width:3cqw!important}.help-screen .v-scroll img{width:3.1cqw!important}
  .scores-list{left:8cqw!important;top:29cqh!important;width:80cqw!important;height:57cqh!important;padding-right:5cqw!important}.scores-screen .v-scroll{left:91cqw!important;top:30cqh!important;height:55cqh!important;width:3cqw!important}.scores-screen .v-scroll img{width:3.1cqw!important}
  .level-track{left:3cqw!important;right:3cqw!important;top:34cqh!important;height:49cqh!important;gap:3cqw!important;padding:0 30cqw!important}.level-node{flex-basis:35cqw!important;height:44cqh!important}.level-disc{width:34cqw!important;height:33cqh!important}.level-node span{top:11.1cqh!important;width:34cqw!important;font-size:5.2cqh!important}.level-node small{top:33.2cqh!important;width:34cqw!important;font-size:2.7cqh!important}.level-lock{left:7.6cqw!important;width:20cqw!important;height:31cqh!important}.level-node.current:before,.level-node.current:after{width:31cqw!important}
}


/* ==========================================================================
   HOME BALANCE + HELP FLOW + ONE-SHOT GAME ENTRANCE
   Measured against supplied 03-home.png / 06-help-01.png.
   ========================================================================== */

/* 03-home: compact stitched buttons and the six supplied BO side characters. */
.home-item{width:16.145833cqw!important;height:9.722222cqh!important}
.home-item .puf-button{font-size:3.05cqh!important;line-height:.95!important;letter-spacing:.014em!important}
.home-item .puf-button span{transform:translateY(-.03cqh)!important}
.home-item:not(.reverse) .puf-button{padding-left:12%!important}
.home-item.reverse .puf-button{padding-right:12%!important}
.home-item>img{height:auto!important;max-width:none!important;max-height:none!important;object-fit:contain!important}
.home-story{left:13.958333cqw!important;top:32.777778cqh!important}
.home-cats{left:6.822917cqw!important;top:46.481481cqh!important}
.home-help{left:13.854167cqw!important;top:60.370370cqh!important}
.home-scores{left:69.375cqw!important;top:31.944444cqh!important}
.home-settings{left:76.614583cqw!important;top:46.296296cqh!important}
.home-credits{left:69.53125cqw!important;top:60.185185cqh!important}
.home-story>img{left:-4.583333cqw!important;right:auto!important;top:-5cqh!important;width:9.270833cqw!important}
.home-cats>img{left:-3.90625cqw!important;right:auto!important;top:-1.388889cqh!important;width:7.34375cqw!important}
.home-help>img{left:-4.84375cqw!important;right:auto!important;top:-3.703704cqh!important;width:9.427083cqw!important}
.home-scores>img{right:-5.729167cqw!important;left:auto!important;top:-5.833333cqh!important;width:10.572917cqw!important}
.home-settings>img{right:-5.46875cqw!important;left:auto!important;top:-4.722222cqh!important;width:9.270833cqw!important}
.home-credits>img{right:-4.322917cqw!important;left:auto!important;top:-3.888889cqh!important;width:9.270833cqw!important}

/* The center composition stays in its designed position but feels alive. */
.home-boom{will-change:translate,scale;animation:homeBoomFloat 6.8s ease-in-out infinite}
.home-objects{will-change:translate,rotate;animation:homeObjectsFloat 7.9s -1.4s ease-in-out infinite}
.home-cat{will-change:translate,scale,rotate;animation:homeCatFloat 5.35s -.8s ease-in-out infinite}
@keyframes homeBoomFloat{0%,100%{translate:0 0;scale:1}45%{translate:.12cqw -.55cqh;scale:1.008}72%{translate:-.10cqw -.18cqh;scale:1.003}}
@keyframes homeObjectsFloat{0%,100%{translate:0 0;rotate:0deg}38%{translate:-.20cqw -.48cqh;rotate:-.16deg}72%{translate:.16cqw .12cqh;rotate:.12deg}}
@keyframes homeCatFloat{0%,100%{translate:0 0;scale:1;rotate:0deg}35%{translate:.08cqw -.72cqh;scale:1.009;rotate:.12deg}70%{translate:-.07cqw -.20cqh;scale:1.004;rotate:-.08deg}}

/* Help continuation is one continuous document: no fake viewport-sized gap before PILLOWS. */
.help-intro-copy{min-height:0!important;display:block!important;padding:0 0 .8cqh!important}
.help-continuation{margin:.35cqh auto 0!important}
.help-continuation .help-row:first-child{padding-top:0!important;margin-top:0!important}
.help-intro-copy p:last-child{margin-bottom:.75cqh!important}

/* Once the game is interactive, entrance opacity can never replay on a tap/render. */
.game-frame.intro-finished .game-cell,.game-frame.intro-finished .game-floor,.game-frame.intro-finished .power-dock,.game-frame.intro-finished .game-hud{opacity:1!important;animation:none!important}

@media(max-width:900px) and (orientation:portrait){
  .home-item{width:40cqw!important;height:8.6cqh!important}
  .home-item .puf-button{font-size:2.45cqh!important;letter-spacing:.012em!important}
  .home-story{left:7cqw!important;top:53cqh!important}.home-scores{left:53cqw!important;top:53cqh!important}
  .home-cats{left:7cqw!important;top:63cqh!important}.home-settings{left:53cqw!important;top:63cqh!important}
  .home-help{left:7cqw!important;top:73cqh!important}.home-credits{left:53cqw!important;top:73cqh!important}
  .home-item>img{width:12cqw!important;height:auto!important;top:-2.2cqh!important}
  .home-item:not(.reverse)>img{left:-5cqw!important;right:auto!important}.home-item.reverse>img{right:-5cqw!important;left:auto!important}
}


/* ==========================================================================\n   PLAY FEEL + MOBILE FIDELITY PASS 2026-08-08\n   Final overrides requested for level centering, HUD, tactile pillows, store,\n   combo graphics and living board motion. Desktop game composition is kept\n   intact on mobile; it only scales as one registered frame.\n   ========================================================================== */

/* LEVELS: the numeral uses the exact same box as the circular artwork. */
.level-node>span{
  left:.15cqw!important;top:0!important;width:12.65cqw!important;height:23.35cqh!important;
  display:grid!important;place-items:center!important;padding:0!important;margin:0!important;
  font-size:4.15cqh!important;line-height:1!important;transform:translateY(.05cqh)!important;
}

/* Level interstitial: the cat never flies in from a corner; it simply appears where designed. */
.level-intro{transition:opacity .34s ease,filter .34s ease,transform .34s ease!important}
.intro-cat{
  left:27%!important;top:57%!important;width:min(18vw,32vh)!important;
  transform:translate(-50%,-50%)!important;translate:0 0!important;opacity:0!important;
  transition:opacity .42s ease!important;animation:none!important;
}
.level-intro.show .intro-cat{opacity:1!important;transform:translate(-50%,-50%)!important;animation:introCatBreathe 2.7s .45s ease-in-out infinite!important}
@keyframes introCatBreathe{50%{scale:1.018 .985}}
.level-intro.go .intro-cat{opacity:0!important}

/* Game intro: floor/UI fade first; pieces rain into their registered cells and land softly. */
.game-frame.game-intro .game-floor{opacity:0;animation:gameFloorIn .52s .02s ease both!important}
.game-frame.game-intro .power-dock,.game-frame.game-intro .game-hud{opacity:0;animation:gameUiFade .52s .34s ease both!important}
.game-frame.game-intro .game-cell{opacity:1!important;animation:none!important}
.game-frame.game-intro .game-cell .cell-art{
  opacity:0;animation:introPieceDrop .72s cubic-bezier(.12,.82,.18,1) both!important;
  animation-delay:var(--entry-delay,.25s)!important;
}
@keyframes gameUiFade{from{opacity:0;filter:blur(3px)}to{opacity:1;filter:none}}
@keyframes introPieceDrop{
  0%{opacity:0;translate:0 -43cqh;scale:.91 1.09}
  68%{opacity:1;translate:0 8%;scale:1.075 .88}
  83%{opacity:1;translate:0 -4%;scale:.975 1.05}
  100%{opacity:1;translate:0 0;scale:1 1}
}
.game-frame.game-intro .game-cell.kind-stone .cell-art,
.game-frame.game-intro .game-cell.kind-cat .cell-art,
.game-frame.game-intro .game-cell.kind-special .cell-art,
.game-frame.game-intro .game-cell.kind-fish .cell-art,
.game-frame.game-intro .game-cell.kind-hamster .cell-art,
.game-frame.game-intro .game-cell.kind-yarn .cell-art{
  animation-name:introRigidDrop!important;
}
@keyframes introRigidDrop{0%{opacity:0;translate:0 -42cqh;scale:.94}82%{opacity:1;translate:0 4%;scale:1.02}100%{opacity:1;translate:0 0;scale:1}}

/* Larger registered pieces: almost touch, but preserve a tiny even breathing gap. */
.cell-art,.game-cell.kind-cat .cell-art,.game-cell.kind-stone .cell-art,.game-cell.kind-special .cell-art,
.rip-piece,.stone-frag,.ice-shatter{width:5.86cqw!important;height:10.63cqh!important}
.game-cell.kind-ice .cell-art{width:5.86cqw!important;height:10.63cqh!important}

/* Pillows react like soft material to a fingertip, not like flat tiles. */
.game-cell.kind-pillow .cell-art{transition:scale .105s cubic-bezier(.2,.8,.2,1),filter .12s!important;transform-origin:50% 55%!important}
.game-cell.kind-pillow.pressed:not(.dragging) .cell-art{scale:.89 .86!important;filter:brightness(1.04) saturate(1.03)!important}
.game-cell.kind-pillow.selected:not(.pressed) .cell-art{transform:none!important;scale:1.035!important}
.game-cell.dragging .cell-art{scale:1.025!important}

/* Cats breathe in place: no lateral travel. */
.game-cell.kind-cat .cell-art{animation:catBreathing 3.25s ease-in-out infinite!important;animation-delay:var(--life-delay,0s)!important;transform-origin:50% 72%!important}
@keyframes catBreathing{0%,100%{translate:0 0;scale:1 1}32%{translate:0 0;scale:1.018 .985}62%{translate:0 0;scale:.992 1.022}82%{translate:0 0;scale:1.01 .994}}
.game-cell.cat-bop .cell-art{animation:catBop .46s cubic-bezier(.2,.9,.25,1)!important}

/* A small, occasional gleam runs over stone without moving the stone itself. */
.game-cell.kind-stone:after{
  content:"";position:absolute;z-index:11;left:18%;top:10%;width:13%;height:72%;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.82),transparent);filter:blur(.08cqw);
  rotate:18deg;opacity:0;animation:stoneGleam 5.8s var(--shine-delay,0s) ease-in-out infinite;
}
@keyframes stoneGleam{0%,72%,100%{translate:-210% 0;opacity:0}78%{opacity:.88}88%{translate:490% 0;opacity:.18}90%{opacity:0}}

/* Bottom HUD sits lower and every block is vertically centered inside the stitched footer. */
.game-hud{
  left:4.15%!important;right:3.75%!important;top:86.35%!important;height:9.55%!important;
  grid-template-columns:17% 44% 14% 14% 11%!important;align-items:center!important;
}
.game-hud>div{height:100%!important;display:flex!important;align-items:center!important;gap:1.2cqw!important}
.game-hud span{font-size:1.95cqh!important}.game-hud b{font-size:3.72cqh!important}.hud-score b{font-size:3.58cqh!important}
.game-exit{align-self:center!important}

/* Exit confirmation: substantially larger type and buttons, while staying inside windowsmall.png. */
.game-exit-card{width:min(68vw,120.7vh)!important}
.game-exit-card h2{font-size:10.2cqh!important;line-height:.86!important;margin:0 0 2.1cqh!important;letter-spacing:.012em!important}
.game-exit-card p{font-size:3.65cqh!important;line-height:1.02!important;margin:0 0 4.2cqh!important;max-width:70cqw!important}
.game-exit-actions{gap:2.8cqw!important}
.game-exit-actions button{width:26.2cqw!important;height:13.2cqh!important;font-size:4.15cqh!important;line-height:.9!important}
.game-exit-actions .to-menu{width:24.2cqw!important}

/* Special powers store: use the window height, bigger art/type/actions, shorter copy column. */
.store-card{width:min(94vw,167.1vh)!important;aspect-ratio:1569/777!important;padding:5.2cqh 4.1cqw 4.2cqh!important;overflow:visible!important}
.store-card h2{font-size:6.0cqh!important;line-height:.9!important;margin:0!important}
.store-points{font-size:2.9cqh!important;margin:.5cqh 0 1.15cqh!important}
.store-grid{grid-template-columns:repeat(4,1fr)!important;gap:1.25cqw!important;align-items:stretch!important}
.store-grid article{padding:.7cqh .75cqw .9cqh!important;border-radius:1.6cqw!important;display:flex!important;flex-direction:column!important;align-items:center!important}
.store-grid article>img{height:22.3cqh!important;width:100%!important;object-fit:contain!important}
.store-grid h3{font-size:3.05cqh!important;line-height:.92!important;margin:.1cqh 0 .45cqh!important}
.store-grid p{font-size:1.48cqh!important;line-height:1.04!important;min-height:5.7cqh!important;max-height:6.2cqh!important;overflow:hidden!important;margin:.1cqh 0 .35cqh!important}
.store-grid small{font-size:1.7cqh!important;line-height:1!important;margin-top:auto!important}
.store-grid article button{width:94%!important;height:6.8cqh!important;margin-top:.55cqh!important;border-radius:3.2cqh!important;font-size:1.9cqh!important;line-height:.95!important}

/* New combo badge: puffy stitched plaque, not a distorted circle. */
.game-bubble.combo-bubble{
  width:12.2cqw!important;height:10.6cqh!important;aspect-ratio:auto!important;padding:1.0cqh 1.2cqw!important;
  border:.28cqw solid #fff0e8!important;border-radius:46% 54% 49% 51%/55% 47% 53% 45%!important;
  background:linear-gradient(145deg,#f7d9df 0%,#edb8c8 100%)!important;
  box-shadow:0 0 0 .16cqw #c9829b,0 .42cqh .8cqh rgba(91,58,78,.16),inset 0 .22cqh .25cqh rgba(255,255,255,.28)!important;
  line-height:.86!important;transform:translate(-50%,-50%) rotate(-2deg) scale(.42)!important;
}
.game-bubble.combo-bubble.show{transform:translate(-50%,-50%) rotate(-2deg) scale(1)!important;animation:comboFloat .9s ease-in-out infinite alternate}
.game-bubble.combo-bubble:before{content:"";position:absolute;inset:.42cqh .35cqw;border:.12cqw dashed rgba(132,77,100,.48);border-radius:inherit;pointer-events:none}
.game-bubble.combo-bubble .bubble-line{position:relative;z-index:2;color:#3f3540;letter-spacing:.045em!important;text-shadow:0 .08cqh 0 rgba(255,255,255,.72)}
.combo-bubble.combo-2 .line-1,.combo-bubble.combo-3 .line-1,.combo-bubble.combo-4 .line-1{font-size:1.45cqh!important}
.combo-bubble.combo-2 .line-2{font-size:2.85cqh!important}.combo-bubble.combo-2 .line-3{font-size:2.35cqh!important}
.combo-bubble.combo-3 .line-2{font-size:2.0cqh!important}.combo-bubble.combo-3 .line-3{font-size:2.55cqh!important}
.combo-bubble.combo-4 .line-2{font-size:2.35cqh!important}.combo-bubble.combo-4 .line-3{font-size:2.05cqh!important}
@keyframes comboFloat{to{translate:0 -.24cqh;rotate:1deg}}

/* Level-complete celebration keeps producing random fireworks; the cat floats calmly. */
.celebration-firework{position:absolute;z-index:6;pointer-events:none;translate:-50% -50%;rotate:var(--fw-rot,0deg);animation:celebrationBurst 1.02s cubic-bezier(.12,.74,.2,1) forwards;transform-origin:center}
@keyframes celebrationBurst{0%{opacity:0;scale:.18}18%{opacity:1;scale:var(--fw-scale,1)}68%{opacity:.95;scale:var(--fw-scale,1)}100%{opacity:0;scale:1.14;filter:blur(.5px)}}
.game-modal.win .modal-cat{animation:winCatHover 3.15s ease-in-out infinite!important;transform-origin:50% 72%!important}
@keyframes winCatHover{0%,100%{translate:0 0;scale:1}50%{translate:0 -.65cqh;scale:1.012 .992}}

/* Mobile: do NOT recompose the game/store. Scale the desktop registration as one piece. */
@media(max-width:900px) and (orientation:portrait){
  .game-stage{place-items:center!important;overflow:hidden!important}
  .game-frame{width:min(100vw,181.981svh)!important;aspect-ratio:1837/1009!important;filter:none!important}
  .store-card{width:min(96vw,170.8svh)!important;aspect-ratio:1569/777!important;min-height:0!important;max-height:none!important;overflow:visible!important;padding:5.2cqh 4.1cqw 4.2cqh!important}
  .store-grid{grid-template-columns:repeat(4,1fr)!important;gap:1.25cqw!important}
  .store-grid article>img{height:22.3cqh!important}.store-grid h3{font-size:3.05cqh!important}.store-grid p{font-size:1.48cqh!important;min-height:5.7cqh!important;max-height:6.2cqh!important}.store-grid small{font-size:1.7cqh!important}.store-grid article button{font-size:1.9cqh!important;height:6.8cqh!important}
  .game-exit-card{width:min(92vw,163.6svh)!important}.game-exit-card h2{font-size:10.2cqh!important}.game-exit-card p{font-size:3.65cqh!important}.game-exit-actions button{width:26.2cqw!important;height:13.2cqh!important;font-size:4.15cqh!important}.game-exit-actions .to-menu{width:24.2cqw!important}
  .level-node>span{left:0!important;top:0!important;width:34cqw!important;height:33cqh!important;font-size:5.0cqh!important;display:grid!important;place-items:center!important;transform:translateY(0)!important}
}

/* Let gameback.png actually fade in; do not reveal the same art as a static frame background underneath it. */
.game-frame{background:none!important}

/* Exit card final scale: approximately 2x the original rendered text/button size. */
.game-exit-card{width:min(70vw,124.25vh)!important}
.game-exit-card h2{font-size:10.6cqh!important}
.game-exit-card p{font-size:3.45cqh!important}
.game-exit-actions button{width:29cqw!important;height:14.4cqh!important;font-size:4.3cqh!important}
.game-exit-actions .to-menu{width:27cqw!important}


/* ========================================================================== 
   MOBILE LANDSCAPE GATE + REAL VIEWPORT + STABLE SPECIAL ACTIONS 2026-08-08
   ========================================================================== */
:root{
  --app-vw:100vw;--app-vh:100dvh;--vv-left:0px;--vv-top:0px;
  --safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)
}
html,body{width:100%;height:100%;overscroll-behavior:none;background:#f7cbd9}
body{position:fixed;inset:0;overflow:hidden}
#app{position:fixed;left:var(--vv-left);top:var(--vv-top);width:var(--app-vw);height:var(--app-vh);overflow:hidden}
.screen,.game-stage{left:0!important;top:0!important;right:auto!important;bottom:auto!important;width:var(--app-vw)!important;height:var(--app-vh)!important}
#cinematic-veil{left:var(--vv-left)!important;top:var(--vv-top)!important;right:auto!important;bottom:auto!important;width:var(--app-vw)!important;height:var(--app-vh)!important}
.design-canvas{width:min(var(--app-vw),calc(var(--app-vh) * 1.7777778))!important;height:min(calc(var(--app-vw) * .5625),var(--app-vh))!important}

/* Portrait phones do not render Catpuf behind the warning. */
#orientation-gate{display:none;position:fixed;z-index:20000;left:var(--vv-left);top:var(--vv-top);width:var(--app-vw);height:var(--app-vh);place-items:center;background:url('../assets/back.jpg') center/cover no-repeat;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);text-align:center}
body.orientation-blocked #orientation-gate{display:grid}
body.orientation-blocked #app,body.orientation-blocked #cinematic-veil{visibility:hidden!important;pointer-events:none!important}
.rotate-card{width:min(82vw,58vh);display:grid;justify-items:center;gap:2.2vh;filter:drop-shadow(0 1.1vh 1.5vh rgba(94,63,91,.12))}
.rotate-logo{width:min(68vw,48vh);height:auto}
.rotate-phone{position:relative;width:min(22vw,15vh);aspect-ratio:.55;border:.55vh solid #3f3540;border-radius:2.2vh;animation:rotatePhone 1.8s cubic-bezier(.3,.75,.2,1) infinite}
.rotate-phone:after{content:"";position:absolute;left:50%;bottom:.85vh;width:24%;height:.45vh;border-radius:1vh;background:#3f3540;translate:-50% 0}.rotate-phone i{position:absolute;inset:-4vh;transform:rotate(-35deg);border:.35vh dashed rgba(198,112,155,.72);border-radius:50%;animation:rotateOrbit 1.8s linear infinite}
.rotate-card h1{margin:.4vh 0 0;font-size:4.0vh;line-height:.9;letter-spacing:.035em;text-transform:uppercase}.rotate-card p{margin:0;max-width:72vw;font-size:2.05vh;line-height:1.05;letter-spacing:.02em;text-transform:uppercase}
@keyframes rotatePhone{0%,20%{rotate:0deg;scale:1}62%,88%{rotate:90deg;scale:1.04}100%{rotate:90deg;scale:1}}@keyframes rotateOrbit{to{rotate:360deg}}

/* The desktop 1837x1009 game registration always fits inside the actually visible viewport. */
.game-stage{box-sizing:border-box!important;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left)!important;place-items:center!important}
.game-frame{width:min(100%,calc((var(--app-vh) - var(--safe-top) - var(--safe-bottom)) * 1.82061447))!important;max-width:100%!important;max-height:100%!important;aspect-ratio:1837/1009!important;filter:none!important}

/* Explosion coordinate is the exact tapped point inside the special's cell. */
.explosion-fx{left:0!important;top:0!important;transform:translate3d(var(--blast-x,0px),var(--blast-y,0px),0)!important;transform-origin:0 0!important}
.explosion-fx .explosion-cloud,.explosion-fx .shock-ring,.explosion-fx .blast-pixel{transform-origin:center!important}

/* START -> LEVELS uses an actual preload moment instead of the white cinematic veil. */
.start-cinematic{position:fixed;z-index:15000;left:var(--vv-left);top:var(--vv-top);width:var(--app-vw);height:var(--app-vh);overflow:hidden;background:url('../assets/back.jpg') center/cover no-repeat;opacity:0;transition:opacity .28s ease,filter .42s ease,transform .42s ease;display:grid;place-items:center}
.start-cinematic.show{opacity:1}.start-cinematic.go{opacity:0;filter:blur(10px);transform:scale(1.025)}
.start-cloud{position:absolute;left:50%;top:50%;width:min(48vw,86vh);translate:-50% -50%;opacity:.20;animation:startCloudBreathe 2.8s ease-in-out infinite}
.start-loader{position:relative;z-index:2;display:grid;justify-items:center;gap:1.2cqh}.start-loader>img{width:min(12vw,21vh);animation:startLoaderStrain .88s cubic-bezier(.4,0,.2,1) infinite}.start-loader h2{margin:0;font-size:min(3vw,5.3vh);line-height:.9;letter-spacing:.055em;text-transform:uppercase}.puff-progress{width:min(25vw,44vh);height:.7cqh;border-radius:2cqh;background:rgba(75,58,72,.14);overflow:hidden;box-shadow:inset 0 0 0 .12cqw rgba(75,58,72,.16)}.puff-progress i{display:block;width:34%;height:100%;border-radius:inherit;background:#d98faf;animation:puffLoad 1.0s cubic-bezier(.3,.7,.2,1) infinite}
@keyframes startCloudBreathe{50%{scale:1.025;opacity:.26}}@keyframes startLoaderStrain{0%,100%{rotate:-3deg;scale:1 .98}45%{rotate:5deg;scale:.93 1.06}72%{rotate:-1deg;scale:1.04 .96}}@keyframes puffLoad{0%{translate:-110% 0}58%{translate:155% 0}100%{translate:310% 0}}

/* Keep all phone layouts identical to the desktop composition once landscape is allowed. */
@media (max-width:1000px) and (orientation:landscape){
  .game-frame{width:min(100%,calc((var(--app-vh) - var(--safe-top) - var(--safe-bottom)) * 1.82061447))!important}
  .site-footer{display:block!important}
}

/* ========================================================================== 
   MATCH SHAPES + SINGLE-USE SPECIALS + CIRCULAR FEEDBACK + STORE SCALE
   ========================================================================== */
/* S1 artwork has generous transparent space: enlarge the bomb canvas so the
   visible bomb body reads at the same scale as a pillow. The fuse may extend
   into the cell above, which is intentional. */
.game-cell.kind-special.special-bomb .cell-art{
  /* S1 is taller than a normal tile because of the cap/fuse. Keep the same
     visual baseline as the other pieces, while allowing the top to overflow. */
  width:7.35cqw!important;height:13.35cqh!important;max-width:none!important;max-height:none!important;
  left:50%!important;right:auto!important;top:auto!important;
  bottom:calc((100% - 10.63cqh)/2)!important;
  margin:0 0 0 -3.675cqw!important;
  object-position:50% 100%!important;overflow:visible!important;transform-origin:50% 67%!important;
}
.game-cell.kind-special.special-bomb:after{left:50%!important;top:-2.5%!important;width:.42cqw!important;transform:translateX(-50%)}
.game-cell.special-consumed{pointer-events:none!important;z-index:30!important}
.game-cell.special-consumed .cell-art{animation:specialConsume .16s cubic-bezier(.2,.8,.2,1) forwards!important}
@keyframes specialConsume{to{opacity:0;scale:.72}}

/* Combo, wrong-move and rescue feedback are real circles, never ellipses. */
.game-bubble.combo-bubble,.game-bubble.wrong-bubble,.game-bubble.rescue-bubble{
  box-sizing:border-box!important;width:9.1cqw!important;height:auto!important;aspect-ratio:1/1!important;
  padding:.72cqw!important;border-radius:50%!important;border:.27cqw solid #d28f9b!important;
  background:#f2bec9!important;box-shadow:0 0 0 .17cqw #fff0e8,0 .34cqh .68cqh rgba(83,57,76,.13)!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  line-height:.86!important;transform:translate(-50%,-50%) scale(.44)!important;rotate:0deg!important;
}
.game-bubble.combo-bubble:before,.game-bubble.wrong-bubble:before,.game-bubble.rescue-bubble:before{
  content:""!important;position:absolute!important;inset:.44cqw!important;border:.11cqw dashed rgba(121,73,91,.42)!important;
  border-radius:50%!important;pointer-events:none!important;
}
.game-bubble.combo-bubble.show,.game-bubble.wrong-bubble.show,.game-bubble.rescue-bubble.show{
  transform:translate(-50%,-50%) scale(1)!important;rotate:0deg!important;animation:none!important;
}
.game-bubble.combo-bubble .bubble-line,.game-bubble.wrong-bubble .bubble-line,.game-bubble.rescue-bubble .bubble-line{
  position:relative!important;z-index:2!important;width:100%!important;color:#493945!important;text-align:center!important;
  text-shadow:0 .08cqh 0 rgba(255,255,255,.55)!important;letter-spacing:.045em!important;margin:0!important;
}
.game-bubble.combo-bubble .bubble-line{font-size:3.55cqh!important;line-height:1!important}
.game-bubble.rescue-bubble{width:8.6cqw!important}
.game-bubble.rescue-bubble .bubble-line{font-size:3.0cqh!important;line-height:1!important}
.game-bubble.wrong-bubble{width:10.4cqw!important}
.game-bubble.wrong-bubble .bubble-line{font-size:1.95cqh!important;line-height:.95!important;padding:0 .5cqw!important}

/* Power store uses the full window instead of leaving the lower half empty. */
.store-card{
  width:min(95vw,168.8vh)!important;aspect-ratio:1569/777!important;
  padding:7.0cqh 4.5cqw 4.0cqh!important;overflow:visible!important;
}
.store-card h2{font-size:6.8cqh!important;line-height:.88!important;margin:0!important;letter-spacing:.02em!important}
.store-points{font-size:3.35cqh!important;line-height:.95!important;margin:.75cqh 0 2.15cqh!important}
.store-grid{grid-template-columns:repeat(4,1fr)!important;gap:1.15cqw!important;align-items:stretch!important;margin-top:.5cqh!important}
.store-grid article{
  min-width:0!important;padding:.55cqh .8cqw 1.1cqh!important;border-radius:1.45cqw!important;
  background:rgba(255,244,241,.20)!important;display:flex!important;flex-direction:column!important;align-items:center!important;
}
.store-grid article>img{width:100%!important;height:20.5cqh!important;object-fit:contain!important;margin:0!important}
.store-grid h3{font-size:3.45cqh!important;line-height:.9!important;margin:1.05cqh 0 .75cqh!important;letter-spacing:.015em!important}
.store-grid p{
  width:88%!important;font-size:1.78cqh!important;line-height:1.08!important;min-height:8.7cqh!important;max-height:8.7cqh!important;
  margin:0 auto .55cqh!important;overflow:hidden!important;
}
.store-grid small{font-size:2.05cqh!important;line-height:1!important;margin-top:auto!important;margin-bottom:.5cqh!important}
.store-grid article button{
  width:96%!important;height:7.25cqh!important;margin-top:.25cqh!important;padding:0 .65cqw!important;
  border-radius:3.6cqh!important;font-size:2.25cqh!important;line-height:.92!important;
}
@media(max-width:1000px) and (orientation:landscape){
  .store-card{width:min(96vw,170.6svh)!important;padding:7.0cqh 4.5cqw 4.0cqh!important}
  .store-card h2{font-size:6.8cqh!important}.store-points{font-size:3.35cqh!important}
  .store-grid{grid-template-columns:repeat(4,1fr)!important;gap:1.15cqw!important}
  .store-grid article>img{height:20.5cqh!important}.store-grid h3{font-size:3.45cqh!important}
  .store-grid p{font-size:1.78cqh!important;min-height:8.7cqh!important;max-height:8.7cqh!important}
  .store-grid small{font-size:2.05cqh!important}.store-grid article button{height:7.25cqh!important;font-size:2.25cqh!important}
}
.game-cell.special-consumed:after{opacity:0!important;animation:none!important}
/* Hard pixel equality for feedback circles, independent of content/min-size. */
.game-bubble.combo-bubble{width:9.1cqw!important;height:9.1cqw!important;aspect-ratio:auto!important}
.game-bubble.rescue-bubble{width:8.6cqw!important;height:8.6cqw!important;aspect-ratio:auto!important}
.game-bubble.wrong-bubble{width:10.4cqw!important;height:10.4cqw!important;aspect-ratio:auto!important}


/* === INLINE POWER ARMING — no interrupting popup =================================
   Targeted powers now stay inside the game flow. The selected tool glows in the
   dock and eligible board cells answer with a very soft stitched pulse. */
.power-item{overflow:visible!important;isolation:isolate}
.power-item.power-armed{z-index:14!important}
.power-item.power-armed:before,
.power-item.power-armed:after{
  content:"";position:absolute;left:50%;top:50%;translate:-50% -50%;border-radius:50%;pointer-events:none;z-index:0
}
.power-item.power-armed:before{
  width:73%;aspect-ratio:1;border:.2cqw solid rgba(255,237,247,.96);
  box-shadow:0 0 .5cqw rgba(255,255,255,.9),0 0 1.05cqw rgba(238,130,190,.82),inset 0 0 .45cqw rgba(255,255,255,.62);
  animation:powerArmedBreath 1.05s ease-in-out infinite
}
.power-item.power-armed:after{
  width:84%;aspect-ratio:1;border:.12cqw dashed rgba(221,112,167,.82);
  box-shadow:0 0 .45cqw rgba(244,171,208,.5);animation:powerArmedOrbit 3.2s linear infinite
}
.power-item img,.power-item b{position:relative;z-index:2}
.power-item.power-armed img{
  animation:powerArmedFloat 1.15s ease-in-out infinite!important;
  filter:brightness(1.08) saturate(1.08) drop-shadow(0 0 .36cqw rgba(255,255,255,.9)) drop-shadow(0 0 .65cqw rgba(226,115,178,.74))!important
}
.power-item.power-armed b{scale:1.08;filter:brightness(1.05)}
.power-item.power-arm-kick img{animation:powerArmKick .4s cubic-bezier(.18,.95,.2,1)!important}
.power-dock.power-mode-active .power-item:not(.power-armed){opacity:.72;transition:opacity .18s}
.power-dock.power-mode-active .power-title{opacity:.86}
@keyframes powerArmedBreath{0%,100%{scale:.94;opacity:.68}50%{scale:1.08;opacity:1}}
@keyframes powerArmedOrbit{to{rotate:360deg}}
@keyframes powerArmedFloat{0%,100%{transform:translateY(0) scale(1.04)}50%{transform:translateY(-3.5%) scale(1.095)}}
@keyframes powerArmKick{0%{transform:scale(.9)}45%{transform:scale(1.16)}100%{transform:scale(1.04)}}

.board.power-targeting .game-cell{cursor:default}
.board.power-targeting .game-cell.power-targetable{cursor:crosshair}
.board.power-targeting .game-cell.power-targetable:before{
  content:"";position:absolute;z-index:1;left:50%;top:50%;width:78%;aspect-ratio:1;translate:-50% -50%;
  border:.11cqw dashed rgba(224,123,174,.45);border-radius:28%;pointer-events:none;
  box-shadow:0 0 .3cqw rgba(255,255,255,.38);animation:powerTargetBreath 1.3s ease-in-out infinite
}
.board.power-targeting .game-cell.power-targetable .cell-art{filter:brightness(1.045) saturate(1.035)}
.board.power-targeting .game-cell.power-target-blocked{cursor:not-allowed}
@keyframes powerTargetBreath{0%,100%{scale:.94;opacity:.24}50%{scale:1.025;opacity:.72}}


/* === ICE BREAK: real shards fall away ======================================== */
.ice-fragment{
  position:absolute!important;z-index:30!important;left:0!important;right:0!important;top:0!important;bottom:0!important;margin:auto!important;
  width:5.86cqw!important;height:10.63cqh!important;object-fit:contain!important;pointer-events:none!important;
  clip-path:var(--ice-clip);transform-origin:50% 55%;animation:iceFragmentFall .68s var(--ice-delay,0ms) cubic-bezier(.19,.69,.22,1) forwards!important;
  filter:brightness(1.08) drop-shadow(0 .12cqh .12cqh rgba(72,125,164,.18));
}
.ice-break-flash{position:absolute;z-index:29;left:50%;top:50%;width:58%;aspect-ratio:1;translate:-50% -50%;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(255,255,255,.98) 0 5%,rgba(210,245,255,.62) 18%,rgba(185,230,255,0) 68%);animation:iceBreakFlash .32s ease-out forwards}
@keyframes iceBreakFlash{0%{opacity:0;scale:.42}32%{opacity:1;scale:1.08}100%{opacity:0;scale:1.42}}
@keyframes iceFragmentFall{
  0%{opacity:1;translate:0 0;rotate:0deg;scale:1;filter:brightness(1.38) drop-shadow(0 .12cqh .12cqh rgba(72,125,164,.18))}
  24%{opacity:1;translate:var(--ice-x-mid) var(--ice-y-mid);rotate:var(--ice-wobble);scale:.99}
  100%{opacity:0;translate:var(--ice-x) var(--ice-y);rotate:var(--ice-rot);scale:.84;filter:brightness(1.05) blur(.35px)}
}

/* === LEVEL COMPLETE CINEMATIC ===============================================
   Fireworks live inside the window and stay behind cat/copy/buttons. */
.game-modal-wrap.win-cinematic{animation:winSceneFade .78s cubic-bezier(.18,.78,.2,1) both}
.game-modal-wrap.win-cinematic:before{content:"";position:absolute;z-index:2;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 47%,rgba(255,247,252,.3),rgba(247,203,217,0) 45%);animation:winSceneGlow 1.15s ease-out both}
.game-modal-wrap.win-cinematic .game-modal.win{isolation:isolate;animation:winModalReveal .82s .08s cubic-bezier(.16,.88,.2,1) both}
.game-modal-wrap.win-cinematic .game-modal.win .modal-copy{animation:winCopyReveal .6s .34s cubic-bezier(.16,.86,.2,1) both}
.game-modal-wrap.win-cinematic .game-modal.win .modal-actions,.game-modal-wrap.win-cinematic .game-modal.win .score-submit{animation:winControlsReveal .56s .48s cubic-bezier(.16,.86,.2,1) both}
.game-modal-wrap.win-cinematic .game-modal.win .modal-cat{animation:winCatReveal .76s .22s cubic-bezier(.15,.88,.2,1) both,winCatHover 3.15s 1.02s ease-in-out infinite!important;transform-origin:50% 72%!important}
.win-firework{display:none!important}
.game-modal.win .celebration-firework{position:absolute;z-index:1!important;pointer-events:none;translate:-50% -50%;rotate:var(--fw-rot,0deg);animation:celebrationBurst var(--fw-life,1s) cubic-bezier(.12,.74,.2,1) forwards;transform-origin:center;mix-blend-mode:normal}
@keyframes winSceneFade{0%{opacity:0;filter:brightness(.92)}100%{opacity:1;filter:brightness(1)}}
@keyframes winSceneGlow{0%{opacity:0;scale:.82}32%{opacity:1;scale:1.02}100%{opacity:.38;scale:1.1}}
@keyframes winModalReveal{0%{opacity:0;transform:scale(.91) translateY(2.2cqh);filter:blur(4px)}58%{opacity:1;filter:blur(0)}100%{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}}
@keyframes winCopyReveal{0%{opacity:0;translate:0 1.6cqh}100%{opacity:1;translate:0 0}}
@keyframes winControlsReveal{0%{opacity:0;translate:0 1.5cqh;scale:.97}100%{opacity:1;translate:0 0;scale:1}}
@keyframes winCatReveal{0%{opacity:0;translate:0 2.5cqh;scale:.9}65%{opacity:1;translate:0 -.25cqh;scale:1.018}100%{opacity:1;translate:0 0;scale:1}}
@keyframes celebrationBurst{0%{opacity:0;scale:.12;filter:brightness(1.35)}16%{opacity:1;scale:var(--fw-scale,1);filter:brightness(1.08)}63%{opacity:.93;scale:var(--fw-scale,1)}100%{opacity:0;scale:var(--fw-end-scale,1.18);filter:blur(.55px) brightness(1.05)}}

/* ========================================================================== 
   ICE / POWER BADGES / JAPANESE WEIGHT / STONE READABILITY / FIREWORK FLOW
   2026-08-08 refinement pass
   ========================================================================== */

/* Power quantities stay visible as compact badges in the top-right of each tool. */
.power-item b,
.power-item.power-armed b{
  position:absolute!important;
  z-index:8!important;
  right:2.5%!important;
  top:5.5%!important;
  width:2.72cqw!important;
  height:2.72cqw!important;
  min-width:2.72cqw!important;
  display:grid!important;
  place-items:center!important;
  padding:.12cqw .14cqw 0!important;
  margin:0!important;
  border:.13cqw solid rgba(112,72,89,.72)!important;
  border-radius:50%!important;
  background:#f2b8c8!important;
  box-shadow:0 0 0 .12cqw rgba(255,244,241,.9),0 .18cqh .36cqh rgba(77,54,70,.18)!important;
  color:#463740!important;
  font-size:2.05cqh!important;
  line-height:1!important;
  text-align:center!important;
  scale:1!important;
  filter:none!important;
  pointer-events:none!important;
}
.power-item.power-armed b{animation:powerBadgePulse 1.05s ease-in-out infinite!important}
@keyframes powerBadgePulse{50%{scale:1.09;filter:brightness(1.05)!important}}

/* Japanese uses Ohno Softie first for supported glyphs, then safe Japanese fallbacks. */
[lang="ja"],[lang="ja"] button,[lang="ja"] input{
  font-family:Catpuf,"Hiragino Kaku Gothic ProN","Yu Gothic","YuGothic",Meiryo,sans-serif!important;
  font-weight:700!important;
  font-synthesis:weight!important;
  letter-spacing:.028em!important;
}
[lang="ja"] *{
  font-family:Catpuf,"Hiragino Kaku Gothic ProN","Yu Gothic","YuGothic",Meiryo,sans-serif!important;
}

/* Ice must stay on screen until the complete shard fall is readable. */
.game-cell.kind-ice.ice-breaking{z-index:38!important;overflow:visible!important}
.game-cell.kind-ice.ice-breaking .ice-under{filter:brightness(1.025) saturate(.98)!important}
.ice-fragment{
  z-index:42!important;
  width:6.18cqw!important;
  height:11.18cqh!important;
  animation-duration:.79s!important;
  filter:brightness(1.12) drop-shadow(0 .22cqh .22cqh rgba(56,101,137,.24))!important;
}
@keyframes iceFragmentFall{
  0%{opacity:1;translate:0 0;rotate:0deg;scale:1.06;filter:brightness(1.55) drop-shadow(0 .18cqh .18cqh rgba(56,101,137,.2))}
  17%{opacity:1;translate:var(--ice-x-mid) var(--ice-y-mid);rotate:var(--ice-wobble);scale:1.03}
  58%{opacity:.9;scale:.96}
  100%{opacity:0;translate:var(--ice-x) var(--ice-y);rotate:var(--ice-rot);scale:.74;filter:brightness(1.02) blur(.55px)}
}

/* Stone chunks are intentionally larger and travel farther so the break is legible. */
.game-cell.stone-breaking{z-index:37!important;overflow:visible!important}
.stone-frag.stone-frag-big{
  position:absolute!important;
  z-index:41!important;
  left:50%!important;
  top:50%!important;
  width:6.18cqw!important;
  height:11.18cqh!important;
  translate:-50% -50%!important;
  object-fit:contain!important;
  pointer-events:none!important;
  filter:brightness(1.04) drop-shadow(0 .25cqh .22cqh rgba(43,35,37,.28))!important;
  transform-origin:50% 55%!important;
}

/* Firework image never holds as a static decal: it expands continuously while fading. */
.game-modal.win .celebration-firework{
  z-index:1!important;
  opacity:0;
  animation:celebrationBurst var(--fw-life,1s) cubic-bezier(.12,.68,.18,1) forwards!important;
  will-change:scale,opacity,filter;
}
@keyframes celebrationBurst{
  0%{opacity:0;scale:var(--fw-start-scale,.2);filter:brightness(1.55) blur(.35px)}
  11%{opacity:1;scale:.46;filter:brightness(1.25) blur(0)}
  34%{opacity:.94;scale:.78;filter:brightness(1.08)}
  67%{opacity:.58;scale:1.03;filter:brightness(1.02)}
  100%{opacity:0;scale:var(--fw-end-scale,1.45);filter:brightness(1) blur(1.1px)}
}

/* === TARGET RETICLE / EDGE-SAFE SPECIALS ===================================== */
.board.power-targeting .game-cell.power-targetable{cursor:none!important}
.power-cursor-reticle{
  --reticle-main:#ef92bd;--reticle-glow:rgba(239,146,189,.72);
  position:absolute;z-index:95;width:2.35cqw;aspect-ratio:1;translate:-50% -50%;border-radius:50%;
  pointer-events:none;mix-blend-mode:normal;filter:drop-shadow(0 .12cqh .2cqh rgba(85,55,76,.24));
  background:
    linear-gradient(var(--reticle-main),var(--reticle-main)) 50% 0/.12cqw 28% no-repeat,
    linear-gradient(var(--reticle-main),var(--reticle-main)) 50% 100%/.12cqw 28% no-repeat,
    linear-gradient(90deg,var(--reticle-main),var(--reticle-main)) 0 50%/28% .12cqw no-repeat,
    linear-gradient(90deg,var(--reticle-main),var(--reticle-main)) 100% 50%/28% .12cqw no-repeat;
  animation:reticleBreathe .72s ease-in-out infinite
}
.power-cursor-reticle:before,.power-cursor-reticle:after{content:"";position:absolute;left:50%;top:50%;translate:-50% -50%;border-radius:50%;pointer-events:none}
.power-cursor-reticle:before{width:70%;aspect-ratio:1;border:.17cqw solid var(--reticle-main);box-shadow:0 0 0 .11cqw rgba(255,245,244,.92),0 0 .55cqw var(--reticle-glow)}
.power-cursor-reticle:after{width:.32cqw;aspect-ratio:1;background:#fff7ee;box-shadow:0 0 .18cqw var(--reticle-main),0 0 .45cqw var(--reticle-glow)}
.power-cursor-reticle.reticle-pick{--reticle-main:#e5a642;--reticle-glow:rgba(238,187,86,.78)}
.power-cursor-reticle.reticle-gun{--reticle-main:#e889b7;--reticle-glow:rgba(232,137,183,.8)}
@keyframes reticleBreathe{0%,100%{scale:.92;opacity:.9}50%{scale:1.08;opacity:1}}

/* === TURN 14: living site cats, ambient F1-F7 flyers, richer chain feedback ===== */
/* Keep the reference cats registered in place; only their body volume breathes. */
.story-cat,.help-left-cat,.scores-cat,.settings-cat,.credits-cat{
  transform-origin:50% 82%!important;
  will-change:scale,filter;
  animation:siteCatBreath 3.35s ease-in-out infinite!important;
}
.help-left-cat{animation-delay:-.55s!important}.scores-cat{animation-delay:-1.1s!important}.settings-cat{animation-delay:-1.65s!important}.credits-cat{animation-delay:-2.2s!important}
@keyframes siteCatBreath{
  0%,100%{scale:1 1;filter:brightness(1)}
  48%{scale:1.018 .987;filter:brightness(1.015)}
  68%{scale:.996 1.006}
}
.help-right-cat{display:none!important}

/* The play CTA must accept the entire illustrated area as one tap target on phones. */
.start-wrap[data-nav="worlds"],.start-wrap[data-nav="worlds"] .puf-button{touch-action:manipulation!important;-webkit-tap-highlight-color:transparent;cursor:pointer}
.start-wrap[data-nav="worlds"]>img{pointer-events:none!important}

/* Home-only ambient characters: visually topmost, but only image pixels-boxes receive pointer events. */
#ambient-flyers,#ambient-parachutes{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;pointer-events:none;contain:layout paint;isolation:isolate}
#ambient-flyers{z-index:120}#ambient-parachutes{z-index:119}
.ambient-flyer{
  --fly-width:188px;--fly-angle:0deg;--fly-duration:15000ms;--fly-face:1;
  position:absolute;width:var(--fly-width);max-width:17.3vw;height:auto;padding:0;border:0;background:transparent;
  opacity:0;pointer-events:none;cursor:default;will-change:transform,opacity;rotate:var(--fly-angle);
  filter:drop-shadow(0 .38rem .34rem rgba(112,72,91,.12));
}
.ambient-flyer.ready.from-left{left:calc(-1 * var(--fly-width) - 5vw);animation:flyFromLeft var(--fly-duration) cubic-bezier(.22,.42,.14,.99) forwards}
.ambient-flyer.ready.from-right{right:calc(-1 * var(--fly-width) - 5vw);animation:flyFromRight var(--fly-duration) cubic-bezier(.22,.42,.14,.99) forwards}
.ambient-flyer img{display:block;width:100%;height:auto;transform:scaleX(var(--fly-face));translate:0 0;will-change:translate,transform;animation:ambientFlyBob 3.6s ease-in-out infinite;user-select:none;-webkit-user-drag:none;pointer-events:auto;cursor:pointer}
.ambient-flyer.giggle img{animation:ambientFlyGiggle .46s cubic-bezier(.16,.9,.22,1),ambientFlyBob 1.8s .46s ease-in-out infinite}
@keyframes flyFromLeft{0%{opacity:0;transform:translate3d(0,0,0)}6%{opacity:1}93%{opacity:1}100%{opacity:0;transform:translate3d(calc(100vw + var(--fly-width) + 10vw),0,0)}}
@keyframes flyFromRight{0%{opacity:0;transform:translate3d(0,0,0)}6%{opacity:1}93%{opacity:1}100%{opacity:0;transform:translate3d(calc(-100vw - var(--fly-width) - 10vw),0,0)}}
@keyframes ambientFlyBob{0%,100%{translate:0 0}50%{translate:0 -.62vh}}
@keyframes ambientFlyGiggle{0%,100%{scale:1}35%{scale:1.08 .94}68%{scale:.97 1.035}}

.ambient-parachute{
  --para-width:260px;--para-duration:17600ms;--para-x1:2vw;--para-x2:-1.5vw;--para-x3:1.1vw;--para-x4:-.8vw;--para-x5:.45vw;--para-end-x:0vw;--para-tilt-a:-1.2deg;--para-tilt-b:1.8deg;--para-tilt-c:-1.5deg;--para-tilt-d:1.2deg;--para-tilt-e:-.85deg;--para-tilt-f:.45deg;
  position:absolute;top:0;width:var(--para-width);max-width:17.6vw;height:auto;padding:0;border:0;background:transparent;
  opacity:1;pointer-events:none;cursor:default;translate:-50% 0;will-change:transform,opacity;
  filter:drop-shadow(0 .55rem .5rem rgba(86,72,101,.13));
}
.ambient-parachute.ready{opacity:1}
.ambient-parachute img{display:block;width:100%;height:auto;user-select:none;-webkit-user-drag:none;will-change:transform;pointer-events:auto;cursor:pointer}
.ambient-parachute img.cheer{animation:parachuteCheer .48s cubic-bezier(.16,.9,.22,1)}
@keyframes parachuteCheer{0%,100%{transform:scale(1)}34%{transform:scale(1.055 .95) rotate(-1.2deg)}70%{transform:scale(.985 1.025) rotate(1deg)}}
@media(max-width:900px){.ambient-flyer{max-width:16.7vw}.ambient-parachute{max-width:16vw}}

/* Tactile feedback for the new direct object sounds. */
.game-cell.feature-tap .cell-art{animation:featureTap .4s cubic-bezier(.16,.9,.2,1)!important}
.game-cell.stone-tap .cell-art{animation:stoneTap .4s cubic-bezier(.16,.86,.2,1)!important}
@keyframes featureTap{0%,100%{scale:1;rotate:0deg}38%{scale:1.085 .94;rotate:-2deg}70%{scale:.985 1.025;rotate:1deg}}
@keyframes stoneTap{0%,100%{translate:0 0;filter:brightness(1)}30%{translate:-1.2% 0;filter:brightness(1.13)}52%{translate:1.2% 0}75%{translate:-.55% 0}}

/* A special hit by another special stays alive until its ordered chain turn. */
.game-cell.special-chain-queued .cell-art{animation:chainSpecialArmed .46s ease-in-out infinite alternate!important;filter:brightness(1.12) drop-shadow(0 0 .34cqw rgba(255,209,92,.82))!important}
@keyframes chainSpecialArmed{from{scale:1}to{scale:1.055}}

/* Rocket flight: a real hot flame plus a dense yellow pixel trail. */
.rocket-flame{
  position:absolute;z-index:53;width:2.45cqw;height:5.1cqh;pointer-events:none;transform-origin:50% 50%;
  transform:translate(-50%,-50%) rotate(var(--rocket-angle,0deg)) translateY(3.45cqh);
  background:radial-gradient(ellipse at 50% 18%,#fffde2 0 10%,#ffe05f 17%,#ff9d20 43%,rgba(255,91,13,.76) 62%,rgba(255,74,0,0) 78%);
  filter:drop-shadow(0 0 .28cqw rgba(255,203,65,.95)) drop-shadow(0 0 .5cqw rgba(255,117,24,.72));
  animation:rocketFlameFlicker .11s ease-in-out infinite alternate;will-change:scale,filter;
}
@keyframes rocketFlameFlicker{from{scale:.82 1.04;filter:drop-shadow(0 0 .22cqw rgba(255,213,74,.9))}to{scale:1.12 .88;filter:drop-shadow(0 0 .48cqw rgba(255,134,27,1))}}
.rocket-pixel{width:var(--dust-size,.34cqw)!important;background:#ffd83d!important;border-radius:22%!important;box-shadow:0 0 .22cqw #fff2a1,0 0 .42cqw rgba(255,155,28,.92)!important;animation-duration:.46s!important}


/* === TURN 14.1: clover line readability ===================================== */
.clover-line-sweep{
  position:absolute;z-index:58;pointer-events:none;width:1.8cqw;height:1.8cqw;border-radius:50%;
  translate:-50% -50%;opacity:0;
  background:radial-gradient(circle,#fff 0 14%,#fff3a7 15% 27%,#f39bc2 31% 57%,rgba(243,155,194,0) 72%);
  box-shadow:0 0 .46cqw #fff3a7,0 0 .9cqw rgba(239,135,184,.88);
  will-change:transform,opacity;
}
.clover-line-sweep.horizontal{animation:cloverSweepX .46s cubic-bezier(.12,.72,.18,1) forwards}
.clover-line-sweep.vertical{animation:cloverSweepY .46s cubic-bezier(.12,.72,.18,1) forwards}
@keyframes cloverSweepX{0%{opacity:0;transform:translate3d(0,0,0) scale(.72)}10%{opacity:1}82%{opacity:1;transform:translate3d(var(--sweep-distance),0,0) scale(1.06)}100%{opacity:0;transform:translate3d(var(--sweep-distance),0,0) scale(.6)}}
@keyframes cloverSweepY{0%{opacity:0;transform:translate3d(0,0,0) scale(.72)}10%{opacity:1}82%{opacity:1;transform:translate3d(0,var(--sweep-distance),0) scale(1.06)}100%{opacity:0;transform:translate3d(0,var(--sweep-distance),0) scale(.6)}}
.game-cell.clover-line-target:after{
  content:"";position:absolute;inset:8%;z-index:41;border-radius:18%;pointer-events:none;
  border:.16cqw solid rgba(255,241,166,.96);box-shadow:0 0 .5cqw rgba(246,170,204,.95),inset 0 0 .42cqw rgba(255,255,255,.82);
  animation:cloverTargetPulse .34s ease-out both;
}
@keyframes cloverTargetPulse{0%{opacity:0;scale:.65}38%{opacity:1;scale:1.08}100%{opacity:0;scale:1.16}}


/* === TURN 17: rocket flight axis lock + hot pixel exhaust ================== */
.rocket-flight-fx{position:absolute;left:0;top:0;z-index:68;width:0;height:0;pointer-events:none;will-change:transform;transform:translate3d(0,0,0)}
.rocket-flight-art{position:absolute;left:0;top:0;width:7.15cqw;height:10.8cqh;object-fit:contain;transform:translate(-50%,-50%) rotate(var(--rocket-angle,0deg));transform-origin:50% 50%;filter:drop-shadow(0 .24cqh .22cqh rgba(105,54,59,.18));will-change:transform}
.rocket-flight-flame{position:absolute;left:0;top:0;width:2.7cqw;height:5.5cqh;transform:translate(-50%,-50%) rotate(var(--rocket-angle,0deg)) translateY(4.2cqh);transform-origin:50% 50%;background:radial-gradient(ellipse at 50% 13%,#fff 0 8%,#fff9a8 12% 22%,#ffd52e 29% 42%,#ff8a15 51% 66%,rgba(255,72,0,.78) 70%,rgba(255,72,0,0) 84%);filter:drop-shadow(0 0 .32cqw #ffe36f) drop-shadow(0 0 .62cqw rgba(255,103,13,.9));animation:rocketLaunchFlame .085s ease-in-out infinite alternate}
@keyframes rocketLaunchFlame{from{scale:.78 1.18;filter:drop-shadow(0 0 .25cqw #fff09b) drop-shadow(0 0 .48cqw rgba(255,120,12,.82))}to{scale:1.18 .84;filter:drop-shadow(0 0 .42cqw #ffe05d) drop-shadow(0 0 .8cqw rgba(255,86,0,1))}}
.rocket-pixel{position:absolute!important;z-index:66!important;width:var(--dust-size,.42cqw)!important;aspect-ratio:1!important;border-radius:18%!important;translate:-50% -50%;rotate:var(--dust-rot,0deg);background:#ffd633!important;box-shadow:0 0 .24cqw #fff3a2,0 0 .54cqw rgba(255,138,17,.96)!important;animation:rocketHotPixel .56s cubic-bezier(.12,.65,.22,1) forwards!important}
.rocket-pixel-1{background:#fff3a1!important}.rocket-pixel-2{background:#ff9e1e!important}
@keyframes rocketHotPixel{0%{opacity:1;scale:1}58%{opacity:.9}100%{translate:calc(-50% + var(--dust-x)) calc(-50% + var(--dust-y));opacity:0;scale:.16}}
.rocket-fire-puff{position:absolute;z-index:65;width:1.55cqw;height:2.55cqh;translate:-50% -50%;border-radius:50%;pointer-events:none;background:radial-gradient(circle,#fff8b0 0 14%,#ffd136 27%,#ff8a16 49%,rgba(255,75,0,.65) 63%,transparent 76%);filter:blur(.02cqw) drop-shadow(0 0 .38cqw rgba(255,121,16,.92));animation:rocketPuff .4s ease-out forwards}
@keyframes rocketPuff{to{opacity:0;scale:1.8;filter:blur(.12cqw)}}


/* === Home image life + footer/logo/store center polish === */
.catpuf-logo[data-nav="home"]{cursor:pointer;pointer-events:auto;transform-origin:50% 50%;transition:filter .2s ease,scale .2s ease}
.catpuf-logo[data-nav="home"]:hover{filter:brightness(1.025);scale:1.012}
.catpuf-logo[data-nav="home"]:active{scale:.992}

.site-footer .footer-rh-link{position:absolute;left:31.75cqw;top:92.86cqh;width:3.35cqw;height:auto;z-index:4;pointer-events:auto;cursor:pointer}
.site-footer .footer-rh-link .footer-rh{position:static!important;left:auto!important;top:auto!important;width:100%!important;height:auto!important;transition:transform .22s cubic-bezier(.2,.85,.22,1),filter .22s ease}
.site-footer .footer-rh-link:hover .footer-rh{transform:translateY(-.12cqh) scale(1.045);filter:brightness(1.04)}
.site-footer .footer-rh-link:active .footer-rh{transform:scale(.97)}

/* Only the seven character images breathe; button backgrounds and labels never animate. */
.home-item>img,.start-wrap>img{transform-origin:50% 72%;animation:homeCharacterBreath 4.4s ease-in-out infinite;will-change:scale,translate}
.home-story>img{animation-delay:-.25s}.home-cats>img{animation-delay:-1.05s}.home-help>img{animation-delay:-1.85s}
.home-scores>img{animation-delay:-2.65s}.home-settings>img{animation-delay:-3.35s}.home-credits>img{animation-delay:-.7s}.start-wrap>img{animation-delay:-2.15s}
@keyframes homeCharacterBreath{
  0%,100%{scale:1 1;translate:0 0}
  38%{scale:1.014 .988;translate:0 .04cqh}
  56%{scale:.996 1.017;translate:0 -.16cqh}
  74%{scale:1.006 .997;translate:0 -.05cqh}
}

/* Store content uses the actual center of the stitched window, with readable vertical rhythm. */
.store-card{padding:0!important;display:block!important}
.store-content{position:absolute;z-index:3;left:5.2cqw;right:5.2cqw;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:stretch;justify-content:center;text-align:center}
.store-content>h2{margin:0 0 .75cqh!important}
.store-content>.store-points{margin:0 0 2.0cqh!important}
.store-content>.store-grid{margin:0!important}
.store-grid article{row-gap:.42cqh!important;padding:.9cqh .9cqw 1.15cqh!important}
.store-grid article>img{margin:0 0 .55cqh!important}
.store-grid h3{margin:.25cqh 0 .65cqh!important}
.store-grid p{margin:.15cqh auto .8cqh!important}
.store-grid small{margin-top:.35cqh!important;margin-bottom:.7cqh!important}
.store-grid article button{margin-top:.25cqh!important}

@media(max-width:1000px) and (orientation:landscape){
  .store-content{left:4.7cqw;right:4.7cqw;top:50%}
  .store-grid article{row-gap:.32cqh!important;padding:.75cqh .75cqw .95cqh!important}
}

/* ACTIVE BOARD FEATURES — hamster + yarn */
.game-cell.kind-fish,.game-cell.kind-hamster,.game-cell.kind-yarn{cursor:default}
.game-cell.kind-hamster .cell-art,.game-cell.kind-yarn .cell-art{transform-origin:50% 72%}
.game-cell.feature-primed .cell-art{animation:featurePrime .24s cubic-bezier(.16,.9,.18,1) both!important;filter:brightness(1.16) drop-shadow(0 0 .5cqw rgba(255,214,105,.9))!important}
.game-cell.feature-consumed .cell-art{animation:featureConsume .22s cubic-bezier(.16,.86,.2,1) forwards!important}
.game-cell.feature-consumed-hide .cell-art{opacity:0!important}
@keyframes featurePrime{0%{scale:1;rotate:0deg}55%{scale:1.13 .9;rotate:-2deg}100%{scale:1.04;rotate:1deg}}
@keyframes featureConsume{0%{opacity:1;scale:1}100%{opacity:0;scale:.72;translate:0 -.28cqh}}

.hamster-runner-fx{position:absolute;left:0;top:0;z-index:76;width:5.35cqw;height:9.7cqh;pointer-events:none;will-change:transform;filter:drop-shadow(0 .26cqh .24cqw rgba(113,76,52,.22))}
.hamster-runner-fx img{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:contain;translate:-50% -50%;transform:scaleX(var(--hamster-face,1));transform-origin:50% 70%;animation:hamsterSprint .16s ease-in-out infinite alternate}
.hamster-runner-fx>i{position:absolute;left:-1.45cqw;top:.9cqh;width:.31cqw;aspect-ratio:1;border-radius:45%;background:#fff0c9;box-shadow:.38cqw .16cqh 0 rgba(250,203,130,.78),.78cqw -.05cqh 0 rgba(255,242,204,.72);opacity:0;animation:hamsterDust .5s var(--dust-delay,0ms) ease-out infinite}
@keyframes hamsterSprint{to{translate:-50% calc(-50% - .18cqh);scale:1.045 .965;rotate:1.2deg}}
@keyframes hamsterDust{0%{opacity:0;transform:translate3d(0,0,0) scale(.55)}20%{opacity:.92}100%{opacity:0;transform:translate3d(-1.2cqw,.48cqh,0) scale(1.4)}}

.hamster-nibble-fx{position:absolute;z-index:75;width:1px;height:1px;pointer-events:none}
.hamster-nibble-fx>i{position:absolute;left:0;top:0;width:.24cqw;aspect-ratio:1;border-radius:40%;background:#fff5c7;box-shadow:0 0 .24cqw rgba(255,188,94,.82);translate:-50% -50%;animation:hamsterNibble .38s cubic-bezier(.15,.7,.18,1) forwards}
@keyframes hamsterNibble{0%{opacity:1;transform:translate3d(0,0,0) scale(.75)}100%{opacity:0;transform:translate3d(var(--nib-x),var(--nib-y),0) scale(1.5)}}

.yarn-board-roll-fx{position:absolute;z-index:77;width:5.65cqw;height:10.05cqh;pointer-events:none;will-change:transform;filter:drop-shadow(0 .28cqh .26cqw rgba(139,44,55,.28))}
.yarn-board-roll-fx img{display:block;width:100%;height:100%;object-fit:contain;transform-origin:50% 50%;animation:yarnPulse .22s ease-in-out infinite alternate}
@keyframes yarnPulse{to{scale:1.035 .975}}
.yarn-thread-fx{position:absolute;z-index:73;width:1px;height:1px;pointer-events:none}
.yarn-thread-fx>i{position:absolute;left:0;top:0;width:.36cqw;height:.13cqh;border-radius:999px;background:#e9292f;box-shadow:0 0 .18cqw rgba(255,80,83,.72);translate:-50% -50%;opacity:0;animation:yarnThreadSpark .5s ease-out forwards;animation-delay:calc(var(--thread-i) * 28ms)}
.yarn-thread-left>i,.yarn-thread-right>i{rotate:calc((var(--thread-i) - 2) * 5deg)}
.yarn-thread-up>i,.yarn-thread-down>i{rotate:calc(90deg + (var(--thread-i) - 2) * 5deg)}
@keyframes yarnThreadSpark{0%{opacity:.95;scale:.6;translate:-50% -50%}55%{opacity:.78;scale:1.15;translate:calc(-50% + (var(--thread-i) - 2) * .34cqw) calc(-50% + (var(--thread-i) - 2) * .18cqh)}100%{opacity:0;scale:.8;translate:calc(-50% + (var(--thread-i) - 2) * .62cqw) calc(-50% + .65cqh)}}


/* === IMPACT FX V2: actual material shards + randomized YA/BOM art ============ */
.pillow-pop-burst{
  position:absolute!important;z-index:27!important;left:var(--burst-x,50%)!important;top:var(--burst-y,50%)!important;
  width:9.8cqw!important;height:17.8cqh!important;object-fit:contain!important;pointer-events:none!important;
  translate:-50% -50%;rotate:var(--burst-rot,0deg);opacity:0;transform-origin:center;
  animation:pillowPopArt .66s cubic-bezier(.12,.72,.17,1) forwards!important;
  filter:drop-shadow(0 .18cqh .18cqh rgba(112,81,100,.08));
}
@keyframes pillowPopArt{
  0%{opacity:0;scale:.16;filter:brightness(1.28)}
  13%{opacity:1;scale:.48}
  48%{opacity:1;scale:var(--burst-scale,1);filter:brightness(1.05)}
  100%{opacity:0;scale:var(--burst-end-scale,1.24);filter:brightness(1) blur(.42px)}
}

.game-cell.ice-breaking,.game-cell.stone-breaking{z-index:44!important;overflow:visible!important}
.material-shard,.material-chip{
  position:absolute!important;z-index:45!important;left:0!important;right:0!important;top:0!important;bottom:0!important;margin:auto!important;
  width:5.86cqw!important;height:10.63cqh!important;object-fit:contain!important;pointer-events:none!important;transform-origin:50% 50%!important;
}
.material-shard-ice,.material-chip-ice{filter:brightness(1.12) drop-shadow(0 .15cqh .16cqh rgba(58,112,151,.24))}
.material-shard-stone,.material-chip-stone{filter:brightness(1.02) drop-shadow(0 .24cqh .2cqh rgba(55,43,42,.28))}
.material-chip{z-index:46!important;scale:.62}
.game-cell.ice-breaking .ice-under{filter:brightness(1.03) saturate(.98)!important}

/* YA/BOM artwork is the hero image; rings/pixels stay secondary. */
.explosion-fx .explosion-cloud{will-change:scale,opacity,filter;filter:drop-shadow(0 .4cqh .55cqh rgba(255,154,111,.16))}
.explosion-fx.bomb .explosion-cloud{width:20.5cqw!important;animation:bomArtBomb .78s cubic-bezier(.11,.72,.18,1) forwards!important}
.explosion-fx.nuclear .explosion-cloud{width:34cqw!important;animation:bomArtNuclear 1.02s cubic-bezier(.1,.7,.16,1) forwards!important}
.explosion-fx.nuclear .cloud-2{opacity:0!important;animation:bomArtEcho .94s .055s cubic-bezier(.1,.7,.16,1) forwards!important}
@keyframes bomArtBomb{0%{opacity:0;scale:.12;filter:brightness(1.5)}14%{opacity:1;scale:.48}52%{opacity:1;scale:1;filter:brightness(1.08)}100%{opacity:0;scale:1.3;translate:-50% -54%;filter:brightness(1) blur(.55px)}}
@keyframes bomArtNuclear{0%{opacity:0;scale:.1;filter:brightness(1.62)}12%{opacity:1;scale:.42}48%{opacity:1;scale:1.02;filter:brightness(1.1)}100%{opacity:0;scale:1.4;translate:-50% -56%;filter:brightness(1) blur(.72px)}}
@keyframes bomArtEcho{0%{opacity:0;scale:.18}25%{opacity:.46;scale:.68}100%{opacity:0;scale:1.55;filter:blur(1.2px)}}


/* === CAT-ONLY FEATURE INTERACTIONS ========================================== */
.cat-feature-slide-source{z-index:42!important}
.cat-feature-eat-target{z-index:41!important}
.feature-bite-burst{position:absolute;z-index:82;width:1px;height:1px;pointer-events:none}
.feature-bite-burst>i{position:absolute;left:0;top:0;width:.29cqw;aspect-ratio:1;border-radius:48%;background:#fff7d7;box-shadow:0 0 .32cqw rgba(255,183,104,.92);translate:-50% -50%;animation:featureBiteSpark .54s var(--bite-delay,0ms) cubic-bezier(.16,.72,.18,1) forwards}
.feature-bite-burst.bite-fish>i{background:#dff9ff;box-shadow:0 0 .34cqw rgba(117,213,255,.9)}
.feature-bite-burst.bite-hamster>i{background:#fff0c3;box-shadow:0 0 .34cqw rgba(255,187,96,.9)}
@keyframes featureBiteSpark{0%{opacity:0;transform:translate3d(0,0,0) scale(.5)}16%{opacity:1}100%{opacity:0;transform:translate3d(var(--bite-x),var(--bite-y),0) scale(1.45)}}

.game-cell.hamster-dominant-target .cell-art{animation:hamsterDominantTarget .42s var(--hamster-mark-delay,0ms) cubic-bezier(.16,.84,.18,1) both!important;filter:brightness(1.13) drop-shadow(0 0 .38cqw rgba(255,201,91,.9))!important}
@keyframes hamsterDominantTarget{0%{scale:1}45%{scale:1.11 .92;rotate:-2deg}72%{scale:.97 1.055;rotate:1deg}100%{scale:1;rotate:0deg}}

.cat-yarn-hidden>.cell-art{visibility:hidden!important}
.cat-yarn-rescue-fx{position:absolute;z-index:90;width:7.4cqw;height:13.1cqh;pointer-events:none;translate:0 0;transform-origin:50% 58%;filter:drop-shadow(0 .35cqh .3cqw rgba(93,55,74,.2))}
.cat-yarn-rescue-fx .yarn-rescue-ball{position:absolute;left:50%;top:56%;width:78%;height:70%;translate:-50% -50%;object-fit:contain;transform-origin:50% 55%}
.cat-yarn-rescue-fx .yarn-rescue-cat{position:absolute;left:50%;top:34%;width:71%;height:72%;translate:-50% -50%;object-fit:contain;z-index:2;transform-origin:50% 75%}
.cat-yarn-rescue-fx .yarn-hug-heart{position:absolute;z-index:3;left:59%;top:24%;width:.72cqw;aspect-ratio:1;background:#ff8ba8;rotate:45deg;border-radius:.12cqw;opacity:0;animation:yarnHugHeart .72s .28s ease-out both}
.cat-yarn-rescue-fx .yarn-hug-heart:before,.cat-yarn-rescue-fx .yarn-hug-heart:after{content:"";position:absolute;width:100%;height:100%;border-radius:50%;background:inherit}
.cat-yarn-rescue-fx .yarn-hug-heart:before{left:-50%;top:0}.cat-yarn-rescue-fx .yarn-hug-heart:after{left:0;top:-50%}
.cat-yarn-rescue-fx.rolling .yarn-rescue-cat{animation:yarnRollCatGrip .23s ease-in-out infinite alternate}
.cat-yarn-rescue-fx.rolling .yarn-rescue-ball{animation:yarnRollBallPulse .19s ease-in-out infinite alternate}
@keyframes yarnHugHeart{0%{opacity:0;scale:.35;translate:0 .5cqh}35%{opacity:1;scale:1.05;translate:0 0}100%{opacity:0;scale:1.3;translate:0 -.9cqh}}
@keyframes yarnRollCatGrip{to{scale:1.035 .965;translate:-50% calc(-50% - .16cqh)}}
@keyframes yarnRollBallPulse{to{scale:1.035 .975}}
.game-cell.feature-roll-crushed .cell-art{animation:featureRollCrush .34s cubic-bezier(.2,.72,.15,1) forwards!important}
@keyframes featureRollCrush{0%{opacity:1;scale:1}45%{opacity:1;scale:1.12 .86;rotate:-5deg}100%{opacity:0;scale:.28;rotate:16deg}}

/* === 2026-08-09 gameplay + site refinement ================================= */
/* Site background: ZE1 base + a soft endless ZE2 drift. The live game keeps
   ZE1 static so animation work cannot steal frames from gameplay. */
.screen{
  background:url('../assets/ZE1.jpg') center center/cover no-repeat!important;
  isolation:isolate;
}
.screen::before{
  content:"";position:absolute;z-index:0;left:-3%;right:-3%;top:-1%;bottom:-1%;pointer-events:none;
  background-image:url('../assets/ZE2.png');background-repeat:repeat-x;background-position:center 100%;background-size:auto auto;
  opacity:.88;will-change:transform;animation:catpufZeDrift 28s ease-in-out infinite alternate;
  transform:translate3d(-.75vw,0,0);backface-visibility:hidden;-webkit-backface-visibility:hidden;
}
html:not(.ze2-ready) .screen::before{animation:none}
.design-canvas{z-index:2}
.game-stage{background:url('../assets/ZE1.jpg') center center/cover no-repeat!important}
/* background-position on a full-screen PNG repainted the complete site every
   frame. Move the already-rasterized layer instead so HOME stays compositor-only. */
@keyframes catpufZeDrift{from{transform:translate3d(-.75vw,0,0)}to{transform:translate3d(.75vw,0,0)}}

/* Initial loader and level-selected loader share one clean clockwise motion. */
.loading-spinner,.level-loading-spinner{animation:catpufLoaderClockwise 2.35s linear infinite!important;transform-origin:50% 50%}
@keyframes catpufLoaderClockwise{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
.level-intro.level-loading{background:url('../assets/ZE1.jpg') center/cover no-repeat!important;isolation:isolate;overflow:hidden}
.level-intro.level-loading::before{content:"";position:absolute;z-index:0;left:-3%;right:-3%;top:-1%;bottom:-1%;background-image:url('../assets/ZE2.png');background-repeat:repeat-x;background-position:center 100%;background-size:auto auto;opacity:.88;will-change:transform;animation:catpufZeDrift 28s ease-in-out infinite alternate;pointer-events:none}
html:not(.ze2-ready) .level-intro.level-loading::before{animation:none}
.level-loading-center{position:absolute;z-index:2;inset:0;display:grid;place-items:center;pointer-events:none}
.level-loading-spinner{position:absolute;width:min(15.94vw,28.34vh);height:auto}
.level-loading-center h2{position:absolute;left:0;top:68.15%;width:100%;margin:0;text-align:center;font-size:4.15vh;line-height:1;text-transform:uppercase}

/* Every language flag floats independently; the active language remains fully
   hoverable instead of having its hover state consumed by .active. */
.flag-choice{transform:none!important;filter:none;will-change:transform}
.flag-choice img{animation:catpufFlagFloat 3.5s ease-in-out infinite;transform-origin:50% 55%;will-change:transform}
.flag-choice:nth-child(2) img{animation-delay:-.58s}.flag-choice:nth-child(3) img{animation-delay:-1.16s}.flag-choice:nth-child(4) img{animation-delay:-1.74s}.flag-choice:nth-child(5) img{animation-delay:-2.32s}.flag-choice:nth-child(6) img{animation-delay:-2.9s}
.flag-choice.active{filter:brightness(1.035) drop-shadow(0 .36cqh .38cqw rgba(171,101,137,.20))}
.flag-choice:hover,.flag-choice.active:hover{transform:translateY(-.78cqh) scale(1.055)!important;filter:brightness(1.055) drop-shadow(0 .42cqh .46cqw rgba(171,101,137,.25))}
@keyframes catpufFlagFloat{0%,100%{transform:translate3d(0,0,0) rotate(-.25deg)}50%{transform:translate3d(0,-.62cqh,0) rotate(.25deg)}}

/* SPECIAL POWERS / ÖZEL GÜÇLER is deliberately two centered lines. */
.power-title{display:flex!important;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.08cqh;line-height:.84!important}
.power-title>span{display:block;width:100%;white-space:nowrap}

/* Store affordance + cinematic open/close. */
.store-wrap{transition:opacity .42s ease,backdrop-filter .42s ease!important}
.store-wrap .store-card{opacity:0;transform:translateY(2.2cqh) scale(.875);filter:blur(9px);transition:opacity .52s cubic-bezier(.16,.86,.2,1),transform .58s cubic-bezier(.16,.86,.2,1),filter .52s ease;will-change:transform,opacity,filter}
.store-wrap.show .store-card{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}
.store-wrap.show .store-content>h2{animation:storeContentRise .52s .16s both cubic-bezier(.16,.86,.2,1)}
.store-wrap.show .store-points{animation:storeContentRise .52s .22s both cubic-bezier(.16,.86,.2,1)}
.store-wrap.show .store-grid{animation:storeContentRise .56s .28s both cubic-bezier(.16,.86,.2,1)}
.store-wrap.closing{opacity:0!important;backdrop-filter:blur(1px)!important}
.store-wrap.closing .store-card{opacity:0!important;transform:translateY(1.2cqh) scale(.925)!important;filter:blur(8px)!important;transition-duration:.42s!important}
@keyframes storeContentRise{from{opacity:0;transform:translateY(1.2cqh)}to{opacity:1;transform:translateY(0)}}
.store-grid .store-item{transition:opacity .28s ease,filter .28s ease,transform .2s ease}
.store-grid .store-unaffordable{opacity:.34;filter:saturate(.7) brightness(.96)}
.store-grid .store-unaffordable button{cursor:not-allowed}
.store-grid .store-affordable:hover{transform:translateY(-.22cqh)}

/* Window close X: the hitbox stays fixed; only the image grows. */
.overlay-close img,.cat-unlock-close img{transition:transform .2s cubic-bezier(.18,.82,.2,1),filter .2s ease;transform-origin:50% 50%}
.overlay-close:hover img,.cat-unlock-close:hover img{transform:scale(1.105) rotate(2deg);filter:brightness(1.045)}
.overlay-close:active img,.cat-unlock-close:active img{transform:scale(.96)}

/* Last five moves gently pulse. */
.hud-moves.low-moves b{animation:hudMovesLow 1.08s ease-in-out infinite;transform-origin:50% 50%}
.hud-moves.low-moves span{animation:hudMovesLabelLow 1.08s ease-in-out infinite}
@keyframes hudMovesLow{0%,100%{opacity:1;transform:scale(1);filter:none}50%{opacity:.48;transform:scale(1.055);filter:drop-shadow(0 0 .34cqw rgba(224,105,133,.38))}}
@keyframes hudMovesLabelLow{0%,100%{opacity:1}50%{opacity:.64}}

/* Cat rescue feedback in the HUD: pulse, ring and tiny sparks. */
.hud-cats{position:relative}
.hud-cats.cat-hud-rescued b{animation:catHudCounterPop .72s cubic-bezier(.16,.9,.2,1) both}
.hud-cats.cat-hud-rescued:after{content:"";position:absolute;right:-.5cqw;top:50%;width:8.5cqw;height:7.2cqh;translate:0 -50%;border:.18cqw solid rgba(227,135,169,.75);border-radius:50%;pointer-events:none;animation:catHudRing .82s ease-out forwards}
.cat-hud-rescue-fx{position:absolute;z-index:20;right:2.2cqw;top:50%;width:1px;height:1px;pointer-events:none}
.cat-hud-rescue-fx i{position:absolute;width:.24cqw;aspect-ratio:1;border-radius:50%;background:#fff3b7;box-shadow:0 0 .26cqw rgba(235,139,172,.85);animation:catHudSpark .68s var(--hud-sdelay,0ms) ease-out forwards}
@keyframes catHudCounterPop{0%{transform:scale(1)}35%{transform:scale(1.17);filter:brightness(1.15)}72%{transform:scale(.98)}100%{transform:scale(1);filter:none}}
@keyframes catHudRing{0%{opacity:0;scale:.58}28%{opacity:1}100%{opacity:0;scale:1.42}}
@keyframes catHudSpark{0%{opacity:0;transform:translate(0,0) scale(.4)}24%{opacity:1}100%{opacity:0;transform:translate(var(--hud-sx),var(--hud-sy)) scale(.15)}}

/* Two-minute idle helper. Cats call out and bounce lightly; one valid move pulses. */
.game-cell.idle-cat-hint .cell-art{animation:idleCatHint 1.35s var(--idle-cat-delay,0ms) cubic-bezier(.2,.82,.22,1) 1!important;transform-origin:50% 78%!important}
.game-cell.idle-move-hint .cell-art{animation:idleMoveHint 1.15s var(--idle-move-delay,0ms) ease-in-out 2!important;filter:brightness(1.08) drop-shadow(0 0 .42cqw rgba(255,225,112,.72))!important}
@keyframes idleCatHint{0%,100%{translate:0 0;scale:1}24%{translate:0 -.65cqh;scale:1.018 .982}46%{translate:0 0;scale:.99 1.012}68%{translate:0 -.38cqh;scale:1.012 .989}}
@keyframes idleMoveHint{0%,100%{scale:1}50%{scale:1.085}}

/* Image-based combo/rescue callouts replace all combo text. */
.floating-callout-art{position:absolute;z-index:95;translate:-50% -50%;pointer-events:none;object-fit:contain;transform-origin:50% 62%;will-change:transform,opacity,filter}
.combo-art-fx{width:10.8cqw;max-height:20cqh;animation:comboArtFloat 1.28s cubic-bezier(.16,.78,.18,1) forwards}
.rescue-art-fx{width:11.8cqw;max-height:21cqh;animation:rescueArtFloat 1.36s cubic-bezier(.16,.78,.18,1) forwards}
@keyframes comboArtFloat{0%{opacity:0;transform:translate3d(0,1.4cqh,0) scale(.72) rotate(-3deg);filter:blur(2px)}18%{opacity:1;transform:translate3d(0,0,0) scale(1.04) rotate(1deg);filter:blur(0)}66%{opacity:1;transform:translate3d(0,-2.2cqh,0) scale(1) rotate(-.5deg)}100%{opacity:0;transform:translate3d(0,-7.2cqh,0) scale(.9) rotate(2deg);filter:blur(.5px)}}
@keyframes rescueArtFloat{0%{opacity:0;transform:translate3d(0,1.2cqh,0) scale(.7)}20%{opacity:1;transform:translate3d(0,0,0) scale(1.06)}68%{opacity:1;transform:translate3d(0,-2.5cqh,0) scale(1)}100%{opacity:0;transform:translate3d(0,-7.8cqh,0) scale(.88);filter:blur(.5px)}}
/* Old text circles remain available for other messages, but combo/rescue text is never shown. */
.combo-bubble,.rescue-bubble{display:none!important}

/* Wrong-tap feedback on passive objects is visual only; sound is handled in JS. */
.game-cell.kind-fish.feature-tap .cell-art,.game-cell.kind-hamster.feature-tap .cell-art,.game-cell.kind-yarn.feature-tap .cell-art,.game-cell.kind-ice.feature-tap .cell-art,.game-cell.kind-stone.stone-tap .cell-art{animation:passiveWrongTap .32s ease-out}
@keyframes passiveWrongTap{0%,100%{transform:translateX(0) scale(1)}35%{transform:translateX(-.18cqw) scale(.985)}68%{transform:translateX(.18cqw) scale(1.01)}}

/* === FLOW / FEATURE / SPECIAL POLISH ======================================= */
/* Yarn rescue stays centered on the yarn tile during the cuddle. Only after the
   hug settles does the pair move vertically down the exact yarn column. */
.cat-yarn-rescue-fx{
  translate:-50% -50%!important;
  will-change:transform,opacity;
}
.cat-yarn-rescue-fx.hugged:not(.rolling){animation:yarnHugSettle .165s ease-out both}
@keyframes yarnHugSettle{
  0%{scale:1}
  55%{scale:1.035 .975}
  100%{scale:1}
}

/* Bomb and rocket feel alive before launch. Scale uses the independent CSS
   transform channel so rocket direction remains locked to --rocket-rot. */
.game-cell.kind-special.special-bomb:not(.bomb-prime):not(.special-chain-queued) .cell-art,
.game-cell.kind-special.special-rocket:not(.special-chain-queued) .cell-art{
  animation:specialReadyBreath 1.55s ease-in-out infinite!important;
  will-change:scale,filter;
}
@keyframes specialReadyBreath{
  0%,100%{scale:1;filter:brightness(1) drop-shadow(0 .16cqh .14cqw rgba(93,56,70,.12))}
  50%{scale:1.035 .972;filter:brightness(1.055) drop-shadow(0 .24cqh .22cqw rgba(228,135,157,.22))}
}
.game-cell.kind-special.special-rocket .cell-art{z-index:3!important}
/* Rocket body and all idle exhaust visuals share this wrapper, so swap preview,
   rejected swaps, accepted swaps and gravity can never move them independently. */
.rocket-motion-stack{
  position:absolute!important;inset:0!important;z-index:3!important;pointer-events:none!important;
  transform:translate3d(0,0,0) scale(1);transform-origin:50% 50%;transition:transform .08s linear;
}
.rocket-motion-stack>.cell-art{z-index:3!important}
.game-cell.special-rocket.dragging .rocket-motion-stack{
  transition:none!important;transform:translate3d(var(--drag-x),var(--drag-y),0) scale(1.025)!important;z-index:20!important;
}
.game-cell.special-rocket.swap-preview .rocket-motion-stack{
  transition:transform .04s linear!important;transform:translate3d(var(--preview-x),var(--preview-y),0)!important;z-index:19!important;
}
.game-cell.special-rocket.dragging .cell-art,
.game-cell.special-rocket.swap-preview .cell-art{
  transform:translate3d(0,0,0)!important;translate:0 0!important;
}
.game-cell.special-rocket.dragging .rocket-motion-stack,
.game-cell.special-rocket.swap-preview .rocket-motion-stack{will-change:transform!important}
.game-cell.special-rocket:not(.dragging):not(.swap-preview) .rocket-motion-stack{will-change:auto!important}
.rocket-idle-flame{
  position:absolute;z-index:2;left:50%;top:50%;width:2.25cqw;height:4.65cqh;pointer-events:none;
  transform:translate(-50%,-50%) rotate(var(--rocket-angle,0deg)) translateY(4.05cqh);
  transform-origin:50% 50%;border-radius:50%;
  background:radial-gradient(ellipse at 50% 10%,#fff 0 9%,#fff4a0 15% 23%,#ffd432 30% 43%,#ff8b17 52% 65%,rgba(255,70,0,.72) 70%,rgba(255,70,0,0) 84%);
  filter:drop-shadow(0 0 .25cqw #ffe36a) drop-shadow(0 0 .52cqw rgba(255,107,18,.86));
  animation:rocketIdleFlame .12s ease-in-out infinite alternate;
}
.rocket-idle-flame:before,.rocket-idle-flame:after{
  content:"";position:absolute;left:50%;top:74%;width:.32cqw;aspect-ratio:1;border-radius:24%;
  background:#ffd83d;box-shadow:0 0 .24cqw #fff1a0;opacity:.9;
  animation:rocketIdleSpark .62s ease-out infinite;
}
.rocket-idle-flame:after{animation-delay:-.31s;left:34%;width:.25cqw}
@keyframes rocketIdleFlame{from{scale:.82 1.08;opacity:.86}to{scale:1.12 .86;opacity:1}}
@keyframes rocketIdleSpark{0%{translate:-50% 0;opacity:1;scale:1}100%{translate:-50% 1.6cqh;opacity:0;scale:.25;rotate:65deg}}
.game-cell.special-consumed .rocket-motion-stack{opacity:0!important;visibility:hidden!important}
.game-cell.special-consumed .rocket-idle-flame,.game-cell.special-consumed .rocket-ready-pixels{opacity:0!important;animation:none!important}

/* Special blasts destroy passive fish/hamster/yarn pieces instead of silently
   leaving them behind. */
.game-cell.feature-special-crushed .cell-art{
  animation:featureSpecialCrush .34s cubic-bezier(.14,.72,.18,1) forwards!important;
}
@keyframes featureSpecialCrush{
  0%{opacity:1;scale:1;filter:brightness(1)}
  36%{opacity:1;scale:1.14 .86;filter:brightness(1.18)}
  100%{opacity:0;scale:.18;rotate:14deg;filter:brightness(1.25) blur(.35px)}
}

/* Stone/ice shards live in the independent FX layer. Gravity can start while
   the material fragments keep falling, so empty cells are never held on screen. */
.material-shatter-layer{
  position:absolute;z-index:88;translate:-50% -50%;pointer-events:none;overflow:visible;contain:layout style;
}
.material-shatter-layer .material-shard,
.material-shatter-layer .material-chip{
  position:absolute!important;left:0!important;right:auto!important;top:0!important;bottom:auto!important;
  width:100%!important;height:100%!important;margin:0!important;object-fit:contain!important;
}
.material-shatter-layer .material-chip{scale:.62}
.material-shatter-layer .ice-break-flash.detached{left:50%!important;top:50%!important;width:62%!important;z-index:89!important}

/* Rescue feedback comes from the exact center of the numeric counter, using a
   compact circular target language similar to armed special powers. No ellipse. */
.hud-cats.cat-hud-rescued:after{content:none!important;display:none!important}
.hud-cats b{position:relative;isolation:isolate}
.hud-cats.cat-hud-rescued b{animation:catHudCounterPop .68s cubic-bezier(.16,.9,.2,1) both!important}
.hud-cats b .cat-hud-rescue-fx{
  position:absolute!important;z-index:-1!important;left:50%!important;right:auto!important;top:50%!important;
  width:1px!important;height:1px!important;translate:-50% -50%!important;pointer-events:none!important;
}
.cat-hud-target-ring{
  position:absolute;left:0;top:0;width:3.7cqw;aspect-ratio:1;translate:-50% -50%;border-radius:50%;
  border:.14cqw solid rgba(229,139,177,.9);box-shadow:0 0 0 .08cqw rgba(255,247,239,.85),0 0 .48cqw rgba(228,137,177,.55);
  opacity:0;animation:catHudTargetRing .78s cubic-bezier(.12,.72,.18,1) forwards;
}
.cat-hud-target-ring.ring-2{width:2.65cqw;animation-delay:.08s}
.cat-hud-target-core{
  position:absolute;left:0;top:0;width:2.15cqw;aspect-ratio:1;translate:-50% -50%;border-radius:50%;
  background:
    linear-gradient(#e58bb5,#e58bb5) 50% 0/.10cqw 25% no-repeat,
    linear-gradient(#e58bb5,#e58bb5) 50% 100%/.10cqw 25% no-repeat,
    linear-gradient(90deg,#e58bb5,#e58bb5) 0 50%/25% .10cqh no-repeat,
    linear-gradient(90deg,#e58bb5,#e58bb5) 100% 50%/25% .10cqh no-repeat;
  animation:catHudTargetCore .72s ease-out forwards;
}
.hud-cats b .cat-hud-rescue-fx i{left:0!important;top:0!important}
@keyframes catHudTargetRing{0%{opacity:0;scale:.48}28%{opacity:1;scale:1}100%{opacity:0;scale:1.62}}
@keyframes catHudTargetCore{0%{opacity:0;scale:.7;rotate:-12deg}30%{opacity:1;scale:1.08;rotate:0deg}100%{opacity:0;scale:1.28;rotate:9deg}}

/* Pillow halves also live above the board, so quick gravity never cuts their
   tear animation short. */
.pillow-rip-layer{position:absolute;z-index:86;translate:-50% -50%;pointer-events:none;overflow:visible}
.pillow-rip-layer .rip-piece{width:100%!important;height:100%!important;left:0!important;right:0!important;top:0!important;bottom:0!important;margin:0!important}


/* === FLOW POLISH V3 ========================================================= */
.cat-yarn-rescue-fx.hugged:not(.rolling){translate:-50% -50%!important;transform:none!important;animation:yarnHugHold .235s cubic-bezier(.2,.82,.2,1) both!important}
@keyframes yarnHugHold{0%{scale:1}38%{scale:1.028 .982}72%{scale:.994 1.012}100%{scale:1}}
.cat-yarn-rescue-fx.rolling{translate:-50% -50%!important;will-change:transform!important}

.game-cell.kind-special.special-bomb:not(.bomb-prime):not(.special-chain-queued) .cell-art,
.game-cell.kind-special.special-rocket:not(.special-chain-queued) .cell-art{animation:specialReadyBreathV3 1.42s cubic-bezier(.42,0,.22,1) infinite!important}
@keyframes specialReadyBreathV3{0%,100%{scale:1 1;filter:brightness(1) drop-shadow(0 .16cqh .14cqw rgba(93,56,70,.12))}48%{scale:1.038 .974;filter:brightness(1.065) drop-shadow(0 .24cqh .24cqw rgba(228,135,157,.25))}}
.game-cell.kind-special.special-rocket .rocket-idle-flame{z-index:1!important;width:2.4cqw!important;height:5.05cqh!important;filter:drop-shadow(0 0 .28cqw #ffe36a) drop-shadow(0 0 .64cqw rgba(255,107,18,.92))!important}
.game-cell.kind-special.special-rocket .rocket-ready-pixels{position:absolute;z-index:1;left:50%;top:50%;width:.34cqw;aspect-ratio:1;border-radius:25%;pointer-events:none;background:#ffe66f;box-shadow:.42cqw .38cqh 0 #ffad26,-.38cqw .62cqh 0 #fff0a0;transform:translate(-50%,-50%) rotate(var(--rocket-angle,var(--rocket-rot,0deg))) translateY(4.9cqh);animation:rocketReadyPixels .72s ease-out infinite}
@keyframes rocketReadyPixels{0%{opacity:.95;scale:1}100%{opacity:0;scale:.25;translate:0 1.25cqh}}
.game-cell.special-consumed:before{display:none!important}

.hud-cats{overflow:visible!important}
.hud-cats>span,.hud-cats>b{position:relative;z-index:4}
.hud-cats>.cat-hud-rescue-fx{position:absolute!important;z-index:3!important;right:auto!important;width:1px!important;height:1px!important;translate:0 0!important;pointer-events:none!important;overflow:visible!important}
.hud-cats>.cat-hud-rescue-fx i{left:0!important;top:0!important}
.hud-cats.cat-hud-rescued:before,.hud-cats.cat-hud-rescued:after{content:none!important;display:none!important}

.game-cell.kind-ice.dragging .cell-art{transform:translate(var(--drag-x),var(--drag-y)) scale(1.035)!important}
.game-cell.kind-ice.swap-preview .cell-art{transform:translate(var(--preview-x),var(--preview-y))!important}
/* Directional idle exhaust particles always trail away from the rocket nose. */
.game-cell.rocket-dir-up{--rocket-ready-x:0px;--rocket-ready-y:1.25cqh}
.game-cell.rocket-dir-down{--rocket-ready-x:0px;--rocket-ready-y:-1.25cqh}
.game-cell.rocket-dir-left{--rocket-ready-x:1.25cqw;--rocket-ready-y:0px}
.game-cell.rocket-dir-right{--rocket-ready-x:-1.25cqw;--rocket-ready-y:0px}
@keyframes rocketReadyPixels{0%{opacity:.95;scale:1;translate:0 0}100%{opacity:0;scale:.25;translate:var(--rocket-ready-x,0px) var(--rocket-ready-y,1.25cqh)}}


/* === 2026-08-09 JP typography + detail cat + settings/credits polish ======= */
/* Cat names are Latin artwork names: keep the custom Ohno Softie face in JP. */
html[lang="ja"] .cats-screen .cat-card b,
html[lang="ja"] .cat-detail .detail-copy h2{
  font-family:Catpuf,sans-serif!important;
  font-weight:400!important;
  font-synthesis:none!important;
  letter-spacing:.012em!important;
}

/* The scoreboard rows contain Latin names/numbers only; title remains JP. */
html[lang="ja"] .scores-screen .score-row,
html[lang="ja"] .scores-screen .score-row *{
  font-family:Catpuf,sans-serif!important;
  font-weight:400!important;
  font-synthesis:none!important;
  letter-spacing:.012em!important;
}

/* Detail cats stay exactly in place, visually ~10% smaller, with a very soft
   breathing motion instead of vertical floating. */
.detail-cat{
  transform-origin:50% 70%!important;
  will-change:transform;
  animation:detailCatBreath 4.15s cubic-bezier(.45,.02,.55,.98) infinite!important;
}
@keyframes detailCatBreath{
  0%,100%{transform:scale(.9,.9)}
  42%{transform:scale(.912,.894)}
  58%{transform:scale(.914,.892)}
}

/* MUSIC / SOUND labels are centered on the ON/OFF image below them in every
   language, rather than being positioned by the length of the word. */
.music-setting b{
  left:13cqw!important;width:11.72cqw!important;text-align:center!important;
}
.sfx-setting b{
  left:1.45cqw!important;width:11.77cqw!important;text-align:center!important;
}

/* Credits mail is a real mailto action while retaining the supplied design. */
.credit-owner>.credit-mail{
  display:block;line-height:1;font-size:2.6cqh;margin-top:.9cqh;
  color:inherit;text-decoration:none;cursor:pointer;
  transition:transform .18s ease,filter .18s ease;
}
.credit-owner>.credit-mail:hover{transform:scale(1.025);filter:brightness(.82)}
html[lang="ja"] .credit-owner>strong,
html[lang="ja"] .credit-owner>.credit-mail{
  font-family:Catpuf,sans-serif!important;
  font-weight:400!important;
  font-synthesis:none!important;
  letter-spacing:.012em!important;
}

@media(max-width:900px) and (orientation:portrait){
  .music-setting b{left:17cqw!important;width:28cqw!important}
  .sfx-setting b{left:0!important;width:28cqw!important}
  .credit-owner>.credit-mail{font-size:1.8cqh!important}
}

/* ========================================================================== 
   10 YARN WORLDS / 100 LEVELS EACH — 2026-08-09
   ========================================================================== */
.worlds-screen .page-count{position:absolute;z-index:7;left:4.15cqw;top:34.1cqh;font-size:4.1cqh;line-height:1}
.world-track{position:absolute;z-index:6;left:2.75cqw;right:2.8cqw;top:49.1cqh;height:34.2cqh;overflow-x:auto;overflow-y:hidden;display:flex;align-items:flex-start;gap:3.05cqw;padding:0 .3cqw;scroll-snap-type:x proximity;mask-image:linear-gradient(to right,transparent 0,#000 4%,#000 96%,transparent 100%);-webkit-mask-image:linear-gradient(to right,transparent 0,#000 4%,#000 96%,transparent 100%)}
.world-card{position:relative;flex:0 0 16.2cqw;height:33.1cqh;scroll-snap-align:center;overflow:visible;isolation:isolate}
.world-visual{position:absolute;left:.4cqw;top:.1cqh;width:15.45cqw;aspect-ratio:1;display:grid;place-items:center;transform-origin:50% 55%;transition:transform .42s cubic-bezier(.16,.9,.22,1),filter .42s ease;will-change:transform}
.world-spin{display:block;width:100%;height:100%;transform-origin:50% 50%;will-change:transform}
.world-art{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 .45cqh .5cqw rgba(94,63,106,.13));transform-origin:50% 50%}
.world-progress{position:absolute;left:0;top:28.15cqh;width:16.2cqw;text-align:center;font-size:3.35cqh;line-height:1;white-space:nowrap}
.world-lock{position:absolute;z-index:4;left:50%;top:50%;width:9.7cqw;height:auto;translate:-50% -49%;filter:drop-shadow(0 .35cqh .35cqw rgba(103,65,79,.18))}
.world-card.open:hover .world-visual,.world-card.open:focus-visible .world-visual{transform:translateY(-.7cqh) scale(1.075);filter:brightness(1.035) drop-shadow(0 .65cqh .65cqw rgba(128,79,124,.16))}
.world-card.open:active .world-visual{transform:translateY(-.35cqh) scale(1.045)}
.world-card.locked .world-art{opacity:.97;filter:saturate(.88) brightness(.98) drop-shadow(0 .4cqh .45cqw rgba(94,63,106,.11))}
.world-card.current:before,.world-card.current:after{content:"";position:absolute;z-index:-1;left:50%;top:41%;width:13.5cqw;aspect-ratio:1;border:.22cqw solid rgba(225,144,190,.42);border-radius:50%;translate:-50% -50%;pointer-events:none;animation:worldCurrentPulse 2.4s ease-out infinite}
.world-card.current:after{animation-delay:.9s}
@keyframes worldCurrentPulse{0%{opacity:.68;scale:.82}100%{opacity:0;scale:1.28}}
.worlds-screen .h-scroll{top:84.15cqh}

/* START -> WORLDS cloud wipe. */
.world-entry-cinematic{position:fixed;z-index:15500;left:var(--vv-left,0);top:var(--vv-top,0);width:var(--app-vw,100vw);height:var(--app-vh,100vh);overflow:hidden;pointer-events:none;opacity:0;background:rgba(255,239,247,.12);backdrop-filter:blur(0);transition:opacity .28s ease,backdrop-filter .38s ease}
.world-entry-cloud{position:absolute;left:50%;top:50%;width:min(118vw,210vh);translate:-50% -50%;opacity:0;scale:.5;filter:blur(10px);transition:opacity .4s ease,scale .62s cubic-bezier(.16,.86,.2,1),filter .52s ease}
.world-entry-spark{position:absolute;left:50%;top:50%;width:18vmin;aspect-ratio:1;border-radius:50%;translate:-50% -50%;box-shadow:0 0 8vmin 5vmin rgba(255,249,211,.55);opacity:0;transition:opacity .4s ease,scale .5s ease}
.world-entry-cinematic.show{opacity:1;backdrop-filter:blur(4px)}.world-entry-cinematic.show .world-entry-cloud{opacity:.92;scale:1.28;filter:blur(1px)}.world-entry-cinematic.show .world-entry-spark{opacity:.85;scale:2}
.world-entry-cinematic.go{opacity:0;backdrop-filter:blur(10px);transition-duration:.5s}.world-entry-cinematic.go .world-entry-cloud{scale:1.58;filter:blur(14px)}

/* WORLDS -> LEVELS: the chosen yarn world becomes the transition itself. */
.world-select-cinematic{position:fixed;z-index:15600;left:var(--vv-left,0);top:var(--vv-top,0);width:var(--app-vw,100vw);height:var(--app-vh,100vh);display:grid;place-items:center;pointer-events:none;opacity:0;background:rgba(252,230,244,.22);backdrop-filter:blur(0);transition:opacity .3s ease,backdrop-filter .45s ease}
.world-select-cinematic>img{position:relative;z-index:2;width:min(23vw,41vh);height:auto;opacity:0;transform:scale(.68) rotate(-8deg);filter:drop-shadow(0 1.2vh 1.5vw rgba(108,70,116,.18));transition:opacity .32s ease,transform .62s cubic-bezier(.16,.9,.2,1),filter .55s ease}
.world-select-cinematic>i{position:absolute;width:min(36vw,64vh);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,250,214,.72),rgba(255,212,231,.2) 48%,transparent 72%);opacity:0;scale:.5;transition:opacity .45s ease,scale .6s ease}
.world-select-cinematic.show{opacity:1;backdrop-filter:blur(5px)}.world-select-cinematic.show>img{opacity:1;transform:scale(1) rotate(10deg)}.world-select-cinematic.show>i{opacity:1;scale:1.25}
.world-select-cinematic.go{opacity:0;backdrop-filter:blur(13px);transition-duration:.48s}.world-select-cinematic.go>img{transform:scale(1.22) rotate(27deg);filter:blur(5px) drop-shadow(0 1.2vh 1.5vw rgba(108,70,116,.18))}

/* Selected world summary on the 100-level chooser. */
.level-world-summary{position:absolute;z-index:8;left:3.45cqw;top:24.15cqh;width:19.7cqw;height:17.7cqh;display:flex;align-items:center;gap:1.55cqw;pointer-events:none}
.level-world-spin{display:block;flex:0 0 9.2cqw;width:9.2cqw;aspect-ratio:1;transform-origin:50% 50%}
.level-world-spin img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 .35cqh .35cqw rgba(94,63,106,.12))}
.level-world-summary>b{font-size:3.95cqh;line-height:1;white-space:nowrap}
.world-levels-screen .level-track{top:49.05cqh!important;height:33.1cqh!important}
.world-levels-screen .h-scroll{top:84.15cqh!important}

/* Level start screen: actual preloading happens here. Only the world turns and
   the selected rescued cat breathes; no progress bar or fake loader. */
.level-intro.world-level-intro{z-index:16000!important;display:block!important;background:url('../assets/ZE1.jpg') center/cover no-repeat!important;opacity:0;filter:none;transform:none;transition:opacity .38s ease,filter .55s ease,transform .55s cubic-bezier(.16,.84,.2,1)!important;overflow:hidden;container-type:size}
.level-intro.world-level-intro.show{opacity:1}
.level-intro.world-level-intro.go{opacity:0;filter:blur(9px);transform:scale(1.025);transition-duration:.52s!important}
.world-intro-canvas{position:absolute;left:50%;top:50%;width:min(100vw,177.777778vh);height:min(56.25vw,100vh);translate:-50% -50%;container-type:size;overflow:hidden}
.world-intro-orb{position:absolute;z-index:2;left:31.05cqw;top:34.2cqh;width:17.4cqw;aspect-ratio:1;animation:worldIntroSpin 7.4s linear infinite;transform-origin:50% 50%;filter:drop-shadow(0 .65cqh .65cqw rgba(94,63,106,.12))}
.world-intro-orb img{width:100%;height:100%;object-fit:contain}
.world-intro-cat{position:absolute;z-index:5;left:42.25cqw;top:27.05cqh;width:17.55cqw;height:44.5cqh;object-fit:contain;transform-origin:50% 82%;animation:worldIntroCatBreathe 2.55s ease-in-out infinite;filter:drop-shadow(0 .8cqh .52cqw rgba(72,54,58,.16))}
.world-intro-level{position:absolute;z-index:3;left:56.45cqw;top:35.65cqh;width:15.4cqw;aspect-ratio:1;display:grid;place-items:center}
.world-intro-level img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.world-intro-level b{position:relative;z-index:2;font-size:5.65cqh;line-height:1}
.level-intro.world-level-intro.show .world-intro-canvas{animation:worldIntroArrival .72s cubic-bezier(.16,.88,.2,1) both}
@keyframes worldIntroSpin{to{transform:rotate(360deg)}}
@keyframes worldIntroCatBreathe{0%,100%{transform:scale(1);translate:0 0}50%{transform:scale(1.018 .985);translate:0 -.28cqh}}
@keyframes worldIntroArrival{from{opacity:0;scale:.965;filter:blur(5px)}to{opacity:1;scale:1;filter:none}}

/* Every 100 global levels: same cinematic family as a cat unlock, but the new
   yarn world becomes the hero. */
.world-unlock-window{overflow:visible}
.world-unlock-orb{position:absolute;z-index:3;left:5.5cqw;top:10.2cqh;width:37.2cqw;aspect-ratio:1;display:block;animation:worldUnlockSpin 13s linear infinite;transform-origin:50% 50%;filter:drop-shadow(0 .65cqh .7cqw rgba(95,56,111,.15))}
.world-unlock-orb:before{content:"";position:absolute;z-index:-1;inset:7%;border-radius:50%;box-shadow:0 0 0 .2cqw rgba(236,163,202,.28),0 0 3.2cqw 1cqw rgba(255,237,173,.34);animation:worldUnlockHalo 2.2s ease-in-out infinite}
.world-unlock-orb img{width:100%;height:100%;object-fit:contain}
.world-unlock-name{position:absolute;z-index:4;left:5.3cqw;top:80.4cqh;width:37.5cqw;text-align:center;font-size:3.25cqh;line-height:1;text-transform:uppercase}
.world-unlock-copy{position:absolute;z-index:4;left:47cqw;top:19.5cqh;width:45cqw;height:59cqh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;text-transform:uppercase}
.world-unlock-copy>span{font-size:2.5cqh;line-height:1;margin-bottom:1.25cqh}.world-unlock-copy h2{font-size:5.5cqh;line-height:.92;margin:0 0 2.2cqh;letter-spacing:-.02em}.world-unlock-copy p{max-width:39cqw;margin:0;font-size:1.72cqh;line-height:1.17}
@keyframes worldUnlockSpin{to{transform:rotate(360deg)}}@keyframes worldUnlockHalo{0%,100%{opacity:.45;scale:.94}50%{opacity:1;scale:1.08}}

/* A world-specific gameback image keeps the existing registered board geometry;
   only the artwork changes, so game physics and hit areas remain untouched. */
.game-floor{will-change:opacity,transform}
.game-frame[data-world]{background:none!important}

@media(max-width:900px) and (orientation:landscape){
  .worlds-screen .page-count{left:4.2cqw;top:28.9cqh;font-size:3.45cqh}
  .world-track{top:43cqh;height:31cqh;gap:2.55cqw;padding:0 4cqw}.world-card{flex-basis:13.1cqw;height:29.5cqh}.world-visual{width:12.7cqw}.world-progress{top:24.1cqh;width:13.1cqw;font-size:2.6cqh}.world-lock{width:7.4cqw}.worlds-screen .h-scroll{top:74.25cqh}
  .level-world-summary{left:4cqw;top:24cqh}.level-world-spin{flex-basis:8cqw;width:8cqw}.level-world-summary>b{font-size:3.35cqh}
  .world-levels-screen .level-track{top:43cqh!important}.world-levels-screen .h-scroll{top:74.25cqh!important}
}


/* ==========================================================================
   WORLDS HANDOFF + GAME ROUTE/PERFORMANCE POLISH - 2026-08-09
   ========================================================================== */
/* Give hover scaling real breathing room above the horizontal scroller. */
.world-track{top:46.75cqh!important;height:36.55cqh!important;padding:2.35cqh .3cqw 0!important}
.world-card.open:hover .world-visual,.world-card.open:focus-visible .world-visual{transform:translateY(-.22cqh) scale(1.075)!important}
.world-card.open:active .world-visual{transform:translateY(-.08cqh) scale(1.045)!important}

/* The explosion and WORLDS screen overlap as a true crossfade: no frozen
   full-size boombig frame between the two states. */
.world-entry-cinematic.handoff{opacity:0;backdrop-filter:blur(8px);transition:opacity .58s ease,backdrop-filter .58s ease}
.world-entry-cinematic.handoff .world-entry-cloud{opacity:0;scale:1.56;filter:blur(13px);transition:opacity .56s ease,scale .64s cubic-bezier(.16,.86,.2,1),filter .56s ease}
.world-entry-cinematic.handoff .world-entry-spark{opacity:0;scale:2.45;transition:opacity .5s ease,scale .62s ease}
.worlds-screen.worlds-cinematic-in{opacity:0;filter:blur(5px);transform:scale(.988);will-change:opacity,filter,transform}
.worlds-screen.worlds-cinematic-in.worlds-cinematic-visible{opacity:1;filter:blur(0);transform:scale(1);transition:opacity .62s ease,filter .68s ease,transform .72s cubic-bezier(.16,.88,.2,1)}

/* Bottom-right exit arrow is centered on the power column above it. */
.game-exit{justify-self:center!important;align-self:center!important}
.game-exit:hover{translate:0 0!important;scale:1.035!important}

/* Keep the board compositor-friendly without forcing 91 permanent GPU layers. */
.board-wrap,.board,.fx-layer{contain:layout style}
.game-stage,.game-frame,.board{transform:translateZ(0);backface-visibility:hidden}
.game-cell,.cell-art{backface-visibility:hidden}
.cell-art{will-change:auto!important}
.game-cell.dragging .cell-art,.game-cell.swap-preview .cell-art,.rocket-flight-art{will-change:transform,opacity!important}

@media(max-width:900px) and (orientation:landscape){
  .world-track{top:40.8cqh!important;height:33.15cqh!important;padding:2.2cqh 4cqw 0!important}
}

/* ========================================================================== 
   GAMEPLAY SETTLE / FIXED-BLOCK POLISH - 2026-08-09
   ========================================================================== */
/* Ice is a fixed overlay. A deterministic negative phase prevents its breathing
   animation from visibly restarting when surrounding movable pieces re-render. */
.game-cell.kind-ice .ice-shell{animation-delay:var(--ice-phase,0s)!important}
/* Fixed blockers never receive compositor hints intended for falling pieces. */
.game-cell.kind-stone:not(.dragging):not(.swap-preview) .cell-art,
.game-cell.kind-ice:not(.dragging):not(.swap-preview) .cell-art{will-change:auto!important}

/* Rocket pass preview: keep board artwork present until the rocket reaches the edge. */
.game-cell.rocket-pass-hit .cell-art{animation:rocketPassHold .31s cubic-bezier(.16,.82,.2,1) both}
@keyframes rocketPassHold{0%{transform:scale(1);filter:brightness(1)}34%{transform:scale(1.075);filter:brightness(1.58) saturate(1.08)}72%{transform:scale(.965);filter:brightness(1.25)}100%{transform:scale(1);filter:brightness(1)}}
.rocket-pass-impact{position:absolute;z-index:70;width:3.2cqw;height:3.2cqw;translate:-50% -50%;border-radius:50%;pointer-events:none;border:.22cqw solid rgba(255,244,161,.96);box-shadow:0 0 .34cqw rgba(255,255,218,.95),0 0 .72cqw rgba(255,151,31,.82);animation:rocketPassImpact .38s cubic-bezier(.14,.72,.18,1) forwards}
.rocket-pass-impact:after{content:"";position:absolute;inset:34%;border-radius:50%;background:rgba(255,250,200,.95);box-shadow:0 0 .5cqw rgba(255,170,30,.9)}
@keyframes rocketPassImpact{0%{opacity:0;scale:.35}25%{opacity:1;scale:.82}100%{opacity:0;scale:1.8}}
.rocket-pass-afterimage{position:absolute;z-index:61;object-fit:contain;pointer-events:none;transform-origin:50% 50%;animation:rocketAfterimageHold .86s cubic-bezier(.16,.72,.2,1) forwards;filter:brightness(1.2) saturate(1.03)}
@keyframes rocketAfterimageHold{0%{opacity:.62;scale:1.02}45%{opacity:.4;scale:.99}100%{opacity:0;scale:.94;filter:brightness(1.05) blur(.08cqw)}}


/* === 2026-08-09 HOME + LANGUAGE CENTER ART REFRESH =========================
   NEW1 sits between ZE1 and the drifting ZE2 layer on both HOME and LANGUAGE
   screens, with a very soft breathing pulse. NEW2 and the animated Cat-1..5 hero stay home-only. */
.home-screen::before,.language-screen::before{z-index:1!important}
.home-screen>.home-new1-under-ze2,.language-screen>.home-new1-under-ze2{
  position:absolute;z-index:0;left:50%;top:50%;
  width:min(81.927083vw,145.648148vh);height:auto;
  transform:translate(-50%,-50%) scale(1);transform-origin:50% 50%;pointer-events:none;
  user-select:none;-webkit-user-drag:none;will-change:transform;
  animation:homeNew1SoftPulse 6.4s ease-in-out infinite;
}
@keyframes homeNew1SoftPulse{
  0%,100%{transform:translate(-50%,-50%) scale(1)}
  50%{transform:translate(-50%,-50%) scale(1.018)}
}
.home-screen>.design-canvas{z-index:2}
.home-new2{
  /* NEW2 is the native 638 x 638 artwork on the 1920 x 1080 design canvas.
     Its center is aligned with the home hero cat's visual center so the cloud sits directly
     behind the cat, near the exact center of the home screen. */
  position:absolute;z-index:7;left:50%;top:53.114815cqh;width:33.229167cqw;height:auto;
  transform:translate(-50%,-50%) scale(1);transform-origin:50% 50%;
  pointer-events:none;user-select:none;-webkit-user-drag:none;
  will-change:transform;animation:homeNew2SoftPulse 5.8s ease-in-out infinite;
}
.home-new3{
  /* Cat-1..5 uses the former center-cat registration on the 1920 x 1080 design canvas.
     Its bottom edge stays registered to the START GAME button's top edge. */
  position:absolute;z-index:8;left:50%;bottom:24.2cqh;width:18.958333cqw;height:auto;
  transform:translateX(-50%) scale(1);transform-origin:50% 100%;
  pointer-events:none;user-select:none;-webkit-user-drag:none;
  will-change:transform;animation:homeNew3Breath 4.6s ease-in-out infinite;
}
@keyframes homeNew2SoftPulse{
  0%,100%{transform:translate(-50%,-50%) scale(1)}
  50%{transform:translate(-50%,-50%) scale(1.025)}
}
@keyframes homeNew3Breath{
  0%,100%{transform:translateX(-50%) scale(1,1)}
  38%{transform:translateX(-50%) scale(1.018,.986)}
  62%{transform:translateX(-50%) scale(.994,1.022)}
}
/* Defensive: the retired homepage cat can never reappear from stale markup. */
.home-cat{display:none!important}
@media(prefers-reduced-motion:reduce){
  .home-new1-under-ze2,.home-new2,.home-new3{animation:none!important}
}

/* === 2026-08-09 HOME CATS BUTTON: NEWCAT ART ===============================
   The retired BO2 cat is replaced by newcats/001.png. The new cat is rendered
   40% smaller while preserving the previous visual center beside the button. */
.home-cats>img.home-menu-cat{
  left:-2.729167cqw!important;right:auto!important;top:calc(-3.703704cqh + 1.854167cqw)!important;
  width:5.5625cqw!important;height:auto!important;max-width:none!important;max-height:none!important;
  object-fit:contain!important;
}
@media(max-width:900px) and (orientation:portrait){
  .home-cats>img.home-menu-cat{left:-2.6cqw!important;top:calc(-2.2cqh + 2.4cqw)!important;width:7.2cqw!important;height:auto!important}
}

/* === 2026-08-09 GLOBAL PAGE TITLE POSITION ================================
   Move every top-left page heading down by exactly 10px in every language,
   without changing the existing responsive left/top measurements. */
.page-title{transform:translateY(10px)!important}

/* ========================================================================== 
   2026-08-10 HOME / BOOK / BABY EXPANSION
   ========================================================================== */
/* HOME: match the supplied 03-home composition with four staggered rows on
   each side. Side art is explicitly left/right per button, never inferred from
   language length, so every translation keeps the same visual balance. */
.home-screen .home-item{width:17.35cqw!important;height:10.02cqh!important;z-index:9!important}
.home-screen .home-item .puf-button{font-size:3.7cqh!important;line-height:.95!important;letter-spacing:.012em!important;padding:0!important}
.home-screen .home-item.icon-left .puf-button{padding-left:11%!important}
.home-screen .home-item.icon-right .puf-button{padding-right:11%!important}
.home-screen .home-item>img{height:auto!important;max-width:none!important;max-height:none!important;object-fit:contain!important;z-index:11!important}
.home-screen .home-story{left:6.15cqw!important;top:30.15cqh!important}
.home-screen .home-cats{left:11.55cqw!important;top:42.85cqh!important}
.home-screen .home-book{left:6.05cqw!important;top:55.45cqh!important}
.home-screen .home-help{left:11.55cqw!important;top:68.05cqh!important}
.home-screen .home-scores{left:76.5cqw!important;top:30.15cqh!important}
.home-screen .home-settings{left:70.95cqw!important;top:42.85cqh!important}
.home-screen .home-baby{left:76.5cqw!important;top:55.45cqh!important}
.home-screen .home-credits{left:70.95cqw!important;top:68.05cqh!important}
.home-screen .home-story>img{left:-4.6cqw!important;right:auto!important;top:-5.8cqh!important;width:9.65cqw!important}
.home-screen .home-cats>img{left:auto!important;right:-5.05cqw!important;top:-2.3cqh!important;width:9.58cqw!important}
.home-screen .home-book>img{left:-4.25cqw!important;right:auto!important;top:-4.15cqh!important;width:8.2cqw!important}
.home-screen .home-help>img{left:auto!important;right:-4.75cqw!important;top:-3.8cqh!important;width:9.2cqw!important}
.home-screen .home-scores>img{left:auto!important;right:-4.75cqw!important;top:-5.65cqh!important;width:9.85cqw!important}
.home-screen .home-settings>img{left:-4.7cqw!important;right:auto!important;top:-4.7cqh!important;width:9.25cqw!important}
.home-screen .home-baby>img{left:auto!important;right:-4.9cqw!important;top:-4.15cqh!important;width:9.35cqw!important}
.home-screen .home-credits>img{left:-4.7cqw!important;right:auto!important;top:-4.55cqh!important;width:9.25cqw!important}
.home-screen .start-wrap{left:38.1cqw!important;top:77.0cqh!important;width:23.49cqw!important;height:14.17cqh!important;z-index:12!important}
.home-screen .home-new2{z-index:7!important}.home-screen .home-new3{z-index:8!important}.home-screen .start-wrap{z-index:12!important}
.home-book>img{animation-delay:-1.48s!important}.home-baby>img{animation-delay:-2.96s!important}

/* BOOK: full-screen storybook with a persistent control/footer chrome. */
.book-reader-screen{background:url('../assets/ZE1.jpg') center/cover no-repeat!important;isolation:isolate}
.book-design-canvas{overflow:hidden!important}
/* Image pages are true full-bleed. The preface keeps the original 16:9 design
   canvas, but once 00.png appears the canvas expands to the live viewport so
   no ZE1 sliver can remain at the left or right edge on extra-wide screens. */
.book-reader-screen:not(.book-preface-mode) .book-design-canvas{width:var(--app-vw)!important;height:var(--app-vh)!important}
.book-page-layer{position:absolute;z-index:3;inset:0;opacity:0;filter:blur(5px);transform:scale(.995);transition:opacity .42s ease,filter .42s ease,transform .55s cubic-bezier(.16,.82,.2,1);pointer-events:none;overflow:hidden}
.book-page-layer.book-page-visible{opacity:1;filter:none;transform:scale(1)}
.book-page-layer.book-page-leave{opacity:0;filter:blur(7px);transform:scale(1.018)}
.book-page-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;transform-origin:50% 50%;animation:none;will-change:transform}
/* Start the Ken-Burns motion only when the new page is actually visible. This
   guarantees that 00.png gets the same gentle zoom-in as every later page. */
.book-page-layer.book-page-visible .book-page-image{animation:bookSlowZoom 11.5s ease-out both}
@keyframes bookSlowZoom{from{transform:scale(1)}to{transform:scale(1.035)}}
.book-preface-copy{position:absolute;z-index:4;left:23.6cqw;top:25.6cqh;width:52.8cqw;text-align:center;color:#181818;text-transform:uppercase}
.book-preface-copy h1{margin:0 0 6.0cqh;font-size:4.25cqh;line-height:1.08;letter-spacing:.008em}
.book-preface-copy p{margin:0 auto 2.55cqh;font-size:1.88cqh;line-height:1.18;letter-spacing:.005em;max-width:51.8cqw}
.book-story-text{position:absolute;z-index:6;left:16.5cqw;top:5.0cqh;width:67cqw;height:14.8cqh;overflow:hidden;display:flex;align-items:flex-start;justify-content:center;text-align:center;text-transform:uppercase;font-size:3.55cqh;line-height:1.04;letter-spacing:.004em;color:#181818;text-wrap:balance;text-shadow:0 .08cqh 0 rgba(255,255,255,.14);animation:bookCopyIn .62s .16s ease both}
@keyframes bookCopyIn{from{opacity:0;transform:translateY(.9cqh);filter:blur(3px)}to{opacity:1;transform:none;filter:none}}
.book-close,.book-arrow{position:absolute;z-index:30;transition:transform .2s cubic-bezier(.2,.86,.2,1),filter .2s ease;filter:drop-shadow(0 .25cqh .16cqw rgba(116,62,77,.12))}
.book-close{right:3.75cqw;top:4.1cqh;width:5.25cqw}.book-close img{width:100%}
.book-arrow{top:43.0cqh;width:9.05cqw}.book-arrow img{width:100%}
.book-prev{left:1.75cqw}.book-next{right:1.75cqw;transform:rotate(180deg)}
.book-close:hover{transform:scale(1.055) rotate(2deg);filter:brightness(1.04)}
.book-prev:hover{transform:translateX(-.45cqw) scale(1.04)}
.book-next:hover{transform:rotate(180deg) translateX(-.45cqw) scale(1.04)}
.book-arrow[hidden]{display:none!important}
.book-fixed-footer{position:absolute;z-index:24;inset:0;pointer-events:none}
.book-footer-rh{position:absolute;left:2.15cqw;bottom:2.55cqh;width:3.3cqw}
.book-footer-copy{position:absolute;left:2.1cqw;bottom:.95cqh;width:28.2cqw;font-size:.46cqh;line-height:1.08;color:#252525;text-align:left;text-transform:uppercase}
.book-footer-logo{position:absolute;right:2.1cqw;bottom:1.9cqh;width:14.3cqw}
.book-reader-screen .site-footer{display:none}
.book-reader-screen.book-preface-mode .book-fixed-footer{display:none}
.book-reader-screen.book-preface-mode .site-footer{display:block}
.book-reader-screen:not(.book-preface-mode)::before{opacity:0!important}
.book-reader-screen.book-preface-mode::before{opacity:.88!important}
.book-loading-center .loading-spinner{filter:drop-shadow(0 .4cqh .28cqw rgba(143,91,123,.08))}
html[lang="ja"] .book-preface-copy,html[lang="ja"] .book-story-text{font-weight:700;letter-spacing:.015em}
html[lang="ja"] .book-preface-copy h1{font-size:3.6cqh}html[lang="ja"] .book-preface-copy p{font-size:1.62cqh;line-height:1.3}

/* BABY LEVELS: classic 1000-level ribbon, independent from the main world's
   unlock state and score system. */
.baby-levels-screen .baby-page-count{position:absolute;z-index:8;left:4.15cqw;top:31.8cqh;font-size:4.1cqh;line-height:1}
.baby-levels-screen .baby-level-track{top:49.0cqh!important;height:33.2cqh!important}
.baby-levels-screen .h-scroll{top:84.15cqh!important}
.baby-level-node small{display:none!important}

/* BABY cinematic level loader. */
.baby-level-intro{position:fixed;z-index:16500;inset:0;background:url('../assets/ZE1.jpg') center/cover no-repeat;opacity:0;filter:blur(4px);transition:opacity .4s ease,filter .55s ease;overflow:hidden;isolation:isolate}
.baby-level-intro::before{content:"";position:absolute;z-index:0;inset:0;background-image:url('../assets/ZE2.png');background-repeat:repeat-x;background-position:0 100%;opacity:.88;animation:catpufZeDrift 62s linear infinite;pointer-events:none}
.baby-level-intro.show{opacity:1;filter:none}.baby-level-intro.go{opacity:0;filter:blur(7px)}
.baby-intro-canvas{position:absolute;z-index:2;left:50%;top:50%;width:min(100vw,177.777778vh);height:min(56.25vw,100vh);transform:translate(-50%,-50%);container-type:size;overflow:hidden}
.baby-intro-cat{position:absolute;z-index:3;left:39.7cqw;top:28.3cqh;width:20.4cqw;height:45.3cqh;object-fit:contain;transform-origin:50% 78%;animation:babyIntroCat 3.8s ease-in-out infinite}
.baby-intro-level{position:absolute;z-index:2;left:54.1cqw;top:38.3cqh;width:15.2cqw;height:28cqh}.baby-intro-level img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.baby-intro-level b{position:absolute;inset:0;display:grid;place-items:center;font-size:6.5cqh;line-height:1;transform:translateY(-.2cqh)}
@keyframes babyIntroCat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-.5cqh) scale(1.012,.99)}}

/* BABY GAME: isolated 5x5 board. Nothing from the main game's special-item
   system is rendered here. */
.baby-game-stage{position:fixed;inset:0;overflow:hidden;background:url('../assets/ZE1.jpg') center/cover no-repeat;isolation:isolate}
.baby-game-stage::before{content:"";position:absolute;z-index:0;inset:0;background-image:url('../assets/ZE2.png');background-repeat:repeat-x;background-position:0 100%;opacity:.52;pointer-events:none}
.baby-game-canvas{position:absolute;z-index:2;left:50%;top:50%;width:min(100vw,177.777778vh);height:min(56.25vw,100vh);transform:translate(-50%,-50%);container-type:size;overflow:hidden}
.baby-board-art{position:absolute;z-index:1;left:5.572917cqw;top:2.777778cqh;width:88.854167cqw;height:94.444444cqh;object-fit:contain;pointer-events:none}
.baby-grid-wrap{position:absolute;z-index:4;left:9.45cqw;top:11.0cqh;width:43.25cqw;aspect-ratio:1;overflow:visible}
.baby-grid{position:absolute;inset:0;display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(5,1fr);gap:.42cqw;padding:.08cqw}
.baby-cell{position:relative;min-width:0;min-height:0;overflow:visible;border-radius:15%;touch-action:none;cursor:pointer;transition:filter .16s ease}.baby-cell-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform-origin:50% 70%;will-change:transform,opacity,filter}
.baby-cell.baby-drag-source{z-index:15}.baby-cell.baby-dragging .baby-cell-art{transition:none!important;transform:translate(var(--baby-drag-x),var(--baby-drag-y)) scale(1.035)!important;z-index:20}.baby-cell.baby-swap-preview{z-index:14}.baby-cell.baby-swap-preview .baby-cell-art{transition:transform .04s linear!important;transform:translate(var(--baby-preview-x),var(--baby-preview-y)) scale(.99)!important}.baby-cell.baby-pressed:not(.baby-dragging) .baby-cell-art{transform:scale(.91,.89)!important;filter:brightness(1.04) saturate(1.03)!important}
.baby-cell.baby-kind-cat .baby-cell-art{inset:3%;width:94%;height:94%}
.baby-cell.selected .baby-cell-art{filter:brightness(1.08) drop-shadow(0 0 .5cqw rgba(255,220,103,.92));animation:babySelected 1.05s ease-in-out infinite}
@keyframes babySelected{0%,100%{transform:scale(1)}50%{transform:scale(1.055)}}
.baby-cell.baby-wrong .baby-cell-art{animation:babyWrong .36s ease-out}
@keyframes babyWrong{0%,100%{transform:translateX(0)}25%{transform:translateX(-.28cqw) rotate(-2deg)}58%{transform:translateX(.28cqw) rotate(2deg)}82%{transform:translateX(-.1cqw)}}
/* Baby matches now use the exact classic pillow split + YA burst effect. The
   detached FX layer lets every matched pillow finish its burst while gravity
   starts underneath it, exactly like the main game. */
.baby-match-fx{position:absolute;z-index:18;inset:0;overflow:visible;pointer-events:none}
.baby-match-fx .baby-pillow-rip-layer{pointer-events:none}
.baby-match-fx .baby-pillow-pop-burst{pointer-events:none!important}
.baby-cell.baby-cat-bop .baby-cell-art{animation:babyCatBop .42s cubic-bezier(.2,.86,.2,1)}
@keyframes babyCatBop{0%,100%{transform:translateY(0) scale(1)}42%{transform:translateY(-.6cqh) scale(1.04,.97)}70%{transform:translateY(0) scale(.98,1.02)}}
.baby-cell.baby-cat-rescue .baby-cell-art{animation:babyCatRescue .48s cubic-bezier(.16,.82,.2,1) forwards}
@keyframes babyCatRescue{0%{opacity:1;transform:translateY(0) scale(1)}45%{opacity:1;transform:translateY(-1.5cqh) scale(1.08)}100%{opacity:0;transform:translateY(-6cqh) scale(.74);filter:blur(1px)}}
.baby-bubble-layer{position:absolute!important;z-index:20!important;inset:-8%!important;overflow:visible!important;pointer-events:none!important}
.baby-bubble-layer .floating-callout-art{width:24%!important;max-height:32%!important}
/* Baby never renders the legacy circular text callouts. Completion and failure
   use the same full cinematic end window as the classic game, minus score UI. */
.baby-end-wrap .score-submit,.baby-end-wrap .submit-status{display:none!important}
.baby-end-modal .modal-copy h2{margin-bottom:0!important}
.baby-end-modal .modal-actions{top:58.8cqh!important}
/* Baby completion is intentionally re-centered inside the classic window: copy,
   celebration cat and both actions share one clean center axis with safe gaps. */
.baby-end-modal.win .modal-copy{left:50%!important;top:6.8cqh!important;width:76cqw!important;translate:-50% 0;text-align:center!important}
.baby-end-modal.win .modal-copy small{font-size:3.25cqh!important;line-height:1!important}
.baby-end-modal.win .modal-copy h2{font-size:7.9cqh!important;line-height:.9!important;margin:.8cqh 0 0!important}
.baby-end-modal.win .modal-cat{left:50%!important;top:27.2cqh!important;width:25cqw!important;height:34cqh!important;translate:-50% 0;object-fit:contain!important}
.baby-end-modal.win .modal-actions{left:50%!important;top:63.2cqh!important;width:32.8cqw!important;height:30cqh!important;translate:-50% 0}
.baby-end-modal.win .modal-primary{left:50%!important;translate:-50% 0}
.baby-end-modal.win .modal-menu{left:50%!important;translate:-50% 0}
.baby-hud{position:absolute;z-index:6;left:61.4cqw;top:17.7cqh;width:31.3cqw;height:68cqh;text-align:center;text-transform:uppercase;pointer-events:none}
.baby-hud>div{position:absolute;left:0;width:100%;display:flex;flex-direction:column;align-items:center}.baby-hud span{display:block;line-height:1}.baby-hud b{display:block;line-height:.9}
.baby-hud-level{top:0}.baby-hud-level span{display:none}.baby-hud-level b{font-size:5.25cqh}.baby-hud-level b::before{content:attr(data-label)}
.baby-hud-moves{top:12.2cqh}.baby-hud-moves span{font-size:3.0cqh}.baby-hud-moves b{font-size:11.4cqh;margin-top:1.4cqh}
.baby-hud-cats{top:35.6cqh}.baby-hud-cats span{font-size:3.05cqh}.baby-hud-cats b{font-size:9.8cqh;margin-top:1.1cqh}
.baby-exit{position:absolute;z-index:8;left:10.8cqw;top:51.1cqh;width:8.05cqw;pointer-events:auto}.baby-exit img{width:100%;transition:transform .2s,filter .2s}.baby-exit:hover img{transform:translateX(-.45cqw) scale(1.045);filter:brightness(1.04)}
.baby-hud-level::before{content:attr(data-title);display:none}
.baby-hud-level{font-size:0}.baby-hud-level b{font-size:5.25cqh}.baby-hud-level b:before{content:"LEVEL ";font-size:.95em}
html[lang="tr"] .baby-hud-level b:before{content:"BÖLÜM "}html[lang="es"] .baby-hud-level b:before{content:"NIVEL "}html[lang="it"] .baby-hud-level b:before{content:"LIVELLO "}html[lang="fr"] .baby-hud-level b:before{content:"NIVEAU "}html[lang="ja"] .baby-hud-level b:before{content:"レベル "}

@media(max-width:900px) and (orientation:landscape){
  .book-preface-copy{left:20cqw;width:60cqw}.book-preface-copy h1{font-size:3.55cqh}.book-preface-copy p{font-size:1.55cqh;max-width:58cqw}
  .book-story-text{left:13cqw;width:74cqw;font-size:3.0cqh}
  .home-screen .home-item .puf-button{font-size:3.25cqh!important}
}
@media(prefers-reduced-motion:reduce){
  .book-page-image,.baby-intro-cat,.baby-cell.selected .baby-cell-art{animation:none!important}
}


/* ========================================================================== 
   2026-08-10 BOOK CROSSFADE + PROGRESSIVE LOCK LISTS + BABY END ALIGNMENT
   ========================================================================== */
/* BOOK: outgoing and incoming pages overlap during navigation. This makes the
   first preface -> 00.png handoff cinematic and keeps every later image-to-
   image transition as one continuous, soft crossfade with no blank beat. */
.book-page-layer{transition:opacity .72s ease,filter .72s ease,transform .86s cubic-bezier(.16,.82,.2,1)!important}
.book-page-layer.book-page-incoming{opacity:0!important;filter:blur(5px)!important;transform:scale(1.008)!important;z-index:4!important}
.book-page-layer.book-page-incoming.book-page-visible{opacity:1!important;filter:none!important;transform:scale(1)!important}
.book-page-layer.book-page-leave{opacity:0!important;filter:blur(5px)!important;transform:scale(1.022)!important;z-index:3!important}
.book-page-layer.book-first-page-leave{transition-duration:.94s!important;filter:blur(6px)!important;transform:scale(1.014)!important}
.book-page-layer.book-first-image-incoming{transition-duration:.94s!important;transform:scale(1.018)!important}
.book-page-layer.book-first-image-incoming.book-page-visible{transform:scale(1)!important}
.book-page-layer.book-page-visible .book-page-image{animation:bookSlowZoom 9.4s cubic-bezier(.18,.72,.2,1) both!important}
@keyframes bookSlowZoom{from{transform:scale(1)}to{transform:scale(1.052)}}

/* CATS / LEVELS: render only progress plus one next locked preview. The preview
   remains interactive solely to give the familiar WRONG feedback. */
.cat-card.locked-preview{cursor:not-allowed}
.cat-card.locked-preview .cat-lock-placeholder{width:8.9cqw!important;height:20.5cqh!important;object-fit:contain!important;opacity:1!important;filter:drop-shadow(0 .35cqh .28cqw rgba(96,63,95,.12));transition:transform .2s cubic-bezier(.2,.86,.2,1),filter .2s ease}
.cat-card.locked-preview:hover .cat-lock-placeholder,.cat-card.locked-preview:focus-visible .cat-lock-placeholder{transform:scale(1.075);filter:brightness(1.035) drop-shadow(0 .45cqh .34cqw rgba(96,63,95,.14))}
.level-node.locked-preview{cursor:not-allowed}
.level-node.locked-preview .level-disc,.level-node.locked-preview .level-lock{transition:transform .2s cubic-bezier(.2,.86,.2,1),filter .2s ease;transform-origin:50% 52%}
.level-node.locked-preview:hover .level-disc,.level-node.locked-preview:focus-visible .level-disc{transform:scale(1.025);filter:brightness(1.018)}
.level-node.locked-preview:hover .level-lock,.level-node.locked-preview:focus-visible .level-lock{transform:scale(1.08);filter:brightness(1.035)}
.locked-preview.locked-feedback .level-lock,.locked-preview.locked-feedback .cat-lock-placeholder{animation:lockedWrongBump .4s ease-out!important}
@keyframes lockedWrongBump{0%,100%{transform:translateX(0) scale(1)}25%{transform:translateX(-.26cqw) scale(1.06)}58%{transform:translateX(.26cqw) scale(1.06)}82%{transform:translateX(-.08cqw) scale(1.02)}}

/* Give the animated CURRENT level halo enough invisible breathing room above
   the nodes while keeping the circles at their previous visual Y position. */
.world-levels-screen .level-track{top:46.45cqh!important;height:35.70cqh!important;padding-top:2.60cqh!important}
.baby-levels-screen .baby-level-track{top:46.40cqh!important;height:35.80cqh!important;padding-top:2.60cqh!important}

/* BABY WIN: title stays centered at the top; the celebration cat and both
   actions are one centered vertical group in the remaining window area. */
.baby-end-modal.win .modal-copy{left:50%!important;top:6.6cqh!important;width:76cqw!important;translate:-50% 0!important;text-align:center!important}
.baby-end-modal.win .modal-copy small{font-size:3.15cqh!important;line-height:1!important}
.baby-end-modal.win .modal-copy h2{font-size:7.55cqh!important;line-height:.9!important;margin:.75cqh 0 0!important}
.baby-end-modal.win .baby-end-center{position:absolute!important;z-index:7!important;left:50%!important;top:20.5cqh!important;bottom:10.5cqh!important;width:44cqw!important;translate:-50% 0!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:1.4cqh!important;pointer-events:none}
.baby-end-modal.win .baby-end-center .modal-cat{position:relative!important;left:auto!important;top:auto!important;width:23.5cqw!important;height:29.5cqh!important;translate:none!important;object-fit:contain!important;flex:0 0 29.5cqh!important;pointer-events:none}
.baby-end-modal.win .baby-end-center .modal-actions{position:relative!important;left:auto!important;top:auto!important;width:32.8cqw!important;height:29.5cqh!important;translate:none!important;flex:0 0 29.5cqh!important;pointer-events:auto}
.baby-end-modal.win .baby-end-center .modal-primary{left:50%!important;translate:-50% 0!important}
.baby-end-modal.win .baby-end-center .modal-menu{left:50%!important;translate:-50% 0!important}

@media(max-width:900px) and (orientation:landscape){
  .cat-card.locked-preview .cat-lock-placeholder{width:7.8cqw!important;height:18.3cqh!important}
  .world-levels-screen .level-track{top:40.4cqh!important;height:51.6cqh!important;padding-top:2.6cqh!important}
  .baby-levels-screen .baby-level-track{top:40.4cqh!important;height:51.6cqh!important;padding-top:2.6cqh!important}
  .baby-end-modal.win .baby-end-center{top:20.5cqh!important;bottom:10.5cqh!important}
}

@media(prefers-reduced-motion:reduce){
  .book-page-layer{transition:none!important}
  .book-page-layer.book-page-visible .book-page-image,.locked-preview.locked-feedback .level-lock,.locked-preview.locked-feedback .cat-lock-placeholder{animation:none!important}
}




/* === TURN 36: locked-world feedback, Turkish book type, parachute click parity === */
.world-card.locked.locked-preview{cursor:not-allowed}
.world-card.locked .world-visual{transition:transform .22s cubic-bezier(.2,.86,.2,1),filter .22s ease;transform-origin:50% 48%}
.world-card.locked:hover .world-visual,.world-card.locked:focus-visible .world-visual{transform:translateY(-.18cqh) scale(1.04);filter:brightness(1.02) saturate(.9) drop-shadow(0 .55cqh .55cqw rgba(94,63,106,.14))}
.world-card.locked:active .world-visual{transform:scale(1.025)}
.world-card.locked-feedback .world-lock{animation:lockedWrongBump .4s ease-out!important}

/* Turkish story copy stays fully accented (DÜNYANIN, KÖŞESİNDE, GÜVENLİYDİ...) and gets a touch more air. */
.book-reader-screen[lang="tr"] .book-story-text{letter-spacing:.026em!important}
.book-reader-screen[lang="tr"] .book-preface-copy{letter-spacing:.018em}
.book-reader-screen[lang="tr"] .book-preface-copy h1{letter-spacing:.024em}

/* Falling parachute cats now use the same click squash/giggle as horizontal flyers. */
.ambient-parachute.giggle img{animation:ambientFlyGiggle .46s cubic-bezier(.16,.9,.22,1)!important}

@media(prefers-reduced-motion:reduce){
  .world-card.locked:hover .world-visual,.world-card.locked:focus-visible .world-visual,.world-card.locked:active .world-visual{transform:none!important}
  .world-card.locked-feedback .world-lock,.ambient-parachute.giggle img{animation:none!important}
}
/* HOME APK DOWNLOAD: image button sits immediately to the right of the
   START GAME button + play character. It is shared by every language because
   the home composition itself is language-agnostic. */
.home-screen .home-apk-download{
  position:absolute;z-index:13;left:66.55cqw;top:84.1cqh;width:11.4cqw;height:10.8cqh;
  display:grid;place-items:center;transform:translateY(-50%);transform-origin:50% 50%;
  cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;
  transition:transform .2s cubic-bezier(.2,.86,.2,1),filter .2s ease;
}
.home-screen .home-apk-download img{
  display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;
  pointer-events:none;user-select:none;-webkit-user-drag:none;
}
.home-screen .home-apk-download:hover,.home-screen .home-apk-download:focus-visible{
  transform:translateY(-50%) scale(1.045);
  filter:brightness(1.035) drop-shadow(0 .4cqh .34cqw rgba(112,74,96,.18));
  outline:none;
}
.home-screen .home-apk-download:active{transform:translateY(-50%) scale(.975)}
@media(prefers-reduced-motion:reduce){
  .home-screen .home-apk-download{transition:none!important}
}


/* ========================================================================== 
   CAT IDLE BREATHING — gallery + BABY board (visible + motion-safe)
   The motion-frame system only swaps image sources. Breathing stays on an outer
   layer, so 001.-1/2/3 frame swaps never lose or overwrite the idle movement.
   ========================================================================== */

/* CATS gallery: the artwork breathes while the card/name stays fixed. */
.cat-gallery .cat-card.open .cat-art{
  transform-origin:50% 78%!important;
  will-change:transform;
  animation-name:catGalleryIdleBreath!important;
  animation-duration:3.7s!important;
  animation-timing-function:cubic-bezier(.42,0,.35,1)!important;
  animation-iteration-count:infinite!important;
  animation-fill-mode:both!important;
}
.cat-gallery .cat-card.open:nth-child(4n+1) .cat-art{animation-duration:3.45s!important;animation-delay:-.63s!important}
.cat-gallery .cat-card.open:nth-child(4n+2) .cat-art{animation-duration:3.95s!important;animation-delay:-1.21s!important}
.cat-gallery .cat-card.open:nth-child(4n+3) .cat-art{animation-duration:3.62s!important;animation-delay:-1.77s!important}
.cat-gallery .cat-card.open:nth-child(4n) .cat-art{animation-duration:4.12s!important;animation-delay:-.31s!important}
@keyframes catGalleryIdleBreath{
  0%,100%{transform:translateY(0) scaleX(1) scaleY(1)}
  38%{transform:translateY(-.22cqh) scaleX(1.022) scaleY(.976)}
  55%{transform:translateY(-.31cqh) scaleX(1.032) scaleY(.965)}
  72%{transform:translateY(-.13cqh) scaleX(1.014) scaleY(.986)}
}

/* BABY: animate the cell wrapper, never the image. Drag/swap/motion-frame logic
   therefore continues to own .baby-cell-art without fighting this breathing. */
.baby-cell.baby-kind-cat:not(.baby-dragging):not(.baby-drag-source):not(.baby-cat-rescue){
  transform-origin:50% 76%!important;
  will-change:transform;
  animation-name:babyCatIdleBreath!important;
  animation-duration:3.35s!important;
  animation-timing-function:cubic-bezier(.42,0,.35,1)!important;
  animation-iteration-count:infinite!important;
  animation-fill-mode:both!important;
}
.baby-cell.baby-kind-cat:nth-child(4n+1){animation-duration:3.12s!important;animation-delay:-.37s!important}
.baby-cell.baby-kind-cat:nth-child(4n+2){animation-duration:3.58s!important;animation-delay:-1.03s!important}
.baby-cell.baby-kind-cat:nth-child(4n+3){animation-duration:3.28s!important;animation-delay:-1.51s!important}
.baby-cell.baby-kind-cat:nth-child(4n){animation-duration:3.78s!important;animation-delay:-.69s!important}
@keyframes babyCatIdleBreath{
  0%,100%{transform:translateY(0) scaleX(1) scaleY(1)}
  40%{transform:translateY(-.16cqh) scaleX(1.025) scaleY(.973)}
  56%{transform:translateY(-.23cqh) scaleX(1.036) scaleY(.961)}
  74%{transform:translateY(-.09cqh) scaleX(1.016) scaleY(.985)}
}

/* The site's older accessibility rule globally shortens every CSS animation.
   Keep only these tiny idle breaths alive, because otherwise they become a
   single invisible frame while the JS motion-frame cats still keep animating. */
@media(prefers-reduced-motion:reduce){
  .cat-gallery .cat-card.open .cat-art{
    animation-name:catGalleryIdleBreath!important;
    animation-iteration-count:infinite!important;
  }
  .baby-cell.baby-kind-cat:not(.baby-dragging):not(.baby-drag-source):not(.baby-cat-rescue){
    animation-name:babyCatIdleBreath!important;
    animation-iteration-count:infinite!important;
  }
}


/* ========================================================================== 
   ANIMATED BOARD OBJECTS — fish / hamster / rocket / bomb / nuclear
   JS owns the 1.5s still -> 0.5s random frame swap. These rules only keep the
   new artwork layered correctly and let Nuclear-2 rotate above Nuclear-1.
   ========================================================================== */
.game-cell.special-nuclear:after{
  content:none!important;
  display:none!important;
}
.game-cell.special-nuclear .cell-art{
  z-index:2!important;
}
.nuclear-spinner-art{
  position:absolute;
  z-index:4;
  left:0;right:0;top:0;bottom:0;
  margin:auto;
  width:5.443658cqw;
  height:9.910803cqh;
  object-fit:contain;
  pointer-events:none;
  transform-origin:50% 50%;
  animation:nuclearSpinnerClockwise 6.4s linear infinite!important;
  will-change:transform;
}
@keyframes nuclearSpinnerClockwise{
  from{transform:rotate(0deg)}
  to{transform:rotate(360deg)}
}
.game-cell.special-consumed .nuclear-spinner-art{
  opacity:0!important;
  animation:none!important;
}
.game-cell.nuclear-prime .nuclear-spinner-art{
  animation-duration:2.8s!important;
  filter:brightness(1.08) drop-shadow(0 0 .3cqw rgba(255,225,114,.42));
}
@media(prefers-reduced-motion:reduce){
  .nuclear-spinner-art{
    animation:nuclearSpinnerClockwise 6.4s linear infinite!important;
  }
}

/* ========================================================================== 
   ICE CRACK FRAMES + RED NUCLEAR + HERO CAT MOTION — 2026-08-12
   ========================================================================== */
.game-cell.kind-ice.ice-crack-sequence .ice-shell{
  animation:none!important;
  transition:none!important;
  filter:brightness(1.08) drop-shadow(0 .14cqh .2cqh rgba(117,174,213,.28))!important;
}
.game-cell.kind-special.special-nuclear.nuclear-red .cell-art{
  z-index:2!important;
}
.game-cell.kind-special.special-nuclear.nuclear-red .nuclear-spinner-art{
  z-index:4!important;
}
.game-cell.kind-special.special-nuclear.nuclear-red-prime .cell-art{
  filter:brightness(1.12) drop-shadow(0 0 .42cqw rgba(255,78,78,.46))!important;
}
/* Keep the Cat-1..5 source-swap motion independent from the soft breathing
   transforms already used on HOME and the win modal. */
.home-new3[data-object-motion="hero-cat"]{animation:homeNew3Breath 4.6s ease-in-out infinite!important}
.game-modal.win .modal-cat[data-object-motion="hero-cat"]{transform-origin:50% 72%!important}



/* ========================================================================== 
   CAT / FEATURE PHYSICS — cold ice reaction + fish/hamster eat/spit sequence
   ========================================================================== */
/* The cell wrapper shivers, while the cat image keeps its breathing + motion-frame
   animation untouched. Adjacent ice is recalculated after every board render. */
.game-cell.kind-cat.cat-cold:not(.dragging):not(.swap-preview):not(.cat-feature-slide-source):not(.cat-rescue){
  transform-origin:50% 74%!important;
  animation:catColdShiver .34s ease-in-out infinite!important;
}
.game-cell.kind-cat.cat-cold:nth-child(2n){animation-delay:-.09s!important}
.game-cell.kind-cat.cat-cold:nth-child(3n){animation-duration:.39s!important;animation-delay:-.16s!important}
@keyframes catColdShiver{
  0%,100%{translate:0 0;rotate:0deg}
  20%{translate:-.075cqw 0;rotate:-.42deg}
  43%{translate:.065cqw -.035cqh;rotate:.38deg}
  67%{translate:-.045cqw .025cqh;rotate:-.28deg}
  84%{translate:.055cqw 0;rotate:.32deg}
}

/* During the bite the prey must remain visually ABOVE the cat: the cat slides
   under it, the prey shrinks into the mouth, then the skeleton is spat out. */
.game-cell.cat-feature-slide-source{z-index:41!important}
.game-cell.cat-feature-eat-target{z-index:44!important;overflow:visible!important}
.game-cell.cat-feature-eat-target .cell-art{transform-origin:50% 54%!important}
.feature-skeleton-spit{
  position:absolute;z-index:96;pointer-events:none;width:5.95cqw;height:10.85cqh;
  object-fit:contain;will-change:transform,opacity;filter:drop-shadow(0 .24cqh .28cqw rgba(85,58,48,.28));
}
.feature-skeleton-spit.skeleton-fish{width:5.7cqw;height:10.4cqh}
.feature-skeleton-spit.skeleton-hamster{width:5.35cqw;height:9.9cqh}

@media(prefers-reduced-motion:reduce){
  .game-cell.kind-cat.cat-cold:not(.dragging):not(.swap-preview):not(.cat-feature-slide-source):not(.cat-rescue){
    animation:catColdShiver .5s ease-in-out infinite!important;
  }
}


/* ========================================================================== 
   REFERENCE END / UNLOCK SCREENS — 2026-08-14
   Layout follows 11-gameover, 12-nextlevel, 14-opencat, 14-openworld and
   11-gamefinish while reusing the existing responsive window/button system.
   ========================================================================== */

/* Keep all five supplied compositions on the same 1569x777 stitched window. */
.game-modal.game-over-ref,
.game-modal.next-level-ref,
.game-modal.final-game-ref,
.cat-unlock-window.cat-open-ref,
.cat-unlock-window.world-open-ref{
  width:min(81.71875cqw,145.27778cqh)!important;
  aspect-ratio:1569/777!important;
  overflow:visible!important;
}

/* GAME OVER — supplied GOVER1 + floating GOVER2 birds. */
.game-over-wrap .game-end-footer{display:none!important}
.game-modal.game-over-ref .modal-cat{
  left:-6.4cqw!important;top:30.5cqh!important;width:48.3cqw!important;height:63.5cqh!important;
  object-fit:contain!important;animation:gameOverCatSettle 3.2s ease-in-out infinite!important;
  transform-origin:50% 80%!important
}
.game-modal.game-over-ref .gameover-birds{
  position:absolute;z-index:9;left:-1.5cqw;top:17.2cqh;width:27.8cqw;height:23.5cqh;
  object-fit:contain;pointer-events:none;animation:gameOverBirdBob 1.8s ease-in-out infinite;
  filter:drop-shadow(0 .16cqh .15cqw rgba(112,87,65,.08))
}
.game-modal.game-over-ref .modal-copy{left:24.8cqw!important;top:6.0cqh!important;width:66.8cqw!important}
.game-modal.game-over-ref .modal-copy small{font-size:3.25cqh!important;line-height:1!important}
.game-modal.game-over-ref .modal-copy h2{font-size:9.5cqh!important;line-height:.88!important;margin:1.7cqh 0 4.2cqh!important}
.game-modal.game-over-ref .modal-copy p{font-size:2.85cqh!important}
.game-modal.game-over-ref .modal-copy strong{font-size:5.55cqh!important;margin-top:1.35cqh!important}
.game-modal.game-over-ref .modal-actions{left:34.2cqw!important;top:60.7cqh!important}
.game-modal.game-over-ref .score-submit{left:71.1cqw!important;top:60.5cqh!important;width:22.5cqw!important}
.game-modal.game-over-ref .submit-status{left:71.1cqw!important;top:86.2cqh!important;width:22.5cqw!important}
@keyframes gameOverBirdBob{0%,100%{translate:0 -.35cqh}50%{translate:0 1.55cqh}}
@keyframes gameOverCatSettle{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 .25cqh;rotate:-.18deg}}

/* LEVEL COMPLETE — supplied LEN1, larger fireworks, same score/actions geometry. */
.game-modal.next-level-ref .modal-cat{
  left:-6.2cqw!important;top:-8.8cqh!important;width:43.6cqw!important;height:94.2cqh!important;
  object-fit:contain!important;animation:nextLevelCatFloat 2.7s ease-in-out infinite!important;
  transform-origin:50% 78%!important;filter:drop-shadow(0 .55cqh .34cqw rgba(67,50,42,.11))
}
.game-modal.next-level-ref .modal-copy{left:31.3cqw!important;top:4.9cqh!important;width:61.5cqw!important}
.game-modal.next-level-ref .modal-copy small{font-size:3.65cqh!important;line-height:1!important}
.game-modal.next-level-ref .modal-copy h2{font-size:8.25cqh!important;line-height:.88!important;margin:1.15cqh 0 4.5cqh!important}
.game-modal.next-level-ref .modal-copy p{font-size:2.75cqh!important}
.game-modal.next-level-ref .modal-copy strong{font-size:5.5cqh!important;margin-top:1.2cqh!important}
.game-modal.next-level-ref .modal-actions{left:33.2cqw!important;top:51.5cqh!important}
.game-modal.next-level-ref .score-submit{left:69.8cqw!important;top:57.2cqh!important;width:22.8cqw!important}
.game-modal.next-level-ref .submit-status{left:69.8cqw!important;top:83.0cqh!important;width:22.8cqw!important}
@keyframes nextLevelCatFloat{0%,100%{translate:0 0;scale:1}50%{translate:0 -.7cqh;scale:1.012 .992}}

/* FINAL GAME — supplied FinalCat with its own final-copy layout. */
.final-game-wrap .game-end-footer{display:none!important}
.game-modal.final-game-ref .modal-cat{
  left:.6cqw!important;top:3.9cqh!important;width:36.4cqw!important;height:89.7cqh!important;
  object-fit:contain!important;animation:finalCatFloat 3s ease-in-out infinite!important;
  transform-origin:50% 76%!important;filter:drop-shadow(0 .6cqh .38cqw rgba(68,49,40,.12))
}
.game-modal.final-game-ref .modal-copy{left:34.2cqw!important;top:5.4cqh!important;width:59.4cqw!important}
.game-modal.final-game-ref .modal-copy small{font-size:3.5cqh!important;line-height:1!important}
.game-modal.final-game-ref .modal-copy h2{font-size:8.75cqh!important;line-height:.86!important;margin:1.15cqh 0 4.4cqh!important}
.game-modal.final-game-ref .modal-copy p{font-size:2.7cqh!important}
.game-modal.final-game-ref .modal-copy strong{font-size:5.6cqh!important;margin-top:1.25cqh!important}
.game-modal.final-game-ref .modal-actions{left:33.8cqw!important;top:56.2cqh!important}
.game-modal.final-game-ref .score-submit{left:70.7cqw!important;top:60.3cqh!important;width:22.5cqw!important}
.game-modal.final-game-ref .submit-status{left:70.7cqw!important;top:86cqh!important;width:22.5cqw!important}
@keyframes finalCatFloat{0%,100%{translate:0 0;scale:1}50%{translate:0 -.52cqh;scale:1.008 .994}}

/* The reference celebration is deliberately large but still only one image node
   per burst, keeping the animation GPU-friendly. */
.game-modal.next-level-ref .celebration-firework,
.game-modal.final-game-ref .celebration-firework{
  z-index:1!important;filter:drop-shadow(0 .1cqh .12cqw rgba(255,185,73,.12));
  will-change:scale,opacity,filter!important
}

/* CAT OPEN / WORLD OPEN — OPCAT stays on the left; the unlocked reward is on
   the right. These reference screens intentionally have no copyright footer. */
.cat-open-wrap .game-end-footer,.world-unlock-wrap .game-end-footer{display:none!important}
.cat-unlock-window.cat-open-ref,.cat-unlock-window.world-open-ref{
  background:transparent!important;transform:scale(.92);opacity:0;
  transition:opacity .3s,transform .42s cubic-bezier(.2,1.08,.25,1)!important
}
.cat-unlock-wrap.show .cat-open-ref,.cat-unlock-wrap.show .world-open-ref{opacity:1;transform:scale(1)}
.cat-open-ref .cat-unlock-close,.world-open-ref .cat-unlock-close{
  right:-.7cqw!important;top:-4.2cqh!important;width:6.7cqw!important
}
.unlock-host-cat{
  position:absolute;z-index:3;left:1.0cqw;top:-3.3cqh;width:47.2cqw;height:95.5cqh;
  object-fit:contain;pointer-events:none;transform-origin:50% 78%;
  animation:unlockHostBreathe 2.8s ease-in-out infinite;
  filter:drop-shadow(0 .55cqh .35cqw rgba(74,56,43,.12))
}
.cat-open-copy,.world-open-copy{
  position:absolute;z-index:5;left:44.8cqw;top:10.7cqh;width:47cqw;text-align:center;
  text-transform:uppercase;line-height:.88;pointer-events:none
}
.cat-open-copy span,.world-open-copy span{display:block;font-size:7.25cqh;letter-spacing:-.02em}
.cat-open-copy strong,.world-open-copy strong{display:block;font-size:8.0cqh;letter-spacing:-.025em;margin-top:2cqh}
.cat-open-reward{
  position:absolute;z-index:5;left:53.05cqw;top:41.7cqh;width:30.5cqw;height:39.2cqh;
  object-fit:contain;transform-origin:50% 82%;animation:unlockRewardBreathe 2.45s ease-in-out infinite;
  filter:drop-shadow(0 .42cqh .34cqw rgba(67,58,72,.12))
}
.world-open-orb{
  position:absolute;z-index:5;left:53.05cqw;top:41.2cqh;width:30.5cqw;aspect-ratio:1;
  display:block;transform-origin:50% 50%;animation:worldOpenSpin 9s linear infinite;
  filter:drop-shadow(0 .5cqh .5cqw rgba(86,64,92,.12))
}
.world-open-orb img{width:100%;height:100%;object-fit:contain}
@keyframes unlockHostBreathe{0%,100%{translate:0 0;scale:1}50%{translate:0 -.42cqh;scale:1.012 .992}}
@keyframes unlockRewardBreathe{0%,100%{translate:0 0;scale:1}50%{translate:0 -.38cqh;scale:1.018 .986}}
@keyframes worldOpenSpin{to{rotate:360deg}}

/* Japanese final/unlock headings need a little less scale to preserve the same
   registration without overflowing the right half of the window. */
html[lang="ja"] .cat-open-copy span,html[lang="ja"] .world-open-copy span{font-size:5.7cqh!important}
html[lang="ja"] .cat-open-copy strong,html[lang="ja"] .world-open-copy strong{font-size:6.2cqh!important}
html[lang="ja"] .game-modal.final-game-ref .modal-copy h2{font-size:7.1cqh!important}

/* ========================================================================== 
   CATPUF BUBBLE NAVIGATION SYSTEM — 2026-08-14
   Language + home navigation use the supplied Bubble.png and NS1..NS9 artwork.
   ========================================================================== */
.bubble-language-screen .catpuf-logo,.bubble-home-screen .catpuf-logo{
  left:32.7cqw!important;top:5.2cqh!important;width:34.6cqw!important;z-index:30!important;
}
.bubble-language-stage,.home-bubble-stage{position:absolute;inset:0;z-index:12;pointer-events:none}
.bubble-action{appearance:none;border:0;background:transparent;padding:0;margin:0;color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.bubble-action>.bubble-visual{pointer-events:none}
.bubble-visual{
  position:absolute;display:block;left:50%;top:0;width:100%;aspect-ratio:601/593;
  translate:-50% 0;transform-origin:50% 50%;isolation:isolate;
  animation:catpufBubbleFloat var(--bubble-float-duration,4.2s) ease-in-out var(--bubble-float-delay,0s) infinite alternate;
  transition:scale .22s cubic-bezier(.16,.88,.22,1),filter .18s ease;
  will-change:translate,transform,filter,scale;
}
.bubble-shell{position:absolute;z-index:1;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 .45cqh .5cqw rgba(117,87,149,.12));will-change:transform,opacity,filter}
.bubble-icon{position:absolute;z-index:3;left:50%;top:50%;width:51%;height:53%;translate:-50% -50%;object-fit:contain;filter:drop-shadow(0 .18cqh .18cqw rgba(96,70,94,.10));will-change:transform,opacity}
@keyframes catpufBubbleFloat{
  0%{translate:-50% -.65cqh;rotate:-.28deg}
  47%{translate:-50% .18cqh;rotate:.12deg}
  100%{translate:-50% .78cqh;rotate:.34deg}
}
.bubble-action:hover .bubble-visual,.bubble-action:focus-visible .bubble-visual{scale:1.075;filter:brightness(1.055) saturate(1.045)}
.bubble-action:active .bubble-visual{scale:1.025}
.bubble-action:focus-visible{outline:.18cqw solid rgba(255,255,255,.82);outline-offset:.2cqw;border-radius:50%}
.bubble-action.burst-lock{pointer-events:none}

/* Bubble pop. The same Bubble.png becomes eight clipped shards; no new art is generated. */
.bubble-shards{position:absolute;z-index:5;inset:0;pointer-events:none;opacity:0}
.bubble-shards>i{position:absolute;inset:0;background:url('../assets/Bubble.png') center/100% 100% no-repeat;opacity:0;will-change:transform,opacity,filter}
.bubble-shards>i:nth-child(1){clip-path:polygon(0 0,50% 0,43% 37%,0 48%);--sx:-2.8cqw;--sy:-3.3cqh;--sr:-24deg}
.bubble-shards>i:nth-child(2){clip-path:polygon(50% 0,100% 0,100% 42%,57% 37%);--sx:2.5cqw;--sy:-3.7cqh;--sr:27deg}
.bubble-shards>i:nth-child(3){clip-path:polygon(57% 37%,100% 42%,100% 77%,69% 64%);--sx:4.0cqw;--sy:-.2cqh;--sr:42deg}
.bubble-shards>i:nth-child(4){clip-path:polygon(69% 64%,100% 77%,100% 100%,51% 100%,54% 71%);--sx:2.9cqw;--sy:4.2cqh;--sr:31deg}
.bubble-shards>i:nth-child(5){clip-path:polygon(0 77%,54% 71%,51% 100%,0 100%);--sx:-2.1cqw;--sy:4.4cqh;--sr:-34deg}
.bubble-shards>i:nth-child(6){clip-path:polygon(0 44%,37% 39%,40% 69%,0 77%);--sx:-4.1cqw;--sy:.5cqh;--sr:-46deg}
.bubble-shards>i:nth-child(7){clip-path:polygon(37% 39%,57% 37%,69% 64%,54% 71%,40% 69%);--sx:.1cqw;--sy:2.2cqh;--sr:18deg}
.bubble-shards>i:nth-child(8){clip-path:polygon(0 0,50% 0,57% 37%,37% 39%,0 44%);--sx:-1.3cqw;--sy:-2.0cqh;--sr:-15deg}
.bubble-visual.bubble-bursting{animation:none!important;filter:brightness(1.12) saturate(1.08)}
.bubble-visual.bubble-bursting .bubble-shell{animation:bubbleShellPop .22s cubic-bezier(.16,.82,.2,1) forwards}
.bubble-visual.bubble-bursting .bubble-shards{opacity:1}
.bubble-visual.bubble-bursting .bubble-shards>i{animation:bubbleShardFly .42s cubic-bezier(.14,.72,.22,1) .075s forwards}
.bubble-visual.bubble-bursting .bubble-icon{animation:bubbleIconDrop .42s cubic-bezier(.24,.68,.24,1) .07s forwards}
@keyframes bubbleShellPop{0%{transform:scale(1);opacity:1;filter:brightness(1)}55%{transform:scale(1.17);opacity:.96;filter:brightness(1.35)}100%{transform:scale(1.27);opacity:0;filter:brightness(1.65)}}
@keyframes bubbleShardFly{0%{opacity:.98;transform:translate3d(0,0,0) scale(1.05) rotate(0deg);filter:brightness(1.35)}100%{opacity:0;transform:translate3d(var(--sx),var(--sy),0) scale(.82) rotate(var(--sr));filter:brightness(1.7) blur(.05cqw)}}
@keyframes bubbleIconDrop{0%{opacity:1;transform:translate3d(0,0,0) scale(1)}24%{opacity:1;transform:translate3d(0,1.6cqh,0) scale(1.035)}100%{opacity:0;transform:translate3d(0,13cqh,0) scale(.82)}}

/* LANGUAGE — six floating flag bubbles, matching the supplied 02-language layout. */
.bubble-language-choice{position:absolute!important;z-index:14!important;width:15.2cqw!important;height:27.0cqh!important;overflow:visible!important;pointer-events:auto!important;transform:none!important;scale:1!important;filter:none!important}
.bubble-language-choice .bubble-visual{width:100%}
.bubble-language-choice .language-flag-icon{width:53%;height:53%;top:51.5%}
.bubble-language-choice:nth-child(1){left:5.55cqw!important;top:35.15cqh!important}
.bubble-language-choice:nth-child(2){left:21.65cqw!important;top:32.35cqh!important}
.bubble-language-choice:nth-child(3){left:37.25cqw!important;top:40.75cqh!important}
.bubble-language-choice:nth-child(4){left:52.65cqw!important;top:30.45cqh!important}
.bubble-language-choice:nth-child(5){left:67.35cqw!important;top:41.45cqh!important}
.bubble-language-choice:nth-child(6){left:83.0cqw!important;top:36.25cqh!important}
.bubble-language-choice.active .bubble-shell{filter:brightness(1.055) saturate(1.045) drop-shadow(0 0 .72cqw rgba(255,225,244,.44))}
.bubble-language-screen .language-title{left:31cqw!important;top:76.25cqh!important;width:38cqw!important;font-size:3.45cqh!important;line-height:1!important;letter-spacing:-.018em!important;white-space:nowrap!important;z-index:28!important}

/* HOME — supplied 03-homeNew composition with one large center bubble. */
.bubble-home-screen>.home-new1-under-ze2{width:min(81.927083vw,145.648148vh)!important;opacity:1!important}
.home-bubble-card{position:absolute;z-index:14;width:14.5cqw;height:32.5cqh;overflow:visible;pointer-events:auto;text-align:center;animation:homeBubbleGroupFloat var(--bubble-float-duration,4.2s) ease-in-out var(--bubble-float-delay,0s) infinite alternate;will-change:transform}
.home-bubble-card .bubble-visual{width:100%;animation:none!important}
.home-bubble-card .bubble-icon{width:52%;height:55%}
.home-bubble-card .bubble-label{position:absolute;z-index:8;left:50%;top:27.15cqh;translate:-50% 0;width:145%;font-size:3.05cqh;line-height:.92;text-transform:uppercase;white-space:nowrap;pointer-events:none;text-shadow:0 .08cqh 0 rgba(255,255,255,.34);will-change:transform,opacity}
@keyframes homeBubbleGroupFloat{0%{transform:translate3d(0,-.65cqh,0) rotate(-.18deg)}47%{transform:translate3d(0,.16cqh,0) rotate(.08deg)}100%{transform:translate3d(0,.78cqh,0) rotate(.2deg)}}
.home-bubble-story{left:1.15cqw;top:18.0cqh}
.home-bubble-cats{left:17.5cqw;top:32.55cqh}
.home-bubble-settings{left:1.1cqw;top:51.15cqh}
.home-bubble-book{left:20.3cqw;top:56.1cqh;width:13.2cqw}
.home-bubble-book .bubble-label{top:24.95cqh}
.home-bubble-start{left:38.2cqw;top:35.25cqh;width:25.25cqw;height:52cqh;z-index:18}
.home-bubble-start .bubble-icon{width:57%;height:59%}
.home-bubble-start .bubble-label{top:46.55cqh;font-size:4.85cqh;width:110%}
.home-bubble-credits{left:59.85cqw;top:56.1cqh;width:14.0cqw}
.home-bubble-credits .bubble-label{top:26.35cqh}
.home-bubble-baby{left:65.35cqw;top:22.55cqh;width:14.2cqw}
.home-bubble-scores{left:84.0cqw;top:11.0cqh;width:14.2cqw}
.home-bubble-help{left:83.0cqw;top:47.25cqh;width:14.75cqw}
.home-bubble-card:hover .bubble-label,.home-bubble-card:focus-visible .bubble-label{scale:1.018}
.home-bubble-card.burst-lock{animation-play-state:paused}
.home-bubble-card.burst-lock .bubble-label{scale:1!important;animation:bubbleLabelDrop .42s cubic-bezier(.24,.68,.24,1) .07s forwards}
@keyframes bubbleLabelDrop{0%{opacity:1;transform:translate3d(0,0,0) scale(1)}24%{opacity:1;transform:translate3d(0,1.5cqh,0) scale(1.025)}100%{opacity:0;transform:translate3d(0,13cqh,0) scale(.84)}}
.bubble-home-screen .home-apk-download{z-index:34!important}

/* Left-side section art: identical bubble dimensions on Story/Help/Scores/Settings/Credits. */
.page-section-bubble{position:absolute;z-index:5;left:1.15cqw;top:50.25cqh;width:17.5cqw;aspect-ratio:601/593;pointer-events:none}
.page-section-bubble .bubble-visual{width:100%;animation-duration:4.25s;animation-delay:-1.15s}
.page-section-bubble .page-section-icon{width:51%;height:53%}
.help-section-bubble .bubble-visual{animation-duration:3.9s;animation-delay:-2.05s}
.scores-section-bubble .bubble-visual{animation-duration:4.5s;animation-delay:-.65s}
.settings-section-bubble .bubble-visual{animation-duration:4.05s;animation-delay:-1.7s}
.credits-section-bubble .bubble-visual{animation-duration:4.7s;animation-delay:-2.45s}

/* Mobile-safe arrangement. Landscape keeps the 16:9 reference; portrait gets a clean grid. */
@media(max-width:900px) and (orientation:portrait){
  .bubble-language-screen .catpuf-logo,.bubble-home-screen .catpuf-logo{left:20cqw!important;top:2.2cqh!important;width:60cqw!important}
  .bubble-language-choice{width:27cqw!important;height:27cqw!important}
  .bubble-language-choice:nth-child(1){left:3cqw!important;top:23cqh!important}.bubble-language-choice:nth-child(2){left:36.5cqw!important;top:23cqh!important}.bubble-language-choice:nth-child(3){left:70cqw!important;top:23cqh!important}
  .bubble-language-choice:nth-child(4){left:3cqw!important;top:51cqh!important}.bubble-language-choice:nth-child(5){left:36.5cqw!important;top:51cqh!important}.bubble-language-choice:nth-child(6){left:70cqw!important;top:51cqh!important}
  .bubble-language-screen .language-title{left:10cqw!important;top:82.5cqh!important;width:80cqw!important;font-size:3.35cqh!important;white-space:normal!important}
  .home-bubble-card{width:21cqw;height:26.5cqh}.home-bubble-card .bubble-label{top:20.15cqh;font-size:2.25cqh;width:145%}
  .home-bubble-story{left:6cqw;top:18cqh}.home-bubble-cats{left:39.5cqw;top:18cqh}.home-bubble-scores{left:73cqw;top:18cqh}
  .home-bubble-settings{left:6cqw;top:41cqh}.home-bubble-start{left:35cqw;top:38cqh;width:30cqw;height:34cqh}.home-bubble-help{left:73cqw;top:41cqh}
  .home-bubble-book{left:6cqw;top:64cqh;width:21cqw}.home-bubble-credits{left:39.5cqw;top:64cqh;width:21cqw}.home-bubble-baby{left:73cqw;top:64cqh;width:21cqw}
  .home-bubble-start .bubble-label{top:28.35cqh;font-size:3.3cqh}.home-bubble-book .bubble-label,.home-bubble-credits .bubble-label{top:20.15cqh}
  .page-section-bubble{left:2cqw;top:62cqh;width:24cqw}
}
@media(max-height:620px) and (orientation:landscape){
  .home-bubble-card .bubble-label{font-size:2.75cqh}.home-bubble-start .bubble-label{font-size:4.25cqh}
  .bubble-language-screen .language-title{font-size:3.15cqh!important}
}
@media(prefers-reduced-motion:reduce){
  .bubble-visual,.page-section-bubble .bubble-visual,.home-bubble-card{animation:none!important}
}

/* ========================================================================== 
   HOME BUBBLE SPACING PASS — 2026-08-14
   Keep PLAY dominant, shrink the eight satellite bubbles, and give every
   bubble+label group its own non-overlapping air around the center composition.
   ========================================================================== */
@media (orientation:landscape){
  .bubble-home-screen .home-bubble-card:not(.home-bubble-start){
    width:12.05cqw;
    height:26.4cqh;
  }
  .bubble-home-screen .home-bubble-card:not(.home-bubble-start) .bubble-label{
    top:22.45cqh;
    width:120%;
    font-size:2.58cqh;
    line-height:.94;
  }

  /* Left side: two clean staggered columns around the PLAY bubble. */
  .bubble-home-screen .home-bubble-story{left:3.25cqw;top:19.4cqh}
  .bubble-home-screen .home-bubble-cats{left:20.15cqw;top:30.0cqh}
  .bubble-home-screen .home-bubble-settings{left:3.25cqw;top:55.0cqh}
  .bubble-home-screen .home-bubble-book{left:22.75cqw;top:58.0cqh;width:11.45cqw}

  /* PLAY stays large and visually dominant in the exact center zone. */
  .bubble-home-screen .home-bubble-start{
    left:38.15cqw;
    top:32.25cqh;
    width:24.35cqw;
    height:49.0cqh;
  }
  .bubble-home-screen .home-bubble-start .bubble-label{
    top:44.25cqh;
    width:108%;
    font-size:4.55cqh;
    line-height:.92;
  }

  /* Right side mirrors the breathing room of the left. */
  .bubble-home-screen .home-bubble-baby{left:67.45cqw;top:29.4cqh}
  .bubble-home-screen .home-bubble-scores{left:84.35cqw;top:17.0cqh}
  .bubble-home-screen .home-bubble-credits{left:65.05cqw;top:58.0cqh;width:11.45cqw}
  .bubble-home-screen .home-bubble-help{left:84.25cqw;top:51.5cqh}

  .bubble-home-screen .home-bubble-book .bubble-label,
  .bubble-home-screen .home-bubble-credits .bubble-label{top:21.35cqh}

  /* Hover grows only the bubble artwork; the group keeps its reserved footprint. */
  .bubble-home-screen .home-bubble-card:not(.home-bubble-start):hover .bubble-visual,
  .bubble-home-screen .home-bubble-card:not(.home-bubble-start):focus-visible .bubble-visual{
    scale:1.10;
  }
  .bubble-home-screen .home-bubble-start:hover .bubble-visual,
  .bubble-home-screen .home-bubble-start:focus-visible .bubble-visual{
    scale:1.075;
  }
}

/* Portrait/mobile keeps a generous 3x3 grid. Satellite bubbles and labels
   reserve separate vertical bands so floating/hover motion cannot collide. */
@media(max-width:900px) and (orientation:portrait){
  .bubble-home-screen .home-bubble-card:not(.home-bubble-start){
    width:18.5cqw;
    height:24cqh;
  }
  .bubble-home-screen .home-bubble-card:not(.home-bubble-start) .bubble-label{
    top:18.3cqh;
    width:128%;
    font-size:2.1cqh;
    line-height:.95;
  }
  .bubble-home-screen .home-bubble-story{left:7cqw;top:18cqh}
  .bubble-home-screen .home-bubble-cats{left:40.75cqw;top:18cqh}
  .bubble-home-screen .home-bubble-scores{left:74.5cqw;top:18cqh}
  .bubble-home-screen .home-bubble-settings{left:7cqw;top:43cqh}
  .bubble-home-screen .home-bubble-help{left:74.5cqw;top:43cqh}
  .bubble-home-screen .home-bubble-book{left:7cqw;top:68cqh;width:18.5cqw}
  .bubble-home-screen .home-bubble-credits{left:40.75cqw;top:68cqh;width:18.5cqw}
  .bubble-home-screen .home-bubble-baby{left:74.5cqw;top:68cqh;width:18.5cqw}
  .bubble-home-screen .home-bubble-start{
    left:35.5cqw;
    top:39.5cqh;
    width:29cqw;
    height:35cqh;
  }
  .bubble-home-screen .home-bubble-start .bubble-label{
    top:29.2cqh;
    width:112%;
    font-size:3.15cqh;
  }
  .bubble-home-screen .home-bubble-book .bubble-label,
  .bubble-home-screen .home-bubble-credits .bubble-label{top:18.3cqh}
}


/* ==========================================================================
   HOME FOOTER EXACT ALIGNMENT — 03-homeNew reference
   RH logo + legal/contact copy + 7+ + APK form one centered footer row.
   The row stays below the navigation bubbles and never floats up into them.
   ========================================================================== */
.bubble-home-screen .site-footer{
  display:block!important;
  z-index:32!important;
  color:#171419!important;
  pointer-events:none!important;
}
.bubble-home-screen .site-footer .footer-rh-link{
  left:28.75cqw!important;
  top:94.0cqh!important;
  width:4.15cqw!important;
  height:auto!important;
  transform:translateY(-50%)!important;
  pointer-events:auto!important;
}
.bubble-home-screen .site-footer .footer-rh-link .footer-rh{
  width:100%!important;
  height:auto!important;
}
.bubble-home-screen .site-footer .footer-copy{
  left:34.65cqw!important;
  top:94.0cqh!important;
  width:30.65cqw!important;
  transform:translateY(-50%)!important;
  text-align:center!important;
  color:#171419!important;
  line-height:1!important;
  letter-spacing:0!important;
}
.bubble-home-screen .site-footer .footer-copy b{
  display:block!important;
  margin:0 0 .42cqh!important;
  font-size:1.02cqh!important;
  line-height:1!important;
  font-weight:700!important;
  color:#171419!important;
  text-transform:none!important;
  letter-spacing:.005em!important;
}
.bubble-home-screen .site-footer .footer-copy small{
  display:block!important;
  font-size:.53cqh!important;
  line-height:1.12!important;
  font-weight:700!important;
  color:#171419!important;
  text-transform:none!important;
  letter-spacing:-.006em!important;
}
.bubble-home-screen .site-footer .footer-age{
  left:66.45cqw!important;
  top:94.0cqh!important;
  width:3.18cqw!important;
  height:auto!important;
  transform:translateY(-50%)!important;
}
.bubble-home-screen .home-apk-download{
  left:72.05cqw!important;
  top:94.0cqh!important;
  width:9.65cqw!important;
  height:5.45cqh!important;
  transform:translateY(-50%)!important;
  z-index:35!important;
}
.bubble-home-screen .home-apk-download:hover,
.bubble-home-screen .home-apk-download:focus-visible{
  transform:translateY(-50%) scale(1.035)!important;
}
.bubble-home-screen .home-apk-download:active{
  transform:translateY(-50%) scale(.975)!important;
}

/* Short landscape phones keep the same baseline but trim the footer slightly. */
@media(max-height:620px) and (orientation:landscape){
  .bubble-home-screen .site-footer .footer-rh-link{width:3.9cqw!important}
  .bubble-home-screen .site-footer .footer-copy{left:34.4cqw!important;width:31.0cqw!important}
  .bubble-home-screen .site-footer .footer-copy b{font-size:.92cqh!important;margin-bottom:.34cqh!important}
  .bubble-home-screen .site-footer .footer-copy small{font-size:.47cqh!important}
  .bubble-home-screen .site-footer .footer-age{width:3.0cqw!important}
  .bubble-home-screen .home-apk-download{width:9.2cqw!important;height:5.1cqh!important}
}


/* ========================================================================== 
   SHARED CATPUF FOOTER — SAME 03-homeNew ALIGNMENT ON EVERY SITE SCREEN
   Loading, language, home, story, cats, scores, settings, credits, help,
   worlds/levels and any other shell page all use the identical footer row.
   ========================================================================== */
.screen .site-footer{
  z-index:32!important;
  color:#171419!important;
  pointer-events:none!important;
}
.screen .site-footer .footer-rh-link{
  left:28.75cqw!important;
  top:94.0cqh!important;
  width:4.15cqw!important;
  height:auto!important;
  transform:translateY(-50%)!important;
  pointer-events:auto!important;
}
.screen .site-footer .footer-rh-link .footer-rh{
  width:100%!important;
  height:auto!important;
}
.screen .site-footer .footer-copy{
  left:34.65cqw!important;
  top:94.0cqh!important;
  width:30.65cqw!important;
  transform:translateY(-50%)!important;
  text-align:center!important;
  color:#171419!important;
  line-height:1!important;
  letter-spacing:0!important;
}
.screen .site-footer .footer-copy b{
  display:block!important;
  margin:0 0 .42cqh!important;
  font-size:1.02cqh!important;
  line-height:1!important;
  font-weight:700!important;
  color:#171419!important;
  text-transform:none!important;
  letter-spacing:.005em!important;
}
.screen .site-footer .footer-copy small{
  display:block!important;
  font-size:.53cqh!important;
  line-height:1.12!important;
  font-weight:700!important;
  color:#171419!important;
  text-transform:none!important;
  letter-spacing:-.006em!important;
}
.screen .site-footer .footer-age{
  left:66.45cqw!important;
  top:94.0cqh!important;
  width:3.18cqw!important;
  height:auto!important;
  transform:translateY(-50%)!important;
}
.screen .site-footer .footer-apk-download{
  position:absolute!important;
  left:72.05cqw!important;
  top:94.0cqh!important;
  width:9.65cqw!important;
  height:5.45cqh!important;
  display:grid!important;
  place-items:center!important;
  transform:translateY(-50%)!important;
  transform-origin:50% 50%!important;
  z-index:35!important;
  pointer-events:auto!important;
  cursor:pointer!important;
  touch-action:manipulation!important;
  transition:transform .18s ease,filter .18s ease!important;
}
.screen .site-footer .footer-apk-download img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  display:block!important;
}
.screen .site-footer .footer-apk-download:hover,
.screen .site-footer .footer-apk-download:focus-visible{
  transform:translateY(-50%) scale(1.035)!important;
  filter:brightness(1.035)!important;
}
.screen .site-footer .footer-apk-download:active{
  transform:translateY(-50%) scale(.975)!important;
}

/* Keep intentional hidden-footer states hidden (the full BOOK reader uses its
   own book footer). The shared row is used wherever .site-footer is visible. */
.book-reader-screen:not(.book-preface-mode) .site-footer{display:none!important}

/* Short landscape devices keep the exact baseline and proportionally trim the row. */
@media(max-height:620px) and (orientation:landscape){
  .screen .site-footer .footer-rh-link{width:3.9cqw!important}
  .screen .site-footer .footer-copy{left:34.4cqw!important;width:31.0cqw!important}
  .screen .site-footer .footer-copy b{font-size:.92cqh!important;margin-bottom:.34cqh!important}
  .screen .site-footer .footer-copy small{font-size:.47cqh!important}
  .screen .site-footer .footer-age{width:3.0cqw!important}
  .screen .site-footer .footer-apk-download{width:9.2cqw!important;height:5.1cqh!important}
}

/* Portrait screens that already suppress the footer keep that behavior, so the
   site layout does not become crowded on narrow devices. */
@media(max-width:900px) and (orientation:portrait){
  .screen .site-footer .footer-apk-download{display:none!important}
}

/* ========================================================================== 
   DETAIL PAGE BUBBLE TITLE ALIGNMENT — 2026-08-14
   Pull the Story / Help / Scores / Settings / Credits bubbles upward so they
   visually belong to their page titles while keeping the copy area clear.
   ========================================================================== */
@media (orientation:landscape){
  .story-section-bubble,
  .help-section-bubble,
  .scores-section-bubble,
  .settings-section-bubble,
  .credits-section-bubble{
    left:1.45cqw!important;
    top:29.2cqh!important;
    width:16.8cqw!important;
  }
}

/* Portrait keeps the icon close to the heading without covering the content. */
@media(max-width:900px) and (orientation:portrait){
  .story-section-bubble,
  .help-section-bubble,
  .scores-section-bubble,
  .settings-section-bubble,
  .credits-section-bubble{
    left:3cqw!important;
    top:21.7cqh!important;
    width:18.5cqw!important;
  }
}


/* ==========================================================================
   LEVEL INTRO / INTERSTITIAL — APK BUTTON MUST NEVER APPEAR HERE
   Keep the shared footer elsewhere, but remove only the APK download action
   from the short classic and BABY level-loading transition overlays.
   ========================================================================== */
.level-intro .site-footer .footer-apk-download,
.world-level-intro .site-footer .footer-apk-download,
.baby-level-intro .site-footer .footer-apk-download,
.world-intro-canvas .site-footer .footer-apk-download,
.baby-intro-canvas .site-footer .footer-apk-download{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}


/* ========================================================================== 
   GLOBAL FOOTER NORMALIZATION — SAME 03-homeNew FOOTER ON TRANSITION + END UI
   Every visible footer now uses the exact same baseline/scale as the home page.
   The level-loading screens intentionally keep APK hidden, per game-flow rule.
   ========================================================================== */
.world-intro-canvas .site-footer,
.baby-intro-canvas .site-footer,
.game-modal-wrap .site-footer{
  position:absolute!important;
  inset:0!important;
  z-index:32!important;
  display:block!important;
  color:#171419!important;
  pointer-events:none!important;
}
.world-intro-canvas .site-footer .footer-rh-link,
.baby-intro-canvas .site-footer .footer-rh-link,
.game-modal-wrap .site-footer .footer-rh-link{
  position:absolute!important;
  left:28.75cqw!important;
  top:94.0cqh!important;
  width:4.15cqw!important;
  height:auto!important;
  transform:translateY(-50%)!important;
  pointer-events:auto!important;
}
.world-intro-canvas .site-footer .footer-rh-link .footer-rh,
.baby-intro-canvas .site-footer .footer-rh-link .footer-rh,
.game-modal-wrap .site-footer .footer-rh-link .footer-rh{
  width:100%!important;
  height:auto!important;
  display:block!important;
}
.world-intro-canvas .site-footer .footer-copy,
.baby-intro-canvas .site-footer .footer-copy,
.game-modal-wrap .site-footer .footer-copy{
  position:absolute!important;
  left:34.65cqw!important;
  top:94.0cqh!important;
  width:30.65cqw!important;
  transform:translateY(-50%)!important;
  text-align:center!important;
  color:#171419!important;
  line-height:1!important;
  letter-spacing:0!important;
}
.world-intro-canvas .site-footer .footer-copy b,
.baby-intro-canvas .site-footer .footer-copy b,
.game-modal-wrap .site-footer .footer-copy b{
  display:block!important;
  margin:0 0 .42cqh!important;
  font-size:1.02cqh!important;
  line-height:1!important;
  font-weight:700!important;
  color:#171419!important;
  text-transform:none!important;
  letter-spacing:.005em!important;
}
.world-intro-canvas .site-footer .footer-copy small,
.baby-intro-canvas .site-footer .footer-copy small,
.game-modal-wrap .site-footer .footer-copy small{
  display:block!important;
  font-size:.53cqh!important;
  line-height:1.12!important;
  font-weight:700!important;
  color:#171419!important;
  text-transform:none!important;
  letter-spacing:-.006em!important;
}
.world-intro-canvas .site-footer .footer-age,
.baby-intro-canvas .site-footer .footer-age,
.game-modal-wrap .site-footer .footer-age{
  position:absolute!important;
  left:66.45cqw!important;
  top:94.0cqh!important;
  width:3.18cqw!important;
  height:auto!important;
  transform:translateY(-50%)!important;
}
.game-modal-wrap .site-footer .footer-apk-download{
  position:absolute!important;
  left:72.05cqw!important;
  top:94.0cqh!important;
  width:9.65cqw!important;
  height:5.45cqh!important;
  display:grid!important;
  place-items:center!important;
  transform:translateY(-50%)!important;
  transform-origin:50% 50%!important;
  z-index:35!important;
  pointer-events:auto!important;
  cursor:pointer!important;
  touch-action:manipulation!important;
  transition:transform .18s ease,filter .18s ease!important;
}
.game-modal-wrap .site-footer .footer-apk-download img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  display:block!important;
}
.game-modal-wrap .site-footer .footer-apk-download:hover,
.game-modal-wrap .site-footer .footer-apk-download:focus-visible{
  transform:translateY(-50%) scale(1.035)!important;
  filter:brightness(1.035)!important;
}
.game-modal-wrap .site-footer .footer-apk-download:active{
  transform:translateY(-50%) scale(.975)!important;
}

/* End screens must not suppress their footer anymore. */
.game-over-wrap .game-end-footer,
.next-level-wrap .game-end-footer,
.final-game-wrap .game-end-footer{
  display:block!important;
  visibility:visible!important;
}

/* Preserve the explicit gameplay rule: no APK button on short level-loading screens. */
.level-intro .site-footer .footer-apk-download,
.world-level-intro .site-footer .footer-apk-download,
.baby-level-intro .site-footer .footer-apk-download,
.world-intro-canvas .site-footer .footer-apk-download,
.baby-intro-canvas .site-footer .footer-apk-download{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

/* 12-nextlevel: keep the score/actions in place, but press the success heading
   closer to the top edge exactly as requested. */
.game-modal.next-level-ref .modal-copy small,
.game-modal.next-level-ref .modal-copy h2{
  transform:translateY(-2.15cqh)!important;
}

/* Score digits are deliberately a little stronger than before on all result screens. */
.game-modal.game-over-ref .modal-copy strong{font-size:6.35cqh!important;line-height:.96!important}
.game-modal.next-level-ref .modal-copy strong{font-size:6.35cqh!important;line-height:.96!important}
.game-modal.final-game-ref .modal-copy strong{font-size:6.35cqh!important;line-height:.96!important}

/* Keep the footer behavior consistent on narrow portrait screens: if the site
   footer is suppressed there, result-screen footers are suppressed too. */
@media(max-width:900px) and (orientation:portrait){
  .game-modal-wrap .site-footer{display:none!important}
  .game-modal.next-level-ref .modal-copy small,
  .game-modal.next-level-ref .modal-copy h2{transform:translateY(-1.45cqh)!important}
  .game-modal.game-over-ref .modal-copy strong,
  .game-modal.next-level-ref .modal-copy strong,
  .game-modal.final-game-ref .modal-copy strong{font-size:6.1cqh!important}
}

@media(max-height:620px) and (orientation:landscape){
  .world-intro-canvas .site-footer .footer-rh-link,
  .baby-intro-canvas .site-footer .footer-rh-link,
  .game-modal-wrap .site-footer .footer-rh-link{width:3.9cqw!important}
  .world-intro-canvas .site-footer .footer-copy,
  .baby-intro-canvas .site-footer .footer-copy,
  .game-modal-wrap .site-footer .footer-copy{left:34.4cqw!important;width:31cqw!important}
  .world-intro-canvas .site-footer .footer-copy b,
  .baby-intro-canvas .site-footer .footer-copy b,
  .game-modal-wrap .site-footer .footer-copy b{font-size:.92cqh!important;margin-bottom:.34cqh!important}
  .world-intro-canvas .site-footer .footer-copy small,
  .baby-intro-canvas .site-footer .footer-copy small,
  .game-modal-wrap .site-footer .footer-copy small{font-size:.47cqh!important}
  .world-intro-canvas .site-footer .footer-age,
  .baby-intro-canvas .site-footer .footer-age,
  .game-modal-wrap .site-footer .footer-age{width:3cqw!important}
  .game-modal-wrap .site-footer .footer-apk-download{width:9.2cqw!important;height:5.1cqh!important}
}


/* ========================================================================== 
   RESULT SCREEN REFERENCE LOCK — 11-gameover / 12-nextlevel / 11-gamefinish
   The supplied 1920x1080 artwork is the source of truth. Typography is locked
   to the window proportions instead of being pushed against the top edge.
   ========================================================================== */
.game-modal.game-over-ref .modal-copy,
.game-modal.next-level-ref .modal-copy,
.game-modal.final-game-ref .modal-copy{
  top:0!important;left:0!important;width:100%!important;height:100%!important;
  margin:0!important;text-align:center!important;pointer-events:none!important;
}
.game-modal.game-over-ref .modal-copy>*,
.game-modal.next-level-ref .modal-copy>*,
.game-modal.final-game-ref .modal-copy>*{
  position:absolute!important;margin:0!important;line-height:1!important;
  text-align:center!important;white-space:nowrap!important;translate:-50% 0!important;
  transform:none!important;
}

/* GAME OVER: the whole copy is centered on the panel, exactly like 11-gameover. */
.game-modal.game-over-ref .modal-copy small{
  left:50cqw!important;top:9.4cqh!important;width:80cqw!important;font-size:8.2cqh!important;
}
.game-modal.game-over-ref .modal-copy h2{
  left:50cqw!important;top:17.6cqh!important;width:80cqw!important;
  font-size:18.5cqh!important;line-height:.86!important;letter-spacing:-.025em!important;
}
.game-modal.game-over-ref .modal-copy p{
  left:50cqw!important;top:38.9cqh!important;width:50cqw!important;font-size:6.1cqh!important;
}
.game-modal.game-over-ref .modal-copy strong{
  left:50cqw!important;top:47.25cqh!important;width:55cqw!important;font-size:8.2cqh!important;
}

/* LEVEL COMPLETE: title/score sit in the right-hand composition from 12-nextlevel. */
.game-modal.next-level-ref .modal-copy small{
  left:63.7cqw!important;top:9.4cqh!important;width:72cqw!important;font-size:8.2cqh!important;
}
.game-modal.next-level-ref .modal-copy h2{
  left:63.7cqw!important;top:17.25cqh!important;width:72cqw!important;
  font-size:16.5cqh!important;line-height:.86!important;letter-spacing:-.025em!important;
}
.game-modal.next-level-ref .modal-copy p{
  left:63.7cqw!important;top:38.9cqh!important;width:50cqw!important;font-size:6.1cqh!important;
}
.game-modal.next-level-ref .modal-copy strong{
  left:63.7cqw!important;top:47.25cqh!important;width:55cqw!important;font-size:8.2cqh!important;
}

/* FINAL GAME: same vertical rhythm as the reference, with the copy on the right. */
.game-modal.final-game-ref .modal-copy small{
  left:64.9cqw!important;top:9.4cqh!important;width:70cqw!important;font-size:8.2cqh!important;
}
.game-modal.final-game-ref .modal-copy h2{
  left:64.9cqw!important;top:17.6cqh!important;width:70cqw!important;
  font-size:18.5cqh!important;line-height:.86!important;letter-spacing:-.025em!important;
}
.game-modal.final-game-ref .modal-copy p{
  left:64.9cqw!important;top:38.9cqh!important;width:50cqw!important;font-size:6.1cqh!important;
}
.game-modal.final-game-ref .modal-copy strong{
  left:64.9cqw!important;top:47.25cqh!important;width:55cqw!important;font-size:8.2cqh!important;
}

/* Buttons/form: use one stable baseline shared by Game Over / Complete / Final. */
.game-modal.game-over-ref .modal-actions,
.game-modal.next-level-ref .modal-actions,
.game-modal.final-game-ref .modal-actions{
  left:35.35cqw!important;top:59.45cqh!important;width:34cqw!important;height:35cqh!important;
}
.game-modal.game-over-ref .modal-primary,
.game-modal.next-level-ref .modal-primary,
.game-modal.final-game-ref .modal-primary{
  left:0!important;top:0!important;width:33cqw!important;height:16.2cqh!important;
  font-size:8.05cqh!important;padding-right:3.7cqw!important;
}
.game-modal.game-over-ref .modal-menu,
.game-modal.next-level-ref .modal-menu,
.game-modal.final-game-ref .modal-menu{
  left:6cqw!important;top:22.25cqh!important;width:20.8cqw!important;height:10.8cqh!important;
  font-size:6.0cqh!important;
}
.game-modal.game-over-ref .score-submit,
.game-modal.next-level-ref .score-submit,
.game-modal.final-game-ref .score-submit{
  left:71.6cqw!important;top:64.15cqh!important;width:23.6cqw!important;
}
.game-modal.game-over-ref .score-submit label,
.game-modal.next-level-ref .score-submit label,
.game-modal.final-game-ref .score-submit label{
  font-size:5.45cqh!important;line-height:1!important;
}
.game-modal.game-over-ref .score-submit input,
.game-modal.next-level-ref .score-submit input,
.game-modal.final-game-ref .score-submit input{
  height:4.15cqh!important;margin:.05cqh 0 1.55cqh!important;border-bottom-width:.55cqh!important;
  font-size:3.2cqh!important;
}
.game-modal.game-over-ref .score-submit button,
.game-modal.next-level-ref .score-submit button,
.game-modal.final-game-ref .score-submit button{
  width:20.3cqw!important;height:10.3cqh!important;font-size:5.85cqh!important;
}
.game-modal.game-over-ref .submit-status,
.game-modal.next-level-ref .submit-status,
.game-modal.final-game-ref .submit-status{
  left:71.6cqw!important;top:86.8cqh!important;width:23.6cqw!important;
}

/* Keep translated headings inside the same reference zones without changing geometry. */
html[lang="de"] .game-modal.game-over-ref .modal-copy small,
html[lang="de"] .game-modal.next-level-ref .modal-copy small,
html[lang="de"] .game-modal.final-game-ref .modal-copy small{font-size:6.7cqh!important}
html[lang="ja"] .game-modal.game-over-ref .modal-copy small,
html[lang="ja"] .game-modal.next-level-ref .modal-copy small,
html[lang="ja"] .game-modal.final-game-ref .modal-copy small{font-size:6.8cqh!important}
html[lang="ja"] .game-modal.game-over-ref .modal-copy h2{font-size:15.2cqh!important}
html[lang="ja"] .game-modal.next-level-ref .modal-copy h2{font-size:13.5cqh!important}
html[lang="ja"] .game-modal.final-game-ref .modal-copy h2{font-size:14.2cqh!important}

/* ========================================================================== 
   ONE FOOTER GEOMETRY EVERYWHERE
   Result screens now use the same centered 16:9 footer canvas as normal pages,
   so non-16:9 desktop and mobile screens no longer shift the row.
   ========================================================================== */
.game-footer-canvas{
  position:absolute!important;z-index:32!important;left:50%!important;top:50%!important;
  width:min(100vw,177.777778vh)!important;height:min(56.25vw,100vh)!important;
  translate:-50% -50%!important;container-type:size!important;overflow:visible!important;
  pointer-events:none!important;
}
.game-footer-canvas .site-footer{
  position:absolute!important;inset:0!important;display:block!important;visibility:visible!important;
  z-index:32!important;color:#171419!important;pointer-events:none!important;
}

/* Exact 03-homeNew row, reused by site pages, level intros and result screens. */
:is(.screen,.world-intro-canvas,.baby-intro-canvas,.game-footer-canvas) .site-footer .footer-rh-link{
  position:absolute!important;left:28.75cqw!important;top:94cqh!important;width:4.15cqw!important;
  height:auto!important;transform:translateY(-50%)!important;pointer-events:auto!important;
}
:is(.screen,.world-intro-canvas,.baby-intro-canvas,.game-footer-canvas) .site-footer .footer-rh-link .footer-rh{
  position:static!important;width:100%!important;height:auto!important;display:block!important;
}
:is(.screen,.world-intro-canvas,.baby-intro-canvas,.game-footer-canvas) .site-footer .footer-copy{
  position:absolute!important;left:34.65cqw!important;top:94cqh!important;width:30.65cqw!important;
  transform:translateY(-50%)!important;text-align:center!important;color:#171419!important;
  line-height:1!important;letter-spacing:0!important;
}
:is(.screen,.world-intro-canvas,.baby-intro-canvas,.game-footer-canvas) .site-footer .footer-copy b{
  display:block!important;margin:0 0 .42cqh!important;font-size:1.02cqh!important;
  line-height:1!important;font-weight:700!important;color:#171419!important;text-transform:none!important;
}
:is(.screen,.world-intro-canvas,.baby-intro-canvas,.game-footer-canvas) .site-footer .footer-copy small{
  display:block!important;font-size:.53cqh!important;line-height:1.12!important;font-weight:700!important;
  color:#171419!important;text-transform:none!important;letter-spacing:-.006em!important;
}
:is(.screen,.world-intro-canvas,.baby-intro-canvas,.game-footer-canvas) .site-footer .footer-age{
  position:absolute!important;left:66.45cqw!important;top:94cqh!important;width:3.18cqw!important;
  height:auto!important;transform:translateY(-50%)!important;
}
:is(.screen,.game-footer-canvas) .site-footer .footer-apk-download{
  position:absolute!important;left:72.05cqw!important;top:94cqh!important;width:9.65cqw!important;
  height:5.45cqh!important;display:grid!important;place-items:center!important;
  transform:translateY(-50%)!important;z-index:35!important;pointer-events:auto!important;
}
:is(.screen,.game-footer-canvas) .site-footer .footer-apk-download img{
  width:100%!important;height:100%!important;object-fit:contain!important;display:block!important;
}

/* Explicit exception retained from the user's previous correction: no APK on level intro. */
.level-intro .site-footer .footer-apk-download,
.world-level-intro .site-footer .footer-apk-download,
.baby-level-intro .site-footer .footer-apk-download,
.world-intro-canvas .site-footer .footer-apk-download,
.baby-intro-canvas .site-footer .footer-apk-download{
  display:none!important;visibility:hidden!important;pointer-events:none!important;
}

/* Mobile keeps the exact reference proportions. Do not shove headings upward and
   do not switch the result footer to viewport-relative coordinates. */
@media(max-width:900px) and (orientation:portrait){
  .game-modal-wrap .game-footer-canvas .site-footer{display:block!important;visibility:visible!important}
  .game-modal.next-level-ref .modal-copy small,
  .game-modal.next-level-ref .modal-copy h2,
  .game-modal.game-over-ref .modal-copy small,
  .game-modal.game-over-ref .modal-copy h2,
  .game-modal.final-game-ref .modal-copy small,
  .game-modal.final-game-ref .modal-copy h2{transform:none!important}
}


/* ========================================================================== 
   RESULT SCREENS — FINAL REFERENCE GEOMETRY
   Source of truth: 11-gameover.png / 12-nextlevel.png / 11-gamefinish.png.
   The window is 1569x777. Copy zones never move between languages; only long
   translations scale down so nothing can collide with the cat, buttons or form.
   ========================================================================== */
.game-modal.game-over-ref .modal-copy,
.game-modal.next-level-ref .modal-copy,
.game-modal.final-game-ref .modal-copy{
  inset:0!important;width:100%!important;height:100%!important;margin:0!important;
  text-align:center!important;pointer-events:none!important;
}
.game-modal.game-over-ref .modal-copy>*,
.game-modal.next-level-ref .modal-copy>*,
.game-modal.final-game-ref .modal-copy>*{
  position:absolute!important;margin:0!important;line-height:1!important;
  text-align:center!important;white-space:nowrap!important;translate:-50% 0!important;
  transform:none!important;max-width:none!important;
}

/* 11-gameover — exact vertical rhythm inside the stitched window. */
.game-modal.game-over-ref .modal-copy small{
  left:50cqw!important;top:10.9cqh!important;width:80cqw!important;font-size:7.5cqh!important;
}
.game-modal.game-over-ref .modal-copy h2{
  left:50cqw!important;top:20.9cqh!important;width:80cqw!important;
  font-size:18.5cqh!important;letter-spacing:-.025em!important;
}
.game-modal.game-over-ref .modal-copy p{
  left:50cqw!important;top:40cqh!important;width:50cqw!important;font-size:6.1cqh!important;
}
.game-modal.game-over-ref .modal-copy strong{
  left:50cqw!important;top:48.7cqh!important;width:55cqw!important;font-size:8.2cqh!important;
}

/* 12-nextlevel — right-hand copy column exactly follows the supplied reference. */
.game-modal.next-level-ref .modal-copy small{
  left:63.7cqw!important;top:10.9cqh!important;width:72cqw!important;font-size:8.2cqh!important;
}
.game-modal.next-level-ref .modal-copy h2{
  left:63.7cqw!important;top:20.1cqh!important;width:72cqw!important;
  font-size:16.5cqh!important;letter-spacing:-.025em!important;
}
.game-modal.next-level-ref .modal-copy p{
  left:63.7cqw!important;top:40cqh!important;width:50cqw!important;font-size:6.1cqh!important;
}
.game-modal.next-level-ref .modal-copy strong{
  left:63.7cqw!important;top:48.7cqh!important;width:55cqw!important;font-size:8.2cqh!important;
}

/* 11-gamefinish — same reference baseline, right-hand composition. */
.game-modal.final-game-ref .modal-copy small{
  left:64.9cqw!important;top:10.9cqh!important;width:70cqw!important;font-size:8.2cqh!important;
}
.game-modal.final-game-ref .modal-copy h2{
  left:64.9cqw!important;top:20.9cqh!important;width:70cqw!important;
  font-size:18.5cqh!important;letter-spacing:-.025em!important;
}
.game-modal.final-game-ref .modal-copy p{
  left:64.9cqw!important;top:40cqh!important;width:50cqw!important;font-size:6.1cqh!important;
}
.game-modal.final-game-ref .modal-copy strong{
  left:64.9cqw!important;top:48.7cqh!important;width:55cqw!important;font-size:8.2cqh!important;
}

/* Controls: keep the reference geometry. Only the previously oversized small
   labels are returned to the real artwork proportions. */
.game-modal.game-over-ref .modal-actions,
.game-modal.next-level-ref .modal-actions,
.game-modal.final-game-ref .modal-actions{
  left:35.35cqw!important;top:59.45cqh!important;width:34cqw!important;height:35cqh!important;
}
.game-modal.game-over-ref .modal-primary,
.game-modal.next-level-ref .modal-primary,
.game-modal.final-game-ref .modal-primary{
  left:0!important;top:0!important;width:33cqw!important;height:16.2cqh!important;
  font-size:8.05cqh!important;padding-right:3.7cqw!important;
}
.game-modal.game-over-ref .modal-menu,
.game-modal.next-level-ref .modal-menu,
.game-modal.final-game-ref .modal-menu{
  left:6cqw!important;top:22.25cqh!important;width:20.8cqw!important;height:10.8cqh!important;
  font-size:4.5cqh!important;
}

/* Nickname block is explicitly positioned so label, underline and submit button
   reproduce the reference instead of stretching when a translated label changes. */
.game-modal.game-over-ref .score-submit,
.game-modal.next-level-ref .score-submit,
.game-modal.final-game-ref .score-submit{
  left:71.6cqw!important;top:64.15cqh!important;width:23.6cqw!important;height:23cqh!important;
  text-align:center!important;
}
.game-modal.game-over-ref .score-submit label,
.game-modal.next-level-ref .score-submit label,
.game-modal.final-game-ref .score-submit label{
  position:absolute!important;left:0!important;top:0!important;width:100%!important;
  font-size:4.5cqh!important;line-height:1!important;white-space:nowrap!important;
}
.game-modal.game-over-ref .score-submit input,
.game-modal.next-level-ref .score-submit input,
.game-modal.final-game-ref .score-submit input{
  position:absolute!important;left:0!important;top:3.2cqh!important;width:100%!important;
  height:2.35cqh!important;margin:0!important;border:0!important;border-bottom:.55cqh solid #2d2d2d!important;
  border-radius:0!important;background:transparent!important;padding:0 .8cqw!important;
  text-align:center!important;font-size:2.4cqh!important;outline:none!important;
}
.game-modal.game-over-ref .score-submit button,
.game-modal.next-level-ref .score-submit button,
.game-modal.final-game-ref .score-submit button{
  position:absolute!important;left:50%!important;top:9.8cqh!important;translate:-50% 0!important;
  width:20.3cqw!important;height:10.3cqh!important;font-size:4.5cqh!important;
}
.game-modal.game-over-ref .submit-status,
.game-modal.next-level-ref .submit-status,
.game-modal.final-game-ref .submit-status{
  left:71.6cqw!important;top:86.8cqh!important;width:23.6cqw!important;
}

/* Six-language optical fitting. The reference positions NEVER move. */
html[lang="tr"] .game-modal.next-level-ref .modal-copy h2{font-size:12.7cqh!important}
html[lang="es"] .game-modal.next-level-ref .modal-copy h2{font-size:13.8cqh!important}
html[lang="it"] .game-modal.next-level-ref .modal-copy h2{font-size:12.8cqh!important}
html[lang="fr"] .game-modal.next-level-ref .modal-copy h2{font-size:16cqh!important}
html[lang="ja"] .game-modal.next-level-ref .modal-copy h2{font-size:13.5cqh!important}

html[lang="tr"] .game-modal.game-over-ref .modal-copy small{font-size:7cqh!important}
html[lang="es"] .game-modal.game-over-ref .modal-copy small{font-size:8cqh!important}
html[lang="it"] .game-modal.game-over-ref .modal-copy small{font-size:7.6cqh!important}
html[lang="fr"] .game-modal.game-over-ref .modal-copy small{font-size:8.2cqh!important}
html[lang="ja"] .game-modal.game-over-ref .modal-copy small{font-size:8cqh!important}
html[lang="es"] .game-modal.game-over-ref .modal-copy h2{font-size:16.6cqh!important}
html[lang="ja"] .game-modal.game-over-ref .modal-copy h2{font-size:16.4cqh!important}

html[lang="es"] .game-modal.final-game-ref .modal-copy h2{font-size:16.8cqh!important}
html[lang="it"] .game-modal.final-game-ref .modal-copy h2{font-size:16.5cqh!important}
html[lang="ja"] .game-modal.final-game-ref .modal-copy h2{font-size:14.2cqh!important}
html[lang="it"] :is(.game-modal.game-over-ref,.game-modal.next-level-ref,.game-modal.final-game-ref) .modal-copy p{font-size:5.5cqh!important}

/* The Turkish NEXT LEVEL translation is materially longer than the English art.
   Scale the label only; the stitched button keeps the original dimensions. */
html[lang="tr"] .game-modal.next-level-ref .modal-primary{font-size:6.4cqh!important}
html[lang="es"] .game-modal.next-level-ref .modal-primary{font-size:7.7cqh!important}
html[lang="it"] .game-modal.next-level-ref .modal-primary{font-size:7.6cqh!important}
html[lang="ja"] .game-modal.next-level-ref .modal-primary{font-size:7.2cqh!important}
html[lang="tr"] :is(.game-modal.game-over-ref,.game-modal.next-level-ref,.game-modal.final-game-ref) .modal-menu{font-size:4.2cqh!important}
html[lang="ja"] :is(.game-modal.game-over-ref,.game-modal.next-level-ref,.game-modal.final-game-ref) .modal-menu{font-size:4cqh!important}

/* Unlock copy: same reference areas, but long Romance-language world names stay
   inside the right-hand title block instead of touching the reward image. */
html[lang="es"] .world-open-copy span{font-size:6.35cqh!important}
html[lang="fr"] .world-open-copy span{font-size:6.0cqh!important}
html[lang="it"] .world-open-copy span{font-size:6.2cqh!important}
html[lang="tr"] .world-open-copy span{font-size:6.7cqh!important}
html[lang="es"] .cat-open-copy span{font-size:6.7cqh!important}
html[lang="it"] .cat-open-copy span{font-size:6.45cqh!important}

/* Portrait/mobile keeps the exact same panel-relative coordinates. The modal
   already scales as one 1569x777 unit, so no mobile-only typography shifts. */
@media(max-width:900px) and (orientation:portrait){
  .game-modal.game-over-ref .modal-copy>*,
  .game-modal.next-level-ref .modal-copy>*,
  .game-modal.final-game-ref .modal-copy>*{transform:none!important}
}

/* ========================================================================== 
   CATPUF CANONICAL FOOTER + BABY RESULT LAYOUT — SOURCE OF TRUTH
   One footer component / one geometry on every screen that renders a footer.
   The footer is anchored to the same centered 16:9 canvas used by 03-homeNew.
   ========================================================================== */
.site-footer.footer-unified[data-unified-footer="true"]{
  position:absolute!important;inset:0!important;z-index:90!important;
  display:block!important;visibility:visible!important;opacity:1!important;
  color:#171419!important;pointer-events:none!important;
}
.site-footer.footer-unified[data-unified-footer="true"] .footer-rh-link{
  position:absolute!important;left:28.75cqw!important;top:94cqh!important;
  width:4.15cqw!important;height:auto!important;transform:translateY(-50%)!important;
  z-index:2!important;pointer-events:auto!important;
}
.site-footer.footer-unified[data-unified-footer="true"] .footer-rh-link .footer-rh{
  position:static!important;inset:auto!important;width:100%!important;height:auto!important;
  display:block!important;transform:none!important;
}
.site-footer.footer-unified[data-unified-footer="true"] .footer-copy{
  position:absolute!important;left:34.65cqw!important;top:94cqh!important;
  width:30.65cqw!important;transform:translateY(-50%)!important;
  text-align:center!important;color:#171419!important;line-height:1!important;
  letter-spacing:0!important;text-transform:none!important;
}
.site-footer.footer-unified[data-unified-footer="true"] .footer-copy b{
  display:block!important;margin:0 0 .42cqh!important;font-size:1.02cqh!important;
  line-height:1!important;font-weight:700!important;color:#171419!important;
  text-transform:none!important;letter-spacing:.005em!important;
}
.site-footer.footer-unified[data-unified-footer="true"] .footer-copy small{
  display:block!important;margin:0!important;font-size:.53cqh!important;line-height:1.12!important;
  font-weight:700!important;color:#171419!important;text-transform:none!important;
  letter-spacing:-.006em!important;
}
.site-footer.footer-unified[data-unified-footer="true"] .footer-age{
  position:absolute!important;left:66.45cqw!important;top:94cqh!important;
  width:3.18cqw!important;height:auto!important;transform:translateY(-50%)!important;
}
.site-footer.footer-unified[data-unified-footer="true"] .footer-apk-download{
  position:absolute!important;left:72.05cqw!important;top:94cqh!important;
  width:9.65cqw!important;height:5.45cqh!important;display:grid!important;
  visibility:visible!important;place-items:center!important;transform:translateY(-50%)!important;
  transform-origin:50% 50%!important;z-index:3!important;pointer-events:auto!important;
  cursor:pointer!important;touch-action:manipulation!important;
  transition:transform .18s ease,filter .18s ease!important;
}
.site-footer.footer-unified[data-unified-footer="true"] .footer-apk-download img{
  width:100%!important;height:100%!important;display:block!important;object-fit:contain!important;
}
.site-footer.footer-unified[data-unified-footer="true"] .footer-apk-download:hover,
.site-footer.footer-unified[data-unified-footer="true"] .footer-apk-download:focus-visible{
  transform:translateY(-50%) scale(1.035)!important;filter:brightness(1.035)!important;
}
.site-footer.footer-unified[data-unified-footer="true"] .footer-apk-download:active{
  transform:translateY(-50%) scale(.975)!important;
}

/* The result footer gets the very same 16:9 query canvas as every shell/intro. */
.game-footer-canvas{
  position:absolute!important;z-index:80!important;left:50%!important;top:50%!important;
  width:min(100vw,177.777778vh)!important;height:min(56.25vw,100vh)!important;
  translate:-50% -50%!important;container-type:size!important;overflow:visible!important;
  pointer-events:none!important;
}
.game-footer-canvas .site-footer.footer-unified[data-unified-footer="true"]{
  position:absolute!important;inset:0!important;
}

/* BOOK's dedicated reader chrome remains intentionally separate. */
.book-reader-screen:not(.book-preface-mode) .site-footer.footer-unified[data-unified-footer="true"]{
  display:none!important;visibility:hidden!important;
}

/* Small landscape and portrait devices preserve the SAME row and baseline.
   Only the row itself scales slightly; no item is hidden or moved to a new lane. */
@media(max-height:620px) and (orientation:landscape){
  .site-footer.footer-unified[data-unified-footer="true"] .footer-rh-link{width:3.9cqw!important}
  .site-footer.footer-unified[data-unified-footer="true"] .footer-copy{left:34.4cqw!important;width:31cqw!important}
  .site-footer.footer-unified[data-unified-footer="true"] .footer-copy b{font-size:.92cqh!important;margin-bottom:.34cqh!important}
  .site-footer.footer-unified[data-unified-footer="true"] .footer-copy small{font-size:.47cqh!important}
  .site-footer.footer-unified[data-unified-footer="true"] .footer-age{width:3cqw!important}
  .site-footer.footer-unified[data-unified-footer="true"] .footer-apk-download{width:9.2cqw!important;height:5.1cqh!important}
}
@media(max-width:900px) and (orientation:portrait){
  .site-footer.footer-unified[data-unified-footer="true"]{display:block!important;visibility:visible!important}
  .site-footer.footer-unified[data-unified-footer="true"] .footer-apk-download{display:grid!important;visibility:visible!important}
}

/* --------------------------------------------------------------------------
   BABY RESULTS
   New class intentionally does NOT match any historical .baby-end-modal rules.
   It therefore inherits the exact classic reference art geometry cleanly.
   BABY keeps its established no-score/no-nickname rule.
   -------------------------------------------------------------------------- */
.game-modal.baby-result-modal.baby-result-ref{
  width:min(81.71875cqw,145.27778cqh)!important;aspect-ratio:1569/777!important;
  overflow:visible!important;
}
.game-modal.baby-result-modal.baby-result-ref .modal-copy{
  inset:0!important;width:100%!important;height:100%!important;margin:0!important;
  text-align:center!important;pointer-events:none!important;translate:none!important;
}
.game-modal.baby-result-modal.baby-result-ref .modal-copy>*{
  position:absolute!important;margin:0!important;line-height:1!important;text-align:center!important;
  white-space:nowrap!important;translate:-50% 0!important;transform:none!important;max-width:none!important;
}
.game-modal.baby-result-modal.baby-result-ref .modal-copy p,
.game-modal.baby-result-modal.baby-result-ref .modal-copy strong,
.baby-end-wrap .score-submit,.baby-end-wrap .submit-status{display:none!important}

/* BABY LEVEL COMPLETE — exact MAIN GAME typography/reference lane.
   Only the score/nickname form is absent; the title must never look smaller. */
.game-modal.baby-result-modal.next-level-ref .modal-copy small{
  left:63.7cqw!important;top:10.9cqh!important;width:72cqw!important;font-size:8.2cqh!important;
}
.game-modal.baby-result-modal.next-level-ref .modal-copy h2{
  left:63.7cqw!important;top:20.1cqh!important;width:72cqw!important;font-size:16.5cqh!important;
  letter-spacing:-.025em!important;
}
.game-modal.baby-result-modal.next-level-ref .modal-actions{
  left:49.5cqw!important;top:53.0cqh!important;width:34cqw!important;height:35cqh!important;translate:none!important;
}
.game-modal.baby-result-modal.next-level-ref .modal-primary{
  left:0!important;top:0!important;width:33cqw!important;height:16.2cqh!important;
  font-size:8.05cqh!important;padding-right:3.7cqw!important;translate:none!important;
}
.game-modal.baby-result-modal.next-level-ref .modal-menu{
  left:6cqw!important;top:22.25cqh!important;width:20.8cqw!important;height:10.8cqh!important;
  font-size:4.5cqh!important;translate:none!important;
}

/* BABY GAME OVER — copy follows 11-gameover; controls keep a clean center-right lane. */
.game-modal.baby-result-modal.game-over-ref .modal-copy small{
  left:50cqw!important;top:10.9cqh!important;width:80cqw!important;font-size:7.5cqh!important;
}
.game-modal.baby-result-modal.game-over-ref .modal-copy h2{
  left:50cqw!important;top:20.9cqh!important;width:80cqw!important;font-size:18.5cqh!important;
  letter-spacing:-.025em!important;
}
.game-modal.baby-result-modal.game-over-ref .modal-actions{
  left:49.5cqw!important;top:53.0cqh!important;width:34cqw!important;height:35cqh!important;translate:none!important;
}
.game-modal.baby-result-modal.game-over-ref .modal-primary{
  left:0!important;top:0!important;width:33cqw!important;height:16.2cqh!important;
  font-size:8.05cqh!important;padding-right:3.7cqw!important;translate:none!important;
}
.game-modal.baby-result-modal.game-over-ref .modal-menu{
  left:6cqw!important;top:22.25cqh!important;width:20.8cqw!important;height:10.8cqh!important;
  font-size:4.5cqh!important;translate:none!important;
}

/* BABY FINAL — same final art/title lane, score/form absent. */
.game-modal.baby-result-modal.final-game-ref .modal-copy small{
  left:64.9cqw!important;top:10.9cqh!important;width:64cqw!important;font-size:8.2cqh!important;
}
.game-modal.baby-result-modal.final-game-ref .modal-copy h2{
  left:64.9cqw!important;top:20.9cqh!important;width:68cqw!important;font-size:18.5cqh!important;
  letter-spacing:-.025em!important;
}
.game-modal.baby-result-modal.final-game-ref .modal-actions{
  left:49.5cqw!important;top:53.0cqh!important;width:34cqw!important;height:35cqh!important;translate:none!important;
}
.game-modal.baby-result-modal.final-game-ref .modal-primary{
  left:0!important;top:0!important;width:33cqw!important;height:16.2cqh!important;
  font-size:8.05cqh!important;padding-right:3.7cqw!important;translate:none!important;
}
.game-modal.baby-result-modal.final-game-ref .modal-menu{
  left:6cqw!important;top:22.25cqh!important;width:20.8cqw!important;height:10.8cqh!important;
  font-size:4.5cqh!important;translate:none!important;
}

/* Six-language guardrails mirror the MAIN GAME exactly.
   No JS auto-shrink is allowed on BABY result headings. */
html[lang="tr"] .game-modal.baby-result-modal.next-level-ref .modal-copy h2{font-size:12.7cqh!important}
html[lang="es"] .game-modal.baby-result-modal.next-level-ref .modal-copy h2{font-size:13.8cqh!important}
html[lang="it"] .game-modal.baby-result-modal.next-level-ref .modal-copy h2{font-size:12.8cqh!important}
html[lang="fr"] .game-modal.baby-result-modal.next-level-ref .modal-copy h2{font-size:16cqh!important}
html[lang="ja"] .game-modal.baby-result-modal.next-level-ref .modal-copy h2{font-size:13.5cqh!important}
html[lang="tr"] .game-modal.baby-result-modal.next-level-ref .modal-primary{font-size:6.4cqh!important}
html[lang="es"] .game-modal.baby-result-modal.next-level-ref .modal-primary{font-size:7.7cqh!important}
html[lang="it"] .game-modal.baby-result-modal.next-level-ref .modal-primary{font-size:7.6cqh!important}
html[lang="ja"] .game-modal.baby-result-modal.next-level-ref .modal-primary{font-size:7.2cqh!important}

@media(max-width:900px) and (orientation:portrait){
  .game-modal.baby-result-modal.baby-result-ref .modal-copy>*,
  .game-modal.baby-result-modal.baby-result-ref .modal-actions{transform:none!important}
}



/* ==========================================================================
   SETTINGS AUDIO — MUSIC / SFX ARE TWO INDEPENDENT SWITCHES
   ========================================================================== */
.settings-screen .toggle{z-index:14!important;pointer-events:auto!important;touch-action:manipulation!important}
.settings-screen .toggle[aria-pressed="true"]{filter:brightness(1.02)}
@media(max-width:760px) and (orientation:portrait){
  .settings-screen .music-setting{left:4cqw!important;width:44cqw!important}
  .settings-screen .sfx-setting{left:52cqw!important;width:44cqw!important}
  .settings-screen .music-setting .toggle{left:16cqw!important;width:24cqw!important}
  .settings-screen .sfx-setting .toggle{left:1cqw!important;width:24cqw!important}
}

/* ==========================================================================
   GAME POWER DOCK — 5 EQUAL, CENTERED BUTTON CELLS
   PUFSTORE is the first button and opens the existing store.
   ========================================================================== */
.game-frame .power-dock{
  justify-content:flex-start!important;
  gap:0!important;
}
.game-frame .power-dock>.power-title,
.game-frame .power-dock>.power-item{
  flex:0 0 20%!important;
  width:100%!important;
  height:20%!important;
  min-height:0!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  margin:0!important;
}
.game-frame .power-dock>.power-title>img,
.game-frame .power-dock>.power-item>img{
  width:70%!important;
  height:78%!important;
  max-width:70%!important;
  max-height:78%!important;
  object-fit:contain!important;
  object-position:center!important;
  transform-origin:50% 50%!important;
  transition:transform .18s ease,filter .18s ease!important;
}
.game-frame .power-dock>.power-title:hover>img,
.game-frame .power-dock>.power-title:focus-visible>img,
.game-frame .power-dock>.power-item:hover>img{
  transform:scale(1.045)!important;
  filter:brightness(1.035)!important;
}
.game-frame .power-store-button{cursor:pointer!important}
.game-frame .power-store-button:active>img{transform:scale(.975)!important}

/* ==========================================================================
   PUF STORE — ICON + TITLE AS ONE CENTERED HEADING; CONTENT SITS LOWER
   ========================================================================== */
.store-content{top:51.2%!important;left:5.1cqw!important;right:5.1cqw!important}
.store-heading-row{
  display:flex!important;align-items:center!important;justify-content:center!important;
  gap:1.05cqw!important;width:100%!important;margin:0 0 .45cqh!important;
}
.store-heading-row .store-heading-icon{
  width:4.45cqw!important;height:7.8cqh!important;object-fit:contain!important;flex:0 0 auto!important;
}
.store-heading-row h2{
  margin:0!important;font-size:6.1cqh!important;line-height:.9!important;text-align:center!important;
}
.store-content>.store-points{margin:.15cqh 0 1.15cqh!important}
.store-content>.store-grid{transform:translateY(1.35cqh)!important}
@media(max-width:1000px) and (orientation:landscape){
  .store-heading-row .store-heading-icon{width:4.25cqw!important;height:7.4cqh!important}
  .store-heading-row h2{font-size:5.7cqh!important}
}

/* ==========================================================================
   45 SECOND IDLE KNOCK — CENTERED CINEMATIC LOOP
   The full overlay captures the wake-up touch so it never triggers a board move.
   ========================================================================== */
.idle-knock-overlay{
  position:absolute;z-index:120;inset:0;display:grid;place-items:center;
  opacity:0;pointer-events:auto;background:rgba(255,248,251,.035);
  backdrop-filter:blur(0);transition:opacity .3s ease,backdrop-filter .3s ease;
  cursor:pointer;touch-action:manipulation;
}
.idle-knock-overlay.show{opacity:1;backdrop-filter:blur(.35px)}
.idle-knock-overlay.leaving{opacity:0!important;pointer-events:none!important}
.idle-knock-cat{
  width:20.5cqw;height:45cqh;object-fit:contain;object-position:center;
  transform:translateY(.5cqh) scale(.9);opacity:.96;
  filter:drop-shadow(0 1.2cqh 1.15cqw rgba(87,55,49,.19));
  animation:idleKnockEnter .38s cubic-bezier(.16,.86,.2,1) both;
  user-select:none;-webkit-user-drag:none;pointer-events:none;
}
@keyframes idleKnockEnter{
  from{opacity:0;transform:translateY(2cqh) scale(.78);filter:blur(5px) drop-shadow(0 1.2cqh 1.15cqw rgba(87,55,49,.08))}
  to{opacity:.96;transform:translateY(.5cqh) scale(.9);filter:blur(0) drop-shadow(0 1.2cqh 1.15cqw rgba(87,55,49,.19))}
}
@media(max-width:760px) and (orientation:portrait){
  .idle-knock-cat{width:45cqw;height:40cqh}
}


/* ==========================================================================
   IDLE KNOCK V2 — LARGE CENTERED SIX-FRAME MOTION, NO WHITE FLASHES
   Frames remain stacked in the DOM and crossfade in place. The full cycle is
   intentionally slower so the knock gesture is readable instead of strobing.
   ========================================================================== */
.idle-knock-overlay{
  background:transparent!important;
  backdrop-filter:none!important;
}
.idle-knock-overlay.show{backdrop-filter:none!important}
.idle-knock-stage{
  position:absolute!important;
  left:50%!important;top:50%!important;
  width:31.5cqw!important;height:69cqh!important;
  transform:translate(-50%,-50%) scale(.92)!important;
  transform-origin:50% 50%!important;
  opacity:0!important;
  animation:idleKnockStageEnter .46s cubic-bezier(.16,.86,.2,1) forwards!important;
  filter:drop-shadow(0 1.35cqh 1.2cqw rgba(87,55,49,.20));
  pointer-events:none!important;
}
.idle-knock-cat{
  position:absolute!important;inset:0!important;
  width:100%!important;height:100%!important;
  object-fit:contain!important;object-position:center!important;
  transform:none!important;opacity:0!important;
  filter:none!important;animation:none!important;
  transition:opacity .075s linear!important;
  will-change:opacity!important;
  user-select:none!important;-webkit-user-drag:none!important;pointer-events:none!important;
}
.idle-knock-cat.is-active{opacity:1!important;z-index:2!important}
@keyframes idleKnockStageEnter{
  from{opacity:0;transform:translate(-50%,-47%) scale(.82);filter:blur(5px) drop-shadow(0 1.35cqh 1.2cqw rgba(87,55,49,.08))}
  to{opacity:1;transform:translate(-50%,-50%) scale(1);filter:blur(0) drop-shadow(0 1.35cqh 1.2cqw rgba(87,55,49,.20))}
}
.idle-knock-overlay.leaving .idle-knock-stage{
  opacity:0!important;
  transform:translate(-50%,-48.5%) scale(.92)!important;
  transition:opacity .26s ease,transform .3s ease!important;
}
@media(max-width:760px) and (orientation:portrait){
  .idle-knock-stage{width:72cqw!important;height:60cqh!important}
}

/* ==========================================================================
   PUF STORE HEADING V2 — ICON + TITLE + PUF POINTS AS ONE ALIGNED BLOCK
   ========================================================================== */
.store-content{
  top:52.2%!important;
  left:5.0cqw!important;right:5.0cqw!important;
}
.store-heading-block{
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:1.25cqw!important;
  margin:0 auto 1.2cqh!important;
  text-align:left!important;
}
.store-heading-block .store-heading-icon{
  width:6.15cqw!important;
  height:11.2cqh!important;
  max-width:none!important;
  object-fit:contain!important;
  flex:0 0 auto!important;
}
.store-heading-copy{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:flex-start!important;
  min-width:0!important;
}
.store-heading-copy h2{
  margin:0!important;
  font-size:6.65cqh!important;
  line-height:.88!important;
  text-align:left!important;
}
.store-heading-copy .store-points{
  margin:.62cqh 0 0!important;
  font-size:3.45cqh!important;
  line-height:1!important;
  text-align:left!important;
}
.store-content>.store-grid{
  transform:translateY(1.8cqh)!important;
}
@media(max-width:1000px) and (orientation:landscape){
  .store-heading-block .store-heading-icon{width:5.8cqw!important;height:10.4cqh!important}
  .store-heading-copy h2{font-size:6.15cqh!important}
  .store-heading-copy .store-points{font-size:3.15cqh!important}
}
@media(max-width:760px) and (orientation:portrait){
  .store-heading-block{gap:2.6cqw!important;margin-bottom:1.4cqh!important}
  .store-heading-block .store-heading-icon{width:16cqw!important;height:10.8cqh!important}
  .store-heading-copy h2{font-size:5.2cqh!important}
  .store-heading-copy .store-points{font-size:2.65cqh!important}
}


/* ==========================================================================
   IDLE KNOCK V3 — VISIBLE, LARGE, CENTERED CINEMATIC GESTURE
   Important: the V2 stage had opacity:0!important while its keyframe tried to
   animate opacity. That kept the cat invisible although the sound was playing.
   V3 explicitly exposes the stage once the overlay is shown.
   ========================================================================== */
.idle-knock-overlay{
  z-index:500!important;
  display:block!important;
  overflow:visible!important;
  background:radial-gradient(circle at 50% 50%,rgba(255,247,249,.07),rgba(255,247,249,0) 45%)!important;
}
.idle-knock-stage{
  left:50%!important;top:50%!important;
  width:46cqw!important;height:82cqh!important;
  opacity:0!important;
  visibility:visible!important;
  transform:translate(-50%,-47%) scale(.84)!important;
  animation:none!important;
  transition:opacity .52s ease,transform .62s cubic-bezier(.16,.86,.2,1),filter .52s ease!important;
  filter:blur(5px) drop-shadow(0 1.55cqh 1.4cqw rgba(87,55,49,.10))!important;
}
.idle-knock-overlay.show .idle-knock-stage{
  opacity:1!important;
  transform:translate(-50%,-50%) scale(1)!important;
  filter:blur(0) drop-shadow(0 1.55cqh 1.4cqw rgba(87,55,49,.24))!important;
}
.idle-knock-cat{
  opacity:0!important;
  transition:opacity .14s cubic-bezier(.4,0,.2,1)!important;
  will-change:opacity!important;
}
.idle-knock-cat.is-active{opacity:1!important}
.idle-knock-overlay.leaving .idle-knock-stage{
  opacity:0!important;
  transform:translate(-50%,-48%) scale(.9)!important;
  filter:blur(3px) drop-shadow(0 1.2cqh 1.2cqw rgba(87,55,49,.08))!important;
  transition:opacity .34s ease,transform .4s ease,filter .34s ease!important;
}
@media(max-width:760px) and (orientation:portrait){
  .idle-knock-stage{width:88cqw!important;height:72cqh!important}
}

/* ========================================================================== 
   IDLE KNOCK V4 — DIRECT MORPH-LIKE POSE SWAPS, ZERO GRID FLASH
   The stage may fade in/out cinematically; Kn1..Kn6 never crossfade.
   ========================================================================== */
.idle-knock-overlay{
  z-index:500!important;
  display:block!important;
  overflow:hidden!important;
  background:radial-gradient(circle at 50% 49%,rgba(255,244,249,.18) 0,rgba(255,244,249,.075) 23%,rgba(255,244,249,0) 52%)!important;
  backdrop-filter:none!important;
}
.idle-knock-stage{
  left:50%!important;
  top:50%!important;
  width:48cqw!important;
  height:84cqh!important;
  opacity:0!important;
  visibility:visible!important;
  transform:translate(-50%,-47.5%) scale(.91)!important;
  filter:drop-shadow(0 1.7cqh 1.45cqw rgba(67,46,45,.16))!important;
  transition:opacity .28s ease,transform .38s cubic-bezier(.16,.86,.2,1),filter .32s ease!important;
  animation:none!important;
  isolation:isolate!important;
}
.idle-knock-overlay.show .idle-knock-stage{
  opacity:1!important;
  transform:translate(-50%,-50%) scale(1)!important;
  filter:drop-shadow(0 1.7cqh 1.45cqw rgba(67,46,45,.25))!important;
}
.idle-knock-cat{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  opacity:1!important;
  visibility:hidden!important;
  z-index:1!important;
  transform:translateZ(0)!important;
  filter:none!important;
  animation:none!important;
  transition:none!important;
  will-change:auto!important;
  backface-visibility:hidden!important;
  user-select:none!important;
  -webkit-user-drag:none!important;
  pointer-events:none!important;
}
.idle-knock-cat.is-active{
  opacity:1!important;
  visibility:visible!important;
  z-index:2!important;
}
/* Tiny whole-stage compression only on the two contact poses. The PNG pose
   change is still instantaneous; this gives the knock a tactile impact. */
.idle-knock-stage[data-knock-frame="3"],
.idle-knock-stage[data-knock-frame="5"]{
  filter:drop-shadow(0 1.35cqh 1.2cqw rgba(67,46,45,.28))!important;
}
.idle-knock-overlay.leaving .idle-knock-stage{
  opacity:0!important;
  transform:translate(-50%,-48.5%) scale(.94)!important;
  filter:drop-shadow(0 1.1cqh 1cqw rgba(67,46,45,.08))!important;
  transition:opacity .24s ease,transform .3s ease,filter .24s ease!important;
}
@media(max-width:760px) and (orientation:portrait){
  .idle-knock-stage{width:92cqw!important;height:74cqh!important}
}

/* ========================================================================== 
   RARE PUF BUBBLE — one soft, readable bonus layer; no change to core art
   ========================================================================== */
.game-cell.kind-pillow.has-puf-bubble{z-index:8!important}
.pillow-bubble-art{
  position:absolute!important;z-index:15!important;left:50%!important;top:50%!important;
  width:7.55cqw!important;height:13.55cqh!important;translate:-50% -50%!important;
  object-fit:contain!important;pointer-events:none!important;opacity:.97;
  filter:drop-shadow(0 .2cqh .3cqw rgba(116,76,125,.10)) brightness(1.025);
  transform-origin:50% 54%;will-change:transform,opacity,filter;
  animation:pufBubblePillowFloat 2.65s ease-in-out infinite alternate;
}
@keyframes pufBubblePillowFloat{
  0%{transform:translate3d(0,.20cqh,0) rotate(-1.2deg) scale(.985)}
  100%{transform:translate3d(0,-.28cqh,0) rotate(1.15deg) scale(1.025)}
}
.game-cell.puf-bubble-born .pillow-bubble-art{opacity:0!important;transform:scale(.18)!important;animation:none!important}
.game-cell.puf-bubble-born.puf-bubble-born-live .pillow-bubble-art{
  animation:pufBubbleBirth .64s cubic-bezier(.14,.88,.18,1.18) forwards!important;
}
@keyframes pufBubbleBirth{
  0%{opacity:0;transform:scale(.14) translateY(.9cqh);filter:brightness(1.55) blur(.08cqw)}
  46%{opacity:1;transform:scale(1.12,.91) translateY(-.22cqh);filter:brightness(1.17) blur(0)}
  72%{transform:scale(.96,1.055) translateY(.06cqh)}
  100%{opacity:.97;transform:scale(1);filter:brightness(1.025)}
}
.game-cell.dragging .pillow-bubble-art{animation:none!important;transform:translate(var(--drag-x),var(--drag-y)) scale(1.035)!important}
.game-cell.swap-preview .pillow-bubble-art{animation:none!important;transform:translate(var(--preview-x),var(--preview-y))!important}
.game-cell.cell-consumed-transaction .pillow-bubble-art{visibility:hidden!important}

.puf-bubble-flight{
  position:absolute;z-index:110;translate:-50% -50%;width:7.05cqw;height:12.55cqh;
  display:grid;place-items:center;pointer-events:none;transform-origin:center;will-change:transform,left,top;
  filter:drop-shadow(0 .35cqh .38cqw rgba(115,77,130,.13));
}
.puf-bubble-flight>img{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none}
.puf-bubble-flight.puf-bubble-launch{animation:pufBubbleLaunch .22s cubic-bezier(.14,.82,.18,1) both}
@keyframes pufBubbleLaunch{0%{scale:.72;filter:brightness(1.35);opacity:.72}100%{scale:1;filter:brightness(1);opacity:1}}
.puf-bubble-flight.puf-bubble-flying>img{animation:pufBubbleFlightBreath .58s ease-in-out infinite alternate}
@keyframes pufBubbleFlightBreath{0%{scale:.985}100%{scale:1.025}}

.puf-bubble-touch{
  position:absolute;z-index:108;translate:-50% -50%;width:5.1cqw;height:9.2cqh;object-fit:contain;
  pointer-events:none;animation:pufBubbleTouch .34s cubic-bezier(.12,.76,.2,1) forwards;
}
.puf-bubble-touch.big{width:7.7cqw;height:13.8cqh;animation-duration:.58s}
@keyframes pufBubbleTouch{
  0%{opacity:.82;scale:.66;filter:brightness(1.24)}
  48%{opacity:.66;scale:1.15 .92;filter:brightness(1.12)}
  100%{opacity:0;scale:1.38;filter:brightness(1.32) blur(.04cqw)}
}

.puf-bubble-final{
  position:absolute;z-index:114;translate:-50% -50%;width:1px;height:1px;pointer-events:none;
}
.puf-bubble-final-shell{
  position:absolute;left:0;top:0;width:15.5cqw;height:27.5cqh;translate:-50% -50%;object-fit:contain;
  animation:pufBubbleFinalShell .72s cubic-bezier(.12,.74,.18,1) forwards;
}
.puf-bubble-final-burst{
  position:absolute;left:0;top:0;width:10.8cqw;height:19.2cqh;translate:-50% -50%;object-fit:contain;
  animation:pufBubbleFinalBurst .62s cubic-bezier(.12,.76,.18,1) forwards;
}
@keyframes pufBubbleFinalShell{
  0%{opacity:.92;scale:.28;filter:brightness(1.48)}
  45%{opacity:.96;scale:1.02;filter:brightness(1.15)}
  100%{opacity:0;scale:1.24;filter:brightness(1.35) blur(.06cqw)}
}
@keyframes pufBubbleFinalBurst{
  0%{opacity:0;scale:.22;rotate:-6deg}
  16%{opacity:1}
  62%{opacity:1;scale:1.02;rotate:4deg}
  100%{opacity:0;scale:1.22;rotate:8deg;filter:blur(.035cqw)}
}

.puf-bubble-carry{
  position:absolute;z-index:116;translate:-50% -50%;width:8.25cqw;height:14.7cqh;pointer-events:none;
  display:grid;place-items:center;will-change:transform,opacity;
}
.puf-bubble-carry-shell{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:1}
.puf-bubble-carry-object{position:absolute;z-index:2;left:50%;top:51%;translate:-50% -50%;width:58%;height:58%;object-fit:contain}

/* Help additions use the same established two-column grammar. */
.help-rare-row>img{filter:drop-shadow(0 .25cqh .35cqw rgba(105,74,106,.08))}
.help-bubble-row>img{width:78%!important;justify-self:center}
.help-red-nuclear-row>img{width:88%!important;justify-self:center}

/* RED NUCLEAR is intentionally a full-grid event. Centering is done in JS; these
   dimensions blanket the complete 13x7 board regardless of where the bomb sat. */
.explosion-fx.nuclear.red-nuclear .explosion-cloud{
  width:102cqw!important;height:94cqh!important;object-fit:cover!important;
  animation:redNuclearGridCloud 1.22s cubic-bezier(.1,.72,.16,1) forwards!important;
}
.explosion-fx.nuclear.red-nuclear .explosion-cloud.cloud-2{
  width:108cqw!important;height:100cqh!important;rotate:17deg;animation-delay:.045s!important;opacity:.84;
}
.explosion-fx.nuclear.red-nuclear .shock-ring{
  width:31cqw!important;border-width:.62cqw!important;animation:redNuclearGridRing 1.05s ease-out forwards!important;
}
.explosion-fx.nuclear.red-nuclear .blast-pixel{z-index:3}
@keyframes redNuclearGridCloud{
  0%{opacity:0;scale:.18;filter:brightness(1.8) saturate(1.08)}
  8%{opacity:1}
  44%{opacity:1;scale:1.02;filter:brightness(1.13) saturate(1.04)}
  72%{opacity:.96;scale:1.075;filter:brightness(1.03)}
  100%{opacity:0;scale:1.14;filter:brightness(1.12) blur(.08cqw)}
}
@keyframes redNuclearGridRing{0%{opacity:1;scale:.35}100%{opacity:0;scale:3.6}}

@media(max-width:900px) and (orientation:portrait){
  .pillow-bubble-art{width:7.55cqw!important;height:13.55cqh!important}
  .puf-bubble-flight{width:7.05cqw;height:12.55cqh}
}

@media(prefers-reduced-motion:reduce){
  .pillow-bubble-art{animation:none!important}
  .puf-bubble-flight>img{animation:none!important}
}


/* ========================================================================== 
   PERFORMANCE PASS — keep CATPUF motion silky without changing the art
   ========================================================================== */
/* Permanent will-change on every transparent PNG creates dozens of GPU layers.
   Keep one animated layer per bubble group and promote the shards only while
   they actually burst. */
.bubble-shell,.bubble-icon,.bubble-label{will-change:auto!important}
.home-bubble-card{will-change:transform!important}
.home-bubble-card .bubble-visual{will-change:auto!important}
.bubble-language-choice .bubble-visual{will-change:translate,rotate!important}
.bubble-visual.bubble-bursting .bubble-shell,
.bubble-visual.bubble-bursting .bubble-icon,
.bubble-visual.bubble-bursting .bubble-shards>i{will-change:transform,opacity!important}

/* During the 420ms navigation pop, pause unrelated floating/ambient motion so
   the selected bubble animation gets a clean compositor frame budget. */
html.bubble-pop-focus .home-bubble-card:not(.burst-lock),
html.bubble-pop-focus .bubble-language-choice:not(.burst-lock) .bubble-visual,
html.bubble-pop-focus .ambient-flyer,
html.bubble-pop-focus .ambient-parachute{animation-play-state:paused!important}

/* 91 permanent cell layers are expensive on mobile GPUs. Entry/drag/rescue
   animations are promoted only while active; normal board art stays layer-light. */
.game-cell .cell-art{will-change:auto!important}
.game-frame.game-intro .game-cell .cell-art,
.game-cell.dragging .cell-art,
.game-cell.swap-preview .cell-art,
.game-cell.cat-rescue .cell-art{will-change:transform,opacity!important}


/* ========================================================================== 
   HELP — CURRENT POWER ART / PUF STORE / COMPLETE RED NUCLEAR
   ========================================================================== */
.help-store-row .help-store-icon{
  width:88%!important;
  height:19.5cqh!important;
  margin-inline:auto!important;
  object-fit:contain!important;
}
.help-store-row h3{font-size:2.75cqh!important}
.help-art-stack{
  position:relative;
  width:100%;
  height:24cqh;
  display:grid;
  place-items:center;
}
.help-row.art-right>.help-art-stack{order:2}
.help-row.art-right>.help-art-stack+div{order:1}
.help-red-nuclear-art>img{
  position:absolute;
  left:50%;top:50%;
  translate:-50% -50%;
  object-fit:contain;
  pointer-events:none;
}
.help-red-nuclear-base{width:92%;height:22cqh}
.help-red-nuclear-symbol{width:43%;height:10.6cqh;z-index:2;filter:drop-shadow(0 .18cqh .24cqw rgba(70,40,70,.12))}

@media(max-width:900px) and (orientation:portrait){
  .help-store-row .help-store-icon{height:16.5cqh!important;width:94%!important}
  .help-art-stack{height:18.5cqh}
  .help-red-nuclear-base{height:17cqh;width:96%}
  .help-red-nuclear-symbol{height:8.4cqh;width:47%}
  .help-row.art-right>.help-art-stack{order:1}
  .help-row.art-right>.help-art-stack+div{order:2}
}

/* === SPECIAL FX PERFORMANCE GOVERNOR ========================================
   Keep the hero explosions, but avoid Chrome repaint storms when several
   specials chain in the same frame. Heavy blast visuals animate compositor-only
   properties; per-cell pillow destruction uses a small sampled burst batch. */
.explosion-fx .explosion-cloud{
  filter:none!important;
  will-change:transform,opacity!important;
  backface-visibility:hidden;
}
.explosion-fx.bomb .explosion-cloud{
  animation:catpufBombCloudFast .72s cubic-bezier(.11,.72,.18,1) forwards!important;
}
.explosion-fx.nuclear:not(.red-nuclear) .explosion-cloud{
  animation:catpufNuclearCloudFast .96s cubic-bezier(.1,.7,.16,1) forwards!important;
}
.explosion-fx.nuclear:not(.red-nuclear) .cloud-2{
  animation:catpufNuclearEchoFast .86s .045s cubic-bezier(.1,.7,.16,1) forwards!important;
  filter:none!important;
}
.explosion-fx.red-nuclear .explosion-cloud{
  width:102cqw!important;height:94cqh!important;object-fit:cover!important;
  filter:none!important;
  animation:catpufRedNuclearFast 1.04s cubic-bezier(.1,.72,.16,1) forwards!important;
}
.explosion-fx.fx-compact .blast-pixel,
.explosion-fx.red-nuclear .blast-pixel{box-shadow:none!important}
@keyframes catpufBombCloudFast{
  0%{opacity:0;scale:.14}
  14%{opacity:1;scale:.48}
  54%{opacity:1;scale:1}
  100%{opacity:0;scale:1.22;translate:-50% -54%}
}
@keyframes catpufNuclearCloudFast{
  0%{opacity:0;scale:.11}
  12%{opacity:1;scale:.43}
  50%{opacity:1;scale:1.01}
  100%{opacity:0;scale:1.32;translate:-50% -55%}
}
@keyframes catpufNuclearEchoFast{
  0%{opacity:0;scale:.2}
  24%{opacity:.42;scale:.66}
  100%{opacity:0;scale:1.42}
}
@keyframes catpufRedNuclearFast{
  0%{opacity:0;scale:.2}
  9%{opacity:1;scale:.46}
  45%{opacity:1;scale:1.01}
  74%{opacity:.94;scale:1.055}
  100%{opacity:0;scale:1.1}
}

.special-pillow-burst-batch{
  position:absolute;inset:0;z-index:86;pointer-events:none;overflow:visible;
}
.special-pillow-burst{
  position:absolute;width:7.2cqw;height:13cqh;object-fit:contain;
  translate:-50% -50%;rotate:var(--special-burst-rot,0deg);opacity:0;
  will-change:transform,opacity;
  animation:catpufSpecialPillowBurst .44s var(--special-burst-delay,0ms) cubic-bezier(.13,.76,.18,1) forwards;
}
@keyframes catpufSpecialPillowBurst{
  0%{opacity:0;scale:.22}
  18%{opacity:.96;scale:.58}
  58%{opacity:.9;scale:1}
  100%{opacity:0;scale:1.18}
}

.game-cell.special-blast-consumed{pointer-events:none!important}
.game-cell.special-blast-consumed>.cell-art,
.game-cell.special-blast-consumed>.pillow-bubble-art,
.game-cell.special-blast-consumed>.nuclear-spinner-art,
.game-cell.special-blast-consumed .rocket-motion-stack,
.game-cell.special-blast-consumed .rocket-idle-flame,
.game-cell.special-blast-consumed .rocket-ready-pixels{
  opacity:0!important;visibility:hidden!important;animation:none!important;filter:none!important;
}
.game-cell.special-blast-consumed:before,
.game-cell.special-blast-consumed:after{opacity:0!important;animation:none!important}


/* ==========================================================================
   2026-08-14 BABY RESULT BUTTON + STORY/HELP READABILITY LOCK
   BABY controls use the exact MAIN GAME button typography. Story/Help copy is
   intentionally enlarged for comfortable reading without changing geometry.
   ========================================================================== */

/* BABY: exact MAIN GAME button type. Runtime fitting is disabled in baby.js. */
.game-modal.baby-result-modal.baby-result-ref .modal-primary{font-size:8.05cqh!important}
.game-modal.baby-result-modal.baby-result-ref .modal-menu{font-size:4.5cqh!important}
html[lang="tr"] .game-modal.baby-result-modal.next-level-ref .modal-primary{font-size:6.4cqh!important}
html[lang="es"] .game-modal.baby-result-modal.next-level-ref .modal-primary{font-size:7.7cqh!important}
html[lang="it"] .game-modal.baby-result-modal.next-level-ref .modal-primary{font-size:7.6cqh!important}
html[lang="ja"] .game-modal.baby-result-modal.next-level-ref .modal-primary{font-size:7.2cqh!important}
html[lang="tr"] .game-modal.baby-result-modal.baby-result-ref .modal-menu{font-size:4.2cqh!important}
html[lang="ja"] .game-modal.baby-result-modal.baby-result-ref .modal-menu{font-size:4cqh!important}

/* STORY: larger section heading and body copy; scrolling absorbs extra height. */
.story-screen .page-title{font-size:7.0cqh!important}
.story-copy h2{font-size:4.0cqh!important;line-height:1.1!important;margin-bottom:2.8cqh!important}
.story-copy p{font-size:1.76cqh!important;line-height:1.25!important;margin-bottom:2.25cqh!important}
.story-copy strong{font-size:2.2cqh!important;line-height:1.2!important}
.story-copy .story-plea{font-size:1.88cqh!important;line-height:1.2!important}

/* HELP: increase every reading tier, not only the big headings. */
.help-screen .page-title{font-size:7.0cqh!important}
.help-intro-copy h2{font-size:3.4cqh!important;line-height:1.03!important}
.help-intro-copy .help-lead{font-size:3.12cqh!important;line-height:1.1!important}
.help-intro-copy p:not(.help-lead){font-size:1.6cqh!important;line-height:1.22!important}
.help-row h3,.help-store-row h3{font-size:2.9cqh!important;line-height:1.03!important}
.help-row p{font-size:1.42cqh!important;line-height:1.24!important}
.help-wide-heading h2,.power-heading h2,.help-bottom h2,.help-tips h2{font-size:3.6cqh!important;line-height:1.04!important}
.help-wide-heading p,.help-bottom p{font-size:1.58cqh!important;line-height:1.22!important}
.help-wide-heading strong{font-size:3.05cqh!important;line-height:1.08!important}
.help-tips p{font-size:1.65cqh!important;line-height:1.24!important}
.help-fun{font-size:3.05cqh!important;line-height:1.08!important}
.help-tips>b{font-size:2.95cqh!important;line-height:1.08!important}

@media(max-width:900px) and (orientation:portrait){
  .story-screen .page-title,.help-screen .page-title{font-size:5.1cqh!important}
  .story-copy h2{font-size:3.7cqh!important}
  .story-copy p{font-size:1.82cqh!important;line-height:1.26!important}
  .story-copy strong{font-size:2.25cqh!important}
  .story-copy .story-plea{font-size:1.95cqh!important}
  .help-intro-copy h2{font-size:3.2cqh!important}
  .help-intro-copy .help-lead{font-size:2.85cqh!important}
  .help-intro-copy p:not(.help-lead){font-size:1.68cqh!important}
  .help-row h3,.help-store-row h3{font-size:2.7cqh!important}
  .help-row p{font-size:1.48cqh!important;line-height:1.25!important}
  .help-wide-heading h2,.power-heading h2,.help-bottom h2,.help-tips h2{font-size:3.3cqh!important}
  .help-wide-heading p,.help-bottom p{font-size:1.62cqh!important}
  .help-tips p{font-size:1.68cqh!important}
}

/* ========================================================================== 
   NUCLEAR AS ONE PIECE + CAT EAT HERO SEQUENCE — 2026-08-14
   Nuclear body/pillow and Nuclear-2 spinner share one motion wrapper. Fish and
   hamster eating gets a readable suction -> HUPP -> spit -> glass-stick -> fall.
   ========================================================================== */
.nuclear-motion-stack{
  position:absolute!important;inset:0!important;z-index:3!important;pointer-events:none!important;
  transform:translate3d(0,0,0) scale(1);transform-origin:50% 50%;transition:transform .08s linear;
}
.nuclear-motion-stack>.cell-art{z-index:2!important}
.nuclear-motion-stack>.nuclear-spinner-art{z-index:4!important}
.game-cell.special-nuclear.dragging .nuclear-motion-stack{
  transition:none!important;transform:translate3d(var(--drag-x),var(--drag-y),0) scale(1.025)!important;z-index:20!important;
}
.game-cell.special-nuclear.swap-preview .nuclear-motion-stack{
  transition:transform .04s linear!important;transform:translate3d(var(--preview-x),var(--preview-y),0)!important;
}
.game-cell.special-nuclear.selected:not(.dragging):not(.swap-preview) .nuclear-motion-stack{transform:scale(1.035)!important}
.game-cell.special-nuclear.dragging .cell-art,
.game-cell.special-nuclear.swap-preview .cell-art,
.game-cell.special-nuclear.selected .cell-art{
  transform:translate3d(0,0,0)!important;translate:0 0!important;scale:1!important;
}
.game-cell.special-nuclear.dragging .nuclear-motion-stack,
.game-cell.special-nuclear.swap-preview .nuclear-motion-stack{will-change:transform!important}
.game-cell.special-nuclear:not(.dragging):not(.swap-preview) .nuclear-motion-stack{will-change:auto!important}

.feature-suction-fx{position:absolute;z-index:94;width:1px;height:1px;pointer-events:none}
.feature-suction-core{
  position:absolute;left:0;top:0;width:2.2cqw;height:3.9cqh;border:.16cqw solid rgba(255,255,255,.72);
  border-radius:50%;box-shadow:0 0 .34cqw rgba(255,225,177,.34);pointer-events:none
}
.feature-suction-fx.suction-fish .feature-suction-core{border-color:rgba(219,249,255,.88)}
.feature-suction-fx.suction-hamster .feature-suction-core{border-color:rgba(255,236,190,.88)}
.feature-suction-mote{
  position:absolute;left:0;top:0;width:.34cqw;height:.62cqh;border-radius:50%;background:rgba(255,249,230,.92);
  box-shadow:0 0 .18cqw rgba(255,220,160,.45);pointer-events:none;will-change:transform,opacity
}
.feature-suction-fx.suction-fish .feature-suction-mote{background:rgba(222,250,255,.96)}
.feature-skeleton-spit.is-stuck{z-index:118!important;filter:drop-shadow(0 .16cqh .18cqw rgba(66,48,42,.34))!important}
.feature-skeleton-piece{
  position:absolute;z-index:119;pointer-events:none;width:5.95cqw;height:10.85cqh;object-fit:contain;
  transform-origin:50% 50%;will-change:transform,opacity
}
.feature-skeleton-piece.skeleton-fish{width:5.7cqw;height:10.4cqh}
.feature-skeleton-piece.skeleton-hamster{width:5.35cqw;height:9.9cqh}
.feature-skeleton-splat{position:absolute;z-index:117;width:1px;height:1px;pointer-events:none}
.feature-skeleton-splat>i{
  position:absolute;left:0;top:0;width:.34cqw;height:.62cqh;border-radius:48%;background:rgba(255,247,225,.9);
  transform:rotate(calc(var(--splat-i) * 60deg)) translateY(-1.35cqh);transform-origin:0 1.35cqh
}
.feature-skeleton-splat.splat-fish>i{background:rgba(218,248,255,.92)}
.feature-skeleton-splat.splat-hamster>i{background:rgba(255,229,178,.92)}
.game-cell.special-blast-consumed .nuclear-motion-stack,
.game-cell.special-blast-consumed .nuclear-motion-stack>*{
  opacity:0!important;visibility:hidden!important;animation:none!important;filter:none!important;
}

/* CAT RESCUE KISS — heart launches from the exact exit cell, sticks to the front glass, then shatters. */
.rescue-kiss-heart,
.rescue-kiss-heart-piece{
  position:absolute;z-index:121;pointer-events:none;display:block;line-height:1;
  font-family:Arial,"Helvetica Neue",sans-serif;font-weight:900;color:#ff5d84;
  text-shadow:0 .12cqh 0 rgba(118,34,62,.15),0 0 .28cqw rgba(255,165,191,.36);
  transform-origin:50% 50%;will-change:transform,opacity;user-select:none
}
.rescue-kiss-heart.is-stuck{z-index:122;text-shadow:0 .16cqh .05cqw rgba(105,31,55,.22),0 0 .34cqw rgba(255,177,199,.42)}
.rescue-kiss-heart-piece{z-index:123}
.rescue-kiss-heart-crack{
  position:absolute;z-index:124;pointer-events:none;width:2.35cqw;height:4.15cqh;border-radius:50%;
  border:.12cqw solid rgba(255,235,241,.88);box-shadow:0 0 .22cqw rgba(255,115,154,.42)
}
.rescue-kiss-heart-crack:before,.rescue-kiss-heart-crack:after{
  content:"";position:absolute;left:50%;top:50%;width:.12cqw;height:2.25cqh;background:rgba(255,241,246,.92);border-radius:999px;transform-origin:50% 50%
}
.rescue-kiss-heart-crack:before{transform:translate(-50%,-50%) rotate(31deg)}
.rescue-kiss-heart-crack:after{transform:translate(-50%,-50%) rotate(-47deg)}
@media (max-width:700px){
  .rescue-kiss-heart-crack{width:3.0cqw;height:5.0cqh}
}

/* ========================================================================== 
   CAT FEATURE PHYSICS HANDOFF + SOFT PILLOW LANDINGS — 2026-08-14
   Eat/spit hero art is detached from the live grid, so gravity can close the
   vacated cat cell immediately. The hidden live cat reappears only at handoff.
   ========================================================================== */
.game-cell.cat-eat-live-hidden .cell-art,
.game-cell.cat-feature-visual-hidden .cell-art{
  opacity:0!important;visibility:hidden!important
}
.cat-eat-ghost{
  position:absolute;z-index:112;pointer-events:none;display:block;object-fit:contain;
  transform-origin:50% 50%;will-change:transform,opacity;user-select:none
}
.cat-eat-cat-ghost{z-index:114;filter:drop-shadow(0 .3cqh .28cqw rgba(78,55,50,.15))}
.cat-eat-prey-ghost{z-index:113}
.cat-eat-prey-ghost.prey-fish{filter:drop-shadow(0 .18cqh .18cqw rgba(71,130,154,.12))}
.cat-eat-prey-ghost.prey-hamster{filter:drop-shadow(0 .18cqh .18cqw rgba(125,91,61,.12))}
.feature-skeleton-piece{
  backface-visibility:hidden;filter:drop-shadow(0 .14cqh .14cqw rgba(70,48,42,.18));
}
.rescue-kiss-heart{backface-visibility:hidden}

/* ========================================================================== 
   CATPUF NEW MENU CATS + SITE AMBIENT BUBBLES + GUIDE REMEMBER MOMENT
   2026-08-14 — supplied artwork only; no generated imagery.
   ========================================================================== */
/* The character sits physically BEHIND Bubble.png so the transparent rim,
   highlights and refraction read like a real bubble around the cat. */
.bubble-shell{z-index:4!important}
.bubble-icon{z-index:2!important}
.bubble-shards{z-index:7!important}
.home-bubble-card .menu-cat-icon{
  width:73%!important;height:74%!important;top:50.8%!important;
  object-fit:contain!important;filter:drop-shadow(0 .16cqh .16cqw rgba(85,65,92,.08))!important
}
.home-bubble-start .menu-cat-icon{width:79%!important;height:79%!important;top:50.5%!important}
.page-section-bubble .page-section-icon{
  width:71%!important;height:72%!important;top:50.7%!important;object-fit:contain!important
}
/* Individual silhouettes need tiny optical corrections, not different bubble geometry. */
.home-bubble-story .menu-cat-icon{width:69%!important;height:71%!important;top:51.3%!important}
.home-bubble-cats .menu-cat-icon{width:70%!important;height:71%!important}
.home-bubble-settings .menu-cat-icon{width:73%!important;height:74%!important;top:51.5%!important}
.home-bubble-book .menu-cat-icon{width:72%!important;height:73%!important;top:51.3%!important}
.home-bubble-credits .menu-cat-icon{width:71%!important;height:73%!important;top:51.2%!important}
.home-bubble-baby .menu-cat-icon{width:72%!important;height:73%!important;top:50.9%!important}
.home-bubble-scores .menu-cat-icon{width:70%!important;height:72%!important;top:51.2%!important}
.home-bubble-help .menu-cat-icon{width:72%!important;height:74%!important;top:51.1%!important}

/* Ambient bubble field for every non-game screen: mixed sizes, full-width random
   launches and enough overlap to keep several bubbles visible at once. */
#site-ambient-bubbles,#site-ambient-bubbles-front{
  position:absolute;inset:0;pointer-events:none;overflow:hidden;contain:layout style;
}
#site-ambient-bubbles{z-index:7}
/* On HOME + LANGUAGE, a second ambient plane crosses in front of the menu
   bubbles while the back plane stays behind them. Logo/title remain clean. */
#site-ambient-bubbles-front{z-index:24}
.site-ambient-bubble{
  position:absolute;bottom:-18cqh;aspect-ratio:601/593;height:auto;overflow:visible;
  pointer-events:auto;opacity:.92;transform-origin:50% 50%;cursor:pointer;
  -webkit-tap-highlight-color:transparent
}
.site-ambient-bubble .bubble-visual{
  position:absolute;inset:0;left:0;top:0;width:100%;height:100%;translate:0 0;
  animation:siteAmbientBubbleWobble var(--ambient-wobble-duration,4.8s) ease-in-out var(--ambient-wobble-delay,0s) infinite alternate;will-change:transform
}
.site-ambient-bubble .bubble-shell{width:100%!important;height:100%!important;filter:drop-shadow(0 .24cqh .28cqw rgba(128,97,154,.09))!important}
.site-ambient-bubble:hover .bubble-visual,.site-ambient-bubble:focus-visible .bubble-visual{scale:1.08}
.site-ambient-bubble:focus-visible{outline:.12cqw solid rgba(255,255,255,.82);outline-offset:.12cqw;border-radius:50%}
.site-ambient-bubble.burst-lock{pointer-events:none;z-index:220!important}
.site-ambient-bubble.burst-lock .bubble-visual{animation:none!important;scale:1!important;filter:none!important}
.site-ambient-bubble .bubble-visual.bubble-bursting .bubble-shards{z-index:12!important}
.site-ambient-bubble .bubble-visual.bubble-bursting .bubble-shards>i{filter:brightness(1.4) saturate(1.12)}
@keyframes siteAmbientBubbleWobble{
  0%{transform:translate3d(-.18cqw,0,0) rotate(-1.15deg) scale(.99)}
  50%{transform:translate3d(.22cqw,-.25cqh,0) rotate(.7deg) scale(1.012)}
  100%{transform:translate3d(-.08cqw,.18cqh,0) rotate(1.25deg) scale(.995)}
}
.bubble-pop-focus #site-ambient-bubbles .site-ambient-bubble:not(.burst-lock),.bubble-pop-focus #site-ambient-bubbles-front .site-ambient-bubble:not(.burst-lock){visibility:hidden}

/* Guide is an ordinary gravity-aware object, but a little fuller in its cell
   so the supplied square character reads immediately without a costly looped FX. */
@keyframes guideBreathing{
  0%,100%{scale:1 1;translate:0 0;filter:drop-shadow(0 .18cqh .13cqw rgba(80,62,82,.12))}
  22%{scale:1.006 1.010;translate:0 -.025cqh}
  48%{scale:1.024 1.032;translate:0 -.105cqh;filter:drop-shadow(0 .25cqh .17cqw rgba(80,62,82,.16))}
  66%{scale:1.013 1.018;translate:0 -.055cqh}
  82%{scale:.998 .996;translate:0 .012cqh}
}
.game-cell.guide-popping .cell-art{animation:none!important;opacity:0!important;visibility:hidden!important}
.guide-pop-fx{position:absolute;z-index:127;width:1px;height:1px;pointer-events:none;isolation:isolate}
.guide-pop-flash{
  position:absolute;left:0;top:0;width:5.4cqw;height:9.6cqh;border-radius:48%;
  background:radial-gradient(circle,rgba(255,255,255,.96) 0 10%,rgba(255,223,240,.62) 28%,rgba(255,196,222,0) 70%);
  transform:translate(-50%,-50%) scale(.25);opacity:0;will-change:transform,opacity
}
.guide-pop-fx.go .guide-pop-flash{animation:guidePopFlash .34s cubic-bezier(.12,.82,.18,1) both}
.guide-pop-piece{
  position:absolute;left:0;top:0;width:5.72cqw;height:10.38cqh;object-fit:contain;
  transform:translate(-50%,-50%);opacity:0;will-change:transform,opacity
}
.guide-pop-fx.go .guide-pop-piece{animation:guidePopPiece .48s cubic-bezier(.14,.72,.18,1) both}
@keyframes guidePopFlash{
  0%{transform:translate(-50%,-50%) scale(.18);opacity:0}
  28%{transform:translate(-50%,-50%) scale(1.24);opacity:.98}
  100%{transform:translate(-50%,-50%) scale(1.55);opacity:0}
}
@keyframes guidePopPiece{
  0%{transform:translate(-50%,-50%) translate3d(0,0,0) scale(1);opacity:.98}
  28%{opacity:1}
  100%{transform:translate(-50%,-50%) translate3d(var(--guide-x),var(--guide-y),0) scale(.76) rotate(var(--guide-r));opacity:0}
}

/* UNUTMA — in-game pause card, registered to the supplied 17-unutma reference.
   No backdrop blur: it remains cheap on Chrome even after an explosion chain. */
.remember-wrap{
  position:absolute;inset:0;z-index:190;display:grid;place-items:center;pointer-events:auto;
  background:rgba(246,220,243,0);opacity:0;transition:opacity .28s ease,background-color .32s ease;
}
.remember-wrap.show{opacity:1;background:rgba(246,220,243,.16)}
.remember-wrap.closing{opacity:0;background:rgba(246,220,243,0)}
.remember-card{
  position:absolute;left:50%;top:49.1%;width:59.5cqw;height:56.2cqh;
  transform:translate(-50%,-50%) scale(.91);transform-origin:50% 58%;
  opacity:0;transition:transform .42s cubic-bezier(.14,.82,.18,1),opacity .24s ease;
}
.remember-wrap.show .remember-card{transform:translate(-50%,-50%) scale(1);opacity:1}
.remember-wrap.closing .remember-card{transform:translate(-50%,-47.7%) scale(.94);opacity:0}
.remember-panel{
  position:absolute;z-index:2;left:7.6cqw;top:0;width:51.9cqw;height:53.5cqh;box-sizing:border-box;
  border:.19cqw solid rgba(222,164,159,.78);border-radius:1.65cqw;
  background:linear-gradient(180deg,rgba(255,228,224,.985),rgba(255,218,217,.985));
  box-shadow:inset 0 0 0 .34cqw rgba(255,242,237,.70),inset 0 0 0 .45cqw rgba(214,165,159,.18),0 .55cqh 1.2cqw rgba(112,75,110,.14);
}
.remember-panel:before{
  content:"";position:absolute;inset:.72cqh .43cqw;border:.07cqw dashed rgba(192,136,130,.48);border-radius:1.25cqw;pointer-events:none
}
.remember-guide{
  position:absolute;z-index:5;left:-2.8cqw;bottom:1.2cqh;width:18.0cqw;height:44.5cqh;object-fit:contain;
  transform:translate3d(-2.3cqw,1.5cqh,0) rotate(-2.2deg);opacity:0;
  transition:transform .48s cubic-bezier(.12,.86,.18,1) .06s,opacity .22s ease .05s;
  filter:drop-shadow(0 .28cqh .24cqw rgba(80,57,70,.10));pointer-events:none
}
.remember-wrap.show .remember-guide{transform:translate3d(0,0,0) rotate(0);opacity:1}
.remember-wrap.closing .remember-guide{transform:translate3d(-2.5cqw,1.2cqh,0) rotate(-2deg);opacity:0;transition-delay:0s}
.remember-panel h2{
  position:absolute;z-index:3;left:4.6cqw;right:4.6cqw;top:3.0cqh;margin:0;text-align:center;
  font-size:6.45cqh;line-height:.94;letter-spacing:-.025em;text-transform:uppercase;color:#2b2b2d;
}
.remember-count{
  position:absolute;z-index:4;right:2.7cqw;top:4.75cqh;font-size:2.75cqh;line-height:1;color:#303034;white-space:nowrap
}
.remember-message-box{
  position:absolute;z-index:3;left:4.6cqw;right:4.6cqw;top:17.0cqh;height:25.0cqh;
  display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden
}
.remember-message{
  margin:0;max-width:100%;font-size:5.0cqh;line-height:1.04;letter-spacing:-.022em;text-transform:uppercase;color:#303034;
}
.remember-ok{
  appearance:none;position:absolute;z-index:6;left:50%;bottom:-4.2cqh;translate:-50% 0;
  width:20.1cqw;height:9.6cqh;padding:0 1.2cqw;border:.19cqw solid rgba(116,161,153,.92);border-radius:4.8cqh;
  background:linear-gradient(180deg,#ffc4d2,#f397ad);box-shadow:inset 0 0 0 .28cqw rgba(219,247,236,.75),0 .34cqh .42cqw rgba(113,73,93,.18);
  color:#303034;font:inherit;font-size:3.25cqh;line-height:1;text-transform:uppercase;cursor:pointer;touch-action:manipulation;
  transition:transform .14s ease,filter .14s ease
}
.remember-ok:hover,.remember-ok:focus-visible{filter:brightness(1.055);transform:scale(1.035);outline:none}
.remember-ok:active{transform:scale(.97)}
.game-frame.remember-paused .board,.game-frame.remember-paused .power-dock,.game-frame.remember-paused .game-hud{pointer-events:none}
.game-frame.remember-paused .game-cell .cell-art,
.game-frame.remember-paused .rocket-idle-flame,
.game-frame.remember-paused .rocket-ready-pixels,
.game-frame.remember-paused .nuclear-spinner-art{animation-play-state:paused!important}
html[lang="ja"] .remember-panel h2{font-size:5.55cqh;letter-spacing:.01em}
html[lang="ja"] .remember-message{line-height:1.16;letter-spacing:.02em;text-transform:none}
html[lang="fr"] .remember-panel h2,html[lang="es"] .remember-panel h2{font-size:5.8cqh}

/* RESCUE KISS — supplied kalp.png, one hero heart plus three small hearts. */
.rescue-kiss-heart,.rescue-kiss-heart-piece{
  position:absolute!important;z-index:121;pointer-events:none;display:block!important;height:auto!important;object-fit:contain!important;
  transform-origin:50% 50%;will-change:transform,opacity;user-select:none;-webkit-user-drag:none;
  filter:drop-shadow(0 .14cqh .16cqw rgba(113,42,67,.17))
}
.rescue-kiss-heart-main{z-index:122!important}
.rescue-kiss-heart-small{z-index:121!important;filter:drop-shadow(0 .08cqh .10cqw rgba(113,42,67,.12))}
.rescue-kiss-heart.is-stuck{z-index:123!important;filter:drop-shadow(0 .22cqh .24cqw rgba(105,31,55,.22))}
.rescue-kiss-heart-piece{z-index:124!important;filter:drop-shadow(0 .09cqh .08cqw rgba(105,31,55,.12))}
.rescue-kiss-heart-crack{z-index:125!important}

@media(max-width:900px) and (orientation:portrait){
  .home-bubble-card .menu-cat-icon{width:75%!important;height:75%!important}
  .home-bubble-start .menu-cat-icon{width:80%!important;height:80%!important}
  .page-section-bubble .page-section-icon{width:73%!important;height:73%!important}
  .site-ambient-bubble{min-width:8cqw}
}
@media(prefers-reduced-motion:reduce){
  .site-ambient-bubble .bubble-visual{animation:none!important}
  .remember-card,.remember-guide,.remember-wrap{transition-duration:.12s!important}
}

/* ========================================================================== 
   RESULT NICKNAME FORM — spacing / typing fix
   Keep NICKNAME, the editable line and SUBMIT SCORE clearly separated on every
   main-game result screen. The editable text intentionally matches the label.
   ========================================================================== */
.game-modal.game-over-ref .score-submit,
.game-modal.next-level-ref .score-submit,
.game-modal.final-game-ref .score-submit{
  top:59.9cqh!important;
  height:23.6cqh!important;
  pointer-events:auto!important;
}
.game-modal.game-over-ref .score-submit label,
.game-modal.next-level-ref .score-submit label,
.game-modal.final-game-ref .score-submit label{
  top:0!important;
  font-size:4.5cqh!important;
  line-height:1!important;
  pointer-events:none!important;
}
.game-modal.game-over-ref .score-submit input,
.game-modal.next-level-ref .score-submit input,
.game-modal.final-game-ref .score-submit input{
  top:5.7cqh!important;
  height:5.0cqh!important;
  margin:0!important;
  padding:0 .8cqw .18cqh!important;
  box-sizing:border-box!important;
  font-size:4.5cqh!important;
  line-height:1!important;
  color:#2d2d2d!important;
  caret-color:#2d2d2d!important;
  cursor:text!important;
  pointer-events:auto!important;
  user-select:text!important;
  -webkit-user-select:text!important;
  touch-action:manipulation!important;
}
.game-modal.game-over-ref .score-submit button,
.game-modal.next-level-ref .score-submit button,
.game-modal.final-game-ref .score-submit button{
  top:12.2cqh!important;
}
.game-modal.game-over-ref .submit-status,
.game-modal.next-level-ref .submit-status,
.game-modal.final-game-ref .submit-status{
  top:84.6cqh!important;
}

/* ========================================================================== 
   CAT FEATURE CINEMATIC DEPTH + NO-HOLE GRAVITY — 2026-08-15
   Fish/hamster remains travel into the mouth, spit toward the front glass and
   fracture above the board. Board FLIP motion handles vertical/diagonal refills.
   ========================================================================== */
.cat-eat-ghost{backface-visibility:hidden;transform-style:preserve-3d}
.cat-eat-cat-ghost{z-index:128!important}
.cat-eat-prey-ghost{z-index:129!important}
.feature-skeleton-spit{
  z-index:136!important;backface-visibility:hidden;transform-style:preserve-3d;
  filter:drop-shadow(0 .32cqh .34cqw rgba(66,48,42,.30))!important
}
.feature-skeleton-piece{
  z-index:138!important;backface-visibility:hidden;
  filter:drop-shadow(0 .20cqh .18cqw rgba(63,45,40,.24))!important
}
.feature-skeleton-splat{z-index:137!important}


/* ========================================================================== 
   UI / EXIT / CAT DETAIL / GRID POLISH — 2026-08-16
   Authoritative final overrides for the supplied 05-cats-02 + 18-exit refs.
   ========================================================================== */

/* All horizontal + vertical scroll rails use the requested soft neutral. */
.v-scroll i,.h-scroll i{background:#dcddd8!important}
.scroll-clean{scrollbar-color:#dcddd8 transparent}

/* BACK belongs under the title, left aligned, on content/navigation pages. */
:is(.story-screen,.cats-screen,.settings-screen,.baby-levels-screen,.scores-screen,.credits-screen,.help-screen,.worlds-screen,.world-levels-screen) .back-btn{
  left:3.78cqw!important;
  top:calc(18.18cqh + 20px)!important;
  width:4.05cqw!important;
  z-index:34!important;
  transform:none!important;
}
:is(.story-screen,.cats-screen,.settings-screen,.baby-levels-screen,.scores-screen,.credits-screen,.help-screen,.worlds-screen,.world-levels-screen) .back-btn:hover{
  transform:translateX(-.18cqw) scale(1.045)!important;
}
:is(.story-screen,.help-screen) .back-btn{top:calc(18.60cqh + 20px)!important}

/* World summary starts safely below the relocated back control. */
.world-levels-screen .level-world-summary{top:27.55cqh!important}
.world-levels-screen .level-track{top:48.35cqh!important;height:33.0cqh!important;padding-top:2.2cqh!important}
.world-levels-screen .h-scroll{top:84.15cqh!important}

/* Settings: both switch images stay decoded in the DOM, so toggling music does
   not swap/decode an image in the same frame as the moving background art. */
.settings-screen .toggle{isolation:isolate;overflow:visible;transform:translateZ(0)}
.settings-screen .toggle .toggle-state{display:block;width:100%!important;height:auto;pointer-events:none;backface-visibility:hidden;transition:opacity .12s linear;transform:translateZ(0)}
.settings-screen .toggle .toggle-off{position:absolute;left:0;top:0}
.settings-screen .toggle.is-on .toggle-on{opacity:1}.settings-screen .toggle.is-on .toggle-off{opacity:0}
.settings-screen .toggle.is-off .toggle-on{opacity:0}.settings-screen .toggle.is-off .toggle-off{opacity:1}
.settings-section-bubble .bubble-visual{transform:translateZ(0);backface-visibility:hidden;contain:none!important}

/* CATS detail — reference composition: turning yarn planet at left, breathing
   four-frame cat over it, and two clearly separated copy sizes at right. */
.cat-detail-wrap{overflow:visible!important}
.cat-detail{
  width:min(82vw,145.6vh)!important;
  aspect-ratio:1569/777!important;
  min-height:0!important;
  container-type:size!important;
  overflow:visible!important;
}
.cat-detail .catpuf-logo{display:none!important}
.cat-detail .overlay-window{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:fill!important;z-index:0!important}
.detail-character-stage{position:absolute;z-index:3;left:1.8cqw;top:5.2cqh;width:45.8cqw;height:88.5cqh;pointer-events:none}
.detail-planet{position:absolute;z-index:1;left:50%;top:50%;width:42.3cqw;height:83.4cqh;translate:-50% -50%;object-fit:contain;filter:drop-shadow(0 .65cqh .75cqw rgba(118,78,118,.12));animation:catDetailPlanetSpin 25s linear infinite;will-change:transform}
.detail-character-stage .detail-cat{position:absolute!important;z-index:3!important;left:50%!important;top:50%!important;width:29.2cqw!important;height:61.5cqh!important;translate:-50% -47%!important;object-fit:contain!important;transform-origin:50% 76%!important;animation:detailCatBreath 3.7s cubic-bezier(.42,0,.28,1) infinite!important;will-change:scale,translate,filter}
@keyframes catDetailPlanetSpin{to{transform:rotate(360deg)}}
.detail-copy{position:absolute!important;z-index:4!important;left:52.2cqw!important;top:20.2cqh!important;width:38.2cqw!important;height:62.5cqh!important;display:flex!important;flex-direction:column!important;justify-content:flex-start!important;align-items:center!important;text-align:center!important;overflow:visible!important}
.detail-copy h2{margin:0 0 4.0cqh!important;font-size:4.55cqh!important;line-height:.95!important;letter-spacing:.014em!important;text-transform:uppercase!important;max-width:100%!important}
.detail-copy .detail-lead{margin:0 0 4.2cqh!important;font-size:2.55cqh!important;line-height:1.23!important;font-weight:800!important;text-transform:none!important;max-width:36.5cqw!important}
.detail-copy .detail-body{margin:0!important;font-size:1.43cqh!important;line-height:1.24!important;font-weight:700!important;text-transform:none!important;max-width:37.5cqw!important}
.detail-arrow{top:49%!important;width:4.65cqw!important;z-index:14!important;filter:drop-shadow(0 .2cqh .18cqw rgba(100,67,91,.12))}
.detail-prev{left:-6.15cqw!important}.detail-next{right:-6.15cqw!important;transform:scaleX(-1)!important}
.cat-detail .overlay-close{right:-1.75cqw!important;top:-4.3cqh!important;width:7.4cqw!important;z-index:16!important}
html[lang="ja"] .detail-copy h2{font-size:4.05cqh!important}
html[lang="ja"] .detail-copy .detail-lead{font-size:2.30cqh!important;line-height:1.27!important}
html[lang="ja"] .detail-copy .detail-body{font-size:1.36cqh!important;line-height:1.29!important}

/* Exit dialog — supplied 18-exit composition. */
.game-exit-wrap{
  position:fixed!important;z-index:16500!important;inset:0!important;display:grid!important;place-items:center!important;
  background:rgba(255,247,250,.12)!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important;
  opacity:0;transition:opacity .24s ease,backdrop-filter .36s ease!important;overflow:hidden!important
}
.game-exit-wrap.show{opacity:1!important}.game-exit-wrap.closing{opacity:0!important;backdrop-filter:blur(14px)!important}
.game-exit-card{position:relative!important;width:min(82vw,165.3vh)!important;aspect-ratio:1569/777!important;container-type:size!important;display:block!important;text-align:center!important;overflow:visible!important;transform:scale(.982);transition:transform .34s cubic-bezier(.16,.86,.2,1),filter .34s ease!important}
.game-exit-wrap.show .game-exit-card{transform:scale(1)}
.game-exit-window{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:fill!important;z-index:0!important}
.game-exit-close{position:absolute;z-index:25;right:-1.7cqw;top:-4.4cqh;width:7.6cqw;height:auto;transition:scale .16s ease}
.game-exit-close img{display:block;width:100%;height:auto}.game-exit-close:hover{scale:1.045}
.game-exit-bubble{position:absolute;z-index:7;left:2.15cqw;top:8.4cqh;width:36.8cqw;height:76cqh;pointer-events:none;transform-origin:50% 52%;animation:gameExitBubbleFloat 3.55s ease-in-out infinite;will-change:transform}
.game-exit-bubble-visual{position:absolute;inset:0;display:block;transform-origin:50% 50%}
.game-exit-bubble-shell{position:absolute;z-index:2;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 .55cqh .55cqw rgba(120,78,119,.10))}
.game-exit-bubble-cat{position:absolute;z-index:4;left:50%;top:50%;width:77%;height:77%;translate:-50% -48%;object-fit:contain;transform-origin:50% 68%;filter:drop-shadow(0 .25cqh .25cqw rgba(111,73,91,.08))}
.game-exit-bubble-play{position:absolute;z-index:8;right:1.6cqw;bottom:8.3cqh;width:10.2cqw;height:20cqh;object-fit:contain;filter:drop-shadow(0 .28cqh .25cqw rgba(106,71,83,.14));transform-origin:50% 50%}
@keyframes gameExitBubbleFloat{0%,100%{transform:translate3d(0,-.65cqh,0) rotate(-.5deg)}50%{transform:translate3d(0,.72cqh,0) rotate(.6deg)}}
.game-exit-copy{position:absolute;z-index:8;left:44.4cqw;top:23.2cqh;width:47.1cqw;text-align:center;text-transform:uppercase}
.game-exit-copy h2{margin:0 0 2.0cqh!important;font-size:6.8cqh!important;line-height:.9!important;letter-spacing:.008em!important}
.game-exit-copy p{margin:0!important;font-size:2.75cqh!important;line-height:1.08!important;font-weight:800!important;max-width:none!important}
.game-exit-actions{position:absolute!important;z-index:10!important;left:51.3cqw!important;top:50.5cqh!important;width:32.5cqw!important;display:flex!important;flex-direction:column!important;align-items:center!important;gap:3.1cqh!important}
.game-exit-actions button{position:relative!important;width:29.3cqw!important;height:11.5cqh!important;flex:0 0 11.5cqh!important;padding:0!important;background:url('../assets/but1.png') center/100% 100% no-repeat!important;font-size:3.2cqh!important;line-height:1!important;text-transform:uppercase!important;display:grid!important;place-items:center!important;transition:transform .16s ease,filter .16s ease!important;overflow:visible!important}
.game-exit-actions button:hover{transform:scale(1.025)!important;filter:brightness(1.02)}
.game-exit-actions .to-menu{width:25.7cqw!important;background-image:url('../assets/but2.png')!important}
.game-exit-actions button span{position:relative;z-index:2;display:block;max-width:80%;white-space:nowrap}
.game-exit-actions .exit-continue>img{position:absolute;z-index:4;right:-4.9cqw;top:50%;width:10.6cqw;height:20.5cqh;translate:0 -50%;object-fit:contain;pointer-events:none}
.game-exit-actions .to-menu>img{position:absolute;z-index:4;left:-5.7cqw;top:50%;width:8.0cqw;height:15.6cqh;translate:0 -50%;object-fit:contain;pointer-events:none}
.game-exit-shards{position:absolute;z-index:15;inset:0;pointer-events:none}
.game-exit-shards>i{position:absolute;inset:0;background:url('../assets/Bubble.png') center/100% 100% no-repeat;opacity:0;will-change:transform,opacity;filter:brightness(1.2) saturate(1.06)}
.game-exit-shards>i:nth-child(1){clip-path:polygon(0 0,43% 0,31% 34%,0 46%)}
.game-exit-shards>i:nth-child(2){clip-path:polygon(43% 0,75% 0,67% 37%,31% 34%)}
.game-exit-shards>i:nth-child(3){clip-path:polygon(75% 0,100% 0,100% 47%,67% 37%)}
.game-exit-shards>i:nth-child(4){clip-path:polygon(0 46%,31% 34%,43% 66%,0 76%)}
.game-exit-shards>i:nth-child(5){clip-path:polygon(67% 37%,100% 47%,100% 78%,59% 66%)}
.game-exit-shards>i:nth-child(6){clip-path:polygon(0 76%,43% 66%,48% 100%,0 100%)}
.game-exit-shards>i:nth-child(7){clip-path:polygon(43% 66%,59% 66%,78% 100%,48% 100%)}
.game-exit-shards>i:nth-child(8){clip-path:polygon(59% 66%,100% 78%,100% 100%,78% 100%)}
.game-exit-bubble.bursting{animation:none!important}
.game-exit-bubble.bursting .game-exit-bubble-shell{animation:exitBubbleShellPop .13s ease-out forwards}
.game-exit-bubble.bursting .game-exit-shards>i{animation:exitBubbleShard .48s var(--delay) cubic-bezier(.12,.72,.18,1) forwards}
.game-exit-bubble.bursting .game-exit-bubble-cat{animation:exitCatDrop .56s .075s cubic-bezier(.25,.72,.3,1) forwards}
.game-exit-bubble.bursting .game-exit-bubble-play{animation:exitPlayDrop .5s .06s cubic-bezier(.22,.72,.28,1) forwards}
@keyframes exitBubbleShellPop{0%{scale:1;opacity:1;filter:brightness(1)}58%{scale:1.075;opacity:.96;filter:brightness(1.45)}100%{scale:.82;opacity:0;filter:brightness(1.7)}}
@keyframes exitBubbleShard{0%{opacity:1;transform:translate3d(0,0,0) rotate(0) scale(1)}100%{opacity:0;transform:translate3d(var(--dx),var(--dy),0) rotate(var(--rot)) scale(.62)}}
@keyframes exitCatDrop{0%{translate:-50% -48%;rotate:0;opacity:1}22%{translate:-50% -42%;rotate:-2deg}100%{translate:-50% 92%;rotate:12deg;opacity:0}}
@keyframes exitPlayDrop{0%{translate:0 0;rotate:0;opacity:1}100%{translate:1.2cqw 28cqh;rotate:16deg;opacity:0}}
.game-exit-wrap.exit-transitioning .game-exit-copy,.game-exit-wrap.exit-transitioning .game-exit-actions{transition:opacity .28s ease,transform .38s ease;opacity:.12;transform:scale(.985)}
.game-exit-wrap.menu-handoff{opacity:0!important;backdrop-filter:blur(15px)!important}

/* +4 px on every board object keeps the grid visually tighter without changing
   cell hit boxes or game physics. */
.cell-art,
.game-cell.kind-cat .cell-art,
.game-cell.kind-stone .cell-art,
.game-cell.kind-special .cell-art,
.game-cell.kind-ice .cell-art,
.rip-piece,.stone-frag,.ice-shatter{
  width:calc(5.86cqw + 4px)!important;
  height:calc(10.63cqh + 4px)!important;
}
.baby-cell:not(.baby-kind-cat) .baby-cell-art{inset:-2px!important;width:calc(100% + 4px)!important;height:calc(100% + 4px)!important}
.baby-cell.baby-kind-cat .baby-cell-art{inset:calc(3% - 2px)!important;width:calc(94% + 4px)!important;height:calc(94% + 4px)!important}

@media(max-width:900px) and (orientation:portrait){
  :is(.story-screen,.cats-screen,.settings-screen,.baby-levels-screen,.scores-screen,.credits-screen,.help-screen,.worlds-screen,.world-levels-screen) .back-btn{
    left:5cqw!important;top:calc(19.48cqh + 20px)!important;width:8.8cqw!important;
  }
  :is(.story-screen,.help-screen) .back-btn{top:calc(19.90cqh + 20px)!important}
  .world-levels-screen .level-world-summary{left:5cqw!important;top:29.2cqh!important}
  .world-levels-screen .level-track{top:45.0cqh!important;height:40.5cqh!important;padding-top:2cqh!important}
  .world-levels-screen .h-scroll{top:87.2cqh!important}
  .cat-detail{width:96vw!important;aspect-ratio:1569/777!important;min-height:0!important}
  .detail-prev{left:-2cqw!important}.detail-next{right:-2cqw!important}
  .cat-detail .overlay-close{right:-.8cqw!important;top:-2.3cqh!important;width:7.2cqw!important}
}
@media(max-width:900px) and (orientation:landscape){
  :is(.story-screen,.cats-screen,.settings-screen,.baby-levels-screen,.scores-screen,.credits-screen,.help-screen,.worlds-screen,.world-levels-screen) .back-btn{left:3.78cqw!important;top:calc(18.18cqh + 14px)!important;width:4.25cqw!important}
  :is(.story-screen,.help-screen) .back-btn{top:calc(18.60cqh + 14px)!important}
  .world-levels-screen .level-world-summary{top:26.2cqh!important}
  .world-levels-screen .level-track{top:43.8cqh!important;height:27.8cqh!important;padding-top:1.5cqh!important}
  .world-levels-screen .h-scroll{top:74.25cqh!important}
}
@media(prefers-reduced-motion:reduce){
  .detail-planet,.detail-character-stage .detail-cat,.game-exit-bubble{animation:none!important}
}


/* ========================================================================== 
   HOME / CAT DETAIL / REMEMBER CINEMATIC POLISH — 2026-08-16
   Source of truth for 03-homeNew + 05-cats-02 and the cinematic UNUTMA beat.
   ========================================================================== */

/* 03-homeNew: persistent player stats at upper-left. */
.home-stats{
  position:absolute;z-index:34;left:4.95cqw;top:11.7cqh;width:13.2cqw;
  display:grid;gap:.18cqh;pointer-events:none;text-align:left;color:#171419;
  font-size:2.28cqh;line-height:1.02;text-transform:uppercase;letter-spacing:-.018em;
  filter:drop-shadow(0 .05cqh 0 rgba(255,255,255,.22));
}
.home-stats>div{display:grid;grid-template-columns:auto 1fr;align-items:baseline;column-gap:.52cqw;white-space:nowrap}
.home-stats span,.home-stats b{font:inherit;font-weight:800}.home-stats b{text-align:left}

/* Active language gets its own small floating bubble at the right, aligned to the logo. */
.home-language-bubble{
  left:auto!important;right:2.85cqw!important;top:7.85cqh!important;width:8.25cqw!important;height:15.9cqh!important;
  z-index:35!important;--bubble-drift-x:.16cqw;--bubble-drift-y:1.05cqh;--bubble-scale-lo:.985;--bubble-scale-hi:1.025;
}
.home-language-bubble .bubble-visual{width:100%!important}.home-language-bubble .language-flag-icon{width:55%!important;height:55%!important;top:51%!important}

/* Give all nine navigation bubbles a larger, organic float without letting their
   anchor boxes wander into one another. Each route gets a deliberately different
   tiny horizontal drift, vertical amplitude and scale cycle. */
.home-bubble-card{animation-name:homeBubbleOrganicFloat!important;animation-timing-function:cubic-bezier(.42,0,.23,1)!important;animation-direction:alternate!important;transform-origin:50% 50%!important}
.home-bubble-story{--bubble-drift-x:-.18cqw;--bubble-drift-y:1.35cqh;--bubble-scale-lo:.988;--bubble-scale-hi:1.024}
.home-bubble-cats{--bubble-drift-x:.24cqw;--bubble-drift-y:1.48cqh;--bubble-scale-lo:.984;--bubble-scale-hi:1.026}
.home-bubble-settings{--bubble-drift-x:.16cqw;--bubble-drift-y:1.28cqh;--bubble-scale-lo:.989;--bubble-scale-hi:1.022}
.home-bubble-book{--bubble-drift-x:-.24cqw;--bubble-drift-y:1.15cqh;--bubble-scale-lo:.987;--bubble-scale-hi:1.025}
.home-bubble-start{--bubble-drift-x:.12cqw;--bubble-drift-y:.92cqh;--bubble-scale-lo:.993;--bubble-scale-hi:1.018}
.home-bubble-credits{--bubble-drift-x:.22cqw;--bubble-drift-y:1.18cqh;--bubble-scale-lo:.988;--bubble-scale-hi:1.024}
.home-bubble-baby{--bubble-drift-x:-.18cqw;--bubble-drift-y:1.36cqh;--bubble-scale-lo:.986;--bubble-scale-hi:1.026}
.home-bubble-scores{--bubble-drift-x:.15cqw;--bubble-drift-y:1.22cqh;--bubble-scale-lo:.989;--bubble-scale-hi:1.023}
.home-bubble-help{--bubble-drift-x:-.21cqw;--bubble-drift-y:1.42cqh;--bubble-scale-lo:.986;--bubble-scale-hi:1.025}
@keyframes homeBubbleOrganicFloat{
  0%{transform:translate3d(0,-.92cqh,0) rotate(-.32deg) scale(var(--bubble-scale-lo,.988))}
  48%{transform:translate3d(0,.08cqh,0) rotate(.08deg) scale(1.004)}
  100%{transform:translate3d(var(--bubble-drift-x,0cqw),var(--bubble-drift-y,1.2cqh),0) rotate(.34deg) scale(var(--bubble-scale-hi,1.024))}
}

/* Footer matches 03-homeNew and the supplied personal mark. */
.site-footer.footer-unified[data-unified-footer="true"] .footer-rh-link{
  left:28.95cqw!important;top:94.0cqh!important;width:4.85cqw!important;pointer-events:none!important;
}
.site-footer.footer-unified[data-unified-footer="true"] .footer-copy{left:35.2cqw!important;top:93.92cqh!important;width:29.4cqw!important}
.site-footer.footer-unified[data-unified-footer="true"] .footer-copy .footer-mail{display:inline-block!important;color:#171419!important;text-decoration:none!important;pointer-events:auto!important;cursor:pointer!important}
.site-footer.footer-unified[data-unified-footer="true"] .footer-copy .footer-mail:hover,
.site-footer.footer-unified[data-unified-footer="true"] .footer-copy .footer-mail:focus-visible{transform:scale(1.035);outline:none;text-decoration:none}
.site-footer.footer-unified[data-unified-footer="true"] .footer-copy b{font-size:1.02cqh!important;margin-bottom:.42cqh!important}
.site-footer.footer-unified[data-unified-footer="true"] .footer-copy small{font-size:.51cqh!important;line-height:1.11!important}
.site-footer.footer-unified[data-unified-footer="true"] .footer-age{left:66.75cqw!important;top:94cqh!important;width:3.28cqw!important}
.site-footer.footer-unified[data-unified-footer="true"] .footer-apk-download{left:72.15cqw!important;top:94cqh!important;width:9.85cqw!important;height:5.55cqh!important}

/* 05-cats-02: each cat sits on the actual WO1..WO10 world it belongs to. */
.detail-character-stage{left:1.65cqw!important;top:4.35cqh!important;width:47.6cqw!important;height:89.8cqh!important}
.detail-planet{
  width:44.9cqw!important;height:88.2cqh!important;left:50%!important;top:50%!important;translate:-50% -50%!important;
  animation-duration:31s!important;filter:drop-shadow(0 .62cqh .74cqw rgba(94,72,124,.14))!important;
}
.detail-character-stage .detail-cat{
  width:30.8cqw!important;height:64.0cqh!important;translate:-50% -46.2%!important;
  animation-duration:3.65s!important;
}
.detail-copy{left:52.25cqw!important;top:20.0cqh!important;width:38.0cqw!important;height:64.0cqh!important}
.detail-copy h2{margin:0 0 3.8cqh!important;font-size:6.35cqh!important;line-height:.93!important;letter-spacing:-.012em!important;font-weight:800!important}
.detail-copy .detail-lead{margin:0 0 4.2cqh!important;font-size:3.22cqh!important;line-height:1.17!important;font-weight:800!important;max-width:36.8cqw!important}
.detail-copy .detail-body{font-size:1.68cqh!important;line-height:1.19!important;font-weight:700!important;max-width:37.6cqw!important}
html[lang="ja"] .detail-copy h2{font-size:5.65cqh!important;letter-spacing:.01em!important}
html[lang="ja"] .detail-copy .detail-lead{font-size:2.78cqh!important;line-height:1.23!important}
html[lang="ja"] .detail-copy .detail-body{font-size:1.55cqh!important;line-height:1.25!important}
html[lang="fr"] .detail-copy .detail-lead,html[lang="es"] .detail-copy .detail-lead,html[lang="it"] .detail-copy .detail-lead{font-size:3.02cqh!important}

/* Exit: keep only the play icon beside CONTINUE; no second play over the left bubble. */
.game-exit-bubble-play{display:none!important}

/* The Guide impact and UNUTMA card share the same softened game backdrop as the
   back/exit screen. The impact stays above this layer, then the card arrives. */
.remember-impact-backdrop{
  position:absolute;inset:0;z-index:118;pointer-events:none;opacity:0;
  background:rgba(255,247,250,0);backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);
  transition:opacity .52s ease,backdrop-filter .62s cubic-bezier(.16,.82,.2,1),background-color .52s ease;
  will-change:opacity,backdrop-filter;
}
.remember-impact-backdrop.show{
  opacity:1;background:rgba(255,247,250,.12);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)
}
.remember-impact-backdrop.closing{
  opacity:0;background:rgba(255,247,250,0);backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);
  transition-duration:.58s
}
.remember-wrap{background:transparent!important;perspective:1200px;transition:opacity .52s ease!important}
.remember-wrap.show{background:transparent!important}.remember-wrap.closing{background:transparent!important}
.remember-card{
  top:49.1%!important;transform:translate(-50%,-44%) scale(.82) rotateX(7deg)!important;filter:blur(.35cqw) brightness(1.06);
  transition:transform .62s cubic-bezier(.12,.88,.18,1),opacity .46s ease,filter .58s ease!important;
}
.remember-card:before{
  content:"";position:absolute;z-index:0;left:15%;right:0;top:5%;bottom:0;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(255,255,255,.74) 0 4%,rgba(255,218,236,.38) 23%,rgba(255,218,236,0) 68%);
  opacity:0;transform:scale(.62);filter:blur(.35cqw);
}
.remember-wrap.show .remember-card{transform:translate(-50%,-50%) scale(1) rotateX(0)!important;filter:blur(0) brightness(1)!important}
.remember-wrap.show .remember-card:before{animation:rememberCinematicBloom .74s cubic-bezier(.15,.82,.2,1) both}
.remember-wrap.closing .remember-card{transform:translate(-50%,-54%) scale(.90) rotateX(-4deg)!important;opacity:0!important;filter:blur(.22cqw) brightness(1.04)!important;transition-duration:.56s!important}
.remember-panel{transform-origin:50% 55%}.remember-wrap.show .remember-panel{animation:rememberPanelSettle .66s cubic-bezier(.12,.87,.17,1) both}
.remember-guide{transform:translate3d(-4.8cqw,3.0cqh,0) rotate(-5deg) scale(.92)!important;filter:blur(.08cqw) drop-shadow(0 .28cqh .24cqw rgba(80,57,70,.10))!important}
.remember-wrap.show .remember-guide{transform:translate3d(0,0,0) rotate(0) scale(1)!important;filter:blur(0) drop-shadow(0 .28cqh .24cqw rgba(80,57,70,.10))!important;transition-duration:.62s!important}
.remember-wrap.closing .remember-guide{transform:translate3d(-4.3cqw,2.5cqh,0) rotate(-4deg) scale(.92)!important;opacity:0!important}
@keyframes rememberCinematicBloom{0%{opacity:0;transform:scale(.62)}32%{opacity:.9;transform:scale(1.06)}100%{opacity:0;transform:scale(1.38)}}
@keyframes rememberPanelSettle{0%{transform:scale(.96)}58%{transform:scale(1.012)}100%{transform:scale(1)}}

@media(max-width:900px) and (orientation:landscape){
  .home-stats{left:3.8cqw;top:10.8cqh;font-size:2.15cqh;width:15.5cqw}
  .home-language-bubble{right:2.2cqw!important;top:7.2cqh!important;width:8.7cqw!important}
  .cat-detail{width:94vw!important}
  .detail-copy h2{font-size:6.0cqh!important}.detail-copy .detail-lead{font-size:3.0cqh!important}.detail-copy .detail-body{font-size:1.55cqh!important}
}
@media(max-width:900px) and (orientation:portrait){
  .home-stats{left:4cqw;top:14.5cqh;font-size:1.9cqh;width:21cqw}
  .home-language-bubble{right:3.5cqw!important;top:13.5cqh!important;width:13.5cqw!important;height:16cqh!important}
}
@media(prefers-reduced-motion:reduce){
  .home-bubble-card,.detail-planet,.remember-card,.remember-panel,.remember-guide{animation:none!important;transition-duration:.12s!important}
}
/* Keep the new stats/language chrome clear of the two nearest menu bubbles. */
.home-bubble-story{top:20.6cqh!important}
.home-bubble-scores{top:21.1cqh!important}
/* Optical registration against 03-homeNew reference. */
.home-stats{font-size:2.45cqh!important}
.home-language-bubble{right:3.65cqw!important;top:8.05cqh!important;width:6.65cqw!important;height:13.0cqh!important}
.detail-copy .detail-lead{font-size:3.55cqh!important}
.detail-copy .detail-body{font-size:1.88cqh!important}
html[lang="fr"] .detail-copy .detail-lead,html[lang="es"] .detail-copy .detail-lead,html[lang="it"] .detail-copy .detail-lead{font-size:3.28cqh!important}
@media(max-width:900px) and (orientation:landscape){
  .home-stats{font-size:2.28cqh!important}
  .home-language-bubble{right:3.1cqw!important;top:7.7cqh!important;width:7.1cqw!important;height:13.2cqh!important}
  .detail-copy .detail-lead{font-size:3.28cqh!important}.detail-copy .detail-body{font-size:1.72cqh!important}
}


/* ========================================================================== 
   HOME MICRO-ALIGNMENT + FOOTER TYPE + STATS COLUMNS — 2026-08-16
   ========================================================================== */
/* The supplied hol.png is the footer identity; typography is registered to the
   03-homeNew reference instead of the previous undersized legal strip. */
.site-footer.footer-unified[data-unified-footer="true"] .footer-rh-link{
  left:28.65cqw!important;top:94.0cqh!important;width:5.15cqw!important;
}
.site-footer.footer-unified[data-unified-footer="true"] .footer-copy{
  left:34.45cqw!important;top:93.82cqh!important;width:31.6cqw!important;
  line-height:1!important;
}
.site-footer.footer-unified[data-unified-footer="true"] .footer-copy b{
  font-size:1.38cqh!important;line-height:1!important;margin-bottom:.46cqh!important;font-weight:800!important;
}
.site-footer.footer-unified[data-unified-footer="true"] .footer-copy small{
  font-size:.64cqh!important;line-height:1.12!important;font-weight:700!important;
}

/* One shared two-column grid makes every language line up: all labels share the
   same left edge and all values share a second, perfectly aligned left edge. */
.home-stats{
  grid-template-columns:max-content max-content!important;
  column-gap:.72cqw!important;row-gap:.22cqh!important;
  width:max-content!important;align-items:baseline!important;
}
.home-stats>div{display:contents!important}
.home-stats span,.home-stats b{display:block!important;text-align:left!important;justify-self:start!important;white-space:nowrap!important}

/* Give STORY and SETTINGS a little more breathing room below their current anchors. */
@media (orientation:landscape){
  .bubble-home-screen .home-bubble-story{top:22.0cqh!important}
  .bubble-home-screen .home-bubble-settings{top:56.55cqh!important}
}
@media(max-width:900px) and (orientation:portrait){
  .bubble-home-screen .home-bubble-story{top:22.0cqh!important}
  .bubble-home-screen .home-bubble-settings{top:44.5cqh!important}
}

@media(max-width:900px) and (orientation:landscape){
  .site-footer.footer-unified[data-unified-footer="true"] .footer-rh-link{width:4.45cqw!important}
  .site-footer.footer-unified[data-unified-footer="true"] .footer-copy b{font-size:1.18cqh!important}
  .site-footer.footer-unified[data-unified-footer="true"] .footer-copy small{font-size:.57cqh!important}
}


/* CATPUF ROUND 4 — idle knock uses the same softened backdrop as Back/Exit. */
.idle-knock-overlay{
  background:rgba(255,247,250,.12)!important;
  backdrop-filter:blur(8px)!important;
  -webkit-backdrop-filter:blur(8px)!important;
  transition:opacity .28s ease,backdrop-filter .38s ease,background-color .3s ease!important;
}
.idle-knock-overlay.show{
  opacity:1!important;
  backdrop-filter:blur(8px)!important;
  -webkit-backdrop-filter:blur(8px)!important;
}
.idle-knock-overlay.leaving{
  opacity:0!important;
  backdrop-filter:blur(14px)!important;
  -webkit-backdrop-filter:blur(14px)!important;
}


/* ==========================================================================
   ROUND 5 - ROOT /sfx AUDIO PATH + GUARANTEED KNOCK BACKDROP BLUR
   The knock cat gets its own backdrop layer so legacy idle-knock overrides can
   never disable the same 8px blur used by Back/Exit/Remember.
   ========================================================================== */
.idle-knock-backdrop{
  position:absolute!important;inset:0!important;z-index:0!important;pointer-events:none!important;
  opacity:0!important;background:rgba(255,247,250,.12)!important;
  backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important;
  transition:opacity .28s ease,backdrop-filter .38s ease,background-color .3s ease!important;
}
.idle-knock-overlay.show .idle-knock-backdrop{opacity:1!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important}
.idle-knock-overlay.leaving .idle-knock-backdrop{opacity:0!important;backdrop-filter:blur(14px)!important;-webkit-backdrop-filter:blur(14px)!important}
.idle-knock-stage{z-index:2!important}

/* ========================================================================== 
   HOME BUBBLE POSITION TUNE — Story right/down, Help left/up
   2026-08-16
   ========================================================================== */
@media (orientation:landscape){
  .bubble-home-screen .home-bubble-story{left:4.45cqw!important;top:21.05cqh!important}
  .bubble-home-screen .home-bubble-help{left:82.85cqw!important;top:50.15cqh!important}
}
@media(max-width:900px) and (orientation:portrait){
  .bubble-home-screen .home-bubble-story{left:8.5cqw!important;top:19.5cqh!important}
  .bubble-home-screen .home-bubble-help{left:73.0cqw!important;top:41.8cqh!important}
}


/* ========================================================================== 
   GAME GUIDANCE + POWER DOCK BREATH + FINAL HOME POSITION TUNE
   2026-08-16
   ========================================================================== */
/* PUF Store + four power icons breathe independently, like five soft floating
   objects. The motion is deliberately tiny so the dock never looks restless. */
.game-frame .power-dock>.power-title,
.game-frame .power-dock>.power-item{
  --dock-breathe-y:.20cqh;--dock-breathe-scale:1.022;
  animation:powerDockSoftBreath 3.45s ease-in-out infinite!important;
  transform-origin:50% 50%!important;will-change:transform;
}
.game-frame .power-dock>.power-title{animation-duration:3.85s!important;animation-delay:-1.10s!important;--dock-breathe-y:.17cqh;--dock-breathe-scale:1.018}
.game-frame .power-dock>.power-item:nth-child(2){animation-duration:3.18s!important;animation-delay:-.42s!important}
.game-frame .power-dock>.power-item:nth-child(3){animation-duration:3.72s!important;animation-delay:-2.08s!important;--dock-breathe-y:.24cqh;--dock-breathe-scale:1.025}
.game-frame .power-dock>.power-item:nth-child(4){animation-duration:3.34s!important;animation-delay:-1.53s!important;--dock-breathe-y:.18cqh;--dock-breathe-scale:1.021}
.game-frame .power-dock>.power-item:nth-child(5){animation-duration:4.02s!important;animation-delay:-2.72s!important;--dock-breathe-y:.23cqh;--dock-breathe-scale:1.024}
@keyframes powerDockSoftBreath{
  0%,100%{transform:translate3d(0,0,0) scale(1)}
  50%{transform:translate3d(0,calc(-1 * var(--dock-breathe-y)),0) scale(var(--dock-breathe-scale))}
}

/* 20-second / wrong-move guidance. Two board pieces pulse as a real swap hint;
   a board special, owned power or PUF Store gets the same visual language. */
.game-cell.game-hint-source,.game-cell.game-hint-target,.game-cell.game-hint-special{z-index:18!important;overflow:visible!important}
.game-cell.game-hint-source:after,.game-cell.game-hint-target:after,.game-cell.game-hint-special:after{
  content:"";position:absolute;z-index:18;left:50%;top:50%;width:82%;aspect-ratio:1;translate:-50% -50%;
  border:.15cqw solid rgba(255,255,255,.98);border-radius:32%;pointer-events:none;
  box-shadow:0 0 0 .12cqw rgba(223,111,168,.62),0 0 .8cqw rgba(255,255,255,.92),0 0 1.45cqw rgba(226,117,174,.72);
  animation:gameHintRing 1.02s ease-in-out infinite;
}
.game-cell.game-hint-target:after{animation-delay:.18s;border-style:dashed}
.game-cell.game-hint-special:after{width:90%;border-radius:50%;animation-duration:.86s}
.game-cell.game-hint-source .cell-art{animation:gameHintSource 1.08s ease-in-out infinite!important;filter:brightness(1.08) saturate(1.08) drop-shadow(0 0 .38cqw rgba(255,255,255,.82))!important}
.game-cell.game-hint-target .cell-art{animation:gameHintTarget 1.08s .18s ease-in-out infinite!important;filter:brightness(1.08) saturate(1.08) drop-shadow(0 0 .38cqw rgba(255,255,255,.82))!important}
.game-cell.game-hint-special .cell-art,.game-cell.game-hint-special .nuclear-motion-stack{animation:gameHintSpecial .92s ease-in-out infinite!important;filter:brightness(1.12) saturate(1.1) drop-shadow(0 0 .5cqw rgba(255,255,255,.9))!important}
@keyframes gameHintRing{0%,100%{scale:.9;opacity:.48}50%{scale:1.10;opacity:1}}
@keyframes gameHintSource{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(var(--hint-x,5%),var(--hint-y,0)) scale(1.075)}}
@keyframes gameHintTarget{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(var(--hint-x,-5%),var(--hint-y,0)) scale(1.075)}}
@keyframes gameHintSpecial{0%,100%{transform:scale(1)}50%{transform:scale(1.11)}}

.power-dock.game-hint-recovery{z-index:24!important}
.power-dock .game-hint-power,.power-dock .game-hint-store{position:relative!important;z-index:22!important;filter:brightness(1.04)}
.power-dock .game-hint-power:after,.power-dock .game-hint-store:after{
  content:"";position:absolute;z-index:0;left:50%;top:50%;width:76%;aspect-ratio:1;translate:-50% -50%;border-radius:50%;
  border:.16cqw solid rgba(255,255,255,.96);box-shadow:0 0 .55cqw rgba(255,255,255,.9),0 0 1.05cqw rgba(224,112,170,.8);
  pointer-events:none;animation:dockHintHalo 1.05s ease-in-out infinite;
}
.power-dock .game-hint-recommended:after{width:88%;border-width:.22cqw;animation-duration:.82s;box-shadow:0 0 .7cqw rgba(255,255,255,1),0 0 1.55cqw rgba(220,102,162,.92)}
.power-dock .game-hint-power>img,.power-dock .game-hint-store>img{filter:brightness(1.12) saturate(1.08) drop-shadow(0 0 .42cqw rgba(255,255,255,.9))!important}
@keyframes dockHintHalo{0%,100%{scale:.88;opacity:.48}50%{scale:1.12;opacity:1}}

/* Exact requested home adjustment from the latest approved positions. */
@media (orientation:landscape){
  .bubble-home-screen .home-bubble-story{left:calc(4.45cqw + 15px)!important;top:calc(21.05cqh + 20px)!important}
  .bubble-home-screen .home-bubble-help{left:calc(82.85cqw - 10px)!important}
}
@media(max-width:900px) and (orientation:portrait){
  .bubble-home-screen .home-bubble-story{left:calc(8.5cqw + 15px)!important;top:calc(19.5cqh + 20px)!important}
  .bubble-home-screen .home-bubble-help{left:calc(73cqw - 10px)!important}
}

@media (prefers-reduced-motion:reduce){
  .game-frame .power-dock>.power-title,.game-frame .power-dock>.power-item{animation:none!important}
  .game-cell.game-hint-source:after,.game-cell.game-hint-target:after,.game-cell.game-hint-special:after,
  .power-dock .game-hint-power:after,.power-dock .game-hint-store:after{animation:none!important}
}

/* ========================================================================== 
   ROUND 7 — direct UNUTMA, clean idle cat, purchase feedback, yarn choreography
   ========================================================================== */
/* The idle/knock cat must appear over the live game exactly as before. No blur,
   tint or glass layer is allowed for this passive reminder character. */
.idle-knock-overlay,
.idle-knock-overlay.show,
.idle-knock-overlay.leaving{
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.idle-knock-backdrop{display:none!important;opacity:0!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}

/* Buying a power keeps the store stable. Only the button that was purchased
   gives a tactile grow/shrink confirmation instead of re-rendering every card. */
.store-grid [data-buy].store-buy-pulse{
  animation:storeBuyPulse .72s cubic-bezier(.16,.88,.2,1) both!important;
  transform-origin:50% 50%;
}
@keyframes storeBuyPulse{
  0%{transform:scale(1);filter:brightness(1)}
  28%{transform:scale(1.12);filter:brightness(1.12) drop-shadow(0 .22cqh .28cqw rgba(220,116,154,.30))}
  54%{transform:scale(.965);filter:brightness(1.04)}
  78%{transform:scale(1.045);filter:brightness(1.08)}
  100%{transform:scale(1);filter:brightness(1)}
}

/* Yarn comes to the cat and stays visually in FRONT of it. The cat never
   shrinks during the meet or the roll; its tiny motion is only a confident bob. */
.cat-yarn-rescue-fx.yarn-meet-cat .yarn-rescue-cat{z-index:2!important;scale:1!important}
.cat-yarn-rescue-fx.yarn-meet-cat .yarn-rescue-ball{z-index:3!important}
.cat-yarn-rescue-fx.yarn-meet-cat .yarn-hug-heart{z-index:4!important}
@keyframes yarnRollCatGrip{
  from{translate:-50% -50%;rotate:-1deg;scale:1}
  to{translate:-50% calc(-50% - .14cqh);rotate:1deg;scale:1}
}

/* ========================================================================== 
   ROUND 9 — gameplay integrity, UNUTMA character, score flow, clean power UI
   ========================================================================== */
/* Home stats: record is intentionally removed in markup. Keep the remaining
   three rows in one calm, left-aligned block aligned optically with the logo. */
.bubble-home-screen .home-stats{
  left:4.85cqw!important;top:11.75cqh!important;width:15.8cqw!important;
  display:grid!important;grid-template-columns:max-content max-content!important;
  column-gap:.72cqw!important;row-gap:.48cqh!important;align-items:baseline!important;
  font-size:2.34cqh!important;line-height:.94!important;text-align:left!important;
}
.bubble-home-screen .home-stats>div{display:contents!important}
.bubble-home-screen .home-stats span,.bubble-home-screen .home-stats b{
  text-align:left!important;justify-self:start!important;white-space:nowrap!important;
}
@media(max-width:900px) and (orientation:portrait){
  .bubble-home-screen .home-stats{left:5cqw!important;top:14.2cqh!important;width:24cqw!important;font-size:1.92cqh!important;column-gap:1.25cqw!important}
}

/* Android-safe Turkish glyph fallback. Catpuf stays the visual face for every
   normal glyph; this local face is used only for Turkish characters missing in
   the custom font. */
@font-face{
  font-family:'CatpufTurkishGlyphs';
  src:local('Roboto Black'),local('Roboto Bold'),local('Noto Sans'),local('Arial');
  font-weight:700 900;
  unicode-range:U+00C7,U+00E7,U+00D6,U+00F6,U+00DC,U+00FC,U+011E,U+011F,U+0130,U+0131,U+015E,U+015F;
}
html[lang="tr"] .remember-panel,html[lang="tr"] .remember-panel button,
html[lang="tr"] .score-flow-card,html[lang="tr"] .result-submit-button{
  font-family:'CatpufTurkishGlyphs',Catpuf,Arial,sans-serif!important;
}
html[lang="tr"] .remember-message{text-transform:none!important}

/* 17-unutma reference: the new large Guide overlaps the stitched panel. */
.remember-card{width:69cqw!important;height:66cqh!important;left:50%!important;top:50%!important;translate:-50% -50%!important}
.remember-panel{
  left:17.2cqw!important;top:6.5cqh!important;width:51.8cqw!important;height:51.8cqh!important;
  background:url('../assets/window.png') center/100% 100% no-repeat!important;
  border:0!important;border-radius:0!important;box-shadow:none!important;
}
.remember-panel:before{display:none!important}
.remember-guide{
  left:-1.2cqw!important;bottom:0!important;width:25.8cqw!important;height:61.5cqh!important;
  object-fit:contain!important;object-position:center bottom!important;z-index:8!important;
}
.remember-panel h2{left:9.6cqw!important;top:4.4cqh!important;width:31cqw!important;font-size:6.35cqh!important;line-height:.95!important}
.remember-count{right:4.2cqw!important;top:5.6cqh!important;font-size:2.65cqh!important}
.remember-message-box{left:8.5cqw!important;top:18.8cqh!important;width:34.8cqw!important;height:20.2cqh!important}
.remember-message{font-size:4.18cqh!important;line-height:1.08!important;letter-spacing:-.012em!important}
.remember-ok{left:50%!important;bottom:3.7cqh!important;translate:-50% 0!important;width:20.4cqw!important;height:9.2cqh!important;font-size:4.15cqh!important}
@media(max-width:900px) and (orientation:portrait){
  .remember-card{width:92cqw!important;height:63cqh!important}
  .remember-panel{left:25cqw!important;width:67cqw!important}
  .remember-guide{left:-2cqw!important;width:34cqw!important}
  .remember-message-box{left:12cqw!important;width:44cqw!important}
  .remember-message{font-size:3.35cqh!important}
}



/* UNUTMA talking Guide — crisp hand-drawn motion. Frames never fade through
   semi-transparent states (which looked like a blinking light); instead the
   drawings switch at a natural stop-motion rhythm while the whole character has
   one slow GPU-only float/breath motion underneath. */
.remember-guide-loop{
  overflow:visible!important;
  contain:layout;isolation:isolate;
}
.remember-guide-motion{
  position:absolute;inset:0;transform-origin:50% 82%;
  animation:none;
  will-change:auto;
}
.remember-guide-loop.is-speaking .remember-guide-motion{
  animation:rememberGuideAlive 4.6s cubic-bezier(.45,.05,.55,.95) infinite;
  will-change:transform;
}
.remember-guide-frame{
  position:absolute;inset:0;width:100%;height:100%;display:block;
  object-fit:contain;object-position:center bottom;
  opacity:0;visibility:hidden;pointer-events:none;user-select:none;-webkit-user-drag:none;
  transition:opacity 58ms linear!important;backface-visibility:hidden;-webkit-backface-visibility:hidden;
}
.remember-guide-frame.is-active{z-index:2;opacity:1;visibility:visible}
.remember-guide-frame.is-leaving{z-index:1;opacity:0;visibility:visible}
@keyframes rememberGuideAlive{
  0%,100%{transform:translate3d(0,0,0) rotate(-.18deg) scale(1)}
  26%{transform:translate3d(.16cqw,-.52cqh,0) rotate(.34deg) scale(1.006)}
  54%{transform:translate3d(-.10cqw,-.18cqh,0) rotate(-.10deg) scale(1.002)}
  78%{transform:translate3d(.12cqw,-.42cqh,0) rotate(.26deg) scale(1.005)}
}
@media(prefers-reduced-motion:reduce){
  .remember-guide-motion{animation:none!important}
}

/* Tactile specials: prevent touch panning/sliding before JS pointerdown can
   detonate the bomb / nuclear / rocket in one intentional contact. */
.game-cell.kind-special{touch-action:none!important;-webkit-user-select:none!important;user-select:none!important}

/* Zero-count powers are visibly passive without disabling the store fallback. */
.game-frame .power-dock>.power-item.power-empty{
  animation:none!important;opacity:.48!important;filter:saturate(.42) grayscale(.38)!important;
}
.game-frame .power-dock>.power-item.power-empty>img{transform:none!important;filter:brightness(.9)!important}
.game-frame .power-dock>.power-item.power-empty:hover>img{transform:none!important}
.game-frame .power-dock>.power-item.power-empty b{opacity:.72!important}

/* Pickaxe + colour gun share one cheap, cell-sized target. No pulses, rotations
   or cursor-follow interpolation: the box simply snaps to the current cell. */
.power-cursor-reticle,.power-cursor-reticle.reticle-simple{
  position:absolute!important;z-index:80!important;translate:-50% -50%!important;
  border:.16cqw solid rgba(255,255,255,.98)!important;border-radius:18%!important;
  background:rgba(255,244,248,.10)!important;
  box-shadow:0 0 0 .10cqw rgba(224,116,170,.72),0 0 .48cqw rgba(255,255,255,.72)!important;
  animation:none!important;transition:none!important;transform:none!important;pointer-events:none!important;
}
.power-cursor-reticle:before,.power-cursor-reticle:after{display:none!important;animation:none!important}

/* Level Complete / Game Over: nickname no longer lives on this screen. The
   only score action sits under the cat exactly like 12-nextlevel-01/11-gameover. */
.game-modal :is(.score-submit,.submit-status){display:none!important}
.result-submit-button{
  position:absolute!important;z-index:22!important;left:7.3cqw!important;top:75.3cqh!important;
  width:20.6cqw!important;height:9.7cqh!important;border:0!important;padding:0 1.2cqw!important;
  background:url('../assets/but2.png') center/100% 100% no-repeat!important;
  color:#2d2d2d!important;font-family:Catpuf,sans-serif!important;font-size:4.0cqh!important;font-weight:900!important;
  text-transform:uppercase!important;cursor:pointer!important;transition:transform .14s ease,filter .14s ease!important;
}
.result-submit-button:hover{transform:scale(1.035)!important;filter:brightness(1.035)!important}
.game-modal.game-over-ref .result-submit-button{left:7.3cqw!important;top:75.3cqh!important}

/* Cinematic three-step score submission flow. */
.score-flow-wrap{
  position:absolute;inset:0;z-index:170;display:grid;place-items:center;opacity:0;
  background:rgba(255,229,239,.18);backdrop-filter:blur(8px) saturate(.92);-webkit-backdrop-filter:blur(8px) saturate(.92);
  transition:opacity .34s ease;
}
.score-flow-wrap.show{opacity:1}.score-flow-wrap.closing{opacity:0;pointer-events:none}
.score-flow-card{
  position:relative;width:81.8cqw;height:68.6cqh;transform:translateY(2.2cqh) scale(.965);filter:blur(.35cqw);
  transition:transform .48s cubic-bezier(.14,.88,.16,1),filter .42s ease;isolation:isolate;
}
.score-flow-wrap.show .score-flow-card{transform:translateY(0) scale(1);filter:blur(0)}
.score-flow-window{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:0;pointer-events:none}
.score-flow-close{position:absolute;z-index:5;right:-1.4cqw;top:-4.2cqh;width:6.0cqw;height:10.6cqh;border:0;background:none;padding:0;cursor:pointer}
.score-flow-close img{width:100%;height:100%;object-fit:contain}
.score-flow-trophy{position:absolute;z-index:3;left:5.2cqw;top:10.2cqh;width:32.5cqw;height:49cqh;display:grid;place-items:center}
.score-flow-trophy>img{max-width:100%;max-height:100%;object-fit:contain;filter:drop-shadow(0 .32cqh .2cqw rgba(116,67,69,.08))}
.score-flow-trophy>span{display:none}
.score-flow-trophy>img[style*="display: none"]+span{display:block}
.score-flow-copy{position:absolute;z-index:4;left:43.3cqw;top:7.2cqh;width:32.2cqw;height:55.2cqh;text-align:center;color:#2e2e2e}
.score-flow-copy h2{margin:0 0 2.1cqh;font-size:6.6cqh;line-height:.93;text-transform:uppercase}
.score-flow-form{display:flex;flex-direction:column;gap:1.15cqh;align-items:stretch}
.score-flow-form label{display:block;text-align:left}
.score-flow-form label span{display:block;margin:0 0 .45cqh .65cqw;font-size:2.55cqh;line-height:1;font-weight:900;text-transform:uppercase}
.score-flow-form input{
  width:100%;height:6.45cqh;box-sizing:border-box;border:0;border-radius:3.25cqh;background:rgba(255,252,251,.88);
  padding:.5cqh 1.3cqw;color:#2d2d2d;font:900 2.55cqh/1 Catpuf,sans-serif;outline:none;box-shadow:inset 0 0 0 .08cqw rgba(255,255,255,.65);
  user-select:text;-webkit-user-select:text;touch-action:manipulation;
}
.score-flow-form input:focus{box-shadow:inset 0 0 0 .16cqw rgba(222,121,166,.42),0 0 .45cqw rgba(255,255,255,.62)}
.score-flow-status{min-height:2.6cqh;margin:.2cqh 0 -.2cqh;color:#a74c6c;font-size:1.9cqh;line-height:1.1;font-weight:900}
.score-flow-submit{
  align-self:center;margin-top:.15cqh;width:29.2cqw;height:10.4cqh;border:0;background:url('../assets/but2.png') center/100% 100% no-repeat;
  font:900 4.15cqh/1 Catpuf,sans-serif;color:#2d2d2d;text-transform:uppercase;cursor:pointer;
}
.score-flow-submit.sending{opacity:.66;pointer-events:none;animation:scoreSending 1s ease-in-out infinite}
@keyframes scoreSending{0%,100%{transform:scale(.985)}50%{transform:scale(1.02)}}
.score-flow-thanks{position:absolute;left:0;top:19cqh;width:100%;display:grid;gap:2.2cqh;place-items:center}
.score-flow-thanks h3{margin:0;font-size:6.35cqh;line-height:1;text-transform:uppercase}
.score-flow-thanks p{margin:0;max-width:31cqw;font-size:5.15cqh;line-height:1.05;font-weight:900;text-transform:uppercase}
.score-flow-success .score-flow-copy{top:6.5cqh}
.score-flow-success-enter .score-flow-thanks{animation:scoreThanksIn .62s cubic-bezier(.16,.9,.18,1) both}
@keyframes scoreThanksIn{0%{opacity:0;transform:translateY(2cqh) scale(.94);filter:blur(.2cqw)}100%{opacity:1;transform:none;filter:none}}
html[lang="ja"] .score-flow-copy h2{font-size:5.4cqh}html[lang="ja"] .score-flow-thanks p{font-size:4.2cqh}
html[lang="fr"] .score-flow-copy h2,html[lang="it"] .score-flow-copy h2,html[lang="es"] .score-flow-copy h2{font-size:5.3cqh}

/* Frame swapping is deliberately instantaneous; the parent bubble keeps its
   existing float/breathe motion while the character expression changes. */
img.menu-cat-icon[data-src],img.menu-cat-icon{image-rendering:auto}
html[lang="tr"] .score-flow-form input{font-family:'CatpufTurkishGlyphs',Catpuf,Arial,sans-serif!important}


/* ==========================================================================
   ROUND 10 — centered UNUTMA, Guide help, OhnoSoftie authority, result align
   ========================================================================== */
/* OhnoSoftie-Bold.ttf is the single visual face for every non-Japanese locale. */
html:not([lang="ja"]) body,
html:not([lang="ja"]) button,
html:not([lang="ja"]) input,
html:not([lang="ja"]) textarea,
html:not([lang="ja"]) select,
html:not([lang="ja"]) .remember-panel,
html:not([lang="ja"]) .remember-panel *,
html:not([lang="ja"]) .score-flow-card,
html:not([lang="ja"]) .score-flow-card *,
html:not([lang="ja"]) .result-submit-button{
  font-family:Catpuf,sans-serif!important;
}
html[lang="ja"] body,html[lang="ja"] button,html[lang="ja"] input,html[lang="ja"] textarea,html[lang="ja"] select{
  font-family:"Hiragino Kaku Gothic ProN","Yu Gothic","YuGothic",Meiryo,sans-serif!important;
}
html[lang="tr"] .remember-message{font-family:Catpuf,sans-serif!important;text-transform:uppercase!important}
html[lang="tr"] .score-flow-form input{font-family:Catpuf,sans-serif!important}

/* Fix the double-centering regression: translate property + transform translate
   were both active, pushing the UNUTMA card into the top-left. */
.remember-wrap{position:absolute!important;inset:0!important;display:block!important;overflow:visible!important}
.remember-card{
  left:50%!important;top:50%!important;translate:none!important;
  transform:translate(-50%,-50%) scale(.92) rotateX(6deg)!important;
  transform-origin:50% 50%!important;
}
.remember-wrap.show .remember-card{transform:translate(-50%,-50%) scale(1) rotateX(0)!important}
.remember-wrap.closing .remember-card{transform:translate(-50%,-54%) scale(.90) rotateX(-4deg)!important}

/* Help: Guide is a friendly stress-relief guide, present in every level. */
.help-guide-row{min-height:31cqh!important;margin:1.2cqh 0 2cqh!important}
.help-guide-row>img{height:28cqh!important;object-fit:contain!important;filter:drop-shadow(0 .28cqh .28cqw rgba(71,53,78,.12))}
.help-guide-row h3{font-size:3.15cqh!important}
.help-guide-row p{font-size:1.52cqh!important;line-height:1.24!important}
@media(max-width:900px) and (orientation:portrait){
  .help-guide-row{min-height:28cqh!important}
  .help-guide-row>img{height:22cqh!important}
  .help-guide-row h3{font-size:2.65cqh!important}
  .help-guide-row p{font-size:1.34cqh!important}
}

/* 12-nextlevel-01: NEXT LEVEL and MAIN MENU share the score's center axis. */
.game-modal.next-level-ref:not(.baby-result-modal) .modal-actions{left:46.7cqw!important;top:59.45cqh!important}

/* NS6 is the supplied score artwork. Preserve the complete silhouette. */
.score-flow-trophy>img{width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:contain!important}


/* ========================================================================== 
   POWER POINTER + RED NUCLEAR + HELP ICON — 2026-08-16 precision pass
   ========================================================================== */
/* Power tools must never replace the player's normal mouse/finger feedback.
   Target validity is checked on tap/click in JS; no cursor, reticle, dashed cell
   target or hover filter is drawn while a power is armed. */
.board.power-targeting .game-cell,
.board.power-targeting .game-cell.power-targetable,
.board.power-targeting .game-cell.power-target-blocked{
  cursor:inherit!important;
}
.board.power-targeting .game-cell.power-targetable:before,
.board.power-targeting .game-cell.power-target-blocked:before{
  content:none!important;display:none!important;animation:none!important;
}
.board.power-targeting .game-cell.power-targetable .cell-art,
.board.power-targeting .game-cell.power-target-blocked .cell-art{
  filter:inherit!important;
}
.power-cursor-reticle{display:none!important;animation:none!important;pointer-events:none!important}

/* Red nuclear owns the complete game canvas. The effect still lives in the board
   FX layer for timing/cleanup, but it is centered to the full game frame in JS and
   deliberately overscans the frame so no edge of the supplied blast art is cut by
   the 13x7 board footprint. */
.board-wrap,.fx-layer{overflow:visible!important}
.explosion-fx.nuclear.red-nuclear{z-index:260!important;overflow:visible!important}
.explosion-fx.nuclear.red-nuclear .explosion-cloud,
.explosion-fx.red-nuclear .explosion-cloud{
  width:118cqw!important;
  height:118cqh!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:cover!important;
  object-position:center!important;
}
.explosion-fx.nuclear.red-nuclear .explosion-cloud.cloud-2,
.explosion-fx.red-nuclear .explosion-cloud.cloud-2{
  width:124cqw!important;
  height:124cqh!important;
}
.explosion-fx.nuclear.red-nuclear .shock-ring,
.explosion-fx.red-nuclear .shock-ring{width:39cqw!important}

/* Help: make the red nuclear's central Nuclear-2 symbol read at the same visual
   weight as the yellow nuclear example. */
.help-red-nuclear-symbol{
  width:61%!important;
  height:14.8cqh!important;
  max-width:none!important;
  object-fit:contain!important;
}
@media(max-width:900px) and (orientation:portrait){
  .help-red-nuclear-symbol{width:63%!important;height:11.7cqh!important}
}

/* ========================================================================== 
   MOBILE / iOS SAFARI PERFORMANCE MODE — 2026-08-16
   Preserve CATPUF's look while removing the paint/compositor costs that hurt
   older iPhones. The class is applied only to coarse-touch phone/tablet devices.
   ========================================================================== */
html.mobile-perf,
html.mobile-perf body{
  overscroll-behavior:none;
  -webkit-tap-highlight-color:transparent;
}
/* A filter on the complete game frame forces Safari to repaint the whole game
   through an off-screen surface every time a pillow moves. Use a static shadow
   instead, and do not keep the entire 1837x1009 frame permanently promoted. */
html.mobile-perf .mobile-game-perf .game-frame{
  filter:none!important;
  box-shadow:0 .7cqh 1.25cqh rgba(112,70,101,.11)!important;
  transform:none!important;
}
html.mobile-perf .mobile-game-perf .game-frame.intro-finished .game-floor{
  will-change:auto!important;
}
html.mobile-perf .mobile-game-perf .board{
  transform:translateZ(0)!important;
  isolation:isolate;
}
html.mobile-perf .mobile-game-perf .cell-art{
  will-change:auto!important;
}
html.mobile-perf .mobile-game-perf .game-cell.dragging .cell-art,
html.mobile-perf .mobile-game-perf .game-cell.swap-preview .cell-art,
html.mobile-perf .mobile-game-perf .game-cell.cat-rescue .cell-art,
html.mobile-perf .mobile-game-perf .rocket-flight-art{
  will-change:transform,opacity!important;
}
/* Keep idle life, but make it transform-only. Continuously animated blur,
   drop-shadow and brightness are disproportionately expensive in WebKit. */
html.mobile-perf .mobile-game-perf .game-cell.kind-ice .ice-shell,
html.mobile-perf .mobile-game-perf .game-cell.kind-special.special-bomb:not(.game-hint-source):not(.game-hint-target):not(.game-hint-special) .cell-art,
html.mobile-perf .mobile-game-perf .game-cell.kind-special.special-rocket:not(.game-hint-source):not(.game-hint-target):not(.game-hint-special) .cell-art,
html.mobile-perf .mobile-game-perf .rocket-idle-flame,
html.mobile-perf .mobile-game-perf .rocket-ghost,
html.mobile-perf .mobile-game-perf .feature-skeleton-spit,
html.mobile-perf .mobile-game-perf .rescue-kiss-heart,
html.mobile-perf .mobile-game-perf .rescue-kiss-heart-piece{
  filter:none!important;
}
/* Explosion art still scales/fades exactly the same; only the per-frame image
   filters are removed. This is especially important for the full-screen red nuke. */
html.mobile-perf .mobile-game-perf .explosion-fx .explosion-cloud,
html.mobile-perf .mobile-game-perf .rocket-pass-afterimage,
html.mobile-perf .mobile-game-perf .material-shard,
html.mobile-perf .mobile-game-perf .material-chip{
  filter:none!important;
}
/* Hints remain obvious through their stitched rings, without two large blurred
   glow layers being repainted on every frame. */
html.mobile-perf .mobile-game-perf .game-cell.game-hint-source:after,
html.mobile-perf .mobile-game-perf .game-cell.game-hint-target:after,
html.mobile-perf .mobile-game-perf .game-cell.game-hint-special:after{
  box-shadow:0 0 0 .12cqw rgba(223,111,168,.68)!important;
}
html.mobile-perf .mobile-game-perf .game-cell.game-hint-source .cell-art,
html.mobile-perf .mobile-game-perf .game-cell.game-hint-target .cell-art,
html.mobile-perf .mobile-game-perf .game-cell.game-hint-special .cell-art,
html.mobile-perf .mobile-game-perf .game-cell.game-hint-special .nuclear-motion-stack,
html.mobile-perf .mobile-game-perf .power-dock .game-hint-power>img,
html.mobile-perf .mobile-game-perf .power-dock .game-hint-store>img{
  filter:none!important;
}
html.mobile-perf .mobile-game-perf .power-dock .game-hint-power:after,
html.mobile-perf .mobile-game-perf .power-dock .game-hint-store:after{
  box-shadow:0 0 0 .13cqw rgba(224,112,170,.74)!important;
}
/* Armed powers keep their float/rings; remove only glow rasterization. */
html.mobile-perf .mobile-game-perf .power-item.power-armed img{filter:none!important}
html.mobile-perf .mobile-game-perf .power-item.power-armed:before{
  box-shadow:0 0 0 .12cqw rgba(238,130,190,.72),inset 0 0 0 .10cqw rgba(255,255,255,.55)!important;
}
html.mobile-perf .mobile-game-perf .power-item.power-armed:after{box-shadow:none!important}
/* Touch Safari can leave :hover latched after a tap. Do not create a second
   transform/filter state on top of the normal pressed/armed state. */
html.mobile-perf .mobile-game-perf .power-item:hover img,
html.mobile-perf .mobile-game-perf .game-exit:hover{
  filter:none!important;
}
/* Full-screen overlays may still blur when explicitly opened; while playing,
   keep the live board free from accidental backdrop filter surfaces. */
html.mobile-perf .mobile-game-perf .game-bubble-layer,
html.mobile-perf .mobile-game-perf .board-wrap,
html.mobile-perf .mobile-game-perf .fx-layer{
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}

/* iPhone GPU-spike guard: preserve the hero motion but remove duplicate/raster
   work from the few transient effects that can otherwise exceed one frame. */
html.mobile-perf .mobile-game-perf .rocket-flight-flame,
html.mobile-perf .mobile-game-perf .yarn-board-roll-fx,
html.mobile-perf .mobile-game-perf .cat-yarn-rescue-fx,
html.mobile-perf .mobile-game-perf .floating-callout-art,
html.mobile-perf .mobile-game-perf .game-cell.feature-special-crushed .cell-art,
html.mobile-perf .mobile-game-perf .hud-moves.low-moves b{
  filter:none!important;
}
html.mobile-perf .mobile-game-perf .rocket-idle-flame:before,
html.mobile-perf .mobile-game-perf .rocket-idle-flame:after,
html.mobile-perf .mobile-game-perf .game-cell.kind-special.special-rocket .rocket-ready-pixels{
  box-shadow:none!important;
}
/* The red nuke still fills the complete screen. One full-screen cloud is visually
   enough on iPhone; compositing a second 124cqw layer is a large memory spike. */
html.mobile-perf .mobile-game-perf .explosion-fx.nuclear.red-nuclear .cloud-2,
html.mobile-perf .mobile-game-perf .explosion-fx.red-nuclear .cloud-2{
  display:none!important;
}

/* === RED NUCLEAR TOPMOST GAME-FRAME PORTAL ===
   Red nuclear must visually own the entire gameplay moment. Keeping it as a
   sibling of the board/HUD/power dock avoids the board's contain/stacking context,
   so the blast art renders above score, moves, cats, powers and board content. */
.game-hero-fx-layer{
  position:absolute;
  z-index:900;
  inset:0;
  pointer-events:none;
  overflow:hidden;
  isolation:isolate;
}
.game-hero-fx-layer .explosion-fx{
  z-index:1!important;
}
.game-hero-fx-layer .explosion-fx.nuclear.red-nuclear,
.game-hero-fx-layer .explosion-fx.red-nuclear{
  z-index:2!important;
}
.game-hero-fx-layer .explosion-fx.nuclear.red-nuclear .explosion-cloud,
.game-hero-fx-layer .explosion-fx.red-nuclear .explosion-cloud{
  width:122cqw!important;
  height:122cqh!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:cover!important;
  object-position:center!important;
}
.game-hero-fx-layer .explosion-fx.nuclear.red-nuclear .shock-ring,
.game-hero-fx-layer .explosion-fx.red-nuclear .shock-ring{
  width:44cqw!important;
}
/* iPhone keeps one hero cloud for performance, but that cloud still covers the
   complete frame and remains above every gameplay UI element. */
html.mobile-perf .mobile-game-perf .game-hero-fx-layer .explosion-fx.nuclear.red-nuclear .cloud-2,
html.mobile-perf .mobile-game-perf .game-hero-fx-layer .explosion-fx.red-nuclear .cloud-2{
  display:none!important;
}

/* ========================================================================== 
   LAST 5 MOVES — cinematic warning + PUF bubble swap integrity
   ========================================================================== */
.last-five-wrap{
  position:absolute;inset:0;z-index:9200;display:grid;place-items:center;
  pointer-events:auto;overflow:hidden;isolation:isolate;
  opacity:0;transition:opacity .28s ease;
}
.last-five-wrap.show{opacity:1}
.last-five-wrap.closing{opacity:0;pointer-events:none;transition:opacity .30s ease}
.last-five-veil{
  position:absolute;inset:0;z-index:0;
  background:rgba(111,75,113,.075);
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
}
/* Use CATPUF's standard stitched window artwork here too. Keeping one visual
   language for every overlay makes the warning feel like part of the game,
   rather than a separate custom popup. */
.last-five-card{
  position:relative;z-index:2;width:82.2%;height:69.5%;min-height:0;
  border:0;border-radius:0;box-shadow:none;
  background:url('../assets/window.png') center/100% 100% no-repeat;
  transform:translateY(4.6cqh) scale(.9);opacity:0;
  transition:transform .56s cubic-bezier(.14,.88,.18,1.08),opacity .34s ease;
  overflow:visible;
}
.last-five-card:before{display:none!important}
.last-five-wrap.show .last-five-card{transform:translateY(0) scale(1);opacity:1}
.last-five-wrap.closing .last-five-card{transform:translateY(-3.8cqh) scale(.92);opacity:0;transition-duration:.3s}
.last-five-close{
  position:absolute;right:-1.7%;top:-6.2%;z-index:12;width:8.4%;height:auto;
  min-width:44px;min-height:44px;border:0;background:none;box-shadow:none;
  cursor:pointer;display:block;padding:0;line-height:0;
  -webkit-tap-highlight-color:transparent;
}
.last-five-close img{
  display:block;width:100%;height:auto;object-fit:contain;
  transition:transform .2s cubic-bezier(.18,.82,.2,1),filter .2s ease;
  transform-origin:50% 50%;
}
.last-five-close:hover img,.last-five-close:focus-visible img{transform:scale(1.105) rotate(2deg);filter:brightness(1.045)}
.last-five-close:active img{transform:scale(.96)}
.last-five-art{position:absolute;left:2.2%;top:3.5%;width:51%;height:92%;pointer-events:none}
.last-five-number{
  position:absolute;z-index:1;left:50%;top:22%;width:47%;height:64%;object-fit:contain;
  filter:drop-shadow(0 .4cqh .35cqw rgba(82,124,89,.12));
  animation:lastFiveNumberFloat 2.8s ease-in-out infinite alternate;
}
.last-five-cat{
  position:absolute;z-index:3;left:2%;bottom:2.5%;width:68%;height:93%;object-fit:contain;object-position:left bottom;
  filter:drop-shadow(0 .55cqh .42cqw rgba(128,92,72,.11));
  animation:lastFiveCatFloat 3.15s ease-in-out infinite alternate;
}
.last-five-copy{
  position:absolute;right:6.1%;top:22%;width:38.5%;height:61%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  color:#2f2d2d;font-family:Catpuf,Arial,sans-serif;
}
.last-five-copy h2{margin:0 0 1.3cqh;font-size:5.7cqh;line-height:.95;letter-spacing:.01em;font-weight:700;color:#171717}
.last-five-copy p{margin:0 0 4.8cqh;font-size:3.15cqh;line-height:1.05;font-weight:700;color:#171717}
.last-five-ok{
  width:84%;height:10.8cqh;border-radius:5.6cqh;border:.36cqh solid #95b9ad;
  background:linear-gradient(180deg,#f8cbd6,#f3aebf);box-shadow:inset 0 .22cqh .24cqh rgba(255,255,255,.8),0 .34cqh 0 #769f92,0 .62cqh 1cqw rgba(78,94,89,.14);
  color:#333;font-family:Catpuf,Arial,sans-serif;font-size:3.3cqh;font-weight:700;cursor:pointer;
  transition:transform .13s ease,filter .13s ease;
}
.last-five-ok:active{transform:translateY(.18cqh) scale(.985);filter:brightness(.98)}
.game-frame.last-five-paused .board,.game-frame.last-five-paused .power-dock,.game-frame.last-five-paused .game-hud{pointer-events:none!important}
@keyframes lastFiveCatFloat{0%{transform:translate3d(0,.4cqh,0) rotate(-.35deg)}100%{transform:translate3d(0,-.72cqh,0) rotate(.5deg)}}
@keyframes lastFiveNumberFloat{0%{transform:translate3d(0,-.18cqh,0) rotate(.65deg) scale(.99)}100%{transform:translate3d(0,.62cqh,0) rotate(-.65deg) scale(1.02)}}

/* A bubbled pillow and its bubble must cross the neighbour as one front-layer
   object during drag/swap. The generic has-puf-bubble z-index used to pin the
   parent below the preview cell, making the bubble look as if it slipped under. */
.game-cell.kind-pillow.has-puf-bubble.drag-source,
.game-cell.kind-pillow.has-puf-bubble.dragging{z-index:42!important}
.game-cell.kind-pillow.has-puf-bubble.swap-preview{z-index:41!important}
.game-cell.kind-pillow.has-puf-bubble .cell-art{z-index:2!important}
.game-cell.kind-pillow.has-puf-bubble .pillow-bubble-art{z-index:8!important}

@media(max-width:900px) and (orientation:landscape){
  .last-five-card{width:86%;height:73%}
  .last-five-copy{right:5.2%;width:39.5%}
  .last-five-copy h2{font-size:5.35cqh}
  .last-five-copy p{font-size:2.85cqh;margin-bottom:3.8cqh}
  .last-five-ok{height:10.2cqh}
}
@media(max-width:760px) and (orientation:portrait){
  .last-five-card{width:91%;height:68%}
  .last-five-art{left:0;top:8%;width:49%;height:84%}
  .last-five-copy{right:3.5%;top:20%;width:46%;height:62%}
  .last-five-copy h2{font-size:4.1cqh}
  .last-five-copy p{font-size:2.35cqh;margin-bottom:3.2cqh}
  .last-five-ok{width:90%;height:8.6cqh;font-size:2.7cqh}
  .last-five-close{right:-2.1%;top:-5.2%;width:9.5%;height:auto}
}
@media(prefers-reduced-motion:reduce){
  .last-five-cat,.last-five-number{animation:none!important}
  .last-five-card,.last-five-wrap{transition-duration:.01ms!important}
}

/* === CATPUF CHICKEN + EGG OBJECT ===
   The chicken is a fixed over-cell character. Eggs are gravity objects, but both
   always paint above ordinary board pieces. Creature art is compositor-friendly:
   no blur/filter morphing is used during crack transitions. */
.game-cell.kind-chicken,.game-cell.kind-egg{cursor:default!important;overflow:visible!important;z-index:28!important}
.game-cell.kind-chicken{z-index:32!important}
.chicken-motion-stack{
  position:absolute;inset:0;z-index:38;display:grid;place-items:center;pointer-events:none;overflow:visible;
  transform-origin:50% 72%;animation:chickenIdleFloat 2.9s ease-in-out infinite;
}
.chicken-motion-stack>.cell-art,.chicken-alt-art{
  position:absolute;left:0;right:0;top:0;bottom:0;margin:auto;width:6.42cqw;height:11.65cqh;
  max-width:none!important;max-height:none!important;object-fit:contain;transform-origin:50% 72%;
  backface-visibility:hidden;-webkit-backface-visibility:hidden;
}
.chicken-motion-stack>.chicken-base-art{z-index:2;opacity:1;transition:none}
.chicken-alt-art{z-index:3;opacity:0;transform:translate3d(0,.18cqh,0) scale(.965) rotate(-1.2deg);transition:opacity .085s ease}
.chicken-motion-stack.chicken-alt-active>.chicken-base-art{opacity:1;animation:chickenAltBeat .5s cubic-bezier(.18,.84,.2,1) both}
.chicken-alt-art.chicken-alt-live{opacity:1;animation:chickenAltBeat .5s cubic-bezier(.18,.84,.2,1) both}
.game-cell.chicken-bop .chicken-motion-stack{animation:chickenTapBop .5s cubic-bezier(.16,.88,.2,1)!important}
.game-cell.chicken-bursting .chicken-motion-stack{animation:none!important;opacity:0!important;transition:opacity .075s linear!important}
.game-cell.chicken-bursting .chicken-alt-art{opacity:0!important;visibility:hidden!important}
@keyframes chickenIdleFloat{
  0%,100%{transform:translate3d(0,.07cqh,0) rotate(-.28deg) scale(1)}
  50%{transform:translate3d(0,-.20cqh,0) rotate(.32deg) scale(1.014,.991)}
}
@keyframes chickenAltBeat{
  0%{transform:translate3d(0,.18cqh,0) scale(.965) rotate(-1.2deg)}
  28%{transform:translate3d(0,-.20cqh,0) scale(1.035,.98) rotate(.85deg)}
  68%{transform:translate3d(0,-.05cqh,0) scale(.995,1.02) rotate(-.35deg)}
  100%{transform:translate3d(0,0,0) scale(1) rotate(0deg)}
}
@keyframes chickenTapBop{
  0%,100%{transform:translate3d(0,0,0) rotate(0) scale(1)}
  34%{transform:translate3d(0,-.56cqh,0) rotate(-4deg) scale(1.055,.965)}
  64%{transform:translate3d(0,.12cqh,0) rotate(3deg) scale(.985,1.035)}
}
/* The YA pillow-feather art is reused for the chicken burst so the hit belongs to
   the same visual language as pillow pops, without the costly blur pass. */
.pillow-pop-burst.chicken-feather-burst{
  z-index:92!important;width:10.35cqw!important;height:18.8cqh!important;filter:none!important;
  animation:chickenFeatherPop .64s cubic-bezier(.12,.72,.17,1) forwards!important;
}
@keyframes chickenFeatherPop{
  0%{opacity:0;scale:.18;rotate:var(--burst-rot,0deg)}
  14%{opacity:1;scale:.52}
  52%{opacity:1;scale:1.08}
  100%{opacity:0;scale:1.38;rotate:var(--burst-rot,0deg)}
}

.game-cell.kind-egg{z-index:30!important}
.game-cell.kind-egg .cell-art{
  z-index:38!important;width:5.92cqw!important;height:10.76cqh!important;max-width:none!important;max-height:none!important;
  object-fit:contain;transform-origin:50% 78%!important;backface-visibility:hidden;-webkit-backface-visibility:hidden;
  animation:eggBoardBreath 2.35s cubic-bezier(.42,0,.22,1) infinite!important;
}
/* Eggs breathe in place: no vertical drift, so their grid coordinate always reads
   as fixed even though the shell feels alive. */
@keyframes eggBoardBreath{
  0%,100%{transform:translate3d(0,0,0) scale(1,1) rotate(-.18deg)}
  46%{transform:translate3d(0,0,0) scale(1.018,.982) rotate(.18deg)}
  72%{transform:translate3d(0,0,0) scale(.996,1.012) rotate(0deg)}
}
.game-cell.kind-egg.egg-crack-live .cell-art{
  animation:eggCrackSettle .45s cubic-bezier(.16,.86,.18,1) both!important;
}
.game-cell.kind-egg.egg-tap .cell-art{animation:eggTapWobble .4s cubic-bezier(.16,.84,.18,1) both!important}
@keyframes eggCrackSettle{
  0%{transform:translate3d(0,0,0) scale(.965,1.035) rotate(-1.8deg)}
  32%{transform:translate3d(0,0,0) scale(1.072,.934) rotate(1.25deg)}
  66%{transform:translate3d(0,0,0) scale(.986,1.025) rotate(-.45deg)}
  100%{transform:translate3d(0,0,0) scale(1,1) rotate(0deg)}
}
@keyframes eggTapWobble{0%,100%{transform:rotate(0) scale(1)}30%{transform:rotate(-4.5deg) scale(1.025)}62%{transform:rotate(3.4deg) scale(.995,1.02)}}

.egg-born-fx,.egg-reward-fx{
  position:absolute;z-index:74;transform:translate(-50%,-50%);pointer-events:none;overflow:visible;contain:layout style;
}
.egg-born-fx>img,.egg-reward-fx img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.egg-born-fx>img{animation:eggBornReveal .66s cubic-bezier(.14,.88,.2,1) both;filter:none!important}
@keyframes eggBornReveal{
  0%{opacity:0;transform:translate3d(0,.24cqh,0) scale(.72,.84) rotate(-4deg)}
  30%{opacity:1;transform:translate3d(0,-.10cqh,0) scale(1.13,.96) rotate(1.8deg)}
  62%{transform:translate3d(0,0,0) scale(1.055,1.085) rotate(-.55deg)}
  100%{opacity:1;transform:translate3d(0,0,0) scale(1.085) rotate(0)}
}

.egg-reward-fx{z-index:82}
.egg-reward-shell{position:absolute;inset:0;z-index:4;pointer-events:none}
.egg-reward-piece{z-index:4;will-change:transform,opacity}
.egg-reward-nuclear{z-index:2;opacity:0;animation:eggRewardReveal .68s .10s cubic-bezier(.12,.9,.18,1.08) both;filter:none!important}
.egg-reward-spinner{z-index:3;opacity:0;animation:eggRewardSpinner .82s .14s cubic-bezier(.16,.84,.2,1) both}
@keyframes eggRewardReveal{0%{opacity:0;transform:scale(.38) rotate(-8deg)}42%{opacity:1;transform:scale(1.14,.9) rotate(2.5deg)}70%{transform:scale(.96,1.04) rotate(-1deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@keyframes eggRewardSpinner{0%{opacity:0;transform:scale(.46) rotate(-70deg)}40%{opacity:1;transform:scale(1.07) rotate(30deg)}100%{opacity:1;transform:scale(1) rotate(190deg)}}
.game-cell.egg-reward-born .nuclear-motion-stack{animation:eggRewardCellIn .58s cubic-bezier(.14,.9,.18,1) both!important}
@keyframes eggRewardCellIn{0%{opacity:.15;transform:scale(.62) rotate(-3deg)}55%{opacity:1;transform:scale(1.08,.94) rotate(1.5deg)}100%{opacity:1;transform:scale(1) rotate(0)}}

html.mobile-perf .mobile-game-perf .chicken-motion-stack{animation-duration:3.55s;will-change:auto!important}
html.mobile-perf .mobile-game-perf .game-cell.kind-egg .cell-art{animation-duration:3.05s;will-change:auto!important}
html.mobile-perf .mobile-game-perf .game-cell.kind-chicken:not(.chicken-bop) .chicken-motion-stack>.cell-art{will-change:auto!important}
@media(prefers-reduced-motion:reduce){
  .chicken-motion-stack,.chicken-alt-art,.game-cell.kind-egg .cell-art{animation-duration:.01ms!important}
  .egg-born-fx>img,.egg-reward-nuclear,.egg-reward-spinner{animation-duration:.01ms!important}
}

/* ========================================================================== 
   CHICKEN HOME PORTAL + 20-TAVUK CINEMATIC — 2026-08-17
   One small home bubble opens a clean authored panel. All motion uses transforms
   only, so the new page stays smooth on iPhone Safari as well as desktop.
   ========================================================================== */

/* The board chicken gets one final optical size lift. It may overlap the square
   slightly, but its fixed-cell gameplay footprint and hit logic do not change. */
.chicken-motion-stack{
  /* Optical centering: the supplied chicken drawing carries a little more visual
     mass on its right side. Shift the whole motion stack left a few pixels while
     preserving the exact gameplay cell center. */
  left:-.18cqw!important;right:.18cqw!important;
}
.chicken-motion-stack>.cell-art,.chicken-alt-art{
  width:6.72cqw!important;
  height:12.22cqh!important;
}

/* Bottom-right chicken portal from the supplied 03-homeNew reference. It is
   intentionally smaller than the main nine bubbles and carries no text label. */
@media (orientation:landscape){
  .bubble-home-screen .home-bubble-chicken{
    left:88.55cqw!important;
    top:75.75cqh!important;
    width:9.65cqw!important;
    height:18.8cqh!important;
    z-index:32!important;
    --bubble-drift-x:.15cqw;
    --bubble-drift-y:1.16cqh;
    --bubble-scale-lo:.986;
    --bubble-scale-hi:1.026;
  }
  .bubble-home-screen .home-bubble-chicken .home-chicken-icon{
    width:71%!important;
    height:72%!important;
    top:52%!important;
  }
  .bubble-home-screen .home-bubble-chicken:hover .bubble-visual,
  .bubble-home-screen .home-bubble-chicken:focus-visible .bubble-visual{
    scale:1.13!important;
  }
}
@media(max-width:900px) and (orientation:portrait){
  .bubble-home-screen .home-bubble-chicken{
    left:84.0cqw!important;
    top:82.0cqh!important;
    width:13.5cqw!important;
    height:16.5cqh!important;
    z-index:32!important;
  }
  .bubble-home-screen .home-bubble-chicken .home-chicken-icon{width:71%!important;height:72%!important;top:52%!important}
}

/* 20-tavuk is a real route/screen. HOME leaves completely; only CATPUF's
   living site ground remains behind the authored chicken card. */
.chicken-info-screen{
  z-index:1;
  isolation:isolate;
}
.chicken-info-screen::before{
  opacity:.72;
}
.chicken-info-dismiss-surface{
  position:fixed;z-index:1;inset:0;width:100%;height:100%;border:0;background:transparent;cursor:pointer;
}
.chicken-info-canvas{z-index:2;pointer-events:none}
.chicken-info-card{
  position:absolute;z-index:4;left:50%;top:50%;width:min(81.72vw,145.28vh);aspect-ratio:1569/777;
  transform:translate(-50%,-50%);pointer-events:auto;overflow:visible;container-type:size;
  animation:chickenInfoCardSettle .72s cubic-bezier(.13,.86,.17,1) both;
  transition:opacity .38s ease,transform .52s cubic-bezier(.2,.72,.18,1);
}

.chicken-info-window{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:fill!important;z-index:0!important;pointer-events:none}
.chicken-info-close{
  right:-1.7%!important;top:-5.8%!important;width:7.1%!important;z-index:30!important;
}
.chicken-info-art{position:absolute;z-index:4;inset:0;pointer-events:none;overflow:visible}
.chicken-info-bubble{
  position:absolute;z-index:6;left:-2.9%;top:5.2%;width:43.0%;aspect-ratio:601/593;
  transform-origin:50% 55%;
}
.chicken-info-bubble>.bubble-visual{
  width:100%!important;animation:chickenInfoBubbleFloat 4.85s cubic-bezier(.42,0,.22,1) -1.15s infinite alternate!important;
  filter:none!important;
}
.chicken-info-bubble .bubble-shell{filter:drop-shadow(0 .45cqh .5cqw rgba(117,87,149,.10))}
.chicken-info-bubble .chicken-info-chicken{
  width:72%!important;height:73%!important;top:52%!important;z-index:4!important;
  animation:chickenInfoInnerFloat 3.25s ease-in-out -.55s infinite alternate;
  transform-origin:50% 70%;
}
.chicken-info-egg{
  position:absolute;display:block;object-fit:contain;backface-visibility:hidden;-webkit-backface-visibility:hidden;
  transform-origin:50% 70%;will-change:transform;
}
.chicken-info-egg-whole{
  z-index:3;left:-8.5%;top:-11.5%;width:25.5%;
  animation:chickenInfoEggWhole 4.35s ease-in-out -.8s infinite alternate;
}
.chicken-info-egg-cracked{
  z-index:8;left:30.0%;top:55.0%;width:24.0%;
  animation:chickenInfoEggCracked 3.8s ease-in-out -1.6s infinite alternate;
}
.chicken-info-copy{
  position:absolute;z-index:10;left:50.5%;top:15.7%;width:43.5%;height:69%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;text-transform:uppercase;
}
.chicken-info-copy h1{
  margin:0 0 5.1cqh;font-size:8.15cqh;line-height:.9;letter-spacing:-.026em;white-space:nowrap;
}
.chicken-info-copy p{
  margin:0;width:100%;font-size:3.62cqh;line-height:1.18;letter-spacing:-.012em;
}
.chicken-info-ok{
  position:relative;margin-top:6.0cqh;width:67%;height:13.2cqh;
  background:url('../assets/but1.png') center/100% 100% no-repeat;
  font-size:4.15cqh;line-height:1;text-transform:uppercase;transform-origin:50% 50%;
  transition:transform .2s cubic-bezier(.16,.88,.2,1),filter .18s ease;
}
.chicken-info-ok span{display:block;transform:translateY(-.05cqh)}
.chicken-info-ok:hover,.chicken-info-ok:focus-visible{transform:scale(1.045);filter:brightness(1.045)}
.chicken-info-ok:active{transform:scale(.975)}
html[lang="es"] .chicken-info-copy p,html[lang="fr"] .chicken-info-copy p,html[lang="it"] .chicken-info-copy p{font-size:3.28cqh}
html[lang="ja"] .chicken-info-copy h1{font-size:6.6cqh;letter-spacing:0}
html[lang="ja"] .chicken-info-copy p{font-size:3.05cqh;line-height:1.25;letter-spacing:0;text-transform:none}
html[lang="ja"] .chicken-info-ok{font-size:3.7cqh}

@keyframes chickenInfoCardSettle{
  0%{opacity:0;transform:translate(-50%,-46.5%) scale(.94)}
  62%{opacity:1;transform:translate(-50%,-50.7%) scale(1.012)}
  100%{opacity:1;transform:translate(-50%,-50%) scale(1)}
}
@keyframes chickenInfoBubbleFloat{
  0%{translate:-50% -.65cqh;rotate:-.34deg;scale:.994}
  48%{translate:-50% .08cqh;rotate:.08deg;scale:1.006}
  100%{translate:calc(-50% + .18cqw) .78cqh;rotate:.34deg;scale:1.018}
}
@keyframes chickenInfoInnerFloat{
  0%{transform:translate3d(0,.24cqh,0) rotate(-.45deg) scale(.995)}
  100%{transform:translate3d(0,-.48cqh,0) rotate(.4deg) scale(1.014,.992)}
}
@keyframes chickenInfoEggWhole{
  0%{transform:translate3d(0,.22cqh,0) rotate(-1.15deg) scale(.995)}
  100%{transform:translate3d(.16cqw,-.52cqh,0) rotate(1.15deg) scale(1.018)}
}
@keyframes chickenInfoEggCracked{
  0%{transform:translate3d(0,.34cqh,0) rotate(1.2deg) scale(.99)}
  100%{transform:translate3d(-.14cqw,-.44cqh,0) rotate(-1.05deg) scale(1.022)}
}

@media(max-width:900px) and (orientation:landscape){
  .chicken-info-card{width:88cqw}
  .chicken-info-copy{left:50%;width:44.5%}
  .chicken-info-copy h1{font-size:7.55cqh;margin-bottom:4.4cqh}
  .chicken-info-copy p{font-size:3.34cqh}
  html[lang="es"] .chicken-info-copy p,html[lang="fr"] .chicken-info-copy p,html[lang="it"] .chicken-info-copy p{font-size:3.02cqh}
  html[lang="ja"] .chicken-info-copy p{font-size:2.82cqh}
}
@media(prefers-reduced-motion:reduce){
  .chicken-info-card,.chicken-info-bubble>.bubble-visual,.chicken-info-bubble .chicken-info-chicken,.chicken-info-egg{animation-duration:.01ms!important;animation-iteration-count:1!important}
}



/* Large decorative home layers do not need their own continuous scale animation
   on phone GPUs. Keep the hero cat + menu bubbles alive; hold only the two giant
   cloud/castle layers still so the page remains visually rich without three full
   screen compositor surfaces breathing at once. */
html.mobile-perf .bubble-home-screen>.home-new1-under-ze2,
html.mobile-perf .bubble-home-screen .home-new2{
  animation:none!important;
  will-change:auto!important;
}
/* ==========================================================================
   EMERGENCY SMOOTHNESS PASS — 2026-08-17
   On touch/mobile GPUs, drop-shadow filters on ten continuously moving transparent
   bubble PNGs force expensive off-screen raster work. The artwork already carries
   its own highlights, so removing only those live filters preserves the look while
   keeping transform animation on the compositor. Desktop art remains unchanged.
   ========================================================================== */
html.mobile-perf .bubble-home-screen .home-bubble-card .bubble-shell,
html.mobile-perf .bubble-home-screen .home-language-bubble .bubble-shell,
html.mobile-perf .bubble-home-screen .site-ambient-bubble .bubble-shell{
  filter:none!important;
}
html.mobile-perf .bubble-home-screen .home-bubble-card .bubble-icon,
html.mobile-perf .bubble-home-screen .home-bubble-card .menu-cat-icon{
  filter:none!important;
}
/* Creature breathing stays alive, but never asks Safari to create extra filter
   surfaces or permanent art layers. */
html.mobile-perf .mobile-game-perf .game-cell.kind-chicken .cell-art,
html.mobile-perf .mobile-game-perf .game-cell.kind-egg .cell-art{
  filter:none!important;
  will-change:auto!important;
}


/* ========================================================================== 
   HELP — CHICKEN + EGG CHAIN
   One compact visual explains the fixed chicken and the four-stage egg reward
   without adding another continuous animation to the HELP screen.
   ========================================================================== */
.help-chicken-art{overflow:visible!important;isolation:isolate}
.help-chicken-main{
  position:absolute;left:1.5%;top:50%;width:61%;height:22.8cqh;object-fit:contain;
  transform:translateY(-50%);z-index:3;filter:none!important;
}
.help-chicken-eggs{
  position:absolute;right:-1.5%;top:50%;width:47%;height:18.6cqh;transform:translateY(-50%);
  display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);
  gap:.18cqh .12cqw;place-items:center;z-index:4;
}
.help-chicken-eggs img{width:100%;height:100%;max-width:7.4cqw;max-height:8.9cqh;object-fit:contain;filter:none!important}
.help-chicken-row p{max-width:98%;margin-inline:auto!important}
@media(max-width:900px) and (orientation:portrait){
  .help-chicken-main{width:59%;height:17.2cqh}
  .help-chicken-eggs{width:48%;height:14.2cqh}
  .help-chicken-eggs img{max-height:6.8cqh}
}


/* ========================================================================== 
   CHICKEN DRAG PARITY — cat/stone feel, no extra runtime work
   Move the whole chicken stack during drag/preview. The inner 4-frame pose is
   temporarily held so its transform can never override the pointer transform.
   ========================================================================== */
.game-cell.kind-chicken.dragging .chicken-motion-stack{
  animation:none!important;
  transition:none!important;
  transform:translate3d(var(--drag-x),var(--drag-y),0) scale(1.035)!important;
  will-change:transform!important;
}
.game-cell.kind-chicken.swap-preview .chicken-motion-stack{
  animation:none!important;
  transition:transform .04s linear!important;
  transform:translate3d(var(--preview-x),var(--preview-y),0)!important;
  will-change:transform!important;
}
.game-cell.kind-chicken.swap-motion-live .chicken-motion-stack{
  animation:none!important;
  will-change:transform!important;
}
/* Generic board drag CSS also targets .cell-art. For chicken the parent stack is
   now the mover, so keep the child at local 0,0 to avoid a double translation. */
.game-cell.kind-chicken.dragging .chicken-motion-stack>.cell-art,
.game-cell.kind-chicken.swap-preview .chicken-motion-stack>.cell-art,
.game-cell.kind-chicken.swap-motion-live .chicken-motion-stack>.cell-art{
  animation:none!important;
  transform:none!important;
  translate:none!important;
  scale:1!important;
  will-change:auto!important;
}
.game-cell.kind-chicken:not(.dragging):not(.swap-preview):not(.swap-motion-live) .chicken-motion-stack{
  will-change:auto!important;
}

/* ========================================================================== 
   ZERO-JANK BUBBLE COMPOSITOR PASS — 2026-08-17
   Keep the same 8-piece burst geometry, but remove live filter/blur raster work
   from continuously moving transparent PNGs and from the exact pop frame.
   ========================================================================== */
.bubble-visual{
  transition:scale .22s cubic-bezier(.16,.88,.22,1)!important;
  will-change:translate,transform,scale!important;
}
.home-bubble-card .bubble-shell,
.home-bubble-card .bubble-icon,
.bubble-language-choice .bubble-shell,
.bubble-language-choice .bubble-icon,
.site-ambient-bubble .bubble-shell{
  filter:none!important;
}
.bubble-action:hover .bubble-visual,
.bubble-action:focus-visible .bubble-visual,
.bubble-visual.bubble-bursting{
  filter:none!important;
}
.bubble-shards>i,
.site-ambient-bubble .bubble-visual.bubble-bursting .bubble-shards>i{
  filter:none!important;
  backface-visibility:hidden;
}
@keyframes bubbleShellPop{
  0%{transform:scale(1);opacity:1}
  55%{transform:scale(1.17);opacity:.96}
  100%{transform:scale(1.27);opacity:0}
}
@keyframes bubbleShardFly{
  0%{opacity:.98;transform:translate3d(0,0,0) scale(1.05) rotate(0deg)}
  100%{opacity:0;transform:translate3d(var(--sx),var(--sy),0) scale(.82) rotate(var(--sr))}
}
/* bubble-pop-focus is intentionally no longer toggled by JS. Keep any stale class
   harmless if an older cached page happens to survive a navigation. */
html.bubble-pop-focus .home-bubble-card:not(.burst-lock),
html.bubble-pop-focus .bubble-language-choice:not(.burst-lock) .bubble-visual,
html.bubble-pop-focus .ambient-flyer,
html.bubble-pop-focus .ambient-parachute{
  animation-play-state:running!important;
}
.bubble-pop-focus #site-ambient-bubbles .site-ambient-bubble:not(.burst-lock),
.bubble-pop-focus #site-ambient-bubbles-front .site-ambient-bubble:not(.burst-lock){
  visibility:visible!important;
}


/* ========================================================================== 
   HARD PERFORMANCE LOCK — HOME + GAME
   Keep interaction frames clean: one moving layer per bubble, no permanent
   filter/compositor promotion on every child, and no full-screen infinite drift.
   ========================================================================== */
.screen::before,
.level-intro.level-loading::before{
  animation:none!important;
  transform:none!important;
  will-change:auto!important;
}
.home-screen>.home-new1-under-ze2,
.language-screen>.home-new1-under-ze2,
.home-new2{
  animation:none!important;
  will-change:auto!important;
}
.bubble-visual,
.bubble-shell,
.bubble-icon,
.bubble-shards>i{
  will-change:auto!important;
}
.home-bubble-card{
  will-change:transform!important;
}
.site-ambient-bubble{
  will-change:transform!important;
  contain:layout style;
}
/* The ambient button already flies with WAAPI. Do not animate a second inner
   transform at the same time. */
.site-ambient-bubble .bubble-visual{
  animation:none!important;
  will-change:auto!important;
}
.bubble-visual.bubble-bursting .bubble-shell,
.bubble-visual.bubble-bursting .bubble-icon,
.bubble-visual.bubble-bursting .bubble-shards>i{
  will-change:transform,opacity!important;
}
/* No live raster filters on continuously moving site bubble children. */
.home-bubble-card .bubble-shell,
.home-bubble-card .bubble-icon,
.site-ambient-bubble .bubble-shell,
.site-ambient-bubble .bubble-icon,
.site-ambient-bubble .bubble-shards>i{
  filter:none!important;
}
/* Safari/mobile/low-resource mode: preserve authored layout, buttons, chicken
   motion and core transitions, but remove purely decorative continuous work. */
html.perf-lite .ambient-flyer,
html.perf-lite .ambient-parachute{
  display:none!important;
}
/* Ten independently floating HOME buttons plus the hero cat can consume the
   entire compositor budget on Safari/iPhone. Keep hover/tap growth and ambient
   bubbles, but make the menu itself a stable hit surface in perf-lite mode. */
html.perf-lite .bubble-home-screen .home-bubble-card,
html.perf-lite .bubble-language-screen .bubble-language-choice,
html.perf-lite .bubble-language-screen .bubble-language-choice .bubble-visual,
html.perf-lite .screen .page-section-bubble .bubble-visual,
html.perf-lite .home-new3{
  animation:none!important;
  will-change:auto!important;
}
html.perf-lite .story-cat,
html.perf-lite .about-cat,
html.perf-lite .cats-cat,
html.perf-lite .help-cat,
html.perf-lite .records-cat,
html.perf-lite .home-new3{
  filter:none!important;
  will-change:auto!important;
}
html.perf-lite .story-cat,
html.perf-lite .about-cat,
html.perf-lite .cats-cat,
html.perf-lite .help-cat,
html.perf-lite .records-cat{
  animation:none!important;
}
/* Chicken/egg keep their requested motion, but never hold unnecessary permanent
   filter layers on constrained game GPUs. */
html.perf-lite .mobile-game-perf .game-cell.kind-chicken .cell-art,
html.perf-lite .mobile-game-perf .game-cell.kind-egg .cell-art,
html.perf-lite .mobile-game-perf .chicken-motion-stack{
  filter:none!important;
  will-change:auto!important;
}

/* PERF-LITE GAME IDLE BUDGET
   Keep cats, the authored chicken and eggs alive; freeze secondary perpetual
   motion so swaps/cascades own the frame budget. */
html.perf-lite .mobile-game-perf .power-dock>.power-title,
html.perf-lite .mobile-game-perf .power-dock>.power-item,
html.perf-lite .mobile-game-perf .game-cell.kind-fish .cell-art,
html.perf-lite .mobile-game-perf .game-cell.kind-hamster .cell-art,
html.perf-lite .mobile-game-perf .game-cell.kind-yarn .cell-art,
html.perf-lite .mobile-game-perf .game-cell.kind-ice .ice-shell,
html.perf-lite .mobile-game-perf .game-cell.kind-special.special-rocket:not(.special-chain-queued) .cell-art,
html.perf-lite .mobile-game-perf .game-cell.kind-special.special-rocket .rocket-ready-pixels,
html.perf-lite .mobile-game-perf .game-cell.special-bomb:after{
  animation:none!important;
  will-change:auto!important;
}

/* ========================================================================== 
   EGG SWAP PARITY — targeted only
   Eggs keep breathing at rest, but the breath transform must release the art
   while drag/preview/swap owns its position. No timers or extra runtime work.
   ========================================================================== */
.game-cell.kind-egg.dragging .cell-art{
  animation:none!important;
  transition:none!important;
  transform:translate3d(var(--drag-x),var(--drag-y),0) scale(1.035)!important;
}
.game-cell.kind-egg.swap-preview .cell-art{
  animation:none!important;
  transition:transform .04s linear!important;
  transform:translate3d(var(--preview-x),var(--preview-y),0)!important;
}
.game-cell.kind-egg.swap-motion-live .cell-art{
  animation:none!important;
}

/* ========================================================================== 
   2026-08-17 — BOOK / SECTION CAT / DETAIL COPY / MOBILE UNUTMA POLISH
   Targeted overrides only; preserve the established layout geometry.
   ========================================================================== */

/* BOOK: keep the cinematic crossfade, but remove full-screen live blur raster
   work. The incoming image is decoded in JS before these opacity/scale layers run. */
.book-page-layer{
  filter:none!important;
  transform:scale(.998)!important;
  transition:opacity .64s cubic-bezier(.2,.72,.2,1),transform .74s cubic-bezier(.16,.82,.2,1)!important;
  backface-visibility:hidden;
  contain:paint;
}
.book-page-layer.book-page-incoming{
  opacity:0!important;
  filter:none!important;
  transform:scale(1.006)!important;
  z-index:4!important;
}
.book-page-layer.book-page-incoming.book-page-visible,
.book-page-layer.book-page-visible{
  opacity:1!important;
  filter:none!important;
  transform:scale(1)!important;
}
.book-page-layer.book-page-leave{
  opacity:0!important;
  filter:none!important;
  transform:scale(1.009)!important;
  z-index:3!important;
}
.book-page-layer.book-first-page-leave,
.book-page-layer.book-first-image-incoming{transition-duration:.84s!important;filter:none!important}
.book-page-layer.book-first-image-incoming{transform:scale(1.010)!important}
.book-page-layer.book-first-image-incoming.book-page-visible{transform:scale(1)!important}
.book-page-layer.book-page-leave .book-page-image{animation-play-state:paused!important}
.book-story-text{animation:bookCopyInClean .56s .10s cubic-bezier(.18,.72,.2,1) both!important}
@keyframes bookCopyInClean{
  from{opacity:0;transform:translate3d(0,.72cqh,0)}
  to{opacity:1;transform:translate3d(0,0,0)}
}

/* STORY / HELP / SCORES / SETTINGS / CREDITS: the left cat bubble is now a real
   interaction. Pop -> cat drops out of frame -> the complete bubble returns from
   below and resumes its authored float cycle. */
.page-section-bubble{
  z-index:32!important;
  pointer-events:auto!important;
  overflow:visible!important;
  border:0!important;
  background:transparent!important;
  padding:0!important;
  margin:0!important;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.page-section-bubble.burst-lock{pointer-events:none!important}
.page-section-bubble .bubble-visual.bubble-bursting .page-section-icon{
  animation:sectionCatDropOut .50s cubic-bezier(.24,.66,.24,1) .055s forwards!important;
}
@keyframes sectionCatDropOut{
  0%{opacity:1;transform:translate3d(0,0,0) rotate(0) scale(1)}
  22%{opacity:1;transform:translate3d(0,2.0cqh,0) rotate(-2deg) scale(1.035)}
  100%{opacity:0;transform:translate3d(0,58cqh,0) rotate(12deg) scale(.78)}
}
.page-section-bubble .bubble-visual.section-bubble-returning{
  animation:sectionBubbleReturn 2.20s cubic-bezier(.18,.68,.20,1) both!important;
  will-change:transform,opacity!important;
}
@keyframes sectionBubbleReturn{
  0%{opacity:0;transform:translate3d(0,55cqh,0) scale(.92)}
  9%{opacity:1}
  76%{opacity:1;transform:translate3d(0,-.72cqh,0) scale(1.010)}
  90%{transform:translate3d(0,.18cqh,0) scale(.997)}
  100%{opacity:1;transform:translate3d(0,0,0) scale(1)}
}
html.perf-lite .screen .page-section-bubble .bubble-visual.section-bubble-returning{
  animation:sectionBubbleReturn 1.90s cubic-bezier(.18,.68,.20,1) both!important;
}

/* CATS detail: grow copy downward only. Widths and horizontal registration are
   untouched, so the reference composition remains intact. */
.detail-copy .detail-lead{
  font-size:3.72cqh!important;
  line-height:1.15!important;
  max-width:36.8cqw!important;
}
.detail-copy .detail-body{
  font-size:2.02cqh!important;
  line-height:1.17!important;
  max-width:37.6cqw!important;
}
html[lang="fr"] .detail-copy .detail-lead,
html[lang="es"] .detail-copy .detail-lead,
html[lang="it"] .detail-copy .detail-lead{font-size:3.44cqh!important}
html[lang="ja"] .detail-copy .detail-lead{font-size:3.03cqh!important;line-height:1.21!important}
html[lang="ja"] .detail-copy .detail-body{font-size:1.72cqh!important;line-height:1.23!important}
@media(max-width:900px) and (orientation:landscape){
  .detail-copy .detail-lead{font-size:3.42cqh!important;line-height:1.15!important}
  .detail-copy .detail-body{font-size:1.84cqh!important;line-height:1.17!important}
  html[lang="fr"] .detail-copy .detail-lead,
  html[lang="es"] .detail-copy .detail-lead,
  html[lang="it"] .detail-copy .detail-lead{font-size:3.22cqh!important}

  /* UNUTMA: mobile landscape gets a little more usable text area. JS also allows
     a smaller fit floor on mobile only, preventing long localized lines clipping. */
  .remember-message-box{top:17.7cqh!important;height:20.4cqh!important}
  .remember-message{line-height:1.01!important}
}
@media(max-width:900px) and (orientation:portrait){
  .detail-copy .detail-lead{font-size:1.82cqh!important;line-height:1.17!important}
  .detail-copy .detail-body{font-size:1.48cqh!important;line-height:1.20!important}
  .remember-message{line-height:1.02!important}
}

@media(prefers-reduced-motion:reduce){
  .book-page-layer{transition:opacity .18s linear!important;transform:none!important}
  .book-page-layer.book-page-incoming,.book-page-layer.book-page-leave{transform:none!important;filter:none!important}
  .book-story-text{animation:none!important}
  .page-section-bubble .bubble-visual.section-bubble-returning{animation:sectionBubbleReturnReduced .18s linear both!important}
  .page-section-bubble .bubble-visual.bubble-bursting .page-section-icon{animation:sectionCatDropReduced .18s linear forwards!important}
}
@keyframes sectionBubbleReturnReduced{from{opacity:0}to{opacity:1}}
@keyframes sectionCatDropReduced{from{opacity:1}to{opacity:0}}

@media(max-width:900px){.remember-guide-frame{transition-duration:64ms!important}}


/* UNUTMA Guide v7 — one persistent canvas removes PNG-layer compositor flashes. */
.remember-guide-canvas{
  position:absolute;inset:0;width:100%;height:100%;display:block;
  pointer-events:none;user-select:none;backface-visibility:hidden;-webkit-backface-visibility:hidden;
}
/* The speaking motion is now entirely in the authored frame sequence. Keeping
   the wrapper still prevents a second animation from snapping when voice ends. */
.remember-guide-loop.is-speaking .remember-guide-motion{animation:none!important;transform:none!important}


/* v8 — synchronized UNUTMA cinematic handoff. The board never blurs before the card exists. */
.remember-impact-backdrop:not(.show){backdrop-filter:blur(0)!important;-webkit-backdrop-filter:blur(0)!important}
.remember-wrap:not(.show):not(.closing){opacity:0!important}


/* ========================================================================== 
   2026-08-17 — BOOK PAGE POSITION + PUF STORE HERO HIERARCHY
   Targeted visual polish only. Existing book crossfade and store item behavior
   remain untouched.
   ========================================================================== */

/* BOOK: page position begins on the first image after the preface. It lives in
   the page layer so the counter participates in the exact same cinematic fade. */
.book-page-counter{
  position:absolute!important;
  z-index:12!important;
  left:50%!important;
  bottom:3.15cqh!important;
  transform:translateX(-50%)!important;
  min-width:10cqw!important;
  text-align:center!important;
  font-family:Catpuf,sans-serif!important;
  font-size:2.7cqh!important;
  font-weight:700!important;
  line-height:1!important;
  letter-spacing:.045em!important;
  color:#272727!important;
  text-shadow:0 .08cqh .08cqh rgba(255,255,255,.92),0 0 .34cqh rgba(255,255,255,.72)!important;
  pointer-events:none!important;
  user-select:none!important;
  white-space:nowrap!important;
}
html[lang="ja"] .book-page-counter{font-family:Catpuf,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif!important}

/* PUF STORE: turn the heading into a centered hero. The PUF emblem owns the
   top of the window; title and points sit directly beneath it, centered as one
   composition. Product cards keep their established geometry and behavior. */
.store-content{
  top:48.0%!important;
  left:5.0cqw!important;
  right:5.0cqw!important;
}
.store-heading-block{
  width:100%!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:.18cqh!important;
  margin:0 auto .45cqh!important;
  text-align:center!important;
}
.store-heading-block .store-heading-icon{
  width:18.0cqw!important;
  height:30.0cqh!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center!important;
  flex:0 0 30.0cqh!important;
  margin:0 auto -1.0cqh!important;
  filter:drop-shadow(0 .48cqh .42cqw rgba(118,72,91,.14))!important;
}
.store-heading-copy{
  width:100%!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:center!important;
  text-align:center!important;
  min-width:0!important;
}
.store-heading-copy h2{
  width:100%!important;
  margin:0!important;
  font-size:10.2cqh!important;
  line-height:.82!important;
  letter-spacing:.012em!important;
  text-align:center!important;
  white-space:nowrap!important;
}
.store-heading-copy .store-points{
  width:100%!important;
  margin:.35cqh 0 0!important;
  font-size:5.3cqh!important;
  line-height:.92!important;
  text-align:center!important;
  white-space:nowrap!important;
}
.store-content>.store-grid{
  transform:translateY(-.25cqh)!important;
  margin-top:0!important;
}

@media(max-width:1000px) and (orientation:landscape){
  .book-page-counter{bottom:2.8cqh!important;font-size:2.55cqh!important}
  .store-content{top:48.2%!important;left:4.7cqw!important;right:4.7cqw!important}
  .store-heading-block .store-heading-icon{width:17.0cqw!important;height:28.0cqh!important;flex-basis:28.0cqh!important}
  .store-heading-copy h2{font-size:9.3cqh!important}
  .store-heading-copy .store-points{font-size:4.8cqh!important}
}

/* GAME HUD BRAND BALANCE 2026-08-17
   Keep the stitched footer intact while opening a clean visual center for the
   Catpuf mark. Score moves slightly left, Moves slightly right, and the logo is
   independently centered so translations/languages cannot push it off-axis. */
.game-hud{position:absolute!important}
.game-hud .hud-brand{
  position:absolute!important;
  z-index:6!important;
  left:50%!important;
  top:50%!important;
  width:13.2cqw!important;
  height:6.35cqh!important;
  translate:-50% -50%!important;
  display:grid!important;
  place-items:center!important;
  pointer-events:none!important;
  user-select:none!important;
}
.game-hud .hud-brand img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  filter:drop-shadow(0 .18cqh .16cqw rgba(111,70,91,.10))!important;
}
.game-hud .hud-score{translate:-1.65cqw 0!important}
.game-hud .hud-moves{translate:1.75cqw 0!important}

/* The game itself keeps the same stitched aspect ratio on mobile, so the same
   centered composition is retained. Only the optical spacing is tightened a
   touch on smaller landscape viewports. */
@media(max-width:1000px) and (orientation:landscape){
  .game-hud .hud-brand{width:12.6cqw!important;height:6.05cqh!important}
  .game-hud .hud-score{translate:-1.45cqw 0!important}
  .game-hud .hud-moves{translate:1.55cqw 0!important}
}
@media(max-width:900px) and (orientation:portrait){
  .game-hud .hud-brand{width:13.2cqw!important;height:6.35cqh!important}
  .game-hud .hud-score{translate:-1.65cqw 0!important}
  .game-hud .hud-moves{translate:1.75cqw 0!important}
}


/* PUF STORE ICON AIR 2026-08-17
   Lift only the hero store emblem away from the title. Layout geometry below
   stays untouched; the stitched window intentionally allows the emblem to
   breathe slightly into its upper edge. */
.store-heading-block .store-heading-icon{
  translate:0 -2.2cqh!important;
}
@media(max-width:1000px) and (orientation:landscape){
  .store-heading-block .store-heading-icon{translate:0 -2.0cqh!important}
}
@media(max-width:900px) and (orientation:portrait){
  .store-heading-block .store-heading-icon{translate:0 -2.2cqh!important}
}

/* ========================================================================== 
   CATPUF REFERENCE REDESIGN — 2026-08-18
   Applies the supplied 01/03/04/06/07/08/09/10/11/12 reference compositions.
   Left section cats/titles on Story/Help/Scores/Settings/Credits are intentionally
   untouched; only their right/content stages are re-authored below.
   ========================================================================== */

/* 01-loading — one authored bubble, clockwise turn + independent vertical float. */
.loading-screen .loading-center{position:absolute!important;inset:0!important}
.loading-screen .loading-bubble-wrap{
  position:absolute;z-index:8;left:50%;top:47.1cqh;width:17.9cqw;height:31.8cqh;
  translate:-50% -50%;display:grid;place-items:center;animation:refLoaderFloat 2.65s ease-in-out infinite;
  will-change:transform;pointer-events:none;
}
.loading-screen .loading-spinner{
  position:static!important;width:100%!important;height:100%!important;object-fit:contain!important;
  animation:refLoaderClockwise 4.6s linear infinite!important;transform-origin:50% 50%!important;
  filter:drop-shadow(0 .35cqh .28cqw rgba(123,84,118,.09));will-change:transform;
}
.loading-screen .loading-center h2{top:67.15cqh!important;font-size:3.55cqh!important;letter-spacing:.01em!important}
@keyframes refLoaderClockwise{to{transform:rotate(360deg)}}
@keyframes refLoaderFloat{0%,100%{transform:translate3d(0,-1.15cqh,0)}50%{transform:translate3d(0,1.0cqh,0)}}

/* 03-homeNew — exact authored orbit and expanded career statistics. */
.bubble-home-screen .home-stats.home-stats-new{
  left:3.6cqw!important;top:80.8cqh!important;width:23.6cqw!important;height:auto!important;
  display:block!important;color:#151419!important;text-align:left!important;pointer-events:none!important;
  font-family:Catpuf,sans-serif!important;text-transform:uppercase!important;filter:none!important;
}
.bubble-home-screen .home-stats-new h2{margin:0 0 1.35cqh!important;font-size:3.35cqh!important;line-height:.9!important;letter-spacing:-.02em!important}
.bubble-home-screen .home-stats-new .home-stats-grid{display:grid!important;grid-template-columns:1fr 1.12fr!important;gap:1.35cqw!important}
.bubble-home-screen .home-stats-new .home-stats-col{display:grid!important;gap:.72cqh!important}
.bubble-home-screen .home-stats-new .home-stat-line{
  display:grid!important;grid-template-columns:2.15cqw max-content 1fr!important;align-items:center!important;gap:.38cqw!important;
  min-height:2.5cqh!important;font-size:1.95cqh!important;line-height:1!important;white-space:nowrap!important;
}
.bubble-home-screen .home-stats-new .home-stat-line img{width:2.0cqw!important;height:3.45cqh!important;object-fit:contain!important;justify-self:center!important}
.bubble-home-screen .home-stats-new .home-stat-line span{font:inherit!important;font-weight:900!important;text-align:left!important}
.bubble-home-screen .home-stats-new .home-stat-line b{font:inherit!important;font-size:2.22cqh!important;font-weight:900!important;text-align:left!important;justify-self:start!important}

/* Reference anchors are expressed as top-left boxes so the existing organic
   bubble animation can keep breathing without shifting the authored centers. */
@media (orientation:landscape){
  .bubble-home-screen .home-bubble-card:not(.home-bubble-start){width:13.7cqw!important;height:28.2cqh!important}
  .bubble-home-screen .home-bubble-card:not(.home-bubble-start) .bubble-label{top:25.25cqh!important;font-size:2.8cqh!important}
  .bubble-home-screen .home-bubble-story{left:3.2cqw!important;top:9.5cqh!important}
  .bubble-home-screen .home-bubble-cats{left:17.7cqw!important;top:19.1cqh!important}
  .bubble-home-screen .home-bubble-settings{left:6.0cqw!important;top:38.4cqh!important}
  .bubble-home-screen .home-bubble-book{left:19.2cqw!important;top:47.1cqh!important}
  .bubble-home-screen .home-bubble-start{left:37.25cqw!important;top:34.1cqh!important;width:25.7cqw!important;height:49.0cqh!important}
  .bubble-home-screen .home-bubble-start .bubble-label{top:45.2cqh!important;font-size:4.85cqh!important}
  .bubble-home-screen .home-bubble-baby{left:59.0cqw!important;top:10.7cqh!important}
  .bubble-home-screen .home-bubble-credits{left:55.8cqw!important;top:38.0cqh!important}
  .bubble-home-screen .home-bubble-scores{left:75.1cqw!important;top:22.2cqh!important}
  .bubble-home-screen .home-bubble-help{left:69.6cqw!important;top:47.6cqh!important}
  .bubble-home-screen .home-language-bubble{right:3.0cqw!important;top:7.2cqh!important;width:7.0cqw!important;height:13.0cqh!important}
  .bubble-home-screen .home-bubble-chicken{left:88.0cqw!important;top:77.1cqh!important;width:9.4cqw!important;height:17.6cqh!important}
}

/* Shared horizontal reference carousel. The side masks reproduce the soft world/
   level edge handoff while native scroll-snap stays touch + mouse-wheel friendly. */
.section-carousel{
  position:absolute;z-index:10;left:22.45cqw;top:28.0cqh;width:68.6cqw;height:47.0cqh;
  display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  overscroll-behavior-x:contain;touch-action:pan-x pinch-zoom;cursor:grab;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;mask-image:linear-gradient(90deg,transparent 0,#000 2.1%,#000 97.9%,transparent 100%);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 2.1%,#000 97.9%,transparent 100%);
}
.section-carousel::-webkit-scrollbar{display:none}.section-carousel.is-dragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}
.section-carousel>article{position:relative;flex:0 0 100%;height:100%;scroll-snap-align:center;scroll-snap-stop:always;box-sizing:border-box}
.story-new-screen .h-scroll,.help-new-screen .h-scroll{left:22.45cqw!important;top:75.0cqh!important;width:68.3cqw!important;height:2.8cqh!important;right:auto!important}
.story-new-screen .h-scroll img,.help-new-screen .h-scroll img{width:5.9cqw!important}

/* 04-story — only the content stage changes. */
.story-slide{display:grid!important;grid-template-columns:29.6cqw 1fr!important;gap:3.0cqw!important;align-items:center!important;padding:0 2.0cqw 0 1.2cqw!important}
.story-slide-art{width:27.2cqw!important;height:47.0cqh!important;object-fit:contain!important;justify-self:center!important;filter:drop-shadow(0 .35cqh .25cqw rgba(120,88,106,.08))}
.story-slide-copy{align-self:center;text-align:center;text-transform:uppercase;color:#171419;padding-right:1.2cqw}
.story-slide-copy h2{margin:0!important;font-size:3.45cqh!important;line-height:1.17!important;letter-spacing:-.012em!important}
.story-slide-copy p{margin:2.7cqh auto 0!important;max-width:35.5cqw;font-size:1.92cqh!important;line-height:1.25!important;font-weight:900!important}
.story-slide-quote{display:block;margin-top:3.0cqh;font-size:4.05cqh;line-height:1;text-transform:uppercase}
.story-slide-ending{display:block;margin-top:3.0cqh;font-size:3.45cqh;line-height:1.03;text-transform:uppercase}
.story-slide-1 .story-slide-copy h2{font-size:4.0cqh!important;line-height:1.15!important}
.story-slide-5 .story-slide-copy p{font-size:1.74cqh!important;line-height:1.2!important}
.story-slide-5 .story-slide-ending{font-size:3.7cqh!important}

/* 06-help — eleven authored horizontal cards. */
.help-carousel{top:27.3cqh!important;height:48.0cqh!important}
.help-slide{padding:1.0cqh 1.5cqw 0!important;text-align:center;text-transform:uppercase;color:#171419}
.help-slide h2,.help-slide h3,.help-slide p{margin:0}
.hero-help-copy{width:56cqw;margin:4.4cqh auto 0}
.hero-help-copy h2{font-size:4.4cqh;line-height:1;margin:0 0 1.2cqh}.hero-help-copy p{font-size:2.05cqh;line-height:1.18;font-weight:900;margin:0 auto 2.2cqh;max-width:55cqw}
.help-card-grid{height:100%;display:grid;align-items:center;gap:2.0cqw}.help-grid-2{grid-template-columns:repeat(2,1fr)}.help-grid-3{grid-template-columns:repeat(3,1fr)}.help-grid-4{grid-template-columns:repeat(4,1fr);gap:1.0cqw}
.help-info-card{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}
.help-info-art{height:25.3cqh;width:100%;display:grid;place-items:center;position:relative}.help-info-art>img{max-width:15cqw;max-height:24.2cqh;object-fit:contain}
.help-info-copy h3{font-size:3.25cqh;line-height:1;margin:.3cqh 0 1.2cqh}.help-info-copy p{max-width:18.7cqw;margin:auto;font-size:1.54cqh;line-height:1.2;font-weight:900}
.help-slide-heading{position:absolute;left:0;right:0;top:.3cqh}.help-slide-heading h2{font-size:3.5cqh}.help-slide-heading p{font-size:1.55cqh;line-height:1.18;margin:.65cqh auto 0;max-width:52cqw;font-weight:900}.help-slide-3 .help-card-grid{padding-top:8cqh}
.help-red-nuclear-art .help-red-nuclear-base{position:absolute;max-width:15cqw;max-height:23cqh}.help-red-nuclear-art .help-red-nuclear-symbol{position:absolute;width:6.3cqw;height:10cqh;object-fit:contain}
.help-chicken-layout,.help-baby-layout{height:100%;display:grid;grid-template-columns:31cqw 1fr;align-items:center;gap:4cqw}.help-chicken-visual{height:42cqh;display:grid;place-items:center;position:relative}.help-chicken-main{width:18.5cqw;height:31cqh;object-fit:contain;position:absolute;top:0}.help-chicken-eggs{display:flex;position:absolute;left:1cqw;right:1cqw;bottom:0;align-items:end;justify-content:center;gap:.8cqw}.help-chicken-eggs img{width:5.2cqw;height:8.8cqh;object-fit:contain}.help-chicken-copy h2,.help-baby-layout h2{font-size:3.6cqh;margin-bottom:1.8cqh}.help-chicken-copy p,.help-baby-layout p{font-size:1.65cqh;line-height:1.22;font-weight:900;max-width:31cqw;margin:auto}
.help-bubble-guide-grid .help-info-art>img{max-width:20cqw;max-height:28cqh}.help-guide-card .help-info-art>img{max-width:16cqw}
.help-power-intro{position:absolute;left:2cqw;top:2cqh;width:35cqw;text-align:left}.help-power-intro h2{font-size:3.8cqh}.help-power-intro strong{display:block;font-size:2.0cqh;margin:.8cqh 0}.help-power-intro p{font-size:1.52cqh;line-height:1.2;font-weight:900}.help-store-feature{position:absolute;right:2cqw;top:4cqh;width:28cqw;height:37cqh;display:grid;grid-template-columns:11cqw 1fr;align-items:center}.help-store-feature>img{width:11cqw;height:20cqh;object-fit:contain}.help-store-feature h3{font-size:3.3cqh;margin-bottom:1cqh}.help-store-feature p{font-size:1.48cqh;line-height:1.18;font-weight:900}
.help-grid-4 .help-info-art{height:26cqh}.help-grid-4 .help-info-art>img{max-width:14cqw;max-height:25cqh}.help-grid-4 .help-info-copy h3{font-size:2.7cqh}.help-grid-4 .help-info-copy p{font-size:1.38cqh;max-width:14cqw}
.help-baby-layout{grid-template-columns:26cqw 1fr}.help-baby-bubble{width:23cqw;height:40cqh;position:relative}.help-baby-bubble .bubble-visual{width:100%;height:100%}.help-baby-bubble .bubble-shell{width:100%;height:100%}.help-baby-bubble .help-baby-cat{width:58%;height:62%}
.help-final-grid{height:100%;display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:1fr 1fr;gap:2cqw 3cqh;align-items:center}.help-final-grid article{padding:0 2cqw}.help-final-grid h2{font-size:3.15cqh;margin-bottom:1cqh}.help-final-grid p{font-size:1.48cqh;line-height:1.2;font-weight:900}.help-tips-card{grid-column:1/-1}.help-tips-card strong{display:block;margin-top:1.25cqh;font-size:3.4cqh}.help-tips-card b{display:block;margin-top:.75cqh;font-size:1.8cqh}

/* 07-scores — podium left, 4–200 scrolling ranking right. */
.scores-new-layout{position:absolute;z-index:10;left:22.9cqw;top:28.2cqh;width:72.5cqw;height:47.5cqh;display:grid;grid-template-columns:25.2cqw 1fr;gap:3.2cqw;color:#171419}
.scores-podium{display:grid;grid-template-rows:repeat(3,1fr);gap:1.3cqh;padding-left:2.2cqw}
.score-podium{position:relative;border-radius:2.4cqw;display:flex;align-items:center;padding:1.0cqh 1.1cqw 1.0cqh 5.2cqw;box-sizing:border-box;min-height:0}
.score-podium-1{background:#ffca53}.score-podium-2{background:#cfd1d4}.score-podium-3{background:#f18349}
.score-medal{position:absolute;left:-2.2cqw;top:50%;translate:0 -50%;width:6.7cqw;height:12.5cqh;object-fit:contain;z-index:2}
.score-podium-copy{display:grid;align-content:center;text-align:left;width:100%;line-height:1}.score-podium-copy strong{font-size:3.3cqh;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.score-podium-copy span{font-size:1.65cqh;margin-top:.45cqh}.score-podium-copy b{font-size:3.55cqh;margin-top:.6cqh}.score-podium-copy em{font-style:normal;font-size:1.55cqh;margin-top:.45cqh}
.scores-ranking{overflow-y:auto;overflow-x:hidden;scrollbar-width:none;padding-right:2.7cqw;overscroll-behavior:contain}.scores-ranking::-webkit-scrollbar{display:none}
.score-list-row{height:5.04cqh;border-bottom:.12cqh solid rgba(40,35,40,.45);display:grid;grid-template-columns:4cqw 1fr 7.2cqw 8.9cqw 10.2cqw;align-items:center;gap:.45cqw;font-size:1.56cqh;line-height:1;white-space:nowrap}.score-list-row>b{font-size:1.8cqh;text-align:left}.score-list-row>strong{font-size:1.7cqh;text-align:left;overflow:hidden;text-overflow:ellipsis}.score-list-row>span,.score-list-row>time{font-weight:900;text-align:center}.score-list-row>em{font-style:normal;font-size:1.75cqh;font-weight:900;text-align:right}
.scores-new-screen .v-scroll{left:94.55cqw!important;top:28.7cqh!important;height:47.0cqh!important;width:1.55cqw!important;right:auto!important}.scores-new-screen .v-scroll img{width:1.6cqw!important}

/* 08-settings — preserve title/left bubble, rebuild only the right content stage. */
.settings-new-content{position:absolute;z-index:10;left:24.0cqw;top:26.0cqh;width:70.0cqw;height:51.5cqh;color:#2d2d2f;text-transform:uppercase}
.settings-new-content .settings-copy{position:absolute!important;left:1.5cqw!important;top:0!important;width:42.5cqw!important;margin:0!important;text-align:center!important;font-size:2.25cqh!important;line-height:1.28!important;font-weight:900!important}
.settings-controls-new{position:absolute;left:3.2cqw;top:10.0cqh;width:39.5cqw;height:35.5cqh;display:grid;grid-template-columns:1fr 1fr;gap:4.2cqw}
.settings-new-screen .setting{position:relative!important;left:auto!important;top:auto!important;width:auto!important;height:100%!important;display:grid!important;grid-template-rows:21cqh 5cqh 10cqh!important;align-items:center!important;justify-items:center!important}
.settings-new-screen .setting .setting-icon{position:static!important;width:12.2cqw!important;height:20.5cqh!important;object-fit:contain!important;order:0!important}
.settings-new-screen .setting b{position:static!important;font-size:3.8cqh!important;line-height:1!important;white-space:nowrap!important}
.settings-new-screen .setting .toggle{position:relative!important;left:auto!important;top:auto!important;width:12.3cqw!important;height:9.6cqh!important;margin-top:.5cqh!important}
.settings-mechanic-cat{position:absolute;right:-1.7cqw;bottom:-1.0cqh;width:31.0cqw;height:50.5cqh;object-fit:contain;object-position:right bottom;filter:drop-shadow(0 .45cqh .3cqw rgba(100,66,68,.08))}

/* 09-credits — right-side owner portrait/details exactly follow the new reference. */
.credits-new-layout .credit-owner{left:70.5cqw!important;top:26.5cqh!important;width:24.2cqw!important;height:51cqh!important;text-align:center!important;display:flex!important;flex-direction:column!important;align-items:center!important}
.credits-new-layout .credit-owner .credit-roles{position:static!important;width:23.5cqw!important;min-height:8.5cqh!important;font-size:1.43cqh!important;line-height:1.1!important;text-transform:uppercase!important;font-weight:900!important;margin-bottom:1.25cqh!important}
.credits-new-layout .credit-owner-photo{display:block;width:18.9cqw;height:33.6cqh;object-fit:contain;margin:0 auto .9cqh;border-radius:50%}
.credits-new-layout .credit-owner strong{position:static!important;font-size:3.05cqh!important;line-height:1!important;margin:.2cqh 0 .9cqh!important;white-space:nowrap!important}
.credits-new-layout .credit-owner .credit-mail{position:static!important;font-size:2.75cqh!important;line-height:1!important;color:#171419!important;text-decoration:none!important;text-transform:none!important;white-space:nowrap!important}
.credits-new-layout .credit-cr5{display:none!important}

/* 10-levels-03 — shift trio up and add authored moves/cat targets below. */
.world-level-intro .world-intro-orb{top:27.0cqh!important}.world-level-intro .world-intro-cat{top:19.2cqh!important}.world-level-intro .world-intro-level{top:28.8cqh!important}
.world-intro-meta{position:absolute;z-index:7;left:35.4cqw;top:61.0cqh;width:29.8cqw;height:14cqh;display:flex;align-items:center;justify-content:center;gap:5.6cqw;color:#2d2d2f}
.world-intro-meta span{display:flex;align-items:center;gap:1.15cqw;height:100%}.world-intro-meta img{width:6.0cqw;height:11.2cqh;object-fit:contain}.world-intro-meta span:nth-child(2) img{width:5.8cqw;height:10.6cqh}.world-intro-meta b{font-size:5.2cqh;line-height:1}

/* 11/12 result cards — the existing stitched panel/art are retained; these
   overrides pin the typography/buttons to the supplied reference geometry. */
.game-modal.next-level-ref .level-result-stats{position:absolute;z-index:16;left:3.0cqw;top:8.0cqh;width:14.2cqw;height:58cqh;display:grid;grid-template-rows:repeat(5,1fr);align-items:center}
.level-result-stats>span{height:10.7cqh;display:flex;align-items:center;gap:.6cqw;color:#2d2d2f}.level-result-stats>span>img:first-child{width:5.2cqw;height:9.6cqh;object-fit:contain}.level-result-stats>span:nth-child(4)>img:first-child{width:4.9cqw;height:9.0cqh}.level-result-stats b{font-size:4.05cqh;line-height:1;white-space:nowrap}.level-result-stats .result-check{width:3.55cqw!important;height:6.4cqh!important;object-fit:contain!important}
.game-modal.next-level-ref .modal-cat{left:13.0cqw!important;top:-7.5cqh!important;width:43.0cqw!important;height:94.0cqh!important}
.game-modal.next-level-ref .modal-copy{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;pointer-events:none!important}
.game-modal.next-level-ref .modal-copy small{position:absolute!important;left:58.0cqw!important;top:8.0cqh!important;width:35cqw!important;font-size:3.6cqh!important;text-align:center!important}
.game-modal.next-level-ref .modal-copy h2{position:absolute!important;left:54.0cqw!important;top:14.0cqh!important;width:42cqw!important;font-size:8.1cqh!important;line-height:.86!important;text-align:center!important;margin:0!important}
.game-modal.next-level-ref .modal-copy p{position:absolute!important;left:59.0cqw!important;top:37.2cqh!important;width:31cqw!important;font-size:3.0cqh!important;text-align:center!important;margin:0!important}
.game-modal.next-level-ref .modal-copy strong{position:absolute!important;left:55.2cqw!important;top:43.0cqh!important;width:39cqw!important;font-size:5.5cqh!important;text-align:center!important;margin:0!important}
.game-modal.next-level-ref .modal-actions{left:50.5cqw!important;top:51.0cqh!important;width:42.5cqw!important;height:24cqh!important}
.game-modal.next-level-ref .modal-primary{left:0!important;top:0!important;width:40.0cqw!important;height:12.3cqh!important;font-size:4.2cqh!important}
.game-modal.next-level-ref .modal-menu{left:-1.8cqw!important;top:15.2cqh!important;width:21.0cqw!important;height:9.4cqh!important;font-size:2.85cqh!important}
.game-modal.next-level-ref .result-submit-button{left:71.8cqw!important;top:66.2cqh!important;width:22.0cqw!important;height:9.4cqh!important;font-size:2.65cqh!important}

.game-modal.game-over-ref .modal-cat{left:2.0cqw!important;top:20.0cqh!important;width:38.0cqw!important;height:65cqh!important}.game-modal.game-over-ref .gameover-birds{left:8.0cqw!important;top:7.0cqh!important;width:23cqw!important;height:20cqh!important}.game-modal.game-over-ref .modal-copy{position:absolute!important;inset:0!important;width:100%!important;height:100%!important}.game-modal.game-over-ref .modal-copy small{position:absolute!important;left:50.5cqw!important;top:8.5cqh!important;width:43cqw!important;font-size:3.6cqh!important;text-align:center!important}.game-modal.game-over-ref .modal-copy h2{position:absolute!important;left:51cqw!important;top:15.2cqh!important;width:42cqw!important;font-size:9.5cqh!important;text-align:center!important;margin:0!important}.game-modal.game-over-ref .modal-copy p{position:absolute!important;left:58cqw!important;top:38.2cqh!important;width:28cqw!important;font-size:3cqh!important;text-align:center!important}.game-modal.game-over-ref .modal-copy strong{position:absolute!important;left:53cqw!important;top:44cqh!important;width:38cqw!important;font-size:5.5cqh!important;text-align:center!important}.game-modal.game-over-ref .modal-actions{left:50.0cqw!important;top:52.0cqh!important;width:43cqw!important;height:25cqh!important}.game-modal.game-over-ref .modal-primary{left:0!important;top:0!important;width:40cqw!important;height:12.3cqh!important;font-size:4.2cqh!important}.game-modal.game-over-ref .modal-menu{left:-1.3cqw!important;top:15.4cqh!important;width:21cqw!important;height:9.4cqh!important;font-size:2.85cqh!important}.game-modal.game-over-ref .result-submit-button{left:72.0cqw!important;top:67.4cqh!important;width:22cqw!important;height:9.4cqh!important;font-size:2.65cqh!important}

.game-modal.final-game-ref .modal-cat{left:4.0cqw!important;top:3.0cqh!important;width:39cqw!important;height:90cqh!important}.game-modal.final-game-ref .modal-copy{position:absolute!important;inset:0!important;width:100%!important;height:100%!important}.game-modal.final-game-ref .modal-copy small{position:absolute!important;left:51cqw!important;top:8.0cqh!important;width:42cqw!important;font-size:3.7cqh!important;text-align:center!important}.game-modal.final-game-ref .modal-copy h2{position:absolute!important;left:52cqw!important;top:15.5cqh!important;width:40cqw!important;font-size:10.8cqh!important;text-align:center!important;margin:0!important}.game-modal.final-game-ref .modal-copy p{position:absolute!important;left:58cqw!important;top:38.7cqh!important;width:28cqw!important;font-size:3cqh!important;text-align:center!important}.game-modal.final-game-ref .modal-copy strong{position:absolute!important;left:53cqw!important;top:44.3cqh!important;width:38cqw!important;font-size:5.5cqh!important;text-align:center!important}.game-modal.final-game-ref .modal-actions{left:50.0cqw!important;top:52.0cqh!important;width:43cqw!important;height:25cqh!important}.game-modal.final-game-ref .modal-primary{left:0!important;top:0!important;width:40cqw!important;height:12.3cqh!important;font-size:4.2cqh!important}.game-modal.final-game-ref .modal-menu{left:-1.3cqw!important;top:15.4cqh!important;width:21cqw!important;height:9.4cqh!important;font-size:2.85cqh!important}.game-modal.final-game-ref .result-submit-button{left:72.0cqw!important;top:67.4cqh!important;width:22cqw!important;height:9.4cqh!important;font-size:2.65cqh!important}

/* 12-nextlevel-02/03 — nickname only. */
.score-flow-wrap{background:rgba(255,229,239,.10)!important;backdrop-filter:blur(5px)!important;-webkit-backdrop-filter:blur(5px)!important}
.score-flow-card{width:81.72cqw!important;height:71.95cqh!important}
.score-flow-cat{position:absolute;z-index:3;left:7.7cqw;top:-3.0cqh;width:38.5cqw;height:78cqh;object-fit:contain;filter:drop-shadow(0 .45cqh .3cqw rgba(83,58,54,.11))}
.score-flow-copy{left:48.2cqw!important;top:10.0cqh!important;width:29.8cqw!important;height:52cqh!important}
.score-flow-heading small{display:block;font-size:3.35cqh;line-height:1;text-transform:uppercase;margin-bottom:.7cqh}.score-flow-heading h2{font-size:8.6cqh!important;line-height:.88!important;margin:0 0 5.3cqh!important}
.score-flow-form{gap:0!important}.score-flow-form label span{margin:0 0 1.1cqh!important;text-align:center!important;font-size:2.6cqh!important}.score-flow-form input{height:7.0cqh!important;border-radius:3.7cqh!important;font-size:3.0cqh!important;text-align:center!important;background:#fff!important}.score-flow-status{height:3.5cqh!important;min-height:3.5cqh!important;margin:.8cqh 0 .2cqh!important}.score-flow-submit{width:29.2cqw!important;height:11.1cqh!important;font-size:3.4cqh!important;margin-top:.2cqh!important}
.score-flow-thanks{top:17.0cqh!important;gap:3.0cqh!important}.score-flow-thanks h3{font-size:5.6cqh!important}.score-flow-thanks p{font-size:4.5cqh!important;max-width:30cqw!important;line-height:1.05!important}.score-flow-success .score-flow-copy{top:10cqh!important}.score-flow-close{right:-.7cqw!important;top:-2.8cqh!important;width:5.5cqw!important;height:9.8cqh!important}

@media(max-width:1000px) and (orientation:landscape){
  .story-slide-copy h2{font-size:3.25cqh!important}.story-slide-copy p{font-size:1.78cqh!important}
  .help-info-copy p{font-size:1.42cqh}.score-list-row{font-size:1.45cqh}.settings-new-content .settings-copy{font-size:2.05cqh!important}
}
@media(prefers-reduced-motion:reduce){.loading-screen .loading-bubble-wrap{animation:none}.loading-screen .loading-spinner{animation:refLoaderClockwise 8s linear infinite!important}.section-carousel{scroll-behavior:auto}}

/* ========================================================================== 
   REFERENCE CORRECTION PASS — 2026-08-18 / v13
   Requested: preserve the v12 logic, but return HOME / STORY / HELP / SCORES /
   SETTINGS / NEXT LEVEL to the supplied reference geometry without clipping.
   ========================================================================== */

/* 03-homeNew — smaller language portal, authored orbit spacing, no collisions. */
@media (orientation:landscape){
  .bubble-home-screen .home-language-bubble{
    right:2.65cqw!important;top:6.45cqh!important;width:5.75cqw!important;height:10.8cqh!important;
  }
  .bubble-home-screen .home-language-bubble .language-flag-icon{
    width:52%!important;height:52%!important;top:50.8%!important;
  }
  .bubble-home-screen .home-bubble-card:not(.home-bubble-start){
    width:13.35cqw!important;height:26.0cqh!important;
  }
  .bubble-home-screen .home-bubble-card:not(.home-bubble-start) .bubble-label{
    top:24.35cqh!important;font-size:2.55cqh!important;line-height:.92!important;
  }
  .bubble-home-screen .home-bubble-story{left:3.15cqw!important;top:9.15cqh!important}
  .bubble-home-screen .home-bubble-cats{left:18.25cqw!important;top:19.05cqh!important}
  .bubble-home-screen .home-bubble-settings{left:6.05cqw!important;top:39.35cqh!important}
  .bubble-home-screen .home-bubble-book{left:20.85cqw!important;top:48.65cqh!important;width:12.9cqw!important}
  .bubble-home-screen .home-bubble-book .bubble-label{top:23.55cqh!important}

  .bubble-home-screen .home-bubble-start{
    left:37.25cqw!important;top:35.8cqh!important;width:25.5cqw!important;height:48.5cqh!important;
  }
  .bubble-home-screen .home-bubble-start .bubble-label{top:44.7cqh!important;font-size:4.5cqh!important}

  .bubble-home-screen .home-bubble-baby{left:66.1cqw!important;top:10.8cqh!important}
  .bubble-home-screen .home-bubble-credits{left:63.2cqw!important;top:39.55cqh!important;width:13.1cqw!important}
  .bubble-home-screen .home-bubble-credits .bubble-label{top:24.25cqh!important}
  .bubble-home-screen .home-bubble-scores{left:79.2cqw!important;top:22.0cqh!important}
  .bubble-home-screen .home-bubble-help{left:75.6cqw!important;top:50.3cqh!important}

  .bubble-home-screen .home-bubble-chicken{
    left:87.55cqw!important;top:77.15cqh!important;width:9.65cqw!important;height:18.0cqh!important;
    overflow:visible!important;contain:none!important;
  }
  .bubble-home-screen .home-bubble-chicken .bubble-visual{overflow:visible!important;contain:none!important}
  .bubble-home-screen .home-bubble-chicken .home-chicken-icon{
    width:62%!important;height:62%!important;top:50.5%!important;object-fit:contain!important;overflow:visible!important;
  }
}

/* 04-story — the reference uses a tall, airy horizontal viewport. */
.story-new-screen .story-carousel{
  left:21.25cqw!important;top:27.3cqh!important;width:71.25cqw!important;height:55.0cqh!important;
  mask-image:linear-gradient(90deg,transparent 0,#000 1.6%,#000 98.4%,transparent 100%)!important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 1.6%,#000 98.4%,transparent 100%)!important;
}
.story-new-screen .h-scroll{left:21.25cqw!important;top:83.15cqh!important;width:71.0cqw!important;height:2.8cqh!important}
.story-slide{
  grid-template-columns:30.2cqw 1fr!important;gap:3.15cqw!important;align-items:center!important;
  padding:.5cqh 1.6cqw .6cqh 1.25cqw!important;
}
.story-slide-art{
  width:29.3cqw!important;height:52.6cqh!important;max-width:100%!important;max-height:100%!important;
  object-fit:contain!important;justify-self:center!important;align-self:center!important;
}
.story-slide-copy{
  height:50.5cqh!important;max-height:50.5cqh!important;display:flex!important;flex-direction:column!important;
  justify-content:center!important;align-items:center!important;box-sizing:border-box!important;padding:1.0cqh 1.1cqw!important;
  overflow:visible!important;text-align:center!important;
}
.story-slide-copy h2{
  width:100%!important;margin:0!important;font-size:calc(3.22cqh * var(--ref-type-scale,1))!important;
  line-height:1.12!important;letter-spacing:-.012em!important;
}
.story-slide-copy p{
  width:100%!important;max-width:35.4cqw!important;margin:2.25cqh auto 0!important;
  font-size:calc(1.28cqh * var(--ref-type-scale,1))!important;line-height:1.18!important;letter-spacing:.005em!important;font-weight:900!important;
}
.story-slide-1 .story-slide-copy h2{font-size:calc(3.58cqh * var(--ref-type-scale,1))!important;line-height:1.13!important}
.story-slide-2 .story-slide-copy p,.story-slide-3 .story-slide-copy p,.story-slide-4 .story-slide-copy p{font-size:calc(1.17cqh * var(--ref-type-scale,1))!important;line-height:1.17!important}
.story-slide-quote{display:block!important;margin-top:2.05cqh!important;font-size:calc(1.85cqh * var(--ref-type-scale,1))!important;line-height:1!important}
.story-slide-5 .story-slide-copy p{font-size:calc(1.16cqh * var(--ref-type-scale,1))!important;line-height:1.17!important;margin-top:0!important}
.story-slide-ending{display:block!important;margin-top:2.0cqh!important;font-size:calc(2.72cqh * var(--ref-type-scale,1))!important;line-height:1.02!important}
html[lang="ja"] .story-slide-copy{letter-spacing:0!important}

/* 06-help — each of the eleven slides follows the supplied composition rather
   than a generic card grid. Type is deliberately smaller, matching the refs. */
.help-new-screen .help-carousel{
  left:21.25cqw!important;top:27.0cqh!important;width:72.7cqw!important;height:55.25cqh!important;
  mask-image:linear-gradient(90deg,transparent 0,#000 1.5%,#000 98.5%,transparent 100%)!important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 1.5%,#000 98.5%,transparent 100%)!important;
}
.help-new-screen .h-scroll{left:21.25cqw!important;top:83.15cqh!important;width:72.45cqw!important;height:2.8cqh!important}
.help-slide{position:relative!important;padding:.7cqh 1.2cqw!important;overflow:visible!important;text-transform:uppercase!important;color:#171419!important}
.help-slide h2{font-size:calc(3.1cqh * var(--ref-type-scale,1))!important;line-height:1!important;letter-spacing:-.01em!important}
.help-slide h3{font-size:calc(2.35cqh * var(--ref-type-scale,1))!important;line-height:1!important;letter-spacing:-.008em!important}
.help-slide p{font-size:calc(1.08cqh * var(--ref-type-scale,1))!important;line-height:1.18!important;font-weight:900!important;letter-spacing:.005em!important}
.help-slide strong,.help-slide b{font-size:calc(1.65cqh * var(--ref-type-scale,1))!important;line-height:1.05!important}

.help-objective-block{position:absolute;left:5%;top:11%;width:59%;text-align:center}
.help-objective-block h2{margin:0 0 1.3cqh!important}.help-objective-block .help-objective-lead{font-size:calc(1.85cqh * var(--ref-type-scale,1))!important;line-height:1.12!important;margin:0 auto 1.9cqh!important;max-width:37cqw}.help-objective-block p:last-child{max-width:42cqw;margin:0 auto!important}
.help-how-block{position:absolute;right:2%;top:19%;width:27%;text-align:center}.help-how-block h2{margin:0 0 1.25cqh!important}.help-how-block p{font-size:calc(1.02cqh * var(--ref-type-scale,1))!important;max-width:19cqw;margin:auto!important}

.help-ref-item{position:absolute;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}
.help-ref-art{width:100%;height:24cqh;display:grid;place-items:center;position:relative}.help-ref-art>img{max-width:15.5cqw;max-height:23.5cqh;object-fit:contain}
.help-ref-copy{width:100%;text-align:center}.help-ref-copy h3{margin:.15cqh 0 .7cqh!important}.help-ref-copy p{max-width:19cqw;margin:0 auto!important}

/* help 02 */
.help-slide-2 .help-yarn-worlds{left:3%;top:3%;width:28%}.help-slide-2 .help-pillows{left:36.3%;top:0;width:28%}.help-slide-2 .help-stones{right:1.8%;top:4%;width:28%}
.help-slide-2 .help-yarn-worlds .help-ref-art{height:27cqh}.help-slide-2 .help-pillows .help-ref-art{height:21.8cqh}.help-slide-2 .help-stones .help-ref-art{height:25cqh}

/* help 03 */
.help-special-intro{position:absolute;left:3.5%;top:27%;width:28%;text-align:center}.help-special-intro h2{margin:0 0 1.4cqh!important}.help-special-intro p{max-width:20cqw;margin:auto!important}
.help-slide-3 .help-bomb{left:35%;top:19%;width:27%}.help-slide-3 .help-rocket{right:3%;top:4%;width:28%}.help-slide-3 .help-bomb .help-ref-art{height:26cqh}.help-slide-3 .help-rocket .help-ref-art{height:25cqh}

/* help 04 */
.help-slide-4 .help-nuclear{left:2%;top:5%;width:28%}.help-slide-4 .help-red-nuclear{left:36%;top:1%;width:28%}.help-slide-4 .help-fish{right:1.5%;top:7%;width:28%}
.help-slide-4 .help-ref-art{height:26cqh}.help-red-nuclear .help-red-nuclear-base{position:absolute!important;width:13.8cqw!important;height:22.5cqh!important;object-fit:contain!important}.help-red-nuclear .help-red-nuclear-symbol{position:absolute!important;width:5.7cqw!important;height:9.4cqh!important;object-fit:contain!important}

/* help 05 */
.help-slide-5 .help-hamster{left:2%;top:7%;width:28%}.help-slide-5 .help-yarn{left:36%;top:5%;width:28%}.help-slide-5 .help-ice{right:1.5%;top:7%;width:28%}.help-slide-5 .help-ref-art{height:27cqh}

/* help 06 */
.help-chain-copy{position:absolute;left:4%;top:11%;width:48%;text-align:center}.help-chain-copy h2{margin:0 0 1.4cqh!important}.help-chain-copy p{font-size:calc(1.15cqh * var(--ref-type-scale,1))!important;line-height:1.18!important;max-width:33cqw;margin:auto!important}
.help-chain-art{position:absolute;right:1%;top:0;width:45%;height:52cqh}.help-chain-chicken{position:absolute;left:50%;top:1%;translate:-50% 0;width:23cqw;height:45cqh;object-fit:contain}.help-chain-egg{position:absolute;width:7cqw;height:12cqh;object-fit:contain;bottom:2cqh}.help-chain-egg.egg-left{left:8%}.help-chain-egg.egg-right{right:7%}

/* help 07 */
.help-slide-7 .help-puf-bubble{left:4%;top:5%;width:42%}.help-slide-7 .help-guide{right:2%;top:2%;width:46%}.help-slide-7 .help-ref-art{height:31cqh}.help-slide-7 .help-puf-bubble .help-ref-art>img{max-width:20cqw;max-height:31cqh}.help-slide-7 .help-guide .help-ref-art>img{max-width:18cqw;max-height:30cqh}.help-slide-7 .help-ref-copy p{max-width:28cqw}

/* help 08 */
.help-power-copy{position:absolute;left:3%;top:17%;width:46%;text-align:center}.help-power-copy h2{margin:0 0 .9cqh!important}.help-power-copy strong{display:block!important;font-size:calc(2.15cqh * var(--ref-type-scale,1))!important;margin:0 0 1.0cqh!important}.help-power-copy p{max-width:31cqw;margin:auto!important}
.help-slide-8 .help-store{right:2%;top:4%;width:44%}.help-slide-8 .help-store .help-ref-art{height:31cqh}.help-slide-8 .help-store .help-ref-art>img{max-width:16cqw;max-height:30cqh}.help-slide-8 .help-store .help-ref-copy p{max-width:26cqw}

/* help 09 — four powers in the same 2x2 rhythm as the design. */
.help-power-grid{position:absolute;inset:0 1.5%;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;column-gap:3.6cqw;row-gap:.5cqh;padding:1cqh 0!important}
.help-power-grid .help-ref-item{position:relative!important;left:auto!important;right:auto!important;top:auto!important;width:auto!important;height:100%;display:grid!important;grid-template-columns:44% 56%;align-items:center!important;text-align:center!important}
.help-power-grid .help-ref-art{height:22cqh}.help-power-grid .help-ref-art>img{max-width:13.7cqw;max-height:21.5cqh}.help-power-grid .help-ref-copy p{max-width:16.5cqw}.help-power-grid .help-ref-copy h3{font-size:calc(2.15cqh * var(--ref-type-scale,1))!important}

/* help 10 */
.help-baby-copy{position:absolute;left:6%;top:20%;width:55%;text-align:center}.help-baby-copy h2{margin:0 0 1.7cqh!important}.help-baby-copy p{font-size:calc(1.28cqh * var(--ref-type-scale,1))!important;max-width:39cqw;margin:auto!important}
.help-baby-ref-bubble{position:absolute;right:4%;top:3%;width:26cqw;height:47cqh}.help-baby-ref-bubble .bubble-visual{width:100%;height:100%;animation:none!important}.help-baby-ref-bubble .help-baby-cat{width:60%!important;height:63%!important}

/* help 11 */
.help-last-left{position:absolute;left:4%;top:7%;width:47%;height:45cqh;display:grid;grid-template-rows:1fr 1fr;align-items:center;text-align:center}.help-last-left section{padding:0 2cqw}.help-last-left h2,.help-last-right h2{margin:0 0 1.0cqh!important}.help-last-left p{max-width:31cqw;margin:auto!important}
.help-last-right{position:absolute;right:2%;top:11%;width:44%;height:40cqh;text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center}.help-last-right p{max-width:30cqw;margin:0 auto 2.2cqh!important}.help-last-right strong{font-size:calc(2.65cqh * var(--ref-type-scale,1))!important;line-height:1.05!important;max-width:31cqw}.help-last-right b{font-size:calc(1.7cqh * var(--ref-type-scale,1))!important;margin-top:1.25cqh!important;max-width:28cqw}

/* 07-scores — taller list area, same podium/list split. */
.scores-new-layout{top:26.9cqh!important;height:55.0cqh!important}
.scores-new-screen .v-scroll{top:27.4cqh!important;height:54.1cqh!important}
.score-podium{padding-top:.8cqh!important;padding-bottom:.8cqh!important}
.scores-ranking{padding-bottom:1cqh!important}

/* 08-settings — only the mechanic cat receives a gentle floating breath. */
.settings-mechanic-cat{
  transform-origin:50% 86%!important;animation:settingsMechanicFloat 4.9s ease-in-out infinite!important;will-change:transform!important;
}
@keyframes settingsMechanicFloat{
  0%,100%{transform:translate3d(0,.25cqh,0) rotate(-.18deg)}
  50%{transform:translate3d(0,-1.05cqh,0) rotate(.22deg)}
}

/* 12-nextlevel-01 — rebuilt spacing on the right: headline, score and three
   buttons have their own vertical bands and can no longer overlap. */
.game-modal.next-level-ref .modal-copy{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;pointer-events:none!important}
.game-modal.next-level-ref .modal-copy small{
  position:absolute!important;left:57.2cqw!important;top:8.2cqh!important;width:36.3cqw!important;height:5cqh!important;
  display:grid!important;place-items:center!important;margin:0!important;font-size:3.55cqh!important;line-height:1!important;text-align:center!important;
}
.game-modal.next-level-ref .modal-copy h2{
  position:absolute!important;left:53.2cqw!important;top:14.3cqh!important;width:43.0cqw!important;height:20.0cqh!important;
  display:flex!important;align-items:center!important;justify-content:center!important;margin:0!important;padding:0 1cqw!important;
  font-size:8.25cqh!important;line-height:.91!important;letter-spacing:-.025em!important;text-align:center!important;overflow:visible!important;
}
.game-modal.next-level-ref .modal-copy p{
  position:absolute!important;left:58.5cqw!important;top:39.2cqh!important;width:32.5cqw!important;height:4cqh!important;
  display:grid!important;place-items:center!important;margin:0!important;font-size:3.0cqh!important;line-height:1!important;text-align:center!important;
}
.game-modal.next-level-ref .modal-copy strong{
  position:absolute!important;left:53.2cqw!important;top:45.0cqh!important;width:43.0cqw!important;height:7cqh!important;
  display:grid!important;place-items:center!important;margin:0!important;font-size:5.55cqh!important;line-height:1!important;text-align:center!important;
}
.game-modal.next-level-ref .modal-actions{
  position:absolute!important;left:52.2cqw!important;top:57.0cqh!important;width:43.0cqw!important;height:29.5cqh!important;
}
.game-modal.next-level-ref .modal-primary{
  left:0!important;top:0!important;width:40.5cqw!important;height:12.5cqh!important;font-size:4.15cqh!important;
}
.game-modal.next-level-ref .modal-menu{
  left:1.8cqw!important;top:16.6cqh!important;width:20.5cqw!important;height:9.5cqh!important;font-size:2.55cqh!important;
}
.game-modal.next-level-ref .result-submit-button{
  left:74.5cqw!important;top:73.6cqh!important;width:20.2cqw!important;height:9.5cqh!important;font-size:2.5cqh!important;
}
html[lang="tr"] .game-modal.next-level-ref .modal-copy h2,
html[lang="it"] .game-modal.next-level-ref .modal-copy h2{font-size:7.2cqh!important}
html[lang="es"] .game-modal.next-level-ref .modal-copy h2,
html[lang="fr"] .game-modal.next-level-ref .modal-copy h2{font-size:7.45cqh!important}
html[lang="ja"] .game-modal.next-level-ref .modal-copy h2{font-size:6.65cqh!important;line-height:1!important}

/* Portrait safety: same content, taller carousel and smaller type, never clipped. */
@media(max-width:900px) and (orientation:portrait){
  .story-new-screen .story-carousel,.help-new-screen .help-carousel{left:7cqw!important;top:27cqh!important;width:86cqw!important;height:58.5cqh!important}
  .story-new-screen .h-scroll,.help-new-screen .h-scroll{left:8cqw!important;top:86.2cqh!important;width:84cqw!important}
  .story-slide{grid-template-columns:34cqw 1fr!important;gap:2.5cqw!important;padding:1cqh 2cqw!important}
  .story-slide-art{width:33cqw!important;height:48cqh!important}.story-slide-copy{height:54cqh!important;max-height:54cqh!important}
  .story-slide-copy h2{font-size:calc(2.7cqh * var(--ref-type-scale,1))!important}.story-slide-copy p{font-size:calc(1.18cqh * var(--ref-type-scale,1))!important}
  .help-slide h2{font-size:calc(2.55cqh * var(--ref-type-scale,1))!important}.help-slide h3{font-size:calc(2.0cqh * var(--ref-type-scale,1))!important}.help-slide p{font-size:calc(1.02cqh * var(--ref-type-scale,1))!important}
  .scores-new-layout{left:8cqw!important;top:27.5cqh!important;width:84cqw!important;height:58cqh!important;grid-template-columns:31cqw 1fr!important;gap:3cqw!important}.scores-new-screen .v-scroll{left:93cqw!important;top:28cqh!important;height:56.5cqh!important}
}

@media(prefers-reduced-motion:reduce){.settings-mechanic-cat{animation:none!important}}

/* ========================================================================== 
   V14 REFERENCE FIDELITY PASS — 2026-08-18
   Only the user-requested HOME / STORY / HELP / SCORES / NEXT LEVEL details.
   ========================================================================== */

/* HOME — 03-homeNew: keep the accepted orbit, only restore the authored scale
   of the language and chicken bubbles. */
@media (orientation:landscape){
  .bubble-home-screen .home-language-bubble{
    right:2.55cqw!important;top:7.9cqh!important;width:5.65cqw!important;height:10.65cqh!important;
  }
  .bubble-home-screen .home-language-bubble .language-flag-icon{
    width:54%!important;height:54%!important;top:51%!important;
  }
  .bubble-home-screen .home-bubble-chicken{
    left:88.55cqw!important;top:78.25cqh!important;width:8.1cqw!important;height:15.15cqh!important;
    overflow:visible!important;contain:none!important;
  }
  .bubble-home-screen .home-bubble-chicken .bubble-visual{overflow:visible!important;contain:none!important}
  .bubble-home-screen .home-bubble-chicken .home-chicken-icon{
    width:55%!important;height:57%!important;left:50%!important;top:50.5%!important;object-fit:contain!important;
  }
}
.bubble-home-screen .home-stats-new h2{white-space:nowrap!important}
html[lang="tr"] .bubble-home-screen .home-stats-new h2,
html[lang="es"] .bubble-home-screen .home-stats-new h2,
html[lang="it"] .bubble-home-screen .home-stats-new h2,
html[lang="fr"] .bubble-home-screen .home-stats-new h2{font-size:3.0cqh!important}
html[lang="ja"] .bubble-home-screen .home-stats-new h2{font-size:2.75cqh!important}
html[lang="tr"] .bubble-home-screen .home-stat-line,
html[lang="es"] .bubble-home-screen .home-stat-line,
html[lang="it"] .bubble-home-screen .home-stat-line,
html[lang="fr"] .bubble-home-screen .home-stat-line{font-size:1.72cqh!important}
html[lang="ja"] .bubble-home-screen .home-stat-line{font-size:1.62cqh!important}

/* STORY — keep the accepted layout, only lift the undersized body typography.
   The floor in JS prevents six-language auto-fit from shrinking these back to
   unreadable micro type. */
.story-slide-copy p{
  font-size:calc(1.55cqh * var(--ref-type-scale,1))!important;
  line-height:1.19!important;
}
.story-slide-2 .story-slide-copy p,
.story-slide-3 .story-slide-copy p,
.story-slide-4 .story-slide-copy p{
  font-size:calc(1.52cqh * var(--ref-type-scale,1))!important;
  line-height:1.18!important;
}
.story-slide-5 .story-slide-copy p{
  font-size:calc(1.42cqh * var(--ref-type-scale,1))!important;
  line-height:1.18!important;
}
.story-slide-quote{font-size:calc(2.05cqh * var(--ref-type-scale,1))!important}

/* HELP — 06-help-01..11.  The supplied 1920x1080 boards are the source of
   truth. Each slide owns its own image/copy order instead of sharing a generic
   card layout. */
.help-new-screen .help-carousel{
  left:21.2cqw!important;top:26.5cqh!important;width:72.85cqw!important;height:58.45cqh!important;
  mask-image:linear-gradient(90deg,transparent 0,#000 1.35%,#000 98.65%,transparent 100%)!important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 1.35%,#000 98.65%,transparent 100%)!important;
}
.help-new-screen .h-scroll{left:21.2cqw!important;top:85.7cqh!important;width:72.6cqw!important;height:2.8cqh!important}
.help-slide{padding:0!important;overflow:visible!important}
.help-slide h2{font-size:calc(3.75cqh * var(--ref-type-scale,1))!important;line-height:1!important;letter-spacing:-.012em!important}
.help-slide h3{font-size:calc(3.05cqh * var(--ref-type-scale,1))!important;line-height:1!important;letter-spacing:-.01em!important}
.help-slide p{font-size:calc(1.62cqh * var(--ref-type-scale,1))!important;line-height:1.18!important;font-weight:900!important;letter-spacing:.002em!important}
.help-slide strong,.help-slide b{font-size:calc(2.25cqh * var(--ref-type-scale,1))!important;line-height:1.05!important}
.help-ref-item{position:absolute!important;height:56cqh!important;display:block!important;text-align:center!important}
.help-ref-art{position:absolute!important;left:0!important;width:100%!important;height:27.5cqh!important;display:grid!important;place-items:center!important}
.help-ref-art>img{max-width:17.2cqw!important;max-height:27cqh!important;object-fit:contain!important}
.help-ref-copy{position:absolute!important;left:0!important;width:100%!important;text-align:center!important}
.help-ref-copy h3{margin:0 0 1.1cqh!important}
.help-ref-copy p{max-width:21.5cqw!important;margin:0 auto!important}

/* 01 — objective + how to play */
.help-objective-block{left:2.0%!important;top:11.8%!important;width:61.8%!important}
.help-objective-block h2{font-size:calc(4.15cqh * var(--ref-type-scale,1))!important;margin:0 0 2.0cqh!important}
.help-objective-block .help-objective-lead{
  font-size:calc(2.95cqh * var(--ref-type-scale,1))!important;line-height:1.16!important;
  max-width:46cqw!important;margin:0 auto 2.55cqh!important;
}
.help-objective-block p:last-child{font-size:calc(1.55cqh * var(--ref-type-scale,1))!important;max-width:48cqw!important;margin:0 auto!important}
.help-how-block{right:.9%!important;top:28.0%!important;width:28.2%!important}
.help-how-block h2{font-size:calc(3.25cqh * var(--ref-type-scale,1))!important;margin:0 0 1.7cqh!important}
.help-how-block p{font-size:calc(1.48cqh * var(--ref-type-scale,1))!important;max-width:22.5cqw!important;margin:auto!important}

/* 02 — Yarn / Pillows / Stones */
.help-slide-2 .help-yarn-worlds{left:0.5%!important;top:0!important;width:30.5%!important}
.help-slide-2 .help-yarn-worlds .help-ref-art{top:0!important;height:29.2cqh!important}
.help-slide-2 .help-yarn-worlds .help-ref-copy{top:31.0cqh!important}
.help-slide-2 .help-pillows{left:34.3%!important;top:0!important;width:30.3%!important}
.help-slide-2 .help-pillows .help-ref-copy{top:0!important}
.help-slide-2 .help-pillows .help-ref-art{top:28.0cqh!important;height:27.5cqh!important}
.help-slide-2 .help-stones{right:.2%!important;top:0!important;width:29.7%!important}
.help-slide-2 .help-stones .help-ref-art{top:0!important;height:27.8cqh!important}
.help-slide-2 .help-stones .help-ref-copy{top:31.0cqh!important}

/* 03 — Special Items / Bomb / Rocket */
.help-special-intro{left:1.2%!important;top:28.5%!important;width:30.5%!important}
.help-special-intro h2{font-size:calc(3.35cqh * var(--ref-type-scale,1))!important;margin:0 0 1.65cqh!important}
.help-special-intro p{font-size:calc(1.55cqh * var(--ref-type-scale,1))!important;max-width:23cqw!important;margin:auto!important}
.help-slide-3 .help-bomb{left:33.2%!important;top:0!important;width:31.5%!important}
.help-slide-3 .help-bomb .help-ref-copy{top:5.4cqh!important}
.help-slide-3 .help-bomb .help-ref-art{top:27.2cqh!important;height:28.3cqh!important}
.help-slide-3 .help-rocket{right:.2%!important;top:0!important;width:29.8%!important}
.help-slide-3 .help-rocket .help-ref-art{top:0!important;height:29.5cqh!important}
.help-slide-3 .help-rocket .help-ref-copy{top:31.2cqh!important}

/* 04 — Nuclear / Red Nuclear / Fish */
.help-slide-4 .help-nuclear{left:.3%!important;top:0!important;width:30.5%!important}
.help-slide-4 .help-nuclear .help-ref-art{top:0!important;height:29.0cqh!important}
.help-slide-4 .help-nuclear .help-ref-copy{top:31.4cqh!important}
.help-slide-4 .help-red-nuclear{left:34.1%!important;top:0!important;width:31.0%!important}
.help-slide-4 .help-red-nuclear .help-ref-copy{top:0!important}
.help-slide-4 .help-red-nuclear .help-ref-art{top:29.5cqh!important;height:26.0cqh!important}
.help-slide-4 .help-fish{right:.1%!important;top:0!important;width:30.0%!important}
.help-slide-4 .help-fish .help-ref-art{top:0!important;height:29.0cqh!important}
.help-slide-4 .help-fish .help-ref-copy{top:31.4cqh!important}
.help-slide-4 .help-red-nuclear .help-red-nuclear-base{width:15.0cqw!important;height:25.0cqh!important}
.help-slide-4 .help-red-nuclear .help-red-nuclear-symbol{width:6.25cqw!important;height:10.2cqh!important}

/* 05 — Hamster / Yarn / Ice */
.help-slide-5 .help-hamster{left:.2%!important;top:0!important;width:30.7%!important}
.help-slide-5 .help-hamster .help-ref-copy{top:0!important}
.help-slide-5 .help-hamster .help-ref-art{top:29.0cqh!important;height:27cqh!important}
.help-slide-5 .help-yarn{left:34.1%!important;top:0!important;width:31.0%!important}
.help-slide-5 .help-yarn .help-ref-art{top:0!important;height:28.5cqh!important}
.help-slide-5 .help-yarn .help-ref-copy{top:30.7cqh!important}
.help-slide-5 .help-ice{right:.1%!important;top:0!important;width:30.0%!important}
.help-slide-5 .help-ice .help-ref-copy{top:0!important}
.help-slide-5 .help-ice .help-ref-art{top:29.1cqh!important;height:27cqh!important}

/* 06 — Chicken + Egg Chain */
.help-chain-copy{left:1.4%!important;top:11.0%!important;width:49.0%!important}
.help-chain-copy h2{font-size:calc(3.35cqh * var(--ref-type-scale,1))!important;margin:0 0 2.0cqh!important}
.help-chain-copy p{font-size:calc(1.55cqh * var(--ref-type-scale,1))!important;line-height:1.18!important;max-width:38cqw!important;margin:auto!important}
.help-chain-art{right:.2%!important;top:0!important;width:49.0%!important;height:56.0cqh!important}
.help-chain-chicken{left:50%!important;top:0!important;width:30.5cqw!important;height:50.0cqh!important}
.help-chain-egg{width:8.2cqw!important;height:14.0cqh!important;bottom:1.8cqh!important}
.help-chain-egg.egg-left{left:5%!important}.help-chain-egg.egg-right{right:4%!important}

/* 07 — PUF Bubble + Guide */
.help-slide-7 .help-puf-bubble{left:.2%!important;top:0!important;width:43.5%!important;height:56cqh!important}
.help-slide-7 .help-puf-bubble .help-ref-art{top:0!important;height:30.5cqh!important}
.help-slide-7 .help-puf-bubble .help-ref-art>img{max-width:22.5cqw!important;max-height:30.5cqh!important}
.help-slide-7 .help-puf-bubble .help-ref-copy{top:32.2cqh!important}
.help-slide-7 .help-puf-bubble .help-ref-copy p{max-width:31cqw!important}
.help-slide-7 .help-guide{
  right:-.2%!important;top:0!important;width:55.5%!important;height:56cqh!important;
  display:grid!important;grid-template-columns:46% 54%!important;align-items:center!important;
}
.help-slide-7 .help-guide .help-ref-copy{position:relative!important;left:auto!important;top:auto!important;width:auto!important;grid-column:1!important;grid-row:1!important;align-self:center!important}
.help-slide-7 .help-guide .help-ref-copy h3{font-size:calc(3.6cqh * var(--ref-type-scale,1))!important;line-height:1.18!important}
.help-slide-7 .help-guide .help-ref-copy p{max-width:25cqw!important;font-size:calc(1.5cqh * var(--ref-type-scale,1))!important}
.help-slide-7 .help-guide .help-ref-art{position:relative!important;left:auto!important;top:auto!important;width:auto!important;height:52cqh!important;grid-column:2!important;grid-row:1!important}
.help-slide-7 .help-guide .help-ref-art>img{max-width:25.5cqw!important;max-height:51.5cqh!important}

/* 08 — Power Buttons + PUF Store */
.help-power-copy{left:.4%!important;top:18.5%!important;width:42.5%!important}
.help-power-copy h2{font-size:calc(3.45cqh * var(--ref-type-scale,1))!important;margin:0 0 .7cqh!important}
.help-power-copy strong{font-size:calc(3.0cqh * var(--ref-type-scale,1))!important;line-height:1.15!important;margin:0 0 2.1cqh!important}
.help-power-copy p{font-size:calc(1.52cqh * var(--ref-type-scale,1))!important;max-width:33cqw!important;margin:auto!important}
.help-slide-8 .help-store{
  right:-.2%!important;top:1.0cqh!important;width:57.0%!important;height:54cqh!important;
  display:grid!important;grid-template-columns:54% 46%!important;align-items:center!important;
}
.help-slide-8 .help-store .help-ref-art{position:relative!important;left:auto!important;top:auto!important;width:auto!important;height:48cqh!important;grid-column:1!important;grid-row:1!important}
.help-slide-8 .help-store .help-ref-art>img{max-width:23.0cqw!important;max-height:43cqh!important}
.help-slide-8 .help-store .help-ref-copy{position:relative!important;left:auto!important;top:auto!important;width:auto!important;grid-column:2!important;grid-row:1!important}
.help-slide-8 .help-store .help-ref-copy h3{font-size:calc(3.45cqh * var(--ref-type-scale,1))!important}
.help-slide-8 .help-store .help-ref-copy p{max-width:24cqw!important;font-size:calc(1.5cqh * var(--ref-type-scale,1))!important}

/* 09 — four special powers in the exact authored alternating rhythm. */
.help-power-grid{position:absolute!important;inset:0!important;display:block!important;padding:0!important}
.help-power-grid .help-ref-item{position:absolute!important;display:block!important;height:56cqh!important}
.help-power-grid .help-ref-art{position:absolute!important;height:27.5cqh!important}
.help-power-grid .help-ref-copy{position:absolute!important}
.help-power-grid .help-ref-copy h3{font-size:calc(3.0cqh * var(--ref-type-scale,1))!important}
.help-power-grid .help-ref-copy p{font-size:calc(1.55cqh * var(--ref-type-scale,1))!important;max-width:21cqw!important}
.help-power-grid .help-power-pick{left:0!important;top:0!important;width:29.0%!important}
.help-power-grid .help-power-pick .help-ref-art{top:0!important}.help-power-grid .help-power-pick .help-ref-copy{top:31.0cqh!important}
.help-power-grid .help-power-gun{left:25.8%!important;top:0!important;width:31.0%!important}
.help-power-grid .help-power-gun .help-ref-copy{top:5.8cqh!important}.help-power-grid .help-power-gun .help-ref-art{top:28.2cqh!important}
.help-power-grid .help-power-clover{left:52.0%!important;top:0!important;width:28.5%!important}
.help-power-grid .help-power-clover .help-ref-art{top:0!important}.help-power-grid .help-power-clover .help-ref-copy{top:31.0cqh!important}
.help-power-grid .help-power-press{right:0!important;top:0!important;width:26.0%!important}
.help-power-grid .help-power-press .help-ref-copy{top:5.8cqh!important}.help-power-grid .help-power-press .help-ref-art{top:28.2cqh!important}
.help-power-grid .help-ref-art>img{max-width:17.0cqw!important;max-height:27cqh!important}

/* 10 — Baby Mode */
.help-baby-copy{left:1.3%!important;top:17.0%!important;width:60.0%!important}
.help-baby-copy h2{font-size:calc(3.55cqh * var(--ref-type-scale,1))!important;margin:0 0 2.0cqh!important}
.help-baby-copy p{font-size:calc(1.55cqh * var(--ref-type-scale,1))!important;line-height:1.18!important;max-width:50cqw!important;margin:auto!important}
.help-baby-ref-bubble{right:.7%!important;top:0!important;width:31.0cqw!important;height:55.0cqh!important}
.help-baby-ref-bubble .help-baby-cat{width:58%!important;height:62%!important}

/* 11 — Cat Rescue / Rewards / Tips & Tricks */
.help-last-left{left:.2%!important;top:5.0%!important;width:50.5%!important;height:49cqh!important}
.help-last-left section{padding:0 2.2cqw!important}
.help-last-left h2,.help-last-right h2{font-size:calc(3.4cqh * var(--ref-type-scale,1))!important;margin:0 0 1.5cqh!important}
.help-last-left p{font-size:calc(1.55cqh * var(--ref-type-scale,1))!important;max-width:38cqw!important}
.help-last-right{right:.2%!important;top:8.0%!important;width:48.0%!important;height:45cqh!important}
.help-last-right p{font-size:calc(1.48cqh * var(--ref-type-scale,1))!important;max-width:37cqw!important;margin:0 auto 3.6cqh!important}
.help-last-right strong{font-size:calc(3.15cqh * var(--ref-type-scale,1))!important;line-height:1.35!important;max-width:39cqw!important}
.help-last-right b{font-size:calc(3.15cqh * var(--ref-type-scale,1))!important;line-height:1.35!important;margin-top:.2cqh!important;max-width:39cqw!important}

/* SCORES — a little more vertical breathing room without touching the podium. */
.scores-new-layout{top:25.8cqh!important;height:57.3cqh!important}
.scores-new-screen .v-scroll{top:26.3cqh!important;height:56.2cqh!important}

/* LEVEL COMPLETE — 12-nextlevel-01. Reset older centering transforms first,
   then place every element by the authored panel coordinates. */
.game-modal.next-level-ref .modal-copy>*{translate:none!important;transform:none!important}
.game-modal.next-level-ref .level-result-stats{
  left:3.25cqw!important;top:7.2cqh!important;width:16.8cqw!important;height:69.5cqh!important;
  grid-template-rows:repeat(5,1fr)!important;
}
.game-modal.next-level-ref .level-result-stats>span{height:12.8cqh!important;gap:.75cqw!important}
.game-modal.next-level-ref .level-result-stats>span>img:first-child{width:6.1cqw!important;height:11.0cqh!important}
.game-modal.next-level-ref .level-result-stats>span:nth-child(4)>img:first-child{width:5.7cqw!important;height:10.5cqh!important}
.game-modal.next-level-ref .level-result-stats b{font-size:4.45cqh!important}
.game-modal.next-level-ref .level-result-stats .result-check{width:3.9cqw!important;height:7.0cqh!important}
.game-modal.next-level-ref .modal-cat{
  left:13.9cqw!important;top:-11.0cqh!important;width:45.2cqw!important;height:106cqh!important;object-fit:contain!important;
}
.game-modal.next-level-ref .modal-copy small{
  left:61.2cqw!important;top:8.0cqh!important;width:31.5cqw!important;height:auto!important;
  font-size:3.75cqh!important;line-height:1!important;text-align:center!important;
}
.game-modal.next-level-ref .modal-copy h2{
  left:54.8cqw!important;top:14.2cqh!important;width:41.3cqw!important;height:auto!important;
  padding:0!important;font-size:8.9cqh!important;line-height:.90!important;letter-spacing:-.025em!important;
  display:block!important;text-align:center!important;overflow:visible!important;
}
.game-modal.next-level-ref .modal-copy p{
  left:63.2cqw!important;top:43.6cqh!important;width:27.0cqw!important;height:auto!important;
  font-size:3.1cqh!important;line-height:1!important;display:block!important;text-align:center!important;
}
.game-modal.next-level-ref .modal-copy strong{
  left:58.0cqw!important;top:50.6cqh!important;width:37.4cqw!important;height:auto!important;
  font-size:5.85cqh!important;line-height:1!important;display:block!important;text-align:center!important;
}
.game-modal.next-level-ref .modal-actions{
  left:53.0cqw!important;top:63.2cqh!important;width:42.6cqw!important;height:28.5cqh!important;
}
.game-modal.next-level-ref .modal-primary{
  left:0!important;top:0!important;width:40.8cqw!important;height:13.8cqh!important;
  font-size:4.35cqh!important;padding-right:3.7cqw!important;
}
.game-modal.next-level-ref .modal-primary img{right:-3.0cqw!important;top:-.55cqh!important;width:9.1cqw!important}
.game-modal.next-level-ref .modal-menu{
  left:-1.7cqw!important;top:18.0cqh!important;width:21.2cqw!important;height:9.6cqh!important;font-size:2.85cqh!important;
}
.game-modal.next-level-ref .result-submit-button{
  left:73.3cqw!important;top:81.2cqh!important;width:21.7cqw!important;height:9.6cqh!important;font-size:2.7cqh!important;
}
html[lang="tr"] .game-modal.next-level-ref .modal-copy h2,
html[lang="it"] .game-modal.next-level-ref .modal-copy h2{font-size:7.8cqh!important}
html[lang="es"] .game-modal.next-level-ref .modal-copy h2,
html[lang="fr"] .game-modal.next-level-ref .modal-copy h2{font-size:8.0cqh!important}
html[lang="ja"] .game-modal.next-level-ref .modal-copy h2{font-size:7.15cqh!important;line-height:1!important}

@media(max-width:900px) and (orientation:portrait){
  .bubble-home-screen .home-language-bubble{right:3.0cqw!important;top:8.0cqh!important;width:10.5cqw!important;height:10.5cqw!important}
  .bubble-home-screen .home-bubble-chicken{left:84.8cqw!important;top:82.2cqh!important;width:11.8cqw!important;height:11.8cqw!important}
  .bubble-home-screen .home-bubble-chicken .home-chicken-icon{width:55%!important;height:57%!important}
  .story-new-screen .story-carousel,.help-new-screen .help-carousel{height:60cqh!important}
  .story-new-screen .h-scroll,.help-new-screen .h-scroll{top:87.4cqh!important}
}

/* V14 typography micro-adjustments after the reference-by-reference pass. */
.story-slide-copy p{font-size:calc(1.65cqh * var(--ref-type-scale,1))!important}
.story-slide-2 .story-slide-copy p,
.story-slide-3 .story-slide-copy p,
.story-slide-4 .story-slide-copy p{font-size:calc(1.70cqh * var(--ref-type-scale,1))!important}
.story-slide-5 .story-slide-copy p{font-size:calc(1.56cqh * var(--ref-type-scale,1))!important}
.help-baby-copy .help-baby-lead{
  display:block!important;margin:0 auto 2.3cqh!important;max-width:52cqw!important;
  font-size:calc(3.15cqh * var(--ref-type-scale,1))!important;line-height:1.18!important;text-align:center!important;
}
.help-baby-copy p{font-size:calc(1.5cqh * var(--ref-type-scale,1))!important;line-height:1.18!important;max-width:52cqw!important}
@media (orientation:landscape){
  .bubble-home-screen .home-bubble-chicken{left:88.75cqw!important;top:79.1cqh!important;width:7.6cqw!important;height:14.3cqh!important}
}

/* 12-nextlevel-01 final pixel-space alignment against the supplied panel. */
.game-modal.next-level-ref .level-result-stats{
  left:2.5cqw!important;top:4.5cqh!important;width:17.2cqw!important;height:84.5cqh!important;
}
.game-modal.next-level-ref .level-result-stats>span{height:16.4cqh!important}
.game-modal.next-level-ref .level-result-stats>span>img:first-child{width:6.35cqw!important;height:12.5cqh!important}
.game-modal.next-level-ref .level-result-stats>span:nth-child(4)>img:first-child{width:5.9cqw!important;height:11.8cqh!important}
.game-modal.next-level-ref .level-result-stats b{font-size:4.7cqh!important}
.game-modal.next-level-ref .modal-copy small{left:64.0cqw!important;top:7.1cqh!important;width:25.5cqw!important;font-size:3.8cqh!important}
.game-modal.next-level-ref .modal-copy h2{left:54.9cqw!important;top:16.1cqh!important;width:40.5cqw!important;font-size:9.35cqh!important;line-height:.91!important}
.game-modal.next-level-ref .modal-copy p{left:64.0cqw!important;top:45.8cqh!important;width:25.5cqw!important;font-size:3.35cqh!important}
.game-modal.next-level-ref .modal-copy strong{left:57.3cqw!important;top:53.3cqh!important;width:39.2cqw!important;font-size:6.25cqh!important}
.game-modal.next-level-ref .modal-actions{left:55.1cqw!important;top:68.2cqh!important;width:40.0cqw!important;height:31cqh!important}
.game-modal.next-level-ref .modal-primary{left:0!important;top:0!important;width:36.3cqw!important;height:14.4cqh!important;font-size:5.15cqh!important}
.game-modal.next-level-ref .modal-primary img{right:-3.2cqw!important;top:-.5cqh!important;width:8.7cqw!important}
.game-modal.next-level-ref .modal-menu{left:-4.5cqw!important;top:22.5cqh!important;width:23.0cqw!important;height:10.1cqh!important;font-size:3.55cqh!important}
.game-modal.next-level-ref .result-submit-button{left:75.35cqw!important;top:90.7cqh!important;width:22.0cqw!important;height:10.1cqh!important;font-size:3.4cqh!important}
html[lang="tr"] .game-modal.next-level-ref .modal-copy h2,
html[lang="it"] .game-modal.next-level-ref .modal-copy h2{font-size:8.0cqh!important}
html[lang="es"] .game-modal.next-level-ref .modal-copy h2,
html[lang="fr"] .game-modal.next-level-ref .modal-copy h2{font-size:8.25cqh!important}
html[lang="ja"] .game-modal.next-level-ref .modal-copy h2{font-size:7.3cqh!important}
html[lang="tr"] .game-modal.next-level-ref .modal-primary{font-size:4.4cqh!important}
html[lang="es"] .game-modal.next-level-ref .modal-primary,
html[lang="it"] .game-modal.next-level-ref .modal-primary,
html[lang="fr"] .game-modal.next-level-ref .modal-primary{font-size:4.55cqh!important}
html[lang="ja"] .game-modal.next-level-ref .modal-primary{font-size:4.35cqh!important}
html[lang="tr"] .game-modal.next-level-ref .modal-menu,
html[lang="tr"] .game-modal.next-level-ref .result-submit-button,
html[lang="es"] .game-modal.next-level-ref .modal-menu,
html[lang="es"] .game-modal.next-level-ref .result-submit-button,
html[lang="it"] .game-modal.next-level-ref .modal-menu,
html[lang="it"] .game-modal.next-level-ref .result-submit-button,
html[lang="fr"] .game-modal.next-level-ref .modal-menu,
html[lang="fr"] .game-modal.next-level-ref .result-submit-button{font-size:3.0cqh!important}
html[lang="ja"] .game-modal.next-level-ref .modal-menu,
html[lang="ja"] .game-modal.next-level-ref .result-submit-button{font-size:2.85cqh!important}

/* ========================================================================== 
   V15 — AUTHORITATIVE REFERENCE LOCK / 2026-08-18
   These rules intentionally have higher specificity than the generic HOME
   bubble rule and replace the accumulated HELP/NEXT-LEVEL placement patches.
   STORY / SETTINGS / CREDITS are intentionally untouched.
   ========================================================================== */

/* 03-homeNew — the language and chicken portals are deliberately much smaller
   than the nine menu portals. The compound selectors stop the generic
   .home-bubble-card:not(.home-bubble-start) rule from enlarging them again. */
@media (orientation:landscape){
  .bubble-home-screen .home-bubble-card.home-language-bubble{
    right:3.12cqw!important;left:auto!important;top:8.15cqh!important;
    width:5.05cqw!important;height:8.98cqh!important;
    min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;
  }
  .bubble-home-screen .home-bubble-card.home-language-bubble .bubble-visual{
    width:100%!important;height:100%!important;overflow:visible!important;
  }
  .bubble-home-screen .home-bubble-card.home-language-bubble .language-flag-icon{
    width:50%!important;height:50%!important;left:50%!important;top:50%!important;object-fit:contain!important;
  }
  .bubble-home-screen .home-bubble-card.home-bubble-chicken{
    left:88.72cqw!important;right:auto!important;top:80.05cqh!important;
    width:7.45cqw!important;height:13.25cqh!important;
    min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;
    overflow:visible!important;contain:none!important;
  }
  .bubble-home-screen .home-bubble-card.home-bubble-chicken .bubble-visual{
    width:100%!important;height:100%!important;overflow:visible!important;contain:none!important;
  }
  .bubble-home-screen .home-bubble-card.home-bubble-chicken .home-chicken-icon{
    width:48%!important;height:50%!important;left:50%!important;top:50.5%!important;
    object-fit:contain!important;overflow:visible!important;
  }
  .bubble-home-screen .home-bubble-card.home-language-bubble:hover .bubble-visual,
  .bubble-home-screen .home-bubble-card.home-language-bubble:focus-visible .bubble-visual,
  .bubble-home-screen .home-bubble-card.home-bubble-chicken:hover .bubble-visual,
  .bubble-home-screen .home-bubble-card.home-bubble-chicken:focus-visible .bubble-visual{scale:1.035!important}
}
@media(max-width:900px) and (orientation:portrait){
  .bubble-home-screen .home-bubble-card.home-language-bubble{
    right:3.2cqw!important;left:auto!important;top:7.4cqh!important;width:8.2cqw!important;height:8.2cqw!important;
  }
  .bubble-home-screen .home-bubble-card.home-language-bubble .language-flag-icon{width:50%!important;height:50%!important}
  .bubble-home-screen .home-bubble-card.home-bubble-chicken{
    left:86.3cqw!important;top:83.0cqh!important;width:9.3cqw!important;height:9.3cqw!important;
  }
  .bubble-home-screen .home-bubble-card.home-bubble-chicken .home-chicken-icon{width:48%!important;height:50%!important}
}

/* EXIT — restore the original, unwarped two-button artwork. Later screen rules
   must never stretch/skew these button skins. */
.game-exit-card .game-exit-actions{transform:none!important;rotate:0deg!important;skew:none!important}
.game-exit-card .game-exit-actions button,
.game-exit-card .game-exit-actions button:hover,
.game-exit-card .game-exit-actions button:focus-visible{
  box-sizing:border-box!important;appearance:none!important;border:0!important;border-radius:0!important;
  clip-path:none!important;rotate:0deg!important;skew:none!important;translate:none!important;
  width:29.3cqw!important;height:11.5cqh!important;min-width:0!important;min-height:0!important;
  max-width:none!important;max-height:none!important;flex:0 0 11.5cqh!important;
  background-image:url('../assets/but1.png')!important;background-position:center!important;
  background-size:100% 100%!important;background-repeat:no-repeat!important;
  padding:0!important;box-shadow:none!important;
}
.game-exit-card .game-exit-actions .to-menu{
  width:25.7cqw!important;background-image:url('../assets/but2.png')!important;
}
.game-exit-card .game-exit-actions button:not(:hover):not(:focus-visible){transform:none!important;scale:1!important}
.game-exit-card .game-exit-actions button:hover,
.game-exit-card .game-exit-actions button:focus-visible{transform:scale(1.025)!important;scale:1!important}

/* 06-help-01..11 — the supplied pages use a wide clear tutorial field.
   Keep all copy visible and reproduce each art/copy alternation explicitly. */
.help-new-screen .help-carousel{
  left:20.9cqw!important;top:25.4cqh!important;width:73.4cqw!important;height:58.7cqh!important;
  overflow-x:auto!important;overflow-y:visible!important;
  mask-image:linear-gradient(90deg,transparent 0,#000 1.25%,#000 98.75%,transparent 100%)!important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 1.25%,#000 98.75%,transparent 100%)!important;
}
.help-new-screen .h-scroll{left:21.1cqw!important;top:84.7cqh!important;width:72.8cqw!important;height:2.8cqh!important}
.help-new-screen .help-slide{padding:.4cqh .7cqw!important;overflow:visible!important;box-sizing:border-box!important}
.help-new-screen .help-slide h2{font-size:calc(3.25cqh * var(--ref-type-scale,1))!important;line-height:1!important;margin:0!important}
.help-new-screen .help-slide h3{font-size:calc(2.62cqh * var(--ref-type-scale,1))!important;line-height:1!important;margin:0 0 .8cqh!important}
.help-new-screen .help-slide p{font-size:calc(1.38cqh * var(--ref-type-scale,1))!important;line-height:1.16!important;font-weight:900!important;margin:0!important}
.help-new-screen .help-slide strong,.help-new-screen .help-slide b{line-height:1.08!important}
.help-new-screen .help-ref-item{overflow:visible!important}
.help-new-screen .help-ref-art{height:26.5cqh!important;overflow:visible!important}
.help-new-screen .help-ref-art>img{max-width:16.7cqw!important;max-height:25.8cqh!important;object-fit:contain!important}
.help-new-screen .help-ref-copy{overflow:visible!important}
.help-new-screen .help-ref-copy p{max-width:20.5cqw!important;margin:0 auto!important}

/* 01 — GAME OBJECTIVE centered, HOW TO PLAY at the far right. */
.help-new-screen .help-slide-1 .help-objective-block{left:7.5%!important;top:17%!important;width:56%!important}
.help-new-screen .help-slide-1 .help-objective-block h2{font-size:calc(3.55cqh * var(--ref-type-scale,1))!important;margin-bottom:1.25cqh!important}
.help-new-screen .help-slide-1 .help-objective-lead{font-size:calc(1.95cqh * var(--ref-type-scale,1))!important;line-height:1.13!important;max-width:40cqw!important;margin:0 auto 2.0cqh!important}
.help-new-screen .help-slide-1 .help-objective-block p:last-child{font-size:calc(1.18cqh * var(--ref-type-scale,1))!important;max-width:43cqw!important;line-height:1.16!important}
.help-new-screen .help-slide-1 .help-how-block{right:1.3%!important;top:24%!important;width:28.5%!important}
.help-new-screen .help-slide-1 .help-how-block h2{font-size:calc(2.75cqh * var(--ref-type-scale,1))!important;margin-bottom:1.2cqh!important}
.help-new-screen .help-slide-1 .help-how-block p{font-size:calc(1.28cqh * var(--ref-type-scale,1))!important;line-height:1.16!important;max-width:20.5cqw!important}

/* 02 — art/copy / copy/art / art/copy, exactly as supplied. */
.help-new-screen .help-slide-2 .help-yarn-worlds{left:3.0%!important;top:2.0%!important;width:29.5%!important}
.help-new-screen .help-slide-2 .help-pillows{left:35.4%!important;top:9.0%!important;width:29.0%!important}
.help-new-screen .help-slide-2 .help-stones{right:1.2%!important;top:2.0%!important;width:29.5%!important}
.help-new-screen .help-slide-2 .help-pillows .help-ref-copy{order:-1!important;margin-bottom:1.4cqh!important}
.help-new-screen .help-slide-2 .help-yarn-worlds .help-ref-art,
.help-new-screen .help-slide-2 .help-stones .help-ref-art{height:29cqh!important}
.help-new-screen .help-slide-2 .help-pillows .help-ref-art{height:25cqh!important}

/* 03 — SPECIAL ITEMS text left, BOMB copy over art, ROCKET art over copy. */
.help-new-screen .help-slide-3 .help-special-intro{left:2.8%!important;top:31%!important;width:29%!important}
.help-new-screen .help-slide-3 .help-special-intro h2{font-size:calc(2.75cqh * var(--ref-type-scale,1))!important;margin-bottom:1.1cqh!important}
.help-new-screen .help-slide-3 .help-special-intro p{font-size:calc(1.32cqh * var(--ref-type-scale,1))!important;max-width:20cqw!important;margin:auto!important}
.help-new-screen .help-slide-3 .help-bomb{left:35.0%!important;top:7.5%!important;width:28.5%!important}
.help-new-screen .help-slide-3 .help-bomb .help-ref-copy{order:-1!important;margin-bottom:1.35cqh!important}
.help-new-screen .help-slide-3 .help-bomb .help-ref-art{height:28cqh!important}
.help-new-screen .help-slide-3 .help-rocket{right:2.0%!important;top:3.0%!important;width:29.0%!important}
.help-new-screen .help-slide-3 .help-rocket .help-ref-art{height:30cqh!important}

/* 04 — NUCLEAR art first, RED NUCLEAR copy first, FISH art first. */
.help-new-screen .help-slide-4 .help-nuclear{left:2.5%!important;top:2.5%!important;width:29%!important}
.help-new-screen .help-slide-4 .help-red-nuclear{left:35.5%!important;top:6.0%!important;width:29%!important}
.help-new-screen .help-slide-4 .help-fish{right:1.5%!important;top:2.5%!important;width:29%!important}
.help-new-screen .help-slide-4 .help-red-nuclear .help-ref-copy{order:-1!important;margin-bottom:1.35cqh!important}
.help-new-screen .help-slide-4 .help-ref-art{height:29.0cqh!important}
.help-new-screen .help-slide-4 .help-red-nuclear-base{width:15.2cqw!important;height:25.0cqh!important}
.help-new-screen .help-slide-4 .help-red-nuclear-symbol{width:6.2cqw!important;height:10.5cqh!important}

/* 05 — HAMSTER copy first, YARN art first, ICE copy first. */
.help-new-screen .help-slide-5 .help-hamster{left:2.0%!important;top:7.0%!important;width:29.5%!important}
.help-new-screen .help-slide-5 .help-yarn{left:35.3%!important;top:2.0%!important;width:29.5%!important}
.help-new-screen .help-slide-5 .help-ice{right:1.3%!important;top:7.0%!important;width:29.5%!important}
.help-new-screen .help-slide-5 .help-hamster .help-ref-copy,
.help-new-screen .help-slide-5 .help-ice .help-ref-copy{order:-1!important;margin-bottom:1.2cqh!important}
.help-new-screen .help-slide-5 .help-ref-art{height:29cqh!important}

/* 06 — explanatory block left, large chicken/egg composition right. */
.help-new-screen .help-slide-6 .help-chain-copy{left:5%!important;top:18%!important;width:49%!important}
.help-new-screen .help-slide-6 .help-chain-copy h2{font-size:calc(3.15cqh * var(--ref-type-scale,1))!important;margin-bottom:1.3cqh!important}
.help-new-screen .help-slide-6 .help-chain-copy p{font-size:calc(1.36cqh * var(--ref-type-scale,1))!important;line-height:1.16!important;max-width:35cqw!important}
.help-new-screen .help-slide-6 .help-chain-art{right:0!important;top:-1.5cqh!important;width:43%!important;height:57cqh!important}
.help-new-screen .help-slide-6 .help-chain-chicken{width:25.5cqw!important;height:49.5cqh!important}
.help-new-screen .help-slide-6 .help-chain-egg{width:7.6cqw!important;height:13.5cqh!important;bottom:1.0cqh!important}

/* 07 — PUF Bubble vertical on the left; Guide text then large art on the right. */
.help-new-screen .help-slide-7 .help-puf-bubble{left:3.5%!important;top:1.5%!important;width:40.5%!important}
.help-new-screen .help-slide-7 .help-puf-bubble .help-ref-art{height:31cqh!important}
.help-new-screen .help-slide-7 .help-puf-bubble .help-ref-art>img{max-width:20.5cqw!important;max-height:30cqh!important}
.help-new-screen .help-slide-7 .help-puf-bubble .help-ref-copy p{max-width:28cqw!important}
.help-new-screen .help-slide-7 .help-guide{
  right:.8%!important;top:3.0%!important;width:52%!important;height:49cqh!important;
  display:grid!important;grid-template-columns:46% 54%!important;align-items:center!important;
}
.help-new-screen .help-slide-7 .help-guide .help-ref-copy{grid-column:1!important;grid-row:1!important;padding:0 .7cqw!important}
.help-new-screen .help-slide-7 .help-guide .help-ref-copy p{max-width:24cqw!important}
.help-new-screen .help-slide-7 .help-guide .help-ref-art{grid-column:2!important;grid-row:1!important;height:46cqh!important}
.help-new-screen .help-slide-7 .help-guide .help-ref-art>img{max-width:22cqw!important;max-height:44cqh!important}

/* 08 — Power text left, dominant PUF STORE icon in the middle, store copy right. */
.help-new-screen .help-slide-8 .help-power-copy{left:5%!important;top:27%!important;width:40%!important}
.help-new-screen .help-slide-8 .help-power-copy h2{font-size:calc(3.35cqh * var(--ref-type-scale,1))!important;margin-bottom:.85cqh!important}
.help-new-screen .help-slide-8 .help-power-copy strong{font-size:calc(2.35cqh * var(--ref-type-scale,1))!important;margin-bottom:1.15cqh!important}
.help-new-screen .help-slide-8 .help-power-copy p{font-size:calc(1.34cqh * var(--ref-type-scale,1))!important;max-width:30cqw!important}
.help-new-screen .help-slide-8 .help-store{
  right:1.5%!important;top:5%!important;width:52%!important;height:49cqh!important;
  display:grid!important;grid-template-columns:48% 52%!important;align-items:center!important;
}
.help-new-screen .help-slide-8 .help-store .help-ref-art{grid-column:1!important;grid-row:1!important;height:43cqh!important}
.help-new-screen .help-slide-8 .help-store .help-ref-art>img{max-width:20.5cqw!important;max-height:38cqh!important}
.help-new-screen .help-slide-8 .help-store .help-ref-copy{grid-column:2!important;grid-row:1!important;padding:0 .5cqw!important}
.help-new-screen .help-slide-8 .help-store .help-ref-copy p{max-width:19cqw!important}

/* 09 — four authored islands, not a generic 2x2 card grid. */
.help-new-screen .help-slide-9 .help-power-grid{position:absolute!important;inset:0!important;display:block!important;padding:0!important}
.help-new-screen .help-slide-9 .help-power-grid .help-ref-item{position:absolute!important;display:flex!important;grid-template-columns:none!important;width:24%!important;height:auto!important}
.help-new-screen .help-slide-9 .help-power-grid .help-ref-art{height:26cqh!important}
.help-new-screen .help-slide-9 .help-power-grid .help-ref-art>img{max-width:15.8cqw!important;max-height:25cqh!important}
.help-new-screen .help-slide-9 .help-power-grid .help-ref-copy h3{font-size:calc(2.55cqh * var(--ref-type-scale,1))!important}
.help-new-screen .help-slide-9 .help-power-grid .help-ref-copy p{font-size:calc(1.30cqh * var(--ref-type-scale,1))!important;max-width:18cqw!important}
.help-new-screen .help-slide-9 .help-power-pick{left:7.0%!important;top:3%!important}
.help-new-screen .help-slide-9 .help-power-gun{left:34.0%!important;top:14%!important}
.help-new-screen .help-slide-9 .help-power-gun .help-ref-copy{order:-1!important;margin-bottom:1.1cqh!important}
.help-new-screen .help-slide-9 .help-power-clover{left:58.0%!important;top:1%!important}
.help-new-screen .help-slide-9 .help-power-press{right:0.3%!important;left:auto!important;top:13%!important}
.help-new-screen .help-slide-9 .help-power-press .help-ref-copy{order:-1!important;margin-bottom:1.1cqh!important}

/* 10 — centered Baby Mode copy with the small authored portal on the right. */
.help-new-screen .help-slide-10 .help-baby-copy{left:7%!important;top:28%!important;width:59%!important}
.help-new-screen .help-slide-10 .help-baby-copy h2{font-size:calc(3.05cqh * var(--ref-type-scale,1))!important;margin-bottom:1.15cqh!important}
.help-new-screen .help-slide-10 .help-baby-copy .help-baby-lead{font-size:calc(2.48cqh * var(--ref-type-scale,1))!important;line-height:1.12!important;max-width:48cqw!important;margin:0 auto 1.35cqh!important}
.help-new-screen .help-slide-10 .help-baby-copy p{font-size:calc(1.28cqh * var(--ref-type-scale,1))!important;line-height:1.15!important;max-width:48cqw!important}
.help-new-screen .help-slide-10 .help-baby-ref-bubble{right:3.1%!important;top:7%!important;width:25.5cqw!important;height:46cqh!important}
.help-new-screen .help-slide-10 .help-baby-ref-bubble .help-baby-cat{width:58%!important;height:60%!important}

/* 11 — CAT RESCUE / REWARDS left; TIPS and the large closing line right. */
.help-new-screen .help-slide-12 .help-last-left{left:5%!important;top:12%!important;width:44%!important;height:40cqh!important;grid-template-rows:1fr 1fr!important}
.help-new-screen .help-slide-12 .help-last-left h2,
.help-new-screen .help-slide-12 .help-last-right h2{font-size:calc(2.8cqh * var(--ref-type-scale,1))!important;margin-bottom:1.0cqh!important}
.help-new-screen .help-slide-12 .help-last-left p{font-size:calc(1.28cqh * var(--ref-type-scale,1))!important;max-width:30cqw!important}
.help-new-screen .help-slide-12 .help-last-right{right:3%!important;top:14%!important;width:43%!important;height:38cqh!important}
.help-new-screen .help-slide-12 .help-last-right p{font-size:calc(1.28cqh * var(--ref-type-scale,1))!important;max-width:29cqw!important;margin-bottom:2.6cqh!important}
.help-new-screen .help-slide-12 .help-last-right strong{font-size:calc(3.05cqh * var(--ref-type-scale,1))!important;line-height:1.05!important;max-width:31cqw!important}
.help-new-screen .help-slide-12 .help-last-right b{font-size:calc(2.05cqh * var(--ref-type-scale,1))!important;margin-top:1.25cqh!important}

@media(max-width:900px) and (orientation:portrait){
  .help-new-screen .help-carousel{left:6.5cqw!important;top:26.5cqh!important;width:87cqw!important;height:60.5cqh!important}
  .help-new-screen .h-scroll{left:7.5cqw!important;top:87.8cqh!important;width:85cqw!important}
  .help-new-screen .help-slide p{font-size:calc(1.08cqh * var(--ref-type-scale,1))!important}
  .help-new-screen .help-slide h3{font-size:calc(2.0cqh * var(--ref-type-scale,1))!important}
}

/* 12-nextlevel-01 — exact visual hierarchy from the supplied 1648x927 design.
   Percentages are relative to the stitched 1569x777 panel. */
.game-modal.next-level-ref .modal-copy>*{translate:none!important;transform:none!important}
.game-modal.next-level-ref .level-result-stats{
  left:3.8cqw!important;top:6.0cqh!important;width:17.6cqw!important;height:82.5cqh!important;
  display:grid!important;grid-template-rows:repeat(5,1fr)!important;align-items:center!important;
}
.game-modal.next-level-ref .level-result-stats>span{height:15.9cqh!important;gap:.85cqw!important;align-items:center!important}
.game-modal.next-level-ref .level-result-stats>span>img:first-child{width:6.5cqw!important;height:13.2cqh!important;object-fit:contain!important}
.game-modal.next-level-ref .level-result-stats>span:nth-child(4)>img:first-child{width:6.15cqw!important;height:14.3cqh!important}
.game-modal.next-level-ref .level-result-stats b{font-size:6.05cqh!important;line-height:1!important;white-space:nowrap!important}
.game-modal.next-level-ref .level-result-stats .result-check{width:3.95cqw!important;height:7.8cqh!important;object-fit:contain!important}
.game-modal.next-level-ref .modal-cat{
  left:14.2cqw!important;top:-12.8cqh!important;width:46.0cqw!important;height:116cqh!important;object-fit:contain!important;
}
.game-modal.next-level-ref .modal-copy{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;text-align:center!important}
.game-modal.next-level-ref .modal-copy small{
  left:63.0cqw!important;top:9.6cqh!important;width:28.5cqw!important;height:auto!important;
  font-size:4.65cqh!important;line-height:1!important;margin:0!important;text-align:center!important;
}
.game-modal.next-level-ref .modal-copy h2{
  left:56.3cqw!important;top:18.0cqh!important;width:39.5cqw!important;height:auto!important;
  padding:0!important;margin:0!important;font-size:10.8cqh!important;line-height:.90!important;letter-spacing:-.028em!important;text-align:center!important;
}
.game-modal.next-level-ref .modal-copy p{
  left:63.0cqw!important;top:48.0cqh!important;width:28.5cqw!important;height:auto!important;
  font-size:4.55cqh!important;line-height:1!important;margin:0!important;text-align:center!important;
}
.game-modal.next-level-ref .modal-copy strong{
  left:56.7cqw!important;top:55.5cqh!important;width:40.5cqw!important;height:auto!important;
  font-size:7.8cqh!important;line-height:1!important;margin:0!important;text-align:center!important;
}
.game-modal.next-level-ref .modal-actions{
  position:absolute!important;left:56.8cqw!important;top:69.3cqh!important;width:38.0cqw!important;height:30.7cqh!important;transform:none!important;
}
.game-modal.next-level-ref .modal-primary{
  left:0!important;top:0!important;width:35.9cqw!important;height:18.6cqh!important;
  min-height:0!important;padding:0 3.6cqw 0 0!important;background-size:100% 100%!important;
  border:0!important;border-radius:0!important;clip-path:none!important;rotate:0deg!important;skew:none!important;
  font-size:5.0cqh!important;line-height:1!important;
}
.game-modal.next-level-ref .modal-primary img{right:-3.0cqw!important;top:1.7cqh!important;width:8.4cqw!important;height:15.2cqh!important;object-fit:contain!important}
.game-modal.next-level-ref .modal-menu{
  left:-4.0cqw!important;top:21.7cqh!important;width:20.4cqw!important;height:11.8cqh!important;
  min-height:0!important;background-size:100% 100%!important;border:0!important;border-radius:0!important;clip-path:none!important;
  rotate:0deg!important;skew:none!important;font-size:3.25cqh!important;line-height:1!important;
}
.game-modal.next-level-ref .modal-menu img{left:-3.2cqw!important;top:.9cqh!important;width:5.6cqw!important;height:9.7cqh!important;object-fit:contain!important}
.game-modal.next-level-ref .result-submit-button{
  left:74.7cqw!important;top:91.0cqh!important;width:20.8cqw!important;height:11.8cqh!important;
  min-height:0!important;background-size:100% 100%!important;border:0!important;border-radius:0!important;clip-path:none!important;
  rotate:0deg!important;skew:none!important;transform:none!important;font-size:3.05cqh!important;line-height:1!important;
}
.game-modal.next-level-ref .modal-primary:hover,
.game-modal.next-level-ref .modal-menu:hover,
.game-modal.next-level-ref .result-submit-button:hover{transform:scale(1.02)!important;rotate:0deg!important;skew:none!important}
html[lang="tr"] .game-modal.next-level-ref .modal-copy h2{font-size:8.2cqh!important;line-height:.94!important}
html[lang="es"] .game-modal.next-level-ref .modal-copy h2,
html[lang="fr"] .game-modal.next-level-ref .modal-copy h2,
html[lang="it"] .game-modal.next-level-ref .modal-copy h2{font-size:8.5cqh!important;line-height:.94!important}
html[lang="ja"] .game-modal.next-level-ref .modal-copy h2{font-size:7.6cqh!important;line-height:1!important}
html[lang="tr"] .game-modal.next-level-ref .modal-primary,
html[lang="es"] .game-modal.next-level-ref .modal-primary,
html[lang="fr"] .game-modal.next-level-ref .modal-primary,
html[lang="it"] .game-modal.next-level-ref .modal-primary{font-size:4.25cqh!important}
html[lang="ja"] .game-modal.next-level-ref .modal-primary{font-size:4.0cqh!important}
html[lang="tr"] .game-modal.next-level-ref .modal-menu,
html[lang="tr"] .game-modal.next-level-ref .result-submit-button,
html[lang="es"] .game-modal.next-level-ref .modal-menu,
html[lang="es"] .game-modal.next-level-ref .result-submit-button,
html[lang="fr"] .game-modal.next-level-ref .modal-menu,
html[lang="fr"] .game-modal.next-level-ref .result-submit-button,
html[lang="it"] .game-modal.next-level-ref .modal-menu,
html[lang="it"] .game-modal.next-level-ref .result-submit-button{font-size:2.65cqh!important}
html[lang="ja"] .game-modal.next-level-ref .modal-menu,
html[lang="ja"] .game-modal.next-level-ref .result-submit-button{font-size:2.5cqh!important}

/* Exit button skin safety — keep the original artwork's proportions, never warp it. */
.game-exit-card .game-exit-actions button,
.game-exit-card .game-exit-actions button:hover,
.game-exit-card .game-exit-actions button:focus-visible{
  width:29.0cqw!important;height:14.4cqh!important;flex-basis:14.4cqh!important;
  background-size:contain!important;background-position:center!important;background-repeat:no-repeat!important;
}
.game-exit-card .game-exit-actions .to-menu{width:27.0cqw!important;background-size:contain!important}

/* ========================================================================== 
   V16 — FINAL REFERENCE LOCK / 2026-08-18
   Source of truth: 06-help-01..11, 07-scores, 11-gameover, 11-gamefinish,
   12-nextlevel-01..03 and 18-exit supplied by the author.
   ========================================================================== */

/* LEVEL SELECT — star ratings are not part of CATPUF. Keep only level number/lock. */
.level-node>small{display:none!important}
.level-node.open{padding-bottom:0!important}

/* SCORES — the authored medal artwork gets a centered 1./2./3. label. */
.score-medal-wrap{
  position:absolute!important;left:-2.2cqw!important;top:50%!important;translate:0 -50%!important;
  width:6.7cqw!important;height:12.5cqh!important;z-index:3!important;display:block!important;pointer-events:none!important;
}
.score-medal-wrap .score-medal{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:contain!important;translate:none!important}
.score-medal-rank{
  position:absolute!important;left:50%!important;top:61%!important;translate:-50% -50%!important;
  width:62%!important;text-align:center!important;font-size:3.25cqh!important;line-height:1!important;color:#171419!important;
  font-weight:900!important;z-index:4!important;letter-spacing:-.03em!important;
}

/* HELP — narrower copy columns and slightly smaller art, matching the eleven
   authored tutorial boards. Every icon is kept inside its own clear area. */
.help-new-screen .help-carousel{left:20.9cqw!important;top:25.5cqh!important;width:73.4cqw!important;height:59.2cqh!important}
.help-new-screen .h-scroll{left:21.3cqw!important;top:85.5cqh!important;width:72.4cqw!important}
.help-new-screen .help-slide{overflow:visible!important}
.help-new-screen .help-ref-art>img{max-width:13.8cqw!important;max-height:24.4cqh!important;object-fit:contain!important}
.help-new-screen .help-ref-copy p{max-width:18.2cqw!important;font-size:calc(1.38cqh * var(--ref-type-scale,1))!important;line-height:1.17!important}
.help-new-screen .help-ref-copy h3{font-size:calc(2.78cqh * var(--ref-type-scale,1))!important;margin-bottom:.8cqh!important}

/* 01 */
.help-new-screen .help-objective-block{left:8%!important;top:13%!important;width:50%!important}
.help-new-screen .help-objective-block .help-objective-lead{max-width:38cqw!important;font-size:calc(2.55cqh * var(--ref-type-scale,1))!important}
.help-new-screen .help-objective-block p:last-child{max-width:40cqw!important;font-size:calc(1.34cqh * var(--ref-type-scale,1))!important}
.help-new-screen .help-how-block{right:3%!important;top:31%!important;width:25%!important}
.help-new-screen .help-how-block p{max-width:18.5cqw!important;font-size:calc(1.28cqh * var(--ref-type-scale,1))!important}

/* 02 — Yarn Worlds / Pillows / Stones */
.help-new-screen .help-slide-2 .help-yarn-worlds{left:10.5%!important;top:0!important;width:25.2%!important}
.help-new-screen .help-slide-2 .help-pillows{left:39.0%!important;top:0!important;width:25.5%!important}
.help-new-screen .help-slide-2 .help-stones{right:1.6%!important;top:0!important;width:25.5%!important}
.help-new-screen .help-slide-2 .help-yarn-worlds .help-ref-art,
.help-new-screen .help-slide-2 .help-stones .help-ref-art{height:26.0cqh!important}
.help-new-screen .help-slide-2 .help-yarn-worlds .help-ref-copy,
.help-new-screen .help-slide-2 .help-stones .help-ref-copy{top:28.2cqh!important}
.help-new-screen .help-slide-2 .help-pillows .help-ref-copy{top:1.3cqh!important}
.help-new-screen .help-slide-2 .help-pillows .help-ref-art{top:27.0cqh!important;height:25cqh!important}

/* 03 — Special Items / Bomb / Rocket */
.help-new-screen .help-special-intro{left:8.2%!important;top:30%!important;width:25.5%!important}
.help-new-screen .help-special-intro p{max-width:19.5cqw!important;font-size:calc(1.34cqh * var(--ref-type-scale,1))!important}
.help-new-screen .help-slide-3 .help-bomb{left:39.3%!important;top:0!important;width:24.8%!important}
.help-new-screen .help-slide-3 .help-rocket{right:2.0%!important;top:0!important;width:25.0%!important}
.help-new-screen .help-slide-3 .help-bomb .help-ref-copy{top:2.6cqh!important}
.help-new-screen .help-slide-3 .help-bomb .help-ref-art{top:26.5cqh!important;height:25.5cqh!important}
.help-new-screen .help-slide-3 .help-rocket .help-ref-art{top:0!important;height:26.5cqh!important}
.help-new-screen .help-slide-3 .help-rocket .help-ref-copy{top:28.4cqh!important}

/* 04 — Nuclear / Red Nuclear / Fish */
.help-new-screen .help-slide-4 .help-nuclear{left:10.0%!important;top:0!important;width:24.8%!important}
.help-new-screen .help-slide-4 .help-red-nuclear{left:39.4%!important;top:0!important;width:25.0%!important}
.help-new-screen .help-slide-4 .help-fish{right:1.8%!important;top:0!important;width:25.0%!important}
.help-new-screen .help-slide-4 .help-nuclear .help-ref-art,
.help-new-screen .help-slide-4 .help-fish .help-ref-art{height:26.0cqh!important}
.help-new-screen .help-slide-4 .help-nuclear .help-ref-copy,
.help-new-screen .help-slide-4 .help-fish .help-ref-copy{top:28.4cqh!important}
.help-new-screen .help-slide-4 .help-red-nuclear .help-ref-copy{top:.8cqh!important}
.help-new-screen .help-slide-4 .help-red-nuclear .help-ref-art{top:28.0cqh!important;height:23cqh!important}
.help-new-screen .help-slide-4 .help-red-nuclear .help-red-nuclear-base{width:12.7cqw!important;height:22.3cqh!important}
.help-new-screen .help-slide-4 .help-red-nuclear .help-red-nuclear-symbol{width:5.1cqw!important;height:8.6cqh!important}

/* 05 — Hamster / Yarn / Ice */
.help-new-screen .help-slide-5 .help-hamster{left:10.0%!important;top:0!important;width:24.8%!important}
.help-new-screen .help-slide-5 .help-yarn{left:39.4%!important;top:0!important;width:25.0%!important}
.help-new-screen .help-slide-5 .help-ice{right:1.8%!important;top:0!important;width:25.0%!important}
.help-new-screen .help-slide-5 .help-hamster .help-ref-copy,
.help-new-screen .help-slide-5 .help-ice .help-ref-copy{top:.8cqh!important}
.help-new-screen .help-slide-5 .help-hamster .help-ref-art,
.help-new-screen .help-slide-5 .help-ice .help-ref-art{top:28.5cqh!important;height:23.5cqh!important}
.help-new-screen .help-slide-5 .help-yarn .help-ref-art{top:0!important;height:25.5cqh!important}
.help-new-screen .help-slide-5 .help-yarn .help-ref-copy{top:27.8cqh!important}

/* 06 — Chicken + Egg Chain */
.help-new-screen .help-chain-copy{left:9%!important;top:12%!important;width:43%!important}
.help-new-screen .help-chain-copy p{max-width:33cqw!important;font-size:calc(1.36cqh * var(--ref-type-scale,1))!important}
.help-new-screen .help-chain-art{right:1%!important;top:1%!important;width:46%!important;height:54cqh!important}
.help-new-screen .help-chain-chicken{width:26cqw!important;height:44cqh!important}
.help-new-screen .help-chain-egg{width:7.0cqw!important;height:12cqh!important;bottom:2.6cqh!important}

/* 07 — PUF Bubble / Guide */
.help-new-screen .help-slide-7 .help-puf-bubble{left:6.5%!important;top:0!important;width:34.5%!important}
.help-new-screen .help-slide-7 .help-puf-bubble .help-ref-art{height:27.0cqh!important}
.help-new-screen .help-slide-7 .help-puf-bubble .help-ref-art>img{max-width:17.0cqw!important;max-height:26.5cqh!important}
.help-new-screen .help-slide-7 .help-puf-bubble .help-ref-copy{top:29.2cqh!important}
.help-new-screen .help-slide-7 .help-puf-bubble .help-ref-copy p{max-width:24cqw!important}
.help-new-screen .help-slide-7 .help-guide{right:0!important;top:0!important;width:57%!important;grid-template-columns:48% 52%!important}
.help-new-screen .help-slide-7 .help-guide .help-ref-art{height:49cqh!important}
.help-new-screen .help-slide-7 .help-guide .help-ref-art>img{max-width:21.5cqw!important;max-height:47cqh!important}
.help-new-screen .help-slide-7 .help-guide .help-ref-copy p{max-width:20cqw!important;font-size:calc(1.34cqh * var(--ref-type-scale,1))!important}

/* 08 — Power Buttons / PUF Store */
.help-new-screen .help-power-copy{left:8%!important;top:20%!important;width:33%!important}
.help-new-screen .help-power-copy p{max-width:25cqw!important;font-size:calc(1.34cqh * var(--ref-type-scale,1))!important}
.help-new-screen .help-slide-8 .help-store{right:1%!important;top:2%!important;width:55%!important;grid-template-columns:48% 52%!important}
.help-new-screen .help-slide-8 .help-store .help-ref-art{height:45cqh!important}
.help-new-screen .help-slide-8 .help-store .help-ref-art>img{max-width:15.7cqw!important;max-height:33cqh!important}
.help-new-screen .help-slide-8 .help-store .help-ref-copy p{max-width:18.5cqw!important;font-size:calc(1.32cqh * var(--ref-type-scale,1))!important}

/* 09 — Stone Pick / Color Splash / Lucky Clover / PUF Press */
.help-new-screen .help-slide-9 .help-power-grid .help-ref-item{width:21.5%!important;height:54cqh!important}
.help-new-screen .help-slide-9 .help-power-grid .help-ref-art{height:24cqh!important}
.help-new-screen .help-slide-9 .help-power-grid .help-ref-art>img{max-width:10.2cqw!important;max-height:22cqh!important}
.help-new-screen .help-slide-9 .help-power-grid .help-ref-copy p{max-width:14.8cqw!important;font-size:calc(1.16cqh * var(--ref-type-scale,1))!important}
.help-new-screen .help-slide-9 .help-power-grid .help-ref-copy h3{font-size:calc(2.25cqh * var(--ref-type-scale,1))!important}
.help-new-screen .help-slide-9 .help-power-pick{left:8%!important;top:2%!important}
.help-new-screen .help-slide-9 .help-power-gun{left:32.5%!important;top:7%!important}
.help-new-screen .help-slide-9 .help-power-clover{left:56.5%!important;top:2%!important}
.help-new-screen .help-slide-9 .help-power-press{right:0!important;top:8%!important}

/* 10 */
.help-new-screen .help-slide-10 .help-baby-copy{left:10%!important;top:29%!important;width:55%!important}
.help-new-screen .help-slide-10 .help-baby-copy .help-baby-lead{max-width:43cqw!important;font-size:calc(2.35cqh * var(--ref-type-scale,1))!important}
.help-new-screen .help-slide-10 .help-baby-copy p{max-width:43cqw!important;font-size:calc(1.28cqh * var(--ref-type-scale,1))!important}
.help-new-screen .help-slide-10 .help-baby-ref-bubble{right:3%!important;top:7%!important;width:23cqw!important;height:43cqh!important}

/* 12 — final rescue/rewards/tips page after DOG. */
.help-new-screen .help-slide-12 .help-last-left{left:9%!important;top:14%!important;width:39%!important}
.help-new-screen .help-slide-12 .help-last-right{right:4%!important;top:15%!important;width:39%!important}
.help-new-screen .help-slide-12 .help-last-left p,
.help-new-screen .help-slide-12 .help-last-right p{max-width:27cqw!important;font-size:calc(1.26cqh * var(--ref-type-scale,1))!important}
.help-new-screen .help-slide-12 .help-last-right strong{max-width:29cqw!important;font-size:calc(2.75cqh * var(--ref-type-scale,1))!important}

/* EXIT — exact two-button proportions from 18-exit. */
.game-exit-card .game-exit-copy{left:44.0cqw!important;top:24.0cqh!important;width:47.5cqw!important}
.game-exit-card .game-exit-copy h2{font-size:7.0cqh!important;margin:0 0 2.1cqh!important}
.game-exit-card .game-exit-copy p{font-size:2.72cqh!important;line-height:1.08!important}
.game-exit-card .game-exit-actions{left:51.0cqw!important;top:49.3cqh!important;width:33cqw!important;gap:2.6cqh!important}
.game-exit-card .game-exit-actions .exit-continue{
  width:29.4cqw!important;height:16.0cqh!important;flex-basis:16.0cqh!important;background-size:contain!important;font-size:3.45cqh!important;
}
.game-exit-card .game-exit-actions .to-menu{
  width:25.4cqw!important;height:14.8cqh!important;flex-basis:14.8cqh!important;background-size:contain!important;font-size:3.15cqh!important;
}
.game-exit-card .game-exit-actions .exit-continue>img{right:-4.6cqw!important;width:9.8cqw!important;height:18.2cqh!important}
.game-exit-card .game-exit-actions .to-menu>img{left:-5.0cqw!important;width:7.2cqw!important;height:13.2cqh!important}

/* 12-nextlevel-01 — hard two-line title and exact hierarchy. */
.game-modal.next-level-ref .modal-copy h2>span{display:block!important;white-space:nowrap!important}
.game-modal.next-level-ref .modal-copy h2{
  left:56.2cqw!important;top:17.0cqh!important;width:39.8cqw!important;
  font-size:10.25cqh!important;line-height:.91!important;letter-spacing:-.024em!important;
}
.game-modal.next-level-ref .modal-copy small{left:62.2cqw!important;top:8.6cqh!important;width:29.8cqw!important;font-size:4.05cqh!important}
.game-modal.next-level-ref .modal-copy p{left:62.2cqw!important;top:46.1cqh!important;width:29.8cqw!important;font-size:3.55cqh!important}
.game-modal.next-level-ref .modal-copy strong{left:56.1cqw!important;top:53.1cqh!important;width:41.0cqw!important;font-size:6.8cqh!important}
.game-modal.next-level-ref .modal-actions{left:55.6cqw!important;top:67.2cqh!important;width:39cqw!important;height:31cqh!important}
.game-modal.next-level-ref .modal-primary{width:36.5cqw!important;height:17.0cqh!important;font-size:4.65cqh!important;background-size:contain!important}
.game-modal.next-level-ref .modal-primary img{right:-2.7cqw!important;top:1.1cqh!important;width:8.1cqw!important;height:14.7cqh!important}
.game-modal.next-level-ref .modal-menu{left:-4.3cqw!important;top:21.8cqh!important;width:21.3cqw!important;height:12.3cqh!important;font-size:2.95cqh!important;background-size:contain!important}
.game-modal.next-level-ref .result-submit-button{left:74.2cqw!important;top:89.0cqh!important;width:21.4cqw!important;height:12.3cqh!important;font-size:2.82cqh!important;background-size:contain!important}
.game-modal.next-level-ref .level-result-stats{left:3.2cqw!important;top:6.8cqh!important;width:18.2cqw!important;height:81.5cqh!important}
.game-modal.next-level-ref .level-result-stats>span{height:15.7cqh!important}
.game-modal.next-level-ref .level-result-stats b{font-size:5.1cqh!important}
.game-modal.next-level-ref .modal-cat{left:14.0cqw!important;top:-11.5cqh!important;width:46.5cqw!important;height:114cqh!important}
html[lang="tr"] .game-modal.next-level-ref .modal-copy h2,
html[lang="es"] .game-modal.next-level-ref .modal-copy h2,
html[lang="fr"] .game-modal.next-level-ref .modal-copy h2,
html[lang="it"] .game-modal.next-level-ref .modal-copy h2{font-size:8.35cqh!important;line-height:.94!important}
html[lang="ja"] .game-modal.next-level-ref .modal-copy h2{font-size:7.4cqh!important;line-height:1!important}

/* 12-nextlevel-02 — exact SEND YOUR SCORE composition. */
.score-flow-card{width:81.72cqw!important;height:71.95cqh!important}
.score-flow-cat{left:-1.3cqw!important;top:-12.5cqh!important;width:47.0cqw!important;height:112cqh!important;object-fit:contain!important}
.score-flow-copy{left:50.3cqw!important;top:6.8cqh!important;width:31.0cqw!important;height:61cqh!important}
.score-flow-heading small{font-size:3.65cqh!important;margin-bottom:1.15cqh!important}
.score-flow-heading h2{font-size:11.0cqh!important;line-height:.9!important;margin:0 0 6.0cqh!important}
.score-flow-form label span{font-size:3.05cqh!important;margin:0 0 1.25cqh!important;text-align:center!important}
.score-flow-form input{width:100%!important;height:14.0cqh!important;border-radius:7.2cqh!important;font-size:3.2cqh!important;background:rgba(255,252,251,.88)!important}
.score-flow-status{height:2.7cqh!important;min-height:2.7cqh!important;margin:.55cqh 0 .2cqh!important}
.score-flow-submit{width:31.0cqw!important;height:17.1cqh!important;margin-top:.5cqh!important;background-size:contain!important;font-size:3.8cqh!important}
.score-flow-close{right:-1.9cqw!important;top:-5.4cqh!important;width:7.0cqw!important;height:12.4cqh!important}

/* 12-nextlevel-03 — centered thank-you on the right half, same cat/window. */
.score-flow-success .score-flow-copy{left:48.0cqw!important;top:25.0cqh!important;width:37.0cqw!important;height:28cqh!important}
.score-flow-thanks{position:relative!important;left:auto!important;top:auto!important;width:100%!important;gap:2.1cqh!important}
.score-flow-thanks h3{font-size:4.95cqh!important;line-height:1!important}
.score-flow-thanks p{font-size:4.5cqh!important;line-height:1.08!important;max-width:35cqw!important}

/* 11-gameover — authored lose screen. */
.game-modal.game-over-ref .modal-cat{left:-3.0cqw!important;top:10.5cqh!important;width:48cqw!important;height:79cqh!important;object-fit:contain!important}
.game-modal.game-over-ref .gameover-birds{left:-2cqw!important;top:4cqh!important;width:34cqw!important;height:27cqh!important;object-fit:contain!important}
.game-modal.game-over-ref .modal-copy small{left:50.0cqw!important;top:10.4cqh!important;width:43cqw!important;font-size:3.35cqh!important;text-align:center!important}
.game-modal.game-over-ref .modal-copy h2{left:49.0cqw!important;top:19.0cqh!important;width:44cqw!important;font-size:9.4cqh!important;line-height:.9!important;text-align:center!important;margin:0!important}
.game-modal.game-over-ref .modal-copy p{left:57.0cqw!important;top:38.2cqh!important;width:29cqw!important;font-size:3.05cqh!important}
.game-modal.game-over-ref .modal-copy strong{left:52.0cqw!important;top:45.0cqh!important;width:39cqw!important;font-size:5.65cqh!important}
.game-modal.game-over-ref .modal-actions{left:50.0cqw!important;top:55.0cqh!important;width:41cqw!important;height:31cqh!important}
.game-modal.game-over-ref .modal-primary{left:0!important;top:0!important;width:38.0cqw!important;height:16.5cqh!important;font-size:4.35cqh!important;background-size:contain!important}
.game-modal.game-over-ref .modal-menu{left:-4.7cqw!important;top:20.4cqh!important;width:21cqw!important;height:11.5cqh!important;font-size:2.8cqh!important;background-size:contain!important}
.game-modal.game-over-ref .result-submit-button{left:70.8cqw!important;top:77.3cqh!important;width:21.8cqw!important;height:11.5cqh!important;font-size:2.65cqh!important;background-size:contain!important}

/* 11-gamefinish — authored final king screen. */
.game-modal.final-game-ref .modal-cat{left:2.0cqw!important;top:-7.5cqh!important;width:47cqw!important;height:108cqh!important;object-fit:contain!important}
.game-modal.final-game-ref .modal-copy small{left:51.0cqw!important;top:10.5cqh!important;width:42cqw!important;font-size:3.7cqh!important}
.game-modal.final-game-ref .modal-copy h2{left:52.0cqw!important;top:19.5cqh!important;width:40cqw!important;font-size:10.0cqh!important;line-height:.9!important;margin:0!important}
.game-modal.final-game-ref .modal-copy p{left:58.0cqw!important;top:39.5cqh!important;width:28cqw!important;font-size:3.0cqh!important}
.game-modal.final-game-ref .modal-copy strong{left:53.0cqw!important;top:46.3cqh!important;width:38cqw!important;font-size:5.65cqh!important}
.game-modal.final-game-ref .modal-actions{left:54.5cqw!important;top:56.0cqh!important;width:39cqw!important;height:31cqh!important}
.game-modal.final-game-ref .modal-primary{left:0!important;top:0!important;width:36.5cqw!important;height:16.5cqh!important;font-size:4.35cqh!important;background-size:contain!important}
.game-modal.final-game-ref .modal-menu{left:-4.0cqw!important;top:20.4cqh!important;width:21cqw!important;height:11.5cqh!important;font-size:2.8cqh!important;background-size:contain!important}
.game-modal.final-game-ref .result-submit-button{left:73.2cqw!important;top:77.3cqh!important;width:21.8cqw!important;height:11.5cqh!important;font-size:2.65cqh!important;background-size:contain!important}

@media(max-width:900px) and (orientation:portrait){
  .score-medal-rank{font-size:2.4cqh!important}
  .help-new-screen .help-carousel{left:6.5cqw!important;width:87cqw!important;height:60.5cqh!important}
  .help-new-screen .help-ref-art>img{max-width:19cqw!important;max-height:22cqh!important}
  .help-new-screen .help-ref-copy p{font-size:calc(1.06cqh * var(--ref-type-scale,1))!important;max-width:25cqw!important}
}

/* ========================================================================== 
   V17 — AUDIO/ACHIEVEMENTS/HELP/RESULT PRECISION LOCK — 2026-08-18
   ========================================================================== */

/* EXIT: hover must never move, bend or rescale either authored button skin. */
.game-exit-card .game-exit-actions button,
.game-exit-card .game-exit-actions button:hover,
.game-exit-card .game-exit-actions button:focus-visible,
.game-exit-card .game-exit-actions button:active{
  transform:none!important;translate:none!important;scale:1!important;rotate:0deg!important;skew:none!important;
}
.game-exit-card .game-exit-actions button:hover,
.game-exit-card .game-exit-actions button:focus-visible{filter:brightness(1.025)!important}

/* HELP: tighter tutorial columns. Icons sit close to their own copy and stay
   inside the clear field. The red nuclear center mark matches the yellow one. */
.help-new-screen .help-ref-copy p{max-width:16.8cqw!important}
.help-new-screen .help-ref-art>img{max-width:12.9cqw!important;max-height:22.8cqh!important}
.help-new-screen .help-slide-2 .help-yarn-worlds .help-ref-copy,
.help-new-screen .help-slide-2 .help-stones .help-ref-copy,
.help-new-screen .help-slide-3 .help-rocket .help-ref-copy,
.help-new-screen .help-slide-4 .help-nuclear .help-ref-copy,
.help-new-screen .help-slide-4 .help-fish .help-ref-copy,
.help-new-screen .help-slide-5 .help-yarn .help-ref-copy{top:25.8cqh!important}
.help-new-screen .help-slide-2 .help-pillows .help-ref-art,
.help-new-screen .help-slide-3 .help-bomb .help-ref-art,
.help-new-screen .help-slide-4 .help-red-nuclear .help-ref-art,
.help-new-screen .help-slide-5 .help-hamster .help-ref-art,
.help-new-screen .help-slide-5 .help-ice .help-ref-art{top:24.3cqh!important}
.help-new-screen .help-slide-7 .help-puf-bubble .help-ref-copy{top:26.5cqh!important}
.help-new-screen .help-slide-7 .help-puf-bubble .help-ref-copy p{max-width:20cqw!important}
.help-new-screen .help-slide-7 .help-guide .help-ref-copy p{max-width:17.2cqw!important}
.help-new-screen .help-slide-8 .help-store .help-ref-copy p{max-width:16.5cqw!important}
.help-new-screen .help-slide-9 .help-power-grid .help-ref-copy p{max-width:13.2cqw!important}
.help-new-screen .help-slide-4 .help-red-nuclear .help-red-nuclear-symbol{
  width:7.25cqw!important;height:12.2cqh!important;max-width:none!important;max-height:none!important;
}

/* HOME: the old BABY portal is now the Achievements portal. Keep the same cat
   and authored bubble placement; only the label changes. */
.bubble-home-screen .home-bubble-baby .bubble-label{font-size:1.72cqh!important;max-width:8.8cqw!important;line-height:.95!important}
html[lang="tr"] .bubble-home-screen .home-bubble-baby .bubble-label,
html[lang="es"] .bubble-home-screen .home-bubble-baby .bubble-label,
html[lang="it"] .bubble-home-screen .home-bubble-baby .bubble-label,
html[lang="fr"] .bubble-home-screen .home-bubble-baby .bubble-label{font-size:1.52cqh!important}
html[lang="ja"] .bubble-home-screen .home-bubble-baby .bubble-label{font-size:1.62cqh!important}

/* ACHIEVEMENTS — same left header/back/bubble language as Scores/Help, with a
   wide horizontal mission shelf on the right. */
.achievements-screen .page-title{left:3.0cqw!important;top:8.2cqh!important}
.achievements-screen .achievements-section-bubble{left:1.15cqw!important;top:50.25cqh!important;width:17.5cqw!important}
.achievements-carousel{
  position:absolute;left:21.1cqw;top:24.9cqh;width:73.1cqw;height:58.7cqh;
  display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  scrollbar-width:none;overscroll-behavior-inline:contain;touch-action:pan-x;cursor:grab;
  mask-image:linear-gradient(90deg,transparent 0,#000 1.2%,#000 98.8%,transparent 100%);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 1.2%,#000 98.8%,transparent 100%);
}
.achievements-carousel::-webkit-scrollbar{display:none}
.achievements-carousel.dragging{cursor:grabbing;scroll-behavior:auto}
.achievement-page{position:relative;flex:0 0 100%;height:100%;scroll-snap-align:center;padding:2.0cqh 2.2cqw 1.3cqh;box-sizing:border-box}
.achievement-page-head{height:5.0cqh;display:flex;align-items:center;justify-content:space-between;padding:0 .9cqw;font-family:var(--font);font-weight:900;color:#382f31}
.achievement-page-head b{font-size:2.6cqh}.achievement-page-head span{font-size:1.8cqh;opacity:.72}
.achievement-grid{height:49.6cqh;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr);gap:1.7cqh 1.35cqw}
.achievement-card{
  position:relative;display:grid;grid-template-columns:5.7cqw 1fr;align-items:center;gap:.75cqw;
  padding:1.05cqh .9cqw;border-radius:2.15cqh;border:.2cqh solid rgba(214,164,176,.42);
  background:linear-gradient(180deg,rgba(255,249,250,.86),rgba(255,231,239,.72));
  box-shadow:inset 0 .18cqh .3cqh rgba(255,255,255,.8),0 .5cqh 1.2cqh rgba(113,72,82,.08);
  font-family:var(--font);color:#382f31;overflow:hidden;
}
.achievement-card.is-complete{
  background:linear-gradient(180deg,rgba(255,250,218,.97),rgba(255,220,137,.84));
  border-color:rgba(222,168,52,.62);box-shadow:0 0 0 .17cqh rgba(255,241,164,.7),0 .65cqh 1.6cqh rgba(154,104,28,.16);
}
.achievement-icon{position:relative;width:5.35cqw;height:11.2cqh;display:grid;place-items:center}
.achievement-icon>img{max-width:5.15cqw;max-height:10.5cqh;object-fit:contain;filter:drop-shadow(0 .25cqh .25cqh rgba(70,45,50,.12))}
.achievement-icon>i{position:absolute;right:-.2cqw;bottom:.3cqh;width:2.05cqw;height:3.7cqh;display:grid;place-items:center}
.achievement-icon>i img{width:100%;height:100%;object-fit:contain}
.achievement-copy{min-width:0;text-align:left}.achievement-copy h3{font-size:1.82cqh;line-height:1;margin:0 0 .65cqh}.achievement-copy p{font-size:1.18cqh;line-height:1.12;margin:0 0 .85cqh;font-weight:900;min-height:2.6cqh}
.achievement-progress{height:.85cqh;border-radius:99px;background:rgba(109,82,87,.14);overflow:hidden;margin-bottom:.55cqh}
.achievement-progress>span{display:block;height:100%;width:var(--achievement-progress);border-radius:inherit;background:linear-gradient(90deg,#f2a4bd,#ffc761);transition:width .4s ease}
.achievement-card.is-complete .achievement-progress>span{background:linear-gradient(90deg,#f7c452,#8edc93)}
.achievement-copy small{display:block;font-size:1.02cqh;line-height:1;font-weight:900;opacity:.72;white-space:nowrap}
.achievement-card.is-complete .achievement-copy small{opacity:1}
.achievements-screen .h-scroll{left:21.4cqw!important;top:85.0cqh!important;width:72.5cqw!important;height:2.8cqh!important}

/* In-game achievement reminder. Small, tactile, and dismissible. */
.achievement-toast{
  position:absolute;z-index:360;right:1.8cqw;top:12.4cqh;width:24.5cqw;height:11.4cqh;border:0;padding:.75cqh .9cqw;
  display:grid;grid-template-columns:5.2cqw 1fr;align-items:center;gap:.8cqw;text-align:left;
  font-family:var(--font);color:#382f31;background:linear-gradient(180deg,rgba(255,245,248,.98),rgba(250,205,221,.96));
  border-radius:2.5cqh;box-shadow:0 .75cqh 2.1cqh rgba(71,37,47,.2),inset 0 0 0 .18cqh rgba(255,255,255,.8);
  opacity:0;transform:translateX(4cqw) scale(.96);transition:opacity .28s ease,transform .36s cubic-bezier(.16,.86,.2,1);cursor:pointer;
}
.achievement-toast.show{opacity:1;transform:translateX(0) scale(1)}.achievement-toast.closing{opacity:0;transform:translateX(3cqw) scale(.97)}
.achievement-toast-icon{position:relative;width:5cqw;height:9cqh;display:grid;place-items:center}.achievement-toast-icon>img{max-width:4.5cqw;max-height:8.4cqh;object-fit:contain}.achievement-toast-icon>i{position:absolute;right:-.2cqw;bottom:0;width:1.8cqw}.achievement-toast-icon>i img{width:100%}
.achievement-toast-copy{display:flex;min-width:0;flex-direction:column;gap:.28cqh}.achievement-toast-copy small{font-size:1.05cqh;line-height:1;opacity:.68}.achievement-toast-copy strong{font-size:1.75cqh;line-height:1}.achievement-toast-copy b{font-size:1.03cqh;line-height:1.08;white-space:normal}

/* LEVEL COMPLETE: the reference is the authority. Main Menu sits immediately
   left of Submit Score, score remains clearly above NEXT LEVEL, and the play
   icon stays tucked into the right side of the main button. */
.game-modal.next-level-ref .modal-copy small{left:61.0cqw!important;top:8.0cqh!important;width:31.0cqw!important;font-size:3.65cqh!important}
.game-modal.next-level-ref .modal-copy h2{left:55.1cqw!important;top:15.8cqh!important;width:41.7cqw!important;font-size:9.65cqh!important;line-height:.9!important;letter-spacing:-.025em!important}
.game-modal.next-level-ref .modal-copy h2>span{display:block!important;white-space:nowrap!important}
.game-modal.next-level-ref .modal-copy p{left:62.0cqw!important;top:45.7cqh!important;width:29cqw!important;font-size:3.15cqh!important}
.game-modal.next-level-ref .modal-copy strong{left:56.5cqw!important;top:52.1cqh!important;width:40cqw!important;font-size:6.35cqh!important;line-height:1!important}
.game-modal.next-level-ref .modal-actions{left:0!important;top:0!important;width:100%!important;height:100%!important;transform:none!important}
.game-modal.next-level-ref .modal-primary{left:55.0cqw!important;top:66.3cqh!important;width:35.8cqw!important;height:16.1cqh!important;font-size:4.45cqh!important;padding-right:5.5cqw!important;background-size:100% 100%!important}
.game-modal.next-level-ref .modal-primary img{right:-.55cqw!important;top:1.0cqh!important;width:7.55cqw!important;height:14.0cqh!important;object-fit:contain!important}
.game-modal.next-level-ref .modal-menu{left:50.6cqw!important;top:87.0cqh!important;width:21.5cqw!important;height:11.6cqh!important;font-size:2.9cqh!important;background-size:100% 100%!important}
.game-modal.next-level-ref .modal-menu img{left:-3.0cqw!important;top:1.35cqh!important;width:5.4cqw!important;height:8.8cqh!important;object-fit:contain!important}
.game-modal.next-level-ref .result-submit-button{left:72.7cqw!important;top:87.0cqh!important;width:22.0cqw!important;height:11.6cqh!important;font-size:2.75cqh!important;background-size:100% 100%!important}
.game-modal.next-level-ref .level-result-stats{left:2.75cqw!important;top:6.0cqh!important;width:18.4cqw!important;height:82.5cqh!important}
.game-modal.next-level-ref .level-result-stats>span{height:15.8cqh!important}.game-modal.next-level-ref .level-result-stats b{font-size:4.9cqh!important}
.game-modal.next-level-ref .modal-cat{left:13.8cqw!important;top:-10.2cqh!important;width:45.8cqw!important;height:112cqh!important}

@media(max-width:900px) and (orientation:portrait){
  .achievements-carousel{left:6.3cqw;top:24.2cqh;width:87.4cqw;height:60.5cqh}
  .achievement-page{padding:1.2cqh 2.8cqw}.achievement-grid{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(4,1fr);height:54cqh;gap:.8cqh 2cqw}
  .achievement-card{grid-template-columns:10cqw 1fr;padding:.65cqh 1.4cqw}.achievement-icon{width:9.2cqw;height:6.6cqh}.achievement-icon>img{max-width:8.5cqw;max-height:6.3cqh}.achievement-copy h3{font-size:1.35cqh}.achievement-copy p{font-size:.92cqh;min-height:1.9cqh}.achievement-copy small{font-size:.8cqh}
  .achievements-screen .h-scroll{left:7cqw!important;width:86cqw!important;top:85.5cqh!important}
  .achievement-toast{right:4cqw;top:9cqh;width:76cqw;height:9.5cqh;grid-template-columns:12cqw 1fr}.achievement-toast-icon{width:11cqw;height:7cqh}.achievement-toast-icon>img{max-width:10cqw;max-height:6.5cqh}.achievement-toast-copy strong{font-size:1.45cqh}.achievement-toast-copy b{font-size:.92cqh}
}

/* Score podium rank numerals are printed inside the medal circles, not beside them. */
.scores-new-screen .score-medal-rank{
  display:block!important;visibility:visible!important;opacity:1!important;
  left:50%!important;top:61.5%!important;translate:-50% -50%!important;
  font-size:3.35cqh!important;color:#2d2422!important;text-shadow:0 .12cqh 0 rgba(255,255,255,.45)!important;
}
.achievements-screen .back-btn{left:3.78cqw!important;top:calc(18.18cqh + 20px)!important;width:4.05cqw!important;z-index:34!important;transform:none!important}
.achievements-screen .back-btn:hover{transform:translateX(-.18cqw) scale(1.045)!important}
@media(max-width:900px) and (orientation:landscape){.achievements-screen .back-btn{left:3.78cqw!important;top:calc(18.18cqh + 14px)!important;width:4.25cqw!important}}

/* ========================================================================== 
   V18 — USER-REQUESTED LOCK / 2026-08-18
   Only Home Achievements label, Achievements page, Exit modal and Level Complete.
   ========================================================================== */

/* HOME — Achievements uses exactly the same menu-label scale as every other
   non-START bubble. Do not shrink it just because the localized word is longer. */
.bubble-home-screen .home-bubble-baby .bubble-label,
html[lang="tr"] .bubble-home-screen .home-bubble-baby .bubble-label,
html[lang="es"] .bubble-home-screen .home-bubble-baby .bubble-label,
html[lang="it"] .bubble-home-screen .home-bubble-baby .bubble-label,
html[lang="fr"] .bubble-home-screen .home-bubble-baby .bubble-label,
html[lang="ja"] .bubble-home-screen .home-bubble-baby .bubble-label{
  width:145%!important;max-width:none!important;font-size:2.8cqh!important;line-height:.92!important;
}

/* ACHIEVEMENTS — same left-side rhythm as Story / Help / Scores. The cat sits
   directly under the back arrow; mission cards are wider and readable. */
@media (orientation:landscape){
  .achievements-screen .achievements-section-bubble{
    left:1.45cqw!important;top:29.2cqh!important;width:16.8cqw!important;
  }
}
.achievements-carousel{
  left:21.0cqw!important;top:24.6cqh!important;width:73.3cqw!important;height:60.2cqh!important;
}
.achievement-page{padding:1.65cqh 1.8cqw 1.2cqh!important}
.achievement-page-head{height:5.2cqh!important;padding:0 .65cqw!important}
.achievement-page-head b{font-size:3.0cqh!important}
.achievement-page-head span{font-size:2.05cqh!important}
.achievement-grid{
  height:52.3cqh!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;
  grid-template-rows:repeat(2,minmax(0,1fr))!important;gap:1.55cqh 1.25cqw!important;
}
.achievement-card{
  grid-template-columns:6.6cqw minmax(0,1fr)!important;gap:.8cqw!important;
  padding:1.25cqh 1.05cqw!important;border-radius:2.35cqh!important;
}
.achievement-icon{width:6.25cqw!important;height:13.2cqh!important}
.achievement-icon>img{max-width:5.85cqw!important;max-height:12.4cqh!important}
.achievement-icon>i{width:2.25cqw!important;height:4.1cqh!important;right:-.1cqw!important;bottom:.2cqh!important}
.achievement-copy h3{font-size:2.28cqh!important;line-height:1.02!important;margin:0 0 .75cqh!important}
.achievement-copy p{font-size:1.52cqh!important;line-height:1.16!important;margin:0 0 .85cqh!important;min-height:3.45cqh!important}
.achievement-progress{height:1.0cqh!important;margin-bottom:.65cqh!important}
.achievement-copy small{font-size:1.3cqh!important;line-height:1.04!important}
.achievements-screen .h-scroll{left:21.4cqw!important;top:86.0cqh!important;width:72.5cqw!important}

/* EXIT — absolutely no hover geometry change. Only brightness may react. */
.game-exit-card .game-exit-bubble{left:4.35cqw!important}
.game-exit-card .game-exit-copy{left:44.3cqw!important;top:22.8cqh!important;width:47.2cqw!important}
.game-exit-card .game-exit-copy h2{font-size:7.75cqh!important;line-height:.9!important;margin:0 0 2.2cqh!important}
.game-exit-card .game-exit-copy p{font-size:3.05cqh!important;line-height:1.08!important}
.game-exit-card .game-exit-actions button,
.game-exit-card .game-exit-actions button:hover,
.game-exit-card .game-exit-actions button:focus-visible,
.game-exit-card .game-exit-actions button:active{
  transform:none!important;translate:none!important;scale:1!important;rotate:0deg!important;skew:none!important;
  transition:filter .12s ease!important;animation:none!important;
}
.game-exit-card .game-exit-actions button:hover,
.game-exit-card .game-exit-actions button:focus-visible{filter:brightness(1.025)!important}
.game-exit-card .game-exit-actions button>img{
  transform:none!important;scale:1!important;rotate:0deg!important;skew:none!important;transition:none!important;
}

/* LEVEL COMPLETE — one full-canvas action layer prevents the main buttons from
   ever disappearing or inheriting offsets from older modal rules. Coordinates
   follow 12-nextlevel-01: score above, large Next Level, aligned bottom pair. */
.game-modal.next-level-ref .level-complete-actions{
  position:absolute!important;inset:0!important;left:0!important;top:0!important;
  width:100%!important;height:100%!important;z-index:34!important;overflow:visible!important;
  opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important;
}
.game-modal.next-level-ref .level-complete-actions .modal-primary{
  display:grid!important;place-items:center!important;position:absolute!important;
  left:55.2cqw!important;top:66.8cqh!important;width:36.2cqw!important;height:19.6cqh!important;
  padding:0 5.0cqw 0 1.0cqw!important;margin:0!important;
  background:url('../assets/but1.png') center/contain no-repeat!important;
  font-size:4.7cqh!important;line-height:1!important;opacity:1!important;visibility:visible!important;
  transform:none!important;translate:none!important;scale:1!important;rotate:0deg!important;skew:none!important;
}
.game-modal.next-level-ref .level-complete-actions .modal-primary>img{
  position:absolute!important;right:.25cqw!important;top:50%!important;translate:0 -50%!important;
  width:7.75cqw!important;height:16.4cqh!important;object-fit:contain!important;transform:none!important;
}
.game-modal.next-level-ref .level-complete-actions .modal-menu,
.game-modal.next-level-ref .level-complete-actions .result-submit-button{
  display:grid!important;place-items:center!important;position:absolute!important;top:90.6cqh!important;
  height:12.4cqh!important;margin:0!important;padding:0!important;background-position:center!important;
  background-size:contain!important;background-repeat:no-repeat!important;opacity:1!important;visibility:visible!important;
  transform:none!important;translate:none!important;scale:1!important;rotate:0deg!important;skew:none!important;
  line-height:1!important;z-index:36!important;
}
.game-modal.next-level-ref .level-complete-actions .modal-menu{
  left:50.6cqw!important;width:21.4cqw!important;background-image:url('../assets/but2.png')!important;font-size:3.05cqh!important;
}
.game-modal.next-level-ref .level-complete-actions .modal-menu>img{
  position:absolute!important;left:-3.15cqw!important;top:50%!important;translate:0 -50%!important;
  width:5.7cqw!important;height:9.8cqh!important;object-fit:contain!important;transform:none!important;
}
.game-modal.next-level-ref .level-complete-actions .result-submit-button{
  left:73.1cqw!important;width:21.9cqw!important;background-image:url('../assets/but2.png')!important;
  font-size:2.9cqh!important;font-family:Catpuf,sans-serif!important;font-weight:900!important;text-transform:uppercase!important;
}
.game-modal.next-level-ref .level-complete-actions button:hover,
.game-modal.next-level-ref .level-complete-actions button:focus-visible{
  transform:scale(1.018)!important;rotate:0deg!important;skew:none!important;filter:brightness(1.02)!important;
}
.game-modal.next-level-ref .modal-copy p{top:46.5cqh!important}
.game-modal.next-level-ref .modal-copy strong{top:53.0cqh!important}

@media(max-width:900px) and (orientation:portrait){
  .bubble-home-screen .home-bubble-baby .bubble-label,
  html[lang="tr"] .bubble-home-screen .home-bubble-baby .bubble-label,
  html[lang="es"] .bubble-home-screen .home-bubble-baby .bubble-label,
  html[lang="it"] .bubble-home-screen .home-bubble-baby .bubble-label,
  html[lang="fr"] .bubble-home-screen .home-bubble-baby .bubble-label,
  html[lang="ja"] .bubble-home-screen .home-bubble-baby .bubble-label{font-size:2.25cqh!important}
  .achievements-screen .achievements-section-bubble{left:3cqw!important;top:21.7cqh!important;width:18.5cqw!important}
  .achievements-carousel{left:6.3cqw!important;top:24.2cqh!important;width:87.4cqw!important;height:61.5cqh!important}
  .achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:repeat(3,minmax(0,1fr))!important;height:55.0cqh!important}
  .achievement-card{grid-template-columns:11cqw minmax(0,1fr)!important;padding:.8cqh 1.4cqw!important}
  .achievement-icon{width:10.2cqw!important;height:7.7cqh!important}.achievement-icon>img{max-width:9.6cqw!important;max-height:7.2cqh!important}
  .achievement-copy h3{font-size:1.65cqh!important}.achievement-copy p{font-size:1.12cqh!important;min-height:2.2cqh!important}.achievement-copy small{font-size:.98cqh!important}
}

/* ========================================================================== 
   V19 — AUTHOR REFERENCE REBUILD / 2026-08-18
   Source of truth: Archive.zip supplied by the author.
   These classes are intentionally isolated from every legacy modal selector.
   ========================================================================== */

/* --------------------------------------------------------------------------
   EXIT — 18-exit.png. No rollover geometry. Ever.
   -------------------------------------------------------------------------- */
.game-exit-wrap{container-type:size!important}
.cp-exit-card{
  position:relative;z-index:3;width:81.71875cqw;height:71.944444cqh;
  container-type:size;overflow:visible;text-align:center;
  animation:cpRefEnter .38s cubic-bezier(.16,.86,.2,1) both;
}
.cp-exit-window{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}
.cp-exit-close{position:absolute;z-index:40;right:-1.9%;top:-6.2%;width:7.3%;height:auto;transform:none!important;transition:none!important}
.cp-exit-close img{display:block;width:100%;height:auto;transform:none!important;transition:none!important}
.cp-exit-close:hover,.cp-exit-close:focus-visible,.cp-exit-close:active{transform:none!important;filter:none!important}
.cp-exit-bubble{position:absolute;z-index:5;left:-3.8%;top:8.6%;width:39.2%;height:77.5%;pointer-events:none;animation:cpExitFloat 3.65s ease-in-out infinite;transform-origin:50% 55%}
.cp-exit-bubble-visual{position:absolute;inset:0;display:block;transform:none}
.cp-exit-bubble-shell{position:absolute;z-index:1;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 .55cqh .55cqw rgba(120,78,119,.11))}
.cp-exit-bubble-cat{position:absolute;z-index:3;left:50%;top:50.5%;width:76%;height:76%;translate:-50% -50%;object-fit:contain;transform-origin:50% 70%}
.cp-exit-bubble-play{position:absolute;z-index:5;right:3.8%;bottom:10.5%;width:25.5%;height:auto;object-fit:contain;filter:drop-shadow(0 .22cqh .18cqw rgba(95,63,72,.14))}
.cp-exit-copy{position:absolute;z-index:10;left:43.3%;top:22.9%;width:48.7%;text-align:center;text-transform:uppercase}
.cp-exit-copy h2{margin:0 0 2.0cqh;font-size:7.55cqh;line-height:.9;letter-spacing:.005em;white-space:nowrap}
.cp-exit-copy p{margin:0;font-size:3.52cqh;line-height:1.08;font-weight:900;white-space:nowrap}
.cp-exit-actions{position:absolute;z-index:20;left:50.0%;top:49.8%;width:35.5%;height:38%;display:block!important;transform:none!important}
.cp-exit-button{
  position:absolute!important;display:grid!important;place-items:center!important;margin:0!important;padding:0!important;
  border:0!important;border-radius:0!important;outline:0!important;appearance:none!important;box-shadow:none!important;
  background-position:center!important;background-repeat:no-repeat!important;background-size:contain!important;
  text-transform:uppercase!important;line-height:1!important;overflow:visible!important;
  transform:none!important;translate:none!important;scale:1!important;rotate:0deg!important;
  transition:none!important;animation:none!important;filter:none!important;
}
.cp-exit-button:hover,.cp-exit-button:focus-visible,.cp-exit-button:active{
  transform:none!important;translate:none!important;scale:1!important;rotate:0deg!important;
  transition:none!important;animation:none!important;filter:none!important;
}
.cp-exit-button span{position:relative;z-index:3;display:block;white-space:nowrap;transform:none!important}
.cp-exit-continue{left:0;top:0;width:32.4cqw;height:14.6cqh;background-image:url('../assets/but1.png')!important;font-size:4.15cqh!important}
.cp-exit-continue>img{position:absolute;z-index:4;right:-4.25cqw;top:50%;width:9.4cqw;height:17.2cqh;translate:0 -50%!important;object-fit:contain;pointer-events:none}
.cp-exit-menu{left:2.1cqw;top:20.3cqh;width:27.4cqw;height:12.8cqh;background-image:url('../assets/but2.png')!important;font-size:3.65cqh!important}
.cp-exit-menu>img{position:absolute;z-index:4;left:-4.75cqw;top:50%;width:7.0cqw;height:12.7cqh;translate:0 -50%!important;object-fit:contain;pointer-events:none}
.cp-exit-shards{position:absolute;z-index:15;inset:0;pointer-events:none}
.cp-exit-shards>i{position:absolute;inset:0;background:url('../assets/Bubble.png') center/100% 100% no-repeat;opacity:0;will-change:transform,opacity;filter:brightness(1.2) saturate(1.06)}
.cp-exit-shards>i:nth-child(1){clip-path:polygon(0 0,43% 0,31% 34%,0 46%)}
.cp-exit-shards>i:nth-child(2){clip-path:polygon(43% 0,75% 0,67% 37%,31% 34%)}
.cp-exit-shards>i:nth-child(3){clip-path:polygon(75% 0,100% 0,100% 47%,67% 37%)}
.cp-exit-shards>i:nth-child(4){clip-path:polygon(0 46%,31% 34%,43% 66%,0 76%)}
.cp-exit-shards>i:nth-child(5){clip-path:polygon(67% 37%,100% 47%,100% 78%,59% 66%)}
.cp-exit-shards>i:nth-child(6){clip-path:polygon(0 76%,43% 66%,48% 100%,0 100%)}
.cp-exit-shards>i:nth-child(7){clip-path:polygon(43% 66%,59% 66%,78% 100%,48% 100%)}
.cp-exit-shards>i:nth-child(8){clip-path:polygon(59% 66%,100% 78%,100% 100%,78% 100%)}
.cp-exit-bubble.bursting{animation:none!important}
.cp-exit-bubble.bursting .cp-exit-bubble-shell{animation:exitBubbleShellPop .13s ease-out forwards}
.cp-exit-bubble.bursting .cp-exit-shards>i{animation:exitBubbleShard .48s var(--delay) cubic-bezier(.12,.72,.18,1) forwards}
.cp-exit-bubble.bursting .cp-exit-bubble-cat{animation:exitCatDrop .56s .075s cubic-bezier(.25,.72,.3,1) forwards}
.cp-exit-bubble.bursting .cp-exit-bubble-play{animation:exitPlayDrop .5s .06s cubic-bezier(.22,.72,.28,1) forwards}
.game-exit-wrap.exit-transitioning .cp-exit-copy,.game-exit-wrap.exit-transitioning .cp-exit-actions{opacity:.10;transition:opacity .28s ease!important}
@keyframes cpExitFloat{0%,100%{transform:translate3d(0,-.45cqh,0) rotate(-.35deg)}50%{transform:translate3d(0,.55cqh,0) rotate(.35deg)}}

/* --------------------------------------------------------------------------
   RESULT SCREENS — 12-nextlevel-01, 11-gameover, 11-gamefinish.
   One isolated stage; no legacy .game-modal/.modal-actions selectors apply.
   -------------------------------------------------------------------------- */
.cp-result-wrap{container-type:size!important}
.cp-result-stage{
  position:absolute;z-index:4;left:9.140625cqw;top:14.027778cqh;width:81.71875cqw;height:71.944444cqh;
  container-type:size;overflow:visible;isolation:isolate;animation:cpRefEnter .42s cubic-bezier(.16,.86,.2,1) both;
}
.cp-result-window{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}
.cp-result-cat,.cp-result-birds{position:absolute;z-index:5;object-fit:contain;pointer-events:none}
.cp-result-copy{position:absolute;z-index:12;text-align:center;text-transform:uppercase;pointer-events:none}
.cp-result-copy small,.cp-result-copy h2,.cp-result-copy p,.cp-result-copy strong{display:block;margin:0;color:#2e2e2e}
.cp-result-actions{position:absolute;z-index:30;inset:0;pointer-events:auto;overflow:visible}
.cp-result-actions button{
  position:absolute!important;display:grid!important;place-items:center!important;margin:0!important;padding:0!important;border:0!important;
  border-radius:0!important;appearance:none!important;outline:0!important;background-position:center!important;background-repeat:no-repeat!important;
  background-size:contain!important;text-transform:uppercase!important;line-height:1!important;overflow:visible!important;
  transform:none!important;translate:none!important;scale:1!important;rotate:0deg!important;transition:filter .12s ease!important;
}
.cp-result-actions button:hover,.cp-result-actions button:focus-visible,.cp-result-actions button:active{transform:none!important;translate:none!important;scale:1!important;rotate:0deg!important;filter:brightness(1.02)!important}
.cp-result-actions button span{display:block;position:relative;z-index:2;white-space:nowrap}
.cp-result-primary{background-image:url('../assets/but1.png')!important}
.cp-result-primary>img{position:absolute;z-index:4;object-fit:contain;pointer-events:none}
.cp-result-menu,.cp-result-submit{background-image:url('../assets/but2.png')!important}
.cp-result-menu>img{position:absolute;z-index:4;object-fit:contain;pointer-events:none}
.game-modal-wrap.unlock-pending .cp-result-actions{pointer-events:none!important;filter:saturate(.92)}

/* Level Complete: 12-nextlevel-01.png */
.cp-result-level .cp-result-cat{left:18.2%;top:-13.0%;width:45.2%;height:117.5%}
.cp-result-level .cp-result-stats{position:absolute;z-index:10;left:3.0%;top:7.0%;width:18.0%;height:82.2%;display:grid;grid-template-rows:repeat(5,1fr);align-items:center}
.cp-result-level .cp-result-stats>span{position:relative;display:flex;align-items:center;justify-content:flex-start;height:100%;gap:1.2cqw;white-space:nowrap}
.cp-result-level .cp-result-stats>span>img:first-child{width:7.0cqw;height:12.6cqh;object-fit:contain;flex:0 0 auto}
.cp-result-level .cp-result-stats>span:nth-child(4)>img:first-child{width:6.0cqw;height:10.9cqh}
.cp-result-level .cp-result-stats>span:nth-child(5)>img:first-child{width:5.7cqw;height:11.3cqh}
.cp-result-level .cp-result-stats b{font-size:5.15cqh;line-height:1;font-weight:900}
.cp-result-level .cp-result-check{position:absolute;left:7.0cqw;top:50%;translate:0 -50%;width:4.0cqw!important;height:7.4cqh!important;object-fit:contain!important}
.cp-result-level .cp-result-copy{left:55.0%;top:8.6%;width:40.0%;height:55%}
.cp-result-level .cp-result-copy small{font-size:4.8cqh;line-height:1;margin-bottom:2.6cqh;white-space:nowrap}
.cp-result-level .cp-result-copy h2{font-size:10.9cqh;line-height:.82;letter-spacing:-.02em;margin:0 0 4.8cqh}
.cp-result-level .cp-result-copy h2 span{display:block;white-space:nowrap}
.cp-result-level .cp-result-copy p{font-size:4.6cqh;line-height:1;margin-bottom:1.6cqh}
.cp-result-level .cp-result-copy strong{font-size:6.75cqh;line-height:1;white-space:nowrap}
.cp-result-level .cp-result-primary{left:56.2%;top:69.0%;width:36.5%;height:18.8%;font-size:5.25cqh!important;padding-right:4.0cqw!important}
.cp-result-level .cp-result-primary>img{right:-2.0cqw;top:50%;translate:0 -50%;width:9.2cqw;height:16.8cqh}
.cp-result-level .cp-result-menu{left:50.2%;top:91.3%;width:22.2%;height:12.5%;font-size:3.2cqh!important}
.cp-result-level .cp-result-menu>img{left:-3.0cqw;top:50%;translate:0 -50%;width:5.8cqw;height:10.2cqh}
.cp-result-level .cp-result-submit{left:73.6%;top:91.3%;width:22.2%;height:12.5%;font-size:3.05cqh!important}

/* Game Over: 11-gameover.png */
.cp-result-over .cp-result-cat{left:-4.3%;top:11.5%;width:47.5%;height:79.0%}
.cp-result-over .cp-result-birds{left:-5.0%;top:5.2%;width:32.5%;height:28.0%}
.cp-result-over .cp-result-copy{left:45.0%;top:9.7%;width:49.0%;height:48%}
.cp-result-over .cp-result-copy small{font-size:4.25cqh;line-height:1;margin-bottom:3.2cqh;white-space:nowrap}
.cp-result-over .cp-result-copy h2{font-size:10.5cqh;line-height:.88;margin-bottom:5.7cqh;white-space:nowrap}
.cp-result-over .cp-result-copy p{font-size:4.3cqh;line-height:1;margin-bottom:2.0cqh}
.cp-result-over .cp-result-copy strong{font-size:6.4cqh;line-height:1;white-space:nowrap}
.cp-result-over .cp-result-primary{left:50.0%;top:67.8%;width:38.7%;height:17.4%;font-size:5.1cqh!important;padding-right:4.0cqw!important}
.cp-result-over .cp-result-primary>img{right:-2.25cqw;top:50%;translate:0 -50%;width:9.2cqw;height:16.8cqh}
.cp-result-over .cp-result-menu{left:45.3%;top:91.1%;width:22.0%;height:12.3%;font-size:3.15cqh!important}
.cp-result-over .cp-result-menu>img{left:-3.0cqw;top:50%;translate:0 -50%;width:5.8cqw;height:10.2cqh}
.cp-result-over .cp-result-submit{left:68.6%;top:91.1%;width:22.2%;height:12.3%;font-size:3.0cqh!important}

/* Final Game: 11-gamefinish.png */
.cp-result-final .cp-result-cat{left:2.4%;top:-13.0%;width:48.5%;height:119.0%}
.cp-result-final .cp-result-copy{left:50.0%;top:9.6%;width:44.5%;height:48%}
.cp-result-final .cp-result-copy small{font-size:4.55cqh;line-height:1;margin-bottom:3.6cqh;white-space:nowrap}
.cp-result-final .cp-result-copy h2{font-size:10.8cqh;line-height:.88;margin-bottom:5.7cqh;white-space:nowrap}
.cp-result-final .cp-result-copy p{font-size:4.3cqh;line-height:1;margin-bottom:2.0cqh}
.cp-result-final .cp-result-copy strong{font-size:6.4cqh;line-height:1;white-space:nowrap}
.cp-result-final .cp-result-primary{left:55.3%;top:67.8%;width:36.7%;height:17.4%;font-size:5.0cqh!important;padding-right:4.0cqw!important}
.cp-result-final .cp-result-primary>img{right:-2.25cqw;top:50%;translate:0 -50%;width:9.2cqw;height:16.8cqh}
.cp-result-final .cp-result-menu{left:50.7%;top:91.1%;width:21.8%;height:12.3%;font-size:3.15cqh!important}
.cp-result-final .cp-result-menu>img{left:-3.0cqw;top:50%;translate:0 -50%;width:5.8cqw;height:10.2cqh}
.cp-result-final .cp-result-submit{left:74.0%;top:91.1%;width:21.8%;height:12.3%;font-size:3.0cqh!important}

/* Translation fit without changing authored geometry. */
html[lang="tr"] .cp-result-level .cp-result-copy h2,
html[lang="es"] .cp-result-level .cp-result-copy h2,
html[lang="fr"] .cp-result-level .cp-result-copy h2,
html[lang="it"] .cp-result-level .cp-result-copy h2{font-size:9.35cqh}
html[lang="ja"] .cp-result-level .cp-result-copy h2{font-size:8.8cqh;line-height:.92}
html[lang="tr"] .cp-result-level .cp-result-primary,
html[lang="es"] .cp-result-level .cp-result-primary,
html[lang="fr"] .cp-result-level .cp-result-primary,
html[lang="it"] .cp-result-level .cp-result-primary{font-size:4.35cqh!important}
html[lang="ja"] .cp-result-level .cp-result-primary{font-size:4.0cqh!important}
html[lang="tr"] .cp-result-actions .cp-result-menu,
html[lang="tr"] .cp-result-actions .cp-result-submit,
html[lang="es"] .cp-result-actions .cp-result-menu,
html[lang="es"] .cp-result-actions .cp-result-submit,
html[lang="fr"] .cp-result-actions .cp-result-menu,
html[lang="fr"] .cp-result-actions .cp-result-submit,
html[lang="it"] .cp-result-actions .cp-result-menu,
html[lang="it"] .cp-result-actions .cp-result-submit{font-size:2.62cqh!important}
html[lang="ja"] .cp-result-actions .cp-result-menu,
html[lang="ja"] .cp-result-actions .cp-result-submit{font-size:2.45cqh!important}

/* --------------------------------------------------------------------------
   SCORE FLOW — 12-nextlevel-02 and 12-nextlevel-03.
   -------------------------------------------------------------------------- */
.cp-score-flow-wrap{
  position:fixed;z-index:19000;inset:0;display:block;container-type:size;overflow:hidden;
  background:url('../assets/back.jpg') center/cover no-repeat;opacity:0;transition:opacity .28s ease;
}
.cp-score-flow-wrap.show{opacity:1}.cp-score-flow-wrap.closing{opacity:0}
.cp-score-card{
  position:absolute;z-index:5;left:9.140625cqw;top:14.027778cqh;width:81.71875cqw;height:71.944444cqh;
  container-type:size;overflow:visible;animation:cpRefEnter .4s cubic-bezier(.16,.86,.2,1) both;
}
.cp-score-window{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}
.cp-score-close{position:absolute;z-index:30;right:-2.0%;top:-6.4%;width:7.3%;height:auto;transform:none!important;transition:none!important}
.cp-score-close img{width:100%;height:auto}.cp-score-close:hover,.cp-score-close:focus-visible{transform:none!important;filter:none!important}
.cp-score-cat{position:absolute;z-index:5;left:-1.6%;top:-13.5%;width:47.2%;height:116%;object-fit:contain;pointer-events:none}
.cp-score-copy{position:absolute;z-index:10;left:49.5%;top:6.5%;width:36.0%;height:63%;text-align:center;text-transform:uppercase}
.cp-score-heading small{display:block;font-size:4.4cqh;line-height:1;margin:0 0 2.4cqh}
.cp-score-heading h2{display:block;font-size:11.8cqh;line-height:.88;margin:0 0 6.5cqh}
.cp-score-form{display:block;margin:0;padding:0}.cp-score-form label{display:block;margin:0;padding:0}
.cp-score-form label span{display:block;font-size:4.2cqh;line-height:1;margin:0 0 1.5cqh;border-bottom:.65cqh solid #2d2d2d;padding-bottom:1.1cqh}
.cp-score-form input{display:block;width:100%;height:15.8cqh;border:0;border-radius:8.2cqh;background:rgba(255,252,251,.91);outline:none;padding:0 2.0cqw;text-align:center;font-size:4.0cqh;line-height:1;color:#2d2d2d}
.cp-score-status{height:3.0cqh;margin:.8cqh 0 0;font-size:1.6cqh;line-height:1;color:#b84d68}
.cp-score-submit{display:grid;place-items:center;width:100%;height:16.8cqh;margin:1.0cqh 0 0;background:url('../assets/but1.png') center/contain no-repeat!important;font-size:4.1cqh;text-transform:uppercase;transform:none!important;transition:none!important}
.cp-score-submit:hover,.cp-score-submit:focus-visible,.cp-score-submit:active{transform:none!important;filter:none!important}
.cp-score-submit:disabled{opacity:.68}
.cp-score-card.is-success .cp-score-copy{left:47.5%;top:31.0%;width:39.5%;height:28%;display:grid;place-items:center}
.cp-score-thanks{display:grid;gap:2.5cqh;text-align:center}.cp-score-thanks h3,.cp-score-thanks p{margin:0;line-height:1;text-transform:uppercase;color:#2e2e2e}
.cp-score-thanks h3{font-size:5.25cqh}.cp-score-thanks p{font-size:4.75cqh}
.cp-score-card.success-enter .cp-score-thanks{animation:cpThanksIn .5s cubic-bezier(.16,.86,.2,1) both}

@keyframes cpRefEnter{from{opacity:0;transform:scale(.975);filter:blur(2px)}to{opacity:1;transform:none;filter:none}}
@keyframes cpThanksIn{from{opacity:0;transform:translateY(1.5cqh) scale(.98)}to{opacity:1;transform:none}}

/* Fireworks remain behind authored copy/buttons/cat. */
.cp-result-stage .celebration-firework{z-index:2!important;pointer-events:none!important}

/* Portrait fallback: preserve the authored 16:9 composition as a whole rather
   than letting individual controls reflow into each other. */
@media(max-width:900px) and (orientation:portrait){
  .cp-exit-card,.cp-result-stage,.cp-score-card{transform-origin:50% 50%;}
  .cp-exit-copy h2{font-size:6.4cqh}.cp-exit-copy p{font-size:2.8cqh}
  .cp-result-level .cp-result-copy small{font-size:4.2cqh}.cp-result-level .cp-result-copy h2{font-size:8.5cqh}
  .cp-result-level .cp-result-copy p{font-size:3.8cqh}.cp-result-level .cp-result-copy strong{font-size:5.7cqh}
}

/* V19 reference micro-alignment after direct 1920x1080 comparison. */
.cp-exit-bubble{top:12.6%!important}
.cp-exit-bubble-play{right:17.0%!important;bottom:11.5%!important;width:23.5%!important}
.cp-exit-copy{top:26.0%!important}
.cp-exit-copy h2{font-size:8.35cqh!important}
.cp-exit-copy p{font-size:3.72cqh!important}
.cp-exit-menu{top:19.3cqh!important}
.cp-result-over .cp-result-copy{top:17.0%!important}
.cp-result-over .cp-result-copy h2{margin-bottom:6.2cqh!important}

/* V19 pixel-coordinate tune against 1920x1080 author references. */
.cp-result-level .cp-result-copy{top:11.9%!important}
.cp-result-level .cp-result-copy small{margin-bottom:2.5cqh!important}
.cp-result-level .cp-result-copy h2{line-height:.90!important;margin-bottom:6.6cqh!important}
.cp-result-level .cp-result-copy h2 span+span{margin-top:1.9cqh!important}
.cp-result-level .cp-result-copy p{margin-bottom:1.9cqh!important}
.cp-result-over .cp-result-copy{top:16.0%!important}
.cp-result-final .cp-result-copy{top:14.7%!important}
.cp-result-over .cp-result-primary{left:48.2%!important;top:69.4%!important}
.cp-result-final .cp-result-primary{left:55.0%!important;top:69.2%!important}

/* Score form: every vertical band is pinned to the supplied 12-nextlevel-02. */
.cp-score-copy{left:0!important;top:0!important;width:100%!important;height:100%!important;text-align:center!important}
.cp-score-heading{position:absolute!important;left:49.5%!important;top:9.4%!important;width:36.5%!important}
.cp-score-heading small{font-size:4.55cqh!important;margin:0 0 2.65cqh!important}
.cp-score-heading h2{font-size:12.6cqh!important;line-height:.88!important;margin:0!important}
.cp-score-form{position:absolute!important;left:50.0%!important;top:43.7%!important;width:34.0%!important;height:54%!important}
.cp-score-form label span{font-size:4.05cqh!important;margin:0 0 2.2cqh!important;padding-bottom:1.25cqh!important}
.cp-score-form input{height:18.0cqh!important;border-radius:9.0cqh!important;font-size:4.0cqh!important}
.cp-score-status{height:2.8cqh!important;margin:.8cqh 0 0!important}
.cp-score-submit{position:absolute!important;left:-1.0%!important;top:39.8cqh!important;width:102%!important;height:18.4cqh!important;margin:0!important;font-size:4.25cqh!important}
.cp-score-card.is-success .cp-score-copy{left:0!important;top:0!important;width:100%!important;height:100%!important;display:block!important}
.cp-score-card.is-success .cp-score-thanks{position:absolute!important;left:48.0%!important;top:34.0%!important;width:39.0%!important;gap:2.4cqh!important}
.cp-score-thanks h3{font-size:5.25cqh!important}.cp-score-thanks p{font-size:4.75cqh!important}
.cp-score-form input{height:20.2cqh!important;border-radius:10.1cqh!important}
.cp-score-submit{top:42.4cqh!important;height:19.8cqh!important}
.cp-score-card.is-success .cp-score-thanks{top:40.5%!important}
/* Final author-scale typography/button tune. */
.cp-exit-actions{top:48.2%!important}
.cp-exit-continue{height:17.2cqh!important;font-size:5.0cqh!important}
.cp-exit-menu{top:20.4cqh!important;height:14.6cqh!important;font-size:4.3cqh!important}
.cp-result-level .cp-result-menu{font-size:3.7cqh!important}
.cp-result-level .cp-result-submit{font-size:3.55cqh!important}
html[lang="tr"] .cp-result-actions .cp-result-menu,
html[lang="tr"] .cp-result-actions .cp-result-submit,
html[lang="es"] .cp-result-actions .cp-result-menu,
html[lang="es"] .cp-result-actions .cp-result-submit,
html[lang="fr"] .cp-result-actions .cp-result-menu,
html[lang="fr"] .cp-result-actions .cp-result-submit,
html[lang="it"] .cp-result-actions .cp-result-menu,
html[lang="it"] .cp-result-actions .cp-result-submit{font-size:3.15cqh!important}
html[lang="ja"] .cp-result-actions .cp-result-menu,
html[lang="ja"] .cp-result-actions .cp-result-submit{font-size:3.0cqh!important}

/* ========================================================================== 
   V20 — PROFESSIONAL ACHIEVEMENTS / PUF RAPID CHAIN / TACTILE MODAL HOVERS
   ========================================================================== */

/* Modal buttons keep their authored proportions and only grow as one rigid unit. */
.cp-exit-button,
.cp-result-actions button,
.cp-score-submit{
  transform-origin:50% 50%!important;
  transition:transform .14s cubic-bezier(.16,.86,.2,1),filter .14s ease!important;
  will-change:transform;
}
.cp-exit-button:hover,.cp-exit-button:focus-visible,
.cp-result-actions button:hover,.cp-result-actions button:focus-visible,
.cp-score-submit:hover,.cp-score-submit:focus-visible{
  transform:scale(1.025)!important;
  translate:none!important;scale:1!important;rotate:0deg!important;
  filter:brightness(1.035)!important;
}
.cp-exit-button:active,.cp-result-actions button:active,.cp-score-submit:active{
  transform:scale(1.012)!important;translate:none!important;scale:1!important;rotate:0deg!important;
}

/* Achievements: category-led, game-native trophy cabinet. */
.achievements-workspace{
  position:absolute;left:20.3cqw;top:21.5cqh;width:74.7cqw;height:65.6cqh;
  font-family:var(--font);color:#382f31;overflow:visible;
}
.achievements-summary{
  position:absolute;left:0;top:0;width:100%;height:5.9cqh;display:flex;align-items:center;gap:1.2cqw;
  padding:0 .8cqw;box-sizing:border-box;
}
.achievements-summary>div{display:flex;align-items:baseline;gap:.55cqw;white-space:nowrap}
.achievements-summary small{font-size:1.45cqh;font-weight:900;opacity:.62}
.achievements-summary strong{font-size:2.65cqh;line-height:1;font-weight:900}
.achievements-summary>span{position:relative;display:block;flex:1;height:1.05cqh;border-radius:99px;background:rgba(104,71,80,.12);overflow:hidden;box-shadow:inset 0 .14cqh .28cqh rgba(89,50,59,.08)}
.achievements-summary>span>i{display:block;width:var(--achievement-total);height:100%;border-radius:inherit;background:linear-gradient(90deg,#f0a1bb,#ffcf6b,#9dde9e);transition:width .38s ease}
.achievement-categories{
  position:absolute;left:0;top:5.8cqh;width:100%;height:9.5cqh;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.55cqw;
}
.achievement-category{
  position:relative;min-width:0;border:.18cqh solid rgba(213,163,176,.48);border-radius:2.2cqh;padding:.65cqh .5cqw .75cqh;
  background:linear-gradient(180deg,rgba(255,250,251,.92),rgba(255,225,235,.82));color:#382f31;font-family:var(--font);
  display:grid;grid-template-columns:3.5cqw minmax(0,1fr);grid-template-rows:1fr .65cqh;align-items:center;gap:0 .35cqw;
  box-shadow:inset 0 .15cqh .26cqh rgba(255,255,255,.85),0 .35cqh .8cqh rgba(98,58,68,.07);
  cursor:pointer;overflow:hidden;transition:transform .16s cubic-bezier(.16,.86,.2,1),filter .15s ease,box-shadow .15s ease;
}
.achievement-category:hover,.achievement-category:focus-visible{transform:translateY(-.18cqh) scale(1.018);filter:brightness(1.025)}
.achievement-category.is-active{
  background:linear-gradient(180deg,#fff4c9 0%,#ffd887 100%);border-color:rgba(217,157,43,.66);
  box-shadow:0 0 0 .16cqh rgba(255,242,174,.8),0 .6cqh 1.25cqh rgba(144,94,19,.14),inset 0 .16cqh .3cqh rgba(255,255,255,.8);
}
.achievement-category-icon{grid-row:1;grid-column:1;width:3.35cqw;height:5.8cqh;display:grid;place-items:center}
.achievement-category-icon img{max-width:3.15cqw;max-height:5.5cqh;object-fit:contain;filter:drop-shadow(0 .18cqh .16cqw rgba(80,47,57,.12))}
.achievement-category-copy{grid-row:1;grid-column:2;display:flex;min-width:0;flex-direction:column;gap:.2cqh;text-align:left}
.achievement-category-copy b{font-size:1.52cqh;line-height:.96;white-space:normal}
.achievement-category-copy small{font-size:1.08cqh;line-height:1;opacity:.66}
.achievement-category>i{grid-column:1/3;grid-row:2;display:block;height:.62cqh;border-radius:99px;background:rgba(99,66,75,.12);overflow:hidden}
.achievement-category>i>span{display:block;width:var(--category-progress);height:100%;border-radius:inherit;background:linear-gradient(90deg,#f09bb8,#ffc565,#83d89c)}

.achievements-workspace .achievements-carousel{
  position:absolute!important;left:0!important;top:16.0cqh!important;width:100%!important;height:46.8cqh!important;
  display:flex!important;overflow-x:auto!important;overflow-y:hidden!important;scroll-snap-type:x mandatory!important;scroll-behavior:smooth!important;
  scrollbar-width:none!important;overscroll-behavior-inline:contain!important;touch-action:pan-x!important;cursor:grab!important;
  mask-image:linear-gradient(90deg,transparent 0,#000 1.0%,#000 99%,transparent 100%)!important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 1.0%,#000 99%,transparent 100%)!important;
}
.achievements-workspace .achievement-page{position:relative!important;flex:0 0 100%!important;height:100%!important;padding:.3cqh .65cqw 1.0cqh!important;scroll-snap-align:center!important;box-sizing:border-box!important}
.achievements-workspace .achievement-page-head{height:5.1cqh!important;padding:0 .8cqw!important;display:flex!important;align-items:center!important;justify-content:space-between!important}
.achievements-workspace .achievement-page-head b{font-size:2.7cqh!important;line-height:1!important}
.achievements-workspace .achievement-page-head span{font-size:1.8cqh!important;opacity:.62!important}
.achievements-workspace .achievement-grid{
  height:40.7cqh!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:repeat(2,minmax(0,1fr))!important;
  gap:1.25cqh 1.0cqw!important;
}
.achievements-workspace .achievement-card{
  position:relative!important;display:grid!important;grid-template-columns:8.0cqw minmax(0,1fr)!important;align-items:center!important;gap:1.0cqw!important;
  padding:1.4cqh 1.25cqw!important;border-radius:2.65cqh!important;border:.22cqh solid rgba(214,164,176,.50)!important;
  background:linear-gradient(155deg,rgba(255,251,252,.96),rgba(255,226,236,.86))!important;
  box-shadow:inset 0 .18cqh .3cqh rgba(255,255,255,.88),0 .55cqh 1.25cqh rgba(113,72,82,.09)!important;
  overflow:hidden!important;
}
.achievements-workspace .achievement-card::after{content:"";position:absolute;right:-2.2cqw;top:-3.5cqh;width:8cqw;height:14cqh;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.55),transparent 68%);pointer-events:none}
.achievements-workspace .achievement-card.is-complete{
  background:linear-gradient(155deg,rgba(255,252,220,.99),rgba(255,217,132,.91))!important;border-color:rgba(218,158,39,.68)!important;
  box-shadow:0 0 0 .18cqh rgba(255,242,166,.78),0 .72cqh 1.6cqh rgba(151,101,27,.16),inset 0 .18cqh .3cqh rgba(255,255,255,.84)!important;
}
.achievements-workspace .achievement-icon{position:relative!important;width:7.7cqw!important;height:15.5cqh!important;display:grid!important;place-items:center!important}
.achievements-workspace .achievement-icon>img{max-width:7.2cqw!important;max-height:14.6cqh!important;object-fit:contain!important;filter:drop-shadow(0 .3cqh .28cqw rgba(70,45,50,.13))!important}
.achievements-workspace .achievement-icon>i{position:absolute!important;right:-.15cqw!important;bottom:.25cqh!important;width:2.55cqw!important;height:4.6cqh!important}
.achievements-workspace .achievement-icon>i img{width:100%!important;height:100%!important;object-fit:contain!important}
.achievements-workspace .achievement-copy{min-width:0!important;text-align:left!important}
.achievements-workspace .achievement-copy h3{font-size:2.35cqh!important;line-height:1.02!important;margin:0 0 .8cqh!important}
.achievements-workspace .achievement-copy p{font-size:1.66cqh!important;line-height:1.16!important;margin:0 0 1.0cqh!important;font-weight:900!important;min-height:3.85cqh!important}
.achievements-workspace .achievement-progress{height:1.08cqh!important;margin:0 0 .72cqh!important;border-radius:99px!important}
.achievements-workspace .achievement-copy small{display:block!important;font-size:1.38cqh!important;line-height:1.05!important;font-weight:900!important;opacity:.74!important;white-space:nowrap!important}
.achievements-workspace .achievement-card.is-complete .achievement-copy small{opacity:1!important}
.achievements-workspace .h-scroll{left:.5cqw!important;top:63.1cqh!important;width:73.5cqw!important;height:2.55cqh!important}

/* Every PUF hit leaves a bubble at the target while the travelling bubble pops
   and reforms on the same beat. */
.puf-bubble-impact{position:absolute;z-index:113;left:0;top:0;width:1px;height:1px;translate:-50% -50%;pointer-events:none}
.puf-bubble-impact-shell{position:absolute;left:0;top:0;width:7.3cqw;height:13.0cqh;translate:-50% -50%;object-fit:contain;animation:pufImpactShell .22s cubic-bezier(.12,.78,.18,1) forwards}
.puf-bubble-impact-burst{position:absolute;left:0;top:0;width:6.2cqw;height:11.0cqh;translate:-50% -50%;object-fit:contain;animation:pufImpactBurst .20s cubic-bezier(.12,.78,.18,1) forwards}
.puf-bubble-impact.big .puf-bubble-impact-shell{width:9.2cqw;height:16.4cqh}.puf-bubble-impact.big .puf-bubble-impact-burst{width:8.0cqw;height:14.2cqh}
@keyframes pufImpactShell{0%{opacity:.96;scale:.62;filter:brightness(1.25)}38%{opacity:1;scale:1.06 .92}70%{opacity:.82;scale:1.18}100%{opacity:0;scale:.18;filter:brightness(1.5)}}
@keyframes pufImpactBurst{0%{opacity:0;scale:.28;rotate:-5deg}26%{opacity:1;scale:.78}65%{opacity:1;scale:1.05;rotate:4deg}100%{opacity:0;scale:1.24;rotate:8deg}}

/* Yarn rescue is driven by the new WAAPI choreography; neutralize the old
   infinite grip/pulse and static hold animations so no beat looks amateurish. */
.cat-yarn-rescue-fx.yarn-rescue-pro.hugged:not(.rolling),
.cat-yarn-rescue-fx.yarn-rescue-pro.rolling{animation:none!important}
.cat-yarn-rescue-fx.yarn-rescue-pro.rolling .yarn-rescue-cat,
.cat-yarn-rescue-fx.yarn-rescue-pro.rolling .yarn-rescue-ball{animation:none!important}
.cat-yarn-rescue-fx.yarn-rescue-pro .yarn-hug-heart{animation:yarnHugHeart .55s .18s ease-out both!important}

@media(max-width:900px) and (orientation:portrait){
  .achievements-workspace{left:5.0cqw;top:25.2cqh;width:90cqw;height:61.5cqh}
  .achievements-summary{height:4.8cqh}.achievements-summary small{font-size:1.15cqh}.achievements-summary strong{font-size:2.0cqh}
  .achievement-categories{top:4.8cqh;height:12.8cqh;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,1fr);gap:.55cqh 1cqw}
  .achievement-category{grid-template-columns:8cqw minmax(0,1fr);border-radius:1.7cqh;padding:.45cqh 1cqw}
  .achievement-category-icon{width:7.6cqw;height:4.2cqh}.achievement-category-icon img{max-width:7cqw;max-height:4cqh}
  .achievement-category-copy b{font-size:1.16cqh}.achievement-category-copy small{font-size:.9cqh}
  .achievements-workspace .achievements-carousel{top:18.3cqh!important;height:40.5cqh!important}
  .achievements-workspace .achievement-page-head{height:4.1cqh!important}.achievements-workspace .achievement-page-head b{font-size:2.0cqh!important}.achievements-workspace .achievement-page-head span{font-size:1.25cqh!important}
  .achievements-workspace .achievement-grid{height:35.5cqh!important;grid-template-columns:1fr!important;grid-template-rows:repeat(2,minmax(0,1fr))!important;gap:.8cqh!important}
  .achievements-workspace .achievement-card{grid-template-columns:17cqw minmax(0,1fr)!important;padding:.8cqh 2cqw!important}
  .achievements-workspace .achievement-icon{width:15.5cqw!important;height:14cqh!important}.achievements-workspace .achievement-icon>img{max-width:14.5cqw!important;max-height:13.2cqh!important}
  .achievements-workspace .achievement-copy h3{font-size:1.7cqh!important}.achievements-workspace .achievement-copy p{font-size:1.22cqh!important;min-height:2.5cqh!important}.achievements-workspace .achievement-copy small{font-size:1.02cqh!important}
  .achievements-workspace .h-scroll{top:59.3cqh!important;left:1cqw!important;width:88cqw!important}
}

/* ========================================================================== 
   V22 — HELP MICRO-ALIGNMENT + EXIT CLEANUP + PHONE LANDSCAPE SAFETY
   2026-08-18. These are the final overrides for the author's requested Help
   spacing. They intentionally do not touch Story, Achievements or gameplay.
   ========================================================================== */

/* 06-help-01 — larger readable copy; growth is downward, not sideways. */
.help-new-screen .help-slide-1 .help-objective-block{
  left:8%!important;top:10.5%!important;width:50%!important;height:auto!important;
}
.help-new-screen .help-slide-1 .help-objective-block h2{
  font-size:calc(3.72cqh * var(--ref-type-scale,1))!important;margin-bottom:1.25cqh!important;
}
.help-new-screen .help-slide-1 .help-objective-block .help-objective-lead{
  max-width:38cqw!important;font-size:calc(2.82cqh * var(--ref-type-scale,1))!important;
  line-height:1.11!important;margin-bottom:1.7cqh!important;
}
.help-new-screen .help-slide-1 .help-objective-block p:last-child{
  max-width:40cqw!important;font-size:calc(1.56cqh * var(--ref-type-scale,1))!important;
  line-height:1.16!important;
}
.help-new-screen .help-slide-1 .help-how-block{
  right:2.0%!important;top:24.0%!important;width:27.5%!important;height:auto!important;
}
.help-new-screen .help-slide-1 .help-how-block h2{
  font-size:calc(3.08cqh * var(--ref-type-scale,1))!important;margin-bottom:1.2cqh!important;
}
.help-new-screen .help-slide-1 .help-how-block p{
  max-width:20.0cqw!important;font-size:calc(1.52cqh * var(--ref-type-scale,1))!important;
  line-height:1.16!important;
}

/* 06-help-02 — pillow sits closer to its copy. */
.help-new-screen .help-slide-2 .help-pillows .help-ref-art{
  top:23.1cqh!important;height:25.0cqh!important;
}

/* 06-help-03 — bomb sits closer to the paragraph above it. */
.help-new-screen .help-slide-3 .help-bomb .help-ref-art{
  top:22.8cqh!important;height:25.5cqh!important;
}

/* 06-help-04 — red nuclear moves upward and its radiation mark is deliberately
   as dominant as the yellow nuclear mark. */
.help-new-screen .help-slide-4 .help-red-nuclear .help-ref-art{
  top:23.6cqh!important;height:25.2cqh!important;
}
.help-new-screen .help-slide-4 .help-red-nuclear .help-red-nuclear-base{
  width:13.1cqw!important;height:23.0cqh!important;
}
.help-new-screen .help-slide-4 .help-red-nuclear .help-red-nuclear-symbol{
  width:9.7cqw!important;height:16.2cqh!important;max-width:none!important;max-height:none!important;
}

/* 06-help-05 — hamster and ice rise toward their own explanations. */
.help-new-screen .help-slide-5 .help-hamster .help-ref-art,
.help-new-screen .help-slide-5 .help-ice .help-ref-art{
  top:24.0cqh!important;height:24.2cqh!important;
}

/* 06-help-06 — larger chicken explanation and eggs exactly on the chicken's
   visual baseline instead of floating lower in the cloud field. */
.help-new-screen .help-slide-6 .help-chain-copy{
  left:8.5%!important;top:8.5%!important;width:43.5%!important;height:auto!important;
}
.help-new-screen .help-slide-6 .help-chain-copy h2{
  font-size:calc(3.28cqh * var(--ref-type-scale,1))!important;margin-bottom:1.35cqh!important;
}
.help-new-screen .help-slide-6 .help-chain-copy p{
  max-width:35cqw!important;font-size:calc(1.55cqh * var(--ref-type-scale,1))!important;
  line-height:1.17!important;
}
.help-new-screen .help-slide-6 .help-chain-art{
  right:0!important;top:-1.0cqh!important;width:44%!important;height:56cqh!important;
}
.help-new-screen .help-slide-6 .help-chain-chicken{
  top:1.0cqh!important;width:26.0cqw!important;height:45.0cqh!important;
}
.help-new-screen .help-slide-6 .help-chain-egg{
  top:33.0cqh!important;bottom:auto!important;width:7.4cqw!important;height:13.0cqh!important;
}
.help-new-screen .help-slide-6 .help-chain-egg.egg-left{left:5.0%!important}
.help-new-screen .help-slide-6 .help-chain-egg.egg-right{right:4.0%!important}

/* 06-help-07 — move the whole PUF BUBBLE copy beat downward. */
.help-new-screen .help-slide-7 .help-puf-bubble .help-ref-copy{
  top:30.5cqh!important;
}

/* 06-help-08 — larger POWER BUTTONS explanation, expanding downward. */
.help-new-screen .help-slide-8 .help-power-copy{
  left:6.5%!important;top:17.5%!important;width:37.0%!important;height:auto!important;
}
.help-new-screen .help-slide-8 .help-power-copy h2{
  font-size:calc(3.78cqh * var(--ref-type-scale,1))!important;margin-bottom:.9cqh!important;
}
.help-new-screen .help-slide-8 .help-power-copy strong{
  font-size:calc(2.72cqh * var(--ref-type-scale,1))!important;line-height:1.12!important;margin-bottom:1.4cqh!important;
}
.help-new-screen .help-slide-8 .help-power-copy p{
  max-width:30.0cqw!important;font-size:calc(1.55cqh * var(--ref-type-scale,1))!important;
  line-height:1.17!important;
}

/* 06-help-09 — each power's copy is deliberately pulled toward its artwork. */
.help-new-screen .help-slide-9 .help-power-grid .help-ref-item{
  display:block!important;height:54cqh!important;
}
.help-new-screen .help-slide-9 .help-power-grid .help-ref-art,
.help-new-screen .help-slide-9 .help-power-grid .help-ref-copy{
  position:absolute!important;left:0!important;width:100%!important;margin:0!important;
}
.help-new-screen .help-slide-9 .help-power-pick{left:6.5%!important;top:1.5%!important;width:22.5%!important}
.help-new-screen .help-slide-9 .help-power-pick .help-ref-art{top:0!important;height:24.5cqh!important}
.help-new-screen .help-slide-9 .help-power-pick .help-ref-copy{top:24.3cqh!important}
.help-new-screen .help-slide-9 .help-power-gun{left:31.0%!important;top:1.5%!important;width:23.0%!important}
.help-new-screen .help-slide-9 .help-power-gun .help-ref-copy{top:7.2cqh!important}
.help-new-screen .help-slide-9 .help-power-gun .help-ref-art{top:21.2cqh!important;height:25.5cqh!important}
.help-new-screen .help-slide-9 .help-power-clover{left:55.3%!important;top:1.5%!important;width:22.5%!important}
.help-new-screen .help-slide-9 .help-power-clover .help-ref-art{top:0!important;height:24.7cqh!important}
.help-new-screen .help-slide-9 .help-power-clover .help-ref-copy{top:24.4cqh!important}
.help-new-screen .help-slide-9 .help-power-press{right:.2%!important;left:auto!important;top:1.5%!important;width:21.5%!important}
.help-new-screen .help-slide-9 .help-power-press .help-ref-copy{top:6.8cqh!important}
.help-new-screen .help-slide-9 .help-power-press .help-ref-art{top:20.8cqh!important;height:25.7cqh!important}
.help-new-screen .help-slide-9 .help-power-grid .help-ref-art>img{
  max-width:11.2cqw!important;max-height:23.5cqh!important;
}
.help-new-screen .help-slide-9 .help-power-grid .help-ref-copy h3{
  font-size:calc(2.42cqh * var(--ref-type-scale,1))!important;margin-bottom:.65cqh!important;
}
.help-new-screen .help-slide-9 .help-power-grid .help-ref-copy p{
  max-width:15.2cqw!important;font-size:calc(1.24cqh * var(--ref-type-scale,1))!important;line-height:1.15!important;
}

/* Exit: the left bubble must contain only the bubble + cat. The large extra
   play artwork was removed from markup; keep the class suppressed as a cache-safe
   fallback for older HTML in service-worker/browser caches. */
.cp-exit-bubble-play{display:none!important}

/* Phone landscape audit: use the real visual viewport/safe areas already wired
   by JS, and keep tutorial/modal art inside the authored 16:9 canvas. */
@media(max-width:900px) and (orientation:landscape){
  .design-canvas{
    max-width:calc(var(--app-vw) - var(--safe-left) - var(--safe-right))!important;
    max-height:calc(var(--app-vh) - var(--safe-top) - var(--safe-bottom))!important;
  }
  .help-new-screen .help-carousel{overflow-x:auto!important;overflow-y:visible!important}
  .help-new-screen .help-slide{overflow:visible!important}
  .help-new-screen .help-slide-1 .help-objective-block .help-objective-lead{font-size:calc(2.92cqh * var(--ref-type-scale,1))!important}
  .help-new-screen .help-slide-1 .help-objective-block p:last-child,
  .help-new-screen .help-slide-1 .help-how-block p,
  .help-new-screen .help-slide-6 .help-chain-copy p,
  .help-new-screen .help-slide-8 .help-power-copy p{line-height:1.14!important}
  .cp-exit-card,.cp-result-stage{max-width:96cqw!important;max-height:94cqh!important}
  .cp-exit-card{overflow:visible!important}
  .cp-exit-copy,.cp-exit-actions,.cp-result-copy,.cp-result-actions{overflow:visible!important}
  .store-card,.cat-detail,.remember-card,.last-five-card{max-width:96vw!important;max-height:94dvh!important}
}

/* Modern iOS/Android browser bars must not steal visible height after rotation. */
@supports(height:100dvh){
  html,body,#app{height:100dvh}
  .screen{height:var(--app-vh)!important}
}

@media(max-width:900px) and (orientation:landscape){
  /* Center the 16:9 site canvas inside the asymmetric notch safe area rather
     than around the raw screen center. */
  .design-canvas{
    left:calc(50% + (var(--safe-left) - var(--safe-right))/2)!important;
    top:calc(50% + (var(--safe-top) - var(--safe-bottom))/2)!important;
  }
}

/* ========================================================================== 
   V23 — UNIFIED FOOTER DOWNLOAD TRIO
   Replaces the legacy single APK badge everywhere the canonical footer renders.
   macOS / Windows / Android stay on one baseline without disturbing the legal row.
   ========================================================================== */
.site-footer.footer-unified[data-unified-footer="true"] .footer-downloads{
  position:absolute!important;
  left:71.25cqw!important;
  top:94cqh!important;
  width:26.15cqw!important;
  height:5.05cqh!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:.48cqw!important;
  transform:translateY(-50%)!important;
  z-index:4!important;
  pointer-events:auto!important;
  overflow:visible!important;
}
.site-footer.footer-unified[data-unified-footer="true"] .footer-download-button{
  position:relative!important;
  flex:0 0 8.38cqw!important;
  width:8.38cqw!important;
  height:auto!important;
  aspect-ratio:153/46!important;
  display:block!important;
  pointer-events:auto!important;
  cursor:pointer!important;
  touch-action:manipulation!important;
  transform:none!important;
  transform-origin:50% 50%!important;
  transition:transform .18s cubic-bezier(.2,.82,.2,1),filter .18s ease!important;
  text-decoration:none!important;
  outline:none!important;
}
.site-footer.footer-unified[data-unified-footer="true"] .footer-download-button img{
  width:100%!important;
  height:100%!important;
  display:block!important;
  object-fit:contain!important;
  pointer-events:none!important;
}
.site-footer.footer-unified[data-unified-footer="true"] .footer-download-button:hover,
.site-footer.footer-unified[data-unified-footer="true"] .footer-download-button:focus-visible{
  transform:translateY(-.13cqh) scale(1.035)!important;
  filter:brightness(1.045)!important;
}
.site-footer.footer-unified[data-unified-footer="true"] .footer-download-button:active{
  transform:scale(.975)!important;
}
/* Legacy badge can never reappear from stale/duplicated footer rules. */
.site-footer.footer-unified[data-unified-footer="true"] .footer-apk-download{display:none!important;visibility:hidden!important}

@media(max-height:620px) and (orientation:landscape){
  .site-footer.footer-unified[data-unified-footer="true"] .footer-downloads{
    left:71.45cqw!important;
    width:25.9cqw!important;
    gap:.42cqw!important;
  }
  .site-footer.footer-unified[data-unified-footer="true"] .footer-download-button{
    flex-basis:8.28cqw!important;width:8.28cqw!important;
  }
}
@media(max-width:900px) and (orientation:landscape){
  .site-footer.footer-unified[data-unified-footer="true"] .footer-downloads{
    left:71.2cqw!important;
    width:26.3cqw!important;
    gap:.42cqw!important;
  }
  .site-footer.footer-unified[data-unified-footer="true"] .footer-download-button{
    flex-basis:8.42cqw!important;width:8.42cqw!important;
  }
}

/* ========================================================================== 
   V24 — HOME CHICKEN PORTAL POSITION / 2026-08-18
   Move only the small chicken portal into the open lower-right home field shown
   in the supplied screenshot. Keep its authored size, hover and inner motion.
   ========================================================================== */
@media (orientation:landscape){
  .bubble-home-screen .home-bubble-card.home-bubble-chicken{
    left:70.6cqw!important;
    right:auto!important;
    top:66.8cqh!important;
  }
}

/* ========================================================================== 
   V25 — CATPUF: PURRS ON PEACE / 2026-08-20
   Isolated wellness/playable-pause route. No PEACE art or audio is preloaded by
   the normal site; only the 320px HOME portal is visible before entry.
   ========================================================================== */

/* 03-homeNew — the authored meditation-cat bubble, intentionally label-free. */
@media (orientation:landscape){
  .bubble-home-screen .home-bubble-card.home-peace-portal{
    left:18.15cqw!important;right:auto!important;top:1.65cqh!important;
    width:13.55cqw!important;height:24.5cqh!important;z-index:17!important;
    overflow:visible!important;contain:none!important;
    --bubble-drift-x:.08cqw;--bubble-drift-y:.78cqh;--bubble-scale-lo:.993;--bubble-scale-hi:1.016;
  }
  .bubble-home-screen .home-peace-portal .bubble-visual{width:100%!important;height:100%!important;overflow:visible!important}
  .bubble-home-screen .home-peace-portal .peace-home-icon{
    width:84%!important;height:86%!important;left:50%!important;top:50.5%!important;object-fit:contain!important;
    filter:drop-shadow(0 .22cqh .18cqw rgba(100,69,91,.08));
  }
  .bubble-home-screen .home-peace-portal:hover .bubble-visual,
  .bubble-home-screen .home-peace-portal:focus-visible .bubble-visual{scale:1.045!important}
}

/* Route shell. The entire scene is authored inside the same 1920x1080 design
   canvas used by CATPUF, so desktop and landscape-phone geometry are identical. */
.peace-screen{
  background:linear-gradient(116deg,#0758b8 0%,#3a78da 28%,#9aa9ed 53%,#e9a8d5 76%,#ffc6b2 100%)!important;
  isolation:isolate;
}
.peace-canvas{
  overflow:hidden!important;
  background:
    radial-gradient(ellipse at 95% 51%,rgba(255,233,187,.92) 0,rgba(255,202,197,.52) 23%,rgba(255,189,207,.18) 42%,transparent 58%),
    radial-gradient(ellipse at 48% 47%,rgba(188,209,255,.18),transparent 48%),
    linear-gradient(116deg,#0759bd 0%,#3979dc 29%,#91a8ee 52%,#e4a9db 75%,#ffc8b6 100%);
}
.peace-canvas::before{
  content:"";position:absolute;z-index:0;inset:-12%;pointer-events:none;opacity:.34;
  background:repeating-linear-gradient(8deg,transparent 0 3.1cqw,rgba(255,255,255,.09) 3.18cqw 3.25cqw,transparent 3.31cqw 5.8cqw);
  transform:rotate(-2deg);transform-origin:80% 50%;
}
.peace-stage{position:absolute;z-index:2;inset:0;opacity:0;transition:opacity .65s ease,filter .65s ease;filter:blur(2px)}
.peace-stage.is-ready{opacity:1;filter:none}
.peace-world{position:absolute;inset:0;overflow:hidden}
.peace-sky-glow{position:absolute;z-index:0;inset:0;pointer-events:none;background:radial-gradient(circle at 81% 51%,rgba(255,238,194,.27),transparent 30%)}
.peace-back{
  position:absolute;z-index:90;left:3.65cqw;top:5.25cqh;width:4.45cqw;height:7.9cqh;
  display:grid;place-items:center;transition:transform .22s cubic-bezier(.2,.9,.22,1),filter .22s ease;
}
.peace-back img{width:100%;height:100%;object-fit:contain}
.peace-back:hover,.peace-back:focus-visible{transform:translateX(-.22cqw) scale(1.055);filter:brightness(1.05)}
.peace-back:active{transform:translateX(-.08cqw) scale(.985)}

/* Supplied transparent cloud pieces build the clean 22-peace sky without a
   heavyweight baked video/background image. */
.peace-cloudscape{position:absolute;z-index:1;inset:0;pointer-events:none;overflow:hidden}
.peace-cloud{position:absolute;height:auto;object-fit:contain;will-change:transform;filter:drop-shadow(0 .5cqh .6cqw rgba(96,88,147,.035))}
.peace-cloud.pc1{left:-10.5cqw;top:52.5cqh;width:48cqw;opacity:.92;animation:peaceCloudA 24s ease-in-out infinite alternate}
.peace-cloud.pc2{left:17.8cqw;top:53.2cqh;width:44cqw;opacity:.86;animation:peaceCloudB 29s ease-in-out -9s infinite alternate}
.peace-cloud.pc3{right:14.5cqw;top:59.5cqh;width:37cqw;opacity:.88;animation:peaceCloudA 27s ease-in-out -13s infinite alternate}
.peace-cloud.pc4{right:-11.5cqw;top:48.2cqh;width:49cqw;opacity:.96;animation:peaceCloudB 31s ease-in-out -5s infinite alternate}
.peace-cloud.pc5{left:-7cqw;top:72.5cqh;width:45cqw;opacity:.93;animation:peaceCloudB 32s ease-in-out -18s infinite alternate}
.peace-cloud.pc6{right:-16cqw;top:70.4cqh;width:55cqw;opacity:.94;animation:peaceCloudA 34s ease-in-out -11s infinite alternate}
@keyframes peaceCloudA{to{transform:translate3d(1.35cqw,-.32cqh,0) scale(1.012)}}
@keyframes peaceCloudB{to{transform:translate3d(-1.05cqw,.28cqh,0) scale(.994)}}

/* 22-peace-05-loading */
.peace-loading-bubble{
  position:absolute;z-index:8;left:50%;top:48.5%;width:18.1cqw;height:auto;translate:-50% -50%;
  animation:peaceLoaderFloat 3.8s ease-in-out infinite alternate;filter:drop-shadow(0 .5cqh .5cqw rgba(111,88,132,.06));
}
@keyframes peaceLoaderFloat{from{transform:translate3d(-.18cqw,-.75cqh,0) rotate(-1.2deg)}to{transform:translate3d(.18cqw,.85cqh,0) rotate(1.2deg)}}

/* 22-peace-01 / 02 / 03 */
.peace-hero{position:absolute;z-index:12;inset:0;pointer-events:none}
.peace-cat{
  position:absolute;left:50%;top:13.1cqh;width:34.4cqw;height:auto;translate:-50% 0;
  object-fit:contain;animation:peaceCatFloat 5.8s ease-in-out infinite alternate;filter:drop-shadow(0 .85cqh .55cqw rgba(83,72,105,.10));
}
.peace-lotus{
  position:absolute;left:50%;top:60.4cqh;width:17.0cqw;height:auto;translate:-50% 0;object-fit:contain;
  animation:peaceLotusFloat 5.0s ease-in-out -.9s infinite alternate;filter:drop-shadow(0 .8cqh .52cqw rgba(94,76,104,.11));
}
@keyframes peaceCatFloat{to{transform:translate3d(0,-.52cqh,0)}}
@keyframes peaceLotusFloat{to{transform:translate3d(0,-.36cqh,0) scale(1.008)}}
.peace-bubbles{position:absolute;z-index:8;inset:0;pointer-events:none}
.peace-float-bubble{position:absolute;height:auto;will-change:transform;filter:drop-shadow(0 .35cqh .28cqw rgba(92,90,139,.06))}
.peace-float-bubble.pb1{left:16.4cqw;top:31.0cqh;width:13.4cqw;animation:peaceBubbleFloat 7.4s ease-in-out -1.8s infinite alternate}
.peace-float-bubble.pb2{left:29.0cqw;top:6.3cqh;width:4.9cqw;animation:peaceBubbleFloat 5.9s ease-in-out -3.1s infinite alternate}
.peace-float-bubble.pb3{right:17.7cqw;top:21.6cqh;width:14.9cqw;animation:peaceBubbleFloat 8.1s ease-in-out -2.4s infinite alternate}
.peace-float-bubble.pb4{right:28.7cqw;top:46.2cqh;width:7.2cqw;animation:peaceBubbleFloat 6.6s ease-in-out -4s infinite alternate}
@keyframes peaceBubbleFloat{from{transform:translate3d(-.3cqw,.4cqh,0) rotate(-.6deg)}to{transform:translate3d(.35cqw,-1.0cqh,0) rotate(.8deg)}}

/* 22-peace-03 action map. All buttons remain visually minimal; the supplied
   breathe halo is the only chrome. */
.peace-action-map{position:absolute;z-index:30;inset:0;pointer-events:none}
.peace-action{position:absolute;pointer-events:auto;overflow:visible;outline:none;transition:transform .24s cubic-bezier(.2,.9,.25,1),filter .24s ease}
.peace-action img{position:absolute;width:7.45cqw;height:13.25cqh;object-fit:contain;left:0;top:0;opacity:.82;animation:peaceActionPulse 3.5s ease-in-out infinite alternate;pointer-events:none}
.peace-action span{position:absolute;color:#fff;font-size:2.65cqh;line-height:.96;text-align:center;white-space:nowrap;text-transform:uppercase;text-shadow:0 .16cqh .16cqw rgba(76,66,93,.32);pointer-events:none}
.peace-action:hover,.peace-action:focus-visible{transform:scale(1.055);filter:brightness(1.08)}
.peace-action:hover img,.peace-action:focus-visible img{opacity:1}
@keyframes peaceActionPulse{to{transform:scale(1.06);opacity:1}}
.pam-breathe{left:18.15cqw;top:17.7cqh;width:9cqw;height:18cqh}.pam-breathe span{left:-.4cqw;top:13.8cqh;width:8.3cqw}
.pam-purr{left:35.2cqw;top:47.7cqh;width:8.5cqw;height:16cqh}.pam-purr img{width:6.5cqw;height:11.6cqh}.pam-purr span{right:7.3cqw;top:4.7cqh;width:13.0cqw;text-align:right}
.pam-stay{left:56.8cqw;top:9.8cqh;width:17.5cqw;height:17cqh}.pam-stay img{width:7.0cqw;height:12.4cqh}.pam-stay span{left:6.5cqw;top:3.9cqh;width:10.5cqw;text-align:left}
.pam-bubble{right:17.4cqw;top:40.4cqh;width:12.2cqw;height:22cqh}.pam-bubble img{left:1.6cqw;top:0;width:8.0cqw;height:14.2cqh}.pam-bubble span{left:-.8cqw;top:14.0cqh;width:13.8cqw;white-space:normal}
.pam-lotus{left:47.8cqw;top:73.9cqh;width:12.0cqw;height:21cqh}.pam-lotus img{left:1.9cqw;top:0;width:8.0cqw;height:14.2cqh}.pam-lotus span{left:-1cqw;top:14.5cqh;width:14cqw}
html[lang="tr"] .peace-action span,html[lang="es"] .peace-action span,html[lang="fr"] .peace-action span,html[lang="it"] .peace-action span{font-size:2.3cqh}
html[lang="ja"] .peace-action span{font-size:2.35cqh;line-height:1.02}

/* 22-peace-06 — hold-to-breathe. */
.peace-breathe-hold{position:absolute;z-index:24;left:50%;top:49%;width:31cqw;height:55cqh;translate:-50% -50%;outline:none}
.peace-breathe-hold img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:.90;transition:transform 4.1s cubic-bezier(.36,.02,.24,1),filter .5s ease;animation:peaceBreathIdle 4.3s ease-in-out infinite alternate}
.peace-breathe-hold b{position:absolute;left:0;top:47.5%;width:100%;translate:0 -50%;font-size:4.55cqh;color:#fff;line-height:.95;text-align:center;text-transform:uppercase;text-shadow:0 .18cqh .18cqw rgba(77,67,93,.28)}
.peace-breathe-hold.is-holding img{animation:none;transform:scale(1.28);filter:brightness(1.18) drop-shadow(0 0 1.3cqw rgba(255,255,255,.35))}
@keyframes peaceBreathIdle{to{transform:scale(1.055);filter:brightness(1.06)}}

/* 22-peace-07 — purr touch keeps the world intentionally empty. */
.peace-purr-cat{position:absolute;z-index:18;left:50%;top:14.4cqh;width:34.5cqw;height:64cqh;translate:-50% 0;outline:none}
.peace-purr-cat img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 .8cqh .55cqw rgba(83,72,105,.10));animation:peaceCatFloat 5.8s ease-in-out infinite alternate}
.peace-purr-cat.is-purring img{animation:peacePurrResponse 1.45s ease-in-out both}
@keyframes peacePurrResponse{0%{transform:scale(1)}35%{transform:scale(1.022) translateY(-.45cqh)}70%{transform:scale(.997) translateY(.08cqh)}100%{transform:scale(1)}}

/* 22-peace-08 / 11 / 12 — JUST STAY AND LISTEN nature variants. */
.peace-listen-copy{position:absolute;z-index:28;left:32cqw;top:46.8cqh;width:36cqw;text-align:center;color:#fff;font-size:4.55cqh;line-height:1.14;text-transform:uppercase;text-shadow:0 .18cqh .18cqw rgba(73,65,92,.26)}
.peace-leaf-field,.peace-rain-field,.peace-snow-field{position:absolute;z-index:22;inset:0;overflow:hidden;pointer-events:none}
.peace-leaf-field img{position:absolute;left:calc(var(--x)*1%);top:-18cqh;width:calc(2.1cqw + (var(--i) * .018cqw));max-width:5.3cqw;height:auto;animation:peaceLeafFall calc(7.5s + (var(--i)*.16s)) linear var(--delay) infinite;will-change:transform}
@keyframes peaceLeafFall{0%{transform:translate3d(-12cqw,-10cqh,0) rotate(-18deg);opacity:0}8%{opacity:1}55%{transform:translate3d(5cqw,55cqh,0) rotate(245deg)}100%{transform:translate3d(-6cqw,126cqh,0) rotate(520deg);opacity:.9}}
.peace-rain-field i{position:absolute;left:calc(var(--x)*1%);top:-20cqh;width:.10cqw;height:15cqh;border-radius:99px;background:linear-gradient(to bottom,transparent,rgba(255,255,255,.82));transform:rotate(9deg);animation:peaceRain 1.05s linear var(--delay) infinite;opacity:.62;will-change:transform}
.peace-rain-field i:nth-child(3n){height:9cqh;opacity:.35;animation-duration:.82s}.peace-rain-field i:nth-child(4n){height:19cqh;opacity:.48;animation-duration:1.22s}
@keyframes peaceRain{to{transform:translate3d(10cqw,135cqh,0) rotate(9deg)}}
.peace-snow-field i{position:absolute;left:calc(var(--x)*1%);top:-10cqh;color:rgba(255,255,255,.84);font:900 2.1cqh/1 sans-serif;text-shadow:0 0 .45cqw rgba(255,255,255,.58);animation:peaceSnow calc(7.2s + (var(--i)*.07s)) linear var(--delay) infinite;will-change:transform;opacity:.72}
.peace-snow-field i:nth-child(3n){font-size:3.1cqh;opacity:.48}.peace-snow-field i:nth-child(5n){font-size:1.25cqh;opacity:.88}.peace-snow-field i:nth-child(7n){font-size:4.0cqh;opacity:.32}
@keyframes peaceSnow{0%{transform:translate3d(-3cqw,-8cqh,0) rotate(0);opacity:0}8%{opacity:.8}55%{transform:translate3d(4cqw,56cqh,0) rotate(115deg)}100%{transform:translate3d(-2cqw,122cqh,0) rotate(240deg);opacity:.5}}

/* 22-peace-09 — ephemeral thought bubble. Nothing is persisted. */
.peace-thought-form{position:absolute;z-index:28;left:50%;top:49%;width:42cqw;height:54cqh;translate:-50% -50%;transition:transform 1.4s cubic-bezier(.2,.75,.18,1),opacity 1.1s ease,filter 1.1s ease}
.peace-thought-bubble{position:absolute;left:1cqw;top:1cqh;width:29cqw;height:51.6cqh}
.peace-thought-bubble>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 .5cqh .45cqw rgba(99,84,121,.07))}
.peace-thought-bubble input{position:absolute;z-index:3;left:6.2cqw;top:21.7cqh;width:17.2cqw;height:7.2cqh;padding:.2cqh .4cqw .65cqh;border:0;border-bottom:.18cqh solid #333;background:transparent;outline:none;text-align:center;font:900 5.55cqh/1 Catpuf,sans-serif;text-transform:uppercase;color:#292929}
.peace-thought-bubble input::placeholder{color:#292929;opacity:.96}
.peace-thought-enter{position:absolute;left:31.2cqw;top:20.2cqh;width:6.4cqw;height:12cqh;transition:transform .2s ease,filter .2s ease}
.peace-thought-enter img{width:100%;height:100%;object-fit:contain}
.peace-thought-enter:hover,.peace-thought-enter:focus-visible{transform:translateX(.35cqw) scale(1.05);filter:brightness(1.08)}
.peace-thought-form.is-releasing{transform:translate3d(0,-34cqh,0) scale(.55);opacity:0;filter:blur(3px)}
html[lang="tr"] .peace-thought-bubble input,html[lang="es"] .peace-thought-bubble input,html[lang="fr"] .peace-thought-bubble input,html[lang="it"] .peace-thought-bubble input{font-size:4.8cqh}
html[lang="ja"] .peace-thought-bubble input{font-size:4.6cqh}

/* 22-peace-10 — lotus breathing close-up. */
.peace-lotus-focus{position:absolute;z-index:20;left:50%;top:24.2cqh;width:39cqw;height:61cqh;translate:-50% 0;outline:none}
.peace-lotus-focus img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 .9cqh .65cqw rgba(90,72,105,.11));animation:peaceLotusFocusFloat 5.8s ease-in-out infinite alternate}
@keyframes peaceLotusFocusFloat{to{transform:translateY(-.5cqh) scale(1.006)}}

/* 22-peace-04 — quiet visitors, never framed as a reward. */
.peace-hero-visitors .peace-lotus{width:19.7cqw;top:59.0cqh}
.peace-visitors{position:absolute;z-index:18;inset:0;pointer-events:none}
.peace-visitor{position:absolute;width:9.6cqw;height:auto;object-fit:contain;filter:drop-shadow(0 .45cqh .35cqw rgba(82,70,94,.09));animation:peaceVisitorFloat 3.8s ease-in-out infinite alternate}
.peace-visitor.pv1{left:3.7cqw;top:48.0cqh;animation-delay:-.4s}.peace-visitor.pv2{left:25.2cqw;top:58.8cqh;animation-delay:-1.3s}.peace-visitor.pv3{left:60.4cqw;top:68.0cqh;animation-delay:-2.2s}.peace-visitor.pv4{left:77.1cqw;top:60.0cqh;animation-delay:-.9s}.peace-visitor.pv5{left:87.3cqw;top:42.6cqh;animation-delay:-1.8s}
@keyframes peaceVisitorFloat{to{transform:translateY(-.75cqh) rotate(.5deg)}}

/* Mobile/phone safety: CATPUF is landscape-first, but this keeps PEACE controls
   inside display cutouts and reduces decorative particle load on short screens. */
@media(max-width:1000px) and (orientation:landscape){
  .peace-back{left:calc(3.65cqw + env(safe-area-inset-left)*.24);top:5.6cqh}
  .peace-action span{font-size:2.35cqh}.peace-listen-copy{font-size:4.15cqh}
  .peace-leaf-field img:nth-child(2n),.peace-rain-field i:nth-child(2n),.peace-snow-field i:nth-child(2n){display:none}
}
html.mobile-perf .peace-cloud.pc2,html.mobile-perf .peace-cloud.pc5{display:none}
html.mobile-perf .peace-float-bubble.pb2{display:none}
html.mobile-perf .peace-leaf-field img:nth-child(3n),html.mobile-perf .peace-rain-field i:nth-child(3n),html.mobile-perf .peace-snow-field i:nth-child(3n){display:none}

@media(prefers-reduced-motion:reduce){
  .peace-cloud,.peace-float-bubble,.peace-cat,.peace-lotus,.peace-action img,.peace-loading-bubble,.peace-purr-cat img,.peace-lotus-focus img,.peace-visitor{animation:none!important}
  .peace-leaf-field img,.peace-rain-field i,.peace-snow-field i{animation-duration:14s!important}
  .peace-breathe-hold img{animation:none!important;transition-duration:1.4s!important}
}

/* ========================================================================== 
   V26 — PURRS ON PEACE / PERSISTENT WORLD + CINEMATIC SCENES / 2026-08-20
   The PEACE sky/ground/cloud field never remounts. Only the foreground scene
   crossfades, so CATPUF stays on the exact authored axis with zero route slide.
   ========================================================================== */

/* HOME: create real vertical clearance below the meditation portal. */
@media (orientation:landscape){
  .bubble-home-screen .home-bubble-card.home-bubble-cats{top:28.4cqh!important}
  .bubble-home-screen .home-bubble-card.home-bubble-book{top:57.9cqh!important}
}

/* Fixed 1920x1080 PEACE ground. */
.peace-screen{background:#7fa4e8!important}
.peace-canvas{overflow:hidden!important;background:none!important}
.peace-canvas::before{display:none!important}
.peace-fixed-world{position:absolute;z-index:0;inset:0;overflow:hidden;pointer-events:none;contain:layout paint}
.peace-ground{
  position:absolute;inset:0;z-index:0;
  background:url('../assets/peace/zemin.jpg') center center/100% 100% no-repeat!important;
}
.peace-ground::before,.peace-ground::after{display:none!important}
.peace-sky-glow{display:none!important}

/* Persistent, randomized cloud parade: every cloud always travels left -> right. */
.peace-cloudscape{position:absolute!important;z-index:2!important;inset:0!important;overflow:hidden!important;pointer-events:none!important}
.peace-cloud-drift{
  position:absolute;left:var(--cloud-start);top:var(--cloud-y);width:var(--cloud-w);height:auto;opacity:var(--cloud-opacity);
  object-fit:contain;will-change:transform;filter:drop-shadow(0 .45cqh .55cqw rgba(94,84,135,.025));
  animation:peaceCloudTravel var(--cloud-dur) linear var(--cloud-delay) infinite;
}
@keyframes peaceCloudTravel{from{transform:translate3d(0,0,0)}to{transform:translate3d(var(--cloud-travel),0,0)}}

/* Only foreground content changes. No x/y route motion. */
.peace-stage{position:absolute!important;z-index:12!important;inset:0!important;opacity:1!important;filter:none!important;transition:none!important;pointer-events:none!important;overflow:hidden!important}
.peace-scene{
  position:absolute;inset:0;opacity:0;filter:blur(.48cqw);transform:scale(.992);transform-origin:50% 50%;pointer-events:none;
  transition:opacity .62s cubic-bezier(.22,.72,.22,1),filter .74s ease,transform .82s cubic-bezier(.2,.72,.2,1);
}
.peace-scene.is-visible{opacity:1;filter:none;transform:scale(1)}
.peace-scene.is-leaving{opacity:0!important;filter:blur(.5cqw)!important;transform:scale(1.008)!important;pointer-events:none!important}
.peace-back{z-index:96!important}

/* Loading remains pure and centered over the persistent sky. */
.peace-loading-bubble{z-index:20!important;left:50%!important;top:48.5%!important;width:18.1cqw!important;translate:-50% -50%!important}

/* CATPUF / lotus never change authored coordinates. Breathing is scale-only. */
.peace-hero{position:absolute!important;z-index:18!important;inset:0!important;pointer-events:none!important}
.peace-cat{
  position:absolute!important;left:50%!important;top:13.1cqh!important;width:34.4cqw!important;height:auto!important;translate:-50% 0!important;
  object-fit:contain!important;transform-origin:50% 82%!important;animation:peaceCatBreathing 4.8s ease-in-out infinite!important;
  transition:opacity .2s ease,filter .22s ease!important;filter:drop-shadow(0 .82cqh .52cqw rgba(83,72,105,.09));
}
.peace-cat.is-morphing{opacity:.28!important;filter:blur(.32cqw) drop-shadow(0 .82cqh .52cqw rgba(83,72,105,.07))!important}
@keyframes peaceCatBreathing{0%,100%{transform:scale(1)}50%{transform:scale(1.008,1.014)}}
.peace-hero .peace-cat,.peace-purr-cat-zone .peace-cat{animation:peaceCatBreathing 4.8s ease-in-out infinite!important;transform-origin:50% 82%!important;will-change:transform}
.peace-lotus{
  position:absolute!important;left:50%!important;top:60.4cqh!important;width:17cqw!important;height:auto!important;translate:-50% 0!important;
  object-fit:contain!important;transform-origin:50% 76%!important;animation:peaceLotusRest 5.2s ease-in-out infinite!important;
  filter:drop-shadow(0 .78cqh .5cqw rgba(94,76,104,.10));
}
@keyframes peaceLotusRest{0%,100%{transform:scale(1)}50%{transform:scale(1.006)}}

/* The five authored hotspots use different rings/core treatments instead of one
   repeated image. Geometry follows 22-peace-03. */
.peace-action-map{position:absolute!important;z-index:34!important;inset:0!important;opacity:0;transition:opacity .65s ease .06s;pointer-events:none!important}
.peace-action-map.is-visible{opacity:1}
.peace-action-map:not(.is-visible) .peace-action{pointer-events:none!important}
.peace-action{position:absolute!important;pointer-events:auto!important;outline:none!important;overflow:visible!important;transition:transform .25s cubic-bezier(.2,.85,.2,1),filter .25s ease!important}
.peace-action:hover,.peace-action:focus-visible{transform:scale(1.045)!important;filter:brightness(1.08)!important}
.peace-action>.peace-hotspot-ring{
  position:absolute!important;display:block!important;width:7.1cqw!important;height:7.1cqw!important;border-radius:50%!important;
  font-size:0!important;line-height:0!important;text-shadow:none!important;white-space:normal!important;pointer-events:none!important;opacity:.95!important;
  background:repeating-radial-gradient(circle at center,transparent 0 8%,rgba(255,246,153,.96) 9% 10.2%,transparent 11.2% 18%,rgba(255,246,153,.88) 19% 20.2%,transparent 21.2% 28%);
  filter:drop-shadow(0 0 .22cqw rgba(255,245,145,.18));animation:peaceRingBreath 3.7s ease-in-out infinite!important;
}
.peace-action>.peace-hotspot-ring>i{position:absolute!important;left:50%!important;top:50%!important;width:1.75cqw!important;height:1.75cqw!important;translate:-50% -50%!important;border-radius:50%!important;background:var(--peace-core,#fff897)!important;box-shadow:0 0 .55cqw rgba(255,248,145,.42)!important}
.peace-action>.peace-action-label{
  position:absolute!important;color:#fff!important;font-size:2.65cqh!important;line-height:.96!important;text-align:center!important;white-space:nowrap!important;text-transform:uppercase!important;
  text-shadow:0 .16cqh .16cqw rgba(76,66,93,.30)!important;pointer-events:none!important;font-weight:900!important;
}
@keyframes peaceRingBreath{0%,100%{transform:scale(.985);opacity:.82}50%{transform:scale(1.035);opacity:1}}
.pam-breathe{left:18.15cqw!important;top:17.7cqh!important;width:9cqw!important;height:18cqh!important;--peace-core:#f6ff83}.pam-breathe .peace-hotspot-ring{left:0!important;top:0!important}.pam-breathe .peace-action-label{left:-.4cqw!important;top:13.8cqh!important;width:8.3cqw!important}
.pam-purr{left:35.2cqw!important;top:47.7cqh!important;width:8.5cqw!important;height:16cqh!important;--peace-core:#ffb13d}.pam-purr .peace-hotspot-ring{left:.2cqw!important;top:-.3cqh!important;width:5.95cqw!important;height:5.95cqw!important;background:repeating-radial-gradient(circle,transparent 0 8%,rgba(255,255,255,.92) 9% 10.2%,transparent 11.2% 18%,rgba(255,242,132,.90) 19% 20.2%,transparent 21.2% 28%)!important}.pam-purr .peace-action-label{right:7.3cqw!important;top:4.7cqh!important;width:13cqw!important;text-align:right!important}
.pam-stay{left:56.8cqw!important;top:9.8cqh!important;width:17.5cqw!important;height:17cqh!important;--peace-core:#ffa83a}.pam-stay .peace-hotspot-ring{left:0!important;top:0!important;width:6.35cqw!important;height:6.35cqw!important;background:repeating-radial-gradient(circle,transparent 0 8%,rgba(255,255,255,.92) 9% 10.2%,transparent 11.2% 18%,rgba(255,241,128,.90) 19% 20.2%,transparent 21.2% 28%)!important}.pam-stay .peace-action-label{left:6.5cqw!important;top:3.9cqh!important;width:10.5cqw!important;text-align:left!important}
.pam-bubble{right:17.4cqw!important;top:40.4cqh!important;width:12.2cqw!important;height:22cqh!important;--peace-core:#fbffad}.pam-bubble .peace-hotspot-ring{left:1.6cqw!important;top:0!important;width:7.25cqw!important;height:7.25cqw!important}.pam-bubble .peace-action-label{left:-.8cqw!important;top:14cqh!important;width:13.8cqw!important;white-space:normal!important}
.pam-lotus{left:47.8cqw!important;top:73.9cqh!important;width:12cqw!important;height:21cqh!important;--peace-core:rgba(255,229,129,.42)}.pam-lotus .peace-hotspot-ring{left:1.8cqw!important;top:-.15cqh!important;width:7.65cqw!important;height:7.65cqw!important;background:repeating-radial-gradient(circle,transparent 0 9%,rgba(255,247,147,.88) 10% 11.2%,transparent 12.2% 20%,rgba(255,247,147,.76) 21% 22.2%,transparent 23.2% 31%)!important}.pam-lotus .peace-action-label{left:-1cqw!important;top:14.5cqh!important;width:14cqw!important}
html[lang="tr"] .peace-action>.peace-action-label,html[lang="es"] .peace-action>.peace-action-label,html[lang="fr"] .peace-action>.peace-action-label,html[lang="it"] .peace-action>.peace-action-label{font-size:2.3cqh!important}
html[lang="ja"] .peace-action>.peace-action-label{font-size:2.35cqh!important;line-height:1.02!important}

/* Ambient bubbles are real interactive particles: randomized size/x/duration,
   bottom -> top, with no fixed decorative anchors. */
.peace-global-bubbles{position:absolute;z-index:8;inset:0;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .5s ease}
.peace-global-bubbles.is-active{opacity:1}
.peace-drift-bubble{
  position:absolute;left:var(--bubble-x);bottom:-23cqh;width:var(--bubble-size);aspect-ratio:1;border:0;background:none;padding:0;pointer-events:auto;cursor:pointer;
  animation:peaceBubbleRise var(--bubble-dur) linear var(--bubble-delay) forwards;will-change:transform,opacity;filter:drop-shadow(0 .3cqh .25cqw rgba(83,88,139,.05));
}
.peace-drift-bubble img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.peace-drift-bubble.is-clearing{opacity:0!important;transition:opacity .48s ease!important}
.peace-drift-bubble.is-popping{animation-play-state:paused!important;pointer-events:none!important}
.peace-drift-bubble.is-popping img{animation:peaceBubbleBurst .38s cubic-bezier(.15,.72,.2,1) forwards!important}
@keyframes peaceBubbleRise{0%{transform:translate3d(0,0,0) scale(.96);opacity:0}7%{opacity:.92}85%{opacity:.92}100%{transform:translate3d(var(--bubble-drift),-132cqh,0) scale(1.035);opacity:0}}
@keyframes peaceBubbleBurst{0%{transform:scale(1);opacity:1;filter:brightness(1)}48%{transform:scale(1.16);opacity:.95;filter:brightness(1.35)}100%{transform:scale(1.34);opacity:0;filter:brightness(1.7)}}

/* 4-4-2 breathing: automatic phases, ambient music never stops. */
.peace-breathe-cycle{position:absolute;z-index:28;left:50%;top:49%;width:31cqw;height:55cqh;translate:-50% -50%;pointer-events:none}
.peace-breathe-visual{position:absolute;inset:0;display:block;transform:scale(.86);transform-origin:50% 50%;will-change:transform}
.peace-breathe-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:.94;transform:rotate(0deg);transform-origin:50% 50%;filter:drop-shadow(0 0 .9cqw rgba(255,255,255,.13));will-change:transform,filter;transition:filter .7s ease!important}
.peace-breathe-cycle b{position:absolute;left:0;top:47.5%;width:100%;translate:0 -50%;font-size:4.55cqh;color:#fff;line-height:.95;text-align:center;text-transform:uppercase;text-shadow:0 .18cqh .18cqw rgba(77,67,93,.26)}
.peace-breathe-cycle.phase-inhale .peace-breathe-visual img{filter:brightness(1.14) drop-shadow(0 0 1.25cqw rgba(255,255,255,.32))}
.peace-breathe-cycle.phase-hold .peace-breathe-visual img{filter:brightness(1.17) drop-shadow(0 0 1.35cqw rgba(255,255,255,.35))}
.peace-breathe-cycle.phase-exhale .peace-breathe-visual img{filter:brightness(1.03) drop-shadow(0 0 .9cqw rgba(255,255,255,.16))}

/* Purr touch: same CATPUF coordinate as the main scene; no route jump. */
.peace-purr-cat-zone{position:absolute!important;z-index:28!important;left:50%!important;top:13.1cqh!important;width:34.4cqw!important;height:64cqh!important;translate:-50% 0!important;padding:0!important;border:0!important;background:none!important;pointer-events:auto!important;touch-action:none!important;outline:none!important}
.peace-purr-cat-zone .peace-cat{position:static!important;left:auto!important;top:auto!important;width:100%!important;height:100%!important;translate:none!important;object-fit:contain!important}
.peace-purr-cat-zone.is-purring .peace-cat{filter:brightness(1.035) drop-shadow(0 0 1.05cqw rgba(255,218,170,.23))!important}

/* Thought form never leaves. Every submission launches an independent bubble. */
.peace-thought-form{position:absolute!important;z-index:34!important;left:50%!important;top:49%!important;width:42cqw!important;height:54cqh!important;translate:-50% -50%!important;transform:none!important;opacity:1!important;filter:none!important;pointer-events:auto!important}
.peace-thought-form.is-releasing{transform:none!important;opacity:1!important;filter:none!important}
.peace-thought-enter{pointer-events:auto!important}
.peace-released-thoughts{position:absolute;z-index:24;inset:0;overflow:hidden;pointer-events:none}
.peace-released-thought{
  position:absolute;left:var(--thought-x);bottom:-25cqh;width:var(--thought-size);aspect-ratio:1;border:0;background:none;padding:0;pointer-events:auto;cursor:pointer;
  animation:peaceThoughtRise var(--thought-dur) linear forwards;will-change:transform,opacity;
}
.peace-released-thought img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 .36cqh .28cqw rgba(82,80,133,.07));pointer-events:none}
.peace-released-thought span{position:absolute;left:15%;top:43%;width:70%;translate:0 -50%;font:900 clamp(14px,2.7cqh,34px)/1 Catpuf,sans-serif;color:#292929;text-align:center;text-transform:uppercase;overflow-wrap:anywhere;pointer-events:none;text-shadow:0 .08cqh rgba(255,255,255,.35)}
.peace-released-thought.is-popping{animation-play-state:paused!important;pointer-events:none!important}
.peace-released-thought.is-popping img{animation:peaceBubbleBurst .38s cubic-bezier(.15,.72,.2,1) forwards!important}
.peace-released-thought.is-popping span{animation:peaceThoughtFall 1s cubic-bezier(.3,.1,.75,.94) forwards!important}
@keyframes peaceThoughtRise{0%{transform:translate3d(0,0,0) scale(.92);opacity:0}7%{opacity:1}88%{opacity:1}100%{transform:translate3d(var(--thought-drift),-132cqh,0) scale(1.025);opacity:0}}
@keyframes peaceThoughtFall{0%{transform:translate3d(0,0,0) rotate(0);opacity:1}35%{opacity:1}100%{transform:translate3d(1.4cqw,20cqh,0) rotate(5deg);opacity:0;filter:blur(2px)}}

/* Nature: rain keeps one exact diagonal vector; no sideways wobble/sliding. */
.peace-leaf-field,.peace-rain-field,.peace-snow-field{pointer-events:none!important}
.peace-rain-field i{
  position:absolute!important;left:var(--rain-x)!important;top:var(--rain-y)!important;width:.09cqw!important;height:var(--rain-len)!important;border-radius:99px!important;
  background:linear-gradient(to bottom,transparent 0%,rgba(255,255,255,.30) 28%,rgba(255,255,255,.88) 100%)!important;opacity:var(--rain-opacity)!important;transform:translate3d(0,0,0) rotate(-11deg);transform-origin:50% 50%;
  animation:peaceRainDiagonal var(--rain-dur) linear var(--rain-delay) infinite!important;will-change:transform!important;display:block!important;
}
.peace-rain-field i:nth-child(3n),.peace-rain-field i:nth-child(4n){height:var(--rain-len)!important;opacity:var(--rain-opacity)!important;animation-duration:var(--rain-dur)!important}
@keyframes peaceRainDiagonal{from{transform:translate3d(0,0,0) rotate(-11deg)}to{transform:translate3d(var(--rain-travel),142cqh,0) rotate(-11deg)}}

/* Lotus remains the v25 breathing motion, only foreground transition is new. */
.peace-lotus-focus{pointer-events:auto!important}

/* Visitors arrive one by one through blur/scale, then breathe in place. */
.peace-visitors{position:absolute!important;z-index:26!important;inset:0!important;pointer-events:none!important}
.peace-visitor-shell{position:absolute;display:block;width:9.6cqw;height:auto;opacity:0;filter:blur(.55cqw);transform:translate3d(var(--visitor-from-x),var(--visitor-from-y),0) scale(.78);animation:peaceVisitorArrive 1.65s cubic-bezier(.18,.78,.18,1) var(--visitor-delay) forwards}
.peace-visitor-shell .peace-visitor{position:static!important;display:block!important;width:100%!important;height:auto!important;object-fit:contain!important;filter:drop-shadow(0 .45cqh .35cqw rgba(82,70,94,.08))!important;transform-origin:50% 80%!important;animation:peaceVisitorBreathing 4.4s ease-in-out calc(var(--visitor-delay) + 1.5s) infinite!important}
.peace-visitor-shell.pv1{left:3.7cqw;top:48cqh;--visitor-from-x:-12cqw;--visitor-from-y:5cqh}.peace-visitor-shell.pv2{left:25.2cqw;top:58.8cqh;--visitor-from-x:-7cqw;--visitor-from-y:8cqh}.peace-visitor-shell.pv3{left:60.4cqw;top:68cqh;--visitor-from-x:2cqw;--visitor-from-y:10cqh}.peace-visitor-shell.pv4{left:77.1cqw;top:60cqh;--visitor-from-x:8cqw;--visitor-from-y:7cqh}.peace-visitor-shell.pv5{left:87.3cqw;top:42.6cqh;--visitor-from-x:12cqw;--visitor-from-y:5cqh}
@keyframes peaceVisitorArrive{0%{opacity:0;filter:blur(.55cqw);transform:translate3d(var(--visitor-from-x),var(--visitor-from-y),0) scale(.78)}68%{opacity:1;filter:blur(.08cqw)}100%{opacity:1;filter:none;transform:translate3d(0,0,0) scale(1)}}
@keyframes peaceVisitorBreathing{0%,100%{transform:scale(1)}50%{transform:scale(1.012,1.022)}}

/* All scene controls explicitly opt back into pointer events. */
.peace-action,.peace-thought-form,.peace-thought-enter,.peace-released-thought,.peace-lotus-focus,.peace-purr-cat-zone{pointer-events:auto!important}

@media(max-width:1000px) and (orientation:landscape){
  .peace-cloud-drift:nth-child(n+7){display:none}
  .peace-drift-bubble{max-width:13cqw}
  .peace-released-thought span{font-size:2.25cqh}
  .peace-breathe-cycle b{font-size:4.1cqh}
  .peace-rain-field i{display:block!important}
}
html.mobile-perf .peace-cloud-drift:nth-child(even){opacity:1!important}

@media(prefers-reduced-motion:reduce){
  .peace-cloud-drift{animation-duration:70s!important}
  .peace-cat,.peace-lotus,.peace-visitor-shell .peace-visitor,.peace-hotspot-ring{animation:none!important}
  .peace-scene{transition-duration:.22s!important;filter:none!important;transform:none!important}
  .peace-drift-bubble,.peace-released-thought{animation-duration:25s!important}
}

/* ========================================================================== 
   V28 — PEACE FULL-FRAME / TRUE CROSSFADE / RECURRING THOUGHTS / 2026-08-20
   ========================================================================== */

/* The supplied 1920x1080 ground is the physical-screen backdrop, not merely
   the centered 16:9 design canvas. Stretching is intentional: the whole art is
   always visible, so wide/tall browser chrome can never crop its left/right. */
.peace-screen{
  background:#8fa9e8 url('../assets/peace/zemin.jpg') 50% 50%/100% 100% no-repeat!important;
}
.peace-screen::before{display:none!important}
.peace-canvas{background:transparent!important}
.peace-ground{display:none!important;background:none!important}

/* Supplied clouds are shown at their native alpha, never dimmed by UI/perf
   classes. Lane separation is generated in peace.js. */
.peace-cloud-drift{opacity:1!important;filter:drop-shadow(0 .45cqh .55cqw rgba(94,84,135,.035))!important}
html.mobile-perf .peace-cloud-drift:nth-child(even){opacity:1!important}

/* Main CATPUF + lotus use persistent wrappers. The wrapper breathes; frames
   only crossfade. This means state changes can never expose/reset the sky. */
.peace-cat-stack{
  position:absolute;left:50%;top:13.1cqh;width:34.4cqw;aspect-ratio:1;translate:-50% 0;
  transform-origin:50% 82%;animation:peaceCatBreathing 4.8s ease-in-out infinite;will-change:transform;
  filter:drop-shadow(0 .82cqh .52cqw rgba(83,72,105,.09));
}
.peace-lotus-stack{
  position:absolute;left:50%;top:60.4cqh;width:17cqw;aspect-ratio:1;translate:-50% 0;
  transform-origin:50% 76%;animation:peaceLotusRest 5.2s ease-in-out infinite;will-change:transform;
  filter:drop-shadow(0 .78cqh .5cqw rgba(94,76,104,.10));
}
.peace-stack-frame{
  position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;
  transform:scale(.997);filter:blur(.08cqw);transition:opacity .48s cubic-bezier(.2,.72,.2,1),transform .58s cubic-bezier(.2,.72,.2,1),filter .54s ease;
  will-change:opacity,transform,filter;pointer-events:none;
}
.peace-stack-frame.is-active{opacity:1;transform:scale(1);filter:none}
.peace-stack-frame.is-entering{opacity:0;transform:scale(.997);filter:blur(.08cqw)}
.peace-stack-frame.is-leaving{opacity:0;transform:scale(1.003);filter:blur(.06cqw)}

/* PURR TOUCH is now a one-click toggle. The cat keeps its calm breathing in
   either state; the purr response is visual warmth, not a geometry jump. */
.peace-purr-cat-zone{touch-action:manipulation!important;cursor:pointer!important}
.peace-purr-cat-zone.is-purring .peace-cat{
  animation:peaceCatBreathing 4.8s ease-in-out infinite!important;
  filter:brightness(1.045) drop-shadow(0 0 1.05cqw rgba(255,218,170,.28))!important;
}

/* Released thoughts: the word is geometrically centered in its own bubble.
   Bubble width + font are computed per entered text in JS. */
.peace-released-thought span{
  left:10%!important;top:50%!important;width:80%!important;translate:0 -50%!important;
  font-size:var(--thought-font,2.35cqh)!important;line-height:.94!important;
  text-align:center!important;white-space:nowrap!important;overflow:visible!important;overflow-wrap:normal!important;
}
.peace-released-thought{min-width:12.2cqw;max-width:30.5cqw}

/* A slightly softer continuous rise makes recurrent thoughts feel like a
   living stream while the fixed input bubble remains untouched above them. */
@keyframes peaceThoughtRise{
  0%{transform:translate3d(0,0,0) scale(.91);opacity:0}
  7%{opacity:1}
  88%{opacity:1}
  100%{transform:translate3d(var(--thought-drift),-134cqh,0) scale(1.035);opacity:0}
}

@media(max-width:1000px) and (orientation:landscape){
  .peace-released-thought span{font-size:var(--thought-font,2.05cqh)!important}
}

/* ========================================================================== 
   V29 — PEACE TRUE FULL VIEWPORT / AUTHORED POINTS / QUIET THOUGHT LOOPS
   2026-08-20
   ========================================================================== */

/* PEACE is intentionally the only CATPUF route that escapes the generic 16:9
   letterbox. The supplied sky must touch all four physical viewport edges. */
.peace-screen{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;min-height:100vh!important;overflow:hidden!important;background:#8fa9e8 url('../assets/peace/zemin.jpg') 50% 50%/100% 100% no-repeat!important}
.peace-screen>.peace-canvas{
  position:fixed!important;left:0!important;top:0!important;width:100vw!important;height:100dvh!important;min-height:100vh!important;
  max-width:none!important;max-height:none!important;transform:none!important;translate:none!important;overflow:hidden!important;container-type:size!important;background:transparent!important;
}
.peace-fixed-world,.peace-stage,.peace-cloudscape,.peace-global-bubbles,.peace-released-thoughts{inset:0!important;width:100%!important;height:100%!important}
.peace-back{left:max(3.7cqw,env(safe-area-inset-left))!important;top:max(4.1cqh,env(safe-area-inset-top))!important}

/* Native-size cloud paintings. Only one new cloud is injected after the
   previous cloud is already at the opposite edge, so they never pile up. */
.peace-cloudscape{overflow:hidden!important}
.peace-cloud-drift{
  position:absolute!important;left:var(--cloud-start)!important;top:var(--cloud-y)!important;width:var(--cloud-w)!important;height:auto!important;
  opacity:1!important;object-fit:contain!important;filter:none!important;will-change:transform!important;
  animation:peaceCloudTravelV29 var(--cloud-dur) linear forwards!important;
}
@keyframes peaceCloudTravelV29{from{transform:translate3d(0,0,0)}to{transform:translate3d(var(--cloud-travel),0,0)}}
html.mobile-perf .peace-cloud-drift{opacity:1!important}

/* Main CATPUF and lotus are living hover objects, but their wrappers never move
   between states. The old artwork stays underneath during every crossfade. */
.peace-cat-stack,.peace-lotus-stack{pointer-events:auto!important;cursor:pointer!important;outline:none!important}
.peace-cat-stack{z-index:3!important}
.peace-lotus-stack{z-index:4!important}
.peace-stack-frame{transition:opacity .62s cubic-bezier(.2,.78,.2,1),transform .72s cubic-bezier(.2,.78,.2,1),filter .66s ease!important}
.peace-cat-stack:hover .peace-stack-frame.is-active,.peace-lotus-stack:hover .peace-stack-frame.is-active{filter:brightness(1.015)!important}

/* Use the five supplied point PNGs exactly instead of drawing generic radial
   gradients. The ring breathes continuously; its label only appears on intent. */
.peace-action{transform:none!important;filter:none!important}
.peace-action:hover,.peace-action:focus-visible{transform:none!important;filter:none!important}
.peace-action>.peace-hotspot-ring{
  position:absolute!important;display:block!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;filter:none!important;
  opacity:1!important;transform-origin:50% 50%!important;animation:peacePointPulse 3.8s ease-in-out infinite!important;pointer-events:none!important;
}
.peace-action>.peace-hotspot-ring>i{display:none!important}
.peace-action .peace-hotspot-art{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:contain!important;opacity:1!important;filter:none!important;
  transform:none!important;animation:none!important;pointer-events:none!important;
}
.peace-action>.peace-action-label{
  opacity:0!important;transform:translateY(.38cqh) scale(.985)!important;filter:blur(.10cqw)!important;
  transition:opacity .42s ease,transform .52s cubic-bezier(.2,.78,.2,1),filter .46s ease!important;
}
.peace-action:hover>.peace-action-label,.peace-action:focus-visible>.peace-action-label{
  opacity:1!important;transform:translateY(0) scale(1)!important;filter:none!important;
}
@keyframes peacePointPulse{0%,100%{transform:scale(.94)}50%{transform:scale(1.055)}}
.pam-breathe .peace-hotspot-ring{left:0!important;top:0!important;width:8.96cqw!important;height:8.96cqw!important;animation-delay:-.2s!important}
.pam-purr .peace-hotspot-ring{left:.15cqw!important;top:-.25cqh!important;width:6.15cqw!important;height:6.15cqw!important;animation-delay:-1.1s!important}
.pam-stay .peace-hotspot-ring{left:0!important;top:0!important;width:8.44cqw!important;height:8.44cqw!important;animation-delay:-2.0s!important}
.pam-bubble .peace-hotspot-ring{left:1.75cqw!important;top:.15cqh!important;width:6.56cqw!important;height:6.56cqw!important;animation-delay:-2.8s!important}
.pam-lotus .peace-hotspot-ring{left:1.75cqw!important;top:0!important;width:7.66cqw!important;height:7.66cqw!important;animation-delay:-1.6s!important}

/* Foreground scenes overlap while changing, so the persistent world never has a
   blank frame and nothing slides horizontally. */
.peace-stage{overflow:hidden!important}
.peace-scene{opacity:0!important;filter:blur(.42cqw)!important;transform:scale(.994)!important;transition:opacity .76s cubic-bezier(.2,.76,.2,1),filter .84s ease,transform .92s cubic-bezier(.2,.76,.2,1)!important}
.peace-scene.is-visible{opacity:1!important;filter:none!important;transform:scale(1)!important}
.peace-scene.is-leaving{opacity:0!important;filter:blur(.38cqw)!important;transform:scale(1.004)!important}

/* General PEACE bubbles stay fully inside the viewport until their final exit. */
.peace-global-bubbles,.peace-released-thoughts{overflow:hidden!important}
.peace-drift-bubble{max-width:none!important}

/* Thought bubbles are intentionally unhurried. A submitted phrase can only have
   one live instance at a time. Short words receive visibly larger typography. */
.peace-released-thought{min-width:13.3cqw!important;max-width:29.2cqw!important;animation-timing-function:linear!important}
.peace-released-thought span{
  left:9%!important;top:50%!important;width:82%!important;translate:0 -50%!important;
  font-size:var(--thought-font,3.2cqh)!important;line-height:.92!important;letter-spacing:-.018em!important;
  text-align:center!important;white-space:nowrap!important;overflow:visible!important;text-wrap:nowrap!important;
}
@keyframes peaceThoughtRise{
  0%{transform:translate3d(0,0,0) scale(.94);opacity:0}
  8%{opacity:1}
  90%{opacity:1}
  100%{transform:translate3d(var(--thought-drift),-133cqh,0) scale(1.025);opacity:0}
}

/* Visitors are now an overlay on the existing main scene. CATPUF and the lotus
   are never rebuilt when the chicks arrive or leave. */
.peace-visitors{transition:opacity .9s ease,filter .9s ease!important;opacity:1!important;filter:none!important}
.peace-visitors.is-leaving{opacity:0!important;filter:blur(.18cqw)!important}

@media(max-width:1000px) and (orientation:landscape){
  .peace-screen>.peace-canvas{width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;left:0!important;top:0!important;transform:none!important}
  .peace-released-thought span{font-size:var(--thought-font,2.8cqh)!important}
}
/* Keep the authored CATPUF/lotus fully inside unusual wide landscape viewports. */
.peace-cat-stack{width:min(34.4cqw,61.2cqh)!important}
.peace-lotus-stack{width:min(17cqw,30.2cqh)!important}


/* ========================================================================== 
   V30 — PEACE CLEAN FRAME MORPHS / LOCKED CAT / LOTUS SHADOW / LABEL ALIGNMENT
   2026-08-20
   ========================================================================== */

/* CATPUF and lotus artwork never crossfade. Only one opaque authored frame is
   present at any moment; a tiny brightness/softness pulse masks the source swap. */
.peace-stack-frame{
  opacity:1!important;transform:none!important;filter:none!important;transition:filter .18s ease!important;
}
.peace-stack-frame.is-entering,.peace-stack-frame.is-leaving,.peace-stack-frame.is-active{
  opacity:1!important;transform:none!important;filter:none!important;
}
.peace-cat-stack.is-frame-changing .peace-stack-frame,.peace-lotus-stack.is-frame-changing .peace-stack-frame{
  filter:brightness(1.018) saturate(.99)!important;
}
.peace-cat-stack,.peace-lotus-stack{overflow:visible!important}

/* The supplied golge.png always lives behind the lotus. If the file has not
   yet been supplied, the image hides cleanly instead of showing a broken icon. */
.peace-lotus-shadow{
  position:absolute!important;z-index:3!important;left:50%!important;top:74.6cqh!important;width:16.2cqw!important;height:auto!important;
  translate:-50% -50%!important;pointer-events:none!important;object-fit:contain!important;
}
.peace-lotus-shadow.is-missing,.peace-lotus-focus-shadow.is-missing{display:none!important}
.peace-lotus-stack{z-index:4!important}
.peace-lotus-focus-wrap{position:absolute!important;z-index:20!important;inset:0!important;pointer-events:none!important}
.peace-lotus-focus-wrap .peace-lotus-focus{pointer-events:auto!important}
.peace-lotus-focus-shadow{
  position:absolute!important;z-index:19!important;left:50%!important;top:75.2cqh!important;width:34cqw!important;height:auto!important;
  translate:-50% -50%!important;pointer-events:none!important;object-fit:contain!important;
}

/* Main menu labels: BREATHE, PUT IT IN A BUBBLE and LOTUS BREATH are centered
   on the actual supplied point image, not on the larger invisible hit box. */
.pam-breathe .peace-action-label{left:-2.52cqw!important;top:10.25cqh!important;width:14cqw!important;text-align:center!important}
.pam-bubble .peace-action-label{left:-1.87cqw!important;top:8.75cqh!important;width:13.8cqw!important;text-align:center!important}
.pam-lotus .peace-action-label{left:-1.42cqw!important;top:9.8cqh!important;width:14cqw!important;text-align:center!important}

/* 4-4-2 copy now sits on the exact optical center of the ring. */
.peace-breathe-cycle b{top:50.2%!important}

/* PURR TOUCH uses the exact same box and anchor as the main CATPUF stack. */
.peace-purr-cat-zone{
  left:50%!important;top:13.1cqh!important;width:min(34.4cqw,61.2cqh)!important;height:auto!important;aspect-ratio:1/1!important;
  translate:-50% 0!important;transform:none!important;animation:peaceCatBreathing 4.8s ease-in-out infinite!important;transform-origin:50% 82%!important;
}
.peace-purr-cat-zone .peace-cat{
  position:absolute!important;inset:0!important;left:0!important;top:0!important;width:100%!important;height:100%!important;
  translate:0 0!important;transform:none;object-fit:contain!important;animation:none!important;
}
.peace-purr-cat-zone.is-purring .peace-cat{transform:none!important}

/* JUST STAY copy is intentionally transient; environment remains. */
.peace-listen-copy{opacity:1;filter:none;transition:opacity 1.25s ease,filter 1.25s ease!important}
.peace-listen-copy.is-hiding{opacity:0!important;filter:blur(.16cqw)!important}

@media(max-width:1000px) and (orientation:landscape){
  .peace-lotus-shadow{width:17.5cqw!important;top:74.8cqh!important}
  .peace-lotus-focus-shadow{width:35.5cqw!important;top:75.5cqh!important}
}


/* V30.1 — scene changes use focus-pull only; no alpha overlap/ghosting. */
.peace-scene{
  opacity:1!important;visibility:visible!important;filter:blur(.34cqw) brightness(1.018)!important;transform:scale(.996)!important;
  transition:filter .46s cubic-bezier(.2,.76,.2,1),transform .52s cubic-bezier(.2,.76,.2,1)!important;
}
.peace-scene.is-preparing{visibility:hidden!important;opacity:1!important}
.peace-scene.is-visible{visibility:visible!important;opacity:1!important;filter:none!important;transform:scale(1)!important}
.peace-scene.is-focus-out{opacity:1!important;filter:blur(.20cqw) brightness(1.012)!important;transform:scale(1.002)!important}
.peace-scene.is-leaving{opacity:1!important;filter:none!important;transform:none!important}

/* ========================================================================== 
   V31 - PEACE WATER / TOP PARTICLES / THOUGHT TYPOGRAPHY / VISITOR DEPTH
   2026-08-20
   ========================================================================== */

/* Every free-floating bubble is a foreground particle. The persistent bubble
   layer is moved out of the fixed-world stacking context by peace.js. */
.peace-global-bubbles{
  z-index:88!important;
  pointer-events:none!important;
  overflow:hidden!important;
}
.peace-global-bubbles .peace-drift-bubble{pointer-events:auto!important}
.peace-released-thoughts{
  z-index:74!important;
  pointer-events:none!important;
  overflow:hidden!important;
}
.peace-released-thought{pointer-events:auto!important}
.peace-thought-form{z-index:34!important}
.peace-back{z-index:96!important}

/* Thought typography uses the per-bubble --thought-font calculated from the
   actual phrase width. Short phrases become intentionally large. */
.peace-released-thought{
  min-width:12.8cqw!important;
  max-width:30.8cqw!important;
  animation-timing-function:linear!important;
}
.peace-released-thought span{
  left:6%!important;
  top:50%!important;
  width:88%!important;
  translate:0 -50%!important;
  font-size:var(--thought-font,4.2cqh)!important;
  line-height:.88!important;
  letter-spacing:-.028em!important;
  white-space:nowrap!important;
  text-align:center!important;
  overflow:visible!important;
}

/* Visitors belong behind the authored cloud layer, while CATPUF/lotus stay in
   the foreground stage. */
.peace-fixed-world>.peace-visitors{
  z-index:1!important;
  pointer-events:none!important;
}
.peace-fixed-world>.peace-cloudscape{z-index:2!important}

/* WATER menu entry follows the supplied 22-peace-03 composition. */
.pam-water{
  left:4.9cqw!important;
  top:76.1cqh!important;
  width:20.5cqw!important;
  height:21.2cqh!important;
}
.pam-water .peace-water-menu-bucket{
  position:absolute!important;
  left:0!important;
  top:0!important;
  width:10.8cqw!important;
  height:auto!important;
  object-fit:contain!important;
  opacity:1!important;
  transform:none!important;
  animation:peaceWaterMenuBreath 4.6s ease-in-out infinite!important;
  transform-origin:50% 78%!important;
  filter:drop-shadow(0 .42cqh .32cqw rgba(85,70,80,.09))!important;
  pointer-events:none!important;
}
.pam-water .peace-hotspot-ring{
  left:9.8cqw!important;
  top:6.15cqh!important;
  width:6.55cqw!important;
  height:6.55cqw!important;
  animation-delay:-2.1s!important;
}
.pam-water .peace-action-label{
  left:16.2cqw!important;
  top:8.0cqh!important;
  width:8.3cqw!important;
  text-align:left!important;
  white-space:nowrap!important;
}
@keyframes peaceWaterMenuBreath{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.012)}
}

/* 22-peace-13 WATER detail. Bucket position is locked. Only the water/ripple
   artwork changes on impact. */
.peace-water-scene{
  position:absolute!important;
  z-index:20!important;
  inset:0!important;
  pointer-events:none!important;
}
.peace-water-bucket{
  position:absolute!important;
  z-index:22!important;
  left:50%!important;
  top:39.2cqh!important;
  width:min(26.2cqw,46.6cqh)!important;
  height:auto!important;
  translate:-50% 0!important;
  object-fit:contain!important;
  pointer-events:none!important;
  filter:drop-shadow(0 1.25cqh .8cqw rgba(88,69,70,.12))!important;
  animation:peaceWaterBucketArrive .82s cubic-bezier(.18,.78,.18,1) both!important;
  transform-origin:50% 66%!important;
}
.peace-water-bucket.is-rippling{
  animation:peaceWaterImpact .34s cubic-bezier(.16,.82,.2,1) both!important;
}
.peace-water-drops{
  position:absolute!important;
  z-index:24!important;
  inset:0!important;
  overflow:hidden!important;
  pointer-events:none!important;
}
.peace-water-drop{
  position:absolute!important;
  width:clamp(38px,3.1cqw,64px)!important;
  height:auto!important;
  object-fit:contain!important;
  filter:drop-shadow(0 .18cqh .16cqw rgba(80,133,190,.10))!important;
  will-change:transform!important;
}
@keyframes peaceWaterBucketArrive{
  0%{opacity:0;transform:translateY(2.2cqh) scale(.965);filter:blur(.22cqw) drop-shadow(0 1.25cqh .8cqw rgba(88,69,70,.06))}
  100%{opacity:1;transform:none;filter:drop-shadow(0 1.25cqh .8cqw rgba(88,69,70,.12))}
}
@keyframes peaceWaterImpact{
  0%{transform:scale(1)}
  38%{transform:scale(1.012,.994)}
  100%{transform:scale(1)}
}

@media(max-width:1000px) and (orientation:landscape){
  .pam-water{left:5.4cqw!important;top:75.7cqh!important}
  .peace-water-bucket{width:min(27.5cqw,48.5cqh)!important;top:38.6cqh!important}
  .peace-water-drop{width:clamp(30px,3.2cqw,54px)!important}
}

/* ========================================================================== 
   V32 - PEACE CINEMATIC PAGE VEIL / WATER POLISH / LOTUS SHADOW
   2026-08-20
   ========================================================================== */

/* Page changes never dissolve authored CATPUF/lotus frames into each other.
   A soft glass orb briefly covers the world, the scene swaps underneath it,
   then the new scene is revealed from the same interaction point. */
.peace-transition-veil{
  position:absolute!important;
  inset:0!important;
  z-index:94!important;
  overflow:hidden!important;
  pointer-events:none!important;
  visibility:hidden!important;
  contain:layout paint!important;
}
.peace-transition-veil.is-active{visibility:visible!important}
.peace-transition-orb{
  position:absolute!important;
  left:50%;top:50%;
  width:240vmax!important;height:240vmax!important;
  border-radius:50%!important;
  transform:translate(-50%,-50%) scale(.018);
  opacity:.06;
  will-change:transform,opacity!important;
  background:
    radial-gradient(circle at 46% 42%,rgba(255,255,255,.995) 0 8%,rgba(255,246,252,.985) 28%,rgba(230,236,255,.975) 57%,rgba(197,215,255,.965) 100%)!important;
  box-shadow:0 0 10vmax rgba(255,240,252,.76)!important;
}

/* Scene content itself is never opacity-crossfaded. It is replaced only while
   the cinematic veil is fully covering the viewport. */
.peace-scene,
.peace-scene.is-visible,
.peace-scene.is-focus-out,
.peace-scene.is-leaving{
  opacity:1!important;
}
.peace-scene.is-preparing{visibility:hidden!important;opacity:1!important}

/* Supplied lotus shadow is always grounded directly under lotus artwork. */
.peace-lotus-shadow,.peace-lotus-focus-shadow{
  opacity:1!important;
  pointer-events:none!important;
}
.peace-lotus-shadow.is-missing,.peace-lotus-focus-shadow.is-missing{display:none!important}

/* WATER menu: align the label optically with the centre of the ring and place
   it immediately to the right of the authored point. */
.pam-water .peace-action-label{
  left:16.72cqw!important;
  top:8.16cqh!important;
  width:8.9cqw!important;
  text-align:left!important;
  white-space:nowrap!important;
}
html[lang="tr"] .pam-water .peace-action-label,
html[lang="es"] .pam-water .peace-action-label,
html[lang="fr"] .pam-water .peace-action-label,
html[lang="it"] .pam-water .peace-action-label{top:8.30cqh!important}
html[lang="ja"] .pam-water .peace-action-label{top:8.26cqh!important}

/* WATER detail: bucket is lower and remains completely stable after its one
   entrance. Image source changes no longer restart the entrance animation. */
.peace-water-bucket{
  top:42.25cqh!important;
  animation:none!important;
  opacity:1!important;
  transform-origin:50% 66%!important;
}
.peace-water-bucket.is-entering{
  animation:peaceWaterBucketArriveV32 .82s cubic-bezier(.18,.78,.18,1) both!important;
}
.peace-water-bucket.is-rippling{
  animation:peaceWaterImpactV32 .26s cubic-bezier(.16,.82,.2,1) both!important;
}
.peace-water-drop{
  transform-origin:50% 92%!important;
  will-change:transform,opacity!important;
}
@keyframes peaceWaterBucketArriveV32{
  0%{opacity:0;transform:translateY(1.7cqh) scale(.975);filter:blur(.16cqw) drop-shadow(0 1.25cqh .8cqw rgba(88,69,70,.06))}
  100%{opacity:1;transform:none;filter:drop-shadow(0 1.25cqh .8cqw rgba(88,69,70,.12))}
}
@keyframes peaceWaterImpactV32{
  0%,100%{transform:scale(1)}
  46%{transform:scale(1.007,.996)}
}

@media(max-width:1000px) and (orientation:landscape){
  .peace-water-bucket{top:41.65cqh!important}
  .pam-water .peace-action-label{left:16.55cqw!important}
}

/* ========================================================================== 
   V33 - PEACE WATER DEPTH / HOME SHADOW / PINK CINEMATIC TRANSITIONS
   2026-08-20
   ========================================================================== */

/* The continuous cloudscape is a canvas-level layer. Normal PEACE scenes sit
   above it; WATER intentionally sits below it so clouds can drift in front of
   the bucket and falling drop without restarting the cloud animation. */
.peace-cloudscape{z-index:2!important}
.peace-stage-water{z-index:1!important}

/* Home-site PEACE portal: the supplied golge.png sits underneath the lotus in
   the combined CATPUF+lotus portal art. */
.bubble-home-screen .home-peace-portal .bubble-visual::after{
  content:"";position:absolute;z-index:2;left:50%;top:86.8%;width:46%;aspect-ratio:378/54;
  translate:-50% -50%;background:url('../assets/peace/golge.png') center/contain no-repeat;
  opacity:.76;pointer-events:none;filter:none;
}
.bubble-home-screen .home-peace-portal .peace-home-icon{z-index:3!important}
.bubble-home-screen .home-peace-portal .bubble-visual.bubble-bursting::after{opacity:0}

/* WATER menu bucket is deliberately much larger, while the hotspot/label keep
   their established interaction coordinates. */
.pam-water .peace-water-menu-bucket{
  left:-1.9cqw!important;top:-21.7cqh!important;width:27cqw!important;
  opacity:1!important;transition:opacity .82s ease,filter .82s ease!important;
}
.pam-water .peace-water-menu-bucket.is-visitor-hidden{
  opacity:0!important;filter:blur(.16cqw) saturate(.96)!important;
}

/* WATER detail: one stable base bucket + one ripple overlay. The base image is
   never swapped, so a new drop can never flash/fade the bucket. */
.peace-water-bucket-shell{
  position:absolute!important;z-index:22!important;left:50%!important;top:47.8cqh!important;
  width:min(26.2cqw,46.6cqh)!important;aspect-ratio:665/502!important;translate:-50% 0!important;
  pointer-events:none!important;transform-origin:50% 66%!important;
  filter:drop-shadow(0 1.25cqh .8cqw rgba(88,69,70,.12))!important;
}
.peace-water-bucket-shell.is-entering{animation:peaceWaterBucketArriveV33 .82s cubic-bezier(.18,.78,.18,1) both!important}
.peace-water-bucket-shell.is-rippling{animation:peaceWaterImpactV33 .24s cubic-bezier(.16,.82,.2,1) both!important}
.peace-water-bucket{
  position:absolute!important;z-index:1!important;inset:0!important;left:0!important;top:0!important;
  width:100%!important;height:100%!important;translate:0 0!important;object-fit:contain!important;
  animation:none!important;filter:none!important;opacity:1!important;pointer-events:none!important;
}
.peace-water-bucket-ripple{z-index:2!important;visibility:hidden!important;opacity:0!important}
.peace-water-bucket-shell.is-rippling .peace-water-bucket-ripple{visibility:visible!important;opacity:1!important}
.peace-water-drop{visibility:hidden!important}
.peace-water-drop.is-ready{visibility:visible!important}
@keyframes peaceWaterBucketArriveV33{
  0%{opacity:0;transform:translateY(1.45cqh) scale(.978);filter:blur(.14cqw) drop-shadow(0 1.25cqh .8cqw rgba(88,69,70,.05))}
  100%{opacity:1;transform:none;filter:drop-shadow(0 1.25cqh .8cqw rgba(88,69,70,.12))}
}
@keyframes peaceWaterImpactV33{0%,100%{transform:scale(1)}44%{transform:scale(1.006,.997)}}

/* Never use a white transition card in PEACE. This cloud-bloom palette is
   sampled from the pink/lilac lower cloud field of zemin.jpg. */
.peace-transition-veil::before{
  content:"";position:absolute;inset:0;opacity:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(205,215,247,.06),rgba(247,190,218,.17) 64%,rgba(252,188,207,.25));
  transition:opacity .28s ease;
}
.peace-transition-veil.is-active::before{opacity:1}
.peace-transition-orb{
  background:
    radial-gradient(ellipse at 17% 72%,rgba(250,184,208,.98) 0 13%,transparent 29%),
    radial-gradient(ellipse at 38% 81%,rgba(249,202,221,.98) 0 17%,transparent 34%),
    radial-gradient(ellipse at 62% 76%,rgba(239,194,226,.98) 0 18%,transparent 35%),
    radial-gradient(ellipse at 84% 70%,rgba(246,177,207,.98) 0 14%,transparent 30%),
    linear-gradient(132deg,#c9d5f7 0%,#dec9ef 43%,#f5bdd8 72%,#f8c6d2 100%)!important;
  box-shadow:0 0 8vmax rgba(236,178,215,.52),0 0 14vmax rgba(190,200,242,.30)!important;
}
.peace-transition-orb::before,.peace-transition-orb::after{
  content:"";position:absolute;pointer-events:none;border-radius:50%;filter:blur(1.8vmax);opacity:.42;
}
.peace-transition-orb::before{inset:17%;background:radial-gradient(circle,rgba(255,218,231,.78),rgba(229,197,236,.26) 58%,transparent 72%)}
.peace-transition-orb::after{inset:31%;background:radial-gradient(circle,rgba(255,205,222,.54),transparent 67%)}

@media(max-width:1000px) and (orientation:landscape){
  .peace-water-bucket-shell{top:47.15cqh!important;width:min(27.5cqw,48.5cqh)!important}
  .pam-water .peace-water-menu-bucket{left:-1.7cqw!important;top:-21.2cqh!important;width:26.4cqw!important}
}

/* ========================================================================== 
   V34 - PEACE UPPER CLOUD LANES / WATER HITBOX + RIPPLE / GLASS BELL
   2026-08-20
   ========================================================================== */

/* Cloud positions are generated only in lanes whose visual centre stays above
   the physical viewport midline. Keep supplied cloud PNGs at full opacity. */
.peace-cloudscape{overflow:hidden!important}
.peace-cloud-drift{opacity:1!important;filter:none!important}
html.mobile-perf .peace-cloud-drift{opacity:1!important}

/* WATER menu: the complete enlarged bucket is the hit target, including the
   part extending above the nominal action box. */
.pam-water::before{
  content:"";position:absolute;left:-2.4cqw;top:-22.8cqh;width:29.6cqw;height:34cqh;
  background:transparent;pointer-events:auto;
}
.pam-water .peace-water-menu-bucket{pointer-events:auto!important}

/* WATER detail: kova1 remains the only complete bucket. kova2 is clipped to
   the water/rim area so its baked lower shadow can never stack with the base. */
.peace-water-bucket-shell{filter:none!important}
.peace-water-bucket-ripple{
  clip-path:inset(0 0 55% 0)!important;
  filter:none!important;
}
@keyframes peaceWaterBucketArriveV33{
  0%{opacity:0;transform:translateY(1.45cqh) scale(.978);filter:blur(.14cqw)}
  100%{opacity:1;transform:none;filter:none}
}

/* GLASS BELL menu entry - follows the supplied 22-peace-03 composition. */
.pam-bell{
  left:79.0cqw!important;top:0!important;width:19.2cqw!important;height:76cqh!important;
  overflow:visible!important;
}
.peace-bell-menu-assembly{
  position:absolute;left:.15cqw;top:0;width:16.4cqw;height:64cqh;
  pointer-events:none;transform-origin:50% 0;
}
.peace-bell-menu-outer{
  position:absolute;left:50%;top:0;height:64cqh;width:auto;translate:-50% 0;
  object-fit:contain;pointer-events:none;filter:none;
}
.peace-bell-menu-inner{
  position:absolute;left:50%;top:36.9cqh;height:24.6cqh;width:auto;translate:-50% 0;
  object-fit:contain;pointer-events:none;filter:none;
}
.pam-bell .peace-hotspot-ring{
  left:12.2cqw!important;top:55.6cqh!important;width:6.55cqw!important;height:6.55cqw!important;
  animation-delay:-2.55s!important;
}
.pam-bell .peace-action-label{
  left:11.05cqw!important;top:64.1cqh!important;width:9.2cqw!important;
  text-align:center!important;white-space:normal!important;line-height:.92!important;
}
.pam-bell::before{
  content:"";position:absolute;left:-.6cqw;top:0;width:18.3cqw;height:64.5cqh;
  background:transparent;pointer-events:auto;
}

/* GLASS BELL detail. Outer bell pivots from the ceiling knot; the inner
   clapper pivots from its own upper attachment and is driven by JS physics. */
.peace-bell-scene{
  position:absolute;inset:0;z-index:20;pointer-events:none;overflow:visible;
}
.peace-bell-assembly{
  position:absolute;left:50%;top:-1.2cqh;height:min(86cqh,46cqw);aspect-ratio:384/848;
  translate:-50% 0;transform-origin:50% 0;will-change:transform;pointer-events:none;
}
.peace-bell-outer{
  position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:none;
}
.peace-bell-clapper{
  position:absolute;left:50%;top:46.8%;height:38.4%;width:auto;
  transform:translateX(-50%) rotate(0deg);transform-origin:50% 0;
  will-change:transform;pointer-events:none;filter:none;
}

@media(max-width:1000px) and (orientation:landscape){
  .pam-bell{left:78.6cqw!important}
  .peace-bell-menu-assembly{width:16.1cqw!important}
  .peace-bell-assembly{height:min(83cqh,45cqw)!important;top:-.8cqh!important}
}

/* ========================================================================== 
   V35 - PEACE MAIN SCALE LOCK / GLASS BELL CLAPPER DEPTH
   2026-08-20
   ========================================================================== */

/* WATER on the PEACE main menu is intentionally the same visual scale as the
   detail bucket. Keep its full artwork visible outside the small action box. */
.pam-water .peace-water-menu-bucket{
  left:-1.55cqw!important;
  top:-20.9cqh!important;
  width:min(26.2cqw,46.6cqh)!important;
  max-width:none!important;
  height:auto!important;
}
.pam-water::before{
  left:-2.2cqw!important;
  top:-22.0cqh!important;
  width:29.0cqw!important;
  height:40.0cqh!important;
}

/* GLASS BELL main-menu artwork is locked to the supplied 22-peace-03 scale
   and right-edge placement. The hanging cord still begins at the top edge. */
.pam-bell{
  left:77.35cqw!important;
  top:0!important;
  width:22.4cqw!important;
  height:82cqh!important;
}
.peace-bell-menu-assembly{
  left:0!important;
  top:0!important;
  width:20.8cqw!important;
  height:76cqh!important;
}
.peace-bell-menu-outer{
  left:50%!important;
  top:0!important;
  height:76cqh!important;
  width:auto!important;
  translate:-50% 0!important;
  z-index:2!important;
}
.peace-bell-menu-inner{
  left:50%!important;
  top:43.1cqh!important;
  height:28.9cqh!important;
  width:auto!important;
  translate:-50% 0!important;
  z-index:1!important;
}
.pam-bell .peace-hotspot-ring{
  left:14.25cqw!important;
  top:61.3cqh!important;
}
.pam-bell .peace-action-label{
  left:12.95cqw!important;
  top:69.9cqh!important;
  width:9.5cqw!important;
}
.pam-bell::before{
  left:-.8cqw!important;
  top:0!important;
  width:21.7cqw!important;
  height:76.5cqh!important;
}

/* Detail: bell2 is deliberately behind bell1 and is moved exactly 100px
   downward. Its pivot remains the upper tip of bell2 itself. */
.peace-bell-outer{z-index:2!important}
.peace-bell-clapper{
  z-index:1!important;
  top:calc(46.8% + 100px)!important;
  transform-origin:50% 0!important;
}

@media(max-width:1000px) and (orientation:landscape){
  .pam-water .peace-water-menu-bucket{
    left:-1.35cqw!important;
    top:-20.4cqh!important;
    width:min(27.5cqw,48.5cqh)!important;
  }
  .pam-bell{left:76.9cqw!important;width:22.8cqw!important}
  .peace-bell-menu-assembly{width:20.5cqw!important;height:74cqh!important}
  .peace-bell-menu-outer{height:74cqh!important}
  .peace-bell-menu-inner{top:42cqh!important;height:28cqh!important}
  .peace-bell-assembly{height:min(83cqh,45cqw)!important;top:-.8cqh!important}
  .peace-bell-clapper{top:calc(46.8% + 82px)!important}
}


/* ========================================================================== 
   V36 - PEACE LAYER LOCK + PERFORMANCE PASS
   2026-08-20
   ========================================================================== */

/* GLASS BELL main menu: the authored point and its rollover copy must always
   sit above the large bell artwork. Move that interaction cluster slightly
   lower as requested without moving the bell itself. */
.pam-bell .peace-bell-menu-assembly{z-index:2!important}
.pam-bell .peace-hotspot-ring{
  z-index:18!important;
  top:64.3cqh!important;
}
.pam-bell .peace-action-label{
  z-index:19!important;
  top:72.9cqh!important;
}

/* GLASS BELL detail: align bell2's upper attachment exactly with the cord. */
.peace-bell-clapper{
  left:calc(50% + 5px)!important;
}

/* Main PEACE lotus shadow: keep the supplied artwork but ground it 100px
   lower. This rule intentionally affects only the main hero, not Lotus Breath. */
.peace-hero>.peace-lotus-shadow{
  top:calc(74.6cqh + 100px)!important;
}

/* PEACE performance pass. The authored PNGs already carry their visual depth;
   recurring blur/filter work on large animated layers was causing avoidable
   raster/compositor churn. Keep the same motion language using transform and
   opacity only. */
.peace-scene,
.peace-scene.is-preparing,
.peace-scene.is-visible,
.peace-scene.is-focus-out,
.peace-scene.is-leaving{
  filter:none!important;
}
.peace-scene{
  transition:none!important;
  transform:none!important;
}
.peace-scene.is-visible,.peace-scene.is-focus-out,.peace-scene.is-leaving{
  transform:none!important;
}
.peace-action>.peace-action-label{
  filter:none!important;
  transition:opacity .34s ease,transform .42s cubic-bezier(.2,.78,.2,1)!important;
}
.peace-action:hover>.peace-action-label,.peace-action:focus-visible>.peace-action-label{filter:none!important}
.peace-drift-bubble,.peace-released-thought img{filter:none!important}
.peace-breathe-visual img,
.peace-breathe-cycle.phase-inhale .peace-breathe-visual img,
.peace-breathe-cycle.phase-hold .peace-breathe-visual img,
.peace-breathe-cycle.phase-exhale .peace-breathe-visual img{
  filter:none!important;
  transition:none!important;
}
.peace-visitor-shell,
.peace-visitor-shell .peace-visitor,
.peace-visitors,
.peace-visitors.is-leaving{
  filter:none!important;
}
@keyframes peaceVisitorArrive{
  0%{opacity:0;transform:translate3d(var(--visitor-from-x),var(--visitor-from-y),0) scale(.82)}
  72%{opacity:1}
  100%{opacity:1;transform:translate3d(0,0,0) scale(1)}
}
.peace-transition-orb{
  box-shadow:none!important;
  backface-visibility:hidden!important;
  transform:translate3d(-50%,-50%,0) scale(.018);
}
.peace-transition-orb::before,.peace-transition-orb::after{
  filter:none!important;
  opacity:.25!important;
}
.peace-cloud-drift,.peace-drift-bubble,.peace-released-thought,.peace-hotspot-ring{
  backface-visibility:hidden!important;
}

/* Avoid persistent compositor reservations on elements that do not need a
   dedicated layer for their full lifetime. */
.peace-released-thought img,.peace-breathe-visual img{will-change:auto!important}

@media(max-width:1000px) and (orientation:landscape){
  .pam-bell .peace-hotspot-ring{top:63.5cqh!important}
  .pam-bell .peace-action-label{top:72.0cqh!important}
}


/* ========================================================================== 
   V37 - PEACE SILKY TRANSITIONS / NATURAL BELL / LOTUS-ONLY HOME PORTAL
   2026-08-20
   ========================================================================== */

/* PEACE scene changes: compositor-only cloud curtain. Avoid the former 240vmax
   scale animation, which forced a huge raster surface during every menu/back
   transition. This panel only translates on the GPU. */
.peace-transition-veil{
  contain:strict!important;
  overflow:hidden!important;
}
.peace-transition-veil::before{display:none!important}
.peace-transition-orb{
  left:-6%!important;
  top:-6%!important;
  width:112%!important;
  height:112%!important;
  border-radius:46% 54% 0 0 / 12% 12% 0 0!important;
  opacity:1!important;
  transform:translate3d(0,106%,0) scaleY(.985);
  transform-origin:50% 100%!important;
  will-change:transform!important;
  background:
    radial-gradient(ellipse at 16% 88%,#f4b8d0 0 15%,transparent 32%),
    radial-gradient(ellipse at 38% 92%,#f7cada 0 18%,transparent 36%),
    radial-gradient(ellipse at 63% 90%,#e9c1e3 0 18%,transparent 37%),
    radial-gradient(ellipse at 86% 86%,#f3b1cb 0 15%,transparent 33%),
    linear-gradient(180deg,#d6d9f3 0%,#e8c9e7 43%,#f5bdd2 74%,#f7c6d3 100%)!important;
  box-shadow:none!important;
  backface-visibility:hidden!important;
}
.peace-transition-orb::before,.peace-transition-orb::after{display:none!important}

/* CATPUF HOME: PEACE portal now contains only the supplied lotus. Small WEBP
   frames keep HOME light while the flower opens and closes once every 2 s. */
.bubble-home-screen .home-peace-portal .peace-home-icon{display:none!important}
.bubble-home-screen .home-peace-portal .peace-home-lotus-wrap{
  position:absolute!important;
  z-index:4!important;
  left:50%!important;
  top:52%!important;
  width:88%!important;
  aspect-ratio:1/1!important;
  translate:-50% -50%!important;
  display:block!important;
  pointer-events:none!important;
}
.bubble-home-screen .home-peace-portal .peace-home-lotus{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  filter:drop-shadow(0 .42cqh .28cqw rgba(91,62,84,.13))!important;
  transform:translateZ(0)!important;
  backface-visibility:hidden!important;
}
.bubble-home-screen .home-peace-portal .bubble-visual::after{
  z-index:3!important;
  left:50%!important;
  top:78%!important;
  width:68%!important;
  opacity:.72!important;
}

@media(max-width:1000px) and (orientation:landscape){
  .bubble-home-screen .home-peace-portal .peace-home-lotus-wrap{width:86%!important;top:52%!important}
}


/* ========================================================================== 
   V38 - GLOBAL PERFORMANCE POLISH / RESTING HOME LOTUS
   2026-08-20
   ========================================================================== */

/* Route transitions keep the same timing and scale language but no longer blur
   the entire 1920x1080 screen every frame. Full-screen blur was the largest
   avoidable paint cost outside gameplay, especially on Safari and integrated GPUs. */
@keyframes screenOut{to{opacity:.08;transform:scale(1.018);filter:none}}
@keyframes screenIn{from{opacity:0;transform:scale(.989);filter:none}to{opacity:1;transform:none;filter:none}}
@keyframes veilIn{to{transform:scale(1.8)}}
@keyframes veilOut{to{opacity:0;filter:none}}
.screen-out,.screen-in{will-change:opacity,transform;backface-visibility:hidden}
#cinematic-veil{contain:layout paint;backface-visibility:hidden}
#cinematic-veil i{filter:none!important;will-change:transform;backface-visibility:hidden}

/* PEACE curtain and moving world layers stay transform-only. Keep the layer only
   where motion is continuous; authored scene PNGs remain normal paint layers. */
.peace-transition-orb,.peace-cloud-drift{backface-visibility:hidden!important}
.peace-transition-orb{will-change:transform!important}

/* HOME portal lotus rests most of the time; no CSS animation is attached to the
   image itself. JS performs a short frame sequence only once after every 2 s rest. */
.bubble-home-screen .home-peace-portal .peace-home-lotus{will-change:auto!important}


/* === 2026-08-20 Credits right column — reference contact hierarchy ===== */
.credits-new-layout .credit-owner{display:none!important}
.credits-new-layout .credit-people{
  position:absolute;left:66.2cqw;top:6.7cqh;width:30.2cqw;height:82.8cqh;
  display:block;text-align:center;color:#111;z-index:8;text-transform:none;
}
.credits-new-layout .credit-person{
  position:absolute;left:0;width:100%;display:flex;flex-direction:column;align-items:center;
  justify-content:flex-start;text-align:center;color:#111;
}
.credits-new-layout .credit-person-psych{top:13.888889cqh!important}
.credits-new-layout .credit-person-owner{top:48.2cqh}
.credits-new-layout .credit-person-role{
  width:29.5cqw;margin:0 auto;color:#111;font-weight:900;text-transform:uppercase;
  letter-spacing:-.035em;text-wrap:balance;
}
.credits-new-layout .credit-psych-role{font-size:2.02cqh;line-height:1.02;margin-bottom:3.8cqh}
.credits-new-layout .credit-owner-role{font-size:1.82cqh;line-height:1.02;margin-bottom:4.1cqh}
.credits-new-layout .credit-person-name{
  display:block;margin:0 0 1.9cqh;font-size:3.85cqh;line-height:.94;font-weight:900;
  letter-spacing:-.035em;text-transform:uppercase;white-space:nowrap;
}
.credits-new-layout .credit-person-web,
.credits-new-layout .credit-person-mail{
  display:block;color:#111;text-decoration:none;font-weight:900;letter-spacing:-.035em;
  transition:transform .18s ease,opacity .18s ease;transform-origin:center center;white-space:nowrap;
}
.credits-new-layout .credit-person-web{font-size:3.25cqh;line-height:1;margin-bottom:1.55cqh}
.credits-new-layout .credit-person-mail{font-size:2.62cqh;line-height:1}
.credits-new-layout :is(.credit-person-web,.credit-person-mail):hover,
.credits-new-layout :is(.credit-person-web,.credit-person-mail):focus-visible{transform:scale(1.025);opacity:.76;outline:none}
html[lang="ja"] .credits-new-layout .credit-person-role{letter-spacing:-.02em}
html[lang="ja"] .credits-new-layout .credit-psych-role{font-size:1.82cqh;line-height:1.12}
html[lang="ja"] .credits-new-layout .credit-owner-role{font-size:1.55cqh;line-height:1.14}
html[lang="ja"] .credits-new-layout .credit-person-name{font-size:3.45cqh}

@media (max-aspect-ratio: 1.45/1){
  .credits-new-layout .credit-people{left:56.5cqw;top:13.3cqh;width:40.5cqw;height:76cqh}
  .credits-new-layout .credit-person-role{width:39cqw}
  .credits-new-layout .credit-psych-role{font-size:1.7cqh;margin-bottom:2.3cqh}
  .credits-new-layout .credit-owner-role{font-size:1.48cqh;margin-bottom:2.5cqh}
  .credits-new-layout .credit-person-name{font-size:3.0cqh;margin-bottom:1.2cqh}
  .credits-new-layout .credit-person-web{font-size:2.45cqh;margin-bottom:1cqh}
  .credits-new-layout .credit-person-mail{font-size:2.05cqh}
  .credits-new-layout .credit-person-owner{top:41.8cqh}
}



/* ========================================================================== 
   V42 - FULL CATPUF PERFORMANCE RECOVERY
   2026-08-20
   ========================================================================== */
html.route-transitioning #app .screen .design-canvas *,
html.route-transitioning #app .game-stage *{animation-play-state:paused!important}
html.route-transitioning #app{pointer-events:none!important}
.game-cell{contain:layout style}
.bubble-home-screen .home-bubble-card,
.bubble-home-screen .home-item>img,
.bubble-home-screen .start-wrap>img,
.bubble-language-screen .bubble-language-choice{will-change:auto!important}
.remember-guide-canvas{will-change:auto!important}
.peace-stack-frame,.peace-lotus-focus img{will-change:auto!important}


/* V43 - PEACE visitor parity: the Glass Bell fades with the WATER bucket while
   the cinematic chick visitors are present, then returns smoothly. */
.pam-bell .peace-bell-menu-assembly{
  transition:opacity .82s ease,filter .82s ease!important;
}
.pam-bell .peace-bell-menu-assembly.is-visitor-hidden{
  opacity:0!important;filter:blur(.16cqw) saturate(.96)!important;
}

/* ========================================================================== 
   V44 - PEACE FIRE / 22-PEACE-03 + 22-PEACE-15
   2026-08-20
   ========================================================================== */

/* Main composition: nudge the Glass Bell artwork left/up and place its point
   + rollover copy at the open top-right location shown in 22-peace-03, leaving
   the lower-right space clean for FIRE. */
.pam-bell .peace-bell-menu-assembly{
  left:-1.45cqw!important;
  top:-2.10cqh!important;
}
.pam-bell .peace-hotspot-ring{
  left:14.95cqw!important;
  top:14.10cqh!important;
  width:6.55cqw!important;
  height:6.55cqw!important;
  z-index:18!important;
}
.pam-bell .peace-action-label{
  left:12.40cqw!important;
  top:6.42cqh!important;
  width:9.8cqw!important;
  text-align:center!important;
  white-space:normal!important;
  z-index:19!important;
}
.pam-bell::before{
  left:-2.15cqw!important;
  top:-2.25cqh!important;
  width:23.15cqw!important;
  height:78.8cqh!important;
}

/* FIRE main-menu object. The artwork is full size, matching the fire detail;
   the point and rollover label sit to its lower-left as in 22-peace-03. */
.pam-fire{
  left:70.90cqw!important;
  top:46.35cqh!important;
  width:28.2cqw!important;
  height:53.4cqh!important;
  overflow:visible!important;
  z-index:16!important;
}
.pam-fire .peace-fire-menu-frame{
  position:absolute!important;
  left:4.58cqw!important;
  top:0!important;
  width:min(20.55cqw,36.52cqh)!important;
  height:auto!important;
  max-width:none!important;
  object-fit:contain!important;
  opacity:1!important;
  transform:none!important;
  transform-origin:50% 77%!important;
  animation:none!important;
  filter:none!important;
  pointer-events:none!important;
  backface-visibility:hidden!important;
  transition:opacity .82s ease!important;
}
.pam-fire .peace-fire-menu-frame.is-visitor-hidden{opacity:0!important}
.pam-fire .peace-hotspot-ring{
  left:.18cqw!important;
  top:31.28cqh!important;
  width:6.55cqw!important;
  height:6.55cqw!important;
  animation-delay:-1.75s!important;
  z-index:18!important;
}
.pam-fire .peace-action-label{
  left:-.62cqw!important;
  top:25.42cqh!important;
  width:8.2cqw!important;
  text-align:center!important;
  white-space:nowrap!important;
  z-index:19!important;
}
.pam-fire::before{
  content:"";
  position:absolute;
  left:3.72cqw;
  top:-.6cqh;
  width:22.3cqw;
  height:52.6cqh;
  background:transparent;
  pointer-events:auto;
}
.pam-fire.is-fire-lit .peace-fire-menu-frame{
  animation:peaceFireMenuGlow .64s ease-in-out infinite alternate!important;
}
@keyframes peaceFireMenuGlow{
  from{transform:translate3d(0,.10cqh,0) scale(.997);filter:brightness(1)}
  to{transform:translate3d(0,-.22cqh,0) scale(1.012);filter:brightness(1.07)}
}
html[lang="tr"] .pam-fire .peace-action-label,
html[lang="es"] .pam-fire .peace-action-label,
html[lang="fr"] .pam-fire .peace-action-label,
html[lang="it"] .pam-fire .peace-action-label{font-size:2.3cqh!important}
html[lang="ja"] .pam-fire .peace-action-label{font-size:2.35cqh!important}

/* 22-peace-15 FIRE detail. All nine supplied fire frames occupy exactly the
   same box; JS advances one active frame at a time. */
.peace-fire-scene{
  position:absolute!important;
  z-index:20!important;
  inset:0!important;
  overflow:visible!important;
  pointer-events:none!important;
}
.peace-fire-focus{
  position:absolute!important;
  z-index:22!important;
  left:50%!important;
  top:40.90cqh!important;
  width:min(20.55cqw,36.52cqh)!important;
  aspect-ratio:910/1254!important;
  translate:-50% 0!important;
  pointer-events:none!important;
  overflow:visible!important;
}
.peace-fire-frame-stack{
  position:absolute!important;
  z-index:2!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  pointer-events:none!important;
}
.peace-fire-frame{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  opacity:0!important;
  visibility:hidden!important;
  transform:none!important;
  animation:none!important;
  filter:none!important;
  pointer-events:none!important;
  backface-visibility:hidden!important;
}
.peace-fire-frame.is-active{
  opacity:1!important;
  visibility:visible!important;
}
.peace-fire-shadow{
  position:absolute!important;
  z-index:21!important;
  left:50%!important;
  top:83.15cqh!important;
  width:min(24.8cqw,44.1cqh)!important;
  height:auto!important;
  translate:-50% 0!important;
  object-fit:contain!important;
  opacity:.80!important;
  pointer-events:none!important;
  filter:none!important;
}
.peace-fire-shadow.is-missing{display:none!important}

/* Fast glowing particles continuously emerge from inside the flame body,
   fade in, weave left/right and disappear as they rise. */
.peace-fire-sparks{
  position:absolute!important;
  z-index:3!important;
  inset:0!important;
  overflow:visible!important;
  pointer-events:none!important;
}
.peace-fire-spark{
  position:absolute!important;
  left:var(--spark-x)!important;
  bottom:34%!important;
  width:var(--spark-size)!important;
  height:auto!important;
  opacity:0;
  transform-origin:50% 50%!important;
  pointer-events:none!important;
  will-change:transform,opacity!important;
  filter:drop-shadow(0 0 .18cqw rgba(255,225,103,.52))!important;
  animation:peaceFireSpark var(--spark-dur) cubic-bezier(.18,.62,.28,1) var(--spark-delay) infinite!important;
}
@keyframes peaceFireSpark{
  0%{opacity:0;transform:translate3d(0,1.2cqh,0) scale(.48) rotate(-8deg)}
  10%{opacity:.96;transform:translate3d(var(--spark-a),0,0) scale(.88) rotate(7deg)}
  34%{opacity:1;transform:translate3d(var(--spark-b),-8.4cqh,0) scale(1) rotate(-10deg)}
  62%{opacity:.82;transform:translate3d(var(--spark-a),-17.6cqh,0) scale(.78) rotate(12deg)}
  82%{opacity:.44;transform:translate3d(var(--spark-c),-25.2cqh,0) scale(.56) rotate(-8deg)}
  100%{opacity:0;transform:translate3d(var(--spark-b),-32.6cqh,0) scale(.28) rotate(14deg)}
}

@media(max-width:1000px) and (orientation:landscape){
  .pam-bell .peace-bell-menu-assembly{left:-1.25cqw!important;top:-1.85cqh!important}
  .pam-fire{left:70.55cqw!important;top:46.0cqh!important}
  .peace-fire-focus{top:40.55cqh!important}
  .peace-fire-shadow{top:83.0cqh!important;width:min(25.4cqw,45.2cqh)!important}
}


/* ==========================================================================
   V45 - PEACE FIRE polish / bell placement
   2026-08-20
   ========================================================================== */

/* Main PEACE composition: move only the Glass Bell artwork/hit area exactly
   300px upward. The label + hotspot stay in their authored 22-peace-03 spot. */
.pam-bell .peace-bell-menu-assembly{
  top:calc(-2.10cqh - 300px)!important;
}
.pam-bell::before{
  top:calc(-2.25cqh - 300px)!important;
}

/* Main FIRE gets the same grounded shadow language as its detail screen. */
.pam-fire .peace-fire-menu-shadow{
  position:absolute!important;
  z-index:0!important;
  left:2.45cqw!important;
  top:40.95cqh!important;
  width:min(24.8cqw,44.1cqh)!important;
  height:auto!important;
  object-fit:contain!important;
  opacity:.80!important;
  pointer-events:none!important;
  filter:none!important;
  transition:opacity .82s ease!important;
}
.pam-fire .peace-fire-menu-shadow.is-missing{display:none!important}
.pam-fire .peace-fire-menu-shadow.is-visitor-hidden{opacity:0!important}
.pam-fire .peace-fire-menu-frame{z-index:1!important}

/* Keep the rollover alive without physically wobbling the logs. The authored
   fire1..fire9 frame loop supplies the motion; this is only a soft light pulse. */
.pam-fire.is-fire-lit .peace-fire-menu-frame{
  animation:peaceFireMenuLightV45 .78s ease-in-out infinite alternate!important;
}
@keyframes peaceFireMenuLightV45{
  from{transform:none;filter:brightness(1) saturate(1)}
  to{transform:none;filter:brightness(1.075) saturate(1.035)}
}

/* Detail FIRE: cross-fade the authored frames instead of snapping/ping-ponging
   them. This keeps the log base stable and makes the flame feel continuous. */
.peace-fire-frame{
  visibility:visible!important;
  opacity:0!important;
  transition:opacity .115s linear!important;
  will-change:opacity!important;
}
.peace-fire-frame.is-active{opacity:1!important;visibility:visible!important}
.peace-fire-frame-stack{
  transform-origin:50% 86%!important;
  animation:peaceFireDetailLightV45 .92s ease-in-out infinite alternate!important;
}
@keyframes peaceFireDetailLightV45{
  from{filter:brightness(1) saturate(1)}
  to{filter:brightness(1.055) saturate(1.025)}
}

/* Sparks now travel much farther: fade in from inside the flame, weave
   repeatedly left/right, then clearly fade out high in the sky. */
.peace-fire-spark{
  bottom:34%!important;
  animation:peaceFireSparkV45 var(--spark-dur) cubic-bezier(.22,.58,.30,1) var(--spark-delay) infinite!important;
}
@keyframes peaceFireSparkV45{
  0%{opacity:0;transform:translate3d(0,1.4cqh,0) scale(.42) rotate(-7deg)}
  8%{opacity:.88;transform:translate3d(var(--spark-a),-.8cqh,0) scale(.80) rotate(7deg)}
  24%{opacity:1;transform:translate3d(var(--spark-b),-10.8cqh,0) scale(1) rotate(-10deg)}
  42%{opacity:.96;transform:translate3d(var(--spark-c),-22.2cqh,0) scale(.90) rotate(11deg)}
  60%{opacity:.76;transform:translate3d(var(--spark-d),-33.8cqh,0) scale(.75) rotate(-9deg)}
  78%{opacity:.42;transform:translate3d(var(--spark-a),-44.5cqh,0) scale(.58) rotate(10deg)}
  91%{opacity:.12;transform:translate3d(var(--spark-b),-51.5cqh,0) scale(.42) rotate(-7deg)}
  100%{opacity:0;transform:translate3d(var(--spark-d),-56.5cqh,0) scale(.30) rotate(9deg)}
}

@media(max-width:1000px) and (orientation:landscape){
  .pam-bell .peace-bell-menu-assembly{top:calc(-1.85cqh - 300px)!important}
  .pam-bell::before{top:calc(-2.25cqh - 300px)!important}
  .pam-fire .peace-fire-menu-shadow{top:40.8cqh!important;width:min(25.4cqw,45.2cqh)!important}
}

/* ==========================================================================
   V46 - PEACE main hotspot label alignment / direct FIRE frame switching
   2026-08-20
   ========================================================================== */

/* PUT IT IN A BUBBLE / BALONCUGA BIRAK: move the authored point + its copy
   together slightly left/up, preserving their existing relationship. */
.pam-bubble .peace-hotspot-ring{
  left:.85cqw!important;
  top:-1.10cqh!important;
}
.pam-bubble .peace-action-label{
  left:-2.77cqw!important;
  top:7.50cqh!important;
  width:13.8cqw!important;
  text-align:center!important;
}

/* Remaining requested labels sit optically centered directly above their
   own hotspot ring. Ring positions themselves remain untouched. */
.pam-bell .peace-action-label{
  left:13.325cqw!important;
  top:8.15cqh!important;
  width:9.8cqw!important;
  text-align:center!important;
  white-space:normal!important;
}
.pam-fire .peace-action-label{
  left:-.645cqw!important;
  top:27.55cqh!important;
  width:8.2cqw!important;
  text-align:center!important;
  white-space:nowrap!important;
}
.pam-water .peace-action-label{
  left:8.625cqw!important;
  top:2.70cqh!important;
  width:8.9cqw!important;
  text-align:center!important;
  white-space:nowrap!important;
}
.pam-purr .peace-action-label{
  left:-1.875cqw!important;
  top:-6.05cqh!important;
  width:10.2cqw!important;
  text-align:center!important;
  white-space:normal!important;
  line-height:.92!important;
}

/* FIRE detail: no opacity cross-fade between authored frames. Exactly one
   supplied PNG is visible at a time, so frame changes cannot create a pale
   overlap / blink. The existing frame timing and spark motion stay intact. */
.peace-fire-frame{
  opacity:0!important;
  visibility:hidden!important;
  transition:none!important;
  will-change:auto!important;
}
.peace-fire-frame.is-active{
  opacity:1!important;
  visibility:visible!important;
}

/* ========================================================================== 
   V47 - PEACE day/night ground + main interaction spacing
   2026-08-20
   ========================================================================== */

/* Day remains the authored zemin.jpg. Night is a second full-viewport layer,
   so switching never flashes through a flat color or forces the scene DOM to
   rebuild. The same PEACE screen persists behind every detail view. */
.peace-screen{
  isolation:isolate!important;
  background:#8fa9e8 url('../assets/peace/zemin.jpg') 50% 50%/100% 100% no-repeat!important;
}
.peace-screen::before{
  content:"";
  display:block!important;
  position:absolute;
  z-index:0;
  inset:0;
  pointer-events:none;
  background:#192b73 url('../assets/peace/zemingece.jpg') 50% 50%/100% 100% no-repeat;
  opacity:0;
  transition:none;
  will-change:opacity;
}
.peace-screen.peace-theme-ready::before{
  transition:opacity 1.18s cubic-bezier(.22,.72,.18,1);
}
.peace-screen.is-peace-night::before{opacity:1}
.peace-screen>.peace-canvas{z-index:1!important}
.peace-screen .peace-sky-glow{transition:opacity 1.18s cubic-bezier(.22,.72,.18,1)}
.peace-screen.is-peace-night .peace-sky-glow{opacity:.26}

/* Main-only day/night control. Day shows the supplied moon button; night shows
   the supplied sun button. Both authored PNGs occupy the same stable hit box. */
.peace-theme-toggle{
  position:absolute;
  z-index:97;
  left:max(9.0cqw,calc(env(safe-area-inset-left) + 8.9cqw));
  top:max(3.15cqh,env(safe-area-inset-top));
  width:min(6.65cqw,11.82cqh);
  aspect-ratio:1/1;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  opacity:1;
  visibility:visible;
  transform:translate3d(0,0,0) scale(1);
  transition:opacity .26s ease,visibility .26s ease,transform .34s cubic-bezier(.2,.82,.2,1),filter .3s ease;
  filter:drop-shadow(0 .32cqh .32cqw rgba(38,42,103,.10));
}
.peace-theme-toggle.is-hidden{opacity:0;visibility:hidden;pointer-events:none;transform:translate3d(0,-.6cqh,0) scale(.92)}
.peace-theme-toggle:hover,.peace-theme-toggle:focus-visible{transform:translate3d(0,-.2cqh,0) scale(1.075);filter:brightness(1.055) drop-shadow(0 .45cqh .42cqw rgba(38,42,103,.15))}
.peace-theme-toggle:active{transform:translate3d(0,0,0) scale(.965)}
.peace-theme-icon{position:absolute;left:50%;top:50%;width:100%;height:100%;object-fit:contain;translate:-50% -50%;opacity:0;transform:scale(.82) rotate(-12deg);transition:opacity .44s ease,transform .58s cubic-bezier(.2,.8,.2,1);pointer-events:none}
.peace-theme-toggle[data-peace-theme="day"] .peace-theme-icon-night,.peace-theme-toggle[data-peace-theme="night"] .peace-theme-icon-day{opacity:1;transform:scale(1) rotate(0)}
.peace-theme-toggle.is-switching .peace-theme-icon{animation:peaceThemeIconSwitch .72s cubic-bezier(.2,.8,.2,1)}
@keyframes peaceThemeIconSwitch{0%{filter:brightness(1);transform:scale(.88) rotate(-8deg)}48%{filter:brightness(1.18);transform:scale(1.13) rotate(5deg)}100%{filter:brightness(1);transform:scale(1) rotate(0)}}

/* Move the entire Bubble action farther left so its real button/hit region no
   longer sits under the large FIRE interaction area. Label and ring remain
   locked together exactly as in the previous alignment pass. */
.pam-bubble{right:24.6cqw!important}

/* Main Glass Bell only: move the supplied inner bell piece 5px to the right.
   Detail-bell alignment remains governed by its own .peace-bell-clapper rule. */
.pam-bell .peace-bell-menu-inner{left:calc(50% + 5px)!important}

@media(max-width:1000px) and (orientation:landscape){
  .peace-theme-toggle{left:max(9.1cqw,calc(env(safe-area-inset-left) + 8.9cqw));top:max(3.0cqh,env(safe-area-inset-top));width:min(6.9cqw,12.25cqh)}
  .pam-bubble{right:25.0cqw!important}
}

/* ========================================================================== 
   V48 - PEACE night continuity + opening credits
   2026-08-20
   ========================================================================== */

/* The authored moving cloud paintings belong to daytime only. Night fades the
   parade away and pauses the current frame; JS also stops the cloud scheduler.
   Returning to day starts one clean fresh cloud instead of building a pile-up. */
.peace-screen .peace-cloudscape{
  transition:opacity .72s cubic-bezier(.22,.72,.18,1),visibility .72s ease!important;
}
.peace-screen.is-peace-night .peace-cloudscape{
  opacity:0!important;
  visibility:hidden!important;
}
.peace-screen.is-peace-night .peace-cloud-drift{
  animation-play-state:paused!important;
}

/* Scene curtain follows the active PEACE sky. Day keeps the existing soft
   pink cloud wash; night uses only the deep blue/violet colors of zemingece. */
.peace-screen.is-peace-night .peace-transition-orb{
  background:
    radial-gradient(ellipse at 15% 88%,rgba(36,55,145,.98) 0 18%,transparent 38%),
    radial-gradient(ellipse at 40% 92%,rgba(48,61,166,.98) 0 20%,transparent 40%),
    radial-gradient(ellipse at 67% 90%,rgba(86,71,187,.98) 0 20%,transparent 41%),
    radial-gradient(ellipse at 88% 86%,rgba(121,79,194,.96) 0 17%,transparent 37%),
    linear-gradient(180deg,#0d246f 0%,#23398f 37%,#4f4fb0 68%,#7654bd 100%)!important;
}

/* First PEACE reveal only: credits match the supplied 22-peace-01 placement.
   They fade in while CATPUF opens its eyes and disappear during the handoff to
   the interactive main menu. */
.peace-intro-credits{
  position:absolute;
  z-index:42;
  inset:0;
  pointer-events:none;
  color:#111017;
  opacity:0;
  transition:opacity .58s cubic-bezier(.22,.72,.18,1),transform .7s cubic-bezier(.2,.78,.2,1);
  transform:translate3d(0,.8cqh,0);
  will-change:opacity,transform;
}
.peace-intro-credits.is-visible{
  opacity:1;
  transform:translate3d(0,0,0);
}
.peace-intro-credits.is-leaving{
  opacity:0;
  transform:translate3d(0,.55cqh,0);
  transition-duration:.52s,.58s;
}
.peace-intro-credit{
  position:absolute;
  top:85.95cqh;
  width:26cqw;
  text-align:center;
  text-transform:uppercase;
  letter-spacing:-.012em;
  line-height:.92;
}
.peace-intro-credit-left{left:18.65cqw}
.peace-intro-credit-right{left:54.55cqw}
.peace-intro-credit span{
  display:block;
  min-height:4.2cqh;
  font-size:1.55cqh;
  line-height:.94;
  font-weight:900;
}
.peace-intro-credit strong{
  display:block;
  margin-top:1.05cqh;
  font-size:3.0cqh;
  line-height:.92;
  font-weight:900;
  white-space:nowrap;
}

@media(max-width:1000px) and (orientation:landscape){
  .peace-intro-credit{top:85.7cqh;width:27cqw}
  .peace-intro-credit-left{left:18.1cqw}
  .peace-intro-credit-right{left:54.2cqw}
  .peace-intro-credit span{font-size:1.5cqh}
  .peace-intro-credit strong{font-size:2.9cqh}
}



/* ==========================================================================
   V50 - MENTOR CARDS
   Mehmet uses the existing mentor physics and authored card layout.
   ========================================================================== */

/* Mehmet uses exactly the same hit box, gravity scale and breathing language as Guide. */
.game-cell.kind-mehmet{cursor:pointer}
.game-cell.kind-mehmet .cell-art{
  width:calc(5.72cqw + 4px)!important;height:calc(10.38cqh + 4px)!important;object-fit:contain!important;
  transform-origin:50% 72%!important;
  filter:drop-shadow(0 .18cqh .13cqw rgba(80,62,82,.12));
  animation:guideBreathing 3.65s cubic-bezier(.42,0,.28,1) infinite;
  will-change:scale,translate,filter;
}
.game-cell.kind-mehmet:active .cell-art{animation-play-state:paused!important;scale:.95!important}
.game-cell.kind-mehmet.guide-popping .cell-art{animation:none!important;opacity:0!important;visibility:hidden!important}

/* The supplied 17-unutma-06 / 24-memo-06 composition: character left,
   stitched window center, floating information bubble and breathing symbol right. */
.remember-card{
  width:88cqw!important;height:72cqh!important;
  left:50%!important;top:50%!important;translate:none!important;
  transform:translate(-50%,-50%) scale(.92) rotateX(6deg)!important;
  transform-origin:50% 50%!important;
  overflow:visible!important;
}
.remember-wrap.show .remember-card{transform:translate(-50%,-50%) scale(1) rotateX(0)!important}
.remember-wrap.closing .remember-card{transform:translate(-50%,-54%) scale(.90) rotateX(-4deg)!important}

.remember-panel{
  left:21.4cqw!important;top:8.2cqh!important;width:50.6cqw!important;height:51.8cqh!important;
  background:url('../assets/window.png') center/100% 100% no-repeat!important;
  border:0!important;border-radius:0!important;box-shadow:none!important;
}
.remember-panel:before{display:none!important}

.remember-guide.remember-mentor{
  left:1.2cqw!important;bottom:.2cqh!important;width:25.2cqw!important;height:65.7cqh!important;
  object-fit:contain!important;object-position:center bottom!important;z-index:8!important;
}
.remember-mentor-mehmet{width:23.7cqw!important;left:1.7cqw!important}
.remember-guide-canvas{width:100%!important;height:100%!important}

.remember-panel h2{
  left:11.0cqw!important;right:auto!important;top:5.25cqh!important;width:34.7cqw!important;
  margin:0!important;text-align:left!important;
  font-size:3.35cqh!important;line-height:1!important;letter-spacing:-.018em!important;
  color:#303034!important;text-transform:uppercase!important;white-space:nowrap!important;
}
.remember-heart .remember-panel h2{font-size:3.05cqh!important;letter-spacing:-.022em!important}
.remember-title-line{
  position:absolute;z-index:4;left:11.1cqw;top:11.9cqh;width:25.9cqw;height:0;
  border-top:.12cqw dashed rgba(67,63,67,.55);pointer-events:none;
}
.remember-message-box{
  left:10.8cqw!important;right:auto!important;top:18.5cqh!important;
  width:34.8cqw!important;height:23.6cqh!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  text-align:center!important;overflow:hidden!important;
}
.remember-message{
  max-width:100%!important;margin:0!important;
  font-size:4.25cqh!important;line-height:1.03!important;letter-spacing:-.016em!important;
  color:#303034!important;text-transform:uppercase!important;
}
html[lang="ja"] .remember-message{font-size:3.65cqh!important;line-height:1.12!important;letter-spacing:.01em!important;text-transform:none!important}
html[lang="tr"] .remember-message{text-transform:uppercase!important}
.remember-count{
  right:3.4cqw!important;top:auto!important;bottom:4.35cqh!important;
  font-size:2.8cqh!important;line-height:1!important;color:#303034!important;
}
.remember-ok{
  left:50%!important;bottom:-4.2cqh!important;translate:-50% 0!important;
  width:20.5cqw!important;height:9.25cqh!important;font-size:3.8cqh!important;
}

/* Floating "more information" bubble. The copy is always three stacked lines. */
.remember-more-info{
  position:absolute;z-index:14;left:66.4cqw;top:-.5cqh;width:15.8cqw;height:15.8cqw;
  display:block;text-decoration:none;color:#303034;cursor:pointer;touch-action:manipulation;
  transform-origin:50% 50%;animation:rememberMoreFloat 3.15s ease-in-out infinite;
  filter:drop-shadow(0 .30cqh .30cqw rgba(91,65,102,.12));
}
.remember-more-info>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.remember-more-copy{
  position:absolute;z-index:2;left:50%;top:50%;translate:-50% -48%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  width:72%;text-align:center;font:inherit;font-size:3.15cqh;line-height:.86;letter-spacing:-.02em;
  text-transform:uppercase;color:#303034;pointer-events:none;
}
.remember-more-copy span{display:block;white-space:nowrap}
.remember-more-info:hover,.remember-more-info:focus-visible{filter:brightness(1.045) drop-shadow(0 .42cqh .38cqw rgba(91,65,102,.16));outline:none}
.remember-more-info:active{scale:.965}
@keyframes rememberMoreFloat{
  0%,100%{transform:translate3d(0,0,0) rotate(-.45deg)}
  50%{transform:translate3d(0,-1.35cqh,0) rotate(.55deg)}
}

/* Lotus / heart occupy the authored right-side breathing space. */
.remember-side-icon{
  position:absolute;z-index:11;left:74.2cqw;top:34.0cqh;width:13.4cqw;height:19.0cqh;
  object-fit:contain;object-position:center;pointer-events:none;user-select:none;
  transform-origin:50% 64%;animation:rememberSymbolBreath 3.35s cubic-bezier(.42,0,.28,1) infinite;
  filter:drop-shadow(0 .32cqh .30cqw rgba(85,60,91,.13));
}
.remember-lotus-icon{width:15.0cqw!important;left:73.1cqw!important}
.remember-heart-icon{width:12.6cqw!important;left:75.0cqw!important}
@keyframes rememberSymbolBreath{
  0%,100%{transform:translate3d(0,0,0) scale(1)}
  48%{transform:translate3d(0,-.38cqh,0) scale(1.055)}
  72%{transform:translate3d(0,-.12cqh,0) scale(1.018)}
}

html[lang="fr"] .remember-panel h2,html[lang="es"] .remember-panel h2,html[lang="it"] .remember-panel h2{font-size:2.95cqh!important}
html[lang="fr"] .remember-heart .remember-panel h2,
html[lang="es"] .remember-heart .remember-panel h2,
html[lang="it"] .remember-heart .remember-panel h2{font-size:2.58cqh!important}
html[lang="ja"] .remember-panel h2{font-size:2.95cqh!important;letter-spacing:.01em!important}
html[lang="ja"] .remember-more-copy{font-size:2.65cqh!important;line-height:.95!important}

@media(max-width:900px) and (orientation:landscape){
  .remember-card{width:94cqw!important;height:72cqh!important}
  .remember-panel{left:22.4cqw!important;width:53.8cqw!important}
  .remember-guide.remember-mentor{left:.2cqw!important;width:27.2cqw!important}
  .remember-mentor-mehmet{width:25.6cqw!important}
  .remember-more-info{left:70.4cqw!important;width:16.3cqw!important;height:16.3cqw!important}
  .remember-side-icon{left:78.5cqw!important}
  .remember-lotus-icon{left:77.2cqw!important}
  .remember-message-box{width:36.8cqw!important}
  .remember-message{font-size:3.55cqh!important;line-height:1.01!important}
}
@media(max-width:900px) and (orientation:portrait){
  .remember-card{width:96cqw!important;height:66cqh!important}
  .remember-panel{left:25cqw!important;top:7cqh!important;width:68cqw!important;height:52cqh!important}
  .remember-guide.remember-mentor{left:-2cqw!important;width:35cqw!important;height:61cqh!important}
  .remember-panel h2{left:13cqw!important;width:42cqw!important;font-size:2.7cqh!important}
  .remember-title-line{left:13cqw!important;width:32cqw!important}
  .remember-message-box{left:12.5cqw!important;width:46cqw!important}
  .remember-message{font-size:3.15cqh!important}
  .remember-more-info{left:78cqw!important;top:-1cqh!important;width:16cqw!important;height:16cqw!important}
  .remember-more-copy{font-size:2.3cqh!important}
  .remember-side-icon{display:none!important}
}

/* Mobile performance parity for the new board mentor. */
html.mobile-perf .mobile-game-perf .game-cell.kind-mehmet .cell-art{filter:none!important;will-change:auto!important}
@media(prefers-reduced-motion:reduce){
  .game-cell.kind-mehmet .cell-art,.remember-more-info,.remember-side-icon{animation:none!important}
}

/* Help reflects the remaining Mehmet mentor mechanic. */
.help-mentor-pair{
  display:flex!important;align-items:flex-end!important;justify-content:center!important;gap:.65cqw!important;
  width:100%!important;height:100%!important;
}
.help-mentor-pair>img{
  width:48%!important;height:94%!important;object-fit:contain!important;object-position:center bottom!important;
  filter:drop-shadow(0 .20cqh .18cqw rgba(75,55,80,.11));
}
.help-ref-art.help-mentor-pair-art{overflow:visible!important}
.help-ref-art.help-mentor-pair-art>.help-mentor-pair{width:100%!important;height:100%!important}

/* ========================================================================== 
   V51 - MENTOR CARD ALIGNMENT POLISH
   Layout-only refinement: mentor placement, centered card content and larger
   centered in-board mentor portraits. No gameplay logic changes.
   ========================================================================== */

/* Bring both full-height mentor characters slightly closer to the card. */
.remember-guide.remember-mentor{
  left:3.2cqw!important;
}
.remember-mentor-mehmet{
  left:3.7cqw!important;
}

/* Keep the title authored left-aligned, but center its rule, message and CTA
   precisely on the stitched window's own horizontal axis. */
.remember-title-line{
  left:50%!important;
  right:auto!important;
  width:25.9cqw!important;
  transform:translateX(-50%)!important;
}
.remember-message-box{
  left:50%!important;
  right:auto!important;
  width:34.8cqw!important;
  transform:translateX(-50%)!important;
}
.remember-ok{
  left:50%!important;
  right:auto!important;
  translate:-50% 0!important;
}

/* More-info copy: slightly larger and white on both mentor cards. */
.remember-more-copy{
  font-size:3.55cqh!important;
  color:#fff!important;
  text-shadow:0 .08cqh .10cqw rgba(72,54,82,.18);
}
html[lang="ja"] .remember-more-copy{
  font-size:3.10cqh!important;
  color:#fff!important;
}

/* Mehmet uses square source artwork. Give it a little more room while
   preserving contain + true cell-centering and the existing hit box. */
.game-cell.kind-mehmet .cell-art{
  width:calc(6.08cqw + 6px)!important;
  height:calc(11.05cqh + 6px)!important;
  left:0!important;
  right:0!important;
  top:0!important;
  bottom:0!important;
  margin:auto!important;
  object-fit:contain!important;
  object-position:50% 50%!important;
}

@media(max-width:900px) and (orientation:landscape){
  .remember-guide.remember-mentor{left:2.2cqw!important}
  .remember-mentor-mehmet{left:2.7cqw!important}
  .remember-title-line{left:50%!important;transform:translateX(-50%)!important}
  .remember-message-box{left:50%!important;width:36.8cqw!important;transform:translateX(-50%)!important}
  .remember-more-copy{font-size:3.30cqh!important;color:#fff!important}
  html[lang="ja"] .remember-more-copy{font-size:2.90cqh!important}
}

@media(max-width:900px) and (orientation:portrait){
  .remember-guide.remember-mentor{left:0!important}
  .remember-mentor-mehmet{left:.5cqw!important}
  .remember-title-line{left:50%!important;width:32cqw!important;transform:translateX(-50%)!important}
  .remember-message-box{left:50%!important;width:46cqw!important;transform:translateX(-50%)!important}
  .remember-more-copy{font-size:2.65cqh!important;color:#fff!important}
  html[lang="ja"] .remember-more-copy{font-size:2.45cqh!important}
}

/* ========================================================================== 
   V52 - MENTOR CARD TITLE TRUE CENTER
   Mentor headings share the exact horizontal axis of the stitched window
   and the dashed rule beneath them.
   ========================================================================== */
.remember-panel h2{
  left:50%!important;
  right:auto!important;
  width:calc(100% - 5.2cqw)!important;
  transform:translateX(-50%)!important;
  text-align:center!important;
}


/* ========================================================================== 
   V53 - MENTOR CLEANUP
   Mehmet remains on his existing even-level cadence; removed mentor content is
   no longer rendered in gameplay, Help, Credits or PEACE opening credits.
   ========================================================================== */
.help-mentor-pair.help-mentor-single>img{
  width:72%!important;
  height:96%!important;
  object-fit:contain!important;
  object-position:center bottom!important;
}

/* ========================================================================== 
   V53 - PEACE SNOW GLOBE + ZEN GARDEN / 22-peace-03 composition lock
   2026-08-23
   ========================================================================== */

/* Main PEACE menu is locked to the supplied 1920x1080 22-peace-03 layout.
   Existing behavior is preserved; only geometry/scale is re-authored here. */
.pam-breathe{left:17.92cqw!important;top:18.35cqh!important;width:9.1cqw!important;height:20cqh!important}
.pam-breathe .peace-hotspot-ring{left:0!important;top:0!important;width:8.96cqw!important;height:8.96cqw!important}
.pam-breathe .peace-action-label{left:-2.45cqw!important;top:17.45cqh!important;width:14cqw!important;text-align:center!important}

.pam-purr{left:32.75cqw!important;top:48.85cqh!important;width:8.4cqw!important;height:18cqh!important}
.pam-purr .peace-hotspot-ring{left:0!important;top:0!important;width:5.55cqw!important;height:5.55cqw!important}
.pam-purr .peace-action-label{left:-1.95cqw!important;top:-7.15cqh!important;width:10.1cqw!important;text-align:center!important;line-height:.92!important}

.pam-stay{left:57.28cqw!important;top:11.10cqh!important;width:9cqw!important;height:17cqh!important}
.pam-stay .peace-hotspot-ring{left:0!important;top:0!important;width:5.65cqw!important;height:5.65cqw!important}
.pam-stay .peace-action-label{left:-1.85cqw!important;top:-7.30cqh!important;width:9.5cqw!important;text-align:center!important;line-height:.92!important}

.pam-bubble{left:68.10cqw!important;right:auto!important;top:30.85cqh!important;width:9.8cqw!important;height:25cqh!important}
.pam-bubble .peace-hotspot-ring{left:0!important;top:0!important;width:6.20cqw!important;height:6.20cqw!important}
.pam-bubble .peace-action-label{left:-2.15cqw!important;top:15.65cqh!important;width:10.5cqw!important;text-align:center!important;line-height:.92!important}

.pam-lotus{left:51.75cqw!important;top:72.95cqh!important;width:9.8cqw!important;height:24cqh!important}
.pam-lotus .peace-hotspot-ring{left:0!important;top:0!important;width:6.65cqw!important;height:6.65cqw!important}
.pam-lotus .peace-action-label{left:-2.30cqw!important;top:15.40cqh!important;width:11.3cqw!important;text-align:center!important;line-height:.92!important}

/* WATER: smaller authored bucket, with its ring and copy exactly above it. */
.pam-water{left:7.30cqw!important;top:61.55cqh!important;width:15.3cqw!important;height:38.2cqh!important;z-index:17!important}
.pam-water .peace-water-menu-bucket{
  left:-3.75cqw!important;top:9.45cqh!important;width:12.65cqw!important;max-width:none!important;height:auto!important;
  object-fit:contain!important;animation:peaceWaterMenuBreath 4.6s ease-in-out infinite!important;transform-origin:50% 78%!important
}
.pam-water .peace-hotspot-ring{left:0!important;top:0!important;width:6.55cqw!important;height:6.55cqw!important}
.pam-water .peace-action-label{left:-1.65cqw!important;top:-2.55cqh!important;width:9.9cqw!important;text-align:center!important;white-space:nowrap!important}
.pam-water::before{left:-4.2cqw!important;top:8.5cqh!important;width:14.0cqw!important;height:30.5cqh!important}

/* SNOW GLOBE menu object supplied by the user. */
.pam-snowglobe{left:22.85cqw!important;top:57.15cqh!important;width:14.0cqw!important;height:38.5cqh!important;overflow:visible!important;z-index:18!important}
.pam-snowglobe .peace-snowglobe-menu{
  position:absolute!important;left:0!important;top:0!important;width:11.65cqw!important;height:auto!important;aspect-ratio:911 / 966!important;
  object-fit:contain!important;opacity:1!important;animation:peaceSnowGlobeMenuRest 5.1s ease-in-out infinite!important;
  transform-origin:50% 80%!important;filter:drop-shadow(0 .45cqh .34cqw rgba(92,72,112,.10))!important;pointer-events:none!important
}
.pam-snowglobe .peace-hotspot-ring{left:5.95cqw!important;top:18.55cqh!important;width:5.35cqw!important;height:5.35cqw!important;z-index:8!important}
.pam-snowglobe .peace-action-label{left:4.15cqw!important;top:29.60cqh!important;width:9.9cqw!important;text-align:center!important;line-height:.92!important;z-index:9!important}
.pam-snowglobe::before{content:"";position:absolute;left:-.7cqw;top:-.8cqh;width:12.8cqw;height:25.5cqh;background:transparent;pointer-events:auto}
.pam-snowglobe .peace-snowglobe-menu.is-visitor-hidden{opacity:0!important}
@keyframes peaceSnowGlobeMenuRest{0%,100%{transform:translate3d(0,0,0) rotate(-.15deg)}50%{transform:translate3d(0,-.25cqh,0) rotate(.18deg)}}

/* ZEN GARDEN menu object uses the supplied flat sand tray + stone/leaf layer. */
.pam-zen{left:64.85cqw!important;top:61.85cqh!important;width:17.2cqw!important;height:37.6cqh!important;overflow:visible!important;z-index:18!important}
.peace-zen-menu-assembly{position:absolute!important;left:0!important;top:0!important;width:15.15cqw!important;height:auto!important;aspect-ratio:1459 / 667!important;pointer-events:none!important;opacity:1!important;transition:opacity .82s ease!important}
.peace-zen-menu-base{position:absolute!important;left:0!important;top:0!important;width:100%!important;height:100%!important;object-fit:contain!important;opacity:1!important;animation:none!important;filter:drop-shadow(0 .43cqh .36cqw rgba(91,70,87,.10))!important}
.peace-zen-menu-decor{position:absolute!important;left:2.15cqw!important;top:-1.25cqh!important;width:5.9cqw!important;height:10.6cqh!important;object-fit:contain!important;opacity:1!important;animation:peaceZenMenuRest 5.4s ease-in-out -.8s infinite!important;transform-origin:50% 80%!important}
.pam-zen .peace-hotspot-ring{left:2.05cqw!important;top:15.75cqh!important;width:5.35cqw!important;height:5.35cqw!important;z-index:8!important}
.pam-zen .peace-action-label{left:-.25cqw!important;top:27.55cqh!important;width:10.0cqw!important;text-align:center!important;line-height:.92!important;z-index:9!important}
.pam-zen::before{content:"";position:absolute;left:-.5cqw;top:-1.5cqh;width:16.2cqw;height:24.5cqh;background:transparent;pointer-events:auto}
.peace-zen-menu-assembly.is-visitor-hidden{opacity:0!important}
@keyframes peaceZenMenuRest{0%,100%{transform:translate3d(0,0,0) rotate(-.15deg)}50%{transform:translate3d(.08cqw,-.20cqh,0) rotate(.18deg)}}

/* FIRE: smaller and lower, matching the supplied composition. */
.pam-fire{left:81.05cqw!important;top:60.25cqh!important;width:18.2cqw!important;height:39.2cqh!important;z-index:18!important}
.pam-fire .peace-fire-menu-frame{left:0!important;top:0!important;width:14.65cqw!important;max-width:none!important;height:auto!important;object-fit:contain!important}
.pam-fire .peace-fire-menu-shadow{left:-.20cqw!important;top:30.60cqh!important;width:15.1cqw!important;height:auto!important}
.pam-fire .peace-hotspot-ring{left:8.45cqw!important;top:1.45cqh!important;width:7.15cqw!important;height:7.15cqw!important}
.pam-fire .peace-action-label{left:7.15cqw!important;top:-2.15cqh!important;width:9.6cqw!important;text-align:center!important;white-space:nowrap!important}
.pam-fire::before{left:-.8cqw!important;top:-1.2cqh!important;width:16.2cqw!important;height:39.8cqh!important}

/* GLASS BELL: restore the authored hanging size/position from 22-peace-03. */
.pam-bell{left:78.65cqw!important;top:0!important;width:20.8cqw!important;height:48cqh!important;z-index:18!important}
.pam-bell .peace-bell-menu-assembly{left:0!important;top:0!important;width:16.75cqw!important;height:45.0cqh!important}
.pam-bell .peace-bell-menu-outer{left:50%!important;top:0!important;height:45.0cqh!important;width:auto!important;translate:-50% 0!important}
.pam-bell .peace-bell-menu-inner{left:calc(50% + 5px)!important;top:26.2cqh!important;height:17.1cqh!important;width:auto!important;translate:-50% 0!important}
.pam-bell .peace-hotspot-ring{left:12.45cqw!important;top:13.40cqh!important;width:5.35cqw!important;height:5.35cqw!important}
.pam-bell .peace-action-label{left:11.35cqw!important;top:7.05cqh!important;width:8.7cqw!important;text-align:center!important;line-height:.92!important}
.pam-bell::before{left:-.3cqw!important;top:0!important;width:17.6cqw!important;height:45.5cqh!important}

/* All main menu labels retain CATPUF's supplied type treatment. */
.peace-action-map .peace-action-label{font-size:2.65cqh!important;letter-spacing:-.018em!important;text-shadow:0 .16cqh .16cqw rgba(76,66,93,.32)!important}
html[lang="tr"] .peace-action-map .peace-action-label,
html[lang="es"] .peace-action-map .peace-action-label,
html[lang="fr"] .peace-action-map .peace-action-label,
html[lang="it"] .peace-action-map .peace-action-label{font-size:2.30cqh!important}
html[lang="ja"] .peace-action-map .peace-action-label{font-size:2.35cqh!important;line-height:1.02!important}

/* --------------------------------------------------------------------------
   SNOW GLOBE detail - supplied empty globe + real-time snow physics.
   -------------------------------------------------------------------------- */
.peace-snowglobe-scene{position:absolute;z-index:20;inset:0;pointer-events:none;overflow:visible}
.peace-snowglobe-focus{
  position:absolute;z-index:22;left:50%;top:6.7cqh;width:43.0cqw;height:auto;aspect-ratio:911 / 966;translate:-50% 0;
  padding:0;border:0;background:transparent;cursor:pointer;pointer-events:auto;touch-action:manipulation;
  transform-origin:50% 76%;filter:drop-shadow(0 1.0cqh .72cqw rgba(78,67,108,.11));will-change:transform
}
.peace-snowglobe-art{position:absolute;z-index:2;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}
.peace-snowglobe-canvas{position:absolute;z-index:1;inset:0;width:100%;height:100%;display:block;pointer-events:none;opacity:1}
.peace-snowglobe-focus:hover,.peace-snowglobe-focus:focus-visible{filter:brightness(1.018) drop-shadow(0 1.08cqh .78cqw rgba(78,67,108,.13));outline:none}
.peace-snowglobe-focus.is-shaking{animation:peaceSnowGlobeShake 1.70s cubic-bezier(.34,.03,.22,1) both}
@keyframes peaceSnowGlobeShake{
  0%,100%{transform:translate3d(0,0,0) rotate(0)}
  8%{transform:translate3d(-.85cqw,.12cqh,0) rotate(-2.2deg)}
  17%{transform:translate3d(.95cqw,-.18cqh,0) rotate(2.5deg)}
  27%{transform:translate3d(-.72cqw,.12cqh,0) rotate(-1.7deg)}
  38%{transform:translate3d(.68cqw,-.10cqh,0) rotate(1.5deg)}
  51%{transform:translate3d(-.48cqw,.08cqh,0) rotate(-1.0deg)}
  66%{transform:translate3d(.32cqw,-.05cqh,0) rotate(.65deg)}
  82%{transform:translate3d(-.14cqw,.02cqh,0) rotate(-.28deg)}
}

/* --------------------------------------------------------------------------
   ZEN GARDEN detail - supplied tray with a tactile, clipped sand canvas.
   -------------------------------------------------------------------------- */
.peace-zen-scene{position:absolute;z-index:20;inset:0;pointer-events:none;overflow:visible}
.peace-zen-focus{
  position:absolute;z-index:22;left:50%;top:18.0cqh;width:54.0cqw;height:auto;aspect-ratio:1459 / 667;translate:-50% 0;
  pointer-events:auto;touch-action:none;user-select:none;cursor:crosshair;filter:drop-shadow(0 1.10cqh .80cqw rgba(87,66,77,.11));overflow:visible
}
.peace-zen-base{position:absolute;z-index:1;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}
.peace-zen-canvas{position:absolute;z-index:2;inset:0;width:100%;height:100%;display:block;pointer-events:none;user-select:none}
.peace-zen-decor{position:absolute;z-index:4;left:11.5%;top:-1.0%;width:34.0%;height:48.0%;object-fit:contain;object-position:left top;pointer-events:none;user-select:none;filter:drop-shadow(0 .30cqh .24cqw rgba(67,55,55,.09))}
.peace-zen-cleaner{
  position:absolute;z-index:3;left:19%;top:22%;width:63%;height:42%;opacity:0;pointer-events:none;border-radius:50%;
  background:linear-gradient(90deg,transparent 0%,rgba(255,244,224,.10) 28%,rgba(255,248,231,.62) 50%,rgba(215,172,125,.13) 68%,transparent 100%);
  filter:blur(.48cqw);transform:translate3d(-58%,0,0) rotate(-2deg)
}
.peace-zen-cleaner.is-cleaning{animation:peaceZenCleanSweep 1.45s cubic-bezier(.18,.72,.22,1) both}
@keyframes peaceZenCleanSweep{
  0%{opacity:0;transform:translate3d(-58%,0,0) rotate(-2deg)}
  16%{opacity:.72}
  74%{opacity:.58}
  100%{opacity:0;transform:translate3d(76%,0,0) rotate(1deg)}
}

@media(max-width:1000px) and (orientation:landscape){
  .pam-water{left:7.10cqw!important;top:61.25cqh!important}
  .pam-snowglobe{left:22.45cqw!important;top:56.85cqh!important}
  .pam-zen{left:64.55cqw!important;top:61.45cqh!important}
  .pam-fire{left:80.70cqw!important;top:59.85cqh!important}
  .pam-bell{left:78.25cqw!important}
  .peace-snowglobe-focus{width:44.0cqw;height:auto;aspect-ratio:911 / 966;top:6.0cqh}
  .peace-zen-focus{width:55.0cqw;height:auto;aspect-ratio:1459 / 667;top:17.2cqh}
}

@media(prefers-reduced-motion:reduce){
  .peace-snowglobe-focus.is-shaking{animation:peaceSnowGlobeShakeReduced .75s ease both}
  .pam-snowglobe .peace-snowglobe-menu,.peace-zen-menu-decor{animation:none!important}
}
@keyframes peaceSnowGlobeShakeReduced{0%,100%{transform:none}50%{transform:translate3d(.24cqw,0,0) rotate(.35deg)}}


/* ==========================================================================
   V55 - SNOW GLOBE / ZEN GARDEN proportion + interaction correction
   2026-08-23
   ========================================================================== */

/* Main Peace menu: keep the supplied PNGs at their authored proportions and
   place the artwork to match 22-peace-03 without moving the existing rings. */
.pam-snowglobe .peace-snowglobe-menu{
  left:-1.74cqw!important;
  top:-.66cqh!important;
  width:13.98cqw!important;
  height:auto!important;
  aspect-ratio:auto!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
}
.pam-snowglobe::before{
  left:-1.95cqw!important;
  top:-1.0cqh!important;
  width:14.75cqw!important;
  height:27.0cqh!important;
}

.peace-zen-menu-assembly{
  left:-4.17cqw!important;
  top:4.72cqh!important;
  width:22.10cqw!important;
  height:10.11cqw!important;
  aspect-ratio:auto!important;
}
.peace-zen-menu-base{
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
}
.peace-zen-menu-decor{
  left:5.10cqw!important;
  top:-2.68cqh!important;
  width:9.30cqw!important;
  height:auto!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
}
.pam-zen::before{
  left:-4.45cqw!important;
  top:4.15cqh!important;
  width:22.75cqw!important;
  height:20.8cqh!important;
}

/* Detail screens: these values come directly from the supplied 1920x1080
   reference compositions.  Height is derived from the original PNG ratio;
   no stretching / squeezing is permitted. */
.peace-snowglobe-focus{
  left:50%!important;
  top:7.25cqh!important;
  width:47.45cqw!important;
  height:50.31cqw!important;
  aspect-ratio:auto!important;
  translate:-50% 0!important;
}
.peace-snowglobe-art{
  inset:auto!important;
  left:0!important;
  top:0!important;
  width:100%!important;
  height:auto!important;
  max-width:none!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
}
.peace-snowglobe-canvas{
  inset:0!important;
  width:100%!important;
  height:100%!important;
}

.peace-zen-focus{
  left:50%!important;
  top:36.61cqh!important;
  width:75.99cqw!important;
  height:34.74cqw!important;
  aspect-ratio:auto!important;
  translate:-50% 0!important;
}
.peace-zen-base{
  inset:auto!important;
  left:0!important;
  top:0!important;
  width:100%!important;
  height:auto!important;
  max-width:none!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
}
.peace-zen-canvas{
  inset:0!important;
  width:100%!important;
  height:100%!important;
}
.peace-zen-decor{
  left:25.57%!important;
  top:-26.69%!important;
  width:32.90%!important;
  height:auto!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:left top!important;
}

/* ==========================================================================
   V58 - YARN + CAT centered hug / in-place love rescue
   2026-08-23
   ========================================================================== */
.cat-yarn-rescue-fx.yarn-rescue-hold{
  translate:-50% -50%!important;
  transform-origin:50% 50%!important;
  filter:drop-shadow(0 .28cqh .28cqw rgba(93,55,74,.18))!important;
  overflow:visible!important;
  contain:layout style;
}
.cat-yarn-rescue-fx.yarn-rescue-hold .yarn-rescue-cat{
  z-index:2!important;
  left:50%!important;
  top:50%!important;
  width:100%!important;
  height:100%!important;
  translate:-50% -50%!important;
  object-fit:contain!important;
  transform-origin:50% 62%!important;
}
.cat-yarn-rescue-fx.yarn-rescue-hold .yarn-rescue-ball{
  z-index:3!important;
  left:50%!important;
  top:63.5%!important;
  width:45%!important;
  height:45%!important;
  translate:-50% -50%!important;
  object-fit:contain!important;
  transform-origin:50% 50%!important;
  filter:drop-shadow(0 .10cqh .10cqw rgba(89,58,75,.14));
}
.cat-yarn-rescue-fx.yarn-rescue-hold.spinning{
  will-change:transform,opacity!important;
}
.cat-yarn-rescue-fx.yarn-rescue-hold.spinning .yarn-rescue-ball{
  filter:drop-shadow(0 .08cqh .08cqw rgba(89,58,75,.12));
}
.yarn-love-heart-fx{
  position:absolute!important;
  z-index:96!important;
  height:auto!important;
  pointer-events:none!important;
  object-fit:contain!important;
  transform-origin:50% 50%!important;
  filter:drop-shadow(0 .16cqh .18cqw rgba(206,93,132,.22));
  will-change:transform,opacity;
}


/* ==========================================================================
   V59 - SINGLE MEHMET GUIDE
   The removed alternate guide is no longer part of gameplay or help.
   ========================================================================== */
.help-mentor-pair>img{
  width:100%!important;height:94%!important;object-fit:contain!important;object-position:center bottom!important;
}


/* ==========================================================================
   V60 - Mentor confirmation button localization typography
   2026-08-23
   ========================================================================== */
/* Mentor confirmation buttons use Catpuf in Latin-script locales.
   Japanese uses a native Japanese UI stack so the localized glyphs render
   cleanly while preserving the same authored weight and button geometry. */
html:not([lang="ja"]) .remember-ok{
  font-family:Catpuf,sans-serif!important;
  font-weight:900!important;
}
html[lang="ja"] .remember-ok{
  font-family:"Hiragino Kaku Gothic ProN","Yu Gothic","YuGothic",Meiryo,sans-serif!important;
  font-weight:900!important;
  text-transform:none!important;
}

/* ========================================================================== 
   V62 - PEACE HOME BIRD FAMILIES / 28-peacehome + 27-birds-01..07
   2026-08-23
   Seven supplied bird families occupy the authored home slots in random order.
   Birds keep their original PNG aspect ratio and breathe in place. Hovering a
   home bird opens its matching five-bird family while CATPUF + lotus stay put.
   ========================================================================== */
.peace-home-birds{
  position:absolute!important;z-index:36!important;inset:0!important;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .62s ease,visibility .62s ease;
}
.peace-home-birds.is-visible{opacity:1;visibility:visible}
.peace-home-bird{
  position:absolute!important;display:block!important;width:var(--bird-w)!important;height:auto!important;aspect-ratio:auto!important;
  padding:0!important;border:0!important;background:transparent!important;overflow:visible!important;
  pointer-events:auto!important;cursor:pointer!important;touch-action:manipulation!important;outline:none!important;
  translate:-50% -50%;transform-origin:50% 78%;transition:transform .28s cubic-bezier(.2,.82,.2,1),filter .28s ease,opacity .48s ease!important;
}
.peace-home-bird>img{
  position:static!important;display:block!important;width:100%!important;height:auto!important;max-width:none!important;max-height:none!important;
  object-fit:contain!important;object-position:center bottom!important;pointer-events:none!important;
  transform-origin:50% 80%!important;animation:peaceBirdBreath 4.35s ease-in-out var(--bird-delay,0s) infinite!important;
  filter:drop-shadow(0 .34cqh .28cqw rgba(75,61,86,.12));
}
.peace-home-bird:hover,.peace-home-bird:focus-visible{transform:scale(1.055);filter:brightness(1.045)}
.peace-home-bird:active{transform:scale(.975)}

/* Seven exact landing zones read from 28-peacehome.png. Series are shuffled
   between these positions; only the supplied bird artwork changes. */
.peace-home-bird.phb1{left:18.41cqw!important;top:64.49cqh!important}
.peace-home-bird.phb2{left:20.29cqw!important;top:89.31cqh!important}
.peace-home-bird.phb3{left:37.55cqw!important;top:78.84cqh!important}
.peace-home-bird.phb4{left:43.93cqw!important;top:88.56cqh!important}
.peace-home-bird.phb5{left:61.61cqw!important;top:78.94cqh!important}
.peace-home-bird.phb6{left:74.92cqw!important;top:88.38cqh!important}
.peace-home-bird.phb7{left:79.11cqw!important;top:53.24cqh!important}

/* Entering a bird family fades only the menu layer and the seven home birds.
   The persistent CATPUF, lotus, sky and ambient bubbles remain untouched. */
.peace-scene-main.is-bird-detail .peace-action-map{
  opacity:0!important;visibility:hidden!important;pointer-events:none!important;
  transition:opacity .52s ease,visibility .52s ease!important;
}
.peace-scene-main.is-bird-detail .peace-home-birds{
  opacity:0!important;visibility:hidden!important;pointer-events:none!important;
}
.peace-theme-toggle.is-bird-detail-hidden{
  opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:translate3d(0,-.5cqh,0) scale(.94)!important;
}

.peace-bird-detail{
  position:absolute!important;z-index:38!important;inset:0!important;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .58s ease,visibility .58s ease;
}
.peace-bird-detail.is-visible{opacity:1;visibility:visible}
.peace-bird-detail.is-leaving{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
.peace-detail-bird{
  position:absolute!important;display:block!important;width:var(--detail-w)!important;height:auto!important;
  padding:0!important;border:0!important;background:transparent!important;overflow:visible!important;
  opacity:0;pointer-events:none!important;cursor:pointer!important;touch-action:manipulation!important;outline:none!important;
  translate:-50% -50%;transform:translate3d(0,1.25cqh,0) scale(.94);transform-origin:50% 80%;
  transition:opacity .46s ease var(--bird-detail-delay,0s),transform .58s cubic-bezier(.18,.78,.18,1) var(--bird-detail-delay,0s),filter .25s ease!important;
}
.peace-bird-detail.is-visible .peace-detail-bird{opacity:1;pointer-events:auto!important;transform:translate3d(0,0,0) scale(1)}
.peace-detail-bird>img{
  position:static!important;display:block!important;width:100%!important;height:auto!important;max-width:none!important;max-height:none!important;
  object-fit:contain!important;object-position:center bottom!important;pointer-events:none!important;
  transform-origin:50% 80%!important;animation:peaceBirdBreath 4.5s ease-in-out calc(var(--bird-detail-delay,0s) - 1.1s) infinite!important;
  filter:drop-shadow(0 .38cqh .30cqw rgba(75,61,86,.12));
}
.peace-detail-bird:hover,.peace-detail-bird:focus-visible{filter:brightness(1.045)}
.peace-detail-bird.is-chirping{animation:peaceBirdChirp .48s cubic-bezier(.2,.82,.2,1)}

/* Five family positions are locked to the supplied 27-birds layouts. PNG
   heights remain automatic so no bird can ever be stretched or squashed. */
.peace-detail-bird.pdb1,.peace-detail-bird.pdb2,.peace-detail-bird.pdb3,.peace-detail-bird.pdb4,.peace-detail-bird.pdb5{left:var(--detail-x)!important;top:var(--detail-y)!important}

@keyframes peaceBirdBreath{
  0%,100%{transform:translate3d(0,0,0) scale(1)}
  48%{transform:translate3d(0,-.20cqh,0) scale(1.018,1.028)}
  72%{transform:translate3d(0,-.06cqh,0) scale(1.008,1.012)}
}
@keyframes peaceBirdChirp{
  0%,100%{transform:translate3d(0,0,0) scale(1)}
  38%{transform:translate3d(0,-.48cqh,0) scale(1.045)}
  68%{transform:translate3d(0,.08cqh,0) scale(.992)}
}

@media(max-width:1000px) and (orientation:landscape){
  .peace-home-bird>img,.peace-detail-bird>img{filter:none!important}
}
@media(prefers-reduced-motion:reduce){
  .peace-home-bird>img,.peace-detail-bird>img{animation:none!important}
  .peace-detail-bird{transform:none!important}
}


/* ==========================================================================
   V63 - PEACE HOME BIRD CLICK / LANDING-POINT POLISH
   Home birds sit on the exact authored surfaces from 28-peacehome. Coordinates
   are foot/contact anchors, so random family silhouettes never float in air.
   Family navigation is click-only; rollover remains a chirp interaction.
   ========================================================================== */
.peace-home-bird{
  translate:-50% -100%!important;
}
.peace-home-bird.phb1{left:18.26cqw!important;top:72.50cqh!important}
.peace-home-bird.phb2{left:20.29cqw!important;top:94.94cqh!important}
.peace-home-bird.phb3{left:37.55cqw!important;top:86.29cqh!important}
.peace-home-bird.phb4{left:43.87cqw!important;top:94.90cqh!important}
.peace-home-bird.phb5{left:62.94cqw!important;top:93.29cqh!important}
.peace-home-bird.phb6{left:76.22cqw!important;top:96.49cqh!important}
.peace-home-bird.phb7{left:80.07cqw!important;top:68.16cqh!important}


/* ========================================================================== 
   V64 - PUFLINGS
   Puflings are matchable soft bodies: same tactile/fall elasticity as pillows,
   but their own artwork and board identity. Matching them creates one bomb per
   matched square, so their source art stays visually soft while gameplay reward
   remains unmistakably special.
   ========================================================================== */
.game-cell.kind-pufling .cell-art{
  width:5.86cqw!important;height:10.63cqh!important;object-fit:contain!important;
  transition:scale .105s cubic-bezier(.2,.8,.2,1),filter .12s!important;
  transform-origin:50% 55%!important;
}
.game-cell.kind-pufling.pressed:not(.dragging) .cell-art{
  scale:.89 .86!important;filter:brightness(1.04) saturate(1.03)!important;
}
.game-cell.kind-pufling.selected:not(.pressed) .cell-art{
  transform:none!important;scale:1.035!important;
}

/* ========================================================================== 
   V65 - GAME BIRD LOVE CHARACTER + HELP
   Three BIRDs per level behave like soft draggable plush pieces. Their love
   choreography is rendered in the detached FX layer, then seven spread pillows
   bloom into bombs without changing the authored grid geometry.
   ========================================================================== */
.game-cell.kind-bird .cell-art{
  width:5.86cqw!important;height:10.63cqh!important;object-fit:contain!important;
  transition:scale .105s cubic-bezier(.2,.8,.2,1),filter .12s!important;
  transform-origin:50% 55%!important;
}
.game-cell.kind-bird.pressed:not(.dragging) .cell-art{
  scale:.89 .86!important;filter:brightness(1.04) saturate(1.04)!important;
}
.game-cell.kind-bird.selected:not(.pressed) .cell-art{
  transform:none!important;scale:1.045!important;filter:brightness(1.035) saturate(1.04)!important;
}
.bird-love-avatar,.bird-love-heart,.bird-bomb-seed-heart{
  position:absolute!important;z-index:185!important;pointer-events:none!important;user-select:none!important;
  transform:translate3d(-50%,-50%,0);transform-origin:50% 50%;object-fit:contain!important;
  will-change:transform,opacity;
}
.bird-love-avatar{filter:drop-shadow(0 .32cqh .22cqh rgb(70 30 52 / .10))}
.bird-love-heart{z-index:190!important;filter:drop-shadow(0 .35cqh .30cqh rgb(195 62 106 / .20))}
.bird-bomb-seed-heart{z-index:188!important;filter:drop-shadow(0 .18cqh .18cqh rgb(195 62 106 / .16))}
.game-cell.special-bomb.bird-love-bomb-born .cell-art{
  animation:birdLoveBombBorn .72s cubic-bezier(.16,.88,.2,1) both!important;
  transform-origin:50% 55%!important;
}
@keyframes birdLoveBombBorn{
  0%{opacity:.04;transform:scale(.10) rotate(-8deg);filter:brightness(1.42) saturate(1.18)}
  36%{opacity:1;transform:scale(1.20) rotate(4deg);filter:brightness(1.16) saturate(1.10)}
  68%{transform:scale(.94) rotate(-2deg);filter:brightness(1.05) saturate(1.05)}
  100%{opacity:1;transform:scale(1) rotate(0);filter:none}
}

/* New localized HELP page: PUFLINGS + BIRD stay in the same reference carousel
   language as the rest of HELP instead of opening a separate modal. */
.help-new-screen .help-slide-10.help-puf-bird-slide .help-puflings-new,
.help-new-screen .help-slide-10.help-puf-bird-slide .help-bird-new{
  position:absolute!important;top:2.5%!important;width:41%!important;height:55cqh!important;
  display:block!important;text-align:center!important;
}
.help-new-screen .help-slide-10.help-puf-bird-slide .help-puflings-new{left:5.5%!important}
.help-new-screen .help-slide-10.help-puf-bird-slide .help-bird-new{right:4.0%!important;left:auto!important}
.help-new-screen .help-slide-10.help-puf-bird-slide .help-ref-art{
  position:relative!important;left:auto!important;top:auto!important;width:100%!important;height:29cqh!important;
  display:grid!important;place-items:center!important;
}
.help-new-screen .help-slide-10.help-puf-bird-slide .help-ref-art>img{
  max-width:21cqw!important;max-height:28.5cqh!important;object-fit:contain!important;
}
.help-new-screen .help-slide-10.help-puf-bird-slide .help-ref-copy{
  position:relative!important;left:auto!important;top:auto!important;width:100%!important;margin-top:1.1cqh!important;
}
.help-new-screen .help-slide-10.help-puf-bird-slide .help-ref-copy h3{
  font-size:calc(2.65cqh * var(--ref-type-scale,1))!important;line-height:1!important;margin:0 0 .8cqh!important;
}
.help-new-screen .help-slide-10.help-puf-bird-slide .help-ref-copy p{
  max-width:31cqw!important;margin:0 auto!important;font-size:calc(1.22cqh * var(--ref-type-scale,1))!important;line-height:1.16!important;
}
html[lang="ja"] .help-new-screen .help-slide-10.help-puf-bird-slide .help-ref-copy p{
  font-size:calc(1.17cqh * var(--ref-type-scale,1))!important;line-height:1.22!important;
}
@media (prefers-reduced-motion:reduce){
  .game-cell.special-bomb.bird-love-bomb-born .cell-art{animation-duration:.18s!important}
}


/* ==========================================================================
   V68 - DOG BOARD CHARACTER
   One dog lives in every level. All five authored poses stay resident so the
   2.0s base -> 0.5s random alt loop never swaps a texture mid-drag. The whole
   stack owns breathing, drag and swap transforms exactly like the chicken.
   ========================================================================== */
.game-cell:is(.kind-dog,.kind-duck,.kind-lion,.kind-rabbit,.kind-panda,.kind-deer){cursor:pointer!important;overflow:visible!important;z-index:31!important}
.dog-motion-stack{
  position:absolute;inset:0;z-index:37;display:grid;place-items:center;pointer-events:none;overflow:visible;
  transform-origin:50% 72%;animation:dogBoardBreath 3.05s cubic-bezier(.42,0,.24,1) infinite;
}
.dog-motion-stack>.cell-art,.dog-alt-art{
  position:absolute;left:0;right:0;top:0;bottom:0;margin:auto;width:6.18cqw!important;height:11.23cqh!important;
  max-width:none!important;max-height:none!important;object-fit:contain!important;transform-origin:50% 72%!important;
  backface-visibility:hidden;-webkit-backface-visibility:hidden;
}
.dog-motion-stack>.dog-base-art{z-index:2;opacity:1;transition:none!important}
.dog-alt-art{z-index:3;opacity:0;transform:translate3d(0,.10cqh,0) scale(.985);transition:opacity .07s linear!important}
.dog-alt-art.dog-alt-live{opacity:1;animation:dogAltBeat .5s cubic-bezier(.18,.84,.2,1) both!important}
.game-cell:is(.kind-dog,.kind-duck,.kind-lion,.kind-rabbit,.kind-panda,.kind-deer).dog-barking .dog-motion-stack{animation:dogBarkBeat .52s cubic-bezier(.16,.88,.2,1) both!important}
.game-cell:is(.kind-dog,.kind-duck,.kind-lion,.kind-rabbit,.kind-panda,.kind-deer).dog-bop .dog-motion-stack{animation:dogTapBop .42s cubic-bezier(.16,.86,.2,1) both!important}
.game-cell.kind-cat.cat-dog-flee-land .cell-art{animation:catDogFleeLand .38s cubic-bezier(.16,.86,.2,1) both!important}
@keyframes dogBoardBreath{
  0%,100%{transform:translate3d(0,0,0) scale(1,1) rotate(-.16deg)}
  50%{transform:translate3d(0,-.10cqh,0) scale(1.018,.985) rotate(.18deg)}
}
@keyframes dogAltBeat{
  0%{transform:translate3d(0,.10cqh,0) scale(.985) rotate(-.8deg)}
  34%{transform:translate3d(0,-.14cqh,0) scale(1.026,.978) rotate(.65deg)}
  72%{transform:translate3d(0,0,0) scale(.995,1.014) rotate(-.22deg)}
  100%{transform:translate3d(0,0,0) scale(1) rotate(0)}
}
@keyframes dogBarkBeat{
  0%,100%{transform:translate3d(0,0,0) scale(1) rotate(0)}
  22%{transform:translate3d(0,-.34cqh,0) scale(1.075,.94) rotate(-2.8deg)}
  46%{transform:translate3d(.12cqw,.06cqh,0) scale(.965,1.05) rotate(2.5deg)}
  72%{transform:translate3d(-.08cqw,-.08cqh,0) scale(1.025,.985) rotate(-1deg)}
}
@keyframes dogTapBop{0%,100%{transform:scale(1)}45%{transform:translate3d(0,-.18cqh,0) scale(1.035,.975)}72%{transform:scale(.99,1.018)}}
@keyframes catDogFleeLand{0%{transform:scale(.92,.98) rotate(-2deg)}48%{transform:scale(1.055,.955) rotate(1.2deg)}100%{transform:scale(1) rotate(0)}}

.game-cell:is(.kind-dog,.kind-duck,.kind-lion,.kind-rabbit,.kind-panda,.kind-deer).dragging .dog-motion-stack{
  animation:none!important;transition:none!important;transform:translate3d(var(--drag-x),var(--drag-y),0) scale(1.035)!important;will-change:transform!important;
}
.game-cell:is(.kind-dog,.kind-duck,.kind-lion,.kind-rabbit,.kind-panda,.kind-deer).swap-preview .dog-motion-stack{
  animation:none!important;transition:transform .04s linear!important;transform:translate3d(var(--preview-x),var(--preview-y),0)!important;will-change:transform!important;
}
.game-cell:is(.kind-dog,.kind-duck,.kind-lion,.kind-rabbit,.kind-panda,.kind-deer).swap-motion-live .dog-motion-stack{animation:none!important;will-change:transform!important}
.game-cell:is(.kind-dog,.kind-duck,.kind-lion,.kind-rabbit,.kind-panda,.kind-deer).dragging .dog-motion-stack>.cell-art,
.game-cell:is(.kind-dog,.kind-duck,.kind-lion,.kind-rabbit,.kind-panda,.kind-deer).swap-preview .dog-motion-stack>.cell-art,
.game-cell:is(.kind-dog,.kind-duck,.kind-lion,.kind-rabbit,.kind-panda,.kind-deer).swap-motion-live .dog-motion-stack>.cell-art{
  animation:none!important;transform:none!important;translate:none!important;scale:1!important;will-change:auto!important;
}
.game-cell:is(.kind-dog,.kind-duck,.kind-lion,.kind-rabbit,.kind-panda,.kind-deer):not(.dragging):not(.swap-preview):not(.swap-motion-live) .dog-motion-stack{will-change:auto!important}
html.mobile-perf .mobile-game-perf .game-cell:is(.kind-dog,.kind-duck,.kind-lion,.kind-rabbit,.kind-panda,.kind-deer) .dog-motion-stack,
html.mobile-perf .mobile-game-perf .game-cell:is(.kind-dog,.kind-duck,.kind-lion,.kind-rabbit,.kind-panda,.kind-deer) .cell-art{filter:none!important;will-change:auto!important}
@media(prefers-reduced-motion:reduce){
  .dog-motion-stack{animation:none!important}
  .dog-alt-art.dog-alt-live{animation:none!important}
}

/* DOG HELP — keep the new character readable in the same reference carousel. */
.help-dog-slide .help-dog-new .help-ref-art img{width:10.8cqw!important;height:19.7cqh!important;object-fit:contain!important}

/* DOG HELP — a single, readable character page between BIRD/PUFLINGS and tips. */
.help-new-screen .help-slide-11.help-dog-slide .help-dog-new{
  left:7.5%!important;top:2.0%!important;width:84%!important;height:52cqh!important;
  display:grid!important;grid-template-columns:42% 58%!important;align-items:center!important;text-align:center!important;
}
.help-new-screen .help-slide-11.help-dog-slide .help-dog-new .help-ref-art{
  position:relative!important;left:auto!important;top:auto!important;width:100%!important;height:47cqh!important;
  grid-column:1!important;grid-row:1!important;display:grid!important;place-items:center!important;
}
.help-new-screen .help-slide-11.help-dog-slide .help-dog-new .help-ref-art img{
  width:20.5cqw!important;height:39.5cqh!important;max-width:none!important;max-height:none!important;object-fit:contain!important;
}
.help-new-screen .help-slide-11.help-dog-slide .help-dog-new .help-ref-copy{
  position:relative!important;left:auto!important;top:auto!important;width:100%!important;grid-column:2!important;grid-row:1!important;
  padding:0 1.1cqw!important;box-sizing:border-box!important;
}
.help-new-screen .help-slide-11.help-dog-slide .help-dog-new .help-ref-copy h3{
  font-size:calc(3.05cqh * var(--ref-type-scale,1))!important;margin:0 0 1.25cqh!important;
}
.help-new-screen .help-slide-11.help-dog-slide .help-dog-new .help-ref-copy p{
  max-width:35cqw!important;font-size:calc(1.42cqh * var(--ref-type-scale,1))!important;line-height:1.18!important;margin:0 auto!important;
}
html[lang="ja"] .help-new-screen .help-slide-11.help-dog-slide .help-dog-new .help-ref-copy p{
  font-size:calc(1.34cqh * var(--ref-type-scale,1))!important;line-height:1.24!important;
}

/* ==========================================================================
   V69 - OX BOARD CHARACTER
   Passive late-arriving character. okuz1 is always the resident base frame;
   one of okuz2..4 overlays it for exactly 0.5 s, then the base returns.
   ========================================================================== */
.game-cell.kind-ox{cursor:pointer!important;overflow:visible!important;z-index:31!important}
.ox-motion-stack{
  position:absolute;inset:0;z-index:37;display:grid;place-items:center;pointer-events:none;overflow:visible;
  transform-origin:50% 72%;
}
.ox-motion-stack>.cell-art,.ox-alt-art{
  position:absolute;left:0;right:0;top:0;bottom:0;margin:auto;width:6.18cqw!important;height:11.23cqh!important;
  max-width:none!important;max-height:none!important;object-fit:contain!important;transform-origin:50% 72%!important;
  backface-visibility:hidden;-webkit-backface-visibility:hidden;
}
.ox-motion-stack>.ox-base-art{z-index:2;opacity:1;transition:none!important}
.ox-alt-art{z-index:3;opacity:0;transform:translate3d(0,.08cqh,0) scale(.992);transition:opacity .065s linear!important}
.ox-alt-art.ox-alt-live{opacity:1;animation:oxAltBeat .5s cubic-bezier(.18,.84,.2,1) both!important}
.game-cell.kind-ox.ox-bop .ox-motion-stack{animation:oxTapBop .44s cubic-bezier(.16,.88,.2,1) both!important}
@keyframes oxAltBeat{
  0%{transform:translate3d(0,.08cqh,0) scale(.992) rotate(-.35deg)}
  32%{transform:translate3d(0,-.10cqh,0) scale(1.018,.985) rotate(.35deg)}
  72%{transform:translate3d(0,0,0) scale(.997,1.008) rotate(-.12deg)}
  100%{transform:translate3d(0,0,0) scale(1) rotate(0)}
}
@keyframes oxTapBop{
  0%,100%{transform:translate3d(0,0,0) scale(1)}
  42%{transform:translate3d(0,-.18cqh,0) scale(1.035,.972)}
  72%{transform:translate3d(0,.04cqh,0) scale(.992,1.014)}
}
.game-cell.kind-ox.dragging .ox-motion-stack{
  animation:none!important;transition:none!important;transform:translate3d(var(--drag-x),var(--drag-y),0) scale(1.035)!important;will-change:transform!important;
}
.game-cell.kind-ox.swap-preview .ox-motion-stack{
  animation:none!important;transition:transform .04s linear!important;transform:translate3d(var(--preview-x),var(--preview-y),0)!important;will-change:transform!important;
}
.game-cell.kind-ox.swap-motion-live .ox-motion-stack{animation:none!important;will-change:transform!important}
.game-cell.kind-ox.dragging .ox-motion-stack>.cell-art,
.game-cell.kind-ox.swap-preview .ox-motion-stack>.cell-art,
.game-cell.kind-ox.swap-motion-live .ox-motion-stack>.cell-art{
  animation:none!important;transform:none!important;translate:none!important;scale:1!important;will-change:auto!important;
}
.game-cell.kind-ox:not(.dragging):not(.swap-preview):not(.swap-motion-live) .ox-motion-stack{will-change:auto!important}
html.mobile-perf .mobile-game-perf .game-cell.kind-ox .ox-motion-stack,
html.mobile-perf .mobile-game-perf .game-cell.kind-ox .cell-art{filter:none!important;will-change:auto!important}
@media(prefers-reduced-motion:reduce){
  .ox-alt-art.ox-alt-live{animation:none!important}
}


/* ==========================================================================
   FULL BROWSER VIEWPORT V1 — 2026-08-26
   Full-bleed desktop/mobile browser shell without stretching the authored art.
   JS supplies the live VisualViewport dimensions; dvh/svh keep browser chrome,
   rotation and iOS/Android safe-area changes from exposing scrollable gaps.
   ========================================================================== */
html{
  width:100%!important;height:100%!important;min-width:100%!important;min-height:100%!important;
  margin:0!important;padding:0!important;overflow:hidden!important;overscroll-behavior:none!important;
  background:#f7cbd9!important;-webkit-text-size-adjust:100%;text-size-adjust:100%;
}
body{
  position:fixed!important;inset:0!important;width:100%!important;height:100%!important;
  min-width:100%!important;min-height:100%!important;margin:0!important;padding:0!important;
  overflow:hidden!important;overscroll-behavior:none!important;background:#f7cbd9!important;
}
#app{max-width:none!important;max-height:none!important;overscroll-behavior:none!important}
.screen,.game-stage,#orientation-gate,.start-cinematic{overscroll-behavior:none!important}
@supports(height:100dvh){
  html,body{height:100dvh!important;min-height:100dvh!important}
}
@supports(height:100svh){
  @media(max-width:900px){html,body{min-height:100svh!important}}
}
@media(display-mode:fullscreen),(display-mode:standalone){
  html,body{width:100%!important;height:100%!important;min-height:100%!important}
}


/* === 2026-08-27 CREDITS — single creator role, vertically centered ===== */
.credits-new-layout .credit-people{
  top:0!important;
  height:100%!important;
}
.credits-new-layout .credit-person-owner{
  top:50%!important;
  transform:translateY(-50%)!important;
  justify-content:center!important;
}
.credits-new-layout .credit-owner-role{
  width:auto!important;
  min-height:0!important;
  margin:0 0 2.6cqh!important;
  font-size:2.35cqh!important;
  line-height:1!important;
  letter-spacing:-.025em!important;
  white-space:nowrap!important;
}
html[lang="ja"] .credits-new-layout .credit-owner-role{
  font-size:2.12cqh!important;
  letter-spacing:0!important;
}
@media (max-aspect-ratio:1.45/1){
  .credits-new-layout .credit-person-owner{top:50%!important;transform:translateY(-50%)!important}
  .credits-new-layout .credit-owner-role{font-size:2.05cqh!important;margin-bottom:2.1cqh!important}
  html[lang="ja"] .credits-new-layout .credit-owner-role{font-size:1.9cqh!important}
}


/* === 2026-08-30 CREDITS — center complete right-side people block ===== */
.credits-new-layout .credit-people{
  top:50%!important;
  height:auto!important;
  transform:translateY(-50%)!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  gap:5.8cqh!important;
}
.credits-new-layout .credit-person{
  position:static!important;
  left:auto!important;
  top:auto!important;
  width:100%!important;
  transform:none!important;
}
.credits-new-layout .credit-person-psych,
.credits-new-layout .credit-person-owner{
  top:auto!important;
  transform:none!important;
}
@media (max-aspect-ratio:1.45/1){
  .credits-new-layout .credit-people{
    top:50%!important;
    height:auto!important;
    transform:translateY(-50%)!important;
    gap:4.4cqh!important;
  }
  .credits-new-layout .credit-person-psych,
  .credits-new-layout .credit-person-owner{
    top:auto!important;
    transform:none!important;
  }
}


/* ========================================================================== 
   V77 — HOME OX PORTAL / 2026-08-30
   OX gets a chicken-sized HOME portal,
   a matching reference card, and its own HELP page. Both animal icons stay
   fully contained inside their bubbles on desktop and mobile.
   ========================================================================== */
@media (orientation:landscape){
  .bubble-home-screen .home-bubble-card.home-bubble-chicken,
  .bubble-home-screen .home-bubble-card.home-bubble-ox{
    top:66.8cqh!important;
    width:7.45cqw!important;height:13.25cqh!important;
    min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;
    z-index:32!important;overflow:visible!important;contain:none!important;
  }
  .bubble-home-screen .home-bubble-card.home-bubble-ox{
    left:63.05cqw!important;right:auto!important;
    --bubble-drift-x:-.12cqw;--bubble-drift-y:1.04cqh;--bubble-scale-lo:.988;--bubble-scale-hi:1.024;
  }
  .bubble-home-screen .home-bubble-card.home-bubble-chicken{left:70.6cqw!important;right:auto!important}
  .bubble-home-screen .home-bubble-card.home-bubble-chicken .bubble-visual,
  .bubble-home-screen .home-bubble-card.home-bubble-ox .bubble-visual{
    width:100%!important;height:100%!important;overflow:visible!important;contain:none!important;
  }
  .bubble-home-screen .home-bubble-card.home-bubble-chicken .home-chicken-icon,
  .bubble-home-screen .home-bubble-card.home-bubble-ox .home-ox-icon{
    left:50%!important;top:50%!important;width:62%!important;height:64%!important;
    max-width:62%!important;max-height:64%!important;object-fit:contain!important;overflow:visible!important;
  }
  .bubble-home-screen .home-bubble-card.home-bubble-chicken:hover .bubble-visual,
  .bubble-home-screen .home-bubble-card.home-bubble-chicken:focus-visible .bubble-visual,
  .bubble-home-screen .home-bubble-card.home-bubble-ox:hover .bubble-visual,
  .bubble-home-screen .home-bubble-card.home-bubble-ox:focus-visible .bubble-visual{scale:1.035!important}
}
@media(max-width:900px) and (orientation:portrait){
  .bubble-home-screen .home-bubble-card.home-bubble-chicken,
  .bubble-home-screen .home-bubble-card.home-bubble-ox{
    top:83.0cqh!important;width:9.3cqw!important;height:9.3cqw!important;
    min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;
  }
  .bubble-home-screen .home-bubble-card.home-bubble-chicken{left:86.3cqw!important}
  .bubble-home-screen .home-bubble-card.home-bubble-ox{left:75.9cqw!important}
  .bubble-home-screen .home-bubble-card.home-bubble-chicken .home-chicken-icon,
  .bubble-home-screen .home-bubble-card.home-bubble-ox .home-ox-icon{
    left:50%!important;top:50%!important;width:62%!important;height:64%!important;
    max-width:62%!important;max-height:64%!important;object-fit:contain!important;
  }
}

/* OX HOME info uses the proven chicken reference-card geometry, minus the eggs. */
.ox-info-screen .ox-info-bubble{
  left:1.5%!important;top:10.5%!important;width:42.5%!important;aspect-ratio:601/593!important;
}
.ox-info-screen .ox-info-bubble .ox-info-ox{
  left:50%!important;top:50.5%!important;width:70%!important;height:72%!important;
  max-width:70%!important;max-height:72%!important;object-fit:contain!important;
  filter:drop-shadow(0 .28cqh .22cqw rgba(96,70,94,.10));
}
.ox-info-screen .ox-info-copy{top:12.5%!important;height:75%!important}
.ox-info-screen .ox-info-copy h1{margin-bottom:3.7cqh!important;font-size:7.55cqh!important}
.ox-info-screen .ox-info-copy p{font-size:3.02cqh!important;line-height:1.16!important}
.ox-info-screen .ox-info-ok{margin-top:4.25cqh!important}
html[lang="es"] .ox-info-screen .ox-info-copy p,
html[lang="fr"] .ox-info-screen .ox-info-copy p,
html[lang="it"] .ox-info-screen .ox-info-copy p{font-size:2.72cqh!important;line-height:1.15!important}
html[lang="ja"] .ox-info-screen .ox-info-copy h1{font-size:6.45cqh!important;letter-spacing:0!important}
html[lang="ja"] .ox-info-screen .ox-info-copy p{font-size:2.58cqh!important;line-height:1.24!important;text-transform:none!important;letter-spacing:0!important}
@media(max-width:900px) and (orientation:landscape){
  .ox-info-screen .ox-info-copy p{font-size:2.72cqh!important}
  html[lang="es"] .ox-info-screen .ox-info-copy p,
  html[lang="fr"] .ox-info-screen .ox-info-copy p,
  html[lang="it"] .ox-info-screen .ox-info-copy p{font-size:2.48cqh!important}
  html[lang="ja"] .ox-info-screen .ox-info-copy p{font-size:2.38cqh!important}
}

/* HELP — OX gets a single clean page, matching the DOG reference layout. */
.help-new-screen .help-slide-ox.help-ox-slide .help-ox-new{
  left:7.5%!important;top:2.0%!important;width:84%!important;height:52cqh!important;
  display:grid!important;grid-template-columns:42% 58%!important;align-items:center!important;text-align:center!important;
}
.help-new-screen .help-slide-ox.help-ox-slide .help-ox-new .help-ref-art{
  position:relative!important;left:auto!important;top:auto!important;width:100%!important;height:47cqh!important;
  grid-column:1!important;grid-row:1!important;display:grid!important;place-items:center!important;
}
.help-new-screen .help-slide-ox.help-ox-slide .help-ox-new .help-ref-art img{
  width:20.5cqw!important;height:39.5cqh!important;max-width:none!important;max-height:none!important;object-fit:contain!important;
}
.help-new-screen .help-slide-ox.help-ox-slide .help-ox-new .help-ref-copy{
  position:relative!important;left:auto!important;top:auto!important;width:100%!important;grid-column:2!important;grid-row:1!important;
  padding:0 1.1cqw!important;box-sizing:border-box!important;
}
.help-new-screen .help-slide-ox.help-ox-slide .help-ox-new .help-ref-copy h3{
  font-size:calc(3.05cqh * var(--ref-type-scale,1))!important;margin:0 0 1.25cqh!important;
}
.help-new-screen .help-slide-ox.help-ox-slide .help-ox-new .help-ref-copy p{
  max-width:35cqw!important;font-size:calc(1.38cqh * var(--ref-type-scale,1))!important;line-height:1.18!important;margin:0 auto!important;
}
html[lang="ja"] .help-new-screen .help-slide-ox.help-ox-slide .help-ox-new .help-ref-copy p{
  font-size:calc(1.31cqh * var(--ref-type-scale,1))!important;line-height:1.24!important;
}

/* ========================================================================== 
   V78 - DUCK / LION / DOG CHASE TRIO
   Duck and lion intentionally share the dog's resident-frame motion stack,
   drag/swap transforms and contact beat. Only art + voice change by level.
   ========================================================================== */
.help-new-screen .help-slide-11.help-pet-slide .help-pet-new{
  left:4.5%!important;top:2%!important;width:91%!important;height:52cqh!important;
  display:grid!important;grid-template-columns:48% 52%!important;align-items:center!important;text-align:center!important;
}
.help-new-screen .help-slide-11.help-pet-slide .help-pet-new .help-ref-art{
  position:relative!important;left:auto!important;top:auto!important;width:100%!important;height:46cqh!important;
  grid-column:1!important;grid-row:1!important;display:grid!important;place-items:center!important;
}
.help-pet-trio-art .help-pet-trio{
  width:100%!important;height:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;
  gap:.45cqw!important;overflow:visible!important;
}
.help-pet-trio-art .help-pet-trio img{
  position:relative!important;left:auto!important;top:auto!important;width:12.6cqw!important;height:24cqh!important;
  max-width:none!important;max-height:none!important;object-fit:contain!important;flex:0 0 auto!important;
}
.help-new-screen .help-slide-11.help-pet-slide .help-pet-new .help-ref-copy{
  position:relative!important;left:auto!important;top:auto!important;width:100%!important;grid-column:2!important;grid-row:1!important;
  padding:0 1.2cqw!important;box-sizing:border-box!important;
}
.help-new-screen .help-slide-11.help-pet-slide .help-pet-new .help-ref-copy h3{
  font-size:calc(2.8cqh * var(--ref-type-scale,1))!important;margin:0 0 1.15cqh!important;
}
.help-new-screen .help-slide-11.help-pet-slide .help-pet-new .help-ref-copy p{
  max-width:37cqw!important;font-size:calc(1.28cqh * var(--ref-type-scale,1))!important;line-height:1.18!important;margin:0 auto!important;
}
html[lang="ja"] .help-new-screen .help-slide-11.help-pet-slide .help-pet-new .help-ref-copy p{
  font-size:calc(1.2cqh * var(--ref-type-scale,1))!important;line-height:1.24!important;
}


/* ==========================================================================
   V79 - DUCK VISUAL SCALE
   Duck stays on the shared pet motion/drag stack; only its authored art is
   slightly larger so its board presence stays visually balanced.
   ========================================================================== */
.game-cell.kind-duck .dog-motion-stack>.cell-art,
.game-cell.kind-duck .dog-alt-art{
  width:6.78cqw!important;
  height:12.32cqh!important;
}

/* ==========================================================================
   V81 - HELP PET SIX LAYOUT
   Duck / lion / rabbit / panda / deer / dog share one equal-sized row.
   The shared explanation stays centered beneath the complete six-character set.
   ========================================================================== */
.help-new-screen .help-slide-11.help-pet-slide .help-pet-new{
  left:4.5%!important;
  top:1.5%!important;
  width:91%!important;
  height:54cqh!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-start!important;
  text-align:center!important;
  gap:0!important;
}
.help-new-screen .help-slide-11.help-pet-slide .help-pet-new .help-ref-art{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  width:100%!important;
  height:27cqh!important;
  min-height:27cqh!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
}
.help-new-screen .help-slide-11.help-pet-slide .help-pet-trio-art .help-pet-trio{
  width:100%!important;
  height:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:1.15cqw!important;
  overflow:visible!important;
  margin:0 auto!important;
  padding:0!important;
}
.help-new-screen .help-slide-11.help-pet-slide .help-pet-trio-art .help-pet-trio img{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  width:11.6cqw!important;
  height:21.2cqh!important;
  min-width:11.6cqw!important;
  max-width:11.6cqw!important;
  min-height:21.2cqh!important;
  max-height:21.2cqh!important;
  object-fit:contain!important;
  object-position:center!important;
  flex:0 0 11.6cqw!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
}
.help-new-screen .help-slide-11.help-pet-slide .help-pet-new .help-ref-copy{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  width:100%!important;
  max-width:84cqw!important;
  height:auto!important;
  display:block!important;
  margin:.25cqh auto 0!important;
  padding:0 2cqw!important;
  box-sizing:border-box!important;
  text-align:center!important;
}
.help-new-screen .help-slide-11.help-pet-slide .help-pet-new .help-ref-copy h3{
  max-width:82cqw!important;
  margin:0 auto .85cqh!important;
  text-align:center!important;
  font-size:calc(2.25cqh * var(--ref-type-scale,1))!important;
  line-height:1.05!important;
}
.help-new-screen .help-slide-11.help-pet-slide .help-pet-new .help-ref-copy p{
  max-width:82cqw!important;
  margin:0 auto!important;
  text-align:center!important;
  font-size:calc(1.08cqh * var(--ref-type-scale,1))!important;
  line-height:1.18!important;
}
html[lang="ja"] .help-new-screen .help-slide-11.help-pet-slide .help-pet-new .help-ref-copy p{
  max-width:82cqw!important;
  font-size:calc(1.02cqh * var(--ref-type-scale,1))!important;
  line-height:1.22!important;
}

