  :root{--ouro:#ffd84a;--fundo:#040a1c;--card:#0d1a38;--borda:#1d3463;--txt:#eef3ff;--sub:#9fb0d6}
  html,body{margin:0;height:100%;background:#02060f;overflow:hidden;touch-action:none;font-family:system-ui,sans-serif;color:var(--txt)}
  canvas{display:block;margin:0 auto}
  button{font:inherit;cursor:pointer}
  #ui{position:fixed;inset:0;display:flex;flex-direction:column;background:radial-gradient(ellipse at 50% -10%,#173a7a 0%,#0a1a3e 35%,var(--fundo) 70%)}
  header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 8px}
  header h1{margin:0;font-size:1.35em;letter-spacing:.04em;color:var(--ouro);text-shadow:0 0 14px #ff9a0088}
  #moedas{background:#0008;border:1px solid #ffd84a55;border-radius:99px;padding:5px 12px;font-weight:700;color:var(--ouro)}
  main{flex:1;overflow:auto;padding:8px 16px 16px;max-width:520px;width:100%;margin:0 auto;box-sizing:border-box;touch-action:pan-y}
  .ecra{display:none}.ecra.ativo{display:block;animation:entra .25s}
  @keyframes entra{from{opacity:0;transform:translateY(8px)}}
  h2{font-size:.85em;text-transform:uppercase;letter-spacing:.12em;color:var(--sub);margin:18px 0 8px}
  .info{color:var(--sub);margin-top:0;font-size:.9em}
  nav{display:flex;border-top:1px solid var(--borda);background:#040a1cee;padding-bottom:env(safe-area-inset-bottom)}
  nav button{flex:1;background:none;border:0;color:var(--sub);padding:10px 0 12px;font-size:.78em}
  nav button span{display:block;font-size:1.6em;margin-bottom:2px;filter:grayscale(1);opacity:.6}
  nav button.ativo{color:var(--ouro)} nav button.ativo span{filter:none;opacity:1}
  #palco{text-align:center;padding:16px 0 4px}
  #palco .grande{font-size:5em;line-height:1.2;filter:drop-shadow(0 0 18px var(--cor,#fff8));animation:flutua 3s ease-in-out infinite}
  @keyframes flutua{50%{transform:translateY(-8px)}}
  #palco b{display:block;font-size:1.5em} #palco small{color:var(--sub)}
  #go{display:block;width:100%;font-size:1.3em;padding:.8em;border:0;border-radius:14px;margin-top:16px;
      background:linear-gradient(#ffe57a,#ffb52a);color:#2a1600;font-weight:800;box-shadow:0 4px 0 #a86a00,0 0 24px #ffb52a55}
  #go:active{transform:translateY(3px);box-shadow:0 1px 0 #a86a00}
  #go:disabled{opacity:.4}
  #msg{background:var(--card);border-radius:12px;padding:10px 12px;margin-top:14px;font-size:.92em}
  #msg:empty{display:none}
  .mundos{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;touch-action:pan-x}
  .mundo{flex:0 0 auto;min-width:96px;border-radius:12px;padding:10px;text-align:center;font-size:.85em;border:1px solid #fff2}
  .tourCard{margin:10px 0}.tourCard h2{margin:4px 0}.conts{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.contTag{font-size:12px;padding:3px 8px;border-radius:99px;background:#fff1;border:1px solid #fff2}
  .tourLista{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}.tourPais{border:2px solid #fff2;border-radius:12px;padding:8px;text-align:center;display:flex;flex-direction:column;gap:2px;cursor:pointer}
  .tourPais.fechado{opacity:.45;cursor:default}.tourPais small{font-size:11px}.tourPais .estr{color:#ffd84a}.cpBand{font-size:30px;line-height:1.1}
  .cartaPais{margin:10px auto;max-width:200px;padding:12px;border-radius:14px;border:2px solid var(--c);background:linear-gradient(160deg,#ffffff14,#00000040);box-shadow:0 0 18px var(--c);display:flex;flex-direction:column;gap:3px}
  .colCard{margin:10px 0}.colCard h2{margin:4px 0}.colCont{margin:6px 0;padding:6px 10px;border-radius:10px;background:#fff1}.colCont summary{cursor:pointer;font-weight:600}
  .cGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:8px}.cCol{text-align:center;cursor:pointer;min-width:0}.cCol>b{display:block;font-size:12px;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cCol small{font-size:10px}
  .cartaWrap.mini{width:100%;max-width:none;border-radius:8px;box-shadow:0 3px 10px #0008}.cartaWrap.falta{filter:grayscale(1) brightness(.45);opacity:.7}.cartaWrap .dup{position:absolute;right:4px;top:4px;font-style:normal;font-size:11px;background:#ffd84a;color:#000;border-radius:6px;padding:0 4px;font-weight:700}
  .cFiltros{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.cFiltros .btn{width:auto;flex:1 1 auto;margin:0;padding:.35em .6em;font-size:.85em}.cFiltros .btn.on{background:var(--ouro);color:#000}
  .bandeiras{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:8px}.bnd{position:relative;font-size:40px;padding:4px;border:2px solid #fff3;border-radius:10px;text-align:center;cursor:zoom-in}.bnd img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;border-radius:6px}.bnd b{display:block;font-size:11px;font-weight:600;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bnd.falta{filter:grayscale(1);opacity:.3}.bnd i{position:absolute;right:-4px;bottom:-6px;font-size:10px;font-style:normal;background:#ffd84a;color:#000;border-radius:6px;padding:0 3px}
  #fimNivel{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#05031a99;padding:16px}
  .fnBox{width:100%;max-width:320px;border:2px solid var(--c);border-radius:18px;padding:18px;background:linear-gradient(160deg,#1a1440,#07051a);box-shadow:0 0 30px var(--c);text-align:center;display:flex;flex-direction:column;gap:8px;animation:fnIn .35s ease-out}
  @keyframes fnIn{from{transform:scale(.8);opacity:0}to{transform:none;opacity:1}}
  .fnTit{font-size:1.3em;color:var(--c)}.fnEst{font-size:28px;color:#ffd84a;letter-spacing:4px}.fnLin{display:flex;justify-content:space-between;padding:6px 10px;border-radius:10px;background:#ffffff0d}.fnBox .btn{margin-top:6px;font-size:1.1em}
  .fnOp{width:100%;font-size:1.05em}.fnOp.certo{background:#2a8a3a!important;color:#fff}.fnOp.errado{background:#8a2a2a!important;color:#fff}
  .revela{display:flex;flex-direction:column;gap:3px;padding:8px;border-radius:12px;background:#ffffff0d;max-height:38vh;overflow:auto}
  .cartaNova{display:flex;flex-direction:column;align-items:center;gap:4px;margin:10px 0}
  .cartaWrap{position:relative;width:200px;max-width:70vw;aspect-ratio:240/336;border-radius:12px;overflow:hidden;margin:0 auto;box-shadow:0 8px 24px #0009}
  .cartaWrap canvas{width:100%;height:100%;display:block}.cartaWrap.r-raro{box-shadow:0 0 22px #4aa8ff88}.cartaWrap.r-epico{box-shadow:0 0 30px #c06cffaa}
  .holoC{position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 30%,#ff8ad855 42%,#7affd855 50%,#ffe9a855 58%,transparent 70%);background-size:250% 250%;mix-blend-mode:screen;animation:holoC 3.5s linear infinite}
  @keyframes holoC{from{background-position:120% 0}to{background-position:-120% 0}}
  .bnd[data-vercarta]{cursor:pointer}
  .flagImg{width:30px;height:22px;object-fit:cover;border-radius:3px;display:block}.flagImg.grande{width:72px;height:54px;margin:0 auto;box-shadow:0 2px 10px #0008}
  .bio{text-align:left;font-size:.85em}.bio summary{cursor:pointer;list-style:none;padding:3px 6px;border-radius:8px}.bio summary::-webkit-details-marker{display:none}.bio[open] summary{background:#ffffff14}.bio small{display:block;padding:4px 8px 6px;opacity:.85;line-height:1.35}
  .simbs{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}.simb{font-size:20px;background:#ffffff10;border:1px solid #ffffff22;border-radius:8px;padding:2px 5px;cursor:pointer}.simb.on{border-color:var(--ouro);background:#ffd84a22}.simbInfo{display:block;min-height:2.4em;padding:4px 6px;line-height:1.35}
  .mundo .estr{display:block;color:#ffd84a;font-size:11px;letter-spacing:1px;margin-top:2px}
  .mundo .ico{font-size:1.8em;display:block}
  .bannerCeia{position:relative;border-radius:16px;overflow:hidden;margin:0 0 12px;aspect-ratio:16/9;background:radial-gradient(ellipse at 30% 20%,#6a3aff55,#0000 55%),radial-gradient(ellipse at 80% 70%,#ff3ad555,#0000 50%),radial-gradient(ellipse at 50% 50%,#0a0a30,#000);box-shadow:0 8px 24px #000a;border:1px solid #3ae8ff55}
  .bannerCeia>img.full{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .bEstrelas{position:absolute;inset:0;background-image:radial-gradient(1px 1px at 10% 20%,#fff,#0000),radial-gradient(1px 1px at 30% 70%,#fff,#0000),radial-gradient(1.5px 1.5px at 55% 15%,#fff,#0000),radial-gradient(1px 1px at 75% 40%,#fff,#0000),radial-gradient(1.5px 1.5px at 90% 80%,#cfe8ff,#0000),radial-gradient(1px 1px at 20% 90%,#fff,#0000),radial-gradient(1px 1px at 65% 85%,#fff,#0000),radial-gradient(1px 1px at 45% 45%,#fff,#0000);opacity:.9;animation:cintila 4s ease-in-out infinite alternate}
  @keyframes cintila{to{opacity:.5}}
  .bNave{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:94%;max-height:86%;object-fit:contain;filter:drop-shadow(0 0 24px #3ae8ff88);animation:naveFlutua 6s ease-in-out infinite}
  .bNaveF{font-size:9em;text-align:center;opacity:.35;width:auto}
  @keyframes naveFlutua{50%{transform:translate(-50%,-53%)}}
  .bGrupo{position:absolute;bottom:13%;display:flex;align-items:flex-end;justify-content:center}.bGrupo img{filter:drop-shadow(0 3px 6px #000)}
  .bBoss{left:1%;width:31%;flex-wrap:wrap}.bBoss img{width:24%;margin:-2%}
  .bHer{left:30%;width:40%}.bHer img{width:17%;margin:0 -1.5%}
  .bDeuses{right:1%;width:29%;flex-wrap:wrap;gap:2px}.bDeus{display:flex;flex-direction:column;align-items:center;font-size:1.3em;width:30%;text-shadow:0 0 10px #ffd84a}.bDeus small{font-size:.38em;color:#ffe9a8}
  .bCarta{position:absolute;left:50%;bottom:4%;transform:translateX(-50%);width:16%;height:22%}.bCartaF{position:absolute;left:0;right:0;bottom:0;text-align:center;font-size:2.2em;transform:perspective(200px) rotateX(58deg);filter:drop-shadow(0 0 10px #ff4a8a)}
  .bRaio{position:absolute;left:50%;bottom:22%;transform:translateX(-50%) rotate(12deg);font-size:2.4em;filter:drop-shadow(0 0 14px #ffd84a);animation:raioPulsa 1.6s ease-in-out infinite}@keyframes raioPulsa{50%{filter:drop-shadow(0 0 26px #fff)}}
  .bLegenda{position:absolute;left:0;right:0;bottom:3%;display:flex;justify-content:space-around;font-size:.7em;color:#fffc;text-shadow:0 1px 3px #000}
  .bannerCeia>b{position:absolute;left:0;right:0;top:3%;text-align:center;color:var(--ouro);font-size:1.05em;text-shadow:0 2px 6px #000;letter-spacing:.08em}
  .tempAbas{grid-column:1/-1;display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}.tempAbas button{flex:0 0 auto;background:#fff1;border:1px solid #fff2;color:#fff;border-radius:12px;padding:.45em .7em;font-size:.8em;display:flex;flex-direction:column;align-items:center;gap:1px}
  .tempAbas button span{font-size:1.4em}.tempAbas button small{opacity:.7}.tempAbas button.on{background:linear-gradient(#ffd84a,#ff9a3a);color:#000;border-color:#ffd84a}
  .bDeuses .bDeus:nth-child(n+13){display:none}
  .mundosHome{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:14px}
  .mCard{position:relative;aspect-ratio:3/4;border-radius:14px;overflow:hidden;border:2px solid #fff2;cursor:pointer;display:flex;flex-direction:column;justify-content:flex-end;padding:8px;text-align:left;text-shadow:0 1px 4px #000;box-shadow:0 6px 18px #0008}
  .mCard .mIco{position:absolute;top:8px;left:50%;transform:translateX(-50%);font-size:2.4em}.mCard .mIco img{width:64px;height:64px;object-fit:contain;filter:drop-shadow(0 2px 6px #000c)}
  .mCard .mBoss{position:absolute;top:22%;left:0;right:0;margin:auto;width:62%;aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 4px 10px #000)}
  @keyframes bossAparece{0%,12%{opacity:0;transform:scale(.7) translateY(12px);filter:blur(6px) drop-shadow(0 4px 10px #000)}30%,70%{opacity:1;transform:scale(1) translateY(0);filter:blur(0) drop-shadow(0 0 14px #fff6)}88%,100%{opacity:0;transform:scale(1.15) translateY(-8px);filter:blur(8px) drop-shadow(0 4px 10px #000)}}
  .mCard .mBoss,.pmTopo img.pmBoss{animation:bossAparece 5s ease-in-out infinite}.mCard:nth-child(2n) .mBoss{animation-delay:-1.7s}.mCard:nth-child(3n) .mBoss{animation-delay:-3.1s}
  .pmTopo img.pmBoss{animation-duration:4s}
  /* aparição do Boss: clarão de luz e fumo, ao mesmo ritmo da animação do Boss */
  .mCard::before,.pmTopo::before{content:'';position:absolute;left:5%;right:5%;top:14%;height:62%;pointer-events:none;z-index:0;filter:blur(10px);
    background:radial-gradient(ellipse 50% 40% at 50% 55%,var(--fc,#9a8ab0),transparent 70%); /* telemóveis antigos sem color-mix */
    background:radial-gradient(ellipse 40% 30% at 30% 70%,color-mix(in srgb,var(--fc,#9a8ab0) 70%,transparent),transparent 70%),radial-gradient(ellipse 45% 35% at 70% 65%,color-mix(in srgb,var(--fc2,#6a5a80) 70%,transparent),transparent 70%),radial-gradient(ellipse 50% 40% at 50% 50%,color-mix(in srgb,var(--bc,#c05aff) 45%,transparent),transparent 70%);
    animation:fumoBoss 5s ease-in-out infinite}
  .mCard::after,.pmTopo::after{content:'';position:absolute;left:50%;top:44%;width:80%;aspect-ratio:1;transform:translate(-50%,-50%) scale(.2);border-radius:50%;pointer-events:none;z-index:0;
    background:radial-gradient(circle,#fff 0%,var(--bc,#ffd84a) 18%,#0000 62%);mix-blend-mode:screen;animation:luzBoss 5s ease-out infinite}
  .pmTopo::before{left:40%;right:0}.pmTopo::after{left:76%;top:40%;width:50%}
  @keyframes fumoBoss{0%,8%{opacity:0;transform:translateY(30%) scale(.7)}25%{opacity:.95}45%{opacity:.6;transform:translateY(-6%) scale(1.15)}70%{opacity:.25}85%,100%{opacity:0;transform:translateY(-20%) scale(1.3)}}
  @keyframes luzBoss{0%,10%{opacity:0;transform:translate(-50%,-50%) scale(.2)}18%{opacity:1;transform:translate(-50%,-50%) scale(1)}35%{opacity:.25;transform:translate(-50%,-50%) scale(1.3)}80%{opacity:0}88%{opacity:.6;transform:translate(-50%,-50%) scale(.7)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.2)}}
  .mCard:nth-child(2n)::before,.mCard:nth-child(2n)::after{animation-delay:-1.7s}.mCard:nth-child(3n)::before,.mCard:nth-child(3n)::after{animation-delay:-3.1s}
  .pmTopo::before,.pmTopo::after{animation-duration:4s}
  .mCard>*,.pmTopo>*{position:relative;z-index:1}.mCard .mBoss,.mCard .mIco,.pmTopo img.pmBoss{position:absolute;z-index:2}
  .mCard b{font-size:1em}.mCard small{opacity:.85}.mCard.fechado{filter:grayscale(.85) brightness(.55)}.mCard.ver{border-color:var(--ouro);box-shadow:0 0 18px #ffd84a66}
  #pagMundo{position:fixed;inset:0;z-index:40;overflow:auto;background:#05030f;padding:12px 16px 90px}
  .pmVoltar{background:#0008;color:#fff;border:1px solid #fff3;border-radius:10px;padding:.4em .9em;font-size:1em;position:sticky;top:0;z-index:2}
  .pmTopo{position:relative;border-radius:16px;overflow:hidden;margin:10px 0;min-height:200px;padding:14px;display:flex;flex-direction:column;justify-content:flex-end;text-shadow:0 1px 4px #000}
  .pmTopo img.pmBoss{position:absolute;right:6px;top:6px;width:46%;max-width:200px;filter:drop-shadow(0 4px 12px #000)}
  .pmTopo h2{margin:0;font-size:1.6em}.pmInimigos{display:flex;gap:6px;margin-top:6px}.pmInimigos img,.pmInimigos span{width:40px;height:40px;object-fit:contain;font-size:28px}
  .bestGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:4px 0}.bestB{background:#0006;border:1px solid var(--c);border-radius:10px;padding:4px;color:#fff;display:flex;flex-direction:column;align-items:center;font-size:1.6em;min-width:0}.bestB img{width:100%;aspect-ratio:1;object-fit:contain}.bestB small{font-size:.35em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .lojaH{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.lhCard{border:1px solid var(--cor);border-radius:14px;padding:10px;background:#0006;display:flex;flex-direction:column;gap:3px;text-align:center}
  .lhCard .lhImg{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:3em}.lhCard .lhImg img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 10px var(--cor))}.lhCard small{font-size:.75em;color:var(--sub)}.lhCard .btn{margin-top:auto}
  .lhCard.destaque{animation:destaqueH 1.8s ease-out}@keyframes destaqueH{0%,40%{box-shadow:0 0 0 4px var(--ouro),0 0 30px var(--ouro)}100%{box-shadow:none}}
  .lhCard .foneMelhor{position:relative;border:2px solid #3ae8ff;box-shadow:0 0 12px #3ae8ff66}.lhCard .foneMelhor i{position:absolute;top:-9px;right:6px;font-style:normal;font-size:.6em;background:#3ae8ff;color:#000;border-radius:6px;padding:0 5px;font-weight:800}
  .mini.bloqV{opacity:.6;filter:grayscale(.6)}.mini.bloqV small{color:var(--ouro)}
  .rarSel{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:6px 0}.rarSel button{border:2px solid var(--r);background:#0006;color:#fff;border-radius:10px;padding:.35em .8em;font-size:.85em}.rarSel button.on{background:var(--r);color:#000;font-weight:700}
  .mundo .ico img{width:56px;height:56px;object-fit:contain;filter:drop-shadow(0 2px 6px #000c)}.mundo{min-width:110px;text-shadow:0 1px 3px #000}
  .fundoImg{position:absolute;inset:0;background:url(img/ui/fundo-menu.jpg) center/cover no-repeat;opacity:.6}
  #logoImg{height:46px;width:auto;display:block;filter:drop-shadow(0 0 10px #ff9a0066)}
  .grelha{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
  .heroi{position:relative;background:var(--card);border:2px solid var(--borda);border-radius:14px;padding:12px 8px;text-align:center;font-size:.82em}
  .heroi .ico{font-size:2.3em;display:block}
  .heroi b{display:block;font-size:1.15em;margin:.2em 0}
  .heroi .sub{color:var(--sub)}
  .heroi.sel{border-color:var(--ouro);box-shadow:0 0 16px #ffd84a44}
  .heroi.foco{background:#271a5a}
  .heroi.bloq .ico{filter:grayscale(1) brightness(.6)}
  .tag{position:absolute;top:6px;right:6px;font-size:.75em;padding:2px 6px;border-radius:99px;background:#0008}
  .preco{margin-top:6px;color:var(--ouro);font-weight:700}
  .estrelas{color:var(--ouro);letter-spacing:1px;font-size:.9em}
  #painel{background:var(--card);border:1px solid var(--borda);border-radius:14px;padding:12px;margin-top:14px;font-size:.92em}
  #painel:empty{display:none}
  #painel b{font-size:1.1em}
  .btn{display:block;width:100%;margin:8px 0 0;padding:.7em;border:0;border-radius:10px;background:#3a2a80;color:#fff;font-size:1em;text-align:left}
  .btn.ouro{background:var(--ouro);color:#2a1600;font-weight:700;text-align:center}
  .btn:disabled{opacity:.4}
  .btn small{float:right;color:var(--ouro)} .btn.ouro small{color:inherit}
  .barra{height:8px;border-radius:99px;background:#0008;overflow:hidden;margin:8px 0}
  .barra i{display:block;height:100%;background:linear-gradient(90deg,#7fffd4,var(--ouro))}
  /* Fundo animado (estilo Miranda: cosmic drift, prism, liquid chrome, shooting stars) */
  #fundo{position:absolute;inset:0;overflow:hidden;z-index:0;pointer-events:none;animation:prisma 18s linear infinite}
  #ui>*:not(#fundo){position:relative;z-index:1}
  .orbe{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;animation:deriva 14s ease-in-out infinite}
  .orbe.a{width:70vw;height:70vw;background:#7a2cff;top:-20vw;left:-20vw}
  .orbe.b{width:60vw;height:60vw;background:#ff2ca8;bottom:-15vw;right:-20vw;animation-delay:-5s}
  .orbe.c{width:50vw;height:50vw;background:#00d4ff;top:40%;left:30%;animation-delay:-9s;opacity:.35}
  @keyframes deriva{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(8vw,-6vw) scale(1.2)}66%{transform:translate(-6vw,8vw) scale(.9)}}
  @keyframes prisma{to{filter:hue-rotate(360deg)}}
  .grelha-fundo{position:absolute;inset:-50% -50% 0;background:
     linear-gradient(transparent 95%,#ffffff14 95%) 0 0/40px 40px,
     linear-gradient(90deg,transparent 95%,#ffffff14 95%) 0 0/40px 40px;
     transform:perspective(400px) rotateX(60deg);transform-origin:bottom;animation:grid 3s linear infinite;
     mask-image:linear-gradient(transparent 40%,#000);-webkit-mask-image:linear-gradient(transparent 40%,#000)}
  @keyframes grid{to{background-position:0 40px,0 0}}
  .cadente{position:absolute;height:2px;width:0;background:linear-gradient(90deg,#fff,transparent);border-radius:2px;
     box-shadow:0 0 8px #fff;animation:cadente 6s ease-in infinite}
  @keyframes cadente{0%{transform:translate(0,0) rotate(35deg);opacity:0;width:0}
     5%{opacity:1;width:120px}20%{transform:translate(70vw,50vw) rotate(35deg);opacity:0;width:0}100%{opacity:0}}
  .particula{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;animation:sobe linear infinite}
  @keyframes sobe{from{transform:translateY(0);opacity:0}10%{opacity:.9}to{transform:translateY(-110vh);opacity:0}}
  header h1{background:linear-gradient(90deg,#ffd84a,#ff6ad5,#7afcff,#ffd84a);background-size:300% 100%;
     -webkit-background-clip:text;background-clip:text;color:transparent;animation:cromado 6s ease-in-out infinite}
  @keyframes cromado{50%{background-position:100% 0}}
  #go{background-size:200% 100%;background-image:linear-gradient(90deg,#ffe57a,#ffb52a,#ff7ad9,#ffe57a);animation:cromado 4s ease-in-out infinite}
  .heroi,#painel,#msg,nav{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
  .heroi,#painel,#msg{background:#1a1240cc}
  @media (prefers-reduced-motion:reduce){#fundo,#fundo *,header h1,#go,#palco .grande{animation:none!important}}
  .mundo.fechado{filter:grayscale(.85) brightness(.6)}
  .mundo.ver{outline:2px solid var(--ouro)}
  #fichas{background:#1a1240cc;border-radius:14px;padding:10px 12px;margin-top:10px;font-size:.9em}
  #fichas:empty{display:none}
  .ficha{display:flex;gap:10px;align-items:center;padding:6px 0;border-top:1px solid #ffffff12;margin-top:6px}
  .ficha span{font-size:1.8em} .ficha small{color:var(--sub)} .ficha em{color:var(--ouro);font-style:normal;font-size:.8em}
  img.retrato{width:1.6em;height:1.6em;object-fit:contain;border-radius:16%;vertical-align:middle;filter:drop-shadow(0 0 8px var(--cor,#ffd84a))}
  .grande img.retrato{width:2.2em;height:2.2em}
  #palco .grande img.retrato{width:min(230px,60vw);height:auto;aspect-ratio:1;font-size:16px}
  .heroi .ico img.retrato{width:100%;max-width:160px;height:auto;aspect-ratio:1;font-size:16px}
  .nftimg{width:58px;height:58px;border-radius:12px;object-fit:cover;flex:none;margin-right:10px;border:2px solid var(--r,#fff3)}
  .edcab{display:flex;align-items:center;gap:12px;margin-bottom:6px}
  .edcab img,.edcab .sim{width:110px;height:110px;border-radius:16px;object-fit:cover;border:3px solid var(--r,#fff3);box-shadow:0 0 18px var(--r,#0000);display:grid;place-items:center;font-size:60px;background:#0005}
  .edcab .lend{animation:brilho 2.2s ease-in-out infinite}
  @keyframes brilho{50%{box-shadow:0 0 34px #ffd84a,0 0 60px #ffd84a88;filter:brightness(1.15)}}
  .bm{font-size:.95em;margin:14px 0 6px;color:var(--ouro)}
  .bgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
  .bcard{background:var(--card);border:1px solid #ffffff1a;border-radius:12px;padding:8px 6px;text-align:center;display:flex;flex-direction:column;gap:2px;box-shadow:inset 0 0 20px color-mix(in srgb,var(--cor,#fff) 22%,transparent)}
  .bcard span{font-size:1.9em} .bcard small{color:var(--sub);font-size:.72em} .bcard em{font-style:normal;font-size:.7em;color:var(--ouro)}
  .bcard.boss{border-color:var(--cor)} .bcard.oculto{opacity:.4}
  .missao{display:flex;gap:10px;align-items:center;background:var(--card);border-radius:12px;padding:8px 12px;margin-bottom:6px}
  .missao>div{flex:1} .missao small{color:var(--sub)} .missao.paga{opacity:.5} .missao .pr{color:var(--sub);font-size:.85em}
  .missao .btn{width:auto;padding:.4em .8em;margin:0}
  .missao .btn+.btn{margin-left:6px} .btn.on{background:var(--ouro);color:#1a1240}
  header h1{white-space:nowrap;font-size:clamp(.95rem,4.2vw,1.4rem)} #moedas{white-space:nowrap;font-size:clamp(.72rem,3.3vw,1rem);padding:5px 9px;flex:none}
  html,body{overflow-x:hidden}
  nav button{min-width:0;font-size:.72em} .nftmeta{white-space:pre-wrap;font-size:.7em;background:#0006;padding:8px;border-radius:8px;max-height:220px;overflow:auto}
  .perfil{display:flex;gap:14px;align-items:center;background:var(--card);border-radius:16px;padding:14px;border:1px solid #ffd84a44}
  .perfil .av{font-size:2.6em;width:64px;height:64px;display:grid;place-items:center;border-radius:50%;background:#0006;box-shadow:0 0 20px #ffd84a55}
  .perfil .av img{width:58px;height:58px;object-fit:contain} .perfil input{background:none;border:none;border-bottom:1px dashed #fff5;color:#fff;font:inherit;font-weight:700;font-size:1.1em;width:100%}
  .stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px} .stats div{background:var(--card);border-radius:10px;padding:6px;text-align:center;font-size:.75em;color:var(--sub)} .stats b{display:block;color:#fff;font-size:1.25em}
  .med{font-size:1.4em;letter-spacing:2px}
  #teste{margin-top:18px;width:100%;background:none;border:1px dashed #ffd84a88;color:var(--ouro);padding:.5em;border-radius:10px}
@keyframes pulso{50%{transform:scale(1.15)}}
  .equipa{margin-top:8px}.equipa div{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:4px}.equipa .btn{font-size:.8em;padding:6px 10px;width:auto;display:inline-block;margin:0}
  .lembretes{background:#ffd84a18;border:1px solid #ffd84a55;border-radius:12px;padding:8px 10px;margin-bottom:8px;font-size:.85em;display:grid;gap:4px}
  .baus{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.bau{background:var(--card);border:1px solid var(--borda);border-radius:12px;padding:8px 4px;text-align:center;display:grid;gap:4px;font-size:.75em}
  .bau span{font-size:2em}.bau .btn{font-size:.85em;padding:4px;margin:0}.bau.vazio{opacity:.4;place-items:center;min-height:90px}
  .oferta{background:linear-gradient(135deg,#ff8ad833,#ffd84a33);border:2px solid #ffd84a;border-radius:16px;padding:12px;text-align:center;margin-bottom:12px;animation:brilhoOferta 2s infinite}
  @keyframes brilhoOferta{50%{box-shadow:0 0 22px #ffd84a99}}
  .holo{position:relative;display:inline-block;border-radius:16px;overflow:hidden;flex:none}
  .holo::after{content:'';position:absolute;inset:0;pointer-events:none;mix-blend-mode:color-dodge;opacity:.55;
    background:linear-gradient(calc(115deg + var(--hx,0)*40deg),transparent 20%,#ff8ad8 35%,#7affd8 45%,#ffd84a 55%,#8ab0ff 65%,transparent 80%);
    background-size:250% 250%;background-position:calc(50% + var(--hx,0)*40%) calc(50% + var(--hy,0)*40%);animation:holo 4s ease-in-out infinite}
  @keyframes holo{50%{background-position:calc(30% + var(--hx,0)*40%) calc(70% + var(--hy,0)*40%)}}
  .cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal div{background:var(--card);border:1px solid var(--borda);border-radius:8px;text-align:center;padding:3px 0;font-size:.95em;display:grid}
  .cal small{font-size:.6em;color:var(--sub)}.cal .feito{opacity:.35}.cal .hoje{border-color:var(--ouro);box-shadow:0 0 10px #ffd84a88}.cal .fim{border-color:#ffd84a}
  .torneio{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;font-size:.75em}.torneio div{display:grid;gap:4px;align-content:center}.torneio span{background:var(--card);border-radius:6px;padding:4px;text-align:center}
  .torneio .eu{border:1px solid var(--ouro);color:var(--ouro)}.torneio .fora{opacity:.35;text-decoration:line-through}
  .heroi .rar{display:inline-block;font-size:.8em;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--r);border:1px solid var(--r);border-radius:20px;padding:1px 10px;margin-bottom:4px;box-shadow:0 0 10px color-mix(in srgb,var(--r) 40%,transparent)}
  .fc{width:1.15em;height:1.15em;vertical-align:-.2em;display:inline-block}
  .fonte{display:grid;grid-template-columns:1fr 90px 34px;gap:6px;align-items:center;margin:3px 0}.fonte .barra{margin:0}
  i.mo{display:inline-block;width:1em;height:1em;border-radius:50%;vertical-align:-.15em;margin:0 .1em;background:radial-gradient(circle at 35% 35%,#fff6b0,#ffc83a 55%,#b8860b);box-shadow:inset 0 0 0 .12em #d9a020,inset 0 0 0 .2em #ffe27a}
  .escolher{margin-top:8px}.escolher>div{display:flex;gap:8px;overflow-x:auto;padding:4px 2px;justify-content:center;flex-wrap:wrap}
  .escolher .mini{background:var(--card);border:2px solid var(--borda);border-radius:12px;padding:4px;width:64px;color:inherit;display:grid;justify-items:center;cursor:pointer;font-size:1.6em}
  .escolher .mini img{width:48px;height:48px;object-fit:contain}.escolher .mini small{font-size:.38em;margin-top:2px}
  .escolher .mini.on{border-color:var(--cor,#ffd84a);box-shadow:0 0 12px var(--cor,#ffd84a)}
  .moedas3{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px;text-align:center}.moedas3 div{background:var(--card);border:1px solid var(--borda);border-radius:10px;padding:6px 2px;display:grid;font-size:1.1em}.moedas3 b{font-size:.75em}.moedas3 small{font-size:.6em;color:var(--sub)}
  .gridCard{position:relative;overflow:hidden;display:grid;gap:6px;text-align:center;padding:16px 14px 14px;margin:18px 0 12px;border-radius:16px;border:2px solid #3ae8ff;
    background:linear-gradient(180deg,#020a2acc,#000106ee),repeating-linear-gradient(90deg,#2a8aff22 0 1px,transparent 1px 22px),repeating-linear-gradient(0deg,#2a8aff22 0 1px,transparent 1px 22px);
    box-shadow:0 0 18px #2a8aff88,inset 0 0 30px #2a8aff33;animation:gridGlow 2.5s ease-in-out infinite}
  .gridCard small{color:#a8d8ff}.gridCard .btn{justify-self:center}
  .gridTit{font:900 1.35em/1 system-ui;letter-spacing:.12em;color:#cfefff;text-shadow:0 0 8px #3ae8ff,0 0 22px #2a8aff}
  @keyframes gridGlow{50%{box-shadow:0 0 30px #3ae8ff,inset 0 0 40px #2a8aff55}}
  .genesisCard{margin:10px auto 0;max-width:280px;padding:12px;border-radius:14px;border:2px solid #3ae8ff;background:linear-gradient(135deg,#02103a,#0a3a8a);display:grid;gap:4px;box-shadow:0 0 24px #3ae8ff;animation:gridGlow 2s infinite}
  .genesisCard div{font-weight:900;letter-spacing:.2em;color:#3ae8ff;font-size:.8em}.genesisCard small{color:#a8d8ff}
  .obrigado{margin-top:14px;font:italic 400 .78em Georgia,serif;letter-spacing:.08em;color:#a8d8ff;opacity:0;animation:aparecer 1.5s .3s forwards}
  @keyframes aparecer{to{opacity:.7}}
  .almadaCard{display:grid;gap:6px;text-align:center;padding:16px 14px;margin-bottom:12px;border-radius:16px;border:1px solid #d4af37;
    background:radial-gradient(ellipse at top,#2a2440,#0b0a22 70%);box-shadow:0 0 20px #d4af3755,inset 0 0 30px #d4af3722}
  .almadaCard small{color:#e8dcc0}.almadaCard .btn{justify-self:center}
  .almadaTit{font:600 1.6em/1 Georgia,'Times New Roman',serif;letter-spacing:.14em;background:linear-gradient(180deg,#fff3c0,#d4af37 60%,#8a6a10);-webkit-background-clip:text;background-clip:text;color:transparent}
  .almadaSub{letter-spacing:.3em;font-size:.7em!important;color:#d4af37!important}.almadaPw{font-size:.65em!important;opacity:.7;font-style:italic}
  .sovCard{margin:10px auto 0;max-width:280px;padding:12px;border-radius:14px;border:2px solid #d4af37;background:linear-gradient(135deg,#1a1630,#3a2e10);display:grid;gap:4px;box-shadow:0 0 24px #d4af37}
  .sovCard div{font-weight:700;letter-spacing:.14em;color:#d4af37;font-size:.75em;font-family:Georgia,serif}.sovCard small{color:#e8dcc0}
  .gridLogo{width:1.3em;height:1.3em;vertical-align:-.3em;filter:drop-shadow(0 0 8px #3ae8ff)}
  .abas{display:flex;gap:6px;overflow-x:auto;margin:10px 0 12px;padding:4px 2px;scrollbar-width:none;position:sticky;top:0;z-index:5;background:linear-gradient(var(--fundo,#0b0820) 70%,transparent)}
  .abas::-webkit-scrollbar{display:none}
  .abas button{flex:1 0 auto;display:grid;justify-items:center;gap:1px;min-width:64px;padding:6px 8px;border-radius:12px;border:1px solid var(--borda);background:var(--card);color:var(--sub);font:600 .72em system-ui;position:relative;cursor:pointer}
  .abas button span{font-size:1.45em}
  .abas button.on{color:#1a1030;background:linear-gradient(180deg,#ffe27a,#ffb83a);border-color:#ffd84a;box-shadow:0 0 12px #ffd84a66}
  .abas button.ponto::after{content:'';position:absolute;top:4px;right:6px;width:8px;height:8px;border-radius:50%;background:#ff4a6a;box-shadow:0 0 6px #ff4a6a}
  .painelAba{animation:entrarAba .25s ease}
  @keyframes entrarAba{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* página NFTs em grelha: cartões compactos, detalhes numa janela */
.nftGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:6px 0 12px}
.nftTile{margin:0!important;padding:6px!important;cursor:pointer;text-align:center!important}
.nftTile:not(.aberto)>:not(.edcab){display:none}
.nftTile:not(.aberto) .edcab{flex-direction:column;gap:4px;margin:0}
.nftTile:not(.aberto) .edcab img,.nftTile:not(.aberto) .edcab .sim{width:100%;height:auto;aspect-ratio:1;font-size:40px}
.nftTile:not(.aberto) .edcab b{font-size:.85em!important}.nftTile:not(.aberto) .edcab small{font-size:.65em}.nftTile:not(.aberto) .edcab br{display:none}
.nftTile:not(.aberto) .edcab>div{display:flex;flex-direction:column}
.nftBusca{width:100%;box-sizing:border-box;padding:.55em .8em;border-radius:12px;border:1px solid #fff3;background:#0006;color:#fff;font-size:.95em;margin:4px 0}
.nftModal .nftCaixa{max-width:420px;max-height:88vh;overflow:auto;text-align:left}
.nftModal .nftTile{cursor:default;background:none;border:0}

/* cartões dos mundos: faíscas na cor do Boss a subir e névoa no tom do cenário, ao ritmo da aparição */
.mFx{position:absolute!important;inset:0;z-index:1!important;pointer-events:none;overflow:hidden;border-radius:inherit}
.mFx::before{content:'';position:absolute;left:0;right:0;bottom:-40%;height:140%;opacity:.9;
  background-image:radial-gradient(2px 2px at 12% 80%,var(--bc),transparent),radial-gradient(3px 3px at 28% 60%,#fff,transparent),radial-gradient(2px 2px at 44% 90%,var(--bc),transparent),
  radial-gradient(2.5px 2.5px at 60% 70%,var(--fc),transparent),radial-gradient(2px 2px at 75% 85%,var(--bc),transparent),radial-gradient(3px 3px at 88% 65%,#fff,transparent),
  radial-gradient(2px 2px at 20% 40%,var(--fc),transparent),radial-gradient(2px 2px at 52% 30%,var(--bc),transparent),radial-gradient(2.5px 2.5px at 82% 35%,var(--fc),transparent);
  filter:drop-shadow(0 0 4px var(--bc));animation:faiscas 5s linear infinite}
.mFx::after{content:'';position:absolute;left:-20%;right:-20%;bottom:0;height:45%;background:radial-gradient(ellipse at 50% 100%,var(--fc2,#000),transparent 70%);opacity:.75;filter:blur(6px);animation:nevoa 5s ease-in-out infinite}
@keyframes faiscas{0%{transform:translateY(0);opacity:0}15%{opacity:1}70%{opacity:.8}100%{transform:translateY(-55%);opacity:0}}
@keyframes nevoa{0%,100%{transform:translateX(-6%) scaleY(.9);opacity:.5}50%{transform:translateX(6%) scaleY(1.15);opacity:.9}}
.mCard:nth-child(2n) .mFx::before{animation-delay:-1.7s}.mCard:nth-child(3n) .mFx::before{animation-delay:-3.1s}
.mCard::before,.pmTopo::before{opacity:1}

  /* banner: Zeus ao centro, deuses atrás, heróis à frente */
  .bannerCeia{background:radial-gradient(ellipse at 50% 40%,#ffd84a33,#0000 45%),radial-gradient(ellipse at 50% 0%,#2a5cff44,#0000 60%),radial-gradient(ellipse at 50% 60%,#0a1638,#01040c)}
  .bZeus{position:absolute;left:50%;bottom:6%;transform:translateX(-50%);width:38%;z-index:3;filter:drop-shadow(0 0 18px #ffd84acc) drop-shadow(0 0 40px #3a8aff88);animation:naveFlutua 5s ease-in-out infinite}
  .bZeus img{width:100%;display:block}.bZeus span{font-size:5em;display:block;text-align:center}
  .bDeusesF,.bHerF{position:absolute;display:flex;align-items:flex-end}
  .bDeusesF{bottom:30%;width:30%;z-index:1;opacity:.85;filter:brightness(.8)}.bDeusesF img{width:36%;margin:0 -4%;filter:drop-shadow(0 0 8px #000)}
  .bHerF{bottom:4%;width:33%;z-index:2}.bHerF img{width:38%;margin:0 -5%;filter:drop-shadow(0 4px 8px #000)}
  .bDeusesF.bEsq,.bHerF.bEsq{left:2%;justify-content:flex-end}.bDeusesF.bDir,.bHerF.bDir{right:2%;justify-content:flex-start}
  .bannerCeia .bCarta{z-index:4}
  /* linhas das opções: texto à esquerda, controlos alinhados à direita numa só linha */
  .missao>div:first-child{flex:1;min-width:0}
  .missao>span{display:flex;gap:6px;flex-shrink:0;align-items:center;justify-content:flex-end}
  .missao>span .btn{margin:0;min-width:44px;padding:8px 12px}
  .missao>.btn{flex-shrink:0}
  #nickOp{background:#0006;border:1px solid var(--borda);color:var(--txt);border-radius:8px;padding:7px 8px;font-size:15px}
