*{box-sizing:border-box}body{margin:0;background:#163f39;font-family:Trebuchet MS,Arial,sans-serif;color:#653316;display:grid;place-items:center;min-height:100dvh;background-image:radial-gradient(ellipse at top,#90cabb,#234c40 75%)}button{font:900 20px Trebuchet MS,Arial;cursor:pointer;color:#713d13;border:3px solid #ffcf63;background:linear-gradient(#fff6cd,#ffc75a);border-radius:20px;box-shadow:0 4px 0 #b96920, inset 0 2px 0 #fff9;min-width:48px;min-height:48px;touch-action:manipulation}button:active{transform:translateY(3px);box-shadow:0 1px 0 #b96920}button:disabled{opacity:.6;cursor:wait}#app{position:relative;width:min(100vw,56.25dvh);aspect-ratio:9/16;overflow:hidden;background:#95dfe8;box-shadow:0 0 70px #082f2a;border-radius:20px;isolation:isolate}canvas{width:100%;height:100%;display:block;touch-action:none}header{position:absolute;top:2%;left:4%;right:4%;height:10%;display:flex;gap:9px}header button{width:17%;background:linear-gradient(#ffbf55,#e98727);color:white;text-shadow:0 2px #9a4a15;font-size:26px}header button:last-child{background:linear-gradient(#7cdfff,#008bdf);border-color:#acf6ff;box-shadow:0 4px #006fa6}.score{flex:1;border:3px solid #e9a83c;background:linear-gradient(#fff8dd,#ffdfa0);border-radius:23px;box-shadow:0 4px #b86928;display:grid;text-align:center;align-content:center;grid-template-columns:1fr 1fr;padding:3px 12px}.score small{font-size:10px;letter-spacing:2px}.score strong{grid-column:1;font-size:24px}.score span{grid-column:2;grid-row:1/3;align-self:center;color:#eaa800;font-size:25px;white-space:nowrap}#goal{position:absolute;top:13%;width:100%;text-align:center;font-weight:bold;font-size:14px;color:#375a51;text-shadow:0 1px white}#bottom{position:absolute;bottom:4%;left:5%;right:5%;display:flex;align-items:end;justify-content:space-between}#bottom button{width:60px;height:58px}small{display:block;font-size:10px;letter-spacing:1px}#shots{background:#fff5d8;border:3px solid #e9aa3b;border-radius:20px;text-align:center;padding:5px 20px;box-shadow:0 3px #a36724}#shots strong{font-size:27px}#banner{position:absolute;bottom:0;width:100%;height:2.5%;font-size:8px;letter-spacing:2px;text-align:center;background:#fff8cbbf;padding:3px}#overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#164e4166;backdrop-filter:blur(5px);padding:25px;gap:14px}#overlay.hidden{display:none}.panel{width:100%;padding:25px 20px;background:linear-gradient(#fff9dd,#ffe7ac);border:5px solid #f1b244;box-shadow:0 7px #a35b21,0 15px 30px #224c4c66;border-radius:32px;text-align:center}.panel h1{font-size:42px;line-height:.95;margin:10px 0;color:#ed9226;text-shadow:0 2px white,0 4px #9c4c26;letter-spacing:-2px}.panel h2{font-size:29px;margin:0 0 10px}.panel p{line-height:1.5;font-size:14px}.panel button{display:block;width:100%;margin-top:12px}.panel .primary{background:linear-gradient(#b7ee63,#60bd36);color:#fff;border-color:#e1ff9c;text-shadow:0 2px #4e902c;box-shadow:0 4px #3c842a}.eyebrow{font-size:10px;letter-spacing:3px;font-weight:bold}.bigstars{color:#eda60f;font-size:48px}.map{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;max-height:49vh;overflow:auto;padding:5px}.map button{font-size:17px;min-width:0;margin:0}.map small{font-size:8px;letter-spacing:0}.brand{color:#fffbd9;font-size:11px;letter-spacing:3px;text-shadow:0 2px #245343}#toast{position:absolute;top:56%;width:100%;text-align:center;font-size:32px;font-weight:900;color:#fff5ab;text-shadow:0 3px #ab561d;pointer-events:none;transition:opacity .3s}@media(max-width:500px){#app{border-radius:0}} 
@supports(padding:max(0px)){body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}#app{max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));width:min(100vw,calc((100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom))* .5625))}}
#charge{position:absolute;left:27%;bottom:15%;width:46%;height:19px;background:#3d2764d9;border:2px solid #fff0ac;border-radius:15px;overflow:hidden;box-shadow:0 2px 8px #37154a66}#charge span{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#ff5fbe,#ac72ff,#70ecff);transition:width .3s}#charge b{position:absolute;inset:0;text-align:center;font-size:9px;line-height:15px;color:white;letter-spacing:1px}#toast{font-size:clamp(20px,4vw,31px);padding:0 15px}.panel p{margin:12px 0}.panel{max-height:90%;overflow:auto}
#bossHud{position:absolute;top:15%;left:15%;width:70%;height:18px;border:2px solid #ffdf83;border-radius:12px;background:#48264d;overflow:hidden}#bossHud span{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#e94c82,#ff9b69);transition:width .25s}#bossHud b{position:absolute;inset:0;text-align:center;color:#fff;font-size:9px;line-height:14px}.worldPath{max-height:44vh;overflow-y:auto;padding:5px}.worldCard{border-radius:22px;margin:12px 0;padding:14px;background-size:cover;background-position:center;color:white;box-shadow:0 3px 0 #a56531}.worldCard h3{margin:0;font-size:20px;text-shadow:0 2px #31454c}.worldCard p{font-size:11px;margin:5px}.nodes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:6px 0}.nodes button{min-width:48px;height:58px;font-size:20px;margin:0!important;position:relative}.nodes button:nth-child(3n+2){transform:translateY(8px)}.nodes small{font-size:7px;letter-spacing:0}.nodes button:disabled{opacity:.55;cursor:not-allowed}.village{display:flex;justify-content:center;gap:3px;flex-wrap:wrap;min-height:40px;background:#b0d584;border-radius:15px;padding:5px}.house{background-image:url('assets/worlds/world-0.png');background-position:85% 80%;background-size:180px;height:36px;width:32px;border-radius:12px 12px 4px 4px;border:2px solid #ffdd7f;color:#fff;font-size:20px;text-shadow:0 2px #a25133}#gift{font-size:14px!important;min-height:48px}
.nodes{position:relative}.nodes:before{content:'';position:absolute;inset:20% 15%;border:4px dashed #fff1ae88;border-radius:35%;pointer-events:none}.nodes button{z-index:1}
