/* ===========================================================
   ORANGE QUEST — Telegram Mini App (cPanel build)
   Professional dark-orange template + animations
   =========================================================== */
:root{
  --bg:#0a0603;
  --bg2:#120a05;
  --panel:#16100a;
  --panel2:#1d140b;
  --line:rgba(255,150,50,.16);
  --line2:rgba(255,150,50,.28);
  --txt:#f7ede2;
  --mut:#9a8a78;
  --mut2:#6f6357;
  --orange:#ff7a18;
  --orange2:#ffb24d;
  --gold:#ffcf5c;
  --green:#33d27e;
  --green2:#1f7d4d;
  --blue:#2f9fe0;
  --rad:20px;
  --grad:linear-gradient(135deg,#ff7a18,#ff9a3d 55%,#ffba5a);
  --grad-green:linear-gradient(135deg,#2fd673,#1c8f4e);
  --glow:0 0 0 1px var(--line),0 14px 38px -18px rgba(255,120,24,.55);
  --shadow:0 18px 40px -22px rgba(0,0,0,.9);
  --safe-b:calc(78px + env(safe-area-inset-bottom,0px));
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%}
body{
  background:
    radial-gradient(120% 70% at 50% -10%,#3a1c05 0%,rgba(58,28,5,0) 55%),
    radial-gradient(80% 50% at 50% 110%,#2a1404 0%,rgba(0,0,0,0) 60%),
    var(--bg);
  color:var(--txt);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
  overscroll-behavior:none;
}
.hidden{display:none!important}
b,strong{font-weight:800}
::-webkit-scrollbar{width:0}

/* ===================== SPLASH ===================== */
.splash{
  position:fixed;inset:0;z-index:9999;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:
    radial-gradient(60% 45% at 50% 42%,#3c1d04 0%,rgba(15,8,3,0) 70%),
    #0a0603;
  overflow:hidden;transition:opacity .55s ease,visibility .55s;
}
.splash.gone{opacity:0;visibility:hidden;pointer-events:none}
.sp-particles{position:absolute;inset:0;overflow:hidden}
.sp-particles i{
  position:absolute;bottom:-10px;width:4px;height:4px;border-radius:50%;
  background:radial-gradient(circle,#ffb24d,rgba(255,178,77,0));
  animation:rise linear infinite;opacity:.7
}
@keyframes rise{
  0%{transform:translateY(0) scale(.6);opacity:0}
  15%{opacity:.9}
  100%{transform:translateY(-105vh) scale(1.1);opacity:0}
}
.sp-orb{position:relative;width:190px;height:190px;display:grid;place-items:center;margin-bottom:30px}
.sp-ring{
  position:absolute;border-radius:50%;border:2px solid rgba(255,150,40,.5);
  box-shadow:0 0 30px rgba(255,140,30,.35) inset,0 0 30px rgba(255,140,30,.25);
  animation:spinSlow 9s linear infinite
}
.sp-ring.r1{inset:0}
.sp-ring.r2{inset:18px;border-color:rgba(255,180,80,.35);animation-duration:7s;animation-direction:reverse}
.sp-ring.r3{inset:36px;border-color:rgba(255,120,20,.6);animation-duration:5s}
@keyframes spinSlow{to{transform:rotate(360deg)}}
.sp-fruit{
  font-size:74px;filter:drop-shadow(0 8px 22px rgba(255,120,20,.7));
  animation:floaty 3s ease-in-out infinite
}
@keyframes floaty{50%{transform:translateY(-9px)}}
.sp-name{
  font-size:30px;font-weight:900;letter-spacing:1px;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:0 6px 24px rgba(255,120,20,.35);
}
.sp-sub{margin-top:8px;color:var(--mut);font-size:12px;letter-spacing:5px;font-weight:700}
.sp-bar{margin-top:26px;width:220px;height:8px;border-radius:8px;background:#241608;overflow:hidden}
.sp-bar i{display:block;height:100%;width:0;background:var(--grad);border-radius:8px;
  box-shadow:0 0 16px rgba(255,140,30,.7);animation:fill 2.4s ease forwards}
@keyframes fill{to{width:100%}}
.sp-dots{display:flex;gap:9px;margin-top:16px}
.sp-dots i{width:8px;height:8px;border-radius:50%;background:#3a2510;animation:pulseDot 1.4s infinite}
.sp-dots i:nth-child(2){animation-delay:.2s}
.sp-dots i:nth-child(3){animation-delay:.4s}
.sp-dots i:nth-child(4){animation-delay:.6s}
@keyframes pulseDot{50%{background:var(--orange);box-shadow:0 0 12px var(--orange)}}
.sp-prep{margin-top:16px;color:var(--mut2);font-size:11px;letter-spacing:3px;font-weight:700}

/* ===================== APP SHELL ===================== */
#app{max-width:520px;margin:0 auto;min-height:100%;padding-bottom:var(--safe-b)}
.topbar{position:sticky;top:0;z-index:40;background:linear-gradient(#0a0603,rgba(10,6,3,.86));
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:10px 14px 8px}
.tb-row{display:flex;align-items:center;gap:10px}
.tb-title{font-weight:900;font-size:17px;flex:1;display:flex;align-items:center;gap:6px}
.tb-title .em{font-size:18px}
.tb-pill{display:flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--line2);
  padding:6px 12px;border-radius:999px;font-weight:900;color:var(--gold);font-size:15px}
.tb-pill .em{font-size:15px}

/* ===================== SCREEN / CARDS ===================== */
main#screen{padding:14px 14px 26px;display:flex;flex-direction:column;gap:14px;
  animation:fadeUp .4s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.card{background:linear-gradient(180deg,var(--panel),#0f0a05);border:1px solid var(--line);
  border-radius:var(--rad);padding:16px;box-shadow:var(--shadow);position:relative}
.card.topglow::before{content:"";position:absolute;left:14px;right:14px;top:0;height:2px;border-radius:2px;
  background:var(--grad);box-shadow:0 0 16px rgba(255,140,30,.7)}
.card.green-glow::before{background:var(--grad-green);box-shadow:0 0 16px rgba(45,200,120,.6)}
.card.blue-glow::before{background:linear-gradient(90deg,#2f9fe0,#7fd0ff);box-shadow:0 0 16px rgba(47,159,224,.6)}
.row{display:flex;align-items:center;gap:12px}
.between{justify-content:space-between}
.col{display:flex;flex-direction:column}
.mt{margin-top:12px}
.muted{color:var(--mut)}
.center{text-align:center}
.gold{color:var(--gold)}.org{color:var(--orange2)}.green{color:var(--green)}.blue{color:var(--blue)}
.sec{display:flex;align-items:center;gap:8px;font-weight:900;font-size:13px;letter-spacing:2px;color:var(--mut);
  text-transform:uppercase;margin:4px 2px -2px}
.sec .ln{flex:1;height:1px;background:var(--line)}
.sec .bar{width:4px;height:16px;border-radius:4px;background:var(--orange)}

/* icon badges */
.ibox{width:56px;height:56px;min-width:56px;border-radius:16px;display:grid;place-items:center;font-size:24px;
  background:linear-gradient(180deg,#27190c,#160d05);border:1px solid var(--line2)}
.ibox.org{box-shadow:0 0 0 1px var(--line2),0 8px 20px -10px rgba(255,120,20,.7)}
.ibox.green{border-color:rgba(45,200,120,.4);color:var(--green)}
.ibox.blue{border-color:rgba(47,159,224,.4);color:var(--blue)}

/* ===================== BUTTONS ===================== */
.btn{border:none;cursor:pointer;font-weight:800;font-size:14px;border-radius:14px;padding:11px 16px;
  background:var(--panel2);color:var(--txt);border:1px solid var(--line2);transition:transform .12s,filter .2s}
.btn:active{transform:scale(.96)}
.btn.primary{background:var(--grad);color:#2a1400;border:none;box-shadow:0 12px 26px -12px rgba(255,120,20,.9)}
.btn.green{background:var(--grad-green);color:#04250f;border:none;box-shadow:0 12px 26px -12px rgba(45,200,120,.8)}
.btn.ghost{background:transparent;border:1px solid var(--line2);color:var(--mut)}
.btn.full{width:100%}
.btn.lg{padding:16px;font-size:16px;border-radius:16px}
.btn.sm{padding:8px 14px;font-size:13px;border-radius:11px}
.btn[disabled]{opacity:.55;pointer-events:none}
.btn.join{background:var(--grad-green);color:#04250f;border:none;box-shadow:0 10px 22px -12px rgba(45,200,120,.8)}
.btn.done{background:#1a1109;color:var(--mut2);border:1px solid var(--line);box-shadow:none}
.cta{position:relative;overflow:hidden}
.cta::after{content:"";position:absolute;top:0;left:-60%;width:50%;height:100%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.35),transparent);
  transform:skewX(-20deg);animation:sheen 3.4s ease-in-out infinite}
@keyframes sheen{0%,60%{left:-60%}100%{left:130%}}
.arrow{width:42px;height:42px;border-radius:12px;border:1px solid var(--line2);background:var(--panel2);
  color:var(--orange2);font-size:18px;font-weight:900;display:grid;place-items:center;cursor:pointer}
.arrow:active{transform:scale(.92)}

.field{width:100%;background:#0d0904;border:1px solid var(--line2);color:var(--txt);border-radius:14px;
  padding:13px 14px;font-size:15px;outline:none}
.field::placeholder{color:var(--mut2)}
.field:focus{border-color:var(--orange)}

/* progress */
.prog{height:9px;border-radius:9px;background:#1c1207;overflow:hidden;margin-top:8px}
.prog i{display:block;height:100%;background:var(--grad);border-radius:9px;box-shadow:0 0 12px rgba(255,140,30,.6);transition:width .5s}

/* ===================== HOME ===================== */
.hero{padding:18px}
.hero .who{display:flex;align-items:center;gap:13px}
.avatar{width:58px;height:58px;border-radius:50%;border:2px solid var(--orange);object-fit:cover;
  background:#1a2535;box-shadow:0 0 0 4px rgba(255,120,20,.12)}
.avatar-fb{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:22px;
  background:var(--grad);color:#2a1400;border:2px solid var(--orange)}
.hello{font-size:11px;letter-spacing:3px;color:var(--mut);font-weight:800}
.uname{font-size:21px;font-weight:900;text-transform:uppercase}
.balwrap{margin-top:16px;display:flex;align-items:flex-end;justify-content:space-between}
.bigbal{display:flex;align-items:center;gap:12px}
.bigbal .fr{font-size:40px;filter:drop-shadow(0 6px 14px rgba(255,120,20,.6))}
.bigbal .n{font-size:46px;font-weight:900;line-height:.9;color:var(--gold);
  text-shadow:0 6px 22px rgba(255,140,30,.35)}
.usdt{color:var(--mut);font-size:13px;margin-top:6px;font-weight:700}
.badges{display:flex;flex-direction:column;gap:8px}
.badge{border:1px solid var(--line2);border-radius:999px;padding:6px 12px;font-size:12px;font-weight:800;
  display:flex;gap:6px;align-items:center}
.badge b{color:var(--gold)}
.qa{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.qa .card{padding:16px;cursor:pointer}
.qa .t{font-weight:900;font-size:15px}
.qa .s{font-size:13px;margin-top:2px}

/* ===================== EARN ===================== */
.tabs{display:flex;gap:8px;background:#0d0904;border:1px solid var(--line);border-radius:14px;padding:5px}
.tabs button{flex:1;border:none;background:transparent;color:var(--mut);font-weight:800;font-size:13px;
  padding:9px 6px;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px}
.tabs button.on{background:var(--panel2);color:var(--txt);border:1px solid var(--line2)}
.dots{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}
.dots i{flex:1;min-width:14px;height:8px;border-radius:8px;background:#241608}
.dots i.f{background:var(--grad);box-shadow:0 0 8px rgba(255,140,30,.6)}
.tk{display:flex;align-items:center;gap:13px;padding:13px 0;border-bottom:1px solid var(--line)}
.tk:last-child{border-bottom:none}
.tk img,.tk .tkic{width:50px;height:50px;border-radius:13px;object-fit:cover;background:var(--panel2);
  display:grid;place-items:center;font-size:22px;border:1px solid var(--line)}
.tk .info{flex:1;min-width:0}
.tk .info b{display:block;font-size:14px}
.tk .rw{font-size:13px;color:var(--gold);font-weight:800;margin-top:2px}

/* ===================== FARMING ===================== */
.farm-main{padding:18px}
.harvest{display:flex;align-items:center;gap:16px}
.harvest .fr{font-size:56px;filter:drop-shadow(0 8px 18px rgba(255,120,20,.6));animation:floaty 3s ease-in-out infinite}
.harvest .plus{font-size:48px;font-weight:900;color:var(--green);line-height:1}
.ready{color:var(--green);font-weight:800;font-size:13px;letter-spacing:1px;display:flex;align-items:center;gap:7px}
.ready .dot{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green);animation:blink 1.4s infinite}
@keyframes blink{50%{opacity:.3}}
.statgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.stat{background:#0e0904;border:1px solid var(--line);border-radius:14px;padding:13px}
.stat .k{font-size:11px;letter-spacing:2px;color:var(--mut);font-weight:800}
.stat .v{font-size:18px;font-weight:900;margin-top:4px}
.cmp{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.cmp .c{background:#0e0904;border:1px solid var(--line);border-radius:12px;padding:11px 13px;
  display:flex;justify-content:space-between;font-weight:800;font-size:14px}
.cmp .c.old{color:var(--mut2)}.cmp .c.old s{color:var(--mut2)}
.lockbtn{width:100%;margin-top:12px;padding:14px;border-radius:14px;background:#160d05;border:1px solid var(--line);
  color:var(--mut);font-weight:800;text-align:center;letter-spacing:1px}

/* ===================== INVITE ===================== */
.invite-hero{padding:22px 18px;text-align:center}
.invite-hero .fr{font-size:64px;filter:drop-shadow(0 8px 20px rgba(255,120,20,.7))}
.invite-hero h2{font-size:26px;font-weight:900;margin:8px 0 0;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.tagpill{display:inline-flex;gap:8px;align-items:center;border:1px solid var(--line2);border-radius:999px;
  padding:8px 16px;margin-top:12px;font-weight:800;color:var(--orange2);font-size:14px}
.refstats{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:16px}
.refstats .s{border:1px solid var(--line);border-radius:13px;padding:11px 4px;text-align:center}
.refstats .s.act{border-color:rgba(45,200,120,.4)}
.refstats .s .n{font-size:20px;font-weight:900;color:var(--orange2)}
.refstats .s.act .n{color:var(--green)}
.refstats .s .l{font-size:9px;letter-spacing:1px;color:var(--mut);font-weight:800;margin-top:3px}
.linkbox{display:flex;gap:8px;align-items:center;background:#0d0904;border:1px solid var(--line2);
  border-radius:13px;padding:6px 6px 6px 14px;margin-top:14px}
.linkbox input{flex:1;background:transparent;border:none;color:var(--blue);font-size:13px;outline:none;font-weight:700}
.rank{display:flex;align-items:center;gap:13px;padding:12px 0;border-bottom:1px solid var(--line)}
.rank:last-child{border:none}
.rank .pos{width:34px;font-weight:900;color:var(--mut);text-align:center}
.rank .av{width:40px;height:40px;border-radius:11px;background:var(--grad);color:#2a1400;display:grid;place-items:center;font-weight:900}
.rank .info{flex:1}.rank .info b{font-size:14px}.rank .info span{font-size:12px;color:var(--mut)}
.rank .val{color:var(--gold);font-weight:900}

/* ===================== WALLET ===================== */
.profile{padding:18px}
.profile .top{display:flex;gap:14px;align-items:flex-start}
.profile .pn{font-size:21px;font-weight:900;text-transform:uppercase;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.profile .pu{color:var(--mut);font-size:13px;margin-top:2px}
.rankbadge{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line2);border-radius:999px;
  padding:5px 12px;margin-top:8px;font-weight:800;color:var(--orange2);font-size:13px}
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:16px}
.pcell{border:1px solid var(--line);border-radius:14px;padding:13px}
.pcell .k{font-size:11px;letter-spacing:1px;color:var(--mut);font-weight:800;display:flex;gap:6px;align-items:center}
.pcell .v{font-size:22px;font-weight:900;margin-top:6px;color:var(--orange2)}
.pcell.green-c{border-color:rgba(45,200,120,.35)}.pcell.green-c .v{color:var(--green)}
.balrow{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.balrow:last-child{border:none}
.balrow .v{font-size:18px;font-weight:900;margin-left:auto}
.wd{display:flex;flex-direction:column;gap:6px;padding:11px 0;border-bottom:1px solid var(--line)}
.wd:last-child{border:none}
.empty{text-align:center;padding:30px 0;color:var(--mut)}
.empty .e{font-size:38px}

/* ===================== SWAP ===================== */
.swap-box{background:#0d0904;border:1px solid var(--line2);border-radius:16px;padding:14px}
.swap-token{font-weight:900;cursor:pointer;color:var(--orange2)}
.swap-amt{width:100%;background:transparent;border:none;color:var(--txt);font-size:30px;font-weight:900;outline:none;margin-top:6px}
.swap-out{font-size:30px;font-weight:900;margin-top:6px;color:var(--gold)}
.swap-flip-wrap{display:flex;justify-content:center;margin:-10px 0;position:relative;z-index:2}
.swap-flip{width:44px;height:44px;border-radius:50%;border:3px solid var(--bg);background:var(--grad);
  color:#2a1400;font-size:20px;font-weight:900;cursor:pointer;box-shadow:0 8px 18px -8px rgba(255,120,20,.9)}
.swap-flip:active{transform:rotate(180deg)}

/* ===================== WHEEL ===================== */
.wheel-stage {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  margin-top: 8px;
}
.wheel-wrap {
  position: relative;
  width: 286px;
  height: 286px;
  display: grid;
  place-items: center;
}
.wheel-pointer {
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 8;
  width: 0;
  height: 0;
  border-left: 15px solid transparent;
  border-right: 15px solid transparent;
  border-top: 26px solid var(--orange);
  filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.6));
}
.wheel-pointer::after {
  content: "";
  position: absolute;
  top: -30px;
  left: -7px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--gold);
  box-shadow: 0 0 10px var(--orange);
}
.wheel-rim {
  position: absolute;
  inset: -8px;
  border-radius: 50%;
  z-index: 1;
  background: conic-gradient(#3a2410, #7a4d16, #ffcf5c, #7a4d16, #3a2410, #7a4d16, #ffcf5c, #7a4d16, #3a2410);
  box-shadow: 0 0 0 3px #1d140b, 0 14px 40px -10px rgba(255, 120, 20, 0.6);
}
.wheel-rim::after {
  content: "";
  position: absolute;
  inset: 6px;
  border-radius: 50%;
  background: repeating-conic-gradient(#241608 0 18deg, #3a2410 18deg 36deg);
}
.wheel {
  width: 262px;
  height: 262px;
  border-radius: 50%;
  position: relative;
  z-index: 2;
  overflow: hidden;
  border: 5px solid rgba(0, 0, 0, 0.35);
  box-shadow: inset 0 0 30px rgba(0, 0, 0, 0.55), inset 0 0 0 2px rgba(255, 255, 255, 0.12);
}
.wheel.won {
  animation: wheelPulse 0.5s ease 2;
}
@keyframes wheelPulse {
  50% {
    filter: brightness(1.35) drop-shadow(0 0 18px var(--orange));
  }
}
.wheel-lines {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  pointer-events: none;
  background: repeating-conic-gradient(from 0deg, transparent 0 calc(var(--ang) - 1.4deg), rgba(0, 0, 0, 0.45) calc(var(--ang) - 1.4deg) var(--ang));
}
.seg {
  position: absolute;
  top: 50%;
  left: 50%;
  transform-origin: 0 0;
  font-weight: 900;
  font-size: 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 0;
}
.seg span {
  display: flex;
  flex-direction: column;
  align-items: center;
  transform: translateX(-50%);
  text-align: center;
  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.25);
}
.seg .se {
  font-style: normal;
  font-size: 16px;
  line-height: 1;
  margin-bottom: 1px;
}
.wheel-center {
  position: absolute;
  inset: 0;
  margin: auto;
  width: 62px;
  height: 62px;
  border-radius: 50%;
  z-index: 6;
  background: var(--grad);
  display: grid;
  place-items: center;
  color: #2a1400;
  font-weight: 900;
  font-size: 13px;
  letter-spacing: 1px;
  box-shadow: 0 0 0 5px #1d140b, 0 0 22px rgba(255, 120, 20, 0.8), inset 0 -4px 8px rgba(0, 0, 0, 0.25);
}

/* ✅ FIX: আলাদা ক্লাস - হুইল লক করার জন্য */
.wheel.wheel-fixed {
  transition: none !important;
  transform-origin: center center;
}
/* ===================== TREASURE CHEST ===================== */
.chest-screen{text-align:center}
.chest-head{font-size:22px;font-weight:900;margin-bottom:6px}
.chest-stage{position:relative;width:100%;height:230px;display:grid;place-items:center;margin:4px 0 2px}
.chest-aura{position:absolute;width:230px;height:230px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,180,60,.5),rgba(255,120,20,.15) 45%,transparent 70%);
  filter:blur(4px);animation:auraPulse 2.4s ease-in-out infinite}
@keyframes auraPulse{50%{transform:scale(1.12);opacity:.85}}
.chest-rays{position:absolute;width:300px;height:300px;opacity:0;pointer-events:none;
  background:repeating-conic-gradient(from 0deg,rgba(255,220,120,.55) 0 6deg,transparent 6deg 18deg);
  -webkit-mask:radial-gradient(circle,transparent 28%,#000 30%,transparent 70%);
          mask:radial-gradient(circle,transparent 28%,#000 30%,transparent 70%)}
.chest-img{position:relative;z-index:3;width:200px;height:200px;object-fit:contain;cursor:pointer;
  filter:drop-shadow(0 16px 20px rgba(0,0,0,.5));animation:chestIdle 2.8s ease-in-out infinite;transition:transform .25s}
.chest-img:active{transform:scale(.94)}
@keyframes chestIdle{50%{transform:translateY(-7px)}}
.chest-stage.opening .chest-rays{opacity:1;animation:raySpin 3s linear infinite}
.chest-stage.opening .chest-img{animation:chestPop .6s cubic-bezier(.2,1.4,.4,1)}
.chest-stage.opening .chest-aura{animation:auraBurst .7s ease-out}
@keyframes raySpin{to{transform:rotate(360deg)}}
@keyframes chestPop{0%{transform:scale(.7)}60%{transform:scale(1.12)}100%{transform:scale(1)}}
@keyframes auraBurst{0%{transform:scale(.6);opacity:1}100%{transform:scale(1.6);opacity:.55}}
.chest-coins{position:absolute;z-index:4;inset:0;pointer-events:none}
.chest-coins i{position:absolute;left:50%;top:54%;font-style:normal;opacity:0;
  animation:coinFly 1.1s cubic-bezier(.2,.7,.3,1) forwards}
@keyframes coinFly{0%{opacity:0;transform:translate(-50%,0) scale(.4)}
  25%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--tx)),var(--ty)) scale(1.1) rotate(220deg)}}
.chest-hint{font-size:15px;font-weight:800;color:var(--mut);margin:2px 0 14px;min-height:20px}
.chest-card{margin-bottom:12px}
.cc-title{font-size:16px;font-weight:800;margin-bottom:10px}
.cc-sub{color:var(--mut);font-size:14px}
.cc-row{display:flex;justify-content:center;gap:26px}
.cc-ic{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;font-size:26px;
  background:#0d0905;border:1px solid var(--line2)}
.cc-ic.gold{box-shadow:0 0 14px rgba(255,180,60,.4)}
.cc-ic.ton{box-shadow:0 0 14px rgba(47,159,224,.4)}
.cc-ic.gem{box-shadow:0 0 14px rgba(80,200,255,.4)}
.task-note{background:#0d0905;border:1px solid var(--line2);border-radius:14px;padding:13px;
  color:var(--orange2);font-weight:700;font-size:13px;text-align:center}

/* ===================== TOAST / SHEET ===================== */
.toast{position:fixed;left:50%;bottom:calc(var(--safe-b) + 14px);transform:translateX(-50%) translateY(30px);
  background:#1c1208;border:1px solid var(--line2);color:var(--txt);padding:12px 18px;border-radius:14px;
  font-weight:700;font-size:14px;opacity:0;pointer-events:none;transition:.3s;z-index:9998;max-width:88%;text-align:center;
  box-shadow:0 18px 40px -16px rgba(0,0,0,.9)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.sheet{position:fixed;inset:0;z-index:9990;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);
  display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:.3s}
.sheet.show{opacity:1;pointer-events:auto}
.sheet-body{width:100%;max-width:520px;background:linear-gradient(180deg,var(--panel),#0d0905);
  border:1px solid var(--line2);border-radius:24px 24px 0 0;padding:22px 18px calc(22px + env(safe-area-inset-bottom,0px));
  max-height:94vh;overflow-y:auto;transform:translateY(100%);transition:.35s cubic-bezier(.2,.8,.2,1)}
.sheet.show .sheet-body{transform:none}
.sheet .h1{font-size:20px;font-weight:900}
.sheet .sub{color:var(--mut);font-size:13px;margin:6px 0 14px}
.cd-ring{width:120px;height:120px;margin:6px auto 16px;border-radius:50%;display:grid;place-items:center;
  font-size:26px;font-weight:900;color:var(--orange2);
  background:conic-gradient(var(--orange) var(--p,0%),#241608 0);position:relative}
.cd-ring::after{content:"";position:absolute;inset:9px;border-radius:50%;background:var(--panel)}
.cd-ring span{position:relative;z-index:2}

/* ===================== BOTTOM NAV ===================== */
.bottomnav{position:fixed;left:0;right:0;bottom:0;z-index:50;max-width:520px;margin:0 auto;
  display:grid;grid-template-columns:repeat(5,1fr);align-items:end;
  background:linear-gradient(180deg,rgba(10,6,3,.4),#0a0603 40%);
  border-top:1px solid var(--line);padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px))}
.nav{background:none;border:none;cursor:pointer;color:var(--mut2);font-size:10px;font-weight:800;letter-spacing:1px;
  display:flex;flex-direction:column;align-items:center;gap:5px;padding:6px 0;transition:color .2s;text-transform:uppercase}
.nav .ni{font-size:21px;line-height:1;transition:transform .2s}
.nav.active{color:var(--orange)}
.nav.active .ni{transform:translateY(-2px);filter:drop-shadow(0 4px 10px rgba(255,120,20,.8))}
.nav.center{position:relative}
.nav.center .ni{width:54px;height:54px;margin-top:-22px;border-radius:50%;display:grid;place-items:center;font-size:24px;
  background:var(--grad);color:#2a1400;box-shadow:0 10px 24px -8px rgba(255,120,20,.9),0 0 0 6px var(--bg)}
.nav.center.active .ni{transform:none}
