Mudanças entre as edições de "Widget:Character.Base"
Ir para navegação
Ir para pesquisar
m |
m (mbl fix2) |
||
| (35 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
| Linha 1: | Linha 1: | ||
< | <style> | ||
/* ===========================BASE STYLES & RESET=========================== */ | |||
img { | |||
pointer-events: none; | |||
-webkit-user-select: none; | |||
user-select: none; | |||
} | |||
video { | |||
max-height: none; | |||
} | |||
.mw-body { | |||
padding: unset !important; | |||
} | |||
.mw-body-content { | |||
line-height: 1.5; | |||
} | |||
} | .mw-body-content p { | ||
display: none; | |||
} | |||
/* ===========================CHARACTER CONTAINER & BACKGROUND=========================== */ | |||
} | .banner { | ||
display: none !important; | |||
} | |||
.character-box { | |||
color: #000; | |||
font-family: 'Noto Sans', sans-serif; | |||
width: 100%; | |||
margin: auto; | |||
position: relative; | |||
-webkit-user-select: none; | |||
user-select: none; | |||
/* background-image será definido inline pelo Módulo (via |background=Arquivo.ext|) */ | |||
background-position: center top; | |||
background-repeat: no-repeat; | |||
background-size: cover; | |||
z-index: 1; | |||
} | |||
.character-box p { | |||
display: unset; | |||
} | |||
.character-box::before { | |||
content: ""; | |||
position: absolute; | |||
inset: 0; | |||
pointer-events: none; | |||
background: linear-gradient(to bottom, rgba(0, 0, 0, .45), rgba(0, 0, 0, .60)); | |||
z-index: 0; | |||
} | |||
/* ===========================CHARACTER HEADER & INFO=========================== */ | |||
.character-header { | |||
position: relative; | |||
overflow: hidden; | |||
display: flex; | |||
gap: 10px; | |||
flex-direction: column; | |||
z-index: 1; | |||
} | |||
.character-art { | |||
display: none !important; | |||
width: 0 !important; | |||
height: 0 !important; | |||
overflow: hidden !important; | |||
} | |||
.character-topbar { | |||
display: flex; | |||
flex-direction: column; | |||
align-items: flex-start; | |||
padding: 8px 20px 0; | |||
z-index: 1; | |||
} | |||
.character-name-box { | |||
display: flex; | |||
align-items: center; | |||
gap: 14px; | |||
} | |||
.topbar-icon { | |||
margin-top: 8px; | |||
width: 100px; | |||
height: 100px; | |||
object-fit: none; | |||
} | |||
.character-name { | |||
color: #fff; | |||
font-size: 56px; | |||
font-family: 'Orbitron', sans-serif; | |||
font-weight: 900; | |||
text-shadow: 0 0 6px #000, 0 0 9px #000; | |||
} | |||
.topbar-description { | |||
display: none; | |||
} | |||
.class-tags { | |||
display: flex; | |||
gap: 9px; | |||
flex-wrap: wrap; | |||
margin-left: .28rem; | |||
} | |||
.class-tag { | |||
background: #353420; | |||
color: #fff; | |||
outline: 2px solid #000; | |||
padding: 1px 6px; | |||
border-radius: 4px; | |||
font-size: .9em; | |||
font-weight: 700; | |||
box-shadow: 0 0 2px rgb(0 0 0 / 70%); | |||
} | |||
.character-info .tier, | |||
.character-info .class-tag { | |||
font-size: 18px; | |||
color: #bbb; | |||
} | |||
/* ===========================TABS SYSTEM=========================== */ | |||
.character-tabs { | |||
margin: 4px 0 4px 8px; | |||
display: flex; | |||
gap: 12px; | |||
} | |||
.tab-btn { | |||
padding: 5px 20px; | |||
background: #333; | |||
color: #fff; | |||
border: 2px solid transparent; | |||
border-radius: 8px; | |||
font-size: 20px; | |||
cursor: pointer; | |||
font-weight: 600; | |||
line-height: 1; | |||
transition: background .15s, border-color .15s; | |||
} | |||
.tab-btn.active { | |||
background: #156bc7; | |||
border-color: #156bc7; | |||
} | |||
.tab-content { | |||
display: none; | |||
padding: 0 8px 8px; | |||
position: relative; | |||
z-index: 2; | |||
opacity: 0; | |||
transform: translateY(12px); | |||
transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |||
will-change: opacity, transform; | |||
} | |||
.tab-content.active { | |||
display: block; | |||
opacity: 1; | |||
transform: translateY(0); | |||
} | |||
/* Wrapper para transição de altura das abas */ | |||
.tabs-height-wrapper { | |||
position: relative; | |||
overflow: hidden; | |||
will-change: height; | |||
-webkit-backface-visibility: hidden; | |||
backface-visibility: hidden; | |||
-webkit-transform: translateZ(0); | |||
transform: translateZ(0); | |||
} | |||
/* Previne scroll e mudanças bruscas durante transição */ | |||
body.transitioning-tabs { | |||
overflow-x: hidden !important; | |||
} | |||
body.transitioning-tabs .character-box { | |||
overflow: hidden; | |||
} | |||
.character-box { | |||
overflow: visible; | |||
} | |||
/* ===========================SKILLS SYSTEM=========================== */ | |||
.skills-container { | |||
display: flex; | |||
gap: 20px; | |||
align-items: flex-start; | |||
} | |||
.skills-details { | |||
flex: 1; | |||
display: flex; | |||
flex-direction: column; | |||
gap: 10px; | |||
width: auto; | |||
justify-content: center; | |||
} | |||
/* ===========================SKILL ICONS & BAR=========================== */ | |||
.icon-bar { | |||
display: flex; | |||
flex-wrap: nowrap; | |||
gap: 10px; | |||
width: 100%; | |||
overflow-x: auto; | |||
overflow-y: hidden; | |||
padding: 6px 6px; | |||
margin-bottom: 6px; | |||
scroll-behavior: smooth; | |||
/* Firefox */ | |||
scrollbar-width: thin; | |||
scrollbar-color: #ababab transparent; | |||
justify-content: flex-start; | |||
align-items: center; | |||
position: relative; | |||
z-index: 4; | |||
} | |||
/* Weapon Toggle Button - Estilos completamente isolados usando .weapon-active */ | |||
.icon-bar .skill-icon.weapon-bar-toggle { | |||
background: rgba(40, 40, 48, 0.85) !important; | |||
color: rgba(255, 255, 255, 0.7) !important; | |||
border: 1px solid rgba(255, 255, 255, 0.08) !important; | |||
overflow: visible !important; | |||
transform: none !important; | |||
box-shadow: none !important; | |||
} | |||
.icon-bar .skill-icon.weapon-bar-toggle::before { | |||
display: none !important; | |||
opacity: 0 !important; | |||
box-shadow: none !important; | |||
} | |||
.icon-bar .skill-icon.weapon-bar-toggle::after { | |||
box-shadow: inset 0 0 0 var(--icon-ring-w) rgba(180, 180, 180, 0.5) !important; | |||
} | |||
.icon-bar .skill-icon.weapon-bar-toggle:hover { | |||
background: rgba(55, 55, 65, 0.9) !important; | |||
color: rgba(255, 255, 255, 0.95) !important; | |||
transform: none !important; | |||
} | |||
.icon-bar .skill-icon.weapon-bar-toggle:hover::after { | |||
box-shadow: inset 0 0 0 var(--icon-ring-w) rgba(220, 220, 220, 0.6) !important; | |||
} | |||
/* Estado ativo do toggle usa .weapon-active em vez de .active */ | |||
.icon-bar .skill-icon.weapon-bar-toggle.weapon-active { | |||
background: linear-gradient(145deg, rgba(200, 60, 40, 0.95), rgba(160, 45, 30, 0.95)) !important; | |||
color: #fff !important; | |||
transform: scale(1.08) !important; | |||
} | |||
.icon-bar .skill-icon.weapon-bar-toggle.weapon-active::before { | |||
display: none !important; | |||
} | |||
.icon-bar .skill-icon.weapon-bar-toggle.weapon-active::after { | |||
box-shadow: inset 0 0 0 var(--icon-ring-w) #FF5722 !important; | |||
animation: togglePulse 1.8s ease-in-out infinite; | |||
} | |||
@keyframes togglePulse { | |||
0%, | |||
100% { | |||
box-shadow: inset 0 0 0 var(--icon-ring-w) rgba(255, 87, 34, 0.9); | |||
} | } | ||
50% { | |||
box-shadow: inset 0 0 0 var(--icon-ring-w) #FF7043, inset 0 0 10px 2px rgba(255, 112, 67, 0.35); | |||
} | } | ||
} | |||
.icon-bar .skill-icon.weapon-bar-toggle svg { | |||
width: 22px; | |||
height: 22px; | |||
pointer-events: none; | |||
} | |||
.icon-bar .skill-icon.weapon-bar-toggle:focus-visible { | |||
outline: none; | |||
} | |||
.icon-bar .skill-icon.weapon-bar-toggle:focus-visible::after { | |||
box-shadow: 0 0 0 3px rgba(220, 80, 80, 0.5) !important; | |||
} | |||
/* Back handle for nested skill bars */ | |||
.top-rail.skills { | |||
position: relative; | |||
overflow: visible; | |||
z-index: 10; | |||
transition: width .24s ease, max-width .24s ease; | |||
} | |||
.top-rail.skills.weapon-mode-on { | |||
background: linear-gradient(135deg, rgba(65, 25, 25, 0.96), rgba(50, 18, 18, 0.96)); | |||
border-color: transparent; | |||
animation: weapon-bar-glow 3.5s ease-in-out infinite; | |||
} | |||
.top-rail.skills.weapon-mode-on::before { | |||
content: ""; | |||
position: absolute; | |||
inset: -2px; | |||
border-radius: inherit; | |||
padding: 2px; | |||
background: linear-gradient(90deg, | |||
transparent 0%, | |||
rgba(255, 80, 80, 0.8) 25%, | |||
rgba(255, 120, 60, 1) 50%, | |||
rgba(255, 80, 80, 0.8) 75%, | |||
transparent 100%); | |||
background-size: 200% 100%; | |||
animation: weapon-border-scan 4s linear infinite; | |||
-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); | |||
mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); | |||
-webkit-mask-composite: xor; | |||
mask-composite: exclude; | |||
pointer-events: none; | |||
z-index: -1; | |||
} | |||
.top-rail.skills.weapon-mode-on::after { | |||
content: ""; | |||
position: absolute; | |||
inset: 0; | |||
border-radius: inherit; | |||
box-shadow: | |||
0 0 15px rgba(255, 80, 80, 0.4), | |||
inset 0 0 20px rgba(255, 80, 80, 0.1); | |||
animation: weapon-bar-pulse 3s ease-in-out infinite; | |||
pointer-events: none; | |||
} | |||
@keyframes weapon-border-scan { | |||
0% { | |||
background-position: 200% 0; | |||
} | } | ||
100% { | |||
background-position: -200% 0; | |||
} | |||
} | |||
@keyframes weapon-bar-glow { | |||
0%, | |||
100% { | |||
filter: brightness(1); | |||
} | } | ||
50% { | |||
filter: brightness(1.1); | |||
} | } | ||
} | |||
@keyframes weapon-bar-pulse { | |||
0%, | |||
100% { | |||
opacity: 0.6; | |||
box-shadow: | |||
0 0 12px rgba(255, 80, 80, 0.3), | |||
inset 0 0 15px rgba(255, 80, 80, 0.08); | |||
} | } | ||
50% { | |||
opacity: 1; | |||
box-shadow: | |||
0 0 25px rgba(255, 80, 80, 0.5), | |||
inset 0 0 25px rgba(255, 80, 80, 0.15); | |||
} | } | ||
} | |||
.skills-back-wrapper { | |||
display: none; | |||
position: absolute; | |||
left: 50px; | |||
top: 50%; | |||
transform: translateY(-50%); | |||
width: 70px; | |||
height: 95%; | |||
z-index: -1; | |||
pointer-events: none; | |||
} | |||
.skills-rail-wrap { | |||
position: relative; | |||
z-index: 0; | |||
} | |||
.skills-rail-wrap.has-sub-bar::before { | |||
content: ""; | |||
position: absolute; | |||
left: 2px; | |||
/* alinha por dentro da borda do rail (2px) */ | |||
top: 2px; | |||
bottom: 2px; | |||
/* evita vazar na parte de baixo */ | |||
width: 70px; | |||
background: rgba(28, 28, 34, .95); | |||
border: 0; | |||
/* sem borda própria para não “escapar” */ | |||
box-shadow: none; | |||
/* sem sombra aqui */ | |||
border-radius: 10px 0 0 10px; | |||
/* 12px - 2px da borda externa */ | |||
pointer-events: none; | |||
z-index: 0; | |||
} | |||
.skills-back-wrapper .skills-back { | |||
display: flex; | |||
position: absolute; | |||
left: 0; | |||
top: 0; | |||
transform: translateX(-97%); | |||
width: 70px; | |||
height: 100%; | |||
padding: 0; | |||
border-radius: 12px 0 0 12px; | |||
border: 2px solid rgba(255, 255, 255, .08); | |||
border-right: none; | |||
background: rgba(28, 28, 34, .95); | |||
color: rgba(255, 255, 255, 0.8); | |||
cursor: pointer; | |||
pointer-events: all; | |||
align-items: center; | |||
justify-content: center; | |||
box-shadow: 0 4px 12px rgba(0, 0, 0, .25); | |||
-webkit-backdrop-filter: blur(2px); | |||
backdrop-filter: blur(2px); | |||
transition: transform .22s ease, background .22s ease, color .22s ease; | |||
overflow: visible; | |||
} | |||
.skills-back-wrapper .skills-back:hover { | |||
transform: translateX(-150%); | |||
background: rgba(40, 40, 48, .95); | |||
color: rgba(255, 255, 255, 1.0); | |||
box-shadow: 0 4px 16px rgba(0, 0, 0, .35), 0 0 8px rgba(255, 255, 255, 0.12); | |||
border-color: rgba(255, 255, 255, 0.12); | |||
} | |||
@keyframes backPeekPulse { | |||
0%, | |||
100% { | |||
box-shadow: 0 4px 12px rgba(0, 0, 0, .25); | |||
} | } | ||
50% { | |||
box-shadow: 0 4px 16px rgba(0, 0, 0, .35), 0 0 8px rgba(255, 255, 255, 0.18); | |||
} | |||
} | |||
.skills-back-wrapper .skills-back.peek { | |||
animation: backPeekPulse 1.4s ease-in-out infinite; | |||
} | |||
.skills-back-wrapper .skills-back .back-chevron { | |||
display: block; | |||
width: 90%; | |||
height: 90%; | |||
} | |||
.icon-bar::-webkit-scrollbar { | |||
height: 6px; | |||
} | |||
.icon-bar::-webkit-scrollbar-track { | |||
background: transparent; | |||
} | |||
.icon-bar::-webkit-scrollbar-thumb { | |||
background: #151515; | |||
border-radius: 3px; | |||
} | |||
/* Icon Variables */ | |||
:root { | |||
--icon-size: 39px; | |||
--icon-radius: 8px; | |||
--icon-ring-w: 2px; | |||
--icon-idle: #bbb; | |||
--icon-active: #FFD257; | |||
--icon-active-ring: rgba(255, 210, 87, .45); | |||
--icon-active-glow: rgba(255, 210, 87, .35); | |||
--skill-pane-height: unset; | |||
} | |||
.icon-bar .skill-icon { | |||
width: var(--icon-size); | |||
height: var(--icon-size); | |||
position: relative; | |||
flex: 0 0 auto; | |||
border-radius: var(--icon-radius); | |||
overflow: hidden; | |||
contain: paint; | |||
margin-top: 0; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
-webkit-tap-highlight-color: transparent; | |||
background-clip: padding-box; | |||
/* Anti-aliasing para bordas suaves */ | |||
-webkit-backface-visibility: hidden; | |||
backface-visibility: hidden; | |||
transform: translateZ(0); | |||
border: 1px solid rgba(255, 255, 255, 0.05); | |||
background-color: rgba(15, 15, 23, 0.95); | |||
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.02); | |||
} | |||
/* small + badge to indicate nested subs */ | |||
.icon-bar .skill-icon .sub-badge { | |||
position: absolute; | |||
right: 2px; | |||
bottom: 2px; | |||
width: 16px; | |||
height: 16px; | |||
border-radius: 50%; | |||
background: #156bc7; | |||
color: #fff; | |||
font-weight: 900; | |||
font-size: 12px; | |||
line-height: 16px; | |||
text-align: center; | |||
box-shadow: 0 2px 6px rgba(0, 0, 0, .4); | |||
cursor: pointer; | |||
z-index: 3; | |||
-webkit-user-select: none; | |||
user-select: none; | |||
} | |||
/* back badge (−) to return to previous bar */ | |||
.icon-bar .skill-icon .back-badge { | |||
position: absolute; | |||
right: 2px; | |||
bottom: 2px; | |||
width: 16px; | |||
height: 16px; | |||
border-radius: 50%; | |||
background: #c74615; | |||
color: #fff; | |||
font-weight: 900; | |||
font-size: 14px; | |||
line-height: 16px; | |||
text-align: center; | |||
box-shadow: 0 2px 6px rgba(0, 0, 0, .4); | |||
cursor: pointer; | |||
z-index: 3; | |||
-webkit-user-select: none; | |||
user-select: none; | |||
} | |||
.icon-bar .skill-icon img { | |||
display: block; | |||
width: 100%; | |||
height: 100%; | |||
border-radius: inherit; | |||
-webkit-clip-path: inset(0 round var(--icon-radius)); | |||
clip-path: inset(0 round var(--icon-radius)); | |||
will-change: transform; | |||
backface-visibility: hidden; | |||
transform: translateZ(0); | |||
transition: transform .12s ease; | |||
} | |||
/* Icon Ring Effects */ | |||
.icon-bar .skill-icon::after { | |||
content: ""; | |||
position: absolute; | |||
inset: 0; | |||
border-radius: inherit; | |||
box-shadow: inset 0 0 0 var(--icon-ring-w) var(--icon-idle); | |||
pointer-events: none; | |||
z-index: 2; | |||
transition: box-shadow .14s ease; | |||
/* Anti-aliasing para bordas suaves */ | |||
-webkit-backface-visibility: hidden; | |||
backface-visibility: hidden; | |||
transform: translateZ(0); | |||
} | |||
.icon-bar .skill-icon::before { | |||
content: ""; | |||
position: absolute; | |||
inset: 0; | |||
border-radius: inherit; | |||
pointer-events: none; | |||
z-index: 1; | |||
box-shadow: none; | |||
opacity: 0; | |||
transition: opacity .14s ease, box-shadow .14s ease; | |||
} | |||
.icon-bar .skill-icon:hover::after { | |||
box-shadow: inset 0 0 0 var(--icon-ring-w) #e0e0e0; | |||
} | |||
.icon-bar .skill-icon.active::after { | |||
box-shadow: inset 0 0 0 var(--icon-ring-w) var(--icon-active); | |||
} | |||
.icon-bar .skill-icon.active::before { | |||
box-shadow: 0 0 10px 2px var(--icon-active-glow), 0 0 0 4px var(--icon-active-ring); | |||
opacity: 1; | |||
} | |||
.icon-bar .skill-icon.active img { | |||
transform: scale(1.10); | |||
} | |||
@media (prefers-reduced-motion: reduce) { | |||
.icon-bar .skill-icon { | |||
transition: none; | |||
} | |||
} | |||
/* ===========================SKILL DESCRIPTION & CONTENT=========================== */ | |||
.skill-title { | |||
margin: 0 0 12px; | |||
display: flex; | |||
justify-content: center; | |||
align-items: center; | |||
} | |||
.skill-title h3 { | |||
margin: 0; | |||
width: 100%; | |||
text-align: center; | |||
font-size: 1.6em; | |||
color: #fff; | |||
} | |||
.desc-box { | |||
padding: 12px 18px; | |||
background: transparent; | |||
border-radius: 6px; | |||
position: relative; | |||
box-shadow: none; | |||
color: #fff; | |||
transition: all .3s ease; | |||
z-index: 2; | |||
display: flex; | |||
flex-direction: column; | |||
overflow: hidden; | |||
text-shadow: none; | |||
height: auto; | |||
min-height: 0; | |||
font-size: 16px; | |||
/* Desabilita Font Boosting em mobile */ | |||
-webkit-text-size-adjust: 100%; | |||
-moz-text-size-adjust: 100%; | |||
text-size-adjust: 100%; | |||
} | |||
.desc-box h3 { | |||
font-size: 2.7em; | |||
margin: 0; | |||
text-align: center; | |||
padding-top: 0; | |||
} | |||
.desc { | |||
font-size: 17px !important; | |||
line-height: 1.75 !important; | |||
letter-spacing: .01em; | |||
overflow-x: hidden; | |||
/* iOS smooth scroll */ | |||
-webkit-overflow-scrolling: touch; | |||
scrollbar-gutter: stable; | |||
margin-top: 5px; | |||
padding-right: 8px; | |||
color: #f1efe9; | |||
overflow-wrap: anywhere; | |||
word-break: break-word; | |||
white-space: normal; | |||
flex: 0 0 auto !important; | |||
/* IMPORTANTE: Desabilita o Font Boosting que aumenta texto longo automaticamente */ | |||
-webkit-text-size-adjust: 100%; | |||
-moz-text-size-adjust: 100%; | |||
text-size-adjust: 100%; | |||
max-height: none; | |||
} | |||
.desc b, | |||
.desc strong { | |||
font-weight: 700; | |||
color: #fff; | |||
} | |||
.desc::-webkit-scrollbar { | |||
width: 7px; | |||
height: 7px; | |||
} | |||
.desc::-webkit-scrollbar-thumb { | |||
background: #156bc7; | |||
border-radius: 10px; | |||
} | |||
.desc::-webkit-scrollbar-track { | |||
background: #151515a8; | |||
border-radius: 10px; | |||
} | |||
/* ===========================ATTRIBUTES & STATS=========================== */ | |||
.attrs, | |||
.attr-list { | |||
display: block; | |||
} | |||
.desc-box .attrs, | |||
.desc-box .attr-list, | |||
.desc-box .attrs *, | |||
.desc-box .attr-list * { | |||
text-shadow: none; | |||
font-family: 'Noto Sans', sans-serif; | |||
} | |||
.attrs__row, | |||
.attr-row { | |||
display: flex; | |||
align-items: center; | |||
gap: 5px; | |||
min-height: 22px; | |||
line-height: 1.2; | |||
} | |||
.attrs__row--empty, | |||
.attr-row.is-empty { | |||
display: none; | |||
} | |||
.attrs__label, | |||
.attr-label { | |||
font-weight: 700; | |||
color: #f0c87b; | |||
font-size: .98rem; | |||
white-space: nowrap; | |||
margin: 0; | |||
} | |||
.attrs__value, | |||
.attr-value { | |||
color: #fff; | |||
font-weight: 800; | |||
font-size: .98rem; | |||
letter-spacing: .01em; | |||
margin: 0; | |||
} | |||
/* ===========================VIDEO CONTAINER=========================== */ | |||
.video-container { | |||
position: relative; | |||
width: 100%; | |||
max-width: 100%; | |||
background: transparent; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
border-radius: 10px; | |||
box-shadow: none; | |||
overflow: hidden; | |||
padding: 0; | |||
z-index: 2; | |||
} | |||
.video-container>video { | |||
width: 100%; | |||
max-width: 100%; | |||
height: auto; | |||
aspect-ratio: 16 / 9; | |||
object-fit: contain; | |||
object-position: center; | |||
z-index: 2; | |||
display: block; | |||
border-radius: 6px; | |||
background: #000; | |||
} | |||
.video-placeholder { | |||
position: absolute; | |||
inset: 0; | |||
z-index: 6; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
pointer-events: none; | |||
opacity: 1; | |||
transition: opacity .28s ease; | |||
background: linear-gradient(rgba(0, 0, 0, 0.0), rgba(0, 0, 0, 0.0)); | |||
} | |||
.video-placeholder img { | |||
max-width: 160px; | |||
width: auto; | |||
height: auto; | |||
opacity: 0.98; | |||
display: block; | |||
} | |||
.video-placeholder.fade-out { | |||
opacity: 0; | |||
} | |||
/* ===========================LAYOUT COMPONENTS=========================== */ | |||
.top-rail { | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
width: max-content; | |||
max-width: 96vw; | |||
margin: 0px auto; | |||
padding: 5px 5px; | |||
background: rgba(28, 28, 34, .95); | |||
border: 2px solid rgba(255, 255, 255, .08); | |||
border-radius: 12px; | |||
box-shadow: 0 4px 12px rgba(0, 0, 0, .25); | |||
-webkit-backdrop-filter: blur(2px); | |||
backdrop-filter: blur(2px); | |||
} | |||
.top-rail .rail-title { | |||
display: none; | |||
} | |||
.top-rail.skins .rail-title { | |||
display: block; | |||
font-weight: 800; | |||
font-size: clamp(20px, 2.2vw, 28px); | |||
color: #fff; | |||
margin-right: auto; | |||
} | |||
.top-rail .icon-bar { | |||
width: auto; | |||
justify-content: center; | |||
margin: 0; | |||
overflow-x: auto; | |||
} | |||
.content-card { | |||
width: min(1600px, 96vw); | |||
max-width: 96vw; | |||
margin: 10px auto; | |||
background: rgba(28, 28, 34, .95); | |||
border-radius: 12px; | |||
box-shadow: 0 8px 24px rgba(0, 0, 0, .30); | |||
padding: 18px; | |||
z-index: 2; | |||
} | |||
.content-card.skills-grid { | |||
display: grid; | |||
grid-template-columns: minmax(320px, 60%) minmax(320px, 45%); | |||
gap: 16px; | |||
align-items: start; | |||
grid-auto-rows: auto; | |||
margin: 10px auto 0; | |||
} | |||
/* ===========================TIER SYSTEM=========================== */ | |||
.tier-bronze .topbar-icon, | |||
.tier-bronze .tier { | |||
outline: 2px solid #7b4e2f; | |||
} | |||
.tier-silver .topbar-icon, | |||
.tier-silver .tier { | |||
outline: 2px solid #d6d2d2; | |||
} | |||
.tier-gold .topbar-icon, | |||
.tier-gold .tier { | |||
outline: 2px solid #fcd300; | |||
} | |||
.tier-diamond .topbar-icon, | |||
.tier-diamond .tier { | |||
outline: 2px solid #60dae2; | |||
} | |||
/* ===========================RESPONSIVE DESIGN & MOBILE=========================== */ | |||
@media (max-width:1100px) { | |||
.top-rail { | |||
flex-direction: column; | |||
align-items: stretch; | |||
} | |||
.top-rail .icon-bar { | |||
order: 2; | |||
width: 100%; | |||
flex-wrap: wrap; | |||
} | |||
.content-card.skills-grid { | |||
grid-template-columns: 1fr; | |||
gap: 12px; | |||
} | |||
.video-container { | |||
width: 80%; | |||
max-width: 820px; | |||
align-self: center; | |||
} | |||
} | |||
@media (max-aspect-ratio: 3/4) { | |||
.character-header .character-art { | |||
display: none; | |||
} | |||
.video-container { | |||
width: 80%; | |||
border-radius: 3%; | |||
margin-top: 2%; | |||
align-self: center; | |||
} | |||
} | |||
@media (max-width:600px) { | |||
.content-card { | |||
box-sizing: border-box; | |||
max-width: calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right) - 16px); | |||
width: 100%; | |||
margin: 10px auto; | |||
padding: 12px; | |||
border-radius: 10px; | |||
overflow: hidden; | |||
} | |||
} | |||
.content-card.skills-grid { | |||
grid-template-columns: 1fr; | |||
gap: 12px; | |||
} | |||
} | |||
.top-rail { | |||
width: calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right)); | |||
max-width: 100%; | |||
margin: 0 auto 8px; | |||
padding: 6px 8px; | |||
border-radius: 0; | |||
box-sizing: border-box; | |||
overflow: hidden; | |||
} | |||
.top-rail .icon-bar { | |||
width: 100%; | |||
padding: 0 6px; | |||
gap: 12px; | |||
justify-content: flex-start; | |||
overflow-x: auto; | |||
/* iOS smooth scroll */ | |||
-webkit-overflow-scrolling: touch; | |||
} | |||
:root { | |||
--icon-size: 92px; | |||
} | |||
.icon-bar .skill-icon { | |||
width: var(--icon-size); | |||
height: var(--icon-size); | |||
flex: 0 0 auto; | |||
} | } | ||
.video-container, | |||
.skins-carousel-wrapper, | |||
.skins-carousel { | |||
max-width: calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right) - 16px); | |||
box-sizing: border-box; | |||
} | } | ||
.video-container>video, | |||
.video-container img, | |||
.skins-carousel img { | |||
max-width: 100%; | |||
width: 100%; | |||
height: auto; | |||
} | |||
html, | |||
body, | |||
.mw-body, | |||
.mw-body-content { | |||
overflow-x: hidden; | |||
} | |||
} | |||
/* Base no mobile - desabilita Font Boosting */ | |||
.desc-box { | |||
font-size: 16px !important; | |||
-webkit-text-size-adjust: 100% !important; | |||
-moz-text-size-adjust: 100% !important; | |||
} | text-size-adjust: 100% !important; | ||
} | |||
.desc-box * { | |||
-webkit-text-size-adjust: 100% !important; | |||
-moz-text-size-adjust: 100% !important; | |||
text-size-adjust: 100% !important; | |||
} | } | ||
// =========================== | /* Atributos no mobile - tamanho bem legível */ | ||
// | .attrs__label, | ||
/ | .attr-label { | ||
( | font-size: 20px !important; | ||
} | |||
.attrs__value, | |||
.attr-value { | |||
font-size: 20px !important; | |||
} | |||
.attr-row { | |||
margin-bottom: 12px; | |||
} | |||
#skills .desc-box .skill-level-line .attr-label { | |||
font-size: 22px !important; | |||
} | |||
/* Descrição - TAMANHO GRANDE para leitura confortável no mobile */ | |||
.desc { | |||
font-size: 24px !important; | |||
line-height: 1.95 !important; | |||
-webkit-text-size-adjust: 100% !important; | |||
text-size-adjust: 100% !important; | |||
} | |||
.desc-box h3 { | |||
font-size: 32px !important; | |||
} | |||
} | |||
/* ===========================OVERFLOW PROTECTION=========================== */ | |||
html, | |||
body, | |||
.mw-body, | |||
.mw-body-content { | |||
box-sizing: border-box; | |||
max-width: 100vw; | |||
overflow-x: hidden; | |||
/* iOS smooth scroll */ | |||
-webkit-overflow-scrolling: touch; | |||
} | |||
.content-card, | |||
.top-rail, | |||
.video-container, | |||
.skins-carousel-wrapper, | |||
.skins-carousel { | |||
box-sizing: border-box; | |||
max-width: 100%; | |||
} | |||
.content-card *, | |||
.top-rail *, | |||
.video-container * { | |||
max-width: 100%; | |||
box-sizing: border-box; | |||
} | |||
/* ===========================ICON ENHANCEMENTS & OVERRIDES=========================== */ | |||
:root { | |||
--icon-size: 50px; | |||
--icon-radius: 10px; | |||
--icon-idle: #cfcfcf; | |||
--icon-active: #FFD95A; | |||
--icon-active-ring: rgba(255, 217, 90, 0.45); | |||
--icon-active-glow: rgba(255, 217, 90, 0.30); | |||
--icon-ring-w: 2px; | |||
} | |||
.icon-bar .skill-icon { | |||
width: var(--icon-size) !important; | |||
height: var(--icon-size) !important; | |||
position: relative; | |||
border: none !important; | |||
outline: none !important; | |||
overflow: hidden; | |||
border-radius: var(--icon-radius); | |||
contain: paint; | |||
isolation: isolate; | |||
will-change: transform; | |||
transform: translateZ(0); | |||
} | |||
.icon-bar .skill-icon img { | |||
display: block; | |||
width: 100%; | |||
height: 100%; | |||
border-radius: inherit; | |||
-webkit-clip-path: inset(0 round var(--icon-radius)); | |||
clip-path: inset(0 round var(--icon-radius)); | |||
transition: transform .12s ease; | |||
backface-visibility: hidden; | |||
transform: translateZ(0); | |||
} | |||
.icon-bar .skill-icon::after { | |||
content: ""; | |||
position: absolute; | |||
inset: 0; | |||
border-radius: inherit; | |||
pointer-events: none; | |||
z-index: 2; | |||
box-shadow: inset 0 0 0 var(--icon-ring-w) var(--icon-idle) !important; | |||
transition: box-shadow .12s ease; | |||
} | |||
.icon-bar .skill-icon::before { | |||
content: ""; | |||
position: absolute; | |||
inset: -2px; | |||
border-radius: calc(var(--icon-radius) + 2px); | |||
pointer-events: none; | |||
z-index: 1; | |||
box-shadow: none; | |||
opacity: 0; | |||
transition: opacity .12s ease, box-shadow .12s ease; | |||
} | |||
.icon-bar .skill-icon.active { | |||
transform: scale(1.08); | |||
} | |||
.icon-bar .skill-icon.active::after { | |||
box-shadow: inset 0 0 0 var(--icon-ring-w) var(--icon-active) !important; | |||
} | |||
.icon-bar .skill-icon.active::before { | |||
opacity: 1; | |||
box-shadow: 0 0 12px 3px var(--icon-active-glow), 0 0 0 4px var(--icon-active-ring) !important; | |||
} | |||
.icon-bar .skill-icon.active img { | |||
transform: scale(1.08); | |||
} | |||
.icon-bar .skill-icon:hover:not(.active)::after { | |||
box-shadow: inset 0 0 0 var(--icon-ring-w) #e6e6e6 !important; | |||
} | |||
/* ===========================TOOLTIP SYSTEM=========================== */ | |||
.skill-tooltip { | |||
position: fixed; | |||
z-index: 9999; | |||
pointer-events: none; | |||
padding: 6px 8px; | |||
border-radius: 6px; | |||
background: rgba(17, 17, 17, .9); | |||
color: #fff; | |||
font-size: 14px; | |||
box-shadow: 0 4px 12px rgba(0, 0, 0, .5); | |||
opacity: 0; | |||
transition: opacity .12s ease, transform .08s ease; | |||
white-space: nowrap; | |||
} | |||
/* ===========================BACKGROUND SYSTEM=========================== */ | |||
.mw-body-content .character-box { | |||
background-position: center top; | |||
background-repeat: no-repeat; | |||
background-size: cover; | |||
background-attachment: fixed; | |||
position: relative; | |||
z-index: 1; | |||
} | |||
.mw-body-content .character-box::before { | |||
content: ""; | |||
position: absolute; | |||
inset: 0; | |||
pointer-events: none; | |||
background: linear-gradient(to bottom, rgba(0, 0, 0, .45), rgba(0, 0, 0, .60)); | |||
z-index: 0; | |||
} | |||
/* ===========================FINAL ICON OVERRIDES & FIXES=========================== */ | |||
:root { | |||
--icon-idle: #d0d0d0; | |||
--icon-active: #FFD95A; | |||
--icon-active-ring: rgba(255, 217, 90, 0.50); | |||
--icon-active-glow: rgba(255, 217, 90, 0.30); | |||
--icon-ring-w: 2px; | |||
} | |||
.icon-bar .skill-icon::after { | |||
box-shadow: inset 0 0 0 var(--icon-ring-w) var(--icon-idle) !important; | |||
transition: box-shadow .12s ease !important; | |||
} | |||
.icon-bar .skill-icon.active::after { | |||
box-shadow: inset 0 0 0 var(--icon-ring-w) var(--icon-active) !important; | |||
} | |||
.icon-bar .skill-icon::before { | |||
inset: -4px; | |||
border-radius: calc(var(--icon-radius) + 4px); | |||
opacity: 0; | |||
transition: opacity .12s ease, box-shadow .12s ease; | |||
} | |||
.icon-bar .skill-icon.active::before { | |||
opacity: 1 !important; | |||
box-shadow: 0 0 14px 4px var(--icon-active-glow), 0 0 0 calc(var(--icon-ring-w) * 2) var(--icon-active-ring) !important; | |||
} | |||
.icon-bar .skill-icon, | |||
.icon-bar .skill-icon img, | |||
.icon-bar .skill-icon::after, | |||
.icon-bar .skill-icon::before { | |||
-webkit-backface-visibility: hidden; | |||
backface-visibility: hidden; | |||
transform: translateZ(0); | |||
} | |||
.icon-bar .skill-icon:hover:not(.active)::after { | |||
box-shadow: inset 0 0 0 var(--icon-ring-w) #e6e6e6 !important; | |||
} | |||
.icon-bar .skill-icon.active { | |||
transform: scale(1.10) !important; | |||
z-index: 5; | |||
} | |||
.icon-bar .skill-icon.active img { | |||
transform: none !important; | |||
} | |||
/* ===========================FINAL TOOLTIP STYLES=========================== */ | |||
.skill-tooltip { | |||
position: fixed; | |||
z-index: 10000; | |||
pointer-events: none; | |||
padding: 8px 10px; | |||
border-radius: 8px; | |||
background: rgba(28, 28, 34, .95); | |||
color: #eaeaea; | |||
font-size: 13px; | |||
line-height: 1.25; | |||
text-align: center; | |||
max-width: 360px; | |||
box-shadow: 0 8px 24px rgba(0, 0, 0, .5), inset 0 0 0 1px rgba(255, 255, 255, .06); | |||
left: -9999px; | |||
top: -9999px; | |||
transform: none; | |||
opacity: 0; | |||
transition: opacity .12s ease; | |||
white-space: normal; | |||
} | |||
/* ===========================SKILL LEVEL STYLING=========================== */ | |||
#skills .desc-box .skill-title { | |||
margin: 0 0 4px; | |||
} | |||
#skills .desc-box .skill-level-line { | |||
margin: 0 0 10px; | |||
text-align: center; | |||
line-height: 1.15; | |||
} | |||
#skills .desc-box .skill-level-line .attr-label { | |||
color: #f0c87b; | |||
font-weight: 800; | |||
letter-spacing: .2px; | |||
font-size: .98rem; | |||
} | |||
/* ===========================SKILL FLAGS (CARACTERÍSTICAS)=========================== */ | |||
.video-container { | |||
position: relative; | |||
} | |||
.skill-flags { | |||
position: absolute; | |||
top: 8px; | |||
left: 8px; | |||
display: flex; | |||
flex-direction: row; | |||
gap: 6px; | |||
z-index: 10; | |||
pointer-events: auto; | |||
} | |||
.skill-flag { | |||
display: inline-block; | |||
pointer-events: all; | |||
cursor: pointer; | |||
filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.5)); | |||
} | |||
/* Tooltip específico para flags (cor cinza para contraste) */ | |||
.skill-tooltip.flag-tooltip { | |||
background: rgba(80, 80, 85, .98) !important; | |||
box-shadow: 0 8px 24px rgba(0, 0, 0, .5), inset 0 0 0 1px rgba(255, 255, 255, .12) !important; | |||
} | |||
/* Tooltip específico para weapon toggle (cor vermelha) */ | |||
.skill-tooltip.weapon-tooltip { | |||
background: linear-gradient(135deg, rgba(140, 40, 40, .98), rgba(100, 30, 30, .98)) !important; | |||
box-shadow: 0 8px 24px rgba(0, 0, 0, .5), inset 0 0 0 1px rgba(255, 100, 100, .25) !important; | |||
color: #fff !important; | |||
} | |||
</style> | |||
} | |||
</ | |||
Edição atual tal como às 18h52min de 3 de dezembro de 2025
<style>
/* ===========================BASE STYLES & RESET=========================== */
img {
pointer-events: none;
-webkit-user-select: none;
user-select: none;
}
video {
max-height: none;
}
.mw-body {
padding: unset !important;
}
.mw-body-content {
line-height: 1.5;
}
.mw-body-content p {
display: none;
}
/* ===========================CHARACTER CONTAINER & BACKGROUND=========================== */
.banner {
display: none !important;
}
.character-box {
color: #000;
font-family: 'Noto Sans', sans-serif;
width: 100%;
margin: auto;
position: relative;
-webkit-user-select: none;
user-select: none;
/* background-image será definido inline pelo Módulo (via |background=Arquivo.ext|) */
background-position: center top;
background-repeat: no-repeat;
background-size: cover;
z-index: 1;
}
.character-box p {
display: unset;
}
.character-box::before {
content: "";
position: absolute;
inset: 0;
pointer-events: none;
background: linear-gradient(to bottom, rgba(0, 0, 0, .45), rgba(0, 0, 0, .60));
z-index: 0;
}
/* ===========================CHARACTER HEADER & INFO=========================== */
.character-header {
position: relative;
overflow: hidden;
display: flex;
gap: 10px;
flex-direction: column;
z-index: 1;
}
.character-art {
display: none !important;
width: 0 !important;
height: 0 !important;
overflow: hidden !important;
}
.character-topbar {
display: flex;
flex-direction: column;
align-items: flex-start;
padding: 8px 20px 0;
z-index: 1;
}
.character-name-box {
display: flex;
align-items: center;
gap: 14px;
}
.topbar-icon {
margin-top: 8px;
width: 100px;
height: 100px;
object-fit: none;
}
.character-name {
color: #fff;
font-size: 56px;
font-family: 'Orbitron', sans-serif;
font-weight: 900;
text-shadow: 0 0 6px #000, 0 0 9px #000;
}
.topbar-description {
display: none;
}
.class-tags {
display: flex;
gap: 9px;
flex-wrap: wrap;
margin-left: .28rem;
}
.class-tag {
background: #353420;
color: #fff;
outline: 2px solid #000;
padding: 1px 6px;
border-radius: 4px;
font-size: .9em;
font-weight: 700;
box-shadow: 0 0 2px rgb(0 0 0 / 70%);
}
.character-info .tier,
.character-info .class-tag {
font-size: 18px;
color: #bbb;
}
/* ===========================TABS SYSTEM=========================== */
.character-tabs {
margin: 4px 0 4px 8px;
display: flex;
gap: 12px;
}
.tab-btn {
padding: 5px 20px;
background: #333;
color: #fff;
border: 2px solid transparent;
border-radius: 8px;
font-size: 20px;
cursor: pointer;
font-weight: 600;
line-height: 1;
transition: background .15s, border-color .15s;
}
.tab-btn.active {
background: #156bc7;
border-color: #156bc7;
}
.tab-content {
display: none;
padding: 0 8px 8px;
position: relative;
z-index: 2;
opacity: 0;
transform: translateY(12px);
transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
will-change: opacity, transform;
}
.tab-content.active {
display: block;
opacity: 1;
transform: translateY(0);
}
/* Wrapper para transição de altura das abas */
.tabs-height-wrapper {
position: relative;
overflow: hidden;
will-change: height;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
-webkit-transform: translateZ(0);
transform: translateZ(0);
}
/* Previne scroll e mudanças bruscas durante transição */
body.transitioning-tabs {
overflow-x: hidden !important;
}
body.transitioning-tabs .character-box {
overflow: hidden;
}
.character-box {
overflow: visible;
}
/* ===========================SKILLS SYSTEM=========================== */
.skills-container {
display: flex;
gap: 20px;
align-items: flex-start;
}
.skills-details {
flex: 1;
display: flex;
flex-direction: column;
gap: 10px;
width: auto;
justify-content: center;
}
/* ===========================SKILL ICONS & BAR=========================== */
.icon-bar {
display: flex;
flex-wrap: nowrap;
gap: 10px;
width: 100%;
overflow-x: auto;
overflow-y: hidden;
padding: 6px 6px;
margin-bottom: 6px;
scroll-behavior: smooth;
/* Firefox */
scrollbar-width: thin;
scrollbar-color: #ababab transparent;
justify-content: flex-start;
align-items: center;
position: relative;
z-index: 4;
}
/* Weapon Toggle Button - Estilos completamente isolados usando .weapon-active */
.icon-bar .skill-icon.weapon-bar-toggle {
background: rgba(40, 40, 48, 0.85) !important;
color: rgba(255, 255, 255, 0.7) !important;
border: 1px solid rgba(255, 255, 255, 0.08) !important;
overflow: visible !important;
transform: none !important;
box-shadow: none !important;
}
.icon-bar .skill-icon.weapon-bar-toggle::before {
display: none !important;
opacity: 0 !important;
box-shadow: none !important;
}
.icon-bar .skill-icon.weapon-bar-toggle::after {
box-shadow: inset 0 0 0 var(--icon-ring-w) rgba(180, 180, 180, 0.5) !important;
}
.icon-bar .skill-icon.weapon-bar-toggle:hover {
background: rgba(55, 55, 65, 0.9) !important;
color: rgba(255, 255, 255, 0.95) !important;
transform: none !important;
}
.icon-bar .skill-icon.weapon-bar-toggle:hover::after {
box-shadow: inset 0 0 0 var(--icon-ring-w) rgba(220, 220, 220, 0.6) !important;
}
/* Estado ativo do toggle usa .weapon-active em vez de .active */
.icon-bar .skill-icon.weapon-bar-toggle.weapon-active {
background: linear-gradient(145deg, rgba(200, 60, 40, 0.95), rgba(160, 45, 30, 0.95)) !important;
color: #fff !important;
transform: scale(1.08) !important;
}
.icon-bar .skill-icon.weapon-bar-toggle.weapon-active::before {
display: none !important;
}
.icon-bar .skill-icon.weapon-bar-toggle.weapon-active::after {
box-shadow: inset 0 0 0 var(--icon-ring-w) #FF5722 !important;
animation: togglePulse 1.8s ease-in-out infinite;
}
@keyframes togglePulse {
0%,
100% {
box-shadow: inset 0 0 0 var(--icon-ring-w) rgba(255, 87, 34, 0.9);
}
50% {
box-shadow: inset 0 0 0 var(--icon-ring-w) #FF7043, inset 0 0 10px 2px rgba(255, 112, 67, 0.35);
}
}
.icon-bar .skill-icon.weapon-bar-toggle svg {
width: 22px;
height: 22px;
pointer-events: none;
}
.icon-bar .skill-icon.weapon-bar-toggle:focus-visible {
outline: none;
}
.icon-bar .skill-icon.weapon-bar-toggle:focus-visible::after {
box-shadow: 0 0 0 3px rgba(220, 80, 80, 0.5) !important;
}
/* Back handle for nested skill bars */
.top-rail.skills {
position: relative;
overflow: visible;
z-index: 10;
transition: width .24s ease, max-width .24s ease;
}
.top-rail.skills.weapon-mode-on {
background: linear-gradient(135deg, rgba(65, 25, 25, 0.96), rgba(50, 18, 18, 0.96));
border-color: transparent;
animation: weapon-bar-glow 3.5s ease-in-out infinite;
}
.top-rail.skills.weapon-mode-on::before {
content: "";
position: absolute;
inset: -2px;
border-radius: inherit;
padding: 2px;
background: linear-gradient(90deg,
transparent 0%,
rgba(255, 80, 80, 0.8) 25%,
rgba(255, 120, 60, 1) 50%,
rgba(255, 80, 80, 0.8) 75%,
transparent 100%);
background-size: 200% 100%;
animation: weapon-border-scan 4s linear infinite;
-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
-webkit-mask-composite: xor;
mask-composite: exclude;
pointer-events: none;
z-index: -1;
}
.top-rail.skills.weapon-mode-on::after {
content: "";
position: absolute;
inset: 0;
border-radius: inherit;
box-shadow:
0 0 15px rgba(255, 80, 80, 0.4),
inset 0 0 20px rgba(255, 80, 80, 0.1);
animation: weapon-bar-pulse 3s ease-in-out infinite;
pointer-events: none;
}
@keyframes weapon-border-scan {
0% {
background-position: 200% 0;
}
100% {
background-position: -200% 0;
}
}
@keyframes weapon-bar-glow {
0%,
100% {
filter: brightness(1);
}
50% {
filter: brightness(1.1);
}
}
@keyframes weapon-bar-pulse {
0%,
100% {
opacity: 0.6;
box-shadow:
0 0 12px rgba(255, 80, 80, 0.3),
inset 0 0 15px rgba(255, 80, 80, 0.08);
}
50% {
opacity: 1;
box-shadow:
0 0 25px rgba(255, 80, 80, 0.5),
inset 0 0 25px rgba(255, 80, 80, 0.15);
}
}
.skills-back-wrapper {
display: none;
position: absolute;
left: 50px;
top: 50%;
transform: translateY(-50%);
width: 70px;
height: 95%;
z-index: -1;
pointer-events: none;
}
.skills-rail-wrap {
position: relative;
z-index: 0;
}
.skills-rail-wrap.has-sub-bar::before {
content: "";
position: absolute;
left: 2px;
/* alinha por dentro da borda do rail (2px) */
top: 2px;
bottom: 2px;
/* evita vazar na parte de baixo */
width: 70px;
background: rgba(28, 28, 34, .95);
border: 0;
/* sem borda própria para não “escapar” */
box-shadow: none;
/* sem sombra aqui */
border-radius: 10px 0 0 10px;
/* 12px - 2px da borda externa */
pointer-events: none;
z-index: 0;
}
.skills-back-wrapper .skills-back {
display: flex;
position: absolute;
left: 0;
top: 0;
transform: translateX(-97%);
width: 70px;
height: 100%;
padding: 0;
border-radius: 12px 0 0 12px;
border: 2px solid rgba(255, 255, 255, .08);
border-right: none;
background: rgba(28, 28, 34, .95);
color: rgba(255, 255, 255, 0.8);
cursor: pointer;
pointer-events: all;
align-items: center;
justify-content: center;
box-shadow: 0 4px 12px rgba(0, 0, 0, .25);
-webkit-backdrop-filter: blur(2px);
backdrop-filter: blur(2px);
transition: transform .22s ease, background .22s ease, color .22s ease;
overflow: visible;
}
.skills-back-wrapper .skills-back:hover {
transform: translateX(-150%);
background: rgba(40, 40, 48, .95);
color: rgba(255, 255, 255, 1.0);
box-shadow: 0 4px 16px rgba(0, 0, 0, .35), 0 0 8px rgba(255, 255, 255, 0.12);
border-color: rgba(255, 255, 255, 0.12);
}
@keyframes backPeekPulse {
0%,
100% {
box-shadow: 0 4px 12px rgba(0, 0, 0, .25);
}
50% {
box-shadow: 0 4px 16px rgba(0, 0, 0, .35), 0 0 8px rgba(255, 255, 255, 0.18);
}
}
.skills-back-wrapper .skills-back.peek {
animation: backPeekPulse 1.4s ease-in-out infinite;
}
.skills-back-wrapper .skills-back .back-chevron {
display: block;
width: 90%;
height: 90%;
}
.icon-bar::-webkit-scrollbar {
height: 6px;
}
.icon-bar::-webkit-scrollbar-track {
background: transparent;
}
.icon-bar::-webkit-scrollbar-thumb {
background: #151515;
border-radius: 3px;
}
/* Icon Variables */
:root {
--icon-size: 39px;
--icon-radius: 8px;
--icon-ring-w: 2px;
--icon-idle: #bbb;
--icon-active: #FFD257;
--icon-active-ring: rgba(255, 210, 87, .45);
--icon-active-glow: rgba(255, 210, 87, .35);
--skill-pane-height: unset;
}
.icon-bar .skill-icon {
width: var(--icon-size);
height: var(--icon-size);
position: relative;
flex: 0 0 auto;
border-radius: var(--icon-radius);
overflow: hidden;
contain: paint;
margin-top: 0;
display: flex;
align-items: center;
justify-content: center;
-webkit-tap-highlight-color: transparent;
background-clip: padding-box;
/* Anti-aliasing para bordas suaves */
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
transform: translateZ(0);
border: 1px solid rgba(255, 255, 255, 0.05);
background-color: rgba(15, 15, 23, 0.95);
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.02);
}
/* small + badge to indicate nested subs */
.icon-bar .skill-icon .sub-badge {
position: absolute;
right: 2px;
bottom: 2px;
width: 16px;
height: 16px;
border-radius: 50%;
background: #156bc7;
color: #fff;
font-weight: 900;
font-size: 12px;
line-height: 16px;
text-align: center;
box-shadow: 0 2px 6px rgba(0, 0, 0, .4);
cursor: pointer;
z-index: 3;
-webkit-user-select: none;
user-select: none;
}
/* back badge (−) to return to previous bar */
.icon-bar .skill-icon .back-badge {
position: absolute;
right: 2px;
bottom: 2px;
width: 16px;
height: 16px;
border-radius: 50%;
background: #c74615;
color: #fff;
font-weight: 900;
font-size: 14px;
line-height: 16px;
text-align: center;
box-shadow: 0 2px 6px rgba(0, 0, 0, .4);
cursor: pointer;
z-index: 3;
-webkit-user-select: none;
user-select: none;
}
.icon-bar .skill-icon img {
display: block;
width: 100%;
height: 100%;
border-radius: inherit;
-webkit-clip-path: inset(0 round var(--icon-radius));
clip-path: inset(0 round var(--icon-radius));
will-change: transform;
backface-visibility: hidden;
transform: translateZ(0);
transition: transform .12s ease;
}
/* Icon Ring Effects */
.icon-bar .skill-icon::after {
content: "";
position: absolute;
inset: 0;
border-radius: inherit;
box-shadow: inset 0 0 0 var(--icon-ring-w) var(--icon-idle);
pointer-events: none;
z-index: 2;
transition: box-shadow .14s ease;
/* Anti-aliasing para bordas suaves */
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
transform: translateZ(0);
}
.icon-bar .skill-icon::before {
content: "";
position: absolute;
inset: 0;
border-radius: inherit;
pointer-events: none;
z-index: 1;
box-shadow: none;
opacity: 0;
transition: opacity .14s ease, box-shadow .14s ease;
}
.icon-bar .skill-icon:hover::after {
box-shadow: inset 0 0 0 var(--icon-ring-w) #e0e0e0;
}
.icon-bar .skill-icon.active::after {
box-shadow: inset 0 0 0 var(--icon-ring-w) var(--icon-active);
}
.icon-bar .skill-icon.active::before {
box-shadow: 0 0 10px 2px var(--icon-active-glow), 0 0 0 4px var(--icon-active-ring);
opacity: 1;
}
.icon-bar .skill-icon.active img {
transform: scale(1.10);
}
@media (prefers-reduced-motion: reduce) {
.icon-bar .skill-icon {
transition: none;
}
}
/* ===========================SKILL DESCRIPTION & CONTENT=========================== */
.skill-title {
margin: 0 0 12px;
display: flex;
justify-content: center;
align-items: center;
}
.skill-title h3 {
margin: 0;
width: 100%;
text-align: center;
font-size: 1.6em;
color: #fff;
}
.desc-box {
padding: 12px 18px;
background: transparent;
border-radius: 6px;
position: relative;
box-shadow: none;
color: #fff;
transition: all .3s ease;
z-index: 2;
display: flex;
flex-direction: column;
overflow: hidden;
text-shadow: none;
height: auto;
min-height: 0;
font-size: 16px;
/* Desabilita Font Boosting em mobile */
-webkit-text-size-adjust: 100%;
-moz-text-size-adjust: 100%;
text-size-adjust: 100%;
}
.desc-box h3 {
font-size: 2.7em;
margin: 0;
text-align: center;
padding-top: 0;
}
.desc {
font-size: 17px !important;
line-height: 1.75 !important;
letter-spacing: .01em;
overflow-x: hidden;
/* iOS smooth scroll */
-webkit-overflow-scrolling: touch;
scrollbar-gutter: stable;
margin-top: 5px;
padding-right: 8px;
color: #f1efe9;
overflow-wrap: anywhere;
word-break: break-word;
white-space: normal;
flex: 0 0 auto !important;
/* IMPORTANTE: Desabilita o Font Boosting que aumenta texto longo automaticamente */
-webkit-text-size-adjust: 100%;
-moz-text-size-adjust: 100%;
text-size-adjust: 100%;
max-height: none;
}
.desc b,
.desc strong {
font-weight: 700;
color: #fff;
}
.desc::-webkit-scrollbar {
width: 7px;
height: 7px;
}
.desc::-webkit-scrollbar-thumb {
background: #156bc7;
border-radius: 10px;
}
.desc::-webkit-scrollbar-track {
background: #151515a8;
border-radius: 10px;
}
/* ===========================ATTRIBUTES & STATS=========================== */
.attrs,
.attr-list {
display: block;
}
.desc-box .attrs,
.desc-box .attr-list,
.desc-box .attrs *,
.desc-box .attr-list * {
text-shadow: none;
font-family: 'Noto Sans', sans-serif;
}
.attrs__row,
.attr-row {
display: flex;
align-items: center;
gap: 5px;
min-height: 22px;
line-height: 1.2;
}
.attrs__row--empty,
.attr-row.is-empty {
display: none;
}
.attrs__label,
.attr-label {
font-weight: 700;
color: #f0c87b;
font-size: .98rem;
white-space: nowrap;
margin: 0;
}
.attrs__value,
.attr-value {
color: #fff;
font-weight: 800;
font-size: .98rem;
letter-spacing: .01em;
margin: 0;
}
/* ===========================VIDEO CONTAINER=========================== */
.video-container {
position: relative;
width: 100%;
max-width: 100%;
background: transparent;
display: flex;
align-items: center;
justify-content: center;
border-radius: 10px;
box-shadow: none;
overflow: hidden;
padding: 0;
z-index: 2;
}
.video-container>video {
width: 100%;
max-width: 100%;
height: auto;
aspect-ratio: 16 / 9;
object-fit: contain;
object-position: center;
z-index: 2;
display: block;
border-radius: 6px;
background: #000;
}
.video-placeholder {
position: absolute;
inset: 0;
z-index: 6;
display: flex;
align-items: center;
justify-content: center;
pointer-events: none;
opacity: 1;
transition: opacity .28s ease;
background: linear-gradient(rgba(0, 0, 0, 0.0), rgba(0, 0, 0, 0.0));
}
.video-placeholder img {
max-width: 160px;
width: auto;
height: auto;
opacity: 0.98;
display: block;
}
.video-placeholder.fade-out {
opacity: 0;
}
/* ===========================LAYOUT COMPONENTS=========================== */
.top-rail {
display: flex;
align-items: center;
justify-content: center;
width: max-content;
max-width: 96vw;
margin: 0px auto;
padding: 5px 5px;
background: rgba(28, 28, 34, .95);
border: 2px solid rgba(255, 255, 255, .08);
border-radius: 12px;
box-shadow: 0 4px 12px rgba(0, 0, 0, .25);
-webkit-backdrop-filter: blur(2px);
backdrop-filter: blur(2px);
}
.top-rail .rail-title {
display: none;
}
.top-rail.skins .rail-title {
display: block;
font-weight: 800;
font-size: clamp(20px, 2.2vw, 28px);
color: #fff;
margin-right: auto;
}
.top-rail .icon-bar {
width: auto;
justify-content: center;
margin: 0;
overflow-x: auto;
}
.content-card {
width: min(1600px, 96vw);
max-width: 96vw;
margin: 10px auto;
background: rgba(28, 28, 34, .95);
border-radius: 12px;
box-shadow: 0 8px 24px rgba(0, 0, 0, .30);
padding: 18px;
z-index: 2;
}
.content-card.skills-grid {
display: grid;
grid-template-columns: minmax(320px, 60%) minmax(320px, 45%);
gap: 16px;
align-items: start;
grid-auto-rows: auto;
margin: 10px auto 0;
}
/* ===========================TIER SYSTEM=========================== */
.tier-bronze .topbar-icon,
.tier-bronze .tier {
outline: 2px solid #7b4e2f;
}
.tier-silver .topbar-icon,
.tier-silver .tier {
outline: 2px solid #d6d2d2;
}
.tier-gold .topbar-icon,
.tier-gold .tier {
outline: 2px solid #fcd300;
}
.tier-diamond .topbar-icon,
.tier-diamond .tier {
outline: 2px solid #60dae2;
}
/* ===========================RESPONSIVE DESIGN & MOBILE=========================== */
@media (max-width:1100px) {
.top-rail {
flex-direction: column;
align-items: stretch;
}
.top-rail .icon-bar {
order: 2;
width: 100%;
flex-wrap: wrap;
}
.content-card.skills-grid {
grid-template-columns: 1fr;
gap: 12px;
}
.video-container {
width: 80%;
max-width: 820px;
align-self: center;
}
}
@media (max-aspect-ratio: 3/4) {
.character-header .character-art {
display: none;
}
.video-container {
width: 80%;
border-radius: 3%;
margin-top: 2%;
align-self: center;
}
}
@media (max-width:600px) {
.content-card {
box-sizing: border-box;
max-width: calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right) - 16px);
width: 100%;
margin: 10px auto;
padding: 12px;
border-radius: 10px;
overflow: hidden;
}
.content-card.skills-grid {
grid-template-columns: 1fr;
gap: 12px;
}
.top-rail {
width: calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right));
max-width: 100%;
margin: 0 auto 8px;
padding: 6px 8px;
border-radius: 0;
box-sizing: border-box;
overflow: hidden;
}
.top-rail .icon-bar {
width: 100%;
padding: 0 6px;
gap: 12px;
justify-content: flex-start;
overflow-x: auto;
/* iOS smooth scroll */
-webkit-overflow-scrolling: touch;
}
:root {
--icon-size: 92px;
}
.icon-bar .skill-icon {
width: var(--icon-size);
height: var(--icon-size);
flex: 0 0 auto;
}
.video-container,
.skins-carousel-wrapper,
.skins-carousel {
max-width: calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right) - 16px);
box-sizing: border-box;
}
.video-container>video,
.video-container img,
.skins-carousel img {
max-width: 100%;
width: 100%;
height: auto;
}
html,
body,
.mw-body,
.mw-body-content {
overflow-x: hidden;
}
/* Base no mobile - desabilita Font Boosting */
.desc-box {
font-size: 16px !important;
-webkit-text-size-adjust: 100% !important;
-moz-text-size-adjust: 100% !important;
text-size-adjust: 100% !important;
}
.desc-box * {
-webkit-text-size-adjust: 100% !important;
-moz-text-size-adjust: 100% !important;
text-size-adjust: 100% !important;
}
/* Atributos no mobile - tamanho bem legível */
.attrs__label,
.attr-label {
font-size: 20px !important;
}
.attrs__value,
.attr-value {
font-size: 20px !important;
}
.attr-row {
margin-bottom: 12px;
}
#skills .desc-box .skill-level-line .attr-label {
font-size: 22px !important;
}
/* Descrição - TAMANHO GRANDE para leitura confortável no mobile */
.desc {
font-size: 24px !important;
line-height: 1.95 !important;
-webkit-text-size-adjust: 100% !important;
text-size-adjust: 100% !important;
}
.desc-box h3 {
font-size: 32px !important;
}
}
/* ===========================OVERFLOW PROTECTION=========================== */
html,
body,
.mw-body,
.mw-body-content {
box-sizing: border-box;
max-width: 100vw;
overflow-x: hidden;
/* iOS smooth scroll */
-webkit-overflow-scrolling: touch;
}
.content-card,
.top-rail,
.video-container,
.skins-carousel-wrapper,
.skins-carousel {
box-sizing: border-box;
max-width: 100%;
}
.content-card *,
.top-rail *,
.video-container * {
max-width: 100%;
box-sizing: border-box;
}
/* ===========================ICON ENHANCEMENTS & OVERRIDES=========================== */
:root {
--icon-size: 50px;
--icon-radius: 10px;
--icon-idle: #cfcfcf;
--icon-active: #FFD95A;
--icon-active-ring: rgba(255, 217, 90, 0.45);
--icon-active-glow: rgba(255, 217, 90, 0.30);
--icon-ring-w: 2px;
}
.icon-bar .skill-icon {
width: var(--icon-size) !important;
height: var(--icon-size) !important;
position: relative;
border: none !important;
outline: none !important;
overflow: hidden;
border-radius: var(--icon-radius);
contain: paint;
isolation: isolate;
will-change: transform;
transform: translateZ(0);
}
.icon-bar .skill-icon img {
display: block;
width: 100%;
height: 100%;
border-radius: inherit;
-webkit-clip-path: inset(0 round var(--icon-radius));
clip-path: inset(0 round var(--icon-radius));
transition: transform .12s ease;
backface-visibility: hidden;
transform: translateZ(0);
}
.icon-bar .skill-icon::after {
content: "";
position: absolute;
inset: 0;
border-radius: inherit;
pointer-events: none;
z-index: 2;
box-shadow: inset 0 0 0 var(--icon-ring-w) var(--icon-idle) !important;
transition: box-shadow .12s ease;
}
.icon-bar .skill-icon::before {
content: "";
position: absolute;
inset: -2px;
border-radius: calc(var(--icon-radius) + 2px);
pointer-events: none;
z-index: 1;
box-shadow: none;
opacity: 0;
transition: opacity .12s ease, box-shadow .12s ease;
}
.icon-bar .skill-icon.active {
transform: scale(1.08);
}
.icon-bar .skill-icon.active::after {
box-shadow: inset 0 0 0 var(--icon-ring-w) var(--icon-active) !important;
}
.icon-bar .skill-icon.active::before {
opacity: 1;
box-shadow: 0 0 12px 3px var(--icon-active-glow), 0 0 0 4px var(--icon-active-ring) !important;
}
.icon-bar .skill-icon.active img {
transform: scale(1.08);
}
.icon-bar .skill-icon:hover:not(.active)::after {
box-shadow: inset 0 0 0 var(--icon-ring-w) #e6e6e6 !important;
}
/* ===========================TOOLTIP SYSTEM=========================== */
.skill-tooltip {
position: fixed;
z-index: 9999;
pointer-events: none;
padding: 6px 8px;
border-radius: 6px;
background: rgba(17, 17, 17, .9);
color: #fff;
font-size: 14px;
box-shadow: 0 4px 12px rgba(0, 0, 0, .5);
opacity: 0;
transition: opacity .12s ease, transform .08s ease;
white-space: nowrap;
}
/* ===========================BACKGROUND SYSTEM=========================== */
.mw-body-content .character-box {
background-position: center top;
background-repeat: no-repeat;
background-size: cover;
background-attachment: fixed;
position: relative;
z-index: 1;
}
.mw-body-content .character-box::before {
content: "";
position: absolute;
inset: 0;
pointer-events: none;
background: linear-gradient(to bottom, rgba(0, 0, 0, .45), rgba(0, 0, 0, .60));
z-index: 0;
}
/* ===========================FINAL ICON OVERRIDES & FIXES=========================== */
:root {
--icon-idle: #d0d0d0;
--icon-active: #FFD95A;
--icon-active-ring: rgba(255, 217, 90, 0.50);
--icon-active-glow: rgba(255, 217, 90, 0.30);
--icon-ring-w: 2px;
}
.icon-bar .skill-icon::after {
box-shadow: inset 0 0 0 var(--icon-ring-w) var(--icon-idle) !important;
transition: box-shadow .12s ease !important;
}
.icon-bar .skill-icon.active::after {
box-shadow: inset 0 0 0 var(--icon-ring-w) var(--icon-active) !important;
}
.icon-bar .skill-icon::before {
inset: -4px;
border-radius: calc(var(--icon-radius) + 4px);
opacity: 0;
transition: opacity .12s ease, box-shadow .12s ease;
}
.icon-bar .skill-icon.active::before {
opacity: 1 !important;
box-shadow: 0 0 14px 4px var(--icon-active-glow), 0 0 0 calc(var(--icon-ring-w) * 2) var(--icon-active-ring) !important;
}
.icon-bar .skill-icon,
.icon-bar .skill-icon img,
.icon-bar .skill-icon::after,
.icon-bar .skill-icon::before {
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
transform: translateZ(0);
}
.icon-bar .skill-icon:hover:not(.active)::after {
box-shadow: inset 0 0 0 var(--icon-ring-w) #e6e6e6 !important;
}
.icon-bar .skill-icon.active {
transform: scale(1.10) !important;
z-index: 5;
}
.icon-bar .skill-icon.active img {
transform: none !important;
}
/* ===========================FINAL TOOLTIP STYLES=========================== */
.skill-tooltip {
position: fixed;
z-index: 10000;
pointer-events: none;
padding: 8px 10px;
border-radius: 8px;
background: rgba(28, 28, 34, .95);
color: #eaeaea;
font-size: 13px;
line-height: 1.25;
text-align: center;
max-width: 360px;
box-shadow: 0 8px 24px rgba(0, 0, 0, .5), inset 0 0 0 1px rgba(255, 255, 255, .06);
left: -9999px;
top: -9999px;
transform: none;
opacity: 0;
transition: opacity .12s ease;
white-space: normal;
}
/* ===========================SKILL LEVEL STYLING=========================== */
#skills .desc-box .skill-title {
margin: 0 0 4px;
}
#skills .desc-box .skill-level-line {
margin: 0 0 10px;
text-align: center;
line-height: 1.15;
}
#skills .desc-box .skill-level-line .attr-label {
color: #f0c87b;
font-weight: 800;
letter-spacing: .2px;
font-size: .98rem;
}
/* ===========================SKILL FLAGS (CARACTERÍSTICAS)=========================== */
.video-container {
position: relative;
}
.skill-flags {
position: absolute;
top: 8px;
left: 8px;
display: flex;
flex-direction: row;
gap: 6px;
z-index: 10;
pointer-events: auto;
}
.skill-flag {
display: inline-block;
pointer-events: all;
cursor: pointer;
filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.5));
}
/* Tooltip específico para flags (cor cinza para contraste) */
.skill-tooltip.flag-tooltip {
background: rgba(80, 80, 85, .98) !important;
box-shadow: 0 8px 24px rgba(0, 0, 0, .5), inset 0 0 0 1px rgba(255, 255, 255, .12) !important;
}
/* Tooltip específico para weapon toggle (cor vermelha) */
.skill-tooltip.weapon-tooltip {
background: linear-gradient(135deg, rgba(140, 40, 40, .98), rgba(100, 30, 30, .98)) !important;
box-shadow: 0 8px 24px rgba(0, 0, 0, .5), inset 0 0 0 1px rgba(255, 100, 100, .25) !important;
color: #fff !important;
}
</style>