@import url("https://cdn.jsdelivr.net/npm/vazirmatn@33.0.3/Vazirmatn-font-face.css");
html,body{margin:0;height:100%;overflow:hidden;background:#1a0f0a;font-family:Vazirmatn,sans-serif;touch-action:none;user-select:none;-webkit-user-select:none}
#game-root{display:none!important}
#app{position:fixed;top:0;bottom:0;left:50%;transform:translateX(-50%);width:min(100vw,62vh);overflow:hidden;background:#2a160c}
#bgBlur{position:fixed;inset:0;background:url(./assets/title_bg.webp) center/cover;filter:blur(18px) brightness(.45)}
#cv{position:absolute;inset:0;width:100%;height:100%;display:block}
.scr{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;color:#fff3d6;direction:rtl;line-height:1.8}
.scr.off{display:none}
.btn{background:url(./assets/btn_primary.webp) center/100% 100% no-repeat;border:0;color:#3a1600;font:900 22px Vazirmatn;width:230px;height:76px;cursor:pointer;text-shadow:0 1px 0 #ffe9a8;transition:transform .1s}
.btn.sec{background-image:url(./assets/btn_secondary.webp);color:#fff3d6;text-shadow:0 2px 0 #000}
.btn:active{transform:scale(.93)}
.btn.sm{width:170px;height:58px;font-size:18px}
.ink{text-shadow:0 3px 0 #000,0 0 12px #000}
#menu{background:url(./assets/title_bg.webp) center/cover;justify-content:flex-end;padding-bottom:9vh;gap:10px}
#menu .logo{position:absolute;top:5%;width:78%;display:flex;flex-direction:column;align-items:center}
#menu .logo img{width:62%;animation:bob 3s ease-in-out infinite}
#menu h1{margin:-28px 0 0;font:900 clamp(44px,13vw,66px) Vazirmatn;color:#ffd257;-webkit-text-stroke:2px #3a1100;text-shadow:0 6px 0 #7a1d00,0 10px 18px #000}
#menu .sub{font-weight:700;font-size:16px;background:#0008;padding:0 14px;border-radius:12px}
@keyframes bob{50%{transform:translateY(-8px) rotate(-2deg)}}
.coins{position:absolute;top:max(12px,env(safe-area-inset-top));inset-inline-start:12px;display:flex;align-items:center;gap:6px;background:#000a;border:2px solid #d9a43a;border-radius:20px;padding:0 12px 0 4px;font-weight:900;font-size:18px;color:#ffd257}
.coins img{width:32px}
.back{position:absolute;top:max(12px,env(safe-area-inset-top));inset-inline-end:12px;width:auto;padding:0 16px;height:46px;font-size:16px}
#map{background:url(./assets/map_bg.webp) center/cover}
#map h2,#shop h2{margin:62px 0 0;font:900 30px Vazirmatn;color:#ffd257;-webkit-text-stroke:1px #3a1100}
#nodes{position:relative;flex:1;width:100%}
.node{position:absolute;width:84px;transform:translate(50%,-50%);display:flex;flex-direction:column;align-items:center;cursor:pointer}
.node .disc{width:70px;height:70px;border-radius:50%;background:radial-gradient(#ffcf5a,#c0570f);border:4px solid #3a1100;box-shadow:0 5px 0 #3a1100;display:flex;align-items:center;justify-content:center;font:900 28px Vazirmatn;color:#3a1100;position:relative}
.node.cur .disc{animation:pulse 1s infinite}
@keyframes pulse{50%{box-shadow:0 5px 0 #3a1100,0 0 0 10px #ffd25766}}
.node.lock .disc{background:radial-gradient(#777,#333);color:#999}
.node .disc img.lk{position:absolute;width:62px}
.node .st{display:flex;margin-top:-10px}.node .st img{width:24px}.node .st img.no{filter:grayscale(1) brightness(.4)}
.node .nm{font-size:13px;font-weight:800;background:#000b;border-radius:8px;padding:0 6px;white-space:nowrap}
#shop{background:url(./assets/map_bg.webp) center/cover}
#shop::before{content:"";position:absolute;inset:0;background:#0009}
#shop>*{position:relative}
#shopList{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:16px;width:100%;box-sizing:border-box;overflow:auto}
.card{background:url(./assets/shop_card_frame.webp) center/100% 100% no-repeat;aspect-ratio:3/4;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12% 10%;text-align:center;min-width:0}
.card b{font-size:16px;color:#ffd257}.card small{font-size:12px;opacity:.9;line-height:1.6}
.card .btn{width:100%;height:46px;font-size:15px;margin-top:6px}
.card .btn[disabled]{filter:grayscale(1);opacity:.6}
#hud{position:absolute;top:max(8px,env(safe-area-inset-top));left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:0 10px;pointer-events:none;direction:rtl}
#hudPanel{background:url(./assets/hud_panel.webp) center/100% 100% no-repeat;display:flex;align-items:center;gap:10px;padding:6px 22px;min-height:44px}
#hudPanel .sc{font:900 20px Vazirmatn;color:#ffd257}
#hearts img{width:26px}#hearts img.no{filter:grayscale(1) brightness(.4)}
#pauseB{pointer-events:auto;width:52px;height:52px;background:url(./assets/pause_btn.webp) center/contain no-repeat;border:0;cursor:pointer}
#prog{position:absolute;top:calc(max(8px,env(safe-area-inset-top)) + 58px);left:16px;right:16px;height:10px;background:#000a;border:2px solid #d9a43a;border-radius:8px;overflow:hidden}
#prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,#ffd257,#ff7b1a);margin-inline-start:auto}
#fireB{position:absolute;bottom:max(18px,env(safe-area-inset-bottom));inset-inline-start:14px;width:78px;height:78px;border-radius:50%;border:4px solid #3a1100;background:conic-gradient(#ff6a00 var(--p,0%),#000a 0);display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;font:900 15px Vazirmatn}
#fireB img{position:absolute;width:64px;opacity:.5}#fireB span{position:relative}
#fireB.ready{animation:pulse 0.6s infinite}#fireB.ready img{opacity:1}
#hint{position:absolute;top:28%;left:8%;right:8%;text-align:center;font:900 22px Vazirmatn;background:#000b;border:2px solid #ffd257;border-radius:16px;padding:8px;pointer-events:none;transition:opacity .3s}
.dlg{position:absolute;inset:0;background:#000a;display:flex;align-items:center;justify-content:center}
.panel{background:url(./assets/dialog_panel_frame.webp) center/100% 100% no-repeat;width:min(92%,380px);aspect-ratio:1/1.15;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:14%;box-sizing:border-box;text-align:center}
.panel h3{margin:0;font:900 28px Vazirmatn;color:#ffd257;-webkit-text-stroke:1px #3a1100}
.panel .btn{width:200px;height:62px;font-size:19px}
#resStars{display:flex;gap:4px}#resStars img{width:58px;transform:scale(0);transition:transform .35s cubic-bezier(.3,1.8,.5,1)}#resStars img.on{transform:scale(1)}#resStars img.no{filter:grayscale(1) brightness(.4);transform:scale(.8)}
#resEmb{width:62%;margin-top:-30%}
.float{position:absolute;font:900 22px Vazirmatn;color:#ffd257;pointer-events:none;text-shadow:0 2px 0 #000;animation:fl .8s forwards}
@keyframes fl{to{transform:translateY(-50px);opacity:0}}
