MediaWiki:Common.css: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| (6 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
/********************************* | /********************************* | ||
* 70s | * Psychedelic 70s Frame + White Text | ||
*********************************/ | *********************************/ | ||
:root { | :root { | ||
-- | --psy70-bg: #050009; | ||
-- | --psy70-color-a: #ff9a00; | ||
-- | --psy70-color-b: #ff005c; | ||
-- | --psy70-color-c: #7b5cff; | ||
-- | --psy70-color-d: #00f0ff; | ||
} | } | ||
/* | /* Enable from Common.js */ | ||
body. | body.psy70 { | ||
background: var(-- | background: var(--psy70-bg); | ||
color: # | color: #ffffff; | ||
overflow-x: hidden; | overflow-x: hidden; | ||
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; | |||
} | } | ||
/* MAIN CONTENT: | /* ===== MAIN CONTENT: DARK CARD, WHITE TEXT ===== */ | ||
body. | |||
body. | body.psy70 #content, | ||
background: rgba(8, | body.psy70 .mw-body, | ||
color: # | body.psy70 .mw-content-container, | ||
border-radius: | body.psy70 .vector-body { | ||
background: rgba(8, 8, 20, 0.96); | |||
color: #ffffff; | |||
border-radius: 12px; | |||
box-shadow: | box-shadow: | ||
0 0 0 1px rgba(255, 255, 255, 0.03), | 0 0 0 1px rgba(255, 255, 255, 0.03), | ||
0 | 0 20px 60px rgba(0, 0, 0, 0.9); | ||
} | } | ||
/* | /* Core text containers */ | ||
body. | body.psy70 #mw-content-text, | ||
body.psy70 .mw-parser-output { | |||
body. | color: #ffffff !important; | ||
color: # | |||
} | } | ||
/* | /* Paragraphs, lists, tables text, etc. */ | ||
body. | body.psy70 #mw-content-text p, | ||
color: # | body.psy70 #mw-content-text li, | ||
body.psy70 #mw-content-text td, | |||
body.psy70 #mw-content-text th, | |||
body.psy70 #mw-content-text dd, | |||
body.psy70 #mw-content-text dt { | |||
color: #ffffff !important; | |||
} | } | ||
body. | /* Headings */ | ||
color: # | body.psy70 #mw-content-text h1, | ||
body.psy70 #mw-content-text h2, | |||
body.psy70 #mw-content-text h3, | |||
body.psy70 #mw-content-text h4, | |||
body.psy70 #mw-content-text h5 { | |||
color: #ffffff !important; | |||
} | } | ||
body. | /* Links – bright and clear */ | ||
color: # | body.psy70 #mw-content-text a { | ||
color: #4fd3ff !important; | |||
text-decoration-color: rgba(79, 211, 255, 0.8); | |||
} | |||
body.psy70 #mw-content-text a:visited { | |||
color: #ff80e0 !important; | |||
} | |||
body.psy70 #mw-content-text a:hover { | |||
color: #a4ffea !important; | |||
} | } | ||
/* Tables | /* Tables / infoboxes: slightly lighter card, white text */ | ||
body. | body.psy70 .wikitable, | ||
body. | body.psy70 table { | ||
background-color: | background-color: #111126 !important; | ||
border-color: rgba(255, 255, 255, 0. | color: #ffffff !important; | ||
border-color: rgba(255, 255, 255, 0.2) !important; | |||
} | } | ||
body.psy70 .wikitable th, | |||
body. | body.psy70 .wikitable td { | ||
body. | border-color: rgba(255, 255, 255, 0.2) !important; | ||
border-color: rgba(255, 255, 255, 0. | color: #ffffff !important; | ||
} | } | ||
/* Keep header | /* Keep header base transparent so frame shows */ | ||
body. | body.psy70 #mw-page-base, | ||
body. | body.psy70 #mw-head-base { | ||
background: transparent; | background: transparent; | ||
} | } | ||
/* | /* ===== PSYCHEDELIC FRAME AROUND EVERYTHING ===== */ | ||
body. | |||
/* Big rotating conic / radial frame */ | |||
body.psy70::before { | |||
content: ""; | content: ""; | ||
position: fixed; | position: fixed; | ||
inset: | inset: 0; | ||
z-index: - | z-index: -2; | ||
pointer-events: none; | pointer-events: none; | ||
background: | background: | ||
radial-gradient(circle at | radial-gradient(circle at 0% 0%, rgba(0, 0, 0, 0.85), transparent 55%), | ||
radial-gradient(circle at 100% 0%, rgba(0, 0, 0, 0.85), transparent 55%), | |||
radial-gradient(circle at 0% 100%, rgba(0, 0, 0, 0.85), transparent 55%), | |||
radial-gradient(circle at 100% 100%, rgba(0, 0, 0, 0.85), transparent 55%), | |||
conic-gradient( | conic-gradient( | ||
from 0deg, | from 0deg, | ||
var(-- | var(--psy70-color-a) 0deg, | ||
var(-- | var(--psy70-color-b) 90deg, | ||
var(-- | var(--psy70-color-c) 180deg, | ||
var(-- | var(--psy70-color-d) 270deg, | ||
var(--psy70-color-a) 360deg | |||
var(-- | |||
); | ); | ||
mix-blend-mode: screen; | mix-blend-mode: screen; | ||
animation: | opacity: 0.45; | ||
filter: blur(3px) saturate(1.1); | |||
animation: psy70-frame-spin 90s linear infinite; | |||
} | } | ||
/* | /* Subtle horizontal color bands underneath */ | ||
body. | body.psy70::after { | ||
content: ""; | content: ""; | ||
position: fixed; | position: fixed; | ||
inset: | inset: 0; | ||
z-index: - | z-index: -3; | ||
pointer-events: none; | pointer-events: none; | ||
| Line 109: | Line 130: | ||
linear-gradient( | linear-gradient( | ||
0deg, | 0deg, | ||
rgba(0, 0, 0, 0. | rgba(0, 0, 0, 0.96), | ||
rgba(0, 0, 0, 0. | rgba(0, 0, 0, 0.75), | ||
rgba(0, 0, 0, 0. | rgba(0, 0, 0, 0.96) | ||
), | ), | ||
repeating-linear-gradient( | repeating-linear-gradient( | ||
0deg, | 0deg, | ||
var(-- | var(--psy70-color-a) 0, | ||
var(-- | var(--psy70-color-a) 10px, | ||
var(-- | var(--psy70-color-b) 10px, | ||
var(-- | var(--psy70-color-b) 20px, | ||
var(-- | var(--psy70-color-c) 20px, | ||
var(-- | var(--psy70-color-c) 30px, | ||
var(-- | var(--psy70-color-d) 30px, | ||
var(-- | var(--psy70-color-d) 40px | ||
); | ); | ||
background-size: 100% 100%, 100% 260%; | background-size: 100% 100%, 100% 260%; | ||
mix-blend-mode: screen; | mix-blend-mode: screen; | ||
animation: | opacity: 0.22; | ||
animation: psy70-bands-shift 60s ease-in-out infinite alternate; | |||
} | |||
opacity: 0. | |||
/* Grain overlay for analog texture */ | |||
body.psy70 #psy70-grain { | |||
pointer-events: none; | |||
position: fixed; | |||
inset: 0; | |||
z-index: -1; | |||
opacity: 0.09; | |||
mix-blend-mode: soft-light; | |||
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.9'/%3E%3C/svg%3E"); | |||
background-size: 160px 160px; | |||
} | } | ||
/* | /* When toggled off: remove frame, keep dark base and white text */ | ||
body. | body.psy70.psy70-off::before, | ||
body. | body.psy70.psy70-off::after, | ||
body. | body.psy70.psy70-off #psy70-grain { | ||
opacity: 0; | opacity: 0; | ||
transition: opacity 0. | transition: opacity 0.5s ease-out; | ||
} | } | ||
body.psy70.psy70-off { | |||
body. | |||
background: #050009; | background: #050009; | ||
} | } | ||
/* | /* Animations */ | ||
@keyframes | @keyframes psy70-frame-spin { | ||
0% { | 0% { transform: rotate(0deg) scale(1.02); } | ||
100% { transform: rotate(360deg) scale(1.02); } | |||
100% { | |||
} | } | ||
@keyframes psy70-bands-shift { | |||
@keyframes | 0% { background-position: 0 0, 0 0; } | ||
0% { | 100% { background-position: 0 0, 0 -200%; } | ||
100% { | |||
} | } | ||
/* Toggle button */ | /* Toggle button */ | ||
# | #psy70-toggle { | ||
position: fixed; | position: fixed; | ||
right: 1.4rem; | right: 1.4rem; | ||
| Line 206: | Line 195: | ||
padding: 0.35rem 0.9rem; | padding: 0.35rem 0.9rem; | ||
border-radius: 999px; | border-radius: 999px; | ||
border: 1px solid rgba(255, 255, 255, 0. | border: 1px solid rgba(255, 255, 255, 0.25); | ||
cursor: pointer; | cursor: pointer; | ||
| Line 220: | Line 209: | ||
0 0 20px rgba(255, 0, 150, 0.35); | 0 0 20px rgba(255, 0, 150, 0.35); | ||
backdrop-filter: blur(5px); | backdrop-filter: blur(5px); | ||
} | } | ||
# | #psy70-toggle:hover { | ||
transform: translateY(-1px); | transform: translateY(-1px); | ||
box-shadow: | box-shadow: | ||
0 0 0 1px rgba(0, 0, 0, 0.9), | 0 0 0 1px rgba(0, 0, 0, 0.9), | ||
0 0 28px rgba(0, 240, 255, 0.55); | 0 0 28px rgba(0, 240, 255, 0.55); | ||
} | |||
/*********************************************** | |||
* Fix: Tabs + TOC colors for psy70 theme | |||
***********************************************/ | |||
/* --- Page action tabs: Edit / Talk / View history, etc. --- */ | |||
/* Container (works for Vector 2022 and legacy Vector) */ | |||
body.psy70 .vector-menu-tabs, | |||
body.psy70 .vectorTabs { | |||
background: transparent !important; | |||
border: none !important; | |||
} | |||
/* Individual tabs */ | |||
body.psy70 .vector-menu-tabs .vector-menu-content-list > li, | |||
body.psy70 .vectorTabs li { | |||
background: rgba(8, 8, 20, 0.96) !important; | |||
border-radius: 999px 999px 0 0; | |||
margin-right: 4px; | |||
border: 1px solid rgba(255, 255, 255, 0.18) !important; | |||
border-bottom: none !important; | |||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.6); | |||
} | |||
/* Tab links */ | |||
body.psy70 .vector-menu-tabs .vector-menu-content-list > li > a, | |||
body.psy70 .vectorTabs li > a { | |||
display: inline-block; | |||
padding: 0.3em 0.9em; | |||
color: #ffffff !important; | |||
text-decoration: none; | |||
font-weight: 500; | |||
} | |||
/* Active/selected tab (the current view) */ | |||
body.psy70 .vector-menu-tabs .vector-menu-content-list > li.selected, | |||
body.psy70 .vectorTabs li.selected { | |||
background: linear-gradient( | |||
135deg, | |||
var(--psy70-color-a), | |||
var(--psy70-color-c) | |||
) !important; | |||
border-color: rgba(255, 255, 255, 0.6) !important; | |||
} | |||
/* Active tab text */ | |||
body.psy70 .vector-menu-tabs .vector-menu-content-list > li.selected > a, | |||
body.psy70 .vectorTabs li.selected > a { | |||
color: #050009 !important; | |||
text-shadow: 0 0 4px rgba(255, 255, 255, 0.4); | |||
} | |||
/* Hover state */ | |||
body.psy70 .vector-menu-tabs .vector-menu-content-list > li:not(.selected):hover, | |||
body.psy70 .vectorTabs li:not(.selected):hover { | |||
border-color: rgba(255, 255, 255, 0.4) !important; | |||
background: rgba(18, 18, 40, 1) !important; | |||
} | |||
/* --- TOC / section selection box --- */ | |||
body.psy70 #toc, | |||
body.psy70 .toc { | |||
background: rgba(8, 8, 20, 0.96) !important; | |||
color: #ffffff !important; | |||
border-radius: 10px; | |||
border: 1px solid rgba(255, 255, 255, 0.22) !important; | |||
box-shadow: 0 12px 32px rgba(0, 0, 0, 0.8); | |||
} | |||
/* TOC heading */ | |||
body.psy70 #toc .toctitle, | |||
body.psy70 .toc .toctitle { | |||
color: #ffffff !important; | |||
} | |||
/* TOC links */ | |||
body.psy70 #toc a, | |||
body.psy70 .toc a { | |||
color: #4fd3ff !important; | |||
} | |||
body.psy70 #toc a:hover, | |||
body.psy70 .toc a:hover { | |||
color: #a4ffea !important; | |||
} | |||
/* TOC numbers and list items */ | |||
body.psy70 #toc ul, | |||
body.psy70 #toc li, | |||
body.psy70 .toc ul, | |||
body.psy70 .toc li { | |||
color: #ffffff !important; | |||
} | |||
/*********************************************** | |||
* Psy70 – Login / account button styling | |||
***********************************************/ | |||
/* Personal tools login / create account (top-right area) */ | |||
body.psy70 #pt-login a, | |||
body.psy70 #pt-anonlogin a, | |||
body.psy70 #pt-createaccount a { | |||
background: linear-gradient(135deg, #ffd7ff, #ffffff) !important; | |||
color: #2a0035 !important; | |||
border-radius: 999px; | |||
padding: 0.25em 0.9em; | |||
border: 1px solid rgba(255, 255, 255, 0.8) !important; | |||
box-shadow: 0 0 12px rgba(0, 0, 0, 0.6); | |||
text-decoration: none !important; | |||
font-weight: 600; | |||
} | |||
/* Hover / focus: a bit more glow, slightly deeper border */ | |||
body.psy70 #pt-login a:hover, | |||
body.psy70 #pt-anonlogin a:hover, | |||
body.psy70 #pt-createaccount a:hover, | |||
body.psy70 #pt-login a:focus, | |||
body.psy70 #pt-anonlogin a:focus, | |||
body.psy70 #pt-createaccount a:focus { | |||
background: linear-gradient(135deg, #ffe9ff, #ffffff) !important; | |||
border-color: #ffffff !important; | |||
box-shadow: | |||
0 0 0 1px rgba(255, 255, 255, 0.9), | |||
0 0 18px rgba(255, 255, 255, 0.9); | |||
outline: none; | |||
} | |||
/*********************************************** | |||
* Psy70 – Left sidebar / navigation colors | |||
***********************************************/ | |||
/* Sidebar background (Vector legacy + Vector 2022) */ | |||
body.psy70 #mw-panel, | |||
body.psy70 .vector-sidebar { | |||
background: rgba(8, 8, 20, 0.96) !important; | |||
color: #ffffff !important; | |||
border-right: 1px solid rgba(255, 255, 255, 0.12); | |||
box-shadow: 6px 0 24px rgba(0, 0, 0, 0.7); | |||
} | |||
/* Sidebar section headings (e.g., Navigation, Tools) */ | |||
body.psy70 #mw-panel .portal .vector-menu-heading, | |||
body.psy70 #mw-panel .portal h3, | |||
body.psy70 .vector-sidebar .vector-menu-heading { | |||
color: #ffe8c7 !important; | |||
text-transform: uppercase; | |||
font-size: 0.78rem; | |||
letter-spacing: 0.12em; | |||
} | |||
/* Sidebar links – base state */ | |||
body.psy70 #mw-panel .portal .body ul li a, | |||
body.psy70 #mw-panel .vector-menu-content-list a, | |||
body.psy70 .vector-sidebar .vector-menu-content-list a { | |||
color: #4fd3ff !important; | |||
text-decoration: none !important; | |||
display: block; | |||
padding: 0.15em 0.5em; | |||
border-radius: 6px; | |||
} | |||
/* Visited */ | |||
body.psy70 #mw-panel .portal .body ul li a:visited, | |||
body.psy70 #mw-panel .vector-menu-content-list a:visited, | |||
body.psy70 .vector-sidebar .vector-menu-content-list a:visited { | |||
color: #ff80e0 !important; | |||
} | |||
/* Hover / focus */ | |||
body.psy70 #mw-panel .portal .body ul li a:hover, | |||
body.psy70 #mw-panel .vector-menu-content-list a:hover, | |||
body.psy70 .vector-sidebar .vector-menu-content-list a:hover, | |||
body.psy70 #mw-panel .portal .body ul li a:focus, | |||
body.psy70 #mw-panel .vector-menu-content-list a:focus, | |||
body.psy70 .vector-sidebar .vector-menu-content-list a:focus { | |||
background: rgba(25, 25, 60, 1) !important; | |||
color: #a4ffea !important; | |||
outline: none; | |||
} | |||
/* “Selected” / current page highlighting (where supported) */ | |||
body.psy70 #mw-panel .portal .body ul li.selected > a, | |||
body.psy70 .vector-sidebar .vector-menu-content-list .selected > a { | |||
background: linear-gradient( | |||
135deg, | |||
var(--psy70-color-a), | |||
var(--psy70-color-c) | |||
) !important; | |||
color: #050009 !important; | |||
font-weight: 600; | |||
} | |||
/*********************************************** | |||
* Psy70 – Message boxes (errors, warnings, success) | |||
***********************************************/ | |||
/* Generic message box base */ | |||
body.psy70 .mw-message-box { | |||
border-radius: 10px; | |||
padding: 0.75em 1em; | |||
margin: 0.8em 0; | |||
border-width: 1px; | |||
border-style: solid; | |||
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6); | |||
font-size: 0.95rem; | |||
} | |||
/* Error boxes */ | |||
body.psy70 .mw-message-box-error, | |||
body.psy70 .errorbox { | |||
background: rgba(40, 0, 10, 0.96) !important; | |||
border-color: rgba(255, 120, 160, 0.9) !important; | |||
color: #ffe6f0 !important; | |||
} | |||
/* Error box headings / strong text */ | |||
body.psy70 .mw-message-box-error strong, | |||
body.psy70 .errorbox strong { | |||
color: #ff9abf !important; | |||
} | |||
/* Warning boxes */ | |||
body.psy70 .mw-message-box-warning, | |||
body.psy70 .warningbox { | |||
background: rgba(40, 25, 0, 0.96) !important; | |||
border-color: rgba(255, 196, 71, 0.9) !important; | |||
color: #fff7dd !important; | |||
} | |||
body.psy70 .mw-message-box-warning strong, | |||
body.psy70 .warningbox strong { | |||
color: #ffd98a !important; | |||
} | |||
/* Success / info boxes */ | |||
body.psy70 .mw-message-box-success, | |||
body.psy70 .successbox { | |||
background: rgba(5, 32, 20, 0.96) !important; | |||
border-color: rgba(120, 255, 200, 0.9) !important; | |||
color: #ddfff1 !important; | |||
} | |||
body.psy70 .mw-message-box-success strong, | |||
body.psy70 .successbox strong { | |||
color: #7cffd1 !important; | |||
} | |||
/*********************************************** | |||
* Psy70 – Fix colors for New articles / special lists | |||
***********************************************/ | |||
/* Make generic body content text white on dark */ | |||
body.psy70 .mw-body-content { | |||
color: #ffffff !important; | |||
} | |||
/* Paragraphs, lists, small text, etc. on special pages */ | |||
body.psy70 .mw-body-content p, | |||
body.psy70 .mw-body-content li, | |||
body.psy70 .mw-body-content span, | |||
body.psy70 .mw-body-content small, | |||
body.psy70 .mw-body-content td, | |||
body.psy70 .mw-body-content th { | |||
color: #ffffff !important; | |||
} | |||
/* Links inside special-page content (New pages, Recent changes, etc.) */ | |||
body.psy70 .mw-body-content a { | |||
color: #4fd3ff !important; | |||
text-decoration-color: rgba(79, 211, 255, 0.8); | |||
} | |||
body.psy70 .mw-body-content a:visited { | |||
color: #ff80e0 !important; | |||
} | |||
body.psy70 .mw-body-content a:hover { | |||
color: #a4ffea !important; | |||
} | |||
/* New pages / recent changes specific styling */ | |||
body.psy70 .mw-special-Newpages .mw-newpages-list li, | |||
body.psy70 .mw-special-Newpages .mw-newpages-entry, | |||
body.psy70 .mw-changeslist li { | |||
color: #ffffff !important; | |||
} | |||
/* “Comment” / description text in those lists (“…written by X”, edit summaries, etc.) */ | |||
body.psy70 .mw-body-content .comment { | |||
color: #ffd98a !important; /* warm highlight, still readable */ | |||
font-style: italic; | |||
} | } | ||
Latest revision as of 08:07, 27 November 2025
/*********************************
* Psychedelic 70s Frame + White Text
*********************************/
:root {
--psy70-bg: #050009;
--psy70-color-a: #ff9a00;
--psy70-color-b: #ff005c;
--psy70-color-c: #7b5cff;
--psy70-color-d: #00f0ff;
}
/* Enable from Common.js */
body.psy70 {
background: var(--psy70-bg);
color: #ffffff;
overflow-x: hidden;
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
/* ===== MAIN CONTENT: DARK CARD, WHITE TEXT ===== */
body.psy70 #content,
body.psy70 .mw-body,
body.psy70 .mw-content-container,
body.psy70 .vector-body {
background: rgba(8, 8, 20, 0.96);
color: #ffffff;
border-radius: 12px;
box-shadow:
0 0 0 1px rgba(255, 255, 255, 0.03),
0 20px 60px rgba(0, 0, 0, 0.9);
}
/* Core text containers */
body.psy70 #mw-content-text,
body.psy70 .mw-parser-output {
color: #ffffff !important;
}
/* Paragraphs, lists, tables text, etc. */
body.psy70 #mw-content-text p,
body.psy70 #mw-content-text li,
body.psy70 #mw-content-text td,
body.psy70 #mw-content-text th,
body.psy70 #mw-content-text dd,
body.psy70 #mw-content-text dt {
color: #ffffff !important;
}
/* Headings */
body.psy70 #mw-content-text h1,
body.psy70 #mw-content-text h2,
body.psy70 #mw-content-text h3,
body.psy70 #mw-content-text h4,
body.psy70 #mw-content-text h5 {
color: #ffffff !important;
}
/* Links – bright and clear */
body.psy70 #mw-content-text a {
color: #4fd3ff !important;
text-decoration-color: rgba(79, 211, 255, 0.8);
}
body.psy70 #mw-content-text a:visited {
color: #ff80e0 !important;
}
body.psy70 #mw-content-text a:hover {
color: #a4ffea !important;
}
/* Tables / infoboxes: slightly lighter card, white text */
body.psy70 .wikitable,
body.psy70 table {
background-color: #111126 !important;
color: #ffffff !important;
border-color: rgba(255, 255, 255, 0.2) !important;
}
body.psy70 .wikitable th,
body.psy70 .wikitable td {
border-color: rgba(255, 255, 255, 0.2) !important;
color: #ffffff !important;
}
/* Keep header base transparent so frame shows */
body.psy70 #mw-page-base,
body.psy70 #mw-head-base {
background: transparent;
}
/* ===== PSYCHEDELIC FRAME AROUND EVERYTHING ===== */
/* Big rotating conic / radial frame */
body.psy70::before {
content: "";
position: fixed;
inset: 0;
z-index: -2;
pointer-events: none;
background:
radial-gradient(circle at 0% 0%, rgba(0, 0, 0, 0.85), transparent 55%),
radial-gradient(circle at 100% 0%, rgba(0, 0, 0, 0.85), transparent 55%),
radial-gradient(circle at 0% 100%, rgba(0, 0, 0, 0.85), transparent 55%),
radial-gradient(circle at 100% 100%, rgba(0, 0, 0, 0.85), transparent 55%),
conic-gradient(
from 0deg,
var(--psy70-color-a) 0deg,
var(--psy70-color-b) 90deg,
var(--psy70-color-c) 180deg,
var(--psy70-color-d) 270deg,
var(--psy70-color-a) 360deg
);
mix-blend-mode: screen;
opacity: 0.45;
filter: blur(3px) saturate(1.1);
animation: psy70-frame-spin 90s linear infinite;
}
/* Subtle horizontal color bands underneath */
body.psy70::after {
content: "";
position: fixed;
inset: 0;
z-index: -3;
pointer-events: none;
background-image:
linear-gradient(
0deg,
rgba(0, 0, 0, 0.96),
rgba(0, 0, 0, 0.75),
rgba(0, 0, 0, 0.96)
),
repeating-linear-gradient(
0deg,
var(--psy70-color-a) 0,
var(--psy70-color-a) 10px,
var(--psy70-color-b) 10px,
var(--psy70-color-b) 20px,
var(--psy70-color-c) 20px,
var(--psy70-color-c) 30px,
var(--psy70-color-d) 30px,
var(--psy70-color-d) 40px
);
background-size: 100% 100%, 100% 260%;
mix-blend-mode: screen;
opacity: 0.22;
animation: psy70-bands-shift 60s ease-in-out infinite alternate;
}
/* Grain overlay for analog texture */
body.psy70 #psy70-grain {
pointer-events: none;
position: fixed;
inset: 0;
z-index: -1;
opacity: 0.09;
mix-blend-mode: soft-light;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.9'/%3E%3C/svg%3E");
background-size: 160px 160px;
}
/* When toggled off: remove frame, keep dark base and white text */
body.psy70.psy70-off::before,
body.psy70.psy70-off::after,
body.psy70.psy70-off #psy70-grain {
opacity: 0;
transition: opacity 0.5s ease-out;
}
body.psy70.psy70-off {
background: #050009;
}
/* Animations */
@keyframes psy70-frame-spin {
0% { transform: rotate(0deg) scale(1.02); }
100% { transform: rotate(360deg) scale(1.02); }
}
@keyframes psy70-bands-shift {
0% { background-position: 0 0, 0 0; }
100% { background-position: 0 0, 0 -200%; }
}
/* Toggle button */
#psy70-toggle {
position: fixed;
right: 1.4rem;
bottom: 1.4rem;
z-index: 2000;
padding: 0.35rem 0.9rem;
border-radius: 999px;
border: 1px solid rgba(255, 255, 255, 0.25);
cursor: pointer;
background: radial-gradient(circle at 0% 0%, rgba(255, 255, 255, 0.12), rgba(0, 0, 0, 0.9));
color: #ffe8ff;
font-size: 0.78rem;
letter-spacing: 0.14em;
text-transform: uppercase;
text-shadow: 0 0 4px rgba(0, 0, 0, 0.8);
box-shadow:
0 0 0 1px rgba(0, 0, 0, 0.9),
0 0 20px rgba(255, 0, 150, 0.35);
backdrop-filter: blur(5px);
}
#psy70-toggle:hover {
transform: translateY(-1px);
box-shadow:
0 0 0 1px rgba(0, 0, 0, 0.9),
0 0 28px rgba(0, 240, 255, 0.55);
}
/***********************************************
* Fix: Tabs + TOC colors for psy70 theme
***********************************************/
/* --- Page action tabs: Edit / Talk / View history, etc. --- */
/* Container (works for Vector 2022 and legacy Vector) */
body.psy70 .vector-menu-tabs,
body.psy70 .vectorTabs {
background: transparent !important;
border: none !important;
}
/* Individual tabs */
body.psy70 .vector-menu-tabs .vector-menu-content-list > li,
body.psy70 .vectorTabs li {
background: rgba(8, 8, 20, 0.96) !important;
border-radius: 999px 999px 0 0;
margin-right: 4px;
border: 1px solid rgba(255, 255, 255, 0.18) !important;
border-bottom: none !important;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.6);
}
/* Tab links */
body.psy70 .vector-menu-tabs .vector-menu-content-list > li > a,
body.psy70 .vectorTabs li > a {
display: inline-block;
padding: 0.3em 0.9em;
color: #ffffff !important;
text-decoration: none;
font-weight: 500;
}
/* Active/selected tab (the current view) */
body.psy70 .vector-menu-tabs .vector-menu-content-list > li.selected,
body.psy70 .vectorTabs li.selected {
background: linear-gradient(
135deg,
var(--psy70-color-a),
var(--psy70-color-c)
) !important;
border-color: rgba(255, 255, 255, 0.6) !important;
}
/* Active tab text */
body.psy70 .vector-menu-tabs .vector-menu-content-list > li.selected > a,
body.psy70 .vectorTabs li.selected > a {
color: #050009 !important;
text-shadow: 0 0 4px rgba(255, 255, 255, 0.4);
}
/* Hover state */
body.psy70 .vector-menu-tabs .vector-menu-content-list > li:not(.selected):hover,
body.psy70 .vectorTabs li:not(.selected):hover {
border-color: rgba(255, 255, 255, 0.4) !important;
background: rgba(18, 18, 40, 1) !important;
}
/* --- TOC / section selection box --- */
body.psy70 #toc,
body.psy70 .toc {
background: rgba(8, 8, 20, 0.96) !important;
color: #ffffff !important;
border-radius: 10px;
border: 1px solid rgba(255, 255, 255, 0.22) !important;
box-shadow: 0 12px 32px rgba(0, 0, 0, 0.8);
}
/* TOC heading */
body.psy70 #toc .toctitle,
body.psy70 .toc .toctitle {
color: #ffffff !important;
}
/* TOC links */
body.psy70 #toc a,
body.psy70 .toc a {
color: #4fd3ff !important;
}
body.psy70 #toc a:hover,
body.psy70 .toc a:hover {
color: #a4ffea !important;
}
/* TOC numbers and list items */
body.psy70 #toc ul,
body.psy70 #toc li,
body.psy70 .toc ul,
body.psy70 .toc li {
color: #ffffff !important;
}
/***********************************************
* Psy70 – Login / account button styling
***********************************************/
/* Personal tools login / create account (top-right area) */
body.psy70 #pt-login a,
body.psy70 #pt-anonlogin a,
body.psy70 #pt-createaccount a {
background: linear-gradient(135deg, #ffd7ff, #ffffff) !important;
color: #2a0035 !important;
border-radius: 999px;
padding: 0.25em 0.9em;
border: 1px solid rgba(255, 255, 255, 0.8) !important;
box-shadow: 0 0 12px rgba(0, 0, 0, 0.6);
text-decoration: none !important;
font-weight: 600;
}
/* Hover / focus: a bit more glow, slightly deeper border */
body.psy70 #pt-login a:hover,
body.psy70 #pt-anonlogin a:hover,
body.psy70 #pt-createaccount a:hover,
body.psy70 #pt-login a:focus,
body.psy70 #pt-anonlogin a:focus,
body.psy70 #pt-createaccount a:focus {
background: linear-gradient(135deg, #ffe9ff, #ffffff) !important;
border-color: #ffffff !important;
box-shadow:
0 0 0 1px rgba(255, 255, 255, 0.9),
0 0 18px rgba(255, 255, 255, 0.9);
outline: none;
}
/***********************************************
* Psy70 – Left sidebar / navigation colors
***********************************************/
/* Sidebar background (Vector legacy + Vector 2022) */
body.psy70 #mw-panel,
body.psy70 .vector-sidebar {
background: rgba(8, 8, 20, 0.96) !important;
color: #ffffff !important;
border-right: 1px solid rgba(255, 255, 255, 0.12);
box-shadow: 6px 0 24px rgba(0, 0, 0, 0.7);
}
/* Sidebar section headings (e.g., Navigation, Tools) */
body.psy70 #mw-panel .portal .vector-menu-heading,
body.psy70 #mw-panel .portal h3,
body.psy70 .vector-sidebar .vector-menu-heading {
color: #ffe8c7 !important;
text-transform: uppercase;
font-size: 0.78rem;
letter-spacing: 0.12em;
}
/* Sidebar links – base state */
body.psy70 #mw-panel .portal .body ul li a,
body.psy70 #mw-panel .vector-menu-content-list a,
body.psy70 .vector-sidebar .vector-menu-content-list a {
color: #4fd3ff !important;
text-decoration: none !important;
display: block;
padding: 0.15em 0.5em;
border-radius: 6px;
}
/* Visited */
body.psy70 #mw-panel .portal .body ul li a:visited,
body.psy70 #mw-panel .vector-menu-content-list a:visited,
body.psy70 .vector-sidebar .vector-menu-content-list a:visited {
color: #ff80e0 !important;
}
/* Hover / focus */
body.psy70 #mw-panel .portal .body ul li a:hover,
body.psy70 #mw-panel .vector-menu-content-list a:hover,
body.psy70 .vector-sidebar .vector-menu-content-list a:hover,
body.psy70 #mw-panel .portal .body ul li a:focus,
body.psy70 #mw-panel .vector-menu-content-list a:focus,
body.psy70 .vector-sidebar .vector-menu-content-list a:focus {
background: rgba(25, 25, 60, 1) !important;
color: #a4ffea !important;
outline: none;
}
/* “Selected” / current page highlighting (where supported) */
body.psy70 #mw-panel .portal .body ul li.selected > a,
body.psy70 .vector-sidebar .vector-menu-content-list .selected > a {
background: linear-gradient(
135deg,
var(--psy70-color-a),
var(--psy70-color-c)
) !important;
color: #050009 !important;
font-weight: 600;
}
/***********************************************
* Psy70 – Message boxes (errors, warnings, success)
***********************************************/
/* Generic message box base */
body.psy70 .mw-message-box {
border-radius: 10px;
padding: 0.75em 1em;
margin: 0.8em 0;
border-width: 1px;
border-style: solid;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6);
font-size: 0.95rem;
}
/* Error boxes */
body.psy70 .mw-message-box-error,
body.psy70 .errorbox {
background: rgba(40, 0, 10, 0.96) !important;
border-color: rgba(255, 120, 160, 0.9) !important;
color: #ffe6f0 !important;
}
/* Error box headings / strong text */
body.psy70 .mw-message-box-error strong,
body.psy70 .errorbox strong {
color: #ff9abf !important;
}
/* Warning boxes */
body.psy70 .mw-message-box-warning,
body.psy70 .warningbox {
background: rgba(40, 25, 0, 0.96) !important;
border-color: rgba(255, 196, 71, 0.9) !important;
color: #fff7dd !important;
}
body.psy70 .mw-message-box-warning strong,
body.psy70 .warningbox strong {
color: #ffd98a !important;
}
/* Success / info boxes */
body.psy70 .mw-message-box-success,
body.psy70 .successbox {
background: rgba(5, 32, 20, 0.96) !important;
border-color: rgba(120, 255, 200, 0.9) !important;
color: #ddfff1 !important;
}
body.psy70 .mw-message-box-success strong,
body.psy70 .successbox strong {
color: #7cffd1 !important;
}
/***********************************************
* Psy70 – Fix colors for New articles / special lists
***********************************************/
/* Make generic body content text white on dark */
body.psy70 .mw-body-content {
color: #ffffff !important;
}
/* Paragraphs, lists, small text, etc. on special pages */
body.psy70 .mw-body-content p,
body.psy70 .mw-body-content li,
body.psy70 .mw-body-content span,
body.psy70 .mw-body-content small,
body.psy70 .mw-body-content td,
body.psy70 .mw-body-content th {
color: #ffffff !important;
}
/* Links inside special-page content (New pages, Recent changes, etc.) */
body.psy70 .mw-body-content a {
color: #4fd3ff !important;
text-decoration-color: rgba(79, 211, 255, 0.8);
}
body.psy70 .mw-body-content a:visited {
color: #ff80e0 !important;
}
body.psy70 .mw-body-content a:hover {
color: #a4ffea !important;
}
/* New pages / recent changes specific styling */
body.psy70 .mw-special-Newpages .mw-newpages-list li,
body.psy70 .mw-special-Newpages .mw-newpages-entry,
body.psy70 .mw-changeslist li {
color: #ffffff !important;
}
/* “Comment” / description text in those lists (“…written by X”, edit summaries, etc.) */
body.psy70 .mw-body-content .comment {
color: #ffd98a !important; /* warm highlight, still readable */
font-style: italic;
}