.motion-consent{position:fixed;inset:0;z-index:999;background:rgba(6,7,9,.86);display:flex;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(6px)}
.motion-consent[hidden]{display:none}
.motion-consent-box{max-width:430px;background:#101216;border:1px solid var(--line);padding:34px 32px;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.5)}
.motion-consent-box h3{font:600 22px Cinzel,serif;color:var(--cream);margin:0 0 14px}
.motion-consent-box p{color:#b8b7b3;font-size:13px;line-height:1.75;margin:0 0 26px}
.motion-consent-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.motion-consent-actions button{padding:13px 20px;font:600 12px "Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.08em;border:1px solid var(--line);background:transparent;color:var(--cream);cursor:pointer;transition:.2s}
.motion-consent-actions button:hover{border-color:var(--gold);color:var(--gold-pale)}
.motion-consent-actions button[data-motion="force"]{background:var(--gold);color:#16120c;border-color:var(--gold)}
.motion-consent-actions button[data-motion="force"]:hover{background:var(--gold-pale);border-color:var(--gold-pale)}
.hero-status-word{font:700 12px "Barlow Condensed",sans-serif;letter-spacing:.18em;margin-left:4px}.hero-status-word.is-online{color:#86ed91;text-shadow:0 0 7px rgba(76,221,99,.8),0 0 18px rgba(76,221,99,.45);animation:realmPulse 1.7s ease-in-out infinite}.hero-status-word.is-offline{color:#ff6565;text-shadow:0 0 7px rgba(255,75,75,.82),0 0 18px rgba(255,75,75,.5);animation:realmPulse 1.7s ease-in-out infinite}@keyframes realmPulse{0%,100%{opacity:.68}50%{opacity:1}}#novidades{scroll-margin-top:24px}
/* Badge do status de dados (ao vivo x demonstração): troca de estilo e texto via JS em app.js/hydrate() */
.demo-badge{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;font:600 10px "Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.1em;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);white-space:nowrap}
.demo-badge small{font-weight:500;letter-spacing:.02em;text-transform:none;opacity:.8;margin-left:2px}
.demo-badge .demo-dot{width:7px;height:7px;border-radius:50%;flex:none}
.demo-badge.is-live{color:#bfe8c4;border-color:rgba(113,188,119,.35);background:rgba(113,188,119,.08)}
.demo-badge.is-live .demo-dot{background:#71bc77;box-shadow:0 0 0 4px rgba(113,188,119,.18)}
.demo-badge.is-demo{color:#f1d58f;border-color:rgba(224,172,76,.35);background:rgba(224,172,76,.08)}
.demo-badge.is-demo .demo-dot{background:#e0ac4c;box-shadow:0 0 0 4px rgba(224,172,76,.18)}
@media(max-width:820px){.demo-badge small{display:none}}.rank-avatar{overflow:hidden}.rank-avatar svg{width:17px;height:17px}.rank-avatar.rank-master{color:#f0c96a;background:rgba(211,165,79,.1)}.rank-avatar.rank-reset{color:#e3ded2;background:rgba(227,222,210,.07)}.rank-avatar.rank-kills{color:#da6c62;background:rgba(218,108,98,.08)}.rank-avatar.rank-bless{color:#83dca0;background:rgba(96,199,126,.08)}.rank-avatar.rank-guilds{color:#82abd3;background:rgba(109,149,191,.1)}.rank-avatar img{display:block;width:100%;height:100%;object-fit:cover}.rank-avatar.rank-guilds svg{width:16px;height:16px}
.hero-status-word.is-maintenance{color:#ffc766;text-shadow:0 0 7px rgba(244,177,61,.9),0 0 20px rgba(244,177,61,.52);animation:realmPulse 1.7s ease-in-out infinite}.rank-avatar{color:#f4cd75!important;background:rgba(211,165,79,.11)!important;border-color:rgba(225,178,86,.33)!important}.rank-avatar.rank-guilds{color:#e7bf69!important}.rank-avatar svg{width:18px;height:18px}.rank-number.gold{animation:medalGlow 2.4s ease-in-out infinite;text-shadow:0 0 8px rgba(234,187,89,.55)}@keyframes medalGlow{0%,100%{color:#c99a44;opacity:.68;text-shadow:0 0 2px rgba(234,187,89,.15)}50%{color:#ffe9b0;opacity:1;text-shadow:0 0 16px rgba(234,187,89,1),0 0 32px rgba(234,187,89,.6),0 0 50px rgba(234,187,89,.28)}}@media (prefers-reduced-motion:reduce){html:not(.force-motion) .hero-status-word,html:not(.force-motion) .rank-number.gold{animation:none!important}}

/* Skeleton de carregamento pros números do status-band (sugestão 4) */
.skeleton{display:inline-block;min-width:52px;height:1em;border-radius:4px;color:transparent!important;background:linear-gradient(100deg,rgba(255,255,255,.05) 30%,rgba(255,255,255,.16) 50%,rgba(255,255,255,.05) 70%);background-size:220% 100%;animation:skeletonSweep 1.3s ease-in-out infinite}
@keyframes skeletonSweep{0%{background-position:150% 0}100%{background-position:-50% 0}}
@media(prefers-reduced-motion:reduce){html:not(.force-motion) .skeleton{animation:none;background:rgba(255,255,255,.08)}}


/* Wordmark em PNG (rodapé) */
.brand img.brand-wordmark{height:30px;width:auto;object-fit:contain;display:block;transition:transform .35s ease,filter .35s ease}
.brand:hover .brand-wordmark{transform:scale(1.03)}
.footer-wordmark{height:26px}

/* ============================================================
   DOCK DE NAVEGAÇÃO (substitui a topbar antiga)
   ------------------------------------------------------------
   Desktop: trilho flutuante vertical, encostado na borda esquerda,
   centralizado verticalmente. Mobile: vira uma barra inferior fixa,
   com todos os ícones lado a lado (ver media query 820px).
   ============================================================ */
.orbit-dock{position:fixed;left:22px;top:50%;transform:translateY(-50%);z-index:50;display:flex;flex-direction:column;align-items:center;gap:16px;padding:18px 11px;background:rgba(8,9,11,.62);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:999px;box-shadow:0 18px 40px rgba(0,0,0,.35);transition:background .25s,box-shadow .25s}
.has-scrolled .orbit-dock{background:rgba(8,9,11,.82);box-shadow:0 18px 44px rgba(0,0,0,.5)}
.orbit-brand{padding:0}
.orbit-brand img{width:26px;height:31px;object-fit:contain;display:block}
.orbit-links{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.orbit-link{width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:#a9a9ab;border-radius:50%;position:relative;transition:background .2s,transform .2s;text-decoration:none}
.orbit-link img{width:24px;height:24px;object-fit:contain;display:block;filter:drop-shadow(0 0 0 rgba(0,0,0,0)) saturate(.75) brightness(.82);transition:filter .2s,transform .2s}
.orbit-link:hover{background:rgba(211,165,79,.12);transform:translateX(2px)}
.orbit-link:hover img{filter:saturate(1.05) brightness(1.05) drop-shadow(0 0 6px rgba(255,170,60,.55));transform:scale(1.08)}
.orbit-link.is-active{background:rgba(211,165,79,.16)}
.orbit-link.is-active img{filter:saturate(1.15) brightness(1.1) drop-shadow(0 0 8px rgba(255,170,60,.75))}
.orbit-link::after{content:attr(data-label);position:absolute;left:calc(100% + 14px);top:50%;transform:translateY(-50%) translateX(-6px);white-space:nowrap;background:rgba(8,9,11,.95);border:1px solid var(--line);color:var(--cream);font:600 11px "Barlow Condensed",sans-serif;letter-spacing:.08em;text-transform:uppercase;padding:7px 11px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.orbit-link:hover::after{opacity:1;transform:translateY(-50%) translateX(0)}
.orbit-discord{width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--gold);text-decoration:none;position:relative;transition:transform .2s}
.orbit-discord img{width:26px;height:26px;object-fit:contain;display:block;filter:drop-shadow(0 0 6px rgba(255,170,60,.45));transition:filter .2s,transform .2s}
.orbit-discord:hover{transform:scale(1.08)}
.orbit-discord:hover img{filter:drop-shadow(0 0 10px rgba(255,170,60,.8))}
.orbit-discord::after{content:attr(data-label);position:absolute;left:calc(100% + 14px);top:50%;transform:translateY(-50%) translateX(-6px);white-space:nowrap;background:rgba(8,9,11,.95);border:1px solid var(--line);color:var(--cream);font:600 11px "Barlow Condensed",sans-serif;letter-spacing:.08em;text-transform:uppercase;padding:7px 11px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.orbit-discord:hover::after{opacity:1;transform:translateY(-50%) translateX(0)}
@media(max-width:820px){
  .orbit-dock{left:12px;right:12px;top:auto;bottom:14px;transform:none;flex-direction:row;justify-content:space-between;border-radius:20px;padding:9px 14px;gap:10px}
  .orbit-links{flex-direction:row;border-top:0;border-bottom:0;border-left:1px solid var(--line);border-right:1px solid var(--line);padding:0 10px;gap:2px;overflow-x:auto;max-width:100%}
  .orbit-link{width:34px;height:34px;flex:none}
  .orbit-link::after,.orbit-discord::after{display:none}
  .orbit-brand img{width:22px;height:26px}
}
@media(max-width:400px){.orbit-links{gap:0}.orbit-link{width:30px;height:30px}.orbit-link img{width:20px;height:20px}}

/* Logo gigante translúcida atrás do texto do hero, com pulso rápido e rastro dourado disparado em intervalos (não contínuo) */
.hero-logo-mark{display:flex;align-items:center;justify-content:center;pointer-events:none;overflow:hidden}
/* Grupo (logo + rastros) deslocado ~46% para a esquerda como uma unidade só, pra ficar atrás do título do hero */
.hero-logo-group{display:flex;align-items:center;justify-content:center;transform:translateX(-46%);position:relative}
.hero-logo-mark img{position:relative;width:min(60vw,760px);max-width:760px;opacity:.1;filter:drop-shadow(0 0 60px rgba(231,190,110,.5));will-change:transform,opacity;animation:markHeartbeat 9s cubic-bezier(.4,0,.2,1) infinite}
/* Rastro dourado com o mesmo recorte da logo (não um círculo): uma cópia da própria imagem, que só aparece na "batida" e se expande/dissipa */
.hero-logo-mark .mark-trail-shape{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;filter:brightness(1.55) saturate(1.35) drop-shadow(0 0 28px rgba(241,206,130,.9)) blur(1px);animation:markTrailShape 9s cubic-bezier(.16,.8,.3,1) infinite;pointer-events:none;will-change:transform,opacity}
.hero-logo-mark .mark-trail-shape.delay{animation-delay:.16s}
/* Longo repouso e, de vez em quando, uma "batida" dupla (como um coração) em vez de uma respiração contínua */
@keyframes markHeartbeat{
  0%,72%{opacity:.1;transform:scale(1)}
  76%{opacity:.28;transform:scale(1.05)}
  80%{opacity:.15;transform:scale(1)}
  85%{opacity:.6;transform:scale(1.12)}
  92%{opacity:.13;transform:scale(1)}
  100%{opacity:.1;transform:scale(1)}
}
@keyframes markTrailShape{
  0%,84.5%{opacity:0;transform:scale(1)}
  86%{opacity:.55;transform:scale(1.03)}
  96%{opacity:0;transform:scale(1.4)}
  100%{opacity:0;transform:scale(1)}
}
@media(max-width:820px){.hero-logo-mark img{width:min(85vw,520px)}}

@media(prefers-reduced-motion:reduce){html:not(.force-motion) .hero-logo-mark img,html:not(.force-motion) .hero-logo-mark .mark-trail-shape{animation:none;opacity:.09}html:not(.force-motion) .hero-logo-mark .mark-trail-shape{display:none}}

/* "REINO" no título dos rankings pulsando em uníssono com os medalhões I, II, III, no mesmo brilho e ritmo */
#rankings .section-heading h2 em{position:relative;display:inline-block;animation:medalGlow 2.4s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){html:not(.force-motion) #rankings .section-heading h2 em{animation:none;color:var(--gold)}}

/* Cards de invasão interativos + miniatura do mob configurável (item das Invasões & eventos) */
.event-card{transition:transform .25s ease,border-color .25s ease,background .25s ease}
.event-card:hover{transform:translateY(-5px);border-color:rgba(211,165,79,.4)}
/* Miniatura do mob: sem caixa/contorno/fundo, só o ícone flutuando no canto */
.event-mob{position:absolute;right:18px;bottom:18px;width:70px;height:70px;--mob-accent:var(--gold);pointer-events:none}
/* Auréola por trás do ícone: some em repouso, aparece com o hover (nível AAA, dá profundidade ao crescimento) */
.event-mob::before{content:"";position:absolute;inset:-14px;border-radius:50%;background:radial-gradient(circle,var(--mob-accent),transparent 70%);opacity:0;transform:scale(.55);filter:blur(3px);transition:opacity .55s cubic-bezier(.34,1.56,.64,1),transform .55s cubic-bezier(.34,1.56,.64,1);z-index:0}
.event-mob img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;display:block;transform-origin:50% 50%;filter:drop-shadow(0 6px 14px rgba(0,0,0,.55)) drop-shadow(0 0 0 transparent);transition:transform .55s cubic-bezier(.34,1.56,.64,1),filter .55s cubic-bezier(.34,1.56,.64,1)}
/* Crescimento de +35% com leve deslocamento em direção ao centro do card (não cresce parado no canto) + brilho colorido por invasão (--mob-accent) */
.event-card:hover .event-mob::before{opacity:.4;transform:scale(1.2)}
.event-card:hover .event-mob img{transform:translate(-17px,-15px) scale(1.35) rotate(-3deg);filter:drop-shadow(0 16px 30px rgba(0,0,0,.65)) drop-shadow(0 0 22px var(--mob-accent)) saturate(1.35) brightness(1.12)}
@media(max-width:540px){.event-mob{width:57px;height:57px;right:14px;bottom:14px}.event-card:hover .event-mob img{transform:translate(-11px,-10px) scale(1.35) rotate(-3deg)}}
@media(prefers-reduced-motion:reduce){html:not(.force-motion) .event-card,html:not(.force-motion) .event-mob img,html:not(.force-motion) .event-mob::before{transition:none}html:not(.force-motion) .event-card:hover{transform:none}html:not(.force-motion) .event-card:hover .event-mob img{transform:none}html:not(.force-motion) .event-card:hover .event-mob::before{opacity:0;transform:scale(.55)}}

/* Ranking de guildas sem coluna de pontuação (por enquanto), só acima do breakpoint mobile, que já colapsa pra 3 colunas sozinho */
@media(min-width:541px){.rank-row.no-score{grid-template-columns:76px minmax(200px,2fr) minmax(220px,1.5fr) 38px}}

/* ============================================================
   ABA "CASTLE SIEGE" — banner da guilda dona do castelo
   ------------------------------------------------------------
   Substitui a antiga tabela de ranking de guildas. A arte de fundo
   (estátua com as mãos erguidas) vem de assets/guilds/castle-siege-banner.webp
   — recortada (30% removidos do topo), então não é mais 16:9 igual aos
   outros banners. Os valores abaixo (--emblem-x/--emblem-y e o
   background-position) são só o FALLBACK: o ajuste fino de verdade é
   feito em site.config.js -> ranking.castleSiege.position (emblema+nome)
   e .bannerPosition (enquadramento da imagem de fundo) — mexa lá, não
   aqui, pra não precisar editar CSS toda vez que trocar a arte.
   ============================================================ */
.castle-siege{position:relative;width:100%;aspect-ratio:1672/630;background-size:cover;background-position:50% 92.5%;background-color:#0c0d10;overflow:hidden;--emblem-x:46%;--emblem-y:56%}
.castle-siege-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,7,9,.1) 0%,rgba(6,7,9,.02) 45%,rgba(6,7,9,.5) 100%)}
.castle-siege-crest{position:absolute;left:var(--emblem-x);top:var(--emblem-y);transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;gap:clamp(14px,3.4vw,36px)}
.castle-siege-side{font:600 clamp(9px,1.05vw,12px)/1.4 "Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.18em;color:var(--gold-pale);text-align:center;text-shadow:0 2px 10px rgba(0,0,0,.85);max-width:92px;padding:6px 9px;border-radius:6px;background:rgba(0,0,0,.3)}
.castle-siege-emblem-wrap{display:flex;flex-direction:column;align-items:center;gap:clamp(6px,1vw,12px)}
.castle-siege-emblem{position:relative;width:clamp(52px,9vw,102px);aspect-ratio:1;border-radius:9px;display:flex;align-items:center;justify-content:center}
.castle-siege-emblem::before{content:"";position:absolute;inset:-16px;border-radius:18px;background:radial-gradient(circle,rgba(241,213,143,.6),transparent 72%);filter:blur(7px);opacity:.5;animation:castleEmblemGlow 2.6s ease-in-out infinite;pointer-events:none}
.castle-siege-emblem img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;border-radius:9px;border:1px solid rgba(241,213,143,.75);box-shadow:0 0 0 4px rgba(8,9,11,.6),0 10px 24px rgba(0,0,0,.55)}
.castle-siege-emblem svg{position:relative;z-index:1;width:44%;height:44%;color:var(--gold-pale);filter:drop-shadow(0 2px 8px rgba(0,0,0,.6))}
@keyframes castleEmblemGlow{0%,100%{opacity:.38;transform:scale(.92)}50%{opacity:.78;transform:scale(1.08)}}
.castle-siege-name{font:600 clamp(14px,1.9vw,23px) Cinzel,serif;letter-spacing:.02em;color:var(--gold-pale);text-shadow:0 2px 14px rgba(0,0,0,.9);text-align:center;white-space:nowrap;animation:medalGlow 2.4s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){html:not(.force-motion) .castle-siege-emblem::before,html:not(.force-motion) .castle-siege-name{animation:none;opacity:1}}
@media(max-width:640px){.castle-siege-crest{gap:9px}.castle-siege-side{max-width:52px;font-size:8px;letter-spacing:.12em;padding:4px 5px}.castle-siege-emblem{width:46px}.castle-siege-name{font-size:12px}}

/* Fundo alternado de "Sistemas Divine": 3 imagens em crossfade contínuo, com zoom lento e expansão extra ao passar o mouse na seção. */
.systems-bg-cycle{position:absolute;inset:0;overflow:hidden;z-index:0;pointer-events:none;transition:transform 1.4s cubic-bezier(.16,1,.3,1)}
.systems-section:hover .systems-bg-cycle{transform:scale(1.07)}
.systems-bg-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.6) brightness(.4) contrast(1.05);transform:scale(1.02)}
.systems-bg-slide:first-child{opacity:1}
.systems-bg-veil{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,#0f1115 0%,rgba(15,17,21,.82) 26%,rgba(15,17,21,.92) 100%),radial-gradient(ellipse at 30% 20%,rgba(211,165,79,.06),transparent 60%);pointer-events:none}
.systems-section>.wrap{position:relative;z-index:2}
@media(prefers-reduced-motion:reduce){html:not(.force-motion) .systems-bg-slide{animation:none;opacity:.45}html:not(.force-motion) .systems-bg-cycle,html:not(.force-motion) .systems-section:hover .systems-bg-cycle{transition:none;transform:none}}

.eyebrow{gap:0}.eyebrow i,.hero-bottom>i{display:none}.feather-field{position:fixed;inset:0;z-index:4;pointer-events:none;overflow:hidden}.feather-particle{position:absolute;top:-8vh;left:var(--x);width:var(--size);height:calc(var(--size) * 1.65);opacity:0;animation-name:featherFall;animation-duration:var(--duration);animation-timing-function:linear;animation-delay:var(--delay);animation-iteration-count:infinite;will-change:transform,opacity}.feather-particle::before,.feather-particle::after{content:"";position:absolute;background:linear-gradient(145deg,rgba(255,247,217,.72),rgba(211,165,79,.2) 60%,transparent 74%);filter:drop-shadow(0 0 2px rgba(241,213,143,.2));transform-origin:bottom center}.feather-particle::before{left:50%;bottom:0;width:1px;height:100%;background:rgba(255,235,181,.58);transform:rotate(19deg)}.feather-particle::after{left:12%;bottom:14%;width:83%;height:77%;border-radius:100% 8% 100% 12%;clip-path:polygon(48% 0,100% 28%,80% 40%,100% 52%,66% 63%,83% 76%,35% 100%,0 79%,26% 60%,0 43%,30% 27%);transform:rotate(-19deg)}.feather-field.has-custom-feather .feather-particle{height:var(--size);background:var(--feather-image) center/contain no-repeat;filter:drop-shadow(0 0 3px rgba(241,213,143,.3))}.feather-field.has-custom-feather .feather-particle::before,.feather-field.has-custom-feather .feather-particle::after{display:none}.feather-particle.is-glowing::after{animation:featherGlint 8s ease-in-out infinite}.feather-field.has-custom-feather .feather-particle.is-glowing{animation-name:featherFall;animation-duration:var(--duration);animation-timing-function:linear;animation-delay:var(--delay);animation-iteration-count:infinite}.feather-particle.is-dissolving-1{animation-name:featherDissolve1}.feather-particle.is-dissolving-2{animation-name:featherDissolve2}.feather-particle.is-dissolving-3{animation-name:featherDissolve3}@keyframes featherDissolve1{0%{transform:translate3d(0,-4vh,0) rotate(-18deg) scale(.7);opacity:0}9%{opacity:var(--opacity)}28%{transform:translate3d(7px,24vh,0) rotate(52deg) scale(.83);opacity:var(--opacity);filter:brightness(1)}33%{filter:brightness(2.1) drop-shadow(0 0 6px rgba(255,230,155,.9));opacity:1}36%{filter:brightness(1);opacity:calc(var(--opacity) * .55)}39%{transform:translate3d(12px,38vh,0) rotate(76deg) scale(.93);filter:brightness(2.3) drop-shadow(0 0 8px rgba(255,230,155,.95));opacity:1}42%{opacity:0;filter:brightness(1)}100%{opacity:0}}@keyframes featherDissolve2{0%{transform:translate3d(0,-4vh,0) rotate(-18deg) scale(.7);opacity:0}9%{opacity:var(--opacity)}45%{transform:translate3d(15px,48vh,0) rotate(100deg) scale(.98);opacity:var(--opacity);filter:brightness(1)}50%{filter:brightness(2.1) drop-shadow(0 0 6px rgba(255,230,155,.9));opacity:1}53%{filter:brightness(1);opacity:calc(var(--opacity) * .55)}57%{transform:translate3d(13px,59vh,0) rotate(120deg) scale(.97);filter:brightness(2.3) drop-shadow(0 0 8px rgba(255,230,155,.95));opacity:1}60%{opacity:0;filter:brightness(1)}100%{opacity:0}}@keyframes featherDissolve3{0%{transform:translate3d(0,-4vh,0) rotate(-18deg) scale(.7);opacity:0}9%{opacity:var(--opacity)}67%{transform:translate3d(6px,73vh,0) rotate(142deg) scale(.93);opacity:calc(var(--opacity) * .8);filter:brightness(1)}72%{filter:brightness(2.1) drop-shadow(0 0 6px rgba(255,230,155,.9));opacity:1}75%{filter:brightness(1);opacity:calc(var(--opacity) * .5)}79%{transform:translate3d(1px,88vh,0) rotate(168deg) scale(.88);filter:brightness(2.3) drop-shadow(0 0 8px rgba(255,230,155,.95));opacity:1}82%{opacity:0;filter:brightness(1)}100%{opacity:0}}@keyframes featherFall{0%{transform:translate3d(0,-4vh,0) rotate(-18deg) scale(.7);opacity:0}9%{opacity:var(--opacity)}52%{transform:translate3d(16px,52vh,0) rotate(108deg) scale(1)}86%{opacity:calc(var(--opacity) * .68)}100%{transform:translate3d(-13px,116vh,0) rotate(216deg) scale(.78);opacity:0}}@keyframes featherGlint{0%,72%,100%{opacity:.72}80%{opacity:1}88%{opacity:.72}}@keyframes featherGlow{0%,72%,100%{filter:drop-shadow(0 0 3px rgba(241,213,143,.3))}80%{filter:brightness(1.65) drop-shadow(0 0 7px rgba(255,230,155,.8))}88%{filter:drop-shadow(0 0 3px rgba(241,213,143,.3))}}@media(prefers-reduced-motion:reduce){html:not(.force-motion) .feather-field{display:none}}

.systems-bg-slide{filter:blur(2px) saturate(.78) brightness(.62) contrast(1.03)}.systems-bg-veil{background:linear-gradient(180deg,rgba(15,17,21,.82) 0%,rgba(15,17,21,.64) 29%,rgba(15,17,21,.87) 100%),radial-gradient(ellipse at 30% 20%,rgba(211,165,79,.1),transparent 60%)}.system-card-frame{filter:saturate(.84) brightness(.68) contrast(1.06)}.system-card:hover .system-card-frame{filter:saturate(.98) brightness(.84) contrast(1.08)}.system-card-veil{background:linear-gradient(0deg,rgba(9,10,13,.9) 0%,rgba(9,10,13,.62) 30%,rgba(9,10,13,.11) 65%,rgba(9,10,13,.22) 100%)}.system-card:hover .system-card-veil{background:linear-gradient(0deg,rgba(9,10,13,.82) 0%,rgba(9,10,13,.43) 40%,rgba(9,10,13,.03) 70%,rgba(9,10,13,.12) 100%)}

/* Sistemas anunciados: vitrine curta, sem link, pensada para receber novos
   itens em site.config.js -> futureSystems conforme o desenvolvimento avança. */
.future-systems{margin-top:54px;padding:28px;border:1px solid rgba(211,165,79,.26);background:linear-gradient(135deg,rgba(211,165,79,.09),rgba(9,11,15,.78) 48%,rgba(32,44,68,.24));position:relative;overflow:hidden}.future-systems:after{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(111,153,218,.16);border-radius:50%;right:-155px;bottom:-280px;pointer-events:none}.future-systems-heading{position:relative;z-index:1;display:flex;align-items:end;justify-content:space-between;gap:32px;margin:0 0 24px}.future-systems-heading .eyebrow{margin:0 0 9px}.future-systems-heading h3{margin:0;color:#e8dfc7;font:600 29px Cinzel,serif}.future-systems-heading h3 em{color:var(--gold);font-style:normal}.future-systems-heading>p{max-width:385px;margin:0;color:#a9aaa9;font-size:12px;line-height:1.7}.future-systems-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.1);border-left:1px solid rgba(255,255,255,.1)}.future-system-card{min-height:148px;position:relative;display:flex;gap:14px;align-items:center;padding:17px;border-right:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1);background:rgba(6,8,12,.38);overflow:hidden}.future-system-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.18;filter:saturate(.9) brightness(.72)}.future-system-card>div{position:relative;z-index:1}.future-system-card span:not(.future-system-card-add>span){display:block;margin-bottom:7px;color:#d3a54f;text-transform:uppercase;font:600 9px "Barlow Condensed",sans-serif;letter-spacing:.15em}.future-system-card h4{margin:0 0 7px;color:#f0e1ba;font:600 15px/1.3 Cinzel,serif}.future-system-card p{margin:0;color:#b8b7b1;font-size:11px;line-height:1.58}.future-system-card-add{background:rgba(255,255,255,.025);align-items:center}.future-system-card-add>span{font:300 38px/1 Cinzel,serif;color:rgba(211,165,79,.55)}.future-system-card-add h4{color:#c4c3bc}.future-system-card-add p{color:#8f9294}@media(max-width:820px){.future-systems{margin-top:32px;padding:20px}.future-systems-heading{align-items:flex-start;flex-direction:column;gap:12px}.future-systems-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:540px){.future-systems{padding:16px}.future-systems-heading h3{font-size:24px}.future-systems-grid{grid-template-columns:1fr}.future-system-card{min-height:125px}}

.download-art{background-position:50% 30%;filter:blur(2px) saturate(.82) brightness(.93);transform:scale(1.03)}@media(max-width:820px){.download-art{background-position:90% 50%}}

.skip-link{position:fixed;left:16px;top:12px;z-index:1001;transform:translateY(-160%);padding:10px 14px;background:var(--gold);color:#17120c;font:700 12px "Barlow Condensed",sans-serif;text-decoration:none;letter-spacing:.08em;text-transform:uppercase}.skip-link:focus{transform:translateY(0)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--gold-pale);outline-offset:3px}.page-progress{position:fixed;z-index:1000;left:0;top:0;width:100%;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;box-shadow:0 0 10px rgba(211,165,79,.7)}.back-to-top{position:fixed;right:24px;bottom:24px;z-index:8;width:39px;height:39px;border:1px solid rgba(241,213,143,.45);background:rgba(8,10,13,.78);backdrop-filter:blur(8px);color:var(--gold-pale);font-size:20px;cursor:pointer;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .2s,transform .2s,border-color .2s}.back-to-top.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}.back-to-top:hover{border-color:var(--gold);background:rgba(211,165,79,.15)}.realm-clock{margin-left:4px;color:#8d8f94;font:600 10px "Barlow Condensed",sans-serif;letter-spacing:.12em;white-space:nowrap}.guide-search{display:block;padding:0 18px 14px}.guide-search input{width:100%;height:35px;border:1px solid rgba(227,189,111,.2);background:rgba(0,0,0,.2);padding:0 11px;color:var(--cream);font:500 12px Manrope,sans-serif}.guide-search input::placeholder{color:#777a80}.guide-nav button[hidden]{display:none}.guide-actions{display:flex;gap:8px;margin:0 0 19px}.guide-action{border:1px solid rgba(211,165,79,.34);background:rgba(211,165,79,.06);padding:8px 10px;color:var(--gold-pale);font:600 10px "Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.09em;cursor:pointer;transition:background .2s,border-color .2s}.guide-action:hover{background:rgba(211,165,79,.16);border-color:var(--gold)}.will-reveal{opacity:0;transform:translateY(16px);transition:opacity .65s ease,transform .65s cubic-bezier(.16,1,.3,1)}.will-reveal.is-revealed{opacity:1;transform:none}@media(max-width:820px){.realm-clock{display:none}.back-to-top{right:16px;bottom:82px}.guide-search{padding:0 18px 14px}}@media(prefers-reduced-motion:reduce){html:not(.force-motion) .will-reveal{opacity:1;transform:none;transition:none}.back-to-top{transition:none}}

/* ============================================================
   ARTE DO TOPO (imagem ou vídeo)
   ------------------------------------------------------------
   A imagem vem de images.hero e o vídeo opcional de images.heroVideo
   (site.config.js). O vídeo entra dentro da .hero-art, por cima da
   imagem, e só aparece quando começa a tocar. --hero-foco é o ponto da
   arte que fica sempre à vista: no celular a tela é estreita, então o
   enquadramento puxa para a direita, onde fica a personagem.
   ============================================================ */
.hero{--hero-foco:center center}
.hero-art{background-position:var(--hero-foco)}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--hero-foco);opacity:0;transition:opacity .9s ease;pointer-events:none}
.hero-video.is-pronto{opacity:1}
@media(max-width:820px){.hero{--hero-foco:65% center}}

/* ============================================================
   EFEITOS DO TOPO (por cima da arte, por baixo do texto)
   ------------------------------------------------------------
   - .hero-nevoa: fumaça escura rasteira (assets/effects/nevoa.webp,
     feita pelo tools/gerar-nevoa.py) em duas camadas correndo para a
     esquerda. Fecha a parte de baixo da arte, onde o vídeo deforma o
     braço e o tecido. Altura da faixa: height (48%).
   - .hero-faiscas: brasas douradas nítidas (desenhadas pelo app.js,
     startHeroEmbers). Nascem do lado da personagem e somem antes do
     texto pela máscara. Quantidade e velocidade ficam no app.js.
   - .hero-grao: grão de filme animado. Esconde a pele "encerada" e os
     degraus do escuro do vídeo de IA. Força: opacity (.11).
   - .hero-brilho: a luz quente do canto de cima respirando devagar.
   - .hero-vinheta: escurece as bordas e prende o olhar no centro.
   Tudo para com movimento reduzido e quando o topo sai da tela.
   ============================================================ */
.hero-faiscas,.hero-grao,.hero-brilho,.hero-vinheta{position:absolute;inset:0;pointer-events:none}
.hero-nevoa{position:absolute;left:0;right:0;bottom:0;height:48%;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse 24% 62% at 60% 100%,rgba(6,7,9,.6),rgba(6,7,9,0) 72%)}
.hero-nevoa::before,.hero-nevoa::after{content:"";position:absolute;top:0;bottom:0;left:0;width:calc(100% + 1600px);background:url('assets/effects/nevoa.webp') repeat-x 0 100%/1600px 100%;animation:heroNevoa 80s linear infinite;will-change:transform}
.hero-nevoa::after{background-position:800px 100%;background-size:1600px 78%;opacity:.75;animation-duration:130s}
@keyframes heroNevoa{from{transform:translateX(0)}to{transform:translateX(-1600px)}}
.hero-faiscas{width:100%;height:100%;-webkit-mask-image:linear-gradient(90deg,transparent 22%,#000 58%);mask-image:linear-gradient(90deg,transparent 22%,#000 58%)}
.hero-grao{overflow:hidden;opacity:.11;mix-blend-mode:overlay}
.hero-grao::before{content:"";position:absolute;inset:-120px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E") 0 0/240px 240px;animation:heroGrao .8s steps(5) infinite;will-change:transform}
@keyframes heroGrao{0%,100%{transform:translate(0,0)}20%{transform:translate(-37px,23px)}40%{transform:translate(41px,-17px)}60%{transform:translate(-19px,-43px)}80%{transform:translate(29px,37px)}}
.hero-brilho{background:radial-gradient(ellipse 34% 42% at 96% 0%,rgba(255,200,120,.34),rgba(255,168,70,.1) 48%,rgba(255,168,70,0) 72%);mix-blend-mode:screen;animation:heroBrilho 7s ease-in-out infinite}
@keyframes heroBrilho{0%,100%{opacity:.55}50%{opacity:1}}
.hero-vinheta{background:radial-gradient(ellipse 85% 95% at 62% 42%,rgba(4,5,7,0) 55%,rgba(4,5,7,.55) 100%)}
@media(max-width:820px){.hero-faiscas{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 45%);mask-image:linear-gradient(90deg,transparent 0,#000 45%)}}
@media(prefers-reduced-motion:reduce){html:not(.force-motion) .hero-grao::before,html:not(.force-motion) .hero-brilho,html:not(.force-motion) .hero-nevoa::before,html:not(.force-motion) .hero-nevoa::after{animation:none}}
.hero-fora .hero-grao::before,.hero-fora .hero-brilho,.hero-fora .hero-nevoa::before,.hero-fora .hero-nevoa::after{animation-play-state:paused}

/* ============================================================
   BOTÃO "ATUALIZAÇÕES" NO HERO — pílula dourada metálica acima do
   "SEASON DIVINE • BRASIL", com brilho suave sempre ativo e um selo
   "Novo" que liga sozinho quando há atualização recente/não vista
   (ver hydrateUpdatesNotice em app.js e updates.config.js -> notifyDays).
   ============================================================ */
.hero-updates-btn{
  position:relative;display:inline-flex;align-items:center;gap:9px;
  padding:13px 24px 13px 18px;border-radius:0;text-decoration:none;
  font:600 11px/1 "Barlow Condensed",sans-serif;letter-spacing:.14em;text-transform:uppercase;
  color:#241a08;
  background:linear-gradient(135deg,#fff6dc 0%,#f2d78f 20%,#caa04a 42%,#8a6423 58%,#d8ac5c 74%,#fdf0cd 100%);
  background-size:220% 220%;background-position:20% 50%;
  border:1px solid rgba(255,244,212,.7);
  box-shadow:0 1px 0 rgba(255,255,255,.65) inset,0 -1px 0 rgba(0,0,0,.28) inset,0 8px 20px rgba(160,120,50,.32),0 2px 5px rgba(0,0,0,.4);
  transition:transform .25s ease,box-shadow .25s ease,background-position .7s ease;
  animation:heroUpdatesSheen 7s ease-in-out infinite;
}
.hero-updates-btn svg{position:relative;z-index:1;width:15px;height:15px}
.hero-updates-btn span{position:relative;z-index:1}
.hero-updates-btn:hover{transform:translateY(-2px);background-position:80% 50%;box-shadow:0 1px 0 rgba(255,255,255,.75) inset,0 -1px 0 rgba(0,0,0,.28) inset,0 12px 26px rgba(200,160,80,.42),0 3px 7px rgba(0,0,0,.45)}
@keyframes heroUpdatesSheen{0%,100%{background-position:20% 50%}50%{background-position:80% 50%}}
/* Selo "Novo": escondido por padrão, só aparece com a classe .has-news (aplicada via JS) */
.hero-updates-flag{position:absolute;top:-9px;right:-8px;display:none;padding:2px 7px;border-radius:999px;font:700 8.5px/1.6 "Barlow Condensed",sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#fff0e0;background:linear-gradient(135deg,#ff8a4c,#e2472b);box-shadow:0 0 0 2px #0c0a07,0 2px 6px rgba(0,0,0,.5)}
.hero-updates-btn.has-news{animation:heroUpdatesSheen 7s ease-in-out infinite,heroUpdatesGlow 2.3s ease-in-out infinite}
.hero-updates-btn.has-news .hero-updates-flag{display:block;animation:heroUpdatesFlagPulse 1.9s ease-in-out infinite}
@keyframes heroUpdatesGlow{
  0%,100%{box-shadow:0 1px 0 rgba(255,255,255,.65) inset,0 -1px 0 rgba(0,0,0,.28) inset,0 8px 20px rgba(160,120,50,.32),0 2px 5px rgba(0,0,0,.4),0 0 0 0 rgba(241,213,143,0)}
  50%{box-shadow:0 1px 0 rgba(255,255,255,.65) inset,0 -1px 0 rgba(0,0,0,.28) inset,0 8px 20px rgba(160,120,50,.32),0 2px 5px rgba(0,0,0,.4),0 0 20px 5px rgba(241,213,143,.55)}
}
@keyframes heroUpdatesFlagPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
@media(max-width:540px){.hero-updates-btn{padding:10px 18px 10px 14px;font-size:10px}.hero-updates-btn svg{width:13px;height:13px}}
@media(prefers-reduced-motion:reduce){
  html:not(.force-motion) .hero-updates-btn{animation:none;background-position:50% 50%}
  html:not(.force-motion) .hero-updates-btn.has-news{animation:none;box-shadow:0 1px 0 rgba(255,255,255,.65) inset,0 -1px 0 rgba(0,0,0,.28) inset,0 8px 20px rgba(160,120,50,.32),0 2px 5px rgba(0,0,0,.4),0 0 14px 3px rgba(241,213,143,.5)}
  html:not(.force-motion) .hero-updates-btn.has-news .hero-updates-flag{animation:none}
}

.hero-version-row{flex-direction:column;align-items:flex-end;gap:8px}.locale-picker{display:flex;align-items:center;gap:6px;padding:5px 6px;border:1px solid rgba(241,213,143,.16);background:rgba(5,7,10,.48);backdrop-filter:blur(7px)}.locale-flag{appearance:none;border:1px solid transparent;background:transparent;padding:3px;line-height:0;cursor:pointer;opacity:.56;filter:saturate(.72);transition:opacity .2s,filter .2s,transform .2s,border-color .2s}.locale-flag img{display:block;width:22px;height:15px;object-fit:cover;box-shadow:0 1px 5px rgba(0,0,0,.5)}.locale-flag:hover,.locale-flag.is-active{opacity:1;filter:saturate(1.05);border-color:rgba(241,213,143,.72);transform:translateY(-1px)}.locale-flag.is-active img{width:29px;height:19px}.hero-actions .button{min-height:52px;justify-content:space-between;border-radius:2px;box-shadow:0 10px 25px rgba(0,0,0,.22)}.hero-actions .button-gold{background:linear-gradient(120deg,#bd862d,#f0c768 55%,#c48c31);background-size:180% 100%;box-shadow:0 1px 0 rgba(255,245,205,.38) inset,0 10px 26px rgba(157,106,29,.26)}.hero-actions .button-gold:hover{background-position:100% 0;box-shadow:0 1px 0 rgba(255,245,205,.6) inset,0 16px 32px rgba(157,106,29,.42)}.hero-actions .button-ghost{border-color:rgba(241,213,143,.45);background:linear-gradient(130deg,rgba(15,17,21,.9),rgba(35,29,18,.64));box-shadow:0 1px 0 rgba(255,255,255,.08) inset,0 10px 25px rgba(0,0,0,.18)}.hero-actions .button-ghost:hover{background:linear-gradient(130deg,rgba(48,38,20,.92),rgba(15,17,21,.86));border-color:var(--gold-pale)}
.ranking-shell{overflow:hidden;box-shadow:0 22px 48px rgba(0,0,0,.22)}.ranking-tabs{position:relative;gap:8px;padding:13px 16px;background:linear-gradient(100deg,rgba(211,165,79,.13),rgba(14,16,20,.96) 36%,rgba(18,20,25,.92))}.rank-tab{position:relative;display:flex;align-items:center;gap:8px;min-height:42px;padding:11px 15px;border:1px solid transparent;border-radius:2px;color:#92949a;letter-spacing:.1em;transition:color .2s,border-color .2s,background .2s,transform .2s}.rank-tab::before{content:"";width:5px;height:5px;border:1px solid currentColor;transform:rotate(45deg);opacity:.6}.rank-tab:hover{color:var(--gold-pale);background:rgba(211,165,79,.08);border-color:rgba(211,165,79,.22);transform:translateY(-1px)}.rank-tab.is-selected{border-color:rgba(241,213,143,.46);background:linear-gradient(135deg,rgba(211,165,79,.24),rgba(211,165,79,.06));color:#ffe4a0;box-shadow:0 0 18px rgba(211,165,79,.08) inset}.rank-tab.is-selected::after{content:"";position:absolute;left:16px;right:16px;bottom:-14px;height:2px;background:var(--gold);box-shadow:0 0 10px var(--gold)}
.guide-nav{scrollbar-width:thin;scrollbar-color:var(--gold) rgba(6,8,10,.62)}.guide-nav::-webkit-scrollbar{width:9px}.guide-nav::-webkit-scrollbar-track{background:linear-gradient(180deg,#080a0e,#14171d);border-left:1px solid rgba(227,189,111,.12)}.guide-nav::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#f0cf79,#9e7028);border:2px solid #0d1014;border-radius:8px}.guide-nav::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#ffe7a4,#bd8531)}
@media(max-width:720px){.hero-version-row{display:flex}.locale-picker{gap:4px}.locale-flag img{width:18px;height:12px}.locale-flag.is-active img{width:23px;height:15px}.ranking-tabs{padding:10px;gap:5px}.rank-tab{padding:9px 11px}}@media(max-width:540px){.hero-version-row{display:flex}.hero-bottom{align-items:flex-end}.hero-bottom>span{display:none}.locale-picker{padding:4px}.rank-tab::before{display:none}}

/* --------------------------------------------------------------------------
   POLIMENTOS
   -------------------------------------------------------------------------- */

/* Sem JavaScript a página fica praticamente em branco. Melhor dizer isso do que
   deixar o visitante achando que o servidor caiu. */
.noscript-note {
  position: relative;
  z-index: 20;
  margin: 0;
  padding: 18px clamp(18px, 5vw, 60px);
  background: linear-gradient(100deg, rgba(211, 165, 79, .18), rgba(10, 12, 16, .96) 55%);
  border-bottom: 1px solid rgba(241, 213, 143, .3);
  color: #e6ddc7;
  font-size: 13px;
  line-height: 1.7;
}
.noscript-note strong { color: var(--gold-pale); display: block; margin-bottom: 3px; font-family: Cinzel, serif; }
.noscript-note a { color: var(--gold-pale); }

/* Abrir o guia dos sistemas tranca a rolagem do fundo. Sem reservar o espaço da
   barra, a página inteira "pula" alguns pixels para o lado nesse instante. */
html { scrollbar-gutter: stable; }

/* Enquanto o arquivo do idioma baixa, o seletor mostra que está trabalhando.
   São alguns décimos de segundo, mas sem isso o clique parece não ter funcionado. */
.locale-picker.is-loading { cursor: progress; }
.locale-picker.is-loading .locale-flag { pointer-events: none; opacity: .38; }
.locale-picker.is-loading .locale-flag.is-active { animation: localePulse .7s ease-in-out infinite alternate; }
@keyframes localePulse { from { opacity: .5 } to { opacity: 1 } }

/* Busca do guia sem resultado: o índice ficava simplesmente vazio, sem explicar nada. */
.guide-sidebar.is-empty .guide-nav::after {
  content: "Nenhuma invasão com esse termo.";
  display: block;
  padding: 18px 22px;
  color: #85878c;
  font-size: 12px;
  line-height: 1.6;
}
html[data-locale="en-US"] .guide-sidebar.is-empty .guide-nav::after { content: "No invasion matches that search."; }
html[data-locale="es-ES"] .guide-sidebar.is-empty .guide-nav::after { content: "Ninguna invasi\00f3n coincide con esa b\00fasqueda."; }
html[data-locale="de-DE"] .guide-sidebar.is-empty .guide-nav::after { content: "Keine Invasion passt zu dieser Suche."; }
html[data-locale="ja-JP"] .guide-sidebar.is-empty .guide-nav::after { content: "\6761\4EF6\306B\5408\3046\4FB5\653B\306F\3042\308A\307E\305B\3093\3002"; }
html[data-locale="pl-PL"] .guide-sidebar.is-empty .guide-nav::after { content: "\017Badna inwazja nie pasuje do tego wyszukiwania."; }
html[data-locale="fil-PH"] .guide-sidebar.is-empty .guide-nav::after { content: "Walang invasion na tugma sa hinanap mo."; }

@media (prefers-reduced-motion: reduce) {
  html:not(.force-motion) .locale-picker.is-loading .locale-flag.is-active { animation: none; }
}

/* O copyright fica DENTRO de .footer-links (para acompanhar a coluna dos links),
   mas .footer-links é uma linha flex, então ele ficava colado ao lado de Discord.
   Aqui ele ganha a linha inteira e cai embaixo de Download/Rankings/Eventos. */
.footer-links { flex-wrap: wrap; align-items: center; }
#footer-copyright {
  flex-basis: 100%;
  margin-top: 12px;
  color: #6f7278;
  font: 500 11px Manrope, sans-serif;
  letter-spacing: .02em;
}

/* Convite para os sistemas fora dos destaques (app.js -> renderMoreSystems). */
.more-systems{margin-top:34px;padding:30px;display:flex;align-items:center;justify-content:space-between;gap:36px;border:1px solid rgba(211,165,79,.3);background:linear-gradient(120deg,rgba(211,165,79,.1),rgba(9,11,15,.82) 55%,rgba(120,26,32,.2));position:relative;overflow:hidden}.more-systems[hidden]{display:none}.more-systems-copy{max-width:680px}.more-systems-copy h3{margin:0 0 12px;color:#e8dfc7;font:600 27px Cinzel,serif}.more-systems-copy h3 em{color:var(--gold);font-style:normal}.more-systems-copy>p{margin:0 0 16px;color:#b3b2ac;font-size:13px;line-height:1.7}.more-systems-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.more-systems-list li{padding:6px 11px;border:1px solid rgba(211,165,79,.28);background:rgba(6,8,12,.5);color:#e3cf9e;font:600 11px "Barlow Condensed",sans-serif;letter-spacing:.09em;text-transform:uppercase}.more-systems-actions{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-start;gap:10px;max-width:260px}.more-systems-actions small{color:#8f9294;font-size:11px;line-height:1.6}@media(max-width:820px){.more-systems{flex-direction:column;align-items:flex-start;padding:22px;gap:22px}.more-systems-actions{max-width:none}}@media(max-width:540px){.more-systems{padding:16px}.more-systems-copy h3{font-size:22px}}

/* Clarão das penas brilhantes: luz redonda que acende e apaga (só opacidade), no lugar
   do filtro animado que repintava a tela inteira a cada quadro. */
.feather-particle.is-glowing::before,.feather-field.has-custom-feather .feather-particle.is-glowing::before{display:block;content:"";position:absolute;inset:-70%;background:radial-gradient(circle,rgba(255,230,155,.5),rgba(241,213,143,.12) 38%,transparent 62%);filter:none;clip-path:none;transform:none;opacity:0;animation:featherFlash 8s ease-in-out infinite;will-change:opacity}
@keyframes featherFlash{0%,72%,100%{opacity:0}80%{opacity:1}88%{opacity:0}}
/* O dock já é quase opaco: o desfoque do que passa por trás custava um redesenho a cada rolagem. */
.orbit-dock{backdrop-filter:none;-webkit-backdrop-filter:none}
/* Topo fora da tela ou uma janela aberta por cima: as animações do topo e as penas descansam. */
.hero-fora .hero-logo-mark img,.hero-fora .hero-logo-mark .mark-trail-shape,.hero-fora .hero-status-word,.hero-fora .hero-updates-btn,.hero-fora .hero-updates-flag,
body.modal-open .feather-particle,body.modal-open .feather-particle::before,body.modal-open .feather-particle::after,body.modal-open .systems-bg-slide,body.modal-open .system-card-frame{animation-play-state:paused!important}
