MediaWiki:Common.css
Appearance
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* ============================================================
THE ENCYCLOPEDIA OF THE COLORVERSE — Common.css
Golden Gate Bridge Theme (dominant) + Colorverse Systems
GGB palette : International Orange #C85C2B | Bay Navy #0B1B2B | Fog #F5F2EC
KC tokens : used only by Colorverse template components
============================================================ */
/* ── Google Fonts ── */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;0,700;1,400&family=Crimson+Pro:ital,wght@0,300;0,400;0,600;1,300;1,400&family=Josefin+Sans:wght@300;400;600&family=Fredoka+One&family=Bubblegum+Sans&family=Schoolbell&family=Patrick+Hand&family=Boogaloo&display=swap');
/* ── Custom Fonts ── */
@font-face {
font-family: "Fredoka";
src: url("https://db.onlinewebfonts.com/t/0ca2ea96737ff1b488509e1c766d1048.eot");
src: url("https://db.onlinewebfonts.com/t/0ca2ea96737ff1b488509e1c766d1048.eot?#iefix")format("embedded-opentype"),
url("https://db.onlinewebfonts.com/t/0ca2ea96737ff1b488509e1c766d1048.woff2")format("woff2"),
url("https://db.onlinewebfonts.com/t/0ca2ea96737ff1b488509e1c766d1048.woff")format("woff"),
url("https://db.onlinewebfonts.com/t/0ca2ea96737ff1b488509e1c766d1048.ttf")format("truetype"),
url("https://db.onlinewebfonts.com/t/0ca2ea96737ff1b488509e1c766d1048.svg#Fredoka")format("svg");
}
@font-face {
font-family: "Starborn";
src: url("https://db.onlinewebfonts.com/t/2afe16b4e1a977f13d988de8a968ae7c.eot");
src: url("https://db.onlinewebfonts.com/t/2afe16b4e1a977f13d988de8a968ae7c.eot?#iefix")format("embedded-opentype"),
url("https://db.onlinewebfonts.com/t/2afe16b4e1a977f13d988de8a968ae7c.woff2")format("woff2"),
url("https://db.onlinewebfonts.com/t/2afe16b4e1a977f13d988de8a968ae7c.woff")format("woff"),
url("https://db.onlinewebfonts.com/t/2afe16b4e1a977f13d988de8a968ae7c.ttf")format("truetype"),
url("https://db.onlinewebfonts.com/t/2afe16b4e1a977f13d988de8a968ae7c.svg#Starborn")format("svg");
}
/* ============================================================
CSS VARIABLES
============================================================ */
:root {
/* ── Golden Gate Bridge (dominant theme) ── */
--ggb-orange: #C85C2B;
--ggb-orange-dk: #9E3F18;
--ggb-orange-lt: #E67E4D;
--ggb-navy: #0B1B2B;
--ggb-navy-mid: #162840;
--ggb-navy-light: #2A4560;
--ggb-fog: #F5F2EC;
--ggb-fog-mid: #EAE6DC;
--ggb-fog-dark: #D8D3C6;
--ggb-cable: #8A9BB0;
--ggb-water: #1A4A6E;
--ggb-gold: #C9A84C;
--ggb-text: #1C1A15;
--ggb-text-mid: #4A4640;
--ggb-text-light: #7A7570;
--ggb-radius: 6px;
--ggb-shadow: 0 2px 20px rgba(11,27,43,0.14);
--ggb-t: 0.25s ease;
/* ── Colorverse component tokens (templates, blinkies, page-color system) ── */
--kc-yellow: #FFE500;
--kc-red: #E8000D;
--kc-blue: #2B44FF;
--kc-green: #00B728;
--kc-white: #FFFFFF;
--kc-black: #1A1A1A;
--kc-border: 3px solid var(--kc-black);
--kc-border-thick: 5px solid var(--kc-black);
--kc-radius: 16px;
--kc-radius-lg: 24px;
--kc-shadow: 5px 5px 0px var(--kc-black);
/* Font tokens — GGB fonts for wiki UI, KC fonts for template components */
--font-display: 'Cormorant Garamond', Georgia, serif;
--font-body: 'Crimson Pro', Georgia, serif;
--font-nav: 'Josefin Sans', sans-serif;
--font-heading: "Fredoka", "Fredoka One", cursive;
--font-accent: "Bubblegum Sans", cursive;
--font-note: "Schoolbell", cursive;
/* Page-color system defaults (Colorverse {{PageColor}} template) */
--kc-page-bg: initial;
--kc-page-text: initial;
--kc-page-links: initial;
--kc-page-h1: initial;
--kc-page-h1text: initial;
--kc-page-h2: initial;
--kc-page-h3: initial;
--kc-page-border: initial;
--kc-page-shadow: initial;
--kc-page-toc: initial;
--kc-page-cats: initial;
}
/* ============================================================
KEYFRAMES
============================================================ */
@keyframes ggbFadeUp {
from { opacity: 0; transform: translateY(18px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes ggbSlideRight {
from { opacity: 0; transform: translateX(-16px); }
to { opacity: 1; transform: translateX(0); }
}
@keyframes ggbPageIn {
from { opacity: 0; transform: translateY(8px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes ggbCableFlow {
0%, 100% { background-position: 0 0; }
50% { background-position: 0 12px; }
}
@keyframes ggbPulse {
0%, 100% { box-shadow: 0 0 0 0 rgba(200,92,43,0.45); }
50% { box-shadow: 0 0 0 8px rgba(200,92,43,0); }
}
@keyframes kc-sparkle-fade {
0% { opacity: 1; transform: scale(1) translateY(0); }
100% { opacity: 0; transform: scale(0.4) translateY(-24px); }
}
@keyframes blinkie-border-cycle {
0% { outline-color: var(--kc-yellow); }
25% { outline-color: var(--kc-red); }
50% { outline-color: var(--kc-blue); }
75% { outline-color: var(--kc-green); }
100% { outline-color: var(--kc-yellow); }
}
/* ============================================================
GLOBAL RESET
============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
/* ============================================================
BODY — GGB fog
============================================================ */
body {
background: var(--ggb-fog) !important;
color: var(--ggb-text) !important;
font-family: var(--font-body) !important;
font-size: 18px !important;
line-height: 1.78 !important;
}
#mw-page-base {
background: linear-gradient(180deg, var(--ggb-navy) 0%, var(--ggb-navy-mid) 55%, var(--ggb-fog) 100%) !important;
height: 220px !important;
}
#mw-head-base { background: var(--ggb-navy) !important; }
#mw-content-block {
background-image: url('/images/Split.png');
background-repeat: no-repeat;
background-position: center;
background-attachment: fixed;
background-size: cover;
}
/* ============================================================
HEADER
============================================================ */
#mw-head, .vector-header {
background: var(--ggb-navy) !important;
border-bottom: 3px solid var(--ggb-orange) !important;
box-shadow: 0 4px 28px rgba(11,27,43,0.5) !important;
}
#p-logo { filter: drop-shadow(0 2px 10px rgba(200,92,43,0.25)); }
#p-logo a { display: block; }
/* ============================================================
NAVIGATION TABS
============================================================ */
#left-navigation, .vector-menu-tabs, .vector-nav-tabs {
font-family: var(--font-nav) !important;
}
.vector-menu-tabs li a,
#ca-nstab-main a, #ca-talk a,
#ca-view a, #ca-edit a, #ca-history a {
background: transparent !important;
border: none !important;
color: var(--ggb-cable) !important;
font-family: var(--font-nav) !important;
font-size: 11px !important;
font-weight: 400 !important;
letter-spacing: 0.1em !important;
padding: 10px 16px !important;
text-transform: uppercase !important;
transition: color var(--ggb-t), background var(--ggb-t) !important;
}
.vector-menu-tabs li a:hover,
#ca-edit a:hover, #ca-history a:hover {
background: rgba(200,92,43,0.08) !important;
color: var(--ggb-orange-lt) !important;
}
.vector-menu-tabs .selected a, li.selected a {
border-bottom: 3px solid var(--ggb-orange) !important;
color: var(--ggb-orange) !important;
}
/* Page tabs (Timeless skin) */
#p-views a {
color: var(--ggb-cable) !important;
background-color: transparent !important;
font-family: var(--font-nav) !important;
border: none !important;
border-radius: 0 !important;
box-shadow: none !important;
transition: color var(--ggb-t), background var(--ggb-t) !important;
}
#p-views a:hover { color: var(--ggb-orange-lt) !important; background: rgba(200,92,43,0.08) !important; transform: none !important; }
#p-views .selected a, #p-views li.selected a {
color: var(--ggb-orange) !important;
background-color: transparent !important;
border-bottom: 3px solid var(--ggb-orange) !important;
transform: none !important;
}
/* ── Right Nav ── */
#right-navigation a, .vector-user-links a, #p-personal a {
color: var(--ggb-cable) !important;
font-family: var(--font-nav) !important;
font-size: 11px !important;
letter-spacing: 0.06em !important;
transition: color var(--ggb-t) !important;
}
#right-navigation a:hover, .vector-user-links a:hover, #p-personal a:hover {
color: var(--ggb-orange-lt) !important;
}
/* ============================================================
SEARCH BAR
============================================================ */
#p-search form, .vector-search-box form { margin: 0 !important; }
#searchInput, .vector-search-box input[type="search"], .cdx-text-input__input,
input[name="search"], .mw-searchInput {
background: rgba(255,255,255,0.08) !important;
border: 1px solid rgba(138,155,176,0.3) !important;
border-radius: var(--ggb-radius) !important;
color: var(--ggb-fog) !important;
font-family: var(--font-nav) !important;
font-size: 12px !important;
letter-spacing: 0.05em !important;
padding: 8px 14px !important;
transition: border var(--ggb-t), background var(--ggb-t), box-shadow var(--ggb-t) !important;
width: 220px !important;
box-shadow: none !important;
outline: none !important;
}
#searchInput::placeholder, .vector-search-box input::placeholder {
color: rgba(138,155,176,0.6) !important;
}
#searchInput:focus, .vector-search-box input:focus, .mw-searchInput:focus {
background: rgba(255,255,255,0.13) !important;
border-color: var(--ggb-orange) !important;
box-shadow: 0 0 0 3px rgba(200,92,43,0.18) !important;
outline: none !important;
}
#searchButton, .vector-search-box .searchButton,
#mw-searchButton, input[type="submit"][name="fulltext"], .searchButton {
background: var(--ggb-orange) !important;
border: none !important;
border-radius: 0 var(--ggb-radius) var(--ggb-radius) 0 !important;
color: white !important;
cursor: pointer !important;
padding: 8px 14px !important;
transition: background var(--ggb-t) !important;
box-shadow: none !important;
font-family: var(--font-nav) !important;
font-size: 12px !important;
}
#searchButton:hover, #mw-searchButton:hover, .searchButton:hover {
background: var(--ggb-orange-lt) !important;
transform: none !important;
box-shadow: none !important;
}
/* ============================================================
LEFT SIDEBAR — GGB navy with cable accent
============================================================ */
#mw-panel, #mw-site-navigation, .mw-site-navigation, .vector-column-start {
background: var(--ggb-navy) !important;
border-right: 1px solid rgba(138,155,176,0.12) !important;
padding-top: 10px !important;
position: relative !important;
}
/* Cable shimmer strip */
#mw-panel::after, .vector-column-start::after {
content: '' !important;
position: absolute !important;
top: 0 !important; right: 0 !important;
width: 2px !important; height: 100% !important;
background: linear-gradient(180deg,
transparent 0%,
rgba(200,92,43,0.25) 20%,
rgba(200,92,43,0.55) 50%,
rgba(200,92,43,0.25) 80%,
transparent 100%) !important;
pointer-events: none !important;
animation: ggbCableFlow 5s ease-in-out infinite !important;
}
#mw-panel .portal, #mw-panel .vector-menu {
border-bottom: 1px solid rgba(138,155,176,0.1) !important;
margin-bottom: 0 !important;
padding: 14px 0 !important;
}
/* Sidebar headings */
#mw-panel h3,
#mw-panel .vector-menu-heading,
#mw-panel .vector-menu-heading-label,
#mw-site-navigation h3,
.portal h3,
#mw-site-navigation .sidebar-chunk h3,
#mw-related-navigation .sidebar-chunk h3 {
animation: ggbSlideRight 0.5s ease both !important;
color: var(--ggb-orange) !important;
font-family: var(--font-nav) !important;
font-size: 9px !important;
font-weight: 600 !important;
letter-spacing: 0.22em !important;
margin: 0 !important;
padding: 0 16px 8px !important;
text-transform: uppercase !important;
background: none !important;
box-shadow: none !important;
border-radius: 0 !important;
border: none !important;
border-bottom: 1px solid rgba(200,92,43,0.3) !important;
text-shadow: none !important;
display: block !important;
}
#mw-panel .body ul, #mw-panel .vector-menu-content ul {
list-style: none !important; margin: 0 !important; padding: 0 !important;
}
#mw-panel .body li, #mw-panel .vector-menu-content li { margin: 0 !important; }
#mw-panel .body li a,
#mw-panel .vector-menu-content li a,
#mw-site-navigation a,
#mw-panel a,
#mw-site-navigation .sidebar-chunk a,
#mw-related-navigation .sidebar-chunk a {
color: var(--ggb-cable) !important;
display: block !important;
font-family: var(--font-nav) !important;
font-size: 11.5px !important;
font-weight: 400 !important;
letter-spacing: 0.04em !important;
padding: 5px 16px 5px 26px !important;
position: relative !important;
text-decoration: none !important;
transition: color var(--ggb-t), padding-left var(--ggb-t) !important;
background: none !important;
}
#mw-panel .body li a::before,
#mw-panel .vector-menu-content li a::before {
background: rgba(138,155,176,0.3) !important;
border-radius: 50% !important;
content: '' !important;
height: 4px !important; width: 4px !important;
left: 11px !important;
position: absolute !important;
top: 50% !important;
transform: translateY(-50%) !important;
transition: background var(--ggb-t) !important;
}
#mw-panel .body li a:hover,
#mw-panel .vector-menu-content li a:hover,
#mw-site-navigation a:hover,
#mw-panel a:hover {
color: var(--ggb-orange-lt) !important;
background: transparent !important;
padding-left: 30px !important;
border-radius: 0 !important;
transform: none !important;
}
#mw-panel .body li a:hover::before,
#mw-panel .vector-menu-content li a:hover::before {
background: var(--ggb-orange) !important;
}
/* Sidebar portal section containers — strip KC styles */
#p-navigation, #p-Explore, #p-managewiki-sidebar-header, #p-STAFF,
#p-boggio, #p-tb, #p-cactions, #p-pagemisc, #p-userpagetools,
#p-birthday, #p-event, #p-content, #p-more_categories, #p-wiki_tools {
background-color: transparent !important;
border-radius: 0 !important;
padding: 0 !important;
margin-bottom: 0 !important;
box-shadow: none !important;
border: none !important;
}
#p-logo { background-color: transparent !important; }
/* ============================================================
RIGHT SIDEBAR
============================================================ */
#mw-related-navigation {
background-color: var(--ggb-navy-mid) !important;
border-left: 1px solid rgba(138,155,176,0.12) !important;
}
#mw-related-navigation h3 {
color: var(--ggb-orange) !important;
font-family: var(--font-nav) !important;
font-size: 9px !important;
font-weight: 600 !important;
letter-spacing: 0.22em !important;
text-transform: uppercase !important;
border: none !important;
border-bottom: 1px solid rgba(200,92,43,0.3) !important;
background: none !important;
box-shadow: none !important;
border-radius: 0 !important;
display: block !important;
text-shadow: none !important;
padding: 0 16px 8px !important;
}
#mw-related-navigation a { color: var(--ggb-cable) !important; font-weight: 400 !important; }
#mw-related-navigation a:hover { color: var(--ggb-orange-lt) !important; background: transparent !important; border-radius: 0 !important; }
#mw-related-navigation .portal { background-color: transparent !important; border-color: rgba(138,155,176,0.1) !important; }
/* ============================================================
MAIN CONTENT
============================================================ */
#content, .mw-body, .vector-body {
animation: ggbPageIn 0.55s ease both !important;
background: var(--ggb-fog) !important;
border: none !important;
border-radius: 10px 10px 0 0 !important;
box-shadow: var(--ggb-shadow) !important;
margin-left: 10px !important;
padding: 36px 44px 50px !important;
font-family: var(--font-body) !important;
font-size: 18px !important;
line-height: 1.78 !important;
}
/* ============================================================
HEADINGS — GGB typographic style
============================================================ */
h1, #firstHeading, .mw-first-heading {
animation: ggbFadeUp 0.65s ease 0.1s both !important;
border: none !important;
color: var(--ggb-navy) !important;
font-family: var(--font-display) !important;
font-size: 2.9em !important;
font-weight: 300 !important;
letter-spacing: -0.015em !important;
line-height: 1.12 !important;
margin-bottom: 28px !important;
padding: 0 !important;
background: none !important;
border-radius: 0 !important;
box-shadow: none !important;
text-shadow: none !important;
display: block !important;
}
h1::after, #firstHeading::after, .mw-first-heading::after {
background: linear-gradient(90deg, var(--ggb-orange), var(--ggb-gold)) !important;
border-radius: 2px !important;
content: '' !important;
display: block !important;
height: 3px !important;
margin-top: 16px !important;
width: 70px !important;
}
h2, .mw-body-content h2 {
border: none !important;
border-bottom: 1px solid var(--ggb-fog-dark) !important;
color: var(--ggb-navy) !important;
font-family: var(--font-display) !important;
font-size: 1.95em !important;
font-weight: 600 !important;
letter-spacing: -0.01em !important;
margin-top: 2.2em !important;
padding: 0 0 10px !important;
background: none !important;
border-radius: 0 !important;
box-shadow: none !important;
}
.mw-body-content h2 .mw-headline::before {
background: var(--ggb-orange) !important;
border-radius: 50% !important;
content: '' !important;
display: inline-block !important;
height: 10px !important; width: 10px !important;
margin-right: 10px !important;
position: relative !important;
top: -2px !important;
vertical-align: middle !important;
}
h3, .mw-body-content h3 {
border: none !important;
color: var(--ggb-navy-mid) !important;
font-family: var(--font-display) !important;
font-size: 1.45em !important;
font-style: italic !important;
font-weight: 600 !important;
background: none !important;
border-radius: 0 !important;
box-shadow: none !important;
display: block !important;
padding: 0 !important;
margin: 1.2rem 0 0.5rem !important;
}
h4, .mw-body-content h4,
h5, .mw-body-content h5,
h6, .mw-body-content h6 {
color: var(--ggb-text-mid) !important;
font-family: var(--font-nav) !important;
font-size: 0.88em !important;
font-weight: 600 !important;
letter-spacing: 0.13em !important;
text-transform: uppercase !important;
border: none !important;
}
/* ============================================================
LINKS
============================================================ */
a, a:link {
color: var(--ggb-water) !important;
text-decoration: none !important;
transition: color var(--ggb-t) !important;
font-weight: normal !important;
}
a:visited { color: #3D5E7A !important; }
a:hover, a:focus {
color: var(--ggb-orange) !important;
text-decoration: underline !important;
text-decoration-color: rgba(200,92,43,0.5) !important;
text-decoration-thickness: 2px !important;
text-underline-offset: 3px !important;
background: none !important;
transform: none !important;
padding: 0 !important;
border-radius: 0 !important;
}
a.new, a.new:link, a.new:hover { color: #A03520 !important; text-decoration: none !important; }
/* Bodytext links — extra specificity to override KC rules */
#bodyContent a { color: var(--ggb-water) !important; font-weight: normal !important; text-decoration: none !important; }
#bodyContent a:visited { color: #3D5E7A !important; }
#bodyContent a:hover {
color: var(--ggb-orange) !important;
background: none !important;
transform: none !important;
padding: 0 !important;
text-decoration: underline !important;
text-decoration-color: rgba(200,92,43,0.5) !important;
}
/* ============================================================
EDIT SECTION LINKS
============================================================ */
.mw-editsection { font-family: var(--font-nav) !important; font-size: 11px !important; letter-spacing: 0.07em !important; }
.mw-editsection a {
background: var(--ggb-orange) !important;
border: none !important;
border-radius: 3px !important;
box-shadow: none !important;
color: white !important;
font-family: var(--font-nav) !important;
font-size: 11px !important;
margin-left: 8px !important;
padding: 2px 8px !important;
text-decoration: none !important;
text-transform: uppercase !important;
transition: background var(--ggb-t) !important;
}
.mw-editsection a:hover {
background: var(--ggb-orange-dk) !important;
color: white !important;
transform: none !important;
text-decoration: none !important;
}
.mw-editsection-bracket { display: none !important; }
/* ============================================================
TABLE OF CONTENTS
============================================================ */
#toc, .toc {
background: var(--ggb-navy) !important;
border: none !important;
border-left: 4px solid var(--ggb-orange) !important;
border-radius: 0 8px 8px 0 !important;
box-shadow: var(--ggb-shadow) !important;
color: var(--ggb-fog) !important;
display: inline-block !important;
margin: 1.4em 1.5em 1.4em 0 !important;
min-width: 210px !important;
padding: 20px 26px !important;
}
#toctitle, .toc .toctitle, #toc .toctitle h2, .toc .toctitle h2 {
color: var(--ggb-orange) !important;
font-family: var(--font-nav) !important;
font-size: 9px !important;
font-weight: 600 !important;
letter-spacing: 0.22em !important;
margin-bottom: 14px !important;
text-transform: uppercase !important;
background: none !important;
border: none !important;
box-shadow: none !important;
padding: 0 !important;
display: block !important;
text-shadow: none !important;
}
.toc a, #toc a {
color: var(--ggb-cable) !important;
font-family: var(--font-nav) !important;
font-size: 11.5px !important;
letter-spacing: 0.03em !important;
text-decoration: none !important;
transition: color var(--ggb-t) !important;
background: none !important;
border: none !important;
border-radius: 0 !important;
padding: 0 !important;
box-shadow: none !important;
display: inline !important;
}
.toc a:hover, #toc a:hover { color: var(--ggb-orange-lt) !important; background: none !important; transform: none !important; }
.toc li, #toc li { margin: 5px 0 !important; }
.toc .tocnumber, #toc .tocnumber { color: var(--ggb-orange) !important; margin-right: 6px !important; }
.toc ul, #toc ul { margin-left: 16px !important; padding-left: 0 !important; list-style: none !important; }
/* ============================================================
WIKITABLES
============================================================ */
.wikitable, table.wikitable {
border: none !important;
border-collapse: separate !important;
border-radius: 10px !important;
border-spacing: 0 !important;
box-shadow: var(--ggb-shadow) !important;
font-family: var(--font-body) !important;
font-size: 0.95em !important;
margin-bottom: 1.5em !important;
overflow: hidden !important;
width: 100% !important;
background: white !important;
}
.wikitable > caption, table.wikitable > caption {
background: var(--ggb-navy) !important;
border-radius: 10px 10px 0 0 !important;
color: var(--ggb-orange) !important;
font-family: var(--font-nav) !important;
font-size: 10px !important;
font-weight: 600 !important;
letter-spacing: 0.18em !important;
padding: 12px 18px !important;
text-align: left !important;
text-transform: uppercase !important;
}
.wikitable th, table.wikitable th {
background: var(--ggb-navy-mid) !important;
border: none !important;
border-bottom: 2px solid var(--ggb-orange) !important;
color: var(--ggb-fog) !important;
font-family: var(--font-nav) !important;
font-size: 10px !important;
font-weight: 600 !important;
letter-spacing: 0.12em !important;
padding: 13px 18px !important;
text-align: left !important;
text-transform: uppercase !important;
}
.wikitable td, table.wikitable td {
background: white !important;
border: none !important;
border-bottom: 1px solid var(--ggb-fog-dark) !important;
color: var(--ggb-text) !important;
padding: 11px 18px !important;
transition: background var(--ggb-t) !important;
vertical-align: middle !important;
}
.wikitable tr:nth-child(even) td, table.wikitable tr:nth-child(even) td { background: var(--ggb-fog) !important; }
.wikitable tr:hover td, table.wikitable tr:hover td { background: rgba(200,92,43,0.06) !important; }
/* ============================================================
STANDARD INFOBOX
============================================================ */
.infobox, table.infobox {
background: white !important;
border: 1px solid var(--ggb-fog-dark) !important;
border-radius: 10px !important;
box-shadow: var(--ggb-shadow) !important;
float: right !important;
font-size: 0.88em !important;
margin: 0 0 1.5em 1.8em !important;
overflow: hidden !important;
width: 280px !important;
}
.infobox caption, table.infobox caption {
background: var(--ggb-navy) !important;
color: var(--ggb-fog) !important;
font-family: var(--font-display) !important;
font-size: 1.15em !important;
font-weight: 600 !important;
padding: 14px 16px !important;
}
.infobox th, table.infobox th {
background: var(--ggb-fog) !important;
border: none !important;
border-bottom: 1px solid var(--ggb-fog-dark) !important;
color: var(--ggb-text-mid) !important;
font-family: var(--font-nav) !important;
font-size: 9.5px !important;
font-weight: 600 !important;
letter-spacing: 0.1em !important;
padding: 9px 12px !important;
text-align: right !important;
text-transform: uppercase !important;
width: 42% !important;
}
.infobox td, table.infobox td {
border: none !important;
border-bottom: 1px solid var(--ggb-fog-dark) !important;
color: var(--ggb-text) !important;
font-family: var(--font-body) !important;
padding: 9px 12px !important;
background: white !important;
}
.infobox a, table.infobox a { color: var(--ggb-water) !important; }
.infobox a:hover, table.infobox a:hover { color: var(--ggb-orange) !important; background: none !important; }
/* ============================================================
PORTABLE INFOBOX — Colorverse, fully preserved
============================================================ */
.portable-infobox .pi-secondary-background {
background: linear-gradient(to bottom, #414141, #191919);
border: 4px solid #000;
}
.pi-border-color {
border-color: black;
border-width: 4px;
border-radius: 20px;
}
.portable-infobox .pi-image {
background: repeating-linear-gradient(-45deg,
rgba(0,0,0,0.2) 6%, rgba(0,0,0,0.2) 10%,
transparent 10%, transparent 15%);
background-color: rgba(0,0,0,0.2);
}
.portable-infobox .pi-title {
border-radius: 15px 15px 0 0;
border-width: 0 0 3px 0;
border-style: solid;
border-color: black;
color: white;
font-size: 25px !important;
font-family: Fredoka !important;
text-shadow: 2px 0 0 black, -2px 0 0 black, 0 2px 0 black, 0 -2px 0 black,
2px 2px 0 black, -2px -2px 0 black, -2px 2px 0 black, 2px -2px 0 black;
}
.portable-infobox .pi-header {
border-width: 3px 0 3px 0 !important;
border-style: solid !important;
border-color: black !important;
color: white;
font-size: 16px !important;
font-family: Fredoka !important;
text-shadow: 1px 0 0 black, -1px 0 0 black, 0 1px 0 black, 0 -1px 0 black,
1px 1px 0 black, -1px -1px 0 black, -1px 1px 0 black, 1px -1px 0 black;
}
.portable-infobox .pi-data-label {
font-size: 0.68rem !important;
padding: 1px 7px !important;
line-height: 1.3 !important;
border-radius: 20px !important;
background: var(--ggb-orange) !important;
color: white !important;
border: 1px solid var(--kc-black) !important;
display: inline-block !important;
font-family: var(--font-nav) !important;
}
.portable-infobox .pi-image img {
transition: none !important;
transform: none !important;
}
.portable-infobox .pi-image img:hover {
transform: none !important;
filter: none !important;
box-shadow: none !important;
}
/* ============================================================
BLOCKQUOTES
============================================================ */
.mw-body-content blockquote, blockquote {
background: rgba(200,92,43,0.05) !important;
border-left: 4px solid var(--ggb-orange) !important;
border-radius: 0 6px 6px 0 !important;
color: var(--ggb-text-mid) !important;
font-size: 1.05em !important;
font-style: italic !important;
margin: 1.6em 0 !important;
padding: 18px 24px !important;
box-shadow: none !important;
font-family: var(--font-body) !important;
border-top: none !important;
border-right: none !important;
border-bottom: none !important;
}
/* ============================================================
CODE / PRE
============================================================ */
.mw-body-content code, code, tt {
background: var(--ggb-navy) !important;
border: none !important;
border-radius: 4px !important;
color: var(--ggb-orange-lt) !important;
font-family: 'Fira Code', 'Courier New', monospace !important;
font-size: 0.85em !important;
padding: 2px 7px !important;
}
.mw-body-content pre, pre {
background: var(--ggb-navy) !important;
border: none !important;
border-left: 3px solid var(--ggb-orange) !important;
border-radius: 0 8px 8px 0 !important;
color: var(--ggb-fog) !important;
font-family: 'Fira Code', 'Courier New', monospace !important;
font-size: 0.84em !important;
line-height: 1.65 !important;
margin: 1.4em 0 !important;
overflow-x: auto !important;
padding: 18px 24px !important;
box-shadow: none !important;
}
/* ============================================================
HORIZONTAL RULE
============================================================ */
.mw-body-content hr {
border: none !important;
border-top: 1px solid var(--ggb-fog-dark) !important;
margin: 2.2em 0 !important;
position: relative !important;
}
.mw-body-content hr::after {
background: var(--ggb-orange) !important;
border-radius: 50% !important;
content: '' !important;
display: block !important;
height: 8px !important; width: 8px !important;
left: 50% !important;
margin-left: -4px !important;
margin-top: -4px !important;
position: absolute !important;
top: 0 !important;
}
/* ============================================================
IMAGES / THUMBNAILS
============================================================ */
.thumb { background: transparent !important; border: none !important; }
.thumb .thumbinner {
background: white !important;
border: none !important;
border-radius: 8px !important;
box-shadow: var(--ggb-shadow) !important;
overflow: hidden !important;
padding: 0 !important;
}
.thumb .thumbcaption {
background: var(--ggb-fog-mid) !important;
border-top: 1px solid var(--ggb-fog-dark) !important;
color: var(--ggb-text-light) !important;
font-family: var(--font-nav) !important;
font-size: 11px !important;
letter-spacing: 0.04em !important;
padding: 8px 12px !important;
}
/* ============================================================
CATEGORY LINKS
============================================================ */
#catlinks, .mw-normal-catlinks {
background: var(--ggb-fog-mid) !important;
border: none !important;
border-radius: 0 0 8px 8px !important;
border-top: 3px solid var(--ggb-orange) !important;
color: var(--ggb-text-light) !important;
font-family: var(--font-nav) !important;
font-size: 11.5px !important;
letter-spacing: 0.05em !important;
margin-top: 2.5em !important;
padding: 14px 22px !important;
box-shadow: none !important;
margin-bottom: 0 !important;
}
#catlinks a, .mw-normal-catlinks a {
color: var(--ggb-water) !important;
background: none !important;
border: none !important;
border-radius: 0 !important;
padding: 0 !important;
margin: 0 3px !important;
display: inline !important;
box-shadow: none !important;
font-size: inherit !important;
font-weight: normal !important;
text-decoration: none !important;
transition: color var(--ggb-t) !important;
}
#catlinks a:hover, .mw-normal-catlinks a:hover {
color: var(--ggb-orange) !important;
background: none !important;
transform: none !important;
}
/* ============================================================
DIFF PAGES
============================================================ */
table.diff { border-radius: 8px !important; overflow: hidden !important; }
td.diff-addedline, .diff-addedline { background: rgba(26,74,110,0.09) !important; border-left: 5px solid var(--ggb-water) !important; }
td.diff-deletedline, .diff-deletedline { background: rgba(200,92,43,0.09) !important; border-left: 5px solid var(--ggb-orange) !important; }
td.diff-marker { color: var(--ggb-orange) !important; font-weight: 600 !important; }
.diffchange { background: rgba(201,168,76,0.3) !important; color: var(--ggb-text) !important; font-weight: bold; }
/* ============================================================
ALERTS & MESSAGES
============================================================ */
.mw-message-box, .warningbox, .errorbox, .successbox {
border-radius: 8px !important;
border: none !important;
font-family: var(--font-nav) !important;
font-size: 13px !important;
letter-spacing: 0.03em !important;
padding: 14px 18px !important;
}
.warningbox { background: rgba(201,168,76,0.12) !important; border-left: 4px solid var(--ggb-gold) !important; }
.errorbox { background: rgba(200,92,43,0.1) !important; border-left: 4px solid var(--ggb-orange) !important; }
.successbox { background: rgba(26,74,110,0.08) !important; border-left: 4px solid var(--ggb-water) !important; }
/* ============================================================
TARGET HIGHLIGHT
============================================================ */
:target {
animation: ggbPulse 1.4s ease 0.2s !important;
border-radius: var(--ggb-radius) !important;
}
/* ============================================================
NOTIFICATIONS
============================================================ */
.mw-notification {
background: var(--ggb-navy) !important;
border: 1px solid rgba(200,92,43,0.4) !important;
border-radius: 8px !important;
border-left: 4px solid var(--ggb-orange) !important;
box-shadow: 0 8px 32px rgba(11,27,43,0.4) !important;
color: var(--ggb-fog) !important;
font-family: var(--font-nav) !important;
}
/* ============================================================
FOOTER — GGB with bridge silhouette
============================================================ */
#footer {
background: var(--ggb-navy) !important;
border-top: 3px solid var(--ggb-orange) !important;
color: var(--ggb-cable) !important;
font-family: var(--font-nav) !important;
font-size: 11px !important;
letter-spacing: 0.06em !important;
margin-left: 0 !important;
overflow: hidden !important;
padding: 0 32px 28px !important;
position: relative !important;
}
#footer::before {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 160'%3E%3Crect x='348' y='8' width='22' height='120' rx='4' fill='%23C85C2B' opacity='0.45'/%3E%3Crect x='348' y='8' width='6' height='120' rx='3' fill='%23C85C2B' opacity='0.3'/%3E%3Crect x='364' y='8' width='6' height='120' rx='3' fill='%23C85C2B' opacity='0.3'/%3E%3Crect x='828' y='8' width='22' height='120' rx='4' fill='%23C85C2B' opacity='0.45'/%3E%3Crect x='828' y='8' width='6' height='120' rx='3' fill='%23C85C2B' opacity='0.3'/%3E%3Crect x='844' y='8' width='6' height='120' rx='3' fill='%23C85C2B' opacity='0.3'/%3E%3Cpath d='M0 62 Q359 125 359 18 Q600 -12 839 18 Q839 125 1200 62' stroke='%23C85C2B' stroke-width='2.5' fill='none' opacity='0.5'/%3E%3Cline x1='200' y1='76' x2='200' y2='128' stroke='%23C85C2B' stroke-width='1' opacity='0.22'/%3E%3Cline x1='248' y1='55' x2='248' y2='128' stroke='%23C85C2B' stroke-width='1' opacity='0.22'/%3E%3Cline x1='296' y1='36' x2='296' y2='128' stroke='%23C85C2B' stroke-width='1' opacity='0.22'/%3E%3Cline x1='340' y1='22' x2='340' y2='128' stroke='%23C85C2B' stroke-width='1' opacity='0.22'/%3E%3Cline x1='410' y1='10' x2='410' y2='128' stroke='%23C85C2B' stroke-width='1' opacity='0.22'/%3E%3Cline x1='470' y1='4' x2='470' y2='128' stroke='%23C85C2B' stroke-width='1' opacity='0.22'/%3E%3Cline x1='530' y1='1' x2='530' y2='128' stroke='%23C85C2B' stroke-width='1' opacity='0.22'/%3E%3Cline x1='600' y1='0' x2='600' y2='128' stroke='%23C85C2B' stroke-width='1.2' opacity='0.28'/%3E%3Cline x1='670' y1='1' x2='670' y2='128' stroke='%23C85C2B' stroke-width='1' opacity='0.22'/%3E%3Cline x1='730' y1='4' x2='730' y2='128' stroke='%23C85C2B' stroke-width='1' opacity='0.22'/%3E%3Cline x1='790' y1='10' x2='790' y2='128' stroke='%23C85C2B' stroke-width='1' opacity='0.22'/%3E%3Cline x1='860' y1='22' x2='860' y2='128' stroke='%23C85C2B' stroke-width='1' opacity='0.22'/%3E%3Cline x1='904' y1='36' x2='904' y2='128' stroke='%23C85C2B' stroke-width='1' opacity='0.22'/%3E%3Cline x1='952' y1='55' x2='952' y2='128' stroke='%23C85C2B' stroke-width='1' opacity='0.22'/%3E%3Cline x1='1000' y1='76' x2='1000' y2='128' stroke='%23C85C2B' stroke-width='1' opacity='0.22'/%3E%3Crect y='128' width='1200' height='10' rx='2' fill='%23C85C2B' opacity='0.4'/%3E%3Crect y='138' width='1200' height='22' fill='%231A4A6E' opacity='0.3'/%3E%3C/svg%3E") !important;
background-position: center top !important;
background-repeat: no-repeat !important;
background-size: 100% auto !important;
content: '' !important;
height: 160px !important;
left: 0 !important;
pointer-events: none !important;
position: absolute !important;
right: 0 !important;
top: 0 !important;
}
#footer-info, #footer-places, #footer-icons {
margin-top: 170px !important;
position: relative !important;
z-index: 1 !important;
}
#footer li { color: var(--ggb-cable) !important; }
#footer a { color: rgba(138,155,176,0.85) !important; text-decoration: none !important; transition: color var(--ggb-t) !important; }
#footer a:hover { color: var(--ggb-orange-lt) !important; }
/* ============================================================
JS-INJECTED ELEMENTS
============================================================ */
/* GGB: reading progress bar */
#ggb-progress {
background: linear-gradient(90deg, var(--ggb-orange-dk) 0%, var(--ggb-orange) 50%, var(--ggb-gold) 100%) !important;
box-shadow: 0 0 10px rgba(200,92,43,0.5) !important;
height: 3px !important;
left: 0 !important; top: 0 !important;
position: fixed !important;
transition: width 0.12s linear !important;
width: 0% !important;
z-index: 9999 !important;
}
/* GGB: back-to-top button */
#ggb-top-btn {
align-items: center !important;
background: var(--ggb-orange) !important;
border: none !important;
border-radius: 50% !important;
bottom: 30px !important; right: 28px !important;
box-shadow: 0 4px 18px rgba(200,92,43,0.45) !important;
color: white !important;
cursor: pointer !important;
display: flex !important;
font-family: var(--font-nav) !important;
font-size: 20px !important;
height: 44px !important; width: 44px !important;
justify-content: center !important;
line-height: 1 !important;
opacity: 0 !important;
position: fixed !important;
transform: translateY(10px) !important;
transition: opacity 0.3s ease, transform 0.3s ease, background 0.2s ease !important;
z-index: 9990 !important;
}
#ggb-top-btn.visible { opacity: 1 !important; transform: translateY(0) !important; }
#ggb-top-btn:hover { background: var(--ggb-orange-dk) !important; }
/* Colorverse: sparkle effect */
.kc-sparkle {
position: fixed;
pointer-events: none;
z-index: 9999;
font-size: 1.1rem;
animation: kc-sparkle-fade 0.7s ease-out forwards;
user-select: none;
}
#kc-confetti-canvas {
position: fixed;
top: 0; left: 0;
width: 100%; height: 100%;
pointer-events: none;
z-index: 9998;
}
/* GGB: scroll reveal */
.ggb-reveal { opacity: 0; transform: translateY(22px); transition: opacity 0.65s ease, transform 0.65s ease; }
.ggb-reveal.ggb-in { opacity: 1; transform: translateY(0); }
.ggb-reveal.ggb-in-delay { transition-delay: 0.1s; }
/* ============================================================
SCROLLBAR — GGB
============================================================ */
::-webkit-scrollbar { height: 7px; width: 7px; }
::-webkit-scrollbar-track { background: var(--ggb-fog-dark); }
::-webkit-scrollbar-thumb { background: var(--ggb-cable); border-radius: 4px; border: none; }
::-webkit-scrollbar-thumb:hover { background: var(--ggb-orange); }
::-webkit-scrollbar-corner { background: var(--ggb-fog); }
/* ============================================================
TEXT SELECTION
============================================================ */
::selection {
background: rgba(200,92,43,0.22) !important;
color: var(--ggb-navy) !important;
}
/* ============================================================
GRADIENT TEXT FIX (Colorverse {{Gradient}} template)
============================================================ */
.mwgt {
-webkit-text-stroke: 0 transparent !important;
text-stroke: 0 transparent !important;
paint-order: fill !important;
}
/* ============================================================
DROPDOWN MENU TEMPLATE — restyled for GGB palette
============================================================ */
.mw-dropdown-item-inner { display: flex; align-items: center; gap: 6px; }
.mw-dropdown { position: relative; display: inline-block; margin: 2px 1px; }
.mw-dropdown-toggle {
background: var(--ggb-fog-mid);
border: 1px solid var(--ggb-fog-dark);
border-radius: var(--ggb-radius);
padding: 5px 28px 5px 10px;
font-size: 12px;
font-family: var(--font-nav);
letter-spacing: 0.05em;
cursor: pointer;
color: var(--ggb-text-mid);
position: relative;
white-space: nowrap;
-webkit-user-select: none;
user-select: none;
transition: background var(--ggb-t), border-color var(--ggb-t);
}
.mw-dropdown-toggle::after {
content: '';
display: inline-block;
width: 0; height: 0;
border-left: 4px solid transparent;
border-right: 4px solid transparent;
border-top: 5px solid var(--ggb-text-mid);
position: absolute;
right: 10px; top: 50%;
transform: translateY(-50%);
}
.mw-dropdown:hover .mw-dropdown-toggle { background: var(--ggb-fog-dark); border-color: var(--ggb-cable); }
.mw-dropdown-content {
display: none;
position: absolute;
top: 100%; left: 0;
z-index: 100;
background: var(--ggb-fog);
border: 1px solid var(--ggb-fog-dark);
border-radius: var(--ggb-radius);
min-width: 180px;
box-shadow: var(--ggb-shadow);
padding: 4px 0;
max-height: 60vh;
overflow-y: auto;
}
.mw-dropdown:hover .mw-dropdown-content,
.mw-dropdown.open .mw-dropdown-content { display: block !important; }
.mw-dropdown-content a {
display: block;
padding: 6px 14px;
font-size: 12px;
font-family: var(--font-nav);
letter-spacing: 0.04em;
color: var(--ggb-water) !important;
text-decoration: none;
white-space: nowrap;
transition: background var(--ggb-t), color var(--ggb-t);
}
.mw-dropdown-content a:hover { background: rgba(200,92,43,0.08); color: var(--ggb-orange) !important; }
.mw-dropdown-divider { height: 1px; background: var(--ggb-fog-dark); margin: 4px 0; }
.mw-dropdown-header {
display: block;
padding: 5px 14px 3px;
font-size: 9px;
font-family: var(--font-nav);
text-transform: uppercase;
letter-spacing: 0.15em;
color: var(--ggb-orange);
pointer-events: none;
}
.mw-dropdown-right .mw-dropdown-content { left: auto; right: 0; }
.mw-dropdown-toolbar .mw-dropdown-toggle { background: transparent; border-color: transparent; }
.mw-dropdown-toolbar:hover .mw-dropdown-toggle { background: var(--ggb-fog-mid); border-color: var(--ggb-fog-dark); }
.mw-dropdown.open .mw-dropdown-content { display: block; }
.mw-dropdown.open .mw-dropdown-toggle { background: var(--ggb-fog-dark); border-color: var(--ggb-cable); }
/* ============================================================
PORTAL BUTTON GRID — restyled for GGB palette
============================================================ */
.portal-grid { display: grid; gap: 16px; margin: 1rem 0 1.5rem; }
.portal-grid > p { display: contents; }
.portal-grid-cols-1 { grid-template-columns: repeat(1, 1fr); }
.portal-grid-cols-2 { grid-template-columns: repeat(2, 1fr); }
.portal-grid-cols-3 { grid-template-columns: repeat(3, 1fr); }
.portal-grid-cols-4 { grid-template-columns: repeat(4, 1fr); }
.portal-grid-cols-5 { grid-template-columns: repeat(5, 1fr); }
.portal-grid-cols-6 { grid-template-columns: repeat(6, 1fr); }
.portal-grid:not([class*="portal-grid-cols"]) { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) {
.portal-grid,
.portal-grid-cols-3,
.portal-grid-cols-4,
.portal-grid-cols-5,
.portal-grid-cols-6 { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 540px) {
.portal-grid { grid-template-columns: 1fr !important; }
}
.portal-grid-heading {
font-family: var(--font-display);
font-size: 1.4rem;
font-weight: 600;
color: var(--ggb-fog);
background: var(--ggb-navy);
border-left: 4px solid var(--ggb-orange);
padding: 0.3em 0.8em;
margin-bottom: 0.75rem;
display: inline-block;
border-radius: 0 var(--ggb-radius) var(--ggb-radius) 0;
}
.portal-btn-wrap { display: contents; }
.portal-grid > p > .portal-btn-wrap, .portal-grid .portal-btn-wrap { display: contents; }
div.portal-btn {
display: flex;
flex-direction: column;
align-items: stretch;
background: white;
border: 1px solid var(--ggb-fog-dark);
border-radius: 10px;
box-shadow: var(--ggb-shadow);
overflow: hidden;
transition: transform var(--ggb-t), box-shadow var(--ggb-t);
position: relative;
cursor: pointer;
}
div.portal-btn:hover { transform: translateY(-5px); box-shadow: 0 8px 30px rgba(11,27,43,0.18); }
div.portal-btn:active { transform: translateY(0); }
.portal-btn-stretched-link { position: absolute; inset: 0; z-index: 1; display: block; }
div.portal-btn a,
div.portal-btn a:hover {
text-decoration: none !important;
background: none !important;
color: inherit !important;
transform: none !important;
padding: 0 !important;
border-radius: 0 !important;
}
.portal-btn-top {
height: 4px;
background: linear-gradient(90deg, var(--ggb-orange), var(--ggb-gold));
flex-shrink: 0;
}
.portal-btn-img {
width: 100%;
aspect-ratio: 16 / 9;
overflow: hidden;
background: var(--ggb-fog-mid);
display: flex;
align-items: center;
justify-content: center;
border-bottom: 1px solid var(--ggb-fog-dark);
flex-shrink: 0;
}
.portal-btn-img img {
width: 100% !important; height: 100% !important;
object-fit: cover !important; display: block !important;
transition: transform 0.3s ease;
}
div.portal-btn:hover .portal-btn-img img { transform: scale(1.05); }
.portal-btn-img:empty::after { content: '🖼️'; font-size: 2.5rem; opacity: 0.3; }
.portal-btn-body { padding: 10px 14px 30px; flex: 1; display: flex; flex-direction: column; gap: 4px; }
.portal-btn-title {
font-family: var(--font-display);
font-size: 1.05rem;
font-weight: 600;
color: var(--ggb-navy);
line-height: 1.2;
display: flex;
align-items: center;
}
.portal-btn-dot {
display: inline-block;
width: 8px; height: 8px; min-width: 8px;
background: var(--ggb-orange);
border-radius: 50%;
margin-right: 6px;
}
.portal-btn-desc { font-family: var(--font-body); font-size: 0.85rem; color: var(--ggb-text-light); line-height: 1.4; margin-top: 2px; }
.portal-btn-arrow {
position: absolute;
bottom: 10px; right: 12px;
font-family: var(--font-nav);
font-size: 0.9rem;
color: var(--ggb-orange);
border: 1.5px solid var(--ggb-fog-dark);
border-radius: 50%;
width: 24px; height: 24px;
display: flex;
align-items: center;
justify-content: center;
transition: transform var(--ggb-t), border-color var(--ggb-t);
line-height: 1;
z-index: 0;
}
div.portal-btn:hover .portal-btn-arrow { transform: translateX(3px); border-color: var(--ggb-orange); }
/* ============================================================
PAGE COLOR SYSTEM (Colorverse {{PageColor}} template)
============================================================ */
body.has-page-color #content,
body.has-page-color .mw-body {
background-color: var(--kc-page-bg) !important;
}
body.has-page-color #mw-content,
body.has-page-color #mw-content-wrapper,
body.has-page-color #mw-content-block,
body.has-page-color #mw-content-container,
body.has-page-color #mw-wrapper {
background: var(--kc-page-bg) !important;
}
body.has-page-color #mw-content-text a { color: var(--kc-page-links) !important; }
body.has-page-color #firstHeading,
body.has-page-color .firstHeading,
body.has-page-color .mw-first-heading { background-color: var(--kc-page-h1) !important; color: var(--kc-page-h1text) !important; }
body.has-page-color .mw-body-content h2,
body.has-page-color .mw-heading2 > h2 { background-color: var(--kc-page-h2) !important; }
body.has-page-color .mw-body-content h3,
body.has-page-color .mw-heading3 > h3 { background-color: var(--kc-page-h3) !important; }
body.has-page-color #content,
body.has-page-color .mw-body { border-color: var(--kc-page-border) !important; box-shadow: 4px 4px 0 var(--kc-page-shadow) !important; }
body.has-page-color #toc,
body.has-page-color .toc { background-color: var(--kc-page-toc) !important; }
body.has-page-color #catlinks { background-color: var(--kc-page-cats) !important; }
body.has-page-color #bodyContent a { color: var(--kc-page-links, var(--ggb-water)) !important; }
body.has-page-color #bodyContent a:hover { background: var(--kc-page-links, var(--ggb-water)) !important; color: #fff !important; }
body.has-page-color h1,
body.has-page-color .mw-first-heading,
body.has-page-color #firstHeading { background: var(--kc-page-h1) !important; color: var(--kc-page-h1text) !important; border-color: var(--kc-page-border) !important; box-shadow: 5px 5px 0 var(--kc-page-shadow) !important; }
body.has-page-color h2 { background: var(--kc-page-h2) !important; border-color: var(--kc-page-border) !important; }
body.has-page-color h3 { background: var(--kc-page-h3) !important; border-color: var(--kc-page-border) !important; }
body.has-page-color h4 { color: var(--kc-page-h2) !important; border-bottom-color: var(--kc-page-h2) !important; }
body.has-page-color #toc,
body.has-page-color .toc { background: var(--kc-page-toc) !important; border-color: var(--kc-page-border) !important; }
body.has-page-color #catlinks,
body.has-page-color .mw-normal-catlinks { background: var(--kc-page-cats) !important; border-color: var(--kc-page-border) !important; }
body.has-page-color .wikitable th { background: var(--kc-page-h2) !important; border-color: var(--kc-page-border) !important; }
body.has-page-color .wikitable td { border-color: var(--kc-page-border) !important; }
body.has-page-color .mw-editsection a { background: var(--kc-page-toc) !important; border-color: var(--kc-page-border) !important; }
body.has-page-color blockquote { border-left-color: var(--kc-page-links, var(--ggb-orange)) !important; }
body.has-page-color ::selection { background: var(--kc-page-toc) !important; }
/* ============================================================
BLINKIE SYSTEM — restyled for GGB palette
============================================================ */
.blinkie-wrap {
display: inline-block;
line-height: 0;
vertical-align: middle;
transition: transform 0.15s, filter 0.15s;
cursor: default;
}
.blinkie-wrap:hover {
transform: scale(1.12) rotate(-2deg);
filter: brightness(1.15) drop-shadow(0 0 6px rgba(200,92,43,0.5));
z-index: 2;
position: relative;
}
.blinkie-wrap img, .blinkie-wrap a img {
max-width: 100% !important;
height: auto !important;
object-fit: contain !important;
display: block !important;
image-rendering: pixelated;
image-rendering: -moz-crisp-edges;
border: none !important;
outline: none !important;
}
.blinkie-box {
font-family: var(--font-nav);
background: var(--ggb-navy);
border: 1px solid var(--ggb-navy-light);
border-radius: 8px;
padding: 6px 8px 8px;
box-shadow: var(--ggb-shadow), 0 0 0 1px var(--ggb-orange);
box-sizing: border-box;
overflow: hidden;
}
.blinkie-box-title {
font-family: var(--font-nav);
font-size: 0.62rem;
color: var(--ggb-orange);
text-align: center;
text-transform: uppercase;
letter-spacing: 0.15em;
padding: 0 0 5px;
border-bottom: 1px solid rgba(200,92,43,0.35);
margin-bottom: 6px;
user-select: none;
}
.blinkie-box-inner { display: grid; gap: 4px; align-items: center; justify-items: center; }
.blinkie-pos-inline { display: inline-block; vertical-align: top; margin: 0.5rem 0; }
.blinkie-pos-bottom-right,
.blinkie-pos-bottom-left,
.blinkie-pos-top-right,
.blinkie-pos-top-left {
position: fixed;
z-index: 5000;
max-width: 200px;
cursor: grab;
transition: box-shadow 0.15s;
animation: blinkie-border-cycle 3s linear infinite;
outline: 2px solid var(--ggb-orange);
outline-offset: 2px;
}
.blinkie-pos-bottom-right .blinkie-box-inner,
.blinkie-pos-bottom-left .blinkie-box-inner,
.blinkie-pos-top-right .blinkie-box-inner,
.blinkie-pos-top-left .blinkie-box-inner { grid-template-columns: repeat(2, auto); }
.blinkie-pos-bottom-right:active,
.blinkie-pos-bottom-left:active,
.blinkie-pos-top-right:active,
.blinkie-pos-top-left:active { cursor: grabbing; }
.blinkie-pos-bottom-right { bottom: 14px; right: 14px; }
.blinkie-pos-bottom-left { bottom: 14px; left: 14px; }
.blinkie-pos-top-right { top: 14px; right: 14px; }
.blinkie-pos-top-left { top: 14px; left: 14px; }
.blinkie-minimize-btn {
display: block; width: 100%;
background: none; border: none;
border-bottom: 1px solid rgba(200,92,43,0.35);
color: var(--ggb-orange);
font-family: var(--font-nav);
font-size: 0.6rem;
text-transform: uppercase; letter-spacing: 0.1em;
padding: 2px 0 5px; margin-bottom: 6px;
cursor: pointer; text-align: center;
transition: color var(--ggb-t);
}
.blinkie-minimize-btn:hover { color: var(--ggb-fog); }
.blinkie-box.blinkie-minimized .blinkie-box-inner { display: none; }
.blinkie-box.blinkie-minimized { padding-bottom: 4px; }
@media (max-width: 600px) {
.blinkie-pos-bottom-right,
.blinkie-pos-bottom-left,
.blinkie-pos-top-right,
.blinkie-pos-top-left { display: none; }
}
/* ============================================================
CARD LAYOUT (.square / .container)
============================================================ */
.page-wrapper { max-width: 1200px; margin: 0 auto; }
.container {
display: flex; flex-direction: row; flex-wrap: wrap;
gap: 20px; padding: 20px; justify-content: center;
}
.square {
width: 160px; height: auto; min-height: 320px;
border: 1px solid var(--ggb-fog-dark) !important;
border-radius: 10px !important;
padding: 0; text-align: center;
background: var(--ggb-navy);
transition: transform var(--ggb-t), box-shadow var(--ggb-t);
box-sizing: border-box;
display: flex; flex-direction: column; overflow: hidden;
box-shadow: var(--ggb-shadow) !important;
}
.square:hover { transform: translateY(-6px) !important; box-shadow: 0 12px 32px rgba(11,27,43,0.22) !important; }
.square .image-wrapper { width: 160px; height: auto; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.square .image-wrapper img { width: 160px !important; height: auto !important; max-width: 160px !important; object-fit: contain; display: block; }
.square hr { margin: 10px 15px; border-color: rgba(138,155,176,0.2); }
.square p { margin: 5px 15px; font-weight: 600; font-size: 14px; font-family: var(--font-display) !important; color: var(--ggb-fog); }
.square .placeholder {
font-family: var(--font-nav) !important;
font-weight: normal; color: var(--ggb-cable);
font-size: 11px; margin: 5px 15px 15px 15px;
opacity: 0; transition: opacity 0.3s ease;
letter-spacing: 0.06em; text-transform: uppercase;
}
.square:hover .placeholder { opacity: 1; }
/* ============================================================
UTILITY CLASSES — restyled for GGB
============================================================ */
.kc-tag {
display: inline-block;
background: var(--ggb-orange);
color: white;
font-family: var(--font-nav);
font-size: 0.72rem;
font-weight: 600;
letter-spacing: 0.08em;
text-transform: uppercase;
border-radius: 3px;
padding: 2px 10px;
margin: 2px;
border: none;
box-shadow: none;
}
.kc-tag-blue { background: var(--ggb-water) !important; }
.kc-tag-green { background: #2A7A3A !important; }
.kc-tag-yellow { background: var(--ggb-gold) !important; color: var(--ggb-navy) !important; }
.kc-callout {
background: rgba(200,92,43,0.06);
border: 1px solid var(--ggb-orange);
border-left: 4px solid var(--ggb-orange);
border-radius: 0 var(--ggb-radius) var(--ggb-radius) 0;
padding: 0.8em 1.2em;
font-family: var(--font-body);
margin: 1rem 0;
position: relative;
box-shadow: none;
}
.kc-callout::before {
content: '◆';
position: absolute;
top: -11px; left: 12px;
font-size: 0.9rem;
color: var(--ggb-orange);
line-height: 1;
}
.kc-callout-red { background: rgba(200,92,43,0.08) !important; border-color: var(--ggb-orange-dk) !important; }
.kc-callout-blue { background: rgba(26,74,110,0.08) !important; border-color: var(--ggb-water) !important; }
.kc-callout-green { background: rgba(42,122,58,0.08) !important; border-color: #2A7A3A !important; }
/* ============================================================
RESPONSIVE
============================================================ */
@media screen and (max-width: 800px) {
#content, .mw-body {
border-radius: 0 !important;
margin: 0 !important;
padding: 20px 18px 36px !important;
}
#firstHeading, .mw-first-heading { font-size: 2.1em !important; }
table.wikitable, .infobox, table.infobox { font-size: 0.85em !important; }
#ggb-top-btn { bottom: 18px !important; right: 14px !important; }
}