  :root{--bg:#0b1220;--panel:#141d2e;--panel2:#1b2740;--line:#2a3a58;--text:#eef3ff;--muted:#8fa0bf;
    --green:#41e38a;--gold:#ffcf3f;--cyan:#4fd6ff;--red:#ff5a6e;--violet:#b593ff}
  *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
  html,body{margin:0;background:var(--bg);color:var(--text);font-family:'Nunito',system-ui,sans-serif;}
  body{overscroll-behavior:none;padding-bottom:90px}
  .wrap{max-width:540px;margin:0 auto}
  header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:8px;
    padding:10px 12px;background:linear-gradient(180deg,rgba(11,18,32,.98),rgba(11,18,32,.88));backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line)}
  .cash{display:flex;align-items:center;gap:8px}
  .coin{width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff3a8,#ffcf3f 45%,#d99a00);
    display:grid;place-items:center;font-weight:900;color:#7a5200;font-size:16px;box-shadow:0 0 12px rgba(255,207,63,.4)}
  .money{font-size:22px;font-weight:900;line-height:1;white-space:nowrap}
  .inc{white-space:nowrap;font-size:11px !important}
  .cash{min-width:0;overflow:hidden}
  header > div:last-child{flex:none}
  .inc{font-size:12px;color:var(--green);font-weight:800}
  .hbtn{font-family:inherit;background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:12px;
    padding:5px 5px;font-size:14px;cursor:pointer}
  .map{position:relative}
  #cv{display:block;width:100%;touch-action:manipulation;position:sticky;top:0}
  .unlock{position:absolute;left:50%;transform:translate(-50%,-50%);z-index:3;text-align:center;width:min(300px,82%)}
  .unlock .t{font-size:20px;font-weight:900;text-shadow:0 2px 8px #000}
  .unlock .d{font-size:12px;color:#cfd8ef;margin:4px 0 10px;text-shadow:0 1px 4px #000}
  .big{font-family:inherit;font-weight:900;font-size:16px;border:none;border-radius:14px;padding:13px 16px;cursor:pointer;width:100%;
    background:linear-gradient(180deg,#5dff9f,#22b864);color:#05301a;box-shadow:0 4px 0 #13723d,0 8px 20px rgba(0,0,0,.4)}
  .big:active{transform:translateY(3px);box-shadow:0 1px 0 #13723d}
  .big:disabled{background:linear-gradient(180deg,#56627a,#3e4860);color:#aab4c8;box-shadow:0 4px 0 #2a3244;cursor:default}
  .quest{position:fixed;bottom:16px;left:max(12px,calc(50% - 258px));right:calc(max(16px,50% - 254px) + 158px);z-index:12;
    background:var(--panel);border:2px solid var(--line);border-radius:16px;padding:8px 10px;cursor:pointer;box-shadow:0 8px 20px rgba(0,0,0,.45);
    font-size:12px;line-height:1.3;transition:transform .15s}
  .quest:active{transform:scale(.97)}
  .quest{bottom:74px;right:max(12px,calc(50% - 258px))}
  .quest.mini{bottom:16px;right:auto;width:62px;padding:8px 8px 6px;text-align:center;font-size:18px}
  .quest .qx{position:absolute;top:2px;right:8px;font-size:14px;color:var(--muted);padding:2px 4px}
  .quest.mini .qx{display:none}
  .quest.done{border-color:var(--gold);animation:qglow .7s infinite alternate}
  @keyframes qglow{to{box-shadow:0 0 22px rgba(255,207,63,.65)}}
  .quest .qt{font-weight:900;font-size:12.5px}
  .quest .qr{color:var(--gold);font-weight:800;font-size:11px}
  .quest .bar{height:5px;margin-top:4px}
  .quest .bar i{background:var(--gold)}
  .fly{position:fixed;z-index:30;width:16px;height:16px;border-radius:50%;pointer-events:none;
    background:radial-gradient(circle at 35% 35%,#fff3a8,#ffcf3f 45%,#d99a00);transition:transform .65s cubic-bezier(.5,-0.3,.7,1),opacity .65s}
  .coin.bump{animation:bump .25s}
  @keyframes bump{50%{transform:scale(1.25)}}
  .evbar{position:sticky;top:61px;z-index:9;display:flex;gap:6px;flex-wrap:wrap;justify-content:center;padding:6px 8px;
    background:rgba(11,18,32,.82);backdrop-filter:blur(4px);border-bottom:1px solid var(--line)}
  .evbar span{font-size:11.5px;font-weight:800;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:3px 8px;white-space:nowrap}
  .evbar span.good{border-color:#22b864;color:#7dffb3}
  .evbar span.bad{border-color:#ff5a6e;color:#ffb3bd}
  .evbar span.order{border-color:var(--gold);color:var(--gold)}
  .big.ghost{background:linear-gradient(180deg,#56627a,#3e4860);color:#e2e8f5;box-shadow:0 4px 0 #2a3244}
  .colg{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px}
  .colg div{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:6px 8px;font-size:11.5px;color:var(--muted);line-height:1.3}
  .colg div.got{border-color:#c2185b;color:var(--text)}
  .colg b{color:#ff9ff3}
  h4{margin:16px 2px 8px;font-size:15px}
  .modal .box.r-C{border-color:#9aa5b1}
  .modal .box.r-R{border-color:#4fd6ff;box-shadow:0 0 40px rgba(79,214,255,.5)}
  .modal .box.r-E{border-color:#b593ff;box-shadow:0 0 50px rgba(181,147,255,.6)}
  .modal .box.r-D{border-color:#7df9ff;box-shadow:0 0 110px rgba(125,249,255,1);animation:divin 1s infinite alternate}
  @keyframes divin{0%{box-shadow:0 0 90px #7df9ff}33%{box-shadow:0 0 130px #ffffff}66%{box-shadow:0 0 120px #ffd60a}100%{box-shadow:0 0 130px #ff4dff}}
  .modal .box.r-M{border-color:#ff4dff;box-shadow:0 0 90px rgba(255,77,255,.9);animation:myth 1.2s infinite alternate}
  @keyframes myth{0%{box-shadow:0 0 80px #ff4dff}50%{box-shadow:0 0 110px #4fd6ff}100%{box-shadow:0 0 110px #ffcf3f}}
  .modal .box.r-L{border-color:#ffcf3f;box-shadow:0 0 70px rgba(255,207,63,.8);animation:lgd 1s infinite alternate}
  @keyframes lgd{to{box-shadow:0 0 110px rgba(255,207,63,1)}}
  .em.shake{animation:shake .12s infinite}
  @keyframes shake{0%{transform:rotate(-10deg) scale(1.1)}50%{transform:rotate(10deg) scale(1.2)}100%{transform:rotate(-10deg) scale(1.1)}}
  .em.pop{animation:popin .5s cubic-bezier(.2,1.6,.4,1)}
  @keyframes popin{from{transform:scale(0) rotate(-30deg)}to{transform:scale(1)}}
  .chests{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
  .chest{background:var(--panel2);border:2px solid var(--line);border-radius:16px;padding:10px 6px;text-align:center;cursor:pointer;font-family:inherit;color:var(--text)}
  .chest:active{transform:scale(.96)}
  .chest .ci{font-size:34px}
  .chest b{display:block;font-size:12px;margin:3px 0}
  .chest small{display:block;font-size:11px;color:var(--gold);font-weight:900}
  .chest[disabled]{opacity:.45}
  .cgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
  .cgrid div{background:var(--panel2);border:2px solid var(--line);border-radius:12px;padding:6px 2px;text-align:center;font-size:10px;line-height:1.25}
  .cgrid div i{font-style:normal;font-size:24px;display:block}
  .hlp b{font-size:12px !important}
  .fab{position:fixed;bottom:16px;right:max(16px,calc(50% - 254px));z-index:12;display:flex;gap:10px}
  .fab button{font-family:inherit;font-weight:900;border:none;border-radius:16px;padding:12px 16px;font-size:15px;cursor:pointer;
    background:linear-gradient(180deg,#ffb655,#ff7a1a);color:#3d1600;box-shadow:0 4px 0 #b44f00,0 8px 20px rgba(0,0,0,.45)}
  .fab button:disabled{background:linear-gradient(180deg,#56627a,#3e4860);color:#c3cbdc;box-shadow:0 4px 0 #2a3244}
  .fab button.on{animation:pulse .8s infinite alternate}
  @keyframes pulse{to{box-shadow:0 4px 0 #b44f00,0 0 26px rgba(255,140,30,.9)}}

  .sheet-bg{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:20;opacity:0;pointer-events:none;transition:opacity .2s}
  .sheet-bg.show{opacity:1;pointer-events:auto}
  .sheet{position:fixed;left:50%;bottom:0;width:min(540px,100%);transform:translate(-50%,105%);z-index:21;
    background:var(--panel);border-radius:22px 22px 0 0;border-top:1px solid var(--line);padding:14px 14px 22px;
    transition:transform .25s cubic-bezier(.2,.9,.3,1.1);max-height:78vh;overflow:auto}
  .sheet.show{transform:translate(-50%,0)}
  .grab{width:44px;height:5px;border-radius:3px;background:var(--line);margin:0 auto 12px}
  .sh-h{display:flex;align-items:center;gap:12px;margin-bottom:10px}
  .sh-ico{font-size:30px;width:54px;height:54px;border-radius:16px;background:var(--panel2);display:grid;place-items:center;border:1px solid var(--line)}
  .sh-h h3{margin:0;font-size:19px}
  .sh-h small{color:var(--muted);font-size:12px}
  .stat{background:var(--panel2);border-radius:12px;padding:9px 12px;font-size:13px;color:var(--muted);margin-bottom:10px;line-height:1.6}
  .stat b{color:var(--text)}
  .stat .warn{color:var(--red);font-weight:800}
  .modes{display:flex;gap:6px;justify-content:flex-end;margin-bottom:8px}
  .modes button{font-family:inherit;font-weight:800;background:var(--panel2);border:1px solid var(--line);color:var(--muted);border-radius:9px;padding:5px 12px;cursor:pointer}
  .modes button.on{background:var(--cyan);color:#04202b;border-color:var(--cyan)}
  .up{display:flex;align-items:center;gap:10px;background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin-bottom:8px}
  .up .l{flex:1;min-width:0}
  .up .l b{font-size:15px}
  .up .l div{font-size:12px;color:var(--muted);margin-top:2px}
  .up .l .nx{color:var(--green);font-weight:800}
  .buy{font-family:inherit;font-weight:900;border:none;border-radius:12px;padding:9px 10px;min-width:104px;cursor:pointer;
    background:linear-gradient(180deg,#5dff9f,#22b864);color:#05301a;box-shadow:0 3px 0 #13723d;font-size:13px;line-height:1.2}
  .buy:active{transform:translateY(2px);box-shadow:0 1px 0 #13723d}
  .buy:disabled{background:linear-gradient(180deg,#56627a,#3e4860);color:#aab4c8;box-shadow:0 3px 0 #2a3244;cursor:default}
  .buy small{display:block;font-size:10px;opacity:.85}
  .bar{height:6px;background:#0d1424;border-radius:3px;overflow:hidden;margin-top:5px}
  .bar i{display:block;height:100%;background:var(--cyan)}
  .danger{font-family:inherit;background:none;border:none;color:var(--red);text-decoration:underline;font-size:12px;cursor:pointer;margin-top:10px}

  .toast{position:fixed;left:50%;top:70px;transform:translate(-50%,-10px);background:var(--panel2);border:1px solid var(--line);
    color:var(--text);padding:10px 16px;border-radius:14px;font-size:13px;font-weight:800;z-index:40;max-width:90vw;text-align:center;
    opacity:0;transition:all .3s;pointer-events:none;box-shadow:0 8px 24px rgba(0,0,0,.4)}
  .toast.show{opacity:1;transform:translate(-50%,0)}
  .modal{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:50;display:none;place-items:center;padding:24px}
  .modal.show{display:grid}
  .modal .box{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:20px;max-width:340px;width:100%;text-align:center}
  .modal .em{font-size:48px}
  .modal h2{margin:6px 0 6px;font-size:20px}
  .modal p{font-size:14px;color:var(--muted);line-height:1.5;margin:0 0 16px}
  .modal p b{color:var(--gold)}
