/* Loja VexMC - estilos compartilhados (loja, resgatar, admin) */
@font-face{font-family:"Jersey 10";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/jersey-10-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/inter-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/inter-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/inter-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/inter-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/inter-latin-800-normal.woff2) format("woff2")}

:root{
  --bg:#0b0517; --bg2:#140a28; --card:#190e31; --card2:#21143f; --line:#2e1f55;
  --text:#ece8f7; --muted:#a79cc6; --dim:#7a6e9c;
  --vex:#8b5cf6; --vex2:#a78bfa; --vex3:#6d28d9; --pink:#f472b6; --cyan:#38bdf8;
  --ok:#22c55e; --bad:#ef4444; --gold:#fbbf24; --orange:#f97316; --discord:#5865f2; --radius:20px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{background:var(--bg);color:var(--text);font:16px/1.6 Inter,system-ui,sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased;min-height:100vh}
body.lock{overflow:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font:inherit;color:inherit}
code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.92em;background:rgba(139,92,246,.16);border:1px solid rgba(139,92,246,.3);padding:1px 6px;border-radius:7px;color:#ddd6fe}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.pixel{font-family:"Jersey 10",Inter,sans-serif;font-weight:400;letter-spacing:.5px}
.hidden{display:none!important}

/* ---------- fundo animado ---------- */
.sky{position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(900px 600px at 75% -10%,rgba(124,58,237,.38),transparent 60%),radial-gradient(700px 500px at 0% 25%,rgba(76,29,149,.38),transparent 60%),radial-gradient(800px 600px at 100% 100%,rgba(190,24,93,.12),transparent 60%),var(--bg)}
.sky .orb{display:none}
.sky:after{content:"";position:absolute;inset:0;opacity:.06;background-image:linear-gradient(rgba(255,255,255,.7) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.7) 1px,transparent 1px);background-size:52px 52px;mask-image:radial-gradient(ellipse at 50% 0%,#000 25%,transparent 75%)}

/* ---------- texto em degradê ---------- */
.grad{background:linear-gradient(90deg,#c4b5fd,var(--vex2) 30%,var(--pink) 65%,var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}
.grad-gold{background:linear-gradient(90deg,#fde68a,var(--gold) 45%,var(--orange));-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- barra de promoção ---------- */
.promobar{position:relative;z-index:30;background:linear-gradient(90deg,#6d28d9,#db2777);color:#fff;font-size:14px;font-weight:600;text-align:center;padding:9px 44px}
.promobar b{font-weight:800;letter-spacing:.6px}
.promobar code{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.35);color:#fff;font-weight:800;cursor:pointer}
.promobar .xbar{all:unset;cursor:pointer;position:absolute;right:12px;top:50%;transform:translateY(-50%);opacity:.8;font-size:15px;padding:4px 8px}

/* ---------- topo ---------- */
header{position:sticky;top:0;z-index:25;background:rgba(11,5,23,.94);border-bottom:1px solid rgba(46,31,85,.7)}
.nav{display:flex;align-items:center;gap:14px;height:70px}
.brand{display:flex;align-items:center;gap:10px;flex:none}
.brand img{width:34px;height:38px;object-fit:contain}
.brand span{font-family:"Jersey 10";font-size:29px}
.brand small{font-size:11px;font-weight:800;letter-spacing:1px;padding:3px 8px;border-radius:999px;background:linear-gradient(90deg,var(--vex3),var(--pink));color:#fff}
.navlinks{display:flex;gap:2px;margin-left:auto;align-items:center}
.navlinks a{padding:8px 12px;border-radius:10px;color:var(--muted);font-weight:600;font-size:14.5px;transition:.2s}
.navlinks a:hover{color:var(--text);background:rgba(139,92,246,.12)}
.langs{display:flex;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:3px;flex:none}
.langs button{all:unset;cursor:pointer;padding:5px 9px;border-radius:9px;font-size:13px;font-weight:700;color:var(--dim)}
.langs button[aria-pressed=true]{background:var(--vex3);color:#fff}
.btn-discord{display:inline-flex;align-items:center;gap:9px;padding:9px 14px;border-radius:12px;background:var(--discord);color:#fff;font-weight:700;font-size:14.5px;border:0;cursor:pointer;transition:.2s;white-space:nowrap}
.btn-discord:hover{filter:brightness(1.12);transform:translateY(-1px)}
.btn-discord svg{width:20px;height:20px;flex:none}
.user{position:relative;flex:none}
.user>button{all:unset;cursor:pointer;display:flex;align-items:center;gap:9px;padding:5px 10px 5px 5px;border-radius:12px;background:var(--card);border:1px solid var(--line)}
.user img,.user .av{width:30px;height:30px;border-radius:9px;background:var(--vex3);display:grid;place-items:center;font-weight:800}
.user span{font-weight:700;font-size:14px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user .menu{position:absolute;right:0;top:calc(100% + 8px);min-width:180px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:6px;display:none;box-shadow:0 20px 40px rgba(0,0,0,.45)}
.user.open .menu{display:block}
.user .menu a,.user .menu button{all:unset;box-sizing:border-box;cursor:pointer;display:block;width:100%;padding:9px 12px;border-radius:9px;font-size:14px;font-weight:600;color:var(--muted)}
.user .menu a:hover,.user .menu button:hover{background:rgba(139,92,246,.14);color:var(--text)}
.redeem-m{display:none;width:40px;height:40px;border-radius:10px;place-items:center;font-size:18px;border:1px solid var(--line);flex:none}
.burger{all:unset;display:none;cursor:pointer;width:40px;height:40px;border-radius:10px;place-items:center;border:1px solid var(--line);font-size:18px}

/* ---------- botões ---------- */
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 24px;border-radius:14px;font-weight:800;font-size:15.5px;border:0;cursor:pointer;transition:transform .15s,filter .2s,box-shadow .2s;color:#fff;background:linear-gradient(90deg,var(--vex3),var(--vex))}
.btn:hover{transform:translateY(-2px);filter:brightness(1.08)}
.btn:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.3) 50%,transparent 65%);transform:translateX(-120%);transition:transform .6s ease}
.btn:hover:after{transform:translateX(120%)}
@keyframes sweep{to{transform:translateX(120%)}}
.btn.gold{background:linear-gradient(90deg,var(--gold),var(--orange));color:#1a0c00;box-shadow:0 12px 34px -10px rgba(249,115,22,.75)}
.btn.ghost{background:rgba(139,92,246,.12);border:1px solid rgba(139,92,246,.35)}
.btn.ghost:after{display:none}
.btn[disabled]{opacity:.55;cursor:default;transform:none}

/* ---------- cards e etiquetas ---------- */
.tag{display:inline-flex;align-items:center;gap:8px;padding:6px 13px;border-radius:999px;background:rgba(139,92,246,.14);border:1px solid rgba(139,92,246,.35);color:var(--vex2);font-size:12.5px;font-weight:800;text-transform:uppercase;letter-spacing:.9px}
.tag i{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px rgba(34,197,94,.2)}
.panel{background:linear-gradient(180deg,var(--card2),var(--card));border:1px solid var(--line);border-radius:var(--radius)}
.glow-border{position:relative;border-radius:26px;padding:2px;background:linear-gradient(135deg,var(--a,#a78bfa),var(--b,#f472b6),var(--c2,#38bdf8));box-shadow:0 24px 60px -28px var(--b,#f472b6)}

/* ---------- formulários ---------- */
.field{display:block;margin-top:12px}
.field>small{display:block;font-size:12px;font-weight:700;color:var(--dim);text-transform:uppercase;letter-spacing:.8px;margin-bottom:5px}
.field input,.field select,.field textarea{width:100%;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:11px 13px;color:var(--text);font:inherit;font-size:15.5px;outline:none;transition:border-color .2s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--vex)}
.check{display:flex;gap:10px;align-items:flex-start;margin-top:14px;font-size:13.5px;color:var(--muted);cursor:pointer}
.check input{margin-top:3px;accent-color:var(--vex);width:16px;height:16px;flex:none}
.err{color:#fca5a5;font-size:14px;margin-top:10px;min-height:1px}
.okmsg{color:#86efac;font-size:14px;margin-top:8px}

/* ---------- modal ---------- */
.modal{position:fixed;inset:0;z-index:40;display:none;place-items:center;background:rgba(5,2,12,.86);padding:16px}
.modal.show{display:grid;animation:fade .2s ease}
.box{position:relative;width:100%;max-width:460px;max-height:calc(100vh - 32px);overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:26px;padding:26px;animation:pop .28s cubic-bezier(.2,1.4,.4,1)}
.x{all:unset;cursor:pointer;position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:var(--muted);background:var(--bg2)}
.box h3{font-family:"Jersey 10";font-weight:400;font-size:38px;line-height:1;margin-bottom:6px;padding-right:30px}
@keyframes fade{from{opacity:0}}
@keyframes pop{from{transform:scale(.9) translateY(10px);opacity:0}}

/* ---------- avisos ---------- */
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,30px);opacity:0;background:var(--ok);color:#03200f;font-weight:800;padding:12px 20px;border-radius:12px;transition:.25s;z-index:60;pointer-events:none}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast.bad{background:var(--bad);color:#fff}
.livebuy{position:fixed;left:18px;bottom:18px;z-index:35;display:flex;align-items:center;gap:12px;max-width:330px;background:rgba(25,14,49,.97);border:1px solid var(--line);border-radius:16px;padding:12px 16px 12px 12px;box-shadow:0 18px 40px rgba(0,0,0,.45);transform:translateX(-130%);transition:transform .5s cubic-bezier(.2,1.2,.4,1);font-size:13.5px;color:var(--muted)}
.livebuy.show{transform:none}
.livebuy .ic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;font-size:20px;background:linear-gradient(135deg,var(--vex3),var(--pink));flex:none}
.livebuy b{color:var(--text)}
.livebuy small{display:block;color:var(--dim);font-size:12px}
#confetti{position:fixed;inset:0;pointer-events:none;z-index:70}

/* ---------- aparecer ao rolar ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}

/* ---------- rodapé ---------- */
footer{border-top:1px solid var(--line);margin-top:50px;padding:28px 0 40px;color:var(--dim);font-size:13.5px}
footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
footer a{color:var(--muted);text-decoration:underline}

@media (max-width:860px){
  .navlinks{display:none;position:absolute;top:70px;left:0;right:0;flex-direction:column;align-items:stretch;background:rgba(11,5,23,.98);padding:12px 16px 16px;border-bottom:1px solid var(--line)}
  .navlinks.open{display:flex}
  .navlinks a{text-align:center}
  .burger{display:grid}
  .redeem-m{display:grid;margin-left:auto}
  .btn-discord .lbl{display:none}
  .user span{display:none}
  .promobar{font-size:12.5px;padding:8px 36px}
  .livebuy{left:10px;right:10px;bottom:10px;max-width:none}
}
@media (max-width:420px){.brand small{display:none}.brand span{font-size:25px}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
