: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; }