Files
kennethreitz.org/static/custom.css
T

1083 lines
22 KiB
CSS

/*
kennethreitz.org
MONOSPACE MANIFESTO™: The Ultimate Developer Experience
Principles: Brutalism, Terminal Aesthetics, Code as Design, Maximum Legibility
Aesthetic: Heavily-styled Developer Prose in Full Monospace Glory
*/
/* RADICAL MONOSPACE FOUNDATION */
:root {
/* Heroku-inspired color system - subtler purples, more green and amber */
--heroku-purple: 65, 45, 105;
--heroku-light-purple: 110, 80, 175;
--heroku-dark-purple: 40, 28, 65;
--heroku-fuchsia: 200, 50, 130;
--heroku-blue: 45, 156, 219;
--heroku-green: 90, 220, 120;
--heroku-amber: 255, 180, 60;
/* Original neon terminal colors as backups */
--neon-green: 0, 255, 70;
--electric-blue: 80, 255, 255;
--toxic-yellow: 255, 234, 0;
--terminal-white: 240, 240, 240;
--burnt-orange: 255, 128, 0;
--digital-purple: 170, 0, 255;
--cyber-pink: 255, 0, 128;
/* Background and surfaces */
--terminal-black: 13, 13, 13;
--deep-void: 16, 16, 24;
--dark-console: 28, 28, 36;
--error-red: 255, 65, 54;
--warning-amber: 255, 164, 0;
--success-green: 50, 255, 126;
/* Monospace type scale */
--font-xs: 0.75rem;
--font-sm: 0.875rem;
--font-md: 1rem;
--font-lg: 1.125rem;
--font-xl: 1.25rem;
--font-2xl: 1.5rem;
--font-3xl: 1.75rem;
--font-4xl: 2rem;
/* Font stacks - ALL MONOSPACE EVERYTHING */
--primary-font: 'Operator Mono', 'Fira Code', 'JetBrains Mono', 'IBM Plex Mono', 'SF Mono', monospace;
--base-monospace: 'JetBrains Mono', 'Fira Code', 'SF Mono', 'Roboto Mono', 'Courier Prime', monospace;
--fallback-monospace: 'Consolas', 'Courier New', monospace;
/* Line heights for monospace precision */
--line-tight: 1.2;
--line-code: 1.4;
--line-base: 1.6;
--line-loose: 1.8;
/* Extreme spacing system */
--space-3xs: 0.125rem;
--space-2xs: 0.25rem;
--space-xs: 0.5rem;
--space-sm: 0.75rem;
--space-md: 1rem;
--space-lg: 1.5rem;
--space-xl: 2rem;
--space-2xl: 3rem;
--space-3xl: 4rem;
/* Terminal effects */
--glow-spread: 0.3rem;
--glow-blur: 1rem;
--scanline-size: 2px;
--pixel-size: 1px;
--flicker-speed: 0.1s;
/* Typography treatments */
--letter-tight: -0.03em;
--letter-normal: 0;
--letter-wide: 0.05em;
--letter-mono: 0;
/* Borders and effects */
--border-thin: 1px;
--border-thick: 2px;
--border-thicker: 4px;
--border-radius-sm: 3px;
--border-radius-md: 5px;
--blink-speed: 1s;
}
/* RESET AND BASE STYLES */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
font-size: 16px;
-webkit-font-smoothing: none; /* Pixelated text for authenticity */
-moz-osx-font-smoothing: grayscale;
text-rendering: geometricPrecision;
}
body {
font-family: var(--primary-font), var(--base-monospace), var(--fallback-monospace);
background-color: rgb(var(--terminal-black));
color: rgb(var(--terminal-white));
line-height: var(--line-base);
font-size: var(--font-md);
margin: 0;
padding: 0 var(--space-md);
position: relative;
overflow-x: hidden;
min-height: 100vh;
}
/* RADICAL BACKGROUND EFFECTS */
body::before {
content: "";
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(
to bottom,
rgba(var(--terminal-black), 1) 0%,
rgba(var(--deep-void), 1) 100%
);
z-index: -2;
}
/* Scanlines for terminal effect */
body::after {
content: "";
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: repeating-linear-gradient(
0deg,
rgba(var(--terminal-white), 0.03),
rgba(var(--terminal-white), 0.03) var(--scanline-size),
transparent var(--scanline-size),
transparent calc(var(--scanline-size) * 2)
);
z-index: 9999;
pointer-events: none;
opacity: 0.7;
}
/* MONOSPACED TYPOGRAPHY SYSTEM */
h1, h2, h3, h4, h5, h6, p, a, li, blockquote, code, pre, span, div {
font-family: var(--primary-font), var(--base-monospace), var(--fallback-monospace);
}
h1 {
font-size: var(--font-4xl);
line-height: var(--line-tight);
letter-spacing: var(--letter-tight);
margin: var(--space-2xl) 0 var(--space-lg);
color: rgb(var(--heroku-green));
text-transform: uppercase;
border-bottom: var(--border-thick) solid rgb(var(--heroku-green));
padding-bottom: var(--space-xs);
text-shadow: 0 0 var(--glow-spread) rgba(var(--heroku-green), 0.8);
animation: textPulse 4s infinite alternate;
}
@keyframes textPulse {
0% { text-shadow: 0 0 var(--glow-spread) rgba(var(--heroku-green), 0.5); }
100% { text-shadow: 0 0 var(--glow-blur) rgba(var(--heroku-green), 0.8); }
}
h2 {
font-size: var(--font-3xl);
line-height: var(--line-tight);
margin: var(--space-xl) 0 var(--space-md);
color: rgb(var(--heroku-fuchsia));
letter-spacing: var(--letter-tight);
text-transform: uppercase;
border-left: var(--border-thick) solid rgb(var(--heroku-fuchsia));
padding-left: var(--space-sm);
}
h3 {
font-size: var(--font-2xl);
line-height: var(--line-tight);
margin: var(--space-lg) 0 var(--space-md);
color: rgb(var(--heroku-blue));
letter-spacing: var(--letter-tight);
text-transform: uppercase;
}
h4 {
font-size: var(--font-xl);
line-height: var(--line-tight);
margin: var(--space-lg) 0 var(--space-sm);
color: rgb(var(--heroku-light-purple));
letter-spacing: var(--letter-normal);
}
h5, h6 {
font-size: var(--font-lg);
line-height: var(--line-tight);
margin: var(--space-md) 0 var(--space-xs);
color: rgb(var(--heroku-green));
letter-spacing: var(--letter-normal);
}
/* PARAGRAPH STYLING */
p {
margin-bottom: var(--space-lg);
line-height: var(--line-base);
max-width: 80ch;
font-size: var(--font-md);
position: relative;
padding-left: var(--space-lg);
border-left: var(--border-thin) solid rgba(var(--terminal-white), 0.2);
}
p::before {
content: ">";
position: absolute;
left: 0;
color: rgb(var(--heroku-green));
font-weight: bold;
}
/* Blinking cursor effect at the end of last paragraph */
p:last-of-type::after {
content: "█";
display: inline-block;
color: rgb(var(--heroku-fuchsia));
animation: blink var(--blink-speed) step-end infinite;
}
@keyframes blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
/* LINKS */
a {
color: rgb(var(--heroku-blue));
text-decoration: none;
position: relative;
padding: 0 var(--space-2xs);
font-weight: bold;
transition: all 0.2s ease;
border-bottom: var(--border-thin) dashed rgb(var(--heroku-blue));
}
a:hover, a:focus {
color: rgb(var(--terminal-black));
background-color: rgb(var(--heroku-blue));
border-bottom: var(--border-thin) solid rgb(var(--heroku-blue));
text-shadow: none;
outline: none;
}
a:hover::before, a:focus::before {
content: "[";
position: absolute;
left: -0.7em;
color: rgb(var(--heroku-blue));
}
a:hover::after, a:focus::after {
content: "]";
position: absolute;
right: -0.7em;
color: rgb(var(--heroku-blue));
}
/* CODE ELEMENTS */
code, pre {
font-family: var(--base-monospace), var(--fallback-monospace);
font-size: var(--font-sm);
line-height: var(--line-code);
background-color: rgba(var(--deep-void), 0.8);
border-radius: var(--border-radius-sm);
}
code {
padding: var(--space-2xs) var(--space-xs);
color: rgb(var(--heroku-amber));
border: var(--border-thin) solid rgba(var(--heroku-amber), 0.3);
}
pre {
padding: var(--space-md);
margin: var(--space-lg) 0;
overflow-x: auto;
border-left: var(--border-thick) solid rgb(var(--heroku-amber));
position: relative;
}
pre::before {
content: "$ CODE";
position: absolute;
top: -12px;
left: var(--space-md);
background-color: rgb(var(--terminal-black));
padding: 0 var(--space-xs);
color: rgb(var(--heroku-amber));
font-size: var(--font-xs);
font-weight: bold;
letter-spacing: var(--letter-wide);
}
pre code {
border: none;
padding: 0;
background-color: transparent;
color: rgb(var(--terminal-white));
}
/* BLOCKQUOTE */
blockquote {
margin: var(--space-xl) 0;
padding: var(--space-md) var(--space-lg);
border-left: var(--border-thicker) solid rgb(var(--heroku-light-purple));
background-color: rgba(var(--heroku-light-purple), 0.1);
position: relative;
}
blockquote::before {
content: "// QUOTE";
position: absolute;
top: -12px;
left: var(--space-md);
background-color: rgb(var(--terminal-black));
padding: 0 var(--space-xs);
color: rgb(var(--heroku-light-purple));
font-size: var(--font-xs);
font-weight: bold;
letter-spacing: var(--letter-wide);
}
blockquote p {
font-style: italic;
border-left: none;
padding-left: 0;
}
blockquote p::before {
content: none;
}
blockquote cite {
display: block;
margin-top: var(--space-sm);
color: rgb(var(--terminal-white));
opacity: 0.7;
font-style: normal;
}
blockquote cite::before {
content: "— ";
color: rgb(var(--heroku-light-purple));
}
/* LISTS */
ul, ol {
margin: var(--space-lg) 0;
padding-left: var(--space-xl);
}
li {
margin-bottom: var(--space-sm);
position: relative;
}
ul li::marker {
content: "// ";
color: rgb(var(--heroku-green));
font-weight: bold;
}
ol {
counter-reset: item;
list-style-type: none;
}
ol li {
counter-increment: item;
}
ol li::before {
content: counter(item) ".";
color: rgb(var(--heroku-blue));
font-weight: bold;
display: inline-block;
width: 2em;
margin-left: -2em;
}
/* CONTAINERS AND SECTIONS */
.main-content {
max-width: 1200px;
margin: var(--space-xl) auto;
padding: var(--space-lg);
background-color: rgba(var(--deep-void), 0.7);
border: var(--border-thin) solid rgba(var(--terminal-white), 0.1);
border-radius: var(--border-radius-md);
box-shadow: 0 0 var(--space-lg) rgba(0, 0, 0, 0.5);
position: relative;
}
.main-content::before {
content: "MAIN::OUTPUT";
position: absolute;
top: -12px;
left: var(--space-md);
background-color: rgb(var(--terminal-black));
padding: 0 var(--space-xs);
color: rgb(var(--heroku-amber));
font-size: var(--font-xs);
font-weight: bold;
letter-spacing: var(--letter-wide);
}
.container {
width: 100%;
position: relative;
}
/* HORIZONTAL RULE */
hr {
border: none;
height: var(--border-thin);
background: linear-gradient(
to right,
transparent,
rgb(var(--heroku-green)),
transparent
);
margin: var(--space-xl) 0;
position: relative;
}
hr::before {
content: "// // //";
position: absolute;
top: -10px;
left: 50%;
transform: translateX(-50%);
background-color: rgb(var(--terminal-black));
padding: 0 var(--space-sm);
color: rgb(var(--heroku-green));
font-size: var(--font-xs);
letter-spacing: var(--letter-wide);
}
/* TERMINAL-STYLE STATUS BAR */
.status-bar {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
background-color: rgb(var(--heroku-dark-purple));
color: rgb(var(--terminal-white));
display: flex;
justify-content: space-between;
font-size: var(--font-xs);
border-top: var(--border-thin) solid rgba(var(--heroku-green), 0.5);
z-index: 100;
height: 28px;
line-height: 28px;
padding: 0 var(--space-md);
}
.status-bar-left, .status-bar-right {
display: flex;
align-items: center;
}
.status-bar-item {
padding: 0 var(--space-sm);
border-right: var(--border-thin) solid rgba(var(--terminal-white), 0.2);
display: flex;
align-items: center;
height: 100%;
}
.status-bar-item:last-child {
border-right: none;
}
/* HEADER ELEMENTS */
.site-header {
padding: var(--space-md) 0;
margin-bottom: var(--space-xl);
border-bottom: var(--border-thin) solid rgba(var(--heroku-green), 0.5);
display: flex;
justify-content: space-between;
align-items: center;
background-color: rgba(var(--terminal-black), 0.95);
position: sticky;
top: 0;
z-index: 100;
}
.site-title {
font-size: var(--font-xl);
color: rgb(var(--heroku-green));
font-weight: bold;
letter-spacing: var(--letter-tight);
text-transform: uppercase;
}
/* Enhanced Floating Terminal Interface */
.terminal-panel {
position: fixed;
top: 5%;
right: 2%;
width: 600px;
height: 400px;
z-index: 9999;
display: none;
transform: scale(0.95);
transform-origin: top right;
transition: transform 0.2s ease, opacity 0.2s ease;
opacity: 0;
}
.terminal-panel.active {
display: block;
opacity: 1;
transform: scale(1);
}
.terminal-panel.minimized {
height: 36px;
overflow: hidden;
}
.terminal-window {
background-color: rgb(var(--heroku-dark-purple));
border-radius: var(--border-radius-md);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.7);
width: 100%;
height: 100%;
overflow: hidden;
font-family: var(--base-monospace);
border: var(--border-thin) solid rgba(var(--heroku-green), 0.5);
display: flex;
flex-direction: column;
position: relative;
}
.terminal-header {
background-color: rgb(var(--heroku-dark-purple));
padding: var(--space-xs) var(--space-md);
color: rgb(var(--terminal-white));
display: flex;
align-items: center;
justify-content: center;
position: relative;
height: 36px;
}
.terminal-controls {
position: absolute;
left: var(--space-md);
top: 50%;
transform: translateY(-50%);
display: flex;
gap: 8px;
}
.control {
width: 12px;
height: 12px;
border-radius: 50%;
display: inline-block;
cursor: pointer;
position: relative;
transition: transform 0.1s ease;
}
.control:hover {
transform: scale(1.1);
}
.control.close {
background-color: #ff5f56;
}
.control.minimize {
background-color: #ffbd2e;
}
.control.maximize {
background-color: #27c93f;
}
.terminal-resize-handle {
position: absolute;
bottom: 0;
right: 0;
width: 16px;
height: 16px;
cursor: nwse-resize;
background: linear-gradient(
135deg,
transparent 0%,
transparent 50%,
rgba(var(--heroku-green), 0.5) 50%,
rgba(var(--heroku-green), 0.5) 60%,
transparent 60%,
transparent 100%
);
z-index: 100;
}
.terminal-title {
color: rgba(var(--terminal-white), 0.9);
font-size: var(--font-sm);
font-weight: 500;
}
.terminal-body {
background-color: rgb(var(--terminal-black));
padding: var(--space-md);
flex: 1;
overflow-y: auto;
color: rgb(var(--terminal-white));
font-size: var(--font-md);
line-height: var(--line-base);
background-image: radial-gradient(
rgba(var(--heroku-green), 0.03) 2px,
transparent 2px
);
background-size: 30px 30px;
background-position: -15px -15px;
position: relative;
-webkit-font-smoothing: none;
font-variant-ligatures: none;
}
.terminal-output p {
margin: 0 0 var(--space-xs);
padding: 0;
border-left: none;
}
.terminal-output p::before {
content: none;
}
/* Directory listing styling */
.dir-item {
color: rgb(var(--heroku-blue));
position: relative;
margin-left: var(--space-md);
}
.dir-item::before {
content: "📁";
position: absolute;
left: -20px;
top: 0;
}
/* Error messages */
.error {
color: rgb(var(--error-red));
font-weight: bold;
}
/* Terminal selection styling */
.terminal-body ::selection {
background-color: rgba(var(--heroku-green), 0.4);
color: rgb(var(--terminal-white));
}
/* Transition styles for terminal panel */
.terminal-panel.dragging {
transition: none;
opacity: 0.9;
user-select: none;
}
.terminal-panel.resizing {
transition: none;
opacity: 0.9;
}
.terminal-panel.maximized {
top: 10vh !important;
left: 5vw !important;
width: 90vw !important;
height: 80vh !important;
}
/* Typing animation styles */
.typing-output {
margin: 0 0 var(--space-xs);
color: rgb(var(--heroku-amber));
}
/* Terminal nav link styles */
.nav-item[data-category="terminal"] a {
color: rgb(var(--heroku-amber));
position: relative;
}
.nav-item[data-category="terminal"] a:hover {
color: rgb(var(--heroku-amber));
background-color: rgba(var(--heroku-amber), 0.2);
}
.nav-item[data-category="terminal"] .cmd-prompt {
color: rgb(var(--heroku-amber));
font-weight: bold;
}
/* Xeyes implementation */
.xeyes-container {
display: flex;
align-items: center;
height: 100%;
gap: 3px;
margin-left: 5px;
}
.xeye {
width: 12px;
height: 12px;
background-color: rgb(var(--terminal-white));
border-radius: 50%;
position: relative;
display: flex;
align-items: center;
justify-content: center;
box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.5);
overflow: hidden;
}
.pupil {
width: 5px;
height: 5px;
background-color: rgb(var(--heroku-dark-purple));
border-radius: 50%;
position: absolute;
transition: transform 0.05s ease;
}
/* Media queries for responsive terminal */
@media (max-width: 768px) {
.terminal-panel {
width: 90vw;
height: 50vh;
top: 25vh;
right: 5vw;
}
.terminal-panel.maximized {
top: 10vh !important;
left: 5vw !important;
width: 90vw !important;
height: 80vh !important;
}
}
/* Animation for the cursor */
@keyframes terminal-blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
/* Terminal typing effect */
.typing-effect {
white-space: nowrap;
overflow: hidden;
border-right: 3px solid rgb(var(--heroku-fuchsia));
animation: typing 3.5s steps(30, end), blink-caret 0.5s step-end infinite;
}
@keyframes typing {
from { width: 0 }
to { width: 100% }
}
@keyframes blink-caret {
from, to { border-color: transparent }
50% { border-color: rgb(var(--heroku-fuchsia)); }
}
/* Matrix message styling */
.matrix-message {
color: rgb(var(--heroku-green));
font-size: 1.2em;
font-weight: bold;
text-shadow: 0 0 10px rgba(var(--heroku-green), 0.8);
animation: pulse 2s infinite alternate;
}
@keyframes pulse {
0% { opacity: 0.6; }
100% { opacity: 1; }
}
.welcome-text {
color: rgb(var(--heroku-green));
font-weight: bold;
}
.cmd-highlight {
color: rgb(var(--heroku-fuchsia));
font-weight: bold;
background-color: rgba(var(--heroku-fuchsia), 0.1);
padding: 2px 4px;
border-radius: 3px;
}
.terminal-input-line {
display: flex;
margin-top: var(--space-sm);
border-top: var(--border-thin) dashed rgba(var(--heroku-green), 0.3);
padding-top: var(--space-sm);
}
.cmd-prompt {
color: rgb(var(--heroku-green));
font-weight: bold;
margin-right: var(--space-xs);
white-space: nowrap;
}
.input-wrapper {
flex: 1;
}
.terminal-input {
background: transparent;
border: none;
color: rgb(var(--terminal-white));
font-family: inherit;
font-size: inherit;
padding: 0;
width: 100%;
outline: none;
caret-color: transparent; /* Hide default cursor */
}
.command {
color: rgb(var(--terminal-white));
}
/* Old-school loading animation for the header */
.loading-animation {
display: inline-block;
overflow: hidden;
height: 1.2em;
margin-left: var(--space-xs);
vertical-align: bottom;
}
.loading-animation::after {
content: "\\A.\\A..\\A...";
white-space: pre;
display: inline-block;
animation: loading 2s infinite steps(4);
}
@keyframes loading {
0%, 100% { transform: translateY(0); }
25% { transform: translateY(-1.2em); }
50% { transform: translateY(-2.4em); }
75% { transform: translateY(-3.6em); }
}
/* NAVIGATION */
.main-nav {
background-color: rgba(var(--deep-void), 0.9);
border: var(--border-thin) solid rgba(var(--electric-blue), 0.3);
border-radius: var(--border-radius-sm);
}
.nav-links {
display: flex;
list-style: none;
padding: 0;
margin: 0;
}
.nav-item {
margin: 0;
padding: 0;
}
.nav-item a {
display: block;
padding: var(--space-xs) var(--space-sm);
color: rgb(var(--electric-blue));
border-bottom: none;
text-transform: uppercase;
font-size: var(--font-sm);
letter-spacing: var(--letter-wide);
}
.nav-item a:hover, .nav-item a:focus, .nav-item a.active {
background-color: rgba(var(--electric-blue), 0.2);
color: rgb(var(--electric-blue));
}
.nav-item a:hover::before, .nav-item a:focus::before,
.nav-item a.active::before, .nav-item a:hover::after,
.nav-item a:focus::after, .nav-item a.active::after {
content: none;
}
/* TABLES */
table {
width: 100%;
border-collapse: collapse;
margin: var(--space-lg) 0;
font-size: var(--font-sm);
}
th, td {
padding: var(--space-sm);
text-align: left;
border: var(--border-thin) solid rgba(var(--terminal-white), 0.2);
}
th {
background-color: rgba(var(--dark-console), 0.7);
color: rgb(var(--electric-blue));
font-weight: bold;
text-transform: uppercase;
letter-spacing: var(--letter-wide);
}
tbody tr:nth-child(odd) {
background-color: rgba(var(--deep-void), 0.4);
}
tbody tr:hover {
background-color: rgba(var(--electric-blue), 0.1);
}
/* RESPONSIVE ADJUSTMENTS */
@media (max-width: 768px) {
html {
font-size: 14px;
}
.main-content {
padding: var(--space-md);
}
.nav-links {
flex-direction: column;
}
h1 {
font-size: var(--font-3xl);
}
h2 {
font-size: var(--font-2xl);
}
}
/* TERMINAL BLINKING CURSOR */
.cursor {
display: inline-block;
width: 10px;
height: 20px;
background-color: rgb(var(--heroku-amber));
animation: blink var(--blink-speed) step-end infinite;
vertical-align: middle;
margin-left: var(--space-2xs);
box-shadow: 0 0 8px rgba(var(--heroku-amber), 0.8);
}
/* SPECIAL HIGHLIGHTS */
.cmd-prompt {
color: rgb(var(--heroku-purple));
font-weight: bold;
}
.argument {
color: rgb(var(--heroku-blue));
}
.string {
color: rgb(var(--heroku-fuchsia));
}
.comment {
color: rgba(var(--terminal-white), 0.5);
font-style: italic;
}
.error {
color: rgb(var(--error-red));
font-weight: bold;
}
.success {
color: rgb(var(--success-green));
font-weight: bold;
}
.warning {
color: rgb(var(--warning-amber));
font-weight: bold;
}
/* CODE HIGHLIGHTING */
.keyword {
color: rgb(var(--digital-purple));
font-weight: bold;
}
.function {
color: rgb(var(--electric-blue));
}
.variable {
color: rgb(var(--terminal-white));
}
.number {
color: rgb(var(--burnt-orange));
}
.operator {
color: rgb(var(--toxic-yellow));
}
/* LAYOUT UTILITIES */
.full-width {
width: 100%;
max-width: none;
}
.center-text {
text-align: center;
}
.mono-flow {
display: flex;
flex-direction: column;
gap: var(--space-md);
}
/* NEON MATRIX RAIN EFFECT - For heavy styling */
@keyframes matrixRain {
0% {
transform: translateY(-100%);
opacity: 1;
}
100% {
transform: translateY(1000%);
opacity: 0;
}
}
.matrix-container {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
overflow: hidden;
opacity: 0.5;
}
/* EXTREME SELECTION STYLING */
::selection {
background-color: rgb(var(--neon-green));
color: rgb(var(--terminal-black));
text-shadow: none;
}