*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif;background:#0b0e14;color:#eef2ff;padding-bottom:84px}
header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;position:sticky;top:0;background:#0b0e14ee;z-index:5}
.brand{font-weight:800;font-size:19px}
main{padding:6px 14px;display:flex;flex-direction:column;gap:12px}
.card{background:#151a26;border:1px solid #232b3d;border-radius:16px;padding:16px}
.card h2{margin:0 0 8px;font-size:17px}.mute{color:#8a97b1;font-size:13px}
.big{font-size:30px;font-weight:800}
.btn{display:block;width:100%;padding:13px;border:0;border-radius:12px;font-weight:700;font-size:15px;background:linear-gradient(135deg,#3ad7ff,#1f7bff);color:#fff;cursor:pointer;margin-top:10px}
.btn.green{background:linear-gradient(135deg,#2ee6a8,#12b76a)}.btn.dark{background:#232b3d}.btn:disabled{opacity:.45}
.row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid #1e2536}.row:last-child{border:0}
.shop-item{display:flex;gap:12px;align-items:center}.shop-item .ic{font-size:34px}
nav#tabs{position:fixed;bottom:0;left:0;right:0;display:flex;background:#10141f;border-top:1px solid #232b3d;z-index:5}
nav#tabs button{flex:1;background:none;border:0;color:#8a97b1;font-size:19px;padding:8px 0 10px;display:flex;flex-direction:column;align-items:center;gap:2px}
nav#tabs button span{font-size:11px}nav#tabs button.on{color:#3ad7ff}
#toast{position:fixed;left:50%;transform:translateX(-50%);bottom:96px;background:#232b3d;color:#fff;padding:10px 18px;border-radius:999px;font-size:14px;display:none;z-index:9}
.bar{height:8px;background:#232b3d;border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,#3ad7ff,#1f7bff)}
.mono{font-family:ui-monospace,monospace;font-size:12px;word-break:break-all}
.ic{display:inline-flex;vertical-align:-3px}.ic svg{width:20px;height:20px}
.ic-sm svg{width:16px;height:16px}.ic-big svg{width:30px;height:30px}
.brand{display:flex;align-items:center;gap:8px}.brand-ic svg{width:24px;height:24px;color:#3ad7ff}
.tab-ic svg{width:22px;height:22px}
.card h2{display:flex;align-items:center;gap:8px}
.done{color:#2ee6a8}.tname{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.btn.sm{width:auto;padding:9px 14px;display:inline-block;margin:0}
.tier{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:12px;background:#1c2740;color:#3ad7ff;font-weight:800;font-size:15px;border:1px solid #2a3556}
/* ===== Animasi ===== */
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes floatUp{0%{opacity:0;transform:translateY(0) scale(.6) rotate(0deg)}12%{opacity:1}100%{opacity:0;transform:translateY(-46vh) scale(1.15) rotate(28deg)}}
@keyframes glowPulse{0%,100%{box-shadow:0 0 0 0 rgba(46,230,168,.45)}50%{box-shadow:0 0 0 9px rgba(46,230,168,0)}}
@keyframes cardPulse{0%,100%{opacity:1}50%{opacity:.55}}
@keyframes barShine{from{background-position:-160px 0}to{background-position:160px 0}}
.anim .card{animation:fadeUp .45s cubic-bezier(.2,.8,.25,1) both}
.brand-ic{display:inline-flex;animation:bob 2.6s ease-in-out infinite}
.btn{transition:transform .08s ease, filter .15s ease}.btn:active{transform:scale(.965)}
.btn.green:not(:disabled){animation:glowPulse 1.8s ease-in-out infinite}
.card.solo{animation:cardPulse 1.15s ease-in-out infinite}
.bar{overflow:hidden}.bar i{transition:width 1s linear;background-image:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.35) 50%,transparent 75%);background-size:160px 100%;animation:barShine 1.4s linear infinite}
.burst{position:fixed;inset:0;pointer-events:none;z-index:99;overflow:hidden}
.burst span{position:absolute;bottom:12vh;color:#3ad7ff;animation:floatUp ease-out forwards}
.burst span svg{width:100%;height:100%}
#tabs button{transition:color .2s ease, transform .1s ease}#tabs button:active{transform:scale(.93)}
/* ===== Header: tombol bahasa ===== */
.hdr-right{display:flex;align-items:center;gap:10px}
#langBtn{background:#151a26;border:1px solid #232b3d;border-radius:10px;color:#eef2ff;width:38px;height:38px;display:flex;align-items:center;justify-content:center;cursor:pointer}
#langBtn svg{width:20px;height:20px}
/* ===== Sheet pilihan bahasa ===== */
#langSheet{display:none;position:fixed;inset:0;background:rgba(2,4,8,.6);z-index:95}
#langSheet .sheet{position:absolute;left:0;right:0;bottom:0;background:#10141f;border-top:1px solid #232b3d;border-radius:20px 20px 0 0;padding:18px 18px 30px;animation:fadeUp .3s both}
#langSheet h3{margin:0 0 10px;display:flex;align-items:center;gap:8px}
.langrow{display:flex;justify-content:space-between;align-items:center;width:100%;background:none;border:0;border-bottom:1px solid #1e2536;color:#eef2ff;font-size:16px;padding:14px 2px;cursor:pointer;text-align:left}
.langrow:last-of-type{border:0}
/* ===== Onboarding (layar penuh ala DOGS/CMT) ===== */
#intro{display:none;position:fixed;inset:0;background:#000;z-index:90;flex-direction:column}
#intro .screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 22px 30px;text-align:center;animation:fadeUp .45s both;position:relative}
#intro .screen.top{justify-content:flex-start;padding-top:64px;text-align:left;align-items:stretch}
.intro-h{font-size:30px;font-weight:800;margin:14px 0 6px}
.intro-h.left{text-align:left}
.intro-sub{color:#c7d2e8;font-size:16px;margin:0 0 8px;line-height:1.45}
.intro-foot{color:#c7d2e8;font-size:14.5px;line-height:1.55;margin-top:auto}
.mascot{width:172px;height:172px;filter:drop-shadow(0 0 30px rgba(140,205,255,.95)) drop-shadow(0 0 90px rgba(80,150,255,.5));animation:mascotFloat 3.2s ease-in-out infinite}
.mascot.sm{width:148px;height:148px}
.mascot svg{width:100%;height:100%}
@keyframes mascotFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-9px) scale(1.02)}}
.btn.cta{margin-top:auto;background:linear-gradient(90deg,#38c6f4,#2f6bff);box-shadow:0 10px 34px rgba(47,107,255,.45);font-size:17px;padding:16px}
.btn.white{margin-top:22px;background:#fff;color:#0b0e14;font-size:16.5px;padding:15px}
.chk{opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s;margin-top:26px}
.chk.show{opacity:1;transform:none}
.chk-row{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:16.5px;margin-bottom:9px}
.chk .bar{height:7px;background:#1b2233}.chk .bar i{width:0;transition:width .62s cubic-bezier(.3,.7,.3,1)}
.chk-ic{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;border:2px solid #2a3556;color:transparent;transition:all .25s}
.chk.done .chk-ic{border-color:#38c6f4;color:#38c6f4;box-shadow:0 0 16px rgba(56,198,244,.8);transform:scale(1.06)}
.chk-ic svg{width:16px;height:16px}
.segs{position:absolute;top:14px;left:22px;right:22px;display:flex;gap:7px}
.segs i{flex:1;height:4.5px;border-radius:99px;background:#2a2f3a}
.segs i.on{background:#fff}
.badge{margin-top:30px;width:168px;height:168px;border-radius:44px;background:radial-gradient(circle at 50% 32%,#2b4a73,#101b2e 72%);border:2.5px solid #38a8f4;display:flex;align-items:center;justify-content:center;box-shadow:0 0 55px rgba(56,150,244,.55),inset 0 0 34px rgba(56,150,244,.28);animation:mascotFloat 3.4s ease-in-out infinite}
.badge span{font-size:88px;font-weight:900;color:#fff;text-shadow:0 4px 0 #2f6bff}
.years-ago{font-size:27px;font-weight:800;margin-top:24px}
.reward-num{font-size:64px;font-weight:900;margin-top:8px}
