mirror of
https://github.com/Anon-Planet/thgtoa.git
synced 2026-06-20 20:48:00 +02:00
fc3763f85c
Serve the new look, update licensing.
434 lines
8.3 KiB
CSS
434 lines
8.3 KiB
CSS
:root {
|
||
--crt-amber: #e7d9a3;
|
||
--crt-blue: #00d9ff;
|
||
--crt-green: #00f080;
|
||
--crt-red: #ff4c4c;
|
||
--phosphor-dim: #1a3a1a;
|
||
--status-success: #4ade80;
|
||
--status-warning: #fbbf24;
|
||
--status-error: #ef4444;
|
||
--status-info: #60a5fa;
|
||
--terminal-green-glow: rgba(0, 255, 0, 0.15);
|
||
--terminal-line-color: rgba(0, 255, 0, 0.3);
|
||
--terminal-border-faint: rgba(0, 255, 0, 0.08);
|
||
--md-default-bg-color: rgba(0, 255, 0, 0.08);
|
||
}
|
||
|
||
body::before {
|
||
content: "";
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
width: 100vw;
|
||
height: 100vh;
|
||
pointer-events: none;
|
||
z-index: 9999;
|
||
|
||
background: linear-gradient(
|
||
rgba(18, 32, 12, 0) 50%,
|
||
rgba(0, 20, 0, 0.1) 50%
|
||
),
|
||
linear-gradient(
|
||
90deg,
|
||
rgba(12, 36, 18, 0) 50%,
|
||
rgba(0, 16, 0, 0.08) 50%
|
||
);
|
||
|
||
background-size: 100% 4px, 6px 100%;
|
||
animation: scanline 4ms linear infinite;
|
||
}
|
||
|
||
@keyframes scanline {
|
||
0% { background-position: 0 0, 0 0; }
|
||
100% { background-position: 0 4px, 6px 100%; }
|
||
}
|
||
|
||
body::after {
|
||
content: "";
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
width: 100vw;
|
||
height: 100vh;
|
||
pointer-events: none;
|
||
z-index: 9998;
|
||
background: radial-gradient(
|
||
ellipse at center,
|
||
transparent 50%,
|
||
rgba(0, 0, 0, 0.3) 100%
|
||
);
|
||
}
|
||
|
||
@keyframes cursorBlink {
|
||
0%, 49% { opacity: 1; }
|
||
50%, 100% { opacity: 0; }
|
||
}
|
||
|
||
.md-header__topic::before,
|
||
body > *:first-child::before {
|
||
content: "λ ";
|
||
animation: cursorBlink 1s step-end infinite;
|
||
color: var(--crt-amber);
|
||
font-family: var(--code-font);
|
||
margin-right: 0.25em;
|
||
}
|
||
|
||
.terminal-window {
|
||
background: linear-gradient(180deg,
|
||
var(--bg-primary) 0%,
|
||
var(--bg-card) 100%
|
||
);
|
||
border: 2px solid var(--border-color);
|
||
border-radius: 8px;
|
||
padding: 1.5em;
|
||
position: relative;
|
||
box-shadow: 0 8px 32px rgba(0, 255, 0, 0.1);
|
||
}
|
||
|
||
.terminal-window::before {
|
||
content: "";
|
||
position: absolute;
|
||
top: -2px;
|
||
left: -2px;
|
||
right: -2px;
|
||
height: 3px;
|
||
background: linear-gradient(90deg,
|
||
transparent,
|
||
var(--accent-green),
|
||
transparent
|
||
);
|
||
opacity: 0.5;
|
||
}
|
||
|
||
strong {
|
||
text-shadow: 0 0 1px var(--border-color);
|
||
}
|
||
|
||
h1, h2 {
|
||
color: var(--crt-amber);
|
||
font-family: var(--code-font);
|
||
font-weight: bold;
|
||
margin-right: 0.02em;}
|
||
|
||
h3, h4, h5, h6 {
|
||
color: var(--crt-amber);
|
||
font-family: var(--code-font);
|
||
font-weight: bold;
|
||
}
|
||
|
||
p strong,
|
||
strong {
|
||
text-shadow: 0 0 1px var(--border-color);
|
||
}
|
||
|
||
pre {
|
||
background: linear-gradient(180deg,
|
||
var(--bg-color) 0%,
|
||
#0d150d 100%
|
||
);
|
||
border-left: 3px solid var(--accent-green);
|
||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
|
||
}
|
||
|
||
pre[role="presentation"] [data-line] {
|
||
color: var(--text-muted);
|
||
font-family: var(--code-font);
|
||
user-select: none;
|
||
min-width: 3em;
|
||
text-align: right;
|
||
padding-right: 1em;
|
||
}
|
||
|
||
pre code .token-keyword {
|
||
color: var(--crt-blue);
|
||
font-weight: bold;
|
||
}
|
||
|
||
pre code .token-string {
|
||
color: var(--status-success);
|
||
}
|
||
|
||
pre code .token-comment {
|
||
color: var(--text-muted);
|
||
font-style: italic;
|
||
}
|
||
|
||
.kbd,
|
||
kbd,
|
||
[data-type="kbd"] {
|
||
background: var(--bg-secondary);
|
||
border: 1px solid var(--border-color);
|
||
border-bottom: 2px solid var(--border-color);
|
||
border-radius: 4px;
|
||
padding: 0.2em 0.5em;
|
||
font-family: var(--code-font);
|
||
font-size: 0.85em;
|
||
color: var(--accent-green);
|
||
text-shadow: 0 1px 2px rgba(0, 255, 0, 0.1);
|
||
transition: all 0.1s ease;
|
||
}
|
||
|
||
kbd:hover {
|
||
border-color: var(--accent-green);
|
||
box-shadow: 0 2px 8px rgba(0, 255, 0, 0.2);
|
||
transform: translateY(-1px);
|
||
}
|
||
|
||
.status-indicator {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 0.5em;
|
||
font-family: var(--code-font);
|
||
font-size: 0.85em;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.1em;
|
||
padding: 0.25em 0.5em;
|
||
border-radius: 4px;
|
||
}
|
||
|
||
.status-success {
|
||
color: var(--status-success);
|
||
background: rgba(74, 222, 128, 0.1);
|
||
border: 1px solid rgba(74, 222, 128, 0.3);
|
||
}
|
||
|
||
.status-warning {
|
||
color: var(--status-warning);
|
||
background: rgba(251, 191, 36, 0.1);
|
||
border: 1px solid rgba(251, 191, 36, 0.3);
|
||
}
|
||
|
||
.status-error {
|
||
color: var(--status-error);
|
||
background: rgba(239, 68, 68, 0.1);
|
||
border: 1px solid rgba(239, 68, 68, 0.3);
|
||
}
|
||
|
||
.status-info {
|
||
color: var(--status-info);
|
||
background: rgba(96, 165, 250, 0.1);
|
||
border: 1px solid rgba(96, 165, 250, 0.3);
|
||
}
|
||
|
||
.admonition {
|
||
border-left: 4px solid var(--accent-green);
|
||
background: linear-gradient(180deg,
|
||
transparent 0%,
|
||
rgba(0, 255, 0, 0.03) 100%
|
||
);
|
||
}
|
||
|
||
.admonition-title {
|
||
font-family: var(--code-font);
|
||
letter-spacing: 0.02em;
|
||
text-transform: uppercase;
|
||
font-size: 0.85em;
|
||
color: var(--accent-green);
|
||
background: var(--terminal-green-glow);
|
||
padding: 0.4em 0.8em;
|
||
border-radius: 4px 0 0 4px;
|
||
}
|
||
|
||
.md-typeset details.admonition {
|
||
border: 1px solid var(--border-color);
|
||
background: var(--bg-primary);
|
||
border-radius: 6px;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.md-typeset table:not([class]) {
|
||
font-family: var(--code-font);
|
||
font-size: 0.95em;
|
||
}
|
||
|
||
.md-typeset__table th {
|
||
background: linear-gradient(180deg,
|
||
var(--bg-secondary) 0%,
|
||
var(--bg-card) 100%
|
||
);
|
||
border-bottom: 2px solid var(--accent-green);
|
||
font-weight: 700;
|
||
letter-spacing: 0.05em;
|
||
}
|
||
|
||
.md-typeset__table tr:hover {
|
||
background-color: var(--bg-primary);
|
||
}
|
||
|
||
blockquote, .admonition-blockquote {
|
||
border-left: 3px solid var(--accent-green);
|
||
margin: 1.5em 0;
|
||
padding-left: 1.5em;
|
||
background: linear-gradient(90deg,
|
||
rgba(0, 255, 0, 0.05) 0%,
|
||
transparent 100%
|
||
);
|
||
}
|
||
|
||
blockquote p:first-of-type::before {
|
||
content: "› ";
|
||
color: var(--accent-green);
|
||
font-family: var(--code-font);
|
||
}
|
||
|
||
.md-typeset a::after,
|
||
a:not(.btn)::after {
|
||
content: "";
|
||
position: absolute;
|
||
bottom: -3px;
|
||
left: 0;
|
||
width: 0;
|
||
height: 1px;
|
||
background: var(--bg-card);
|
||
transition: width 0.2s ease;
|
||
}
|
||
|
||
.md-typeset a:hover::after,
|
||
a:not(.btn):hover::after {
|
||
width: 100%;
|
||
}
|
||
|
||
.btn {
|
||
font-family: var(--code-font);
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.05em;
|
||
font-size: 0.85em;
|
||
transition: all 0.2s ease;
|
||
}
|
||
|
||
.md-typeset .admonition-title,
|
||
div.admonition > div:first-of-type::before {
|
||
font-family: var(--code-font);
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.1em;
|
||
}
|
||
|
||
.md-typeset mark,
|
||
.highlight-mark {
|
||
background-color: rgba(255, 235, 0, 0.3);
|
||
color: inherit;
|
||
padding: 0.1em;
|
||
border-radius: 2px;
|
||
}
|
||
|
||
::-webkit-scrollbar {
|
||
width: 8px;
|
||
height: 8px;
|
||
}
|
||
|
||
::-webkit-scrollbar-track {
|
||
background: var(--bg-primary);
|
||
}
|
||
|
||
::-webkit-scrollbar-thumb {
|
||
background: var(--terminal-green-glow);
|
||
border-radius: 4px;
|
||
}
|
||
|
||
::-webkit-scrollbar-thumb:hover {
|
||
background: var(--accent-green-dim);
|
||
}
|
||
|
||
@media (max-width: 768px) {
|
||
body::before {
|
||
background-size: 100% 2px, 3px 100%;
|
||
animation-duration: 6s;
|
||
}
|
||
}
|
||
|
||
@media (prefers-contrast: high) {
|
||
:root {
|
||
--accent-green: #fff;
|
||
--bg-primary: #000;
|
||
}
|
||
|
||
body::before {
|
||
background-size: 100% 3px, 4px 100%;
|
||
}
|
||
}
|
||
|
||
@keyframes terminalLoad {
|
||
0% { opacity: 0; transform: translateY(25px); }
|
||
100% { opacity: 1; transform: translateY(0); }
|
||
}
|
||
|
||
.md-typeset h1,
|
||
.md-content {
|
||
animation: terminalLoad 200ms ease-out forwards;
|
||
}
|
||
|
||
body::after {
|
||
content: "";
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
width: 100vw;
|
||
height: 100vh;
|
||
pointer-events: none;
|
||
z-index: 9997;
|
||
background: radial-gradient(
|
||
circle at center,
|
||
rgba(0, 255, 0, 0.03) 0%,
|
||
transparent 60%
|
||
);
|
||
animation: phosphorDecay 8s ease-out infinite;
|
||
}
|
||
|
||
@keyframes phosphorDecay {
|
||
0%, 100% { opacity: 0.4; }
|
||
50% { opacity: 0.2; }
|
||
}
|
||
|
||
body::after::before {
|
||
content: "";
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
width: 100vw;
|
||
height: 100vh;
|
||
pointer-events: none;
|
||
z-index: 9998;
|
||
background: radial-gradient(
|
||
circle at center,
|
||
transparent 40%,
|
||
rgba(0, 0, 0, 0.6) 100%
|
||
);
|
||
}
|
||
|
||
.terminal-banner {
|
||
font-family: var(--code-font);
|
||
font-size: 0.75em;
|
||
letter-spacing: 0.2em;
|
||
text-align: center;
|
||
color: var(--text-muted);
|
||
padding: 1em 0;
|
||
border-top: 1px dashed var(--terminal-line-color);
|
||
border-bottom: 1px dashed var(--terminal-line-color);
|
||
margin: 3em 0;
|
||
}
|
||
|
||
.holographic-grid {
|
||
background-image:
|
||
linear-gradient(var(--terminal-border-faint) 1px, transparent 1px),
|
||
linear-gradient(90deg, var(--terminal-border-faint) 1px, transparent 1px);
|
||
background-size: 20px 20px;
|
||
position: relative;
|
||
}
|
||
|
||
.holographic-grid::before {
|
||
content: "";
|
||
position: absolute;
|
||
inset: 0;
|
||
background:
|
||
linear-gradient(
|
||
rgba(0, 255, 0, 0.03) 10px,
|
||
transparent 10px
|
||
),
|
||
linear-gradient(
|
||
90deg,
|
||
rgba(0, 255, 0, 0.03) 10px,
|
||
transparent 10px
|
||
);
|
||
background-size: 10px 10px;
|
||
}
|