@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;600;700;800&family=Nunito:wght@700;800;900&display=swap');:root{font-family:'DM Sans',sans-serif;color:#493e3a;background:#f4eae2;--coral:#ef817b;--cream:#fffaf5}*{box-sizing:border-box}body{margin:0;min-height:100svh;display:flex;justify-content:center;background:radial-gradient(ellipse at top,#fffaf4,#f2e6dd)}.app-shell{width:min(100%,440px);min-height:100svh;background:var(--cream);position:relative;padding:env(safe-area-inset-top) 17px calc(76px + env(safe-area-inset-bottom));box-shadow:0 0 60px #60422b15;overflow:hidden}.topbar{height:52px;display:flex;align-items:center;justify-content:space-between}.icon,.energy{border:0;background:#f8eee8;border-radius:14px;color:#574743;height:38px;cursor:pointer}.icon{width:40px;font-size:25px}.brand{font:800 14px Nunito,sans-serif;white-space:nowrap}.brand b{color:var(--coral)}.energy{background:#fff0ed;color:#db7470;padding:0 10px;font-weight:800}.energy small{font-size:8px;color:#ad928d}.world{height:29px;display:flex;align-items:center;justify-content:space-between;font-size:10px;font-weight:800;letter-spacing:.11em;color:#997f72}.world b{background:#fff0ed;color:#dc7c76;border-radius:20px;padding:6px 10px;font-size:9px}.goal{height:55px;border-radius:16px;background:#f8f0e9;display:flex;align-items:center;padding:8px 10px;gap:10px}.goal>span:first-child{font-size:21px;min-width:76px}.goal small{display:block;font-size:9px;color:#a59288;font-weight:700}.goal strong{display:block;font:800 14px Nunito}.progress{height:8px;background:#e9dcd1;border-radius:9px;overflow:hidden;flex:1}.progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,#f3a48d,#eb7c78);transition:width .25s}.moves{text-align:center;border-left:1px solid #e7d9cf;padding-left:8px}.moves strong{font-size:18px}.score{height:24px;display:flex;align-items:center;color:#b38350;font-size:12px;font-weight:700}.score span{margin-left:8px;color:#e87972}.score small{margin-left:auto;color:#ac9990;font-size:10px}.frame{padding:7px;background:linear-gradient(145deg,#d9b18e,#b98766);border-radius:17px;box-shadow:inset 0 2px 2px #fff8,0 5px 0 #a67555,0 10px 20px #79533d1c;position:relative}.frame[data-skin="flower"]{background:linear-gradient(145deg,#f4c1ba,#d9888a);box-shadow:inset 0 2px 2px #fff8,0 5px 0 #b96970,0 10px 20px #9f64641c}.frame[data-skin="flower"] .board{background:#bd8587}.frame[data-skin="night"]{background:linear-gradient(145deg,#8995b4,#596783);box-shadow:inset 0 2px 2px #fff8,0 5px 0 #48536c,0 10px 20px #39465d30}.frame[data-skin="night"] .board{background:#56647f}.frame[data-skin="books"]{background:linear-gradient(145deg,#c6dfc7,#84b596);box-shadow:inset 0 2px 2px #fff8,0 5px 0 #689875,0 10px 20px #416b4d25}.frame[data-skin="books"] .board{background:#6f9877}.frame[data-skin="wood"][data-world="kitchen"]{background:linear-gradient(145deg,#f1c59c,#db9675);box-shadow:inset 0 2px 2px #fff8,0 5px 0 #ba785d,0 10px 20px #9f674a20}.board[data-skin="wood"][data-world="kitchen"]{background:#aa7765}.frame[data-skin="wood"][data-world="office"]{background:linear-gradient(145deg,#b7c8cc,#849ba5);box-shadow:inset 0 2px 2px #fff8,0 5px 0 #687e88,0 10px 20px #506b7520}.board[data-skin="wood"][data-world="office"]{background:#637b86}.frame[data-skin="wood"][data-world="vintage"]{background:linear-gradient(145deg,#d3b5cb,#b88eae);box-shadow:inset 0 2px 2px #fff8,0 5px 0 #906a8a,0 10px 20px #6e4c6c20}.board[data-skin="wood"][data-world="vintage"]{background:#8e708c}.board{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(10,1fr);gap:3px;aspect-ratio:8/10;padding:4px;background:#a98267;border-radius:11px;touch-action:none}.cell{border:0;border-radius:8px;background:linear-gradient(145deg,#fff8ef,#f6e8dc);box-shadow:inset 0 -2px #e8d4c4;display:grid;place-items:center;padding:0;position:relative;cursor:pointer;min-width:0}.cell.blocked{background:linear-gradient(145deg,#eadbd1,#d9c5b9);overflow:hidden}.cell.blocked .piece{filter:grayscale(.45) opacity(.8)}.blocker{position:absolute;right:0;top:0;z-index:2;font-size:11px;line-height:12px;filter:drop-shadow(0 1px 1px #fff);pointer-events:none}.blocker-hp{position:absolute;left:2px;top:1px;z-index:3;border-radius:50%;width:11px;height:11px;background:#ef817b;color:white;font:800 8px/11px Nunito;text-align:center;pointer-events:none}.cell.tutorial-target{outline:3px solid #8bc99a;outline-offset:-2px;z-index:2;animation:tutorialPulse .8s ease-in-out infinite alternate}@keyframes tutorialPulse{to{transform:scale(1.08);box-shadow:0 0 0 4px #a9ddb488}}.cell.hinted{outline:2px solid #f2bd58;outline-offset:-2px;z-index:1;animation:hintPulse .7s ease-in-out infinite alternate}@keyframes hintPulse{to{transform:scale(1.08);box-shadow:0 0 0 3px #f7ce7388}}.cell.selected{outline:3px solid #f28a7b;outline-offset:-2px;z-index:2;transform:scale(1.04)}.cell.empty{visibility:hidden}.piece{width:88%;height:88%;object-fit:contain;filter:drop-shadow(0 2px 1px #71524924);animation:drop .2s}.cell.row:after,.cell.col:after,.cell.bomb:after{content:'✦';position:absolute;right:1px;top:0;width:11px;height:11px;border-radius:50%;display:grid;place-items:center;background:#ef9c68;color:white;font-size:8px}.cell.bomb:after{content:'✧';background:#9784c5}.cell.row:after{content:'↔'}.cell.col:after{content:'↕'}.cell.matched{animation:clear .24s forwards}.toast{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;color:white;font:900 26px Nunito;text-shadow:0 2px 8px #49352b90;opacity:0}.toast.show{animation:toast .9s}.boosters{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.boosters button{height:48px;position:relative;border:1px solid #f0e4db;border-radius:13px;background:#fffaf5;color:#75635d;font:700 10px 'DM Sans';cursor:pointer}.boosters button span{margin-left:4px}.boosters button b{position:absolute;right:4px;top:-5px;background:#f2a981;color:#fff;border-radius:9px;padding:2px 5px;font-size:9px}.boosters button.active{border:2px solid var(--coral);background:#fff0ec}.hint{text-align:center;margin:9px 0;color:#b2a39b;font-size:10px;min-height:13px}nav{position:absolute;bottom:0;left:0;right:0;height:68px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,1fr);background:#fffdfb;border-top:1px solid #f2eae4}nav button{border:0;background:none;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;color:#b1a29b;font-size:19px;cursor:pointer}nav button small{font-size:9px;font-weight:700}nav button.active{color:#ed8179}nav button i{font-style:normal;color:#93c99d}.hidden{display:none!important}#homeView{min-height:530px;display:flex;flex-direction:column;justify-content:center;padding:14px 4px 20px}.home-intro{display:grid;grid-template-columns:44% 56%;align-items:center;gap:7px;min-height:185px;margin-bottom:18px}.hero{height:170px;width:100%;border-radius:18px;background:linear-gradient(145deg,#d9eee2,#eaf4e9 52%,#f9e3d9);display:grid;place-items:center;position:relative;margin:0}.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;border-radius:18px}.intro-copy{min-width:0}.intro-copy .eyebrow{display:block;line-height:1.5}.intro-copy h1{margin-top:7px!important}.hero:after{content:'';position:absolute;inset:auto 0 0;height:20%;background:linear-gradient(transparent,#f9e3d955);pointer-events:none}.hero i{position:absolute;right:22px;top:20px;color:#f5ad68;font-size:29px}.eyebrow{font-size:9px;letter-spacing:.17em;color:#c49279;font-weight:800}#homeView h1{font:900 19px/1.15 Nunito;margin:8px 0 18px;letter-spacing:-.035em}h1 em{font-style:normal;color:#e7827b}.home-progress{background:#f8f0e9;border-radius:15px;padding:13px;font-size:11px;color:#9d8b82;display:flex;justify-content:space-between;flex-wrap:wrap;gap:9px}.home-progress b{color:#574944}.home-progress div{width:100%;height:7px;background:#e9dcd2;border-radius:8px;overflow:hidden}.home-progress i{display:block;width:2%;height:100%;background:#88c99b}.level-map{margin-top:10px;padding:10px 12px 7px;background:#fffdf9;border:1px solid #f0e6df;border-radius:15px}.map-caption{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px;color:#a58d80;font-size:8px;font-weight:800;letter-spacing:.12em}.map-caption small{font-size:9px;letter-spacing:0;color:#bd9c7a}.map-nodes{display:grid;grid-template-columns:repeat(5,1fr);position:relative}.map-nodes:before{content:"";position:absolute;left:10%;right:10%;top:11px;height:3px;background:#eaddd3;border-radius:4px}.map-node{position:relative;z-index:1;display:flex;align-items:center;flex-direction:column;gap:2px;color:#b9aaa0;font-size:8px;padding:0;border:0;background:transparent;font-family:inherit;cursor:pointer}.map-node:disabled{cursor:default}.map-node.selected .node-dot{outline:2px solid #ef817b;outline-offset:3px}.node-dot{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#f3ece6;border:2px solid #e7d9ce;font:800 10px Nunito}.map-node.current .node-dot{background:#ef817b;border-color:#ef817b;color:#fff;box-shadow:0 0 0 3px #fde6e1}.map-node.done .node-dot{background:#d9eddd;border-color:#a8d0af;color:#52875d}.node-stars{height:9px;color:#f0b354;font-size:8px;letter-spacing:-1px;white-space:nowrap}.primary{margin-top:16px;border:0;background:var(--coral);color:white;border-radius:15px;padding:15px;font:800 15px Nunito;box-shadow:0 4px #d36562;cursor:pointer}.primary span{float:right;font-size:20px}.shortcuts{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:19px}.shortcuts button{height:62px;border:1px solid #f0e6df;border-radius:14px;background:#fffdfb;font-size:20px;cursor:pointer}.shortcuts small{display:block;font-size:9px;color:#8d7b73;font-weight:700}.collection{text-align:center;font-size:10px;color:#b19f95;margin-top:21px}.shade{position:fixed;inset:0;background:#493a3785;display:grid;place-items:center;padding:20px;z-index:5}.modal{width:min(100%,360px);max-height:85svh;overflow:auto;background:#fffaf5;border-radius:24px;padding:22px;box-shadow:0 20px 70px #3829224d;animation:in .2s}.modal h2{font:900 24px Nunito;margin:2px 0 7px}.modal p{color:#938078;font-size:12px;line-height:1.5;margin:7px 0 16px}.close{float:right;border:0;background:#f5ebe4;border-radius:50%;width:30px;height:30px;font-size:18px;color:#8b7770}.items{display:grid;gap:8px}.item{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid #f0e5dc;border-radius:14px;background:#fffdfb}.item>i{font-style:normal;font-size:25px}.item strong{display:block;font-size:12px}.item small{color:#ad9b92;font-size:10px}.item button{margin-left:auto;border:0;border-radius:10px;padding:8px;background:#e6f2e7;color:#578461;font-weight:800;font-size:10px}.item button:disabled{background:#f1eae5;color:#af9f96;cursor:not-allowed}.result-icon{text-align:center;font-size:45px}.stars{text-align:center;color:#f4b45e;font-size:32px;letter-spacing:5px;margin:8px}.subtle{text-align:center!important;font-size:10px!important}.confetti{position:fixed;top:-10px;z-index:7;animation:confetti 1.4s forwards;pointer-events:none}.spark{position:fixed;z-index:8;pointer-events:none;color:#ffd47a;font-size:13px;text-shadow:0 1px 5px #e9976c90;animation:sparkle .6s ease-out forwards}.shake{animation:shake .25s}.board.reshuffle{animation:reshuffle .38s ease-out}@keyframes reshuffle{0%{transform:scale(.98);opacity:.65}55%{transform:scale(1.02)}100%{transform:scale(1);opacity:1}}@keyframes shake{25%{transform:translateX(-4px)}50%{transform:translateX(4px)}75%{transform:translateX(-2px)}}@keyframes sparkle{to{transform:translate(var(--dx),var(--dy)) scale(.2) rotate(90deg);opacity:0}}@keyframes drop{from{transform:translateY(-12px);opacity:.4}to{transform:none;opacity:1}}@keyframes clear{to{transform:scale(.1) rotate(30deg);opacity:0}}@keyframes toast{20%{opacity:1;transform:scale(1.1)}80%{opacity:1}to{opacity:0;transform:translateY(-25px)}}@keyframes in{from{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}@keyframes confetti{to{transform:translate(var(--dx),85vh) rotate(500deg);opacity:0}}@media(min-width:600px){body{padding:18px}.app-shell{min-height:min(850px,calc(100svh - 36px));border-radius:28px}}@media(max-height:730px){.frame{padding:5px}.board{gap:2px}.boosters button{height:42px}#homeView{min-height:460px}.hero{height:150px}.home-intro{grid-template-columns:43% 57%;min-height:155px;margin-bottom:14px}}