MediaWiki:Common.css

来自Age Of History 2 Chinese Wiki
Obtusecat留言 | 贡献2025年4月12日 (六) 21:12的版本
跳转至:导航、​搜索
0.00
(0票)

注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的更改的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
/* 千禧年数据库风格CSS - 浅色主题 */

@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@100;300;400;500;700;900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=VT323&display=swap");
@import url("https://fastly.jsdelivr.net/gh/hoah2333/Fonts@main/Typeface-VonwaonBitmap-16px.css");

/* ==== 基础变量 ==== */
:root {
    /* ==== 字体设置 ==== */
    --body-font: "VonwaonBitmap 16px", VT323, monospace;
    --UI-font: "VonwaonBitmap 16px", VT323, monospace;
    --title-font: "VonwaonBitmap 16px", "Noto Sans SC", VT323, monospace;
    --mono-font: "VonwaonBitmap 16px", VT323, monospace;
  
   /* === BASE FONT SIZE & LINE HEIGHT === */
    --min-font-size: 0.9rem;
    --max-font-size: 1rem;
    --base-font-size: var(--max-font-size);
    --base-line-height: 1.5;

    /* === CRT DISPLAY COLORS === */
    --crt-bg-color: 10, 15, 20; /* 深蓝黑色背景 */
    --crt-text-color: 180, 255, 180; /* 荧光绿文字 */
    --crt-terminal-green: 0, 255, 100; /* 终端绿 */
    --crt-terminal-blue: 80, 170, 255; /* 终端蓝 */
    --crt-terminal-amber: 255, 176, 0; /* 终端琥珀色 */
    --crt-terminal-pink: 255, 100, 200; /* 终端粉色 */
    --crt-glow-color: var(--crt-terminal-green); /* 荧光颜色 */
    
    /* === SCANLINE EFFECTS === */
    --scanline-height: 2px;
    --scanline-color: rgba(0, 0, 0, 0.07);
    --interlace-opacity: 0.4;
    --flicker-intensity: 0.03;
    --noise-opacity: 0.02;
    --rgb-shift-amount: 0.5px;
    --vignette-opacity: 0.3;
    --screen-curvature: 3%; /* 屏幕弯曲程度 */

    /* === STANDARD THEME COLORS === */
    /* 保留原有颜色变量 */
       --white-monochrome: 252, 252, 252;
    --black-monochrome: 10, 10, 10;
    --bright-accent: 229, 140, 36;
    --medium-accent: 229, 140, 36;
    --dark-accent: 140, 136, 126;
    --pale-accent: 140, 136, 126;
    --text-shadow: 2px 2px #C9781E;
    --custom-text: 175, 100, 30;

    /* === PRIMARY COLORS === */
    --swatch-primary: var(--bright-accent);
    --swatch-primary-darker: var(--medium-accent);
    --swatch-primary-darkest: var(--dark-accent);
    --swatch-border-color: var(--bright-accent);

    /* === MENU COLORS === */
    --swatch-menutxt-dark-color: var(--black-monochrome);
    --swatch-menutxt-light-color: var(--white-monochrome);
    --swatch-menutxt-general-color: var(--white-monochrome);

    /* === SECONDARY & TERTIARY COLORS === */
    --swatch-text-secondary-color: var(--swatch-menutxt-light-color);

    /* === LINK COLORS === */
    --link-color: rgb(80, 200, 255);
    --link-color-active: rgb(255, 176, 0);
    --visited-link-color: rgb(180, 160, 255);
    --hover-link-color: rgb(0, 255, 200);
}

/* === GLOBAL STYLES === */
html {
    font-size: 1em;
    line-height: var(--base-line-height);
}

html, body {
    margin: 0;
    padding: 0;
    font-variant-ligatures: none;
    background-color: rgb(var(--crt-bg-color));
    color: rgb(var(--crt-text-color));
    font-family: var(--body-font);
    overflow-x: hidden; /* 防止水平溢出 */
    perspective: 1000px; /* 3D透视效果 */
}

/* 添加CRT屏幕效果 */
body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9998;
    pointer-events: none;
    /* 屏幕弯曲效果 */
    border-radius: 20% / 5%;
    box-shadow: 
        0 0 0 var(--screen-curvature) rgb(var(--crt-bg-color)),
        inset 0 0 40px rgba(0, 0, 0, 0.6);
    /* 暗角效果 */
    background: radial-gradient(
        ellipse at center,
        transparent 60%,
        rgba(0, 0, 0, var(--vignette-opacity)) 100%
    );
}

/* 扫描线效果 */
body::after {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 9999;
    background: repeating-linear-gradient(
        0deg,
        var(--scanline-color) calc(var(--scanline-height) - 1px),
        var(--scanline-color) var(--scanline-height),
        transparent calc(var(--scanline-height) + 1px)
    );
    background-size: 100% calc(var(--scanline-height) * 2);
    opacity: var(--interlace-opacity);
    animation: scanline-flicker 0.1s infinite alternate-reverse;
}

/* 噪点效果 */
.noise {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 9997;
    opacity: var(--noise-opacity);
    background-image: url('data:image/png;base64,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');
}

/* 宽扫描线效果 */
.wide-scanline {
    position: fixed;
    width: 100%;
    height: 4rem;
    top: -4rem;
    left: 0;
    background: linear-gradient(to bottom, 
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0.03) 10%,
        rgba(255, 255, 255, 0.05) 20%,
        rgba(255, 255, 255, 0.1) 50%,
        rgba(255, 255, 255, 0.05) 80%,
        rgba(255, 255, 255, 0.03) 90%,
        rgba(255, 255, 255, 0) 100%);
    pointer-events: none;
    z-index: 9997;
    animation: scanline-move 8s cubic-bezier(0.1, 0.7, 0.7, 0.95) infinite;
    opacity: 0.3;
}

/* 垂直同步扫描效果 */
.vsync-line {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: rgba(255, 255, 255, 0.5);
    box-shadow: 0 0 5px 1px rgba(255, 255, 255, 0.3);
    z-index: 10000;
    pointer-events: none;
    opacity: 0;
    transform: translateY(-1px);
    animation: vsync-scan 10s linear infinite;
}

/* 动画效果 */
@keyframes scanline-move {
    0% { top: -4rem; opacity: 0.2; }
    5% { opacity: 0.3; }
    30% { opacity: 0.2; }
    50% { opacity: 0.3; }
    75% { opacity: 0.2; }
    95% { opacity: 0.3; }
    100% { top: 100vh; opacity: 0.2; }
}

@keyframes scanline-flicker {
    0% { opacity: var(--interlace-opacity); }
    100% { opacity: calc(var(--interlace-opacity) - 0.1); }
}

@keyframes vsync-scan {
    0% { opacity: 0; transform: translateY(-1px); }
    1% { opacity: 0.5; transform: translateY(0); }
    1.5% { opacity: 0.3; transform: translateY(100vh); }
    2% { opacity: 0; transform: translateY(100vh); }
    100% { opacity: 0; transform: translateY(100vh); }
}

@keyframes text-flicker {
    0% { text-shadow: 0 0 5px rgba(var(--crt-glow-color), 0.7); }
    50% { text-shadow: 0 0 2px rgba(var(--crt-glow-color), 0.4); }
    100% { text-shadow: 0 0 5px rgba(var(--crt-glow-color), 0.7); }
}

/* 文本和链接样式 */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--title-font);
    color: rgb(var(--crt-terminal-green));
    text-shadow: 0 0 5px rgba(var(--crt-glow-color), 0.7);
    letter-spacing: 0.05em;
    animation: text-flicker 2s infinite alternate;
    position: relative;
}

h1 {
    font-size: 1.8rem;
    text-transform: uppercase;
}

h2 {
    font-size: 1.5rem;
}

h3 {
    font-size: 1.3rem;
}

a {
    color: rgb(var(--crt-terminal-blue));
    text-decoration: none;
    transition: all 0.2s ease;
    text-shadow: 0 0 3px rgba(var(--crt-terminal-blue), 0.5);
}

a:hover {
    color: rgb(var(--crt-terminal-amber));
    text-shadow: 0 0 5px rgba(var(--crt-terminal-amber), 0.7);
}

a:hover::before {
    content: "> ";
}

a:visited {
    color: rgb(var(--crt-terminal-pink));
    text-shadow: 0 0 3px rgba(var(--crt-terminal-pink), 0.5);
}

/* 按钮样式 */
button, input[type="submit"], input[type="button"] {
    background-color: rgba(var(--crt-bg-color), 0.8);
    color: rgb(var(--crt-terminal-green));
    border: 1px solid rgba(var(--crt-terminal-green), 0.7);
    font-family: var(--pixel-font);
    padding: 5px 10px;
    box-shadow: 0 0 5px rgba(var(--crt-glow-color), 0.5);
    transition: all 0.2s ease;
}

button:hover, input[type="submit"]:hover, input[type="button"]:hover {
    background-color: rgba(var(--crt-terminal-green), 0.2);
    box-shadow: 
        0 0 5px rgba(var(--crt-glow-color), 0.7),
        0 0 10px rgba(var(--crt-glow-color), 0.5);
    cursor: pointer;
}

/* 侧边栏样式 */
.side-block {
    --sideblock-bg-color: var(--crt-bg-color);
    --sideblock-heading-border-color: var(--crt-terminal-green);
    --sideblock-heading-bg-color: var(--crt-bg-color);
    --sideblock-heading-text-color: var(--crt-terminal-green);
    --sidebar-border-color: var(--crt-terminal-green);
    --sidebar-links-text: var(--crt-text-color);
    --sidebar-links-bg-color: var(--crt-bg-color);
    --sidebar-links-hover-bg-color: var(--crt-terminal-green);
    --sidebar-links-hover-text-color: var(--black-monochrome);

    display: grid;
    grid-template-rows: repeat(auto-fit, minmax(1.3125rem, 1fr));
    margin: 0.5rem 0.5rem 0 0;
    border: 1px solid rgba(var(--crt-terminal-green), 0.3);
    background: rgba(var(--sideblock-bg-color), 0.7);
    font-family: var(--UI-font);
    box-shadow: 0 0 10px rgba(var(--crt-glow-color), 0.3);
}

.side-block .heading {
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
    min-height: 1.5rem;
    margin: 0;
    background-color: rgba(var(--sideblock-heading-bg-color), 0.7);
    box-shadow: 0 0.0625rem 0 0 rgba(var(--sideblock-heading-border-color), 0.7);
}

.side-block .heading p {
    margin: 0;
    color: rgb(var(--sideblock-heading-text-color));
    font-family: var(--title-font);
    font-size: calc((var(--base-font-size) * (14 / 15)) * 0.9);
    font-weight: bold;
    letter-spacing: 0.05em;
    line-height: 1.15;
    text-indent: 0.25rem;
    text-transform: uppercase;
    text-shadow: 0 0 5px rgba(var(--crt-glow-color), 0.7);
}

.side-block div.menu-item {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    justify-content: flex-start;
    height: 1.5rem;
    min-height: 1.5rem;
    margin: 0;
    padding: 0;
    box-shadow: inset 0 -1px 0 0 rgba(var(--sidebar-border-color), 0.3);
}

.side-block div.menu-item a {
    display: flex;
    flex-grow: 2;
    justify-content: flex-start;
    height: 1.5em;
    margin: 0;
    padding: 0 0.6em;
    transition: all 0.2s ease;
    background-color: rgba(var(--sidebar-links-bg-color), 0.7);
    color: rgb(var(--sidebar-links-text));
    font-size: calc(var(--base-font-size) * (14 / 15));
    letter-spacing: 0.04em;
    line-height: 1.5;
    text-decoration: none;
    text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5);
}

.side-block div.menu-item a:hover,
.side-block div.menu-item a:active,
.side-block div.menu-item a:focus-within {
    background-color: rgba(var(--sidebar-links-hover-bg-color), 0.3);
    color: rgb(var(--sidebar-links-hover-text-color));
    text-shadow: 0 0 5px rgba(var(--crt-glow-color), 0.7);
}

/* 表格样式 */
table {
    border-collapse: collapse;
    margin: 1em 0;
    background-color: rgba(var(--crt-bg-color), 0.7);
    border: 1px solid rgba(var(--crt-terminal-green), 0.7);
    box-shadow: 
        0 0 5px rgba(var(--crt-glow-color), 0.3),
        0 0 10px rgba(var(--crt-glow-color), 0.1);
    border-radius: 3px;
}

table th {
    background-color: rgba(var(--crt-terminal-green), 0.2);
    color: rgb(var(--crt-terminal-green));
    text-shadow: 0 0 5px rgba(var(--crt-terminal-green), 0.5);
    padding: 8px;
    font-family: var(--pixel-font);
    font-weight: normal;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

table td {
    padding: 8px;
    border: 1px solid rgba(var(--crt-terminal-green), 0.3);
    color: rgb(var(--crt-text-color));
}

table tr:nth-child(even) {
    background-color: rgba(var(--crt-terminal-green), 0.05);
}

/* 代码块样式 */
pre, code, .mw-code, .pn, .mw-highlight {
    font-family: var(--pixel-font);
    background-color: rgba(var(--crt-bg-color), 0.5);
    border: 1px solid rgba(var(--crt-terminal-green), 0.5);
    padding: 0.5em;
    color: rgb(var(--crt-terminal-amber));
    text-shadow: 0 0 3px rgba(var(--crt-terminal-amber), 0.5);
    box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.3);
    border-radius: 3px;
}

/* 引用块样式 */
blockquote {
    border-left: 3px solid rgba(var(--crt-terminal-blue), 0.7);
    margin: 1em 0;
    padding: 0.5em 1em;
    background-color: rgba(var(--crt-bg-color), 0.5);
    color: rgba(var(--crt-text-color), 0.8);
    box-shadow: 
        0 0 5px rgba(var(--crt-terminal-blue), 0.3),
        0 0 10px rgba(var(--crt-terminal-blue), 0.1);
}

/* 特殊样式引用块 */
.lightstyled-quote {
    background-color: rgba(var(--crt-terminal-green), 0.15);
    color: rgb(var(--crt-text-color));
    border-left: 0.5rem solid rgba(var(--crt-terminal-blue), 0.7);
    padding: 0.1rem 1rem;
    margin: 0.5rem 0 0.5rem 0.25rem;
    box-shadow: 
        0 0 5px rgba(var(--crt-terminal-blue), 0.3),
        0 0 10px rgba(var(--crt-terminal-blue), 0.1);
}

.darkstyled-quote {
    background-color: rgba(var(--crt-bg-color), 0.8);
    border-left: 0.5rem solid rgba(var(--crt-terminal-green), 0.7);
    color: rgb(var(--crt-text-color));
    padding: 0.1rem 1rem;
    margin: 0.5rem 0 0.5rem 0.25rem;
    box-shadow: 
        0 0 5px rgba(var(--crt-terminal-green), 0.3),
        0 0 10px rgba(var(--crt-terminal-green), 0.1);
}

.darkstyled-quote a {
    color: rgb(var(--crt-terminal-blue));
    text-shadow: 0 0 3px rgba(var(--crt-terminal-blue), 0.5);
}

/* 信息框样式 */
.notaninfobox {
    position: relative;
    clear: right;
    margin: 0 0 1em 1em;
    width: 350px;
    font-size: 90%;
    background-color: rgba(var(--crt-bg-color), 0.7);
    float: right;
    border: 1px solid rgba(var(--crt-terminal-green), 0.7);
    padding: 2px;
    overflow: auto;
    z-index: 1;
    overflow-wrap: anywhere;
    box-shadow: 
        0 0 5px rgba(var(--crt-glow-color), 0.3),
        0 0 10px rgba(var(--crt-glow-color), 0.1);
}

@media all and (max-width: 511px) {
    .notaninfobox {
        float: none;
        margin-left: 0;
        width: auto;
    }
}

@media all and (max-width: 337px) {
    .notaninfobox {
        margin-left: -16px;
        margin-right: -16px;
        border-left: none;
        border-right: none;
    }
}

.notaninfobox > .infobox-title {
    font-weight: bold;
    text-align: center;
    font-size: 120%;
    background-color: rgba(var(--crt-terminal-green), 0.3);
    color: rgb(var(--crt-terminal-green));
    text-shadow: 0 0 5px rgba(var(--crt-terminal-green), 0.5);
    padding: 4px;
}

.infobox-imagearea {
    text-align: center;
    padding: 4px;
}

.infobox-imagearea > div:not(:first-child) {
    padding-top: 1em;
}

/* Horizontally centre animated images */
.infobox-imagearea .animated {
    display: inline-flex;
    align-items: center;
}

.notaninfobox .infobox-rows {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 1px;
}

.notaninfobox .infobox-rows .infobox-row {
    display: contents;
}

.notaninfobox .infobox-row .infobox-row-label,
.notaninfobox .infobox-row .infobox-row-field {
    padding: 4px;
}

.notaninfobox .infobox-row .infobox-row-label {
    font-weight: bold;
    display: flex;
    align-items: center;
    color: rgb(var(--crt-terminal-green));
    text-shadow: 0 0 3px rgba(var(--crt-terminal-green), 0.5);
}

.notaninfobox .infobox-rows .infobox-row:nth-child(2n) .infobox-row-label,
.notaninfobox .infobox-rows .infobox-row:nth-child(2n) .infobox-row-field {
    background-color: rgba(var(--crt-terminal-green), 0.05);
}

.infobox-footer {
    text-align: center;
}

/* 特殊样式块 */
.lightblock {
    background-color: rgba(var(--crt-terminal-green), 0.15);
    color: rgb(var(--crt-text-color));
    padding: 0.01rem 1rem;
    margin: 0.5rem 0 0.5rem 0.25rem;
    box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.25);
    border: 1px solid rgba(var(--crt-terminal-green), 0.3);
    text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5);
}

.darkblock {
    background-color: rgba(var(--crt-bg-color), 0.8);
    color: rgb(var(--crt-text-color));
    padding: 0.01rem 1rem;
    margin: 0.5rem 0 0.5rem 0.25rem;
    box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.25);
    border: 1px solid rgba(var(--crt-terminal-green), 0.3);
    text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5);
}

.dark-borderblock {
    background-color: rgba(var(--crt-bg-color), 0.8);
    color: rgb(var(--crt-text-color));
    padding: 0.01rem 1rem;
    margin: 0.5rem 0 0.5rem 0.25rem;
    box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.25);
    border: solid 0.3rem rgba(var(--crt-terminal-green), 0.7);
    text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5);
}

.light-borderblock {
    background-color: rgba(var(--crt-terminal-green), 0.15);
    color: rgb(var(--crt-text-color));
    padding: 0.01rem 1rem;
    margin: 0.5rem 0 0.5rem 0.25rem;
    box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.25);
    border: solid 0.3rem rgba(var(--crt-bg-color), 0.8);
    text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5);
}

.border-logoblock {
    padding: 0.01rem 1rem;
    box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.25);
    color: rgb(var(--crt-text-color));
    margin: 0.5rem 0 0.5rem 0.25rem;
    display: block;
    position: relative;
    background-color: rgba(var(--crt-bg-color), 0.8);
    border: solid 0.3rem rgba(var(--crt-terminal-green), 0.7);
    text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5);
}

.border-logoblock::after {
    content: "";
    float: center;
    border: solid 2px transparent;
    opacity: 0.25;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    position: absolute;
    z-index: 1;
    pointer-events: none;
}

.logoblock {
    padding: 0.01rem 1rem;
    color: rgb(var(--crt-text-color));
    box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.25);
    margin: 0.5rem 0 0.5rem 0.25rem;
    display: block;
    position: relative;
    background-color: rgba(var(--crt-bg-color), 0.8);
    text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5);
}

.logoblock::after {
    content: "";
    float: center;
    border: solid 2px transparent;
    opacity: 0.25;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    position: absolute;
    z-index: 1;
    pointer-events: none;
}

.titleblock {
    background-color: rgba(var(--crt-bg-color), 0.8);
    color: rgb(var(--crt-text-color));
    padding: 0.5rem 1rem 0.10rem;
    margin: 1.5rem 0rem 0.5rem 0rem;
    box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.5);
    border: solid rgba(var(--crt-terminal-green), 0.7) 2px;
    text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5);
}

.titlebox {
    color: rgba(var(--crt-bg-color), 0.8);
    position: relative;
    top: -1.6rem;
    background-color: rgba(var(--crt-terminal-green), 0.7);
    padding: 0.25rem 1rem;
    line-height: 0.1rem;
    text-shadow: 0 0 3px rgba(var(--crt-bg-color), 0.5);
}

.borderblock {
    background-color: rgba(var(--crt-bg-color), 0.8);
    color: rgb(var(--crt-text-color));
    padding: 0.01rem 1rem;
    margin: 0.5rem 0 0.5rem 0.25rem;
    box-shadow: 0 0.2rem 0.3rem rgba(0, 0, 0, 0.25);
    border: solid 0.3rem rgba(var(--crt-terminal-green), 0.7);
    text-shadow: 0 0 3px rgba(var(--crt-text-color), 0.5);
}

/* 导航框样式 */
table.navbox {
    border: 1px solid rgba(var(--crt-terminal-green), 0.7);
    clear: both;
    margin: auto;
    padding: 1px;
    text-align: center;
    width: 100%;
    background-color: rgba(var(--crt-bg-color), 0.7);
    box-shadow: 
        0 0 5px rgba(var(--crt-glow-color), 0.3),
        0 0 10px rgba(var(--crt-glow-color), 0.1);
}

table.navbox + table.navbox {
    margin-top: -1px;
}

.navbox-title,
.navbox-abovebelow,
table.navbox th {
    padding-left: 1em;
    padding-right: 1em;
    text-align: center;
}

.navbox-group {
    font-weight: 700;
    white-space: nowrap;
}

.navbox,
.navbox-subgroup {
    background: none repeat scroll 0 0 rgba(var(--crt-bg-color), 0.7);
}

.navbox-list {
    border-color: rgba(var(--crt-bg-color), 0.7);
}

.navbox-title,
table.navbox th {
    background: none repeat scroll 0 0 rgba(var(--crt-terminal-green), 0.3);
    color: rgb(var(--crt-terminal-green));
    text-shadow: 0 0 5px rgba(var(--crt-terminal-green), 0.5);
}

.navbox-abovebelow,
.navbox-group,
.navbox-subgroup .navbox-title {
    background: none repeat scroll 0 0 rgba(var(--crt-terminal-green), 0.2);
    color: rgb(var(--crt-terminal-green));
    text-shadow: 0 0 3px rgba(var(--crt-terminal-green), 0.5);
}

.navbox-subgroup .navbox-group,
.navbox-subgroup .navbox-abovebelow {
    background: none repeat scroll 0 0 rgba(var(--crt-terminal-green), 0.1);
}

.navbox-even {
    background: none repeat scroll 0 0 rgba(var(--crt-bg-color), 0.8);
}

.navbox-odd {
    background: none repeat scroll 0 0 rgba(var(--crt-bg-color), 0.7);
}

/* 黑幕效果 */
.heimu,
.heimu rt {
    --heimu-color: rgba(var(--crt-bg-color), 0.9);
    --heimu-text-color: rgb(var(--crt-text-color));
    --heimu-link-color: rgb(var(--crt-terminal-blue));
    --heimu-visited-link-color: rgb(var(--crt-terminal-pink));
    --heimu-new-link-color: rgb(var(--crt-terminal-amber));
    --heimu-new-visited-link-color: rgb(255, 150, 100);
    --heimu-extiw-visited-link-color: rgb(180, 160, 255);

    background-color: var(--heimu-color);
}

.heimu,
.heimu a,
a .heimu,
a.new .heimu,
span.heimu a:visited,
span.heimu a.new,
span.heimu a.external,
span.heimu a.external:visited,
span.heimu a.extiw,
span.heimu a.extiw:visited,
span.heimu a.mw-disambig,
span.heimu a.mw-redirect {
    transition: color 0.13s linear;
    color: var(--heimu-color);
    text-shadow: none;
}

span.heimu:hover,
span.heimu:active {
    color: var(--heimu-text-color);
}

span.heimu:hover a,
a:hover span.heimu {
    color: var(--heimu-link-color);
    text-shadow: 0 0 3px rgba(var(--crt-terminal-blue), 0.5);
}

span.heimu:hover a:visited,
a:visited:hover span.heimu {
    color: var(--heimu-visited-link-color);
    text-shadow: 0 0 3px rgba(var(--crt-terminal-pink), 0.5);
}

span.heimu:hover a.new,
a.new:hover span.heimu {
    color: var(--heimu-new-link-color);
    text-shadow: 0 0 3px rgba(var(--crt-terminal-amber), 0.5);
}

/* 额外的CRT效果 */
#extrac-div-1 {
    position: fixed;
    width: 100vw;
    height: 100vh;
    pointer-events: none;
    background: repeating-linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15) 50%, rgba(0, 0, 0, 0));
    background-size: auto 8px;
    opacity: 0.7;
    z-index: 9996;
}

#extrac-div-2 {
    position: fixed;
    width: 100vw;
    height: 1rem;
    top: 0;
    pointer-events: none;
    background: linear-gradient(to bottom, 
        rgba(var(--crt-terminal-green)) 0%,
        rgba(var(--crt-terminal-green), 1) 50%,
        rgba(var(--crt-terminal-green), 0.98) 51%,
        rgba(var(--crt-terminal-green)) 100%);
    opacity: 0.1;
    animation: scanm 6s linear infinite;
    z-index: 9995;
}

@keyframes scanm {
    0% { top: -1rem; opacity: 0.05; }
    25% { top: 50%; opacity: 0.03; }
    37.5% { top: 75%; opacity: 0.06; }
    50% { top: 100%; opacity: 0.03; }
    100% { top: 100%; }
}

#extrac-div-3 {
    position: fixed;
    width: 100vw;
    height: 100vh;
    pointer-events: none;
    background-image: radial-gradient(circle, 
        rgba(var(--crt-terminal-green), 0.2) 4%, 
        rgba(var(--crt-bg-color), 0.2) 45%, 
        rgba(var(--crt-terminal-green), 0.2) 95%);
    opacity: 0.25;
    mix-blend-mode: color-dodge;
    background-repeat: no-repeat;
    background-size: cover;
    z-index: 30;
}

/* 页面内容淡入效果 */
@media screen and (prefers-reduced-motion: no-preference) {
    #page-title, #breadcrumbs, #page-content > * {
        animation-name: fadeIn;
        animation-duration: 1s;
        animation-iteration-count: 1;
        animation-timing-function: ease-out;
        animation-fill-mode: backwards;
    }
}

#page-title { animation-delay: 0s; }

#page-content > :nth-child(1) { animation-delay: calc(1 * var(--fade-in-delay)); }
#page-content > :nth-child(2) { animation-delay: calc(2 * var(--fade-in-delay)); }
#page-content > :nth-child(3) { animation-delay: calc(3 * var(--fade-in-delay)); }
#page-content > :nth-child(4) { animation-delay: calc(4 * var(--fade-in-delay)); }
#page-content > :nth-child(5) { animation-delay: calc(5 * var(--fade-in-delay)); }
#page-content > :nth-child(6) { animation-delay: calc(6 * var(--fade-in-delay)); }
#page-content > :nth-child(7) { animation-delay: calc(7 * var(--fade-in-delay)); }
#page-content > :nth-child(8) { animation-delay: calc(8 * var(--fade-in-delay)); }
#page-content > :nth-child(9) { animation-delay: calc(9 * var(--fade-in-delay)); }
#page-content > :nth-child(10) { animation-delay: calc(10 * var(--fade-in-delay)); }
#page-content > :nth-child(11) { animation-delay: calc(11 * var(--fade-in-delay)); }
#page-content > :nth-child(12) { animation-delay: calc(12 * var(--fade-in-delay)); }
#page-content > :nth-child(13) { animation-delay: calc(13 * var(--fade-in-delay)); }
#page-content > :nth-child(14) { animation-delay: calc(14 * var(--fade-in-delay)); }
#page-content > :nth-child(15) { animation-delay: calc(15 * var(--fade-in-delay)); }
#page-content > :nth-child(n+15) { animation-delay: calc(16 * var(--fade-in-delay)); }

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translate(0, 30px);
    }
    to {
        opacity: 1;
        transform: translate(0, 0);
    }
}

/* 网格背景 */
#skrollr-body {
    background-image: radial-gradient(circle, rgba(var(--crt-terminal-green), 0.05) 1px, transparent 1px);
    background-repeat: repeat;
    background-size: 20px 20px;
    width: 100%;
    height: 7.5rem;
}

#container {
    background-image: radial-gradient(circle, rgba(var(--crt-terminal-green), 0.03) 1px, transparent 1px);
    background-size: 15px 15px;
    background-repeat: repeat;
    background-attachment: fixed;
}

/* 确保图片不会溢出 */
img {
    max-width: 100%;
    height: auto;
}

/* 添加JavaScript代码以创建扫描线元素 */
/* 需要在页面加载时执行以下JavaScript代码:

document.addEventListener('DOMContentLoaded', function() {
    // 创建噪点效果元素
    const noise = document.createElement('div');
    noise.className = 'noise';
    document.body.appendChild(noise);
    
    // 创建宽扫描线元素
    const wideScanline = document.createElement('div');
    wideScanline.className = 'wide-scanline';
    document.body.appendChild(wideScanline);
    
    // 添加垂直同步扫描效果
    const vsyncLine = document.createElement('div');
    vsyncLine.className = 'vsync-line';
    document.body.appendChild(vsyncLine);
    
    // 添加第二条扫描线,错开时间,增加真实感
    const wideScanline2 = document.createElement('div');
    wideScanline2.className = 'wide-scanline';
    wideScanline2.style.animationDelay = '4s'; // 错开动画时间
    wideScanline2.style.opacity = '0.2'; // 降低不透明度
    document.body.appendChild(wideScanline2);
    
    // 添加额外的CRT效果元素
    const extracDiv1 = document.createElement('div');
    extracDiv1.id = 'extrac-div-1';
    document.body.appendChild(extracDiv1);
    
    const extracDiv2 = document.createElement('div');
    extracDiv2.id = 'extrac-div-2';
    document.body.appendChild(extracDiv2);
    
    const extracDiv3 = document.createElement('div');
    extracDiv3.id = 'extrac-div-3';
    document.body.appendChild(extracDiv3);
    
    console.log('CRT效果已加载');
});
*/
Loading comments...