MediaWiki:Common.css: mudanças entre as edições
Sem resumo de edição |
Sem resumo de edição |
||
| Linha 1: | Linha 1: | ||
/ | /* ========================================================= | ||
* | * POKESTORM WIKI | ||
* | * DELUXE VISUAL EFFECTS | ||
* | * ========================================================= */ | ||
/ | /* ========================================================= | ||
* | * CABEÇALHO ANIMADO | ||
* | * ========================================================= */ | ||
.vector-header-container { | |||
background-size: 200% 200% !important; | |||
.vector | |||
{ | |||
animation: | |||
pokestormHeader 8s ease infinite; | |||
box-shadow: | |||
0 4px 18px rgba(22,137,215,0.28) !important; | |||
} | |||
@ | @keyframes pokestormHeader { | ||
0% { | |||
background-position: 0% 50%; | |||
} | } | ||
} | 50% { | ||
background-position: 100% 50%; | |||
} | |||
100% { | |||
background-position: 0% 50%; | |||
} | |||
} | } | ||
/* ========================================================= | |||
* TÍTULO PRINCIPAL | |||
* ========================================================= */ | |||
.firstHeading { | |||
position: relative; | |||
animation: | |||
pokestormTitleIn 0.6s ease both; | |||
} | } | ||
@keyframes pokestormTitleIn { | |||
from { | |||
opacity: 0; | |||
transform: translateY(-8px); | |||
} | |||
to { | |||
opacity: 1; | |||
transform: translateY(0); | |||
} | |||
} | } | ||
/* ========================================================= | |||
* LINHA DOS TÍTULOS COM BRILHO | |||
* ========================================================= */ | |||
.mw-heading2 h2::after { | |||
background-size: 200% 100% !important; | |||
animation: | |||
pokestormLineGlow 4s ease infinite; | |||
} | } | ||
@keyframes pokestormLineGlow { | |||
0% { | |||
background-position: 0% 50%; | |||
} | |||
background | |||
} | |||
50% { | |||
background-position: 100% 50%; | |||
} | |||
100% { | |||
background-position: 0% 50%; | |||
} | } | ||
} | } | ||
/* ========================================================= | |||
* LINKS COM LINHA ANIMADA | |||
* ========================================================= */ | |||
.mw-body a:not(.image):not(.mw-ui-button) { | |||
. | |||
.mw- | |||
position: relative; | position: relative; | ||
text-decoration: none; | |||
} | } | ||
.mw- | .mw-body a:not(.image):not(.mw-ui-button)::after { | ||
content: ""; | content: ""; | ||
position: absolute; | |||
left: 0; | |||
bottom: -2px; | |||
width: 0; | |||
height: 2px; | |||
background: | background: | ||
| Linha 204: | Linha 114: | ||
90deg, | 90deg, | ||
#1689d7, | #1689d7, | ||
# | #5dbcfc | ||
); | ); | ||
border-radius: 5px; | border-radius: 5px; | ||
transition: | |||
width 0.25s ease; | |||
} | } | ||
.mw- | .mw-body a:not(.image):not(.mw-ui-button):hover::after { | ||
.mw- | width: 100%; | ||
} | } | ||
/ | /* ========================================================= | ||
* | * CARDS POKESTORM - EFEITO DELUXE | ||
* | * ========================================================= */ | ||
.pokestorm-card, | |||
.pokestorm-card-hover { | |||
transform-origin: center; | |||
will-change: | |||
transform, | |||
box-shadow; | |||
} | } | ||
/ | /* ========================================================= | ||
* | * BRILHO AUTOMÁTICO NOS CARDS | ||
* | * ========================================================= */ | ||
. | .pokestorm-card::after, | ||
.pokestorm-card-hover::after { | |||
content: ""; | |||
position: absolute; | |||
top: 0; | |||
left: -150%; | |||
width: 55%; | |||
height: 100%; | |||
background: | background: | ||
linear-gradient( | linear-gradient( | ||
90deg, | |||
transparent, | |||
rgba(255,255,255,0.28), | |||
) | transparent | ||
); | |||
transform: | |||
skewX(-20deg); | |||
pointer-events: none; | |||
animation: | |||
pokestormCardShine 6s ease-in-out infinite; | |||
} | } | ||
@keyframes pokestormCardShine { | |||
0% { | |||
left: -150%; | |||
} | |||
20% { | |||
left: 150%; | |||
} | } | ||
100% { | |||
left: 150%; | |||
} | } | ||
} | } | ||
/ | /* ========================================================= | ||
* | * CARD FLUTUANTE | ||
* | * ========================================================= */ | ||
. | .pokestorm-floating { | ||
animation: | |||
pokestormFloatDeluxe 4s ease-in-out infinite; | |||
} | } | ||
@keyframes pokestormFloatDeluxe { | |||
0% { | |||
transform: translateY(0); | |||
} | |||
transform: translateY(- | 50% { | ||
transform: translateY(-5px); | |||
} | |||
100% { | |||
transform: translateY(0); | |||
} | } | ||
} | } | ||
/* ========================================================= | |||
* HOVER MAIS ELEGANTE | |||
* ========================================================= */ | |||
transform: translateY(- | .pokestorm-card:hover, | ||
.pokestorm-card-hover:hover { | |||
transform: | |||
translateY(-7px) | |||
scale(1.015); | |||
box-shadow: | box-shadow: | ||
0 | 0 12px 28px rgba(22,137,215,0.22); | ||
} | } | ||
/ | /* ========================================================= | ||
* | * BOTÕES POKESTORM | ||
* | * ========================================================= */ | ||
.pokestorm- | .pokestorm-button { | ||
position: relative; | |||
overflow: hidden; | |||
background-size: | |||
200% 200% !important; | |||
animation: | |||
pokestormButtonGradient 5s ease infinite; | |||
} | } | ||
@keyframes pokestormButtonGradient { | |||
0% { | |||
background-position: 0% 50%; | |||
} | |||
50% { | |||
background-position: 100% 50%; | |||
} | } | ||
100% { | |||
background-position: 0% 50%; | |||
} | |||
} | } | ||
.pokestorm- | .pokestorm-button::after { | ||
content: ""; | content: ""; | ||
| Linha 402: | Linha 273: | ||
left: -120%; | left: -120%; | ||
width: | width: 50%; | ||
height: 100%; | height: 100%; | ||
| Linha 409: | Linha 280: | ||
90deg, | 90deg, | ||
transparent, | transparent, | ||
rgba(255,255,255,0. | rgba(255,255,255,0.4), | ||
transparent | transparent | ||
); | ); | ||
transform: skewX(-20deg) | transform: | ||
skewX(-20deg); | |||
pointer-events: none; | pointer-events: none; | ||
} | } | ||
.pokestorm- | .pokestorm-button:hover::after { | ||
left: 140%; | |||
transition: | |||
left 0.6s ease; | |||
} | } | ||
/* ========================================================= | |||
* IMAGENS | |||
* ========================================================= */ | |||
.pokestorm-image { | |||
will-change: | |||
transform, | |||
filter; | |||
} | |||
.pokestorm- | .pokestorm-image:hover { | ||
transform: | |||
scale(1.035) | |||
translateY(-2px) !important; | |||
filter: | |||
drop-shadow( | |||
0 8px 12px | |||
rgba(22,137,215,0.25) | |||
); | ); | ||
} | |||
/* ========================================================= | |||
* TOC / ÍNDICE | |||
* ========================================================= */ | |||
#toc li, | |||
.toc li { | |||
transition: | |||
transform 0.2s ease, | |||
background 0.2s ease; | |||
} | |||
#toc li:hover, | |||
.toc li:hover { | |||
transform: | |||
translateX(4px); | |||
} | |||
#toc a, | |||
.toc a { | |||
transition: | |||
color 0.2s ease; | |||
} | |||
/* ========================================================= | |||
* TABELAS | |||
* ========================================================= */ | |||
.wikitable tbody tr { | |||
transition: | transition: | ||
transform 0.2s ease, | transform 0.2s ease, | ||
box-shadow | box-shadow 0.2s ease; | ||
} | } | ||
. | .wikitable tbody tr:hover { | ||
transform: | |||
translateX(2px); | |||
} | |||
/* ========================================================= | |||
* INFOBOX | |||
* ========================================================= */ | |||
.infobox { | |||
transition: | |||
transform 0.25s ease, | |||
box-shadow 0.25s ease; | |||
} | } | ||
.infobox:hover { | |||
transform: | |||
translateY(-3px); | |||
box-shadow: | |||
0 8px 22px rgba(22,137,215,0.18); | |||
} | |||
/* ========================================================= | |||
* CAIXAS DE AVISO | |||
* ========================================================= */ | |||
.mw-message-box { | |||
transition: | transition: | ||
transform 0. | transform 0.2s ease, | ||
box-shadow 0. | box-shadow 0.2s ease; | ||
} | } | ||
. | .mw-message-box:hover { | ||
transform: | transform: | ||
translateY(-2px); | |||
box-shadow: | box-shadow: | ||
0 | 0 6px 16px rgba(22,137,215,0.15); | ||
} | } | ||
/* | /* ========================================================= | ||
* | * CLASSE PARA EVENTOS | ||
* | * | ||
* Use: | |||
* <div class="pokestorm-event"> | |||
* ... | |||
* </div> | |||
* ========================================================= */ | |||
.pokestorm-event { | |||
position: relative; | |||
overflow: hidden; | |||
background: | background: | ||
linear-gradient( | linear-gradient( | ||
135deg, | |||
#ffffff, | #ffffff, | ||
# | #eaf6fd | ||
) | ); | ||
border: | border: | ||
1px solid # | 1px solid #5dbcfc; | ||
border-radius: | border-radius: | ||
15px; | |||
padding: | padding: | ||
15px; | |||
box-shadow: | box-shadow: | ||
0 | 0 5px 18px | ||
rgba(22,137,215,0.14); | |||
transition: | |||
. | transform 0.3s ease, | ||
box-shadow 0.3s ease, | |||
border-color 0.3s ease; | |||
} | } | ||
.pokestorm-event:hover { | |||
transform: | |||
translateY(-6px); | |||
border-color: | |||
#1689d7; | |||
border: | |||
box-shadow: | box-shadow: | ||
0 | 0 12px 28px | ||
rgba(22,137,215,0.24); | |||
} | } | ||
. | .pokestorm-event::before { | ||
content: ""; | |||
position: absolute; | |||
top: 0; | |||
left: -120%; | |||
width: 60%; | |||
height: 100%; | |||
background: | background: | ||
linear-gradient( | linear-gradient( | ||
90deg, | |||
transparent, | |||
rgba(255,255,255,0.55), | |||
) | transparent | ||
); | |||
transform: | |||
skewX(-20deg); | |||
animation: | |||
pokestormEventShine 5s ease-in-out infinite; | |||
pointer-events: none; | |||
} | } | ||
@keyframes pokestormEventShine { | |||
0% { | |||
left: -120%; | |||
} | |||
25% { | |||
left: 140%; | |||
} | |||
100% { | |||
left: 140%; | |||
} | |||
} | } | ||
/ | /* ========================================================= | ||
* | * CLASSE DE DESTAQUE | ||
* | * ========================================================= */ | ||
.pokestorm-highlight { | |||
position: relative; | |||
background: | background: | ||
linear-gradient( | linear-gradient( | ||
135deg, | 135deg, | ||
# | #ffffff, | ||
# | #f4fbff | ||
); | ); | ||
border | border: | ||
2px solid #9bd4f5; | |||
border-radius: | border-radius: | ||
14px; | |||
padding: | padding: | ||
14px; | |||
box-shadow: | box-shadow: | ||
0 | 0 4px 15px | ||
rgba(22,137,215,0.10); | |||
transition: | transition: | ||
transform 0.25s ease, | |||
box-shadow 0. | box-shadow 0.25s ease; | ||
} | } | ||
.pokestorm-highlight:hover { | |||
transform: | |||
translateY(-4px); | |||
box-shadow: | box-shadow: | ||
0 | 0 10px 24px | ||
rgba(22,137,215,0.20); | |||
} | } | ||
/ | /* ========================================================= | ||
* | * POKÉMON RARO | ||
* | * ========================================================= */ | ||
.pokestorm-rare { | |||
position: relative; | |||
overflow: hidden; | |||
border: | |||
2px solid #5dbcfc; | |||
border-radius: | border-radius: | ||
15px; | |||
background: | background: | ||
linear-gradient( | linear-gradient( | ||
135deg, | |||
# | #ffffff, | ||
# | #eaf6fd | ||
); | ); | ||
box-shadow: | |||
0 0 0 | |||
rgba(93,188,252,0); | |||
animation: | |||
pokestormRarePulse 3s ease-in-out infinite; | |||
transition: | |||
transform 0.25s ease; | |||
} | } | ||
.pokestorm-rare:hover { | |||
transform: | |||
translateY(-5px) | |||
scale(1.02); | |||
.pokestorm- | |||
} | } | ||
@keyframes pokestormRarePulse { | |||
0% { | |||
box-shadow: | |||
0 0 0 | |||
rgba(93,188,252,0); | |||
} | } | ||
50% { | |||
box-shadow: | |||
0 0 18px | |||
rgba(93,188,252,0.28); | |||
} | } | ||
100% { | |||
box-shadow: | |||
0 0 0 | |||
rgba(93,188,252,0); | |||
} | } | ||
| Linha 777: | Linha 600: | ||
/* ========================================================= | /* ========================================================= | ||
* | * DUNGEON | ||
* ========================================================= */ | * ========================================================= */ | ||
.pokestorm-dungeon { | |||
position: relative; | |||
overflow: hidden; | |||
background: | |||
linear-gradient( | |||
135deg, | |||
#f7fcff, | |||
#e2f4fc | |||
); | |||
border: | |||
2px solid #1689d7; | |||
border-radius: | |||
15px; | |||
padding: | |||
15px; | |||
box-shadow: | |||
0 5px 18px | |||
rgba(22,137,215,0.16); | |||
transition: | transition: | ||
transform 0.3s ease, | transform 0.3s ease, | ||
box-shadow 0.3s ease | box-shadow 0.3s ease; | ||
} | } | ||
.pokestorm-dungeon:hover { | |||
transform: | transform: | ||
translateY(- | translateY(-6px); | ||
box-shadow: | box-shadow: | ||
0 12px | 0 12px 30px | ||
rgba(22,137,215,0.25); | |||
} | } | ||
/* | /* ========================================================= | ||
* RECOMPENSA | |||
* ========================================================= */ | |||
.pokestorm-reward { | |||
position: relative; | |||
position: | |||
background: | background: | ||
linear-gradient( | linear-gradient( | ||
135deg, | |||
#ffffff, | |||
#eaf6fd | |||
); | ); | ||
border: | |||
1px solid #9bd4f5; | |||
border-radius: | |||
12px; | |||
padding: | |||
12px; | |||
box-shadow: | |||
0 3px 12px | |||
rgba(22,137,215,0.10); | |||
transition: | |||
transform 0.25s ease, | |||
border-color 0.25s ease, | |||
box-shadow 0.25s ease; | |||
} | } | ||
.pokestorm-reward:hover { | |||
transform: | |||
translateY(-4px); | |||
border-color: | |||
#5dbcfc; | |||
box-shadow: | |||
0 9px 22px | |||
rgba(22,137,215,0.20); | |||
} | } | ||
/* ========================================================= | /* ========================================================= | ||
* | * ALERTA POKESTORM | ||
* ========================================================= */ | * ========================================================= */ | ||
.pokestorm-alert { | |||
position: relative | position: relative; | ||
background: | |||
linear-gradient( | |||
135deg, | |||
border- | #eaf6fd, | ||
#ffffff | |||
); | |||
border-left: | |||
5px solid #1689d7; | |||
border-radius: | |||
10px; | |||
padding: | |||
12px 15px; | |||
box-shadow: | box-shadow: | ||
0 12px | 0 3px 12px | ||
rgba(22,137,215,0.10); | |||
} | } | ||
/* ========================================================= | /* ========================================================= | ||
* | * ENTRADA DOS CARDS | ||
* ========================================================= */ | * ========================================================= */ | ||
.pokestorm-card, | |||
.pokestorm-card-hover, | |||
.pokestorm-event, | |||
.pokestorm-highlight, | |||
.pokestorm-rare, | |||
.pokestorm-dungeon, | |||
.pokestorm-reward { | |||
animation: | |||
pokestormCardIn 0.55s ease both; | |||
} | |||
@keyframes pokestormCardIn { | |||
from { | |||
opacity: 0; | |||
transform: | |||
translateY(10px); | |||
} | |||
to { | |||
opacity: 1; | |||
transform: | |||
translateY(0); | |||
} | |||
} | |||
/* ========================================================= | |||
* BOTÕES MEDIAWIKI / OOUI | |||
* ========================================================= */ | |||
.oo-ui-buttonElement-button, | |||
.mw-ui-button { | |||
transition: | transition: | ||
transform 0.2s ease, | |||
box-shadow 0.2s ease, | |||
background 0.2s ease !important; | |||
} | } | ||
.oo-ui-buttonElement-button:hover, | |||
.mw-ui-button:hover { | |||
transform: | |||
translateY(-2px); | |||
box-shadow: | |||
0 5px 12px | |||
rgba(22,137,215,0.16); | |||
} | } | ||
/* ========================================================= | /* ========================================================= | ||
* | * CATEGORIAS | ||
* ========================================================= */ | * ========================================================= */ | ||
.catlinks { | |||
transition: | transition: | ||
transform 0. | transform 0.25s ease, | ||
box-shadow 0.25s ease; | |||
} | } | ||
.catlinks:hover { | |||
transform: | transform: | ||
translateY(-2px); | |||
box-shadow: | |||
0 6px 16px | |||
rgba(22,137,215,0.13); | |||
} | } | ||
/* ========================================================= | /* ========================================================= | ||
* | * CÓDIGO | ||
* ========================================================= */ | * ========================================================= */ | ||
pre, | |||
.mw-code { | |||
transition: | transition: | ||
border-color 0.2s ease, | |||
box-shadow 0.2s ease; | |||
} | |||
pre:hover, | |||
.mw-code:hover { | |||
border-color: | |||
#5dbcfc !important; | |||
box-shadow: | |||
0 4px 14px | |||
rgba(22,137,215,0.10); | |||
} | } | ||
/* ========================================================= | |||
* SELEÇÃO | |||
* ========================================================= */ | |||
::selection { | |||
background: | |||
#1689d7 !important; | |||
color: | |||
#ffffff !important; | |||
} | } | ||
/* ========================================================= | /* ========================================================= | ||
* | * EFEITO DE FOCO | ||
* ========================================================= */ | * ========================================================= */ | ||
.pokestorm- | .pokestorm-card:focus-within, | ||
.pokestorm-card-hover:focus-within, | |||
.pokestorm-button:focus, | |||
.pokestorm-event:focus-within { | |||
outline: | |||
2px solid #5dbcfc; | |||
outline-offset: | |||
3px; | |||
} | } | ||
/* ========================================================= | |||
* MOBILE | |||
* ========================================================= */ | |||
@media screen and (max-width: 700px) { | |||
.pokestorm-card:hover, | |||
transform: translateY(- | .pokestorm-card-hover:hover, | ||
.pokestorm-event:hover, | |||
.pokestorm-highlight:hover, | |||
.pokestorm-rare:hover, | |||
.pokestorm-dungeon:hover, | |||
.pokestorm-reward:hover { | |||
transform: | |||
translateY(-3px) | |||
scale(1.005); | |||
} | } | ||
.pokestorm-button { | |||
padding: | |||
8px 12px; | |||
} | } | ||
| Linha 1 002: | Linha 877: | ||
@media (prefers-reduced-motion: reduce) { | @media (prefers-reduced-motion: reduce) { | ||
.vector-header-container, | |||
.firstHeading, | |||
.pokestorm-floating { | .mw-heading2 h2::after, | ||
animation: | .pokestorm-card::after, | ||
.pokestorm-card-hover::after, | |||
.pokestorm-floating, | |||
.pokestorm-button, | |||
.pokestorm-event::before, | |||
.pokestorm-rare, | |||
.pokestorm-card, | |||
.pokestorm-card-hover, | |||
.pokestorm-event, | |||
.pokestorm-highlight, | |||
.pokestorm-dungeon, | |||
.pokestorm-reward { | |||
animation: | |||
none !important; | |||
} | } | ||
} | } | ||
Edição das 10h40min de 30 de setembro de 2026
/* =========================================================
* POKESTORM WIKI
* DELUXE VISUAL EFFECTS
* ========================================================= */
/* =========================================================
* CABEÇALHO ANIMADO
* ========================================================= */
.vector-header-container {
background-size: 200% 200% !important;
animation:
pokestormHeader 8s ease infinite;
box-shadow:
0 4px 18px rgba(22,137,215,0.28) !important;
}
@keyframes pokestormHeader {
0% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
100% {
background-position: 0% 50%;
}
}
/* =========================================================
* TÍTULO PRINCIPAL
* ========================================================= */
.firstHeading {
position: relative;
animation:
pokestormTitleIn 0.6s ease both;
}
@keyframes pokestormTitleIn {
from {
opacity: 0;
transform: translateY(-8px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* =========================================================
* LINHA DOS TÍTULOS COM BRILHO
* ========================================================= */
.mw-heading2 h2::after {
background-size: 200% 100% !important;
animation:
pokestormLineGlow 4s ease infinite;
}
@keyframes pokestormLineGlow {
0% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
100% {
background-position: 0% 50%;
}
}
/* =========================================================
* LINKS COM LINHA ANIMADA
* ========================================================= */
.mw-body a:not(.image):not(.mw-ui-button) {
position: relative;
text-decoration: none;
}
.mw-body a:not(.image):not(.mw-ui-button)::after {
content: "";
position: absolute;
left: 0;
bottom: -2px;
width: 0;
height: 2px;
background:
linear-gradient(
90deg,
#1689d7,
#5dbcfc
);
border-radius: 5px;
transition:
width 0.25s ease;
}
.mw-body a:not(.image):not(.mw-ui-button):hover::after {
width: 100%;
}
/* =========================================================
* CARDS POKESTORM - EFEITO DELUXE
* ========================================================= */
.pokestorm-card,
.pokestorm-card-hover {
transform-origin: center;
will-change:
transform,
box-shadow;
}
/* =========================================================
* BRILHO AUTOMÁTICO NOS CARDS
* ========================================================= */
.pokestorm-card::after,
.pokestorm-card-hover::after {
content: "";
position: absolute;
top: 0;
left: -150%;
width: 55%;
height: 100%;
background:
linear-gradient(
90deg,
transparent,
rgba(255,255,255,0.28),
transparent
);
transform:
skewX(-20deg);
pointer-events: none;
animation:
pokestormCardShine 6s ease-in-out infinite;
}
@keyframes pokestormCardShine {
0% {
left: -150%;
}
20% {
left: 150%;
}
100% {
left: 150%;
}
}
/* =========================================================
* CARD FLUTUANTE
* ========================================================= */
.pokestorm-floating {
animation:
pokestormFloatDeluxe 4s ease-in-out infinite;
}
@keyframes pokestormFloatDeluxe {
0% {
transform: translateY(0);
}
50% {
transform: translateY(-5px);
}
100% {
transform: translateY(0);
}
}
/* =========================================================
* HOVER MAIS ELEGANTE
* ========================================================= */
.pokestorm-card:hover,
.pokestorm-card-hover:hover {
transform:
translateY(-7px)
scale(1.015);
box-shadow:
0 12px 28px rgba(22,137,215,0.22);
}
/* =========================================================
* BOTÕES POKESTORM
* ========================================================= */
.pokestorm-button {
position: relative;
overflow: hidden;
background-size:
200% 200% !important;
animation:
pokestormButtonGradient 5s ease infinite;
}
@keyframes pokestormButtonGradient {
0% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
100% {
background-position: 0% 50%;
}
}
.pokestorm-button::after {
content: "";
position: absolute;
top: 0;
left: -120%;
width: 50%;
height: 100%;
background:
linear-gradient(
90deg,
transparent,
rgba(255,255,255,0.4),
transparent
);
transform:
skewX(-20deg);
pointer-events: none;
}
.pokestorm-button:hover::after {
left: 140%;
transition:
left 0.6s ease;
}
/* =========================================================
* IMAGENS
* ========================================================= */
.pokestorm-image {
will-change:
transform,
filter;
}
.pokestorm-image:hover {
transform:
scale(1.035)
translateY(-2px) !important;
filter:
drop-shadow(
0 8px 12px
rgba(22,137,215,0.25)
);
}
/* =========================================================
* TOC / ÍNDICE
* ========================================================= */
#toc li,
.toc li {
transition:
transform 0.2s ease,
background 0.2s ease;
}
#toc li:hover,
.toc li:hover {
transform:
translateX(4px);
}
#toc a,
.toc a {
transition:
color 0.2s ease;
}
/* =========================================================
* TABELAS
* ========================================================= */
.wikitable tbody tr {
transition:
transform 0.2s ease,
box-shadow 0.2s ease;
}
.wikitable tbody tr:hover {
transform:
translateX(2px);
}
/* =========================================================
* INFOBOX
* ========================================================= */
.infobox {
transition:
transform 0.25s ease,
box-shadow 0.25s ease;
}
.infobox:hover {
transform:
translateY(-3px);
box-shadow:
0 8px 22px rgba(22,137,215,0.18);
}
/* =========================================================
* CAIXAS DE AVISO
* ========================================================= */
.mw-message-box {
transition:
transform 0.2s ease,
box-shadow 0.2s ease;
}
.mw-message-box:hover {
transform:
translateY(-2px);
box-shadow:
0 6px 16px rgba(22,137,215,0.15);
}
/* =========================================================
* CLASSE PARA EVENTOS
*
* Use:
* <div class="pokestorm-event">
* ...
* </div>
* ========================================================= */
.pokestorm-event {
position: relative;
overflow: hidden;
background:
linear-gradient(
135deg,
#ffffff,
#eaf6fd
);
border:
1px solid #5dbcfc;
border-radius:
15px;
padding:
15px;
box-shadow:
0 5px 18px
rgba(22,137,215,0.14);
transition:
transform 0.3s ease,
box-shadow 0.3s ease,
border-color 0.3s ease;
}
.pokestorm-event:hover {
transform:
translateY(-6px);
border-color:
#1689d7;
box-shadow:
0 12px 28px
rgba(22,137,215,0.24);
}
.pokestorm-event::before {
content: "";
position: absolute;
top: 0;
left: -120%;
width: 60%;
height: 100%;
background:
linear-gradient(
90deg,
transparent,
rgba(255,255,255,0.55),
transparent
);
transform:
skewX(-20deg);
animation:
pokestormEventShine 5s ease-in-out infinite;
pointer-events: none;
}
@keyframes pokestormEventShine {
0% {
left: -120%;
}
25% {
left: 140%;
}
100% {
left: 140%;
}
}
/* =========================================================
* CLASSE DE DESTAQUE
* ========================================================= */
.pokestorm-highlight {
position: relative;
background:
linear-gradient(
135deg,
#ffffff,
#f4fbff
);
border:
2px solid #9bd4f5;
border-radius:
14px;
padding:
14px;
box-shadow:
0 4px 15px
rgba(22,137,215,0.10);
transition:
transform 0.25s ease,
box-shadow 0.25s ease;
}
.pokestorm-highlight:hover {
transform:
translateY(-4px);
box-shadow:
0 10px 24px
rgba(22,137,215,0.20);
}
/* =========================================================
* POKÉMON RARO
* ========================================================= */
.pokestorm-rare {
position: relative;
overflow: hidden;
border:
2px solid #5dbcfc;
border-radius:
15px;
background:
linear-gradient(
135deg,
#ffffff,
#eaf6fd
);
box-shadow:
0 0 0
rgba(93,188,252,0);
animation:
pokestormRarePulse 3s ease-in-out infinite;
transition:
transform 0.25s ease;
}
.pokestorm-rare:hover {
transform:
translateY(-5px)
scale(1.02);
}
@keyframes pokestormRarePulse {
0% {
box-shadow:
0 0 0
rgba(93,188,252,0);
}
50% {
box-shadow:
0 0 18px
rgba(93,188,252,0.28);
}
100% {
box-shadow:
0 0 0
rgba(93,188,252,0);
}
}
/* =========================================================
* DUNGEON
* ========================================================= */
.pokestorm-dungeon {
position: relative;
overflow: hidden;
background:
linear-gradient(
135deg,
#f7fcff,
#e2f4fc
);
border:
2px solid #1689d7;
border-radius:
15px;
padding:
15px;
box-shadow:
0 5px 18px
rgba(22,137,215,0.16);
transition:
transform 0.3s ease,
box-shadow 0.3s ease;
}
.pokestorm-dungeon:hover {
transform:
translateY(-6px);
box-shadow:
0 12px 30px
rgba(22,137,215,0.25);
}
/* =========================================================
* RECOMPENSA
* ========================================================= */
.pokestorm-reward {
position: relative;
background:
linear-gradient(
135deg,
#ffffff,
#eaf6fd
);
border:
1px solid #9bd4f5;
border-radius:
12px;
padding:
12px;
box-shadow:
0 3px 12px
rgba(22,137,215,0.10);
transition:
transform 0.25s ease,
border-color 0.25s ease,
box-shadow 0.25s ease;
}
.pokestorm-reward:hover {
transform:
translateY(-4px);
border-color:
#5dbcfc;
box-shadow:
0 9px 22px
rgba(22,137,215,0.20);
}
/* =========================================================
* ALERTA POKESTORM
* ========================================================= */
.pokestorm-alert {
position: relative;
background:
linear-gradient(
135deg,
#eaf6fd,
#ffffff
);
border-left:
5px solid #1689d7;
border-radius:
10px;
padding:
12px 15px;
box-shadow:
0 3px 12px
rgba(22,137,215,0.10);
}
/* =========================================================
* ENTRADA DOS CARDS
* ========================================================= */
.pokestorm-card,
.pokestorm-card-hover,
.pokestorm-event,
.pokestorm-highlight,
.pokestorm-rare,
.pokestorm-dungeon,
.pokestorm-reward {
animation:
pokestormCardIn 0.55s ease both;
}
@keyframes pokestormCardIn {
from {
opacity: 0;
transform:
translateY(10px);
}
to {
opacity: 1;
transform:
translateY(0);
}
}
/* =========================================================
* BOTÕES MEDIAWIKI / OOUI
* ========================================================= */
.oo-ui-buttonElement-button,
.mw-ui-button {
transition:
transform 0.2s ease,
box-shadow 0.2s ease,
background 0.2s ease !important;
}
.oo-ui-buttonElement-button:hover,
.mw-ui-button:hover {
transform:
translateY(-2px);
box-shadow:
0 5px 12px
rgba(22,137,215,0.16);
}
/* =========================================================
* CATEGORIAS
* ========================================================= */
.catlinks {
transition:
transform 0.25s ease,
box-shadow 0.25s ease;
}
.catlinks:hover {
transform:
translateY(-2px);
box-shadow:
0 6px 16px
rgba(22,137,215,0.13);
}
/* =========================================================
* CÓDIGO
* ========================================================= */
pre,
.mw-code {
transition:
border-color 0.2s ease,
box-shadow 0.2s ease;
}
pre:hover,
.mw-code:hover {
border-color:
#5dbcfc !important;
box-shadow:
0 4px 14px
rgba(22,137,215,0.10);
}
/* =========================================================
* SELEÇÃO
* ========================================================= */
::selection {
background:
#1689d7 !important;
color:
#ffffff !important;
}
/* =========================================================
* EFEITO DE FOCO
* ========================================================= */
.pokestorm-card:focus-within,
.pokestorm-card-hover:focus-within,
.pokestorm-button:focus,
.pokestorm-event:focus-within {
outline:
2px solid #5dbcfc;
outline-offset:
3px;
}
/* =========================================================
* MOBILE
* ========================================================= */
@media screen and (max-width: 700px) {
.pokestorm-card:hover,
.pokestorm-card-hover:hover,
.pokestorm-event:hover,
.pokestorm-highlight:hover,
.pokestorm-rare:hover,
.pokestorm-dungeon:hover,
.pokestorm-reward:hover {
transform:
translateY(-3px)
scale(1.005);
}
.pokestorm-button {
padding:
8px 12px;
}
}
/* =========================================================
* REDUÇÃO DE MOVIMENTO
* ========================================================= */
@media (prefers-reduced-motion: reduce) {
.vector-header-container,
.firstHeading,
.mw-heading2 h2::after,
.pokestorm-card::after,
.pokestorm-card-hover::after,
.pokestorm-floating,
.pokestorm-button,
.pokestorm-event::before,
.pokestorm-rare,
.pokestorm-card,
.pokestorm-card-hover,
.pokestorm-event,
.pokestorm-highlight,
.pokestorm-dungeon,
.pokestorm-reward {
animation:
none !important;
}
}