@font-face{font-family:'Nunito';font-style:normal;font-weight:100 1000;font-display:swap;src:url('fonts/nunito-latin-wght-normal.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:100 1000;font-display:swap;src:url('fonts/dm-sans-latin-wght-normal.woff2') format('woff2')}
@font-face{font-family:'Outfit';font-style:normal;font-weight:100 1000;font-display:swap;src:url('fonts/outfit-latin-wght-normal.woff2') format('woff2')}
800;900;1000&display=swap');
500;600;700&family=Outfit:wght@400;500;600;700;800;900&display=swap');
:root{color-scheme:dark;--ink:#123f3e;--cream:#fff3d9;--lime:#daf875;--muted:#a8bfba}*{box-sizing:border-box}body{margin:0;background:#103c3b;color:var(--cream);font-family:'DM Sans',sans-serif;background-image:radial-gradient(ellipse at 52% 40%,#24675e88,transparent 65%);min-height:100dvh}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #e5fa84;outline-offset:4px}button:disabled{opacity:.4;cursor:default}.shell{max-width:1480px;margin:auto;padding:0 4.5%}header{height:104px;border-bottom:1px solid #b1d4bf24;display:flex;align-items:center;justify-content:space-between}.brand{color:var(--cream);text-decoration:none;font-family:Outfit,sans-serif;font-size:23px;font-weight:800;letter-spacing:-1px;position:relative;padding-left:43px;line-height:1}.brand>span:not(.brandmark){color:var(--lime)}.brandmark{position:absolute;left:0;top:-2px;color:var(--lime);font-size:39px}.brand small{display:block;font-size:9px;letter-spacing:3.9px;margin-top:9px;font-weight:500}.header-right{display:flex;align-items:center;gap:13px}.edition{font-size:10px;letter-spacing:1.6px;margin-right:18px;color:#afc6bd}.icon{width:39px;height:39px;border:1px solid #d9e9d435;background:#ffffff05;color:var(--cream);border-radius:50%;font-weight:700;font-size:19px}.icon:hover{background:#ffffff19}main{display:grid;grid-template-columns:1fr minmax(330px,440px) 1fr;gap:5%;align-items:center;padding:30px 0}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--lime)}h1{font-family:Outfit,sans-serif;font-size:clamp(40px,4.8vw,68px);line-height:1.03;letter-spacing:-3px;margin:24px 0}h1 em{color:#e2f68a;font-style:normal}.intro>p{font-size:15px;line-height:1.7;color:#b6c8be}.daily{display:flex;gap:13px;margin-top:35px}.daily>span{font-size:29px;color:#f6b580}.daily small{font-size:9px;letter-spacing:1.4px;color:#b3c8b6}.daily strong{display:block;font-size:14px;margin-top:7px}.daily p{font-size:12px;color:#a9bfb4;margin:7px 0}.text-button{background:none;border:0;border-bottom:1px solid #8da7894d;color:var(--cream);font-size:12px;padding:18px 0 12px;display:flex;justify-content:space-between;gap:18px}.text-button span{color:var(--lime)}.desktop-instructions{font-size:12px;color:#b3c5b9;line-height:2.5;margin-top:32px}.desktop-instructions span{font-size:10px;margin-right:12px;color:#e0efaf}.footer-note{font-size:8px;letter-spacing:2px;color:#76958d;margin-top:35px}.game{border:5px solid #eed8a5;border-radius:31px;background:#f5e6c7;box-shadow:0 25px 60px #06282380,0 0 0 1px #fff8d950;overflow:hidden;color:var(--ink);position:relative}.game-top{height:90px;padding:14px 18px 10px;display:flex;gap:12px;align-items:center;background:#fff3d9}.level-chip{display:flex;align-items:center;gap:7px}.level-chip>span{color:#4d8b61;font-size:27px}.level-chip small,.score small,.game-bottom small{font-size:9px;letter-spacing:1px;font-weight:700}.level-chip b{font-family:Outfit;font-size:27px;display:block}.score{flex:1;text-align:center}.score strong{font-family:Outfit;display:block;font-size:28px;line-height:1.15}.progress{height:5px;background:#183e3d19;border-radius:4px;margin:5px 6px 1px;overflow:hidden}.progress i{display:block;background:#438f67;width:0;height:100%;transition:width .3s}.score>span{font-size:10px;color:#64806a}.pause{color:var(--ink);border-color:#c9d3b7;font-size:14px;width:33px;height:33px}.playfield{position:relative;margin:0 10px;aspect-ratio:400/480;border:8px solid #ca8647;border-top-width:11px;border-bottom-width:11px;border-radius:13px;background:#dfaa68;box-shadow:inset 0 0 15px #88502638,0 3px 0 #986133;overflow:hidden}canvas{display:block;width:100%;height:100%;touch-action:none;background:repeating-linear-gradient(90deg,transparent 0,transparent 24.6%,#a96c3538 24.8%,#e4b573 25%),linear-gradient(#dc9e55,#edbd7c);cursor:crosshair}.board-label{position:absolute;top:17px;width:100%;text-align:center;pointer-events:none;font-size:9px;letter-spacing:3px;color:#955f36;opacity:.75}.launch-hint{position:absolute;bottom:9px;left:0;right:0;text-align:center;pointer-events:none;font-size:8px;letter-spacing:2px;color:#856338}.toast{position:absolute;left:5%;right:5%;top:36%;text-align:center;font-family:Outfit;font-size:27px;font-weight:800;color:#fff9db;text-shadow:0 3px 0 #2d6c50,0 4px 16px #204e55;pointer-events:none;opacity:0;transform:scale(.7);transition:.2s}.toast.show{opacity:1;transform:scale(1)}.game-bottom{display:flex;align-items:center;justify-content:space-around;gap:8px;padding:10px 12px 9px;height:85px}.next{text-align:center;width:60px}.next>div{height:45px;width:45px;margin:auto}.sprite{width:100%;height:100%;object-fit:contain}.combo{text-align:center;flex:1}.combo strong{display:block;font-family:Outfit;font-size:23px;margin-top:4px}.power{background:#ecddbc;border:1px solid #d7c8a6;border-radius:13px;color:var(--ink);width:64px;height:58px}.power>span{display:block;font-size:26px;line-height:29px}.power small{font-size:9px;letter-spacing:0}.power b{background:#184c46;color:#fff3d9;padding:1px 4px;border-radius:5px;margin-left:2px}.recipe-heading{display:flex;align-items:center;justify-content:space-between}.recipe-heading h2{font-family:Outfit;font-size:29px;letter-spacing:-1px;line-height:1.12;margin:12px 0 0}.number{font-family:Outfit;font-size:69px;letter-spacing:-4px;color:#9fbc951b;font-weight:800}.recipe-sub{font-size:11px;color:#a5beb0;margin:16px 0}#recipeList{display:grid;grid-template-columns:1fr 1fr;gap:7px}.recipe{height:67px;position:relative;display:flex;align-items:center;gap:5px;padding:5px;border:1px solid #c5d7a91c;border-radius:10px;background:#ffffff04;cursor:pointer}.recipe:hover{background:#ffffff0d}.recipe img{width:43px;height:50px;object-fit:contain;filter:drop-shadow(0 3px 4px #002a2b60)}.recipe.locked img{opacity:.4;filter:grayscale(.6)}.recipe .rname{font-size:10px;line-height:1.25;color:#cad7bd}.recipe .rnum{display:block;color:#9bba9c;font-size:8px;margin-bottom:4px}.recipe:last-child{grid-column:1/-1;background:#d9f8750a;border-color:#d9f87542}.collection-progress{font-size:10px;color:#bfd0b8;margin-top:15px}.collection-progress>div{height:3px;background:#ffffff12;margin-top:9px}.collection-progress i{height:100%;display:block;background:var(--lime);transition:width .3s}footer{display:flex;justify-content:space-between;border-top:1px solid #b1d4bf24;padding:18px 0;font-size:9px;letter-spacing:1.8px;color:#8eaca0}footer b{color:var(--lime);font-size:16px;margin-left:10px}dialog{border:1px solid #b6d295;background:#fff3d9;color:var(--ink);border-radius:25px;padding:32px;width:min(90vw,440px);max-height:85dvh;box-shadow:0 25px 100px #031a1ac0}dialog::backdrop{background:#052b2bc9;backdrop-filter:blur(6px)}dialog h2{font-family:Outfit;font-size:32px;letter-spacing:-1px;margin:8px 0 16px}dialog p{font-size:15px;line-height:1.6;color:#4e7164}.close{position:absolute;right:12px;top:10px;background:none;border:0;color:var(--ink);font-size:28px}.primary,.secondary{display:block;width:100%;padding:14px;border-radius:13px;font-size:15px;font-weight:700;margin-top:12px}.primary{border:0;background:#1a584b;color:#fff3d9}.secondary{border:1px solid #aec19f;background:transparent;color:#245a4d}.modal-art{width:120px;height:120px;object-fit:contain;display:block;margin:auto}.modal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.modal-grid button{color:#15493e;border:1px solid #d5d9b5;background:#efe3c6;border-radius:12px;padding:8px;font-size:11px}.modal-grid img{width:70px;height:75px;display:block;margin:auto}.badge{display:inline-block;background:#ddec9c;padding:7px 12px;border-radius:20px;font-size:12px;font-weight:700}
@media(min-width:1500px){main{padding:42px 0}.game{max-width:440px}}@media(max-width:1100px){.shell{padding:0 3%}main{gap:3%;grid-template-columns:1fr minmax(320px,400px) 1fr}.recipe{height:63px}.recipe img{width:34px}.rname{font-size:9px!important}.edition{display:none}h1{font-size:48px}.eyebrow{font-size:9px}}
@media(max-width:880px){main{grid-template-columns:1fr 1fr;max-width:720px;margin:auto;gap:30px}.intro{display:none}.game{width:100%}.recipes{max-width:300px}header{height:78px}footer{max-width:720px;margin:auto}}
@media(max-width:600px){body{background:#103c3b}.shell{padding:0 12px}header{height:65px;border:0}.brand{font-size:20px;padding-left:35px}.brandmark{font-size:31px}.brand small{font-size:8px;letter-spacing:3px}.header-right{gap:8px}.icon{height:33px;width:33px}main{display:block;padding:0;max-width:430px}.recipes{display:none}.game{border-width:3px;border-radius:23px;margin:auto;max-width:min(430px,calc((100dvh - 225px)*.84 + 32px))}.game-top{height:72px;padding:8px 13px}.score strong{font-size:25px}.playfield{margin:0 7px;border-width:7px}.game-bottom{height:73px;padding:5px 7px}.power{height:54px}.game-bottom small{font-size:8px}.combo strong{font-size:20px}.level-chip b{font-size:23px}footer{border:0;justify-content:center;padding:14px 0;font-size:8px}footer span:first-child{display:none}.launch-hint{font-size:7px}.board-label{font-size:8px}.mobile-collection{display:block}dialog{padding:27px 22px}#collection{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Tropical full-screen game skin. Gameplay coordinates remain unchanged. */

:root{color-scheme:light;--ink:#79451f;--cream:#fff5c8;--lime:#b5f13d}body{background:#36cfe4 url('tropical-scene.webp') center 35%/cover fixed;color:#78421f;font-family:Nunito,'DM Sans',sans-serif}.shell{max-width:none;min-height:100dvh;padding:0;display:flex;justify-content:center;align-items:center}.game{container-type:inline-size;width:min(100vw,calc(100dvh * .52));max-width:none;aspect-ratio:.52;background:url('tropical-scene.webp') center/100% 100%;border:0;border-radius:0;box-shadow:0 0 70px #13434766;overflow:hidden;position:relative}.game header{position:absolute;top:3%;left:5%;right:5%;height:auto;border:0;z-index:4}.brand{font-size:5.5cqw;color:#fff6c1;line-height:1;text-shadow:0 3px #704216,1px 0 #704216,-1px 0 #704216;font-weight:900;padding:0;transform:rotate(-3deg)}.brandmark,.edition{display:none}.brand small{font-size:2cqw;letter-spacing:.2em;text-align:center;margin-top:5px}.header-right{gap:1.7cqw}.icon{height:8cqw;width:8cqw;min-height:28px;min-width:28px;border:2px solid #aa6a31;border-radius:11px;background:linear-gradient(#fff3bd,#efc97f);box-shadow:inset 0 2px #fff9d1,0 3px #74431d;color:#835326;font-size:4cqw}.icon:hover{background:#fff1ad}.game-top{position:absolute;top:12%;left:32%;right:32%;height:auto;padding:3cqw 1cqw 1.5cqw;display:block;background:linear-gradient(#a45f31,#783c1e);border:3px solid #c79556;border-radius:12px;box-shadow:inset 0 0 0 2px #ddac64,0 4px #74431e;color:#fff7d4;z-index:3}.score strong{font-size:9cqw;line-height:1.1;font-weight:900;text-shadow:0 3px #593719}.score small{display:none}.score>span{color:#ffe4a1;font-size:2.3cqw;font-weight:800}.progress{position:absolute;top:-3cqw;left:0;right:0;height:5cqw;margin:0;border:2px solid #9a6c23;background:#385800;box-shadow:inset 0 2px #204100;border-radius:8px}.progress i{background:linear-gradient(#c1ff48,#64b900)}.level-chip{position:absolute;top:-4.5cqw;left:-4cqw;border:2px solid #5d920b;background:linear-gradient(#b3fa40,#67b900);box-shadow:inset 0 2px #e1ff92,0 2px #467811;border-radius:8px;padding:.8cqw 1.3cqw;z-index:2}.level-chip>span{display:none}.level-chip small{font-size:1.8cqw}.level-chip b{font-size:4.8cqw;color:white;text-shadow:0 2px #477c0a}.pause{position:fixed;position:absolute;top:-18cqw;right:-26cqw;visibility:hidden}.game header .header-right{padding-right:0}.game-bottom{position:absolute;inset:0;height:auto;padding:0;background:none;pointer-events:none}.game-bottom>*{pointer-events:auto}.combo,.next{position:absolute;top:12%;border:3px solid #bb793e;border-radius:12px;background:linear-gradient(#fff7d6,#ffdfa1);box-shadow:inset 0 0 0 2px #fff1b9,0 4px #875024;padding:1.5cqw}.combo{left:3%;width:26%;text-align:center}.combo:before{content:'🏆';font-size:6cqw;float:left;line-height:1.3}.combo small{font-size:1.9cqw;letter-spacing:0}.combo strong{font-size:4.7cqw;margin-top:1px;color:#8c4b21;font-weight:900}.next{right:3%;width:26%;display:flex;align-items:center;gap:1cqw}.next small{font-size:2.4cqw;letter-spacing:0;color:#8c4b21;font-weight:900}.next>div{width:10cqw;height:11cqw}.power{position:absolute;top:22%;width:15cqw;height:15cqw;border:2px solid #559606;border-radius:12px;background:linear-gradient(#b8fa29,#78d000);box-shadow:inset 0 3px #edff9b,0 4px #477f04;color:white;z-index:4;text-shadow:0 2px #428005}.power>span{color:#47c7ef;font-size:10cqw;line-height:9cqw;font-weight:900;-webkit-text-stroke:1px #2484a1;text-shadow:0 3px #206e94}.power small{font-size:2.5cqw;letter-spacing:0;font-weight:900}.power b{position:absolute;right:-1.5cqw;bottom:-1cqw;background:#ed3530;border:2px solid #fff3c4;border-radius:6px;padding:0 1.1cqw;font-size:3cqw}.power:disabled{opacity:.7;filter:saturate(.75)}#undo{left:5%}#mix{right:5%}.playfield{position:absolute;top:32%;left:5%;width:90%;margin:0;aspect-ratio:400/480;border:0;border-radius:8px;background:url('sand.webp') center/100% 100%;box-shadow:0 0 0 3px #80d8d3,0 0 0 6px #3d898580,0 0 0 10px #dc953f,0 0 0 13px #fac36b,0 7px 0 13px #a1652c,0 13px 16px #784c2640;overflow:hidden}canvas{background:transparent;border-radius:8px}.board-label{top:69%;font-size:8cqw;letter-spacing:0;color:#e5a86466;text-shadow:0 1px #fff0b6;transform:rotate(13deg)}.board-label span{font-size:0}.board-label:after{content:'✦';font-size:9cqw}.launch-hint{font-size:2.1cqw;letter-spacing:.09em;bottom:1.5%;color:#986c34;font-weight:800}.toast{font-size:6.5cqw;text-shadow:0 3px #b8582a,1px 0 #b8582a,-1px 0 #b8582a;color:#fff5b2;font-weight:900}.recipes{display:block;position:absolute;bottom:2.4%;left:4%;right:4%;max-width:none;padding:1.5cqw 2cqw;border:3px solid #bc7b37;border-radius:14px;background:linear-gradient(#fff5d1,#ffdfa0);box-shadow:inset 0 0 0 2px #fff7d4,0 4px #885023}.recipe-heading,.recipe-sub{display:none}.collection-button{display:block!important;border:0;background:none;font-weight:900;color:#8d5426;font-size:2.4cqw;padding:0 0 1cqw;letter-spacing:.05em}#recipeList{display:flex;gap:0;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#bf934f transparent;padding-bottom:3px}.recipe{flex:0 0 10.8%;height:auto;min-width:0;border:0;background:none;border-radius:0;padding:0;display:block}.recipe img{width:100%;height:9cqw;object-fit:contain;filter:drop-shadow(0 2px 1px #aa824e55)}.recipe.locked img{opacity:.72;filter:drop-shadow(0 2px 1px #aa824e55)}.recipe .rname{font-size:0!important;line-height:0}.recipe .rnum{font-size:2cqw;line-height:1;margin:0;color:#956331;font-weight:800}.recipe:last-child{background:none;border:0}.recipe:hover{background:#ffc64733}.collection-progress{margin-top:1cqw;font-size:2.1cqw;color:#966e36;display:flex;align-items:center;gap:2cqw}.collection-progress>div{margin:0;flex:1;background:#d9bd7e;height:3px}.collection-progress i{background:#84c517}dialog{border:5px solid #d8933d;outline:1px solid #85502a;background:linear-gradient(#fff5d3,#ffe2a0);color:#7c4e27;box-shadow:inset 0 0 0 2px #fff5c7,0 25px 80px #17465288}dialog::backdrop{background:#14556099}dialog h2{color:#925325;font-weight:900}dialog p{color:#805733;font-size:16px}.close{color:#cc4524}.primary{background:linear-gradient(#b3ec3c,#7fc210);color:white;text-shadow:0 2px #648a23;border:2px solid #689b16;box-shadow:0 3px #64901c;font-weight:900}.secondary{background:#fff0c3;border:2px solid #d6a756;color:#875b2a}.badge{background:#c4e861;color:#567313}.modal-grid button{background:#fff0c4;border:2px solid #d9b275;color:#88552b;font-weight:800;font-size:12px}
@media(max-width:600px){body{background:#ebc271}.shell{padding:0;align-items:flex-start}.game{width:min(100vw,calc(100dvh * .52));max-width:none;border:0;border-radius:0}.game header{height:auto}.game-top{height:auto;padding:3cqw 1cqw 1.5cqw}.score strong{font-size:9cqw}.game-bottom{height:auto;padding:0}.game-bottom small{font-size:2.4cqw}.level-chip b{font-size:4.8cqw}.combo strong{font-size:4.7cqw}.power{height:15cqw}.playfield{margin:0;border:0}.recipes{display:block}.collection-button{display:block!important}.launch-hint{font-size:2.1cqw}.brand{font-size:5.5cqw;padding-left:0}.brand small{font-size:2cqw}.icon{height:8cqw;width:8cqw}.header-right{gap:1.7cqw}}
@media(max-height:500px) and (orientation:landscape){.game{width:300px;flex-shrink:0}.shell{align-items:flex-start}}

.game header .pause{position:static;visibility:visible;font-size:3cqw}

.game .recipes{padding:1cqw 2cqw;bottom:1.5%}
.game #recipeList{height:12cqw;min-height:0;overflow-y:hidden;scrollbar-width:none;align-items:flex-start}
.game #recipeList::-webkit-scrollbar{display:none}
.game .recipe{height:11cqw;display:flex;flex-direction:column;align-items:center;gap:0;justify-content:flex-start}
.game .recipe img{height:8.5cqw;flex:none}
.game .recipe .rname{font-size:0!important;line-height:0}
.game .recipe .rnum{font-size:1.9cqw;line-height:1.1;white-space:nowrap}
.game .combo{padding:1.5cqw 1cqw;min-height:14cqw}
.game .combo small{display:block;font-size:2.2cqw;line-height:1.2;white-space:nowrap;letter-spacing:0}
.game .combo strong{font-size:4.7cqw;line-height:1.1}
.game .collection-progress{margin-top:0}
.game .collection-button{font-size:2.3cqw;padding-bottom:.6cqw}

.mode-picker{position:absolute;top:23%;left:23%;right:23%;z-index:5;text-align:center}.mode-picker>div{display:flex;border:2px solid #a26d27;border-radius:10px;padding:3px;background:#fff0bb;box-shadow:0 3px #89612b}.mode-picker button{flex:1;border:0;border-radius:7px;background:none;color:#8a5d29;padding:7px 2px;font-size:3.2cqw;font-weight:900;white-space:nowrap;min-height:32px}.mode-picker button[aria-pressed="true"]{color:#fff;background:linear-gradient(#a4e529,#6eae09);box-shadow:inset 0 2px #d7f57a,0 2px #679523;text-shadow:0 1px #507b10}.mode-picker small{display:block;color:#fffbd5;text-shadow:0 1px 3px #734a20;font-size:2.6cqw;font-weight:900;margin-top:5px}.game .recipe.reached{background:#c1f04c88;border-radius:8px;box-shadow:inset 0 0 0 2px #78b10b}.game .score>span{overflow-wrap:anywhere;display:block;line-height:1.15;min-height:2.8cqw}
