*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;touch-action:manipulation}body{font-family:'Microsoft YaHei','PingFang SC',sans-serif;background:#163f38;display:flex;justify-content:center;align-items:center}body:before{content:'';position:fixed;inset:-30px;background:linear-gradient(#123e4c70,#173528aa),url('assets/forest-background.png') center/cover;filter:blur(20px);z-index:-1}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;pointer-events:auto}button:focus-visible{outline:4px solid #fff;outline-offset:4px}button:active{filter:brightness(.96);transform:translateY(3px)}button:disabled{filter:grayscale(.75);opacity:.55;cursor:default}[hidden]{display:none!important}#stage{position:relative;isolation:isolate;overflow:hidden;background:#45bbff url('assets/forest-background.png') center/100% 100%;box-shadow:0 0 100px #031b2866}#game{position:absolute;inset:0}canvas{display:block;width:100%!important;height:100%!important}.ui{width:540px;height:960px;position:absolute;left:0;top:0;transform-origin:0 0;pointer-events:none;z-index:2}#play-ui{position:absolute;inset:0}.gear{position:absolute;top:62px;left:18px;font-family:Arial;font-size:48px;line-height:1;color:#e9f1ed;background:transparent;border:0;filter:drop-shadow(0 3px 0 #335065);text-shadow:-2px -2px #335065,2px 2px #335065,2px -2px #335065,-2px 2px #335065}.level-title{position:absolute;top:62px;left:174px;width:192px;text-align:center;border:0;background:none;color:#fff;padding:0;text-shadow:0 4px #174361,3px 0 #174361,-3px 0 #174361,0 -3px #174361;line-height:1.2}.level-title strong{display:block;font-size:34px;font-weight:1000;letter-spacing:1px}.level-title span{display:block;color:#fff493;font-size:20px;margin-top:7px;font-weight:900;text-shadow:2px 2px #1d5957,-2px -2px #1d5957,-2px 2px #1d5957,2px -2px #1d5957}.rescue-progress{position:absolute;left:22px;top:578px;width:60px;text-align:center;filter:drop-shadow(1px 3px 0 #433c20)}.paw{font-size:43px;background:radial-gradient(ellipse,#ffd273 35%,#b16316 65%,transparent 69%);height:48px;line-height:45px;transform:rotate(-12deg);border-radius:48%}.rescue-progress b{color:white;display:block;font-size:25px;font-weight:1000;line-height:1.3;-webkit-text-stroke:1px #4b341c}.wood-sign{position:absolute;background:repeating-linear-gradient(3deg,#cd8b39 0px,#cd8b39 5px,#d89948 6px,#e6ad58 24px);border:3px solid #88501f;border-radius:8px;color:#452810;font-weight:1000;box-shadow:inset 0 3px #ffde98,inset 0 -4px #ad6226,2px 5px 0 #422b2290;text-shadow:0 2px #ffe4a0;padding:12px 8px;text-align:center}.wood-sign:before,.wood-sign:after{content:'◆';position:absolute;color:#62a232;font-size:26px;text-shadow:1px 2px #366729;top:-16px}.wood-sign:before{left:16px;transform:rotate(20deg)}.wood-sign:after{right:16px;top:auto;bottom:-15px;transform:rotate(-25deg)}.exit-sign{left:21px;top:719px;width:172px;height:59px;font-size:22px;transform:rotate(5deg)}.exit-sign span{font-size:34px;vertical-align:middle;line-height:22px;margin-left:7px}.rescue-sign{right:17px;top:708px;width:168px;height:65px;font-size:19px;transform:rotate(-6deg)}.rescue-sign span{font-size:27px;vertical-align:middle}.remaining{position:absolute;top:765px;right:55px;text-align:center;font-weight:1000;line-height:1.1;filter:drop-shadow(0 3px 0 #4d2d18)}.remaining span{font-size:25px;color:#fff08d;display:block;-webkit-text-stroke:.8px #4d2d18}.remaining b{display:block;font-size:36px;color:white;-webkit-text-stroke:1.5px #4d2d18;margin-top:3px}#slot-label{position:absolute;top:657px;left:225px;width:90px;color:#fff8c8;text-align:center;font-size:10px;font-weight:bold;text-shadow:1px 2px #316b36;letter-spacing:1px}.expand{position:absolute;left:245px;top:860px;width:50px;height:46px;color:#fff9d9;font-size:22px;background:linear-gradient(#a66b37,#80512c);border:2px solid #542d13;border-radius:8px;box-shadow:0 3px 0 #513222;line-height:23px}.expand small{display:block;font-size:9px;white-space:nowrap}.power{position:absolute;bottom:25px;width:142px;height:91px;border:4px solid #59330d;border-radius:21px;background:linear-gradient(135deg,#ffed81,#ffc32c 64%,#ffdf55);box-shadow:inset 0 3px #fff9b8,0 6px #a35c1a,0 9px #49352077;color:white;padding:0;display:flex;align-items:center;justify-content:flex-end;flex-direction:column}.shuffle{left:47px}.clear{right:47px}.power strong{font-size:27px;font-weight:1000;line-height:35px;margin-bottom:4px;text-shadow:2px 2px #4b2d0d,-2px -2px #4b2d0d,-2px 2px #4b2d0d,2px -2px #4b2d0d}.power-icon{position:absolute;top:-6px;font-size:52px;text-shadow:2px 3px #633412}.power small{position:absolute;right:-8px;top:-9px;width:27px;height:27px;line-height:24px;border-radius:50%;background:#6bac3e;border:2px solid #3f742a;font-size:15px;font-weight:bold;box-shadow:0 2px #39621b}.eraser{position:absolute;top:2px;width:31px;height:51px;background:linear-gradient(#ff7fb7 0 47%,#ffe3ee 47% 63%,#fc49a0 63%);border:3px solid #732b57;border-radius:6px;transform:rotate(42deg);box-shadow:inset 4px 0 #ffa0d0,3px 2px #ee9a47}#toast{position:absolute;top:527px;left:42px;right:42px;text-align:center;background:#255d668f;border:1px solid #a6e6ed80;color:#fff8d5;border-radius:18px;padding:9px 14px;font-size:13px;text-shadow:0 1px #244a46;opacity:0;transition:opacity .25s;pointer-events:none}#toast.visible{opacity:1}#tutorial{position:absolute;left:294px;top:350px;filter:drop-shadow(1px 3px #27566b)}#tutorial span{font-size:55px;display:block;animation:tap 1.1s infinite}#tutorial p{font-size:14px;line-height:1.6;font-weight:bold;color:#fff6b9;position:absolute;left:-126px;width:210px;text-align:center;top:40px;text-shadow:1px 2px #234f70}@keyframes tap{50%{transform:translate(-8px,-8px) scale(.9)}}.home{position:absolute;inset:0;pointer-events:auto;background:linear-gradient(#4fbffa11,#54bcf000 45%,#218d3a22)}.home-logo{position:absolute;top:110px;width:100%;text-align:center;transform:rotate(-5deg)}.home-logo small{color:#eaffb9;font-size:17px;font-weight:bold;letter-spacing:5px;text-shadow:0 3px #236671}.home-logo h1{font-size:84px;line-height:1.05;font-weight:1000;letter-spacing:3px;color:#ffe96c;margin:18px 0 23px;text-shadow:0 7px #775019,5px 0 #775019,-5px 0 #775019,0 -5px #775019,8px 9px 0 white,-8px -7px 0 white,-8px 9px 0 white,8px -7px white}.home-logo em{font-style:normal;color:#fff6cb;font-size:72px}.home-logo>span{font-size:14px;letter-spacing:4px;color:#fff;text-shadow:0 2px #397cac}.home-animals{position:absolute;left:80px;right:80px;top:420px;height:200px;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 9px 0 #427c5933)}.home-animals img{width:204px;height:204px;object-fit:contain;transform:rotate(-13deg)}.home-animals img+img{width:210px;margin-left:-55px;transform:rotate(12deg) translateY(3px)}.gold-button,.wood-button{background:linear-gradient(#ffe971,#ffc023);border:4px solid #704215;border-radius:20px;box-shadow:inset 0 3px #fff5a2,0 6px #b67724,0 10px #44301a50;color:#673e19;padding:12px 25px;font-weight:900}.home .gold-button{position:absolute;top:659px;left:125px;width:290px;height:96px}.gold-button strong{font-size:31px;color:white;text-shadow:2px 2px #603b1e,-2px -2px #603b1e,-2px 2px #603b1e,2px -2px #603b1e;display:block}.gold-button small{display:block;color:#785228;font-size:12px;margin-top:5px}.home .wood-button{position:absolute;left:167px;width:206px;top:795px;background:linear-gradient(#bee969,#8ac83a);box-shadow:inset 0 2px #e3ffa3,0 5px #46781f;border-color:#436b20;color:#fffddb;text-shadow:0 2px #5d792b;font-size:21px;padding:12px}.edition{position:absolute;bottom:38px;width:100%;text-align:center;color:#f4ffe6;font-size:11px;letter-spacing:1px;text-shadow:0 2px #286f2d}.modal-layer{position:absolute;inset:0;background:#0b29367a;display:flex;justify-content:center;align-items:center;pointer-events:auto;backdrop-filter:blur(4px)}.modal-card{position:relative;width:402px;max-height:880px;overflow:auto;text-align:center;background:linear-gradient(#fffae4,#fff0c9);border:5px solid #825626;border-radius:28px;box-shadow:inset 0 3px #fff,0 9px #57432666;padding:24px 24px 28px;color:#694727}.close{position:absolute;right:11px;top:10px;font-size:29px;width:36px;height:36px;line-height:25px;border:2px solid #ad7240;background:#e59e61;color:white;border-radius:50%;box-shadow:0 2px #805522}.modal-card h2{font-size:28px;font-weight:1000;color:#805326;margin:8px 0}.modal-card p{font-size:14px;line-height:1.9;color:#92734b;white-space:pre-line;margin:10px 0 18px}#modal-badge{font-size:43px;line-height:1.3}#modal-actions{display:flex;flex-direction:column;gap:12px}#modal-actions button{min-height:49px;font-size:18px;font-weight:900;border-radius:13px;border:2px solid #6b882c;background:linear-gradient(#b8e767,#8ac538);color:#fffbe0;text-shadow:0 2px #628631;box-shadow:0 3px #698d2b}#modal-actions button.secondary{background:#ecd9b3;border-color:#c6a273;color:#957044;box-shadow:0 2px #c5a174;text-shadow:none;font-size:15px}.settings-row{display:flex;align-items:center;justify-content:space-between;background:#eeddbb;padding:12px 16px;border-radius:13px;font-size:17px;font-weight:bold;margin-bottom:10px}.toggle{border:0;background:#acb59a;color:white;border-radius:20px;width:70px;padding:7px;font-size:14px}.toggle.on{background:#81b943}.level-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:17px -7px 24px}.level-grid button{background:linear-gradient(#ffdf73,#efb948);border:2px solid #ba8232;border-radius:13px;height:62px;color:#855617;font-size:24px;font-weight:900;box-shadow:0 3px #ae792a;position:relative}.level-grid button.passed{background:linear-gradient(#d7ee89,#a4cb59);border-color:#77a33e}.level-grid button small{position:absolute;bottom:0;left:0;width:100%;font-size:9px;color:#648526}.level-grid button.current{outline:3px solid #7da8d1;outline-offset:2px}.rules{margin:10px 0 22px;text-align:left;padding:13px 16px;background:#f1e5c7;border-radius:12px;font-size:13px;line-height:1.9}.reward-info{border:1px dashed #c7ad6e;background:#f6e9be;padding:12px;font-size:12px;color:#977647;border-radius:10px;margin-bottom:18px}#loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#55b6ed;color:#fff;pointer-events:auto;gap:18px;z-index:20}#loading>div{font-size:65px}#loading strong{font-size:24px}#load-progress{font-size:14px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Local, licensed Chinese type and a shared illustrated icon system. */
@font-face{font-family:RescueDisplay;src:url('assets/fonts/rescue-display.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:RescueUI;src:url('assets/fonts/rescue-ui.ttf') format('truetype');font-weight:600;font-display:swap}
:root{--ink:#4b5434;--cream:#fff5d8;--leaf:#5b8961;--display:RescueDisplay,'Microsoft YaHei',sans-serif;--body:RescueUI,'Microsoft YaHei',sans-serif}
/* Refinement: readable rounded lettering, consistent material and icon scale. */
body{font-family:var(--body);font-weight:600;-webkit-font-smoothing:antialiased}
button{font-synthesis:none}
.ui-icon{display:inline-block;width:100%;height:100%;vertical-align:middle;overflow:visible;pointer-events:none}
.gear{width:54px;height:54px;top:62px;left:16px;padding:9px;background:linear-gradient(#fff7df,#e6eabc);border:2px solid #597250;border-radius:18px;box-shadow:inset 0 2px #fff,0 3px #416146;filter:none;text-shadow:none}
.level-title strong{font-family:var(--display);font-size:38px;font-weight:400;letter-spacing:2px;text-shadow:0 3px #245c65;-webkit-text-stroke:1.5px #245c65;paint-order:stroke fill}
.level-title span{font-family:var(--body);font-size:16px;font-weight:600;color:#fff9c9;margin-top:8px;text-shadow:0 2px 2px #245c65;-webkit-text-stroke:0}
.paw{height:49px;width:49px;margin:auto;padding:5px;background:linear-gradient(#fff6c9,#edc266);border:2px solid #866535;border-radius:50%;transform:rotate(-9deg);line-height:1;box-shadow:inset 0 2px #fff6d5}
.rescue-progress{filter:none}
.rescue-progress b{font-family:var(--display);font-size:25px;font-weight:400;margin-top:5px;-webkit-text-stroke:1px #74562e;paint-order:stroke fill;text-shadow:0 2px #74562e}
.wood-sign{font-family:var(--display);font-weight:400;text-shadow:0 1px #ffe7b1;border-width:2px;box-shadow:inset 0 2px #f9d38c,0 4px #70442280}
.wood-sign:before,.wood-sign:after{content:'';width:19px;height:10px;border-radius:100% 0 100% 0;background:#74a546;border:1px solid #477134;top:-7px}
.wood-sign:after{top:auto;bottom:-5px}
.exit-sign{font-size:25px;display:flex;align-items:center;justify-content:center;gap:7px;padding:8px}
.exit-sign span{width:34px;height:34px;margin:0;line-height:1}
.rescue-sign{font-size:23px;padding:10px 5px;display:flex;align-items:center;justify-content:center;gap:5px}
.rescue-sign span{width:27px;height:27px}
.remaining{top:780px;right:58px;filter:none}
.remaining span{font-family:var(--body);font-size:17px;letter-spacing:4px;-webkit-text-stroke:0;color:#fff1b9;text-shadow:0 2px #695231}
.remaining b{font-family:var(--display);font-size:37px;font-weight:400;-webkit-text-stroke:1px #6e5030;paint-order:stroke fill;text-shadow:0 2px #6e5030;margin-top:1px}
#slot-label{top:666px;left:213px;width:114px;padding:4px 0;border-radius:8px;background:#315834a3;font-size:12px;letter-spacing:0;text-shadow:none}
.expand{width:48px;height:48px;left:246px;padding:3px 5px;background:linear-gradient(#f0d7a0,#d4a970);border-color:#82603c;border-radius:12px;box-shadow:inset 0 2px #fff0c2,0 3px #704c30;line-height:1.1}
.expand>span{display:block;width:29px;height:29px;margin:-1px auto 0}
.expand small{font-family:var(--body);font-size:9px;color:#573e24;text-shadow:none;line-height:1.3}
.power{width:130px;height:99px;bottom:20px;border:2px solid #80612c;border-radius:23px;background:linear-gradient(155deg,#fff2b9,#f6cc65);box-shadow:inset 0 3px #fff9da,0 5px #bc8b3e,0 8px 8px #463b2929;justify-content:flex-end}
.shuffle{left:45px}.clear{right:45px}
.power .power-icon{width:51px;height:51px;top:6px;filter:drop-shadow(0 2px 0 #c7924055)}
.power strong{font-family:var(--display);font-size:28px;font-weight:400;color:#624926;text-shadow:0 1px #fff0b9;line-height:31px;margin-bottom:4px}
.power small{right:-7px;top:-8px;width:26px;height:26px;line-height:23px;font-family:var(--body);font-size:12px;background:#629264;border:2px solid #f6edbe;box-shadow:0 1px 2px #365b45;color:white}
#toast{font-family:var(--body);font-size:13px;line-height:1.6;border-radius:14px;background:#285647d9;border-color:#d1e6b45c;text-shadow:none;top:530px;left:40px;right:40px}
#tutorial>span{width:52px;height:52px}#tutorial p{font-family:var(--body);font-size:13px;font-weight:600}
.home-logo h1{font-family:var(--display);font-size:92px;font-weight:400;line-height:1.1;letter-spacing:4px;-webkit-text-stroke:4px #73532d;paint-order:stroke fill;text-shadow:0 5px #73532d,0 8px 0 #fff4d8;transform:rotate(2deg)}
.home-logo em{font-size:84px}.home-logo small{font-family:var(--body);font-size:14px;letter-spacing:6px;font-weight:600}
.home-logo>span{font-family:var(--body);font-size:14px;letter-spacing:2px}
.gold-button strong{font-family:var(--display);font-weight:400;font-size:34px;text-shadow:0 2px #8c6427;-webkit-text-stroke:1px #8c6427;paint-order:stroke fill}
.gold-button small{font-family:var(--body);font-weight:600}
.home .wood-button{font-family:var(--display);font-size:23px;font-weight:400;display:flex;justify-content:center;align-items:center;gap:9px;padding:9px 12px;border-width:2px;background:linear-gradient(#d3e9aa,#9dc779);color:#385738;text-shadow:0 1px #dcefc4;border-color:#5b7f49}
.home .wood-button>span{width:30px;height:30px}.edition{font-family:var(--body);font-size:10px}
.modal-card{border:3px solid #987749;background:linear-gradient(#fffbed,#f5ebd3);box-shadow:inset 0 3px white,0 7px #3c482955;color:var(--ink);padding-top:25px}
#modal-badge{width:64px;height:64px;margin:0 auto 10px;line-height:1;filter:drop-shadow(0 3px #c8af7333)}
.modal-card h2{font-family:var(--display);font-weight:400;font-size:31px;color:#566442;line-height:1.35;margin:8px 0}
.modal-card p{font-family:var(--body);font-size:14px;color:#7d7961;line-height:1.8}
.close{width:32px;height:32px;padding:5px;background:#d7b987;border:1px solid #a58555;box-shadow:0 2px #aa8b5f}
#modal-actions button{font-family:var(--display);font-size:24px;font-weight:400;background:linear-gradient(#aecd88,#84af71);border:2px solid #67935b;color:#fffced;box-shadow:0 3px #628452;text-shadow:0 1px #668253;min-height:51px}
#modal-actions button.secondary{font-family:var(--body);font-size:14px;font-weight:600;background:#eee4ce;color:#8c795a;border-color:#d6c5a6;box-shadow:0 2px #c9b794;text-shadow:none}
.settings-row{font-family:var(--body);font-size:16px;font-weight:600;background:#efe8d5;color:#65704d;padding:9px 13px}
.setting-label{display:flex;align-items:center;gap:11px}.setting-label .ui-icon{width:28px;height:28px}
.toggle{font-family:var(--body);font-size:12px}.toggle.on{background:#7aab6e}
.level-grid button{font-family:var(--display);font-size:28px;font-weight:400}.rules{font-family:var(--body);font-size:13px;color:#6b7156;line-height:2}
.reward-info{font-family:var(--body);font-size:11px;color:#8f8060;background:#f6efdb;border-color:#d5c698}
#loading>div{width:66px;height:66px}#loading strong{font-family:var(--display);font-weight:400;font-size:27px}
.ui-icon{display:block}
[data-icon]{line-height:0}
.gear{display:grid;place-items:center}
.paw{display:flex;align-items:center;justify-content:center}
.level-title strong{font-family:var(--body);font-size:34px;font-weight:600;letter-spacing:1px}
.remaining b{font-family:var(--body);font-size:37px;font-weight:600;font-variant-numeric:tabular-nums}
.rescue-progress b{font-family:var(--body);font-size:23px;font-weight:600;font-variant-numeric:tabular-nums}
.level-grid button{font-family:var(--body);font-size:25px;font-weight:600}
#slot-label{left:53px;top:671px;background:#52613dc9}
/* The header is a separate layout region, outside the 540 × 960 game canvas. */
#stage{--header-offset:0px}
#game{top:var(--header-offset);overflow:hidden}
#ui{top:var(--header-offset)}
.game-header{position:absolute;left:0;top:0;width:540px;height:96px;transform-origin:0 0;z-index:3;display:grid;grid-template-columns:68px 1fr 68px;align-items:center;gap:16px;padding:10px 20px 12px;background:linear-gradient(110deg,#eef4d6,#fff7df 55%,#e5efd0);border-bottom:3px solid #799466;box-shadow:inset 0 -3px #d8e3bc,0 3px 0 #33593526;color:#466144}
.game-header .gear{position:static;width:52px;height:52px;padding:10px;border-radius:16px;justify-self:start;box-shadow:inset 0 2px #fff,0 2px #98ad80}
.game-header .level-title{position:static;width:auto;min-width:0;color:#405c40;text-shadow:none;line-height:1.2;padding:0}
.game-header .level-title strong{font-family:var(--body);font-size:29px;font-weight:600;letter-spacing:1px;text-shadow:none;-webkit-text-stroke:0}
.game-header .level-title span{font-size:14px;color:#7f8a5d;letter-spacing:3px;margin-top:7px;text-shadow:none}
.header-levels{border:0;background:transparent;color:#60754f;display:flex;flex-direction:column;align-items:center;gap:4px;padding:4px;width:64px;height:66px;justify-self:end}
.header-levels>span{display:block;width:31px;height:31px}.header-levels small{font-family:var(--body);font-size:12px;letter-spacing:2px}
.game-header[inert]{filter:brightness(.85)}

/* Keep all 50 camps accessible without moving the dialog actions off screen. */
.level-grid{max-height:420px;overflow-y:auto;overscroll-behavior:contain;padding:6px;scrollbar-width:thin}

#level-password-form,#payment-code-form{display:grid;gap:12px;text-align:left;margin:16px 0}#level-password-form label,#payment-code-form label{font-weight:700;color:#4b6342}#level-password,#payment-code{box-sizing:border-box;width:100%;min-height:52px;padding:12px 16px;border:2px solid #8d9b68;border-radius:14px;background:#fffdf1;color:#354b32;font:inherit;font-size:22px;letter-spacing:6px}#level-password:focus,#payment-code:focus{outline:3px solid #e9bf65;outline-offset:2px}#level-password[aria-invalid="true"],#payment-code[aria-invalid="true"]{border-color:#b14f3c}#level-password-error,#payment-code-error{min-height:24px;margin:0;color:#a53d2e;font-size:16px}
.hearts-bar{display:flex;align-items:center;justify-content:center;gap:14px;border:1px solid #d9bca5;border-radius:22px;background:linear-gradient(#fffaf1,#ffeadd);color:#865b52;padding:8px 18px;box-shadow:0 3px 0 #9a72552b;font-family:var(--body)}
.heart-symbols{display:flex;gap:5px;font-family:Arial,sans-serif;font-size:28px;line-height:1}.heart-symbols .filled{color:#e76583;text-shadow:0 2px #bd4561}.heart-symbols .empty{color:#d8c9c0;text-shadow:none}.heart-details{display:flex;align-items:center;gap:12px}.heart-details b{font-size:15px}.heart-details small{font-size:12px;font-variant-numeric:tabular-nums}
#home-hearts{position:absolute;top:30px;left:65px;width:410px;height:54px}

#play-hearts{position:absolute;left:70px;right:70px;bottom:8px;height:38px;padding:4px 12px}
#play-hearts .heart-symbols{font-size:23px}
.heart-shop [data-hearts]{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;padding:18px 0 0}.heart-shop .heart-symbols{font-size:42px}.heart-shop .heart-details small{display:none}


.game-header{height:142px;padding-bottom:58px}

/* Compact single-row HUD; hearts stay centered independently of side content. */
.game-header{height:64px;display:flex;align-items:center;padding:6px 16px;gap:0;border-bottom-width:1px;box-shadow:0 2px 0 #33593520}
.game-header .level-title{width:140px;text-align:left;line-height:1.2}
.game-header .level-title strong{font-size:21px;letter-spacing:0}
.game-header .level-title span{font-size:11px;letter-spacing:0;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.game-header .gear{position:absolute;left:auto;right:16px;top:8px;width:46px;height:46px;padding:9px;border-radius:13px}
#play-hearts{left:170px;right:auto;top:5px;bottom:auto;width:200px;height:54px;flex-direction:column;gap:3px;padding:3px 6px;border:0;background:transparent;box-shadow:none}
#play-hearts .heart-symbols{font-size:27px;gap:6px}
#play-hearts .heart-details b{display:none}
#play-hearts .heart-details small{font-size:10px;line-height:1.2}

/* Home actions: primary play, fresh start, then a small level shortcut. */
.home .reset-save{position:absolute;top:787px;left:140px;width:260px;min-height:49px;padding:10px 14px;border:2px solid #a48452;border-radius:14px;background:linear-gradient(#fff3cf,#e6cf9e);box-shadow:inset 0 2px #fff9e8,0 3px #85663e;color:#705635;font-family:var(--body);font-size:17px;font-weight:600}
.home #choose{top:866px;left:210px;width:120px;height:39px;min-height:0;padding:5px 8px;gap:5px;border-radius:11px;border-width:1px;font-family:var(--body);font-size:13px;box-shadow:0 2px #567b3d}
.home #choose>span{width:19px;height:19px}

/* Soft, paw-stamped hearts share the illustrated animal palette. */
.heart-symbols>span{display:block;width:31px;height:31px;filter:drop-shadow(0 2px 0 #a44d5330)}
.heart-symbols .ui-icon{width:100%;height:100%}
.heart-symbols .empty{filter:grayscale(1);opacity:.32}
#play-hearts .heart-symbols{gap:4px}
#play-hearts .heart-symbols>span{width:29px;height:29px}
.heart-shop .heart-symbols>span{width:43px;height:43px}
/* Bright toy-like controls, with live labels and counters. */
.power{width:122px;height:99px;bottom:17px;border:3px solid #56300e;border-radius:24px;background:radial-gradient(ellipse at 30% 10%,#fff48b 0,#ffcf3c 55%,#ffad18 100%);box-shadow:inset 0 3px #fff7b3,inset 0 -6px #ee8c0d,0 5px 0 #8d4f12,0 7px 0 #4d311b55}
.shuffle{left:28px}.clear{right:28px}
.power .power-icon{width:60px;height:60px;top:3px;filter:drop-shadow(0 2px 0 #c7731e)}
.power strong{font-family:'Arial Rounded MT Bold','Trebuchet MS',sans-serif;font-size:28px;font-weight:1000;letter-spacing:-1px;line-height:31px;margin-bottom:3px;color:#fff9e9;-webkit-text-stroke:5px #4b2b12;paint-order:stroke fill;text-shadow:0 3px #4b2b12}
.power small{width:25px;height:25px;right:-7px;top:-9px;background:linear-gradient(#9bd974,#5e9e4c);border-color:#fff5cb;color:white;font-size:12px}
.footer-mascots{position:absolute;bottom:6px;left:154px;width:232px;height:143px;object-fit:contain;pointer-events:none;filter:drop-shadow(0 3px 1px #55451e30)}
