@import url("https://fonts.googleapis.com/css2?family=Orbitron:wght@400..900&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Lexend:wght@100..900&display=swap"); :root { --header-font: Orbitron, Inter, "Noto Sans SC", "Noto Sans TC", Franklin Gothic Medium, Franklin Gothic, ITC Franklin Gothic, Arial, sans-serif; --title-font: Lexend, Inter, "Noto Sans SC", "Noto Sans TC", Franklin Gothic Medium, Franklin Gothic, ITC Franklin Gothic, Arial, sans-serif; --mono-font: "JetBrains Mono", "Noto Sans SC", "Noto Sans TC", Consolas, monaco, monospace; --header-title-font-size: min(calc(1.6rem + 1.5vw), 3rem); --header-subtitle-font-size: min(calc(0.6rem + 0.45vw), 1rem); --header-title-font-size-on-mobile: var(--header-title-font-size); --header-subtitle-font-size-on-mobile: var(--header-subtitle-font-size); --sidebar-width: 16rem; --logo-image: url("https://fastly.jsdelivr.net/gh/bleuboat/br@main/images/future_light.svg"); --white-color: 252, 252, 252; --black-color: 35, 35, 38; --accent-color: 24, 80, 187; --background-color: var(--white-color); --text-color: var(--black-color); --light-color-1: var(--white-color); --light-color-2: var(--white-color); --dark-color-1: var(--accent-color); --dark-color-2: var(--accent-color); --dark-color-3: var(--accent-color); --dark-color-4: var(--accent-color); --neutral-color: 170, 170, 170; --link-color: var(--accent-color); --hover-link-color: var(--link-color), 0.6; --visited-link-color: var(--link-color); --selected-background-color: var(--general-dark-background-color); --selected-text-color: var(--general-dark-text-color); --scrollbar-color: var(--accent-color); --scrollbar-background-color: var(--white-color); --general-medium-background-color: var(--general-dark-background-color); --general-medium-text-color: var(--general-dark-text-color); --general-medium-border-color: var(--accent-color); --general-strong-border-color: var(--accent-color); --general-button-text-color: var(--accent-color); --general-button-background-color: var(--white-color); --general-blur: 0; --header-background-bottom: var(--white-color); --header-background-top: var(--white-color); --header-extra-background-image: none; --header-text-color: var(--black-color); --topbar-text-color: var(--accent-color); --topbar-hover-text-color: var(--general-dark-text-color); --topbar-hover-background-color: var(--general-dark-background-color); --topbar-hover-border-color: 0, 0, 0, 0; --topbar-drop-text-color: var(--accent-color); --topbar-drop-background-color: var(--white-color); --topbar-drop-hover-text-color: var(--general-dark-text-color); --topbar-drop-hover-background-color: var(--general-dark-background-color); --topbar-drop-border-color: var(--accent-color); --topbar-drop-border-width: 0.15rem; --topbar-drop-shadow-color: 0, 0, 0, 0; --account-button-text-color: var(--general-button-text-color); --account-button-background-color: var(--general-button-background-color); --account-button-hover-text-color: var(--general-hover-button-text-color); --account-button-hover-background-color: var(--general-hover-button-background-color); --account-drop-text-color: var(--accent-color); --page-tag-text-color: var(--link-color); --page-tag-hover-text-color: var(--hover-link-color); --page-tag-background-color: 0, 0, 0, 0; --page-tag-hover-background-color: 0, 0, 0, 0; --page-option-background-color: 0, 0, 0, 0; --license-link-color: var(--link-color); --sidebar-media-background-color: 0, 0, 0, 0; --sidebar-title-background-color: 0, 0, 0, 0; --sidebar-title-text-color: var(--black-color); --sidebar-title-shadow-color: 0, 0, 0, 0; --sidebar-text-color: var(--accent-color); --sidebar-hover-text-color: var(--general-dark-text-color); --sidebar-hover-background-color: var(--general-dark-background-color); --sidebar-border-color: var(--accent-color); --action-area-info-background-color: var(--white-color); --action-area-info-text-color: var(--accent-color); --edit-area-background-color: var(--white-color); --tabview-horizon-color: var(--accent-color); --tabview-content-background-color: var(--white-color); --note-background-color: var(--white-color); --note-text-color: var(--black-color); --note-border-color: var(--accent-color); --footnote-block-background-color: var(--white-color); --dark-styled-quote-border-color: var(--black-color), 0.5; --thread-accent-color: var(--white-color); } body, html { -webkit-tap-highlight-color: transparent; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scrollbar-width: thin; } ::-webkit-scrollbar { width: 0.5rem; height: 0.5rem; } ::-webkit-scrollbar-track { background: rgba(var(--scrollbar-background-color)); } ::-webkit-scrollbar-thumb { background: rgba(var(--scrollbar-color)); } a:is(:hover, :active, :focus, :focus-within) { -webkit-text-decoration: underline 0.1em; } #side-bar .menu-item a { transition: background var(--general-transition-time-fast); } #file-comments { padding: 0.2em 0.5em; } table.page-files .highlight { background: rgba(var(--action-area-border-color)) } .pager a, .pager .current, .pager .dots { transition: background var(--general-transition-time-slow), color var(--general-transition-time-slow); } #action-area h1 + p + h2 ~ div[style="padding-left:3em;"] > div { align-items: center; } #edit-meta-newtag-form > table { display: flex; align-items: center; } #edit-meta-newtag-form > table :is(tbody, tr) { display: contents; } #edit-meta-newtag-form > table td { display: block; } #edit-meta-newtag-form > table td:nth-child(2n) { flex: 1; } #edit-meta-newtag-form > table td input { width: 100%; box-sizing: border-box; border: none; background: rgba(var(--edit-area-textarea-background-color)); color: rgba(var(--edit-area-textarea-text-color)); padding: 0.2em 0.5em; margin: 0; outline: none; transition: box-shadow var(--general-transition-time-slow); font-weight: 500; } #edit-meta-newtag-form > table td input:focus-visible { box-shadow: 2px 2px 0 rgba(var(--edit-area-textarea-border-color)), -2px 2px 0 rgba(var(--edit-area-textarea-border-color)), -2px -2px 0 rgba(var(--edit-area-textarea-border-color)), 2px -2px 0 rgba(var(--edit-area-textarea-border-color)); } #edit-meta-newtag-form > div { margin: 1rem 0; padding: 0 !important; display: flex; grid-gap: 1rem; } hr { background: transparent; } [class|=colmod-link] { margin: 1rem 0; } .yui-navset .yui-nav li a, .yui-navset .yui-nav li.selected a { transition: color var(--general-transition-time-slow); } .hl-default, .hl-code, .hl-brackets, .hl-identifier { color: inherit; } #toc #toc-action-bar { top: 0.25rem; } :where(ol ul, ul ul) { list-style-type: circle; } .join-box a { color: rgba(var(--general-button-text-color)); background: rgba(var(--general-button-background-color)); } .join-box a:is(:hover, :active, :focus, :focus-within) { color: rgba(var(--general-hover-button-text-color)); background: rgba(var(--general-hover-button-background-color)); } .forum-thread-box .description-block { padding: 0.5em 1em; } .thread-container .post .long { padding: 0.5em; } #page-content > div.forum-thread-box > div.options, .post-container > .post > div.long > div.options { display: flex; justify-content: flex-end; } .signature { display: none; } .notepaper { max-width: 100%; } .bettercollap .collapsible-block-unfolded-link, .bettercollap .collapsible-block-folded { margin: 0; } @media (pointer: coarse) { #login-status #account-options:hover, #login-status #account-topbutton:hover + #account-options { opacity: 1; pointer-events: all; } } @media only screen and (max-width: 1024px) { html { scroll-padding-top: var(--topbar-height-on-mobile); } } a:is(:hover, :active, :focus, :focus-within) { text-decoration: none; } h1, h2, h3, h4, h5, h6 { color: inherit; } a#account-topbutton, #search-top-box-form .button, #edit-page-title, #edit-page-textarea, #edit-page-comments, #new-post-div input.text, #new-post-div textarea#np-text, #lock-info, .change-textarea-size a, div.buttons input, input.button, button, file, a.button, table.form td input, .new-page-box form input.text, #file-comments, .page-options-bottom a, .owindow .button-bar > a:not([onclick*=cleanAll]), .owindow div[style*=margin-top] a, .join-box a, .button-collap .collapsible-block-link, .button-collap [class|=colmod-link] a { border: solid 0.15rem rgba(var(--accent-color)); box-sizing: border-box; } table.wiki-content-table th, .darkblock, .dark-styled-quote { --page-title-text-color: var(--general-dark-text-color); --page-title-border-color: var(--general-dark-text-color); --hr-color: var(--general-dark-text-color); } .warnblock { --accent-color: var(--warning-text-color); --page-title-text-color: var(--warning-text-color); --page-title-border-color: var(--warning-text-color); --hr-color: var(--accent-color); } #header h1 a span { padding-top: 1rem; text-shadow: none; line-height: 1.2; } #header h1 a span::after { letter-spacing: 0.25em; } #header h2 { top: 0.5rem; } #top-bar { border-top: 0.15rem rgba(var(--accent-color)) solid; border-bottom: 0.15rem rgba(var(--accent-color)) solid; } #top-bar div[class*=top-bar] > ul > li > ul { border: solid var(--topbar-drop-border-width) rgba(var(--topbar-drop-border-color)); } #top-bar div[class*=top-bar] > ul > li > ul > li, #top-bar div[class*=top-bar] > ul > li > ul > li > ul > li { border: none; } #login-status > a > strong { color: rgba(var(--warning-color)); } a#my-account { color: rgba(var(--link-color)); } a#my-account:is(:hover, :active, :focus, :focus-within) { color: rgba(var(--hover-link-color)); } #page-title, .meta-title { display: flex; align-items: center; border-bottom: none; padding: 0; } #page-title::before, #page-title::after, .meta-title::before, .meta-title::after { content: ""; flex-grow: 1; height: 0.15rem; background-color: rgba(var(--accent-color)); } #page-title::before, .meta-title::before { margin-right: 1rem; } #page-title::after, .meta-title::after { margin-left: 1rem; } .page-tags::before { border-radius: 0.25rem 0.25rem 0 0; } .page-tags span { grid-gap: 0.8rem; padding-left: 0.3rem; } .page-tags span a { transition: color 0.15s; padding: 0; } .page-watch-options a:hover { text-decoration: none; } div[id*=page-options-bottom] > a { border: none; } #side-bar .side-block.media { border-bottom: solid 0.1333333333rem rgba(var(--sidebar-border-color)); } #side-bar .heading, #side-bar .collapsible-block-unfolded-link a, #side-bar .collapsible-block-folded a { justify-content: space-between; padding: 0 1em; margin-top: 0.9rem; font-size: 0.9rem; } #side-bar a.collapsible-block-link::before { display: none; } #side-bar a.collapsible-block-link::after { color: rgba(var(--accent-color)); } #side-bar .menu-item a { border-left: none; } .edit-help-34 { font-size: 0.8rem; } .edit-help-34 a { margin: 0; padding: 0; color: rgba(var(--link-color)); background: transparent; transition: color 0.15s; } .edit-help-34 a:is(:hover, :active, :focus, :focus-within) { color: rgba(var(--hover-link-color)); background: transparent; } #lock-info { padding: 1em; } a.action-area-close, #view-diff-div > p > a { background: transparent; } .pager a { transition: color 0.15s; } .pager a:is(:hover, :active, :focus, :focus-within) { color: rgba(var(--accent-color)); background: transparent; } #action-area > h1 + h2 + ul, #action-area > h1 + h2 ~ h2 ~ ul { margin: 0; } #action-area > h1 + h2 + ul li a, #action-area > h1 + h2 ~ h2 ~ ul li a { color: rgba(var(--link-color)); } .page-source { border: rgba(var(--accent-color)) dashed 0.15rem; } .yui-navset .yui-nav { box-shadow: 0 0.15rem 0 rgba(var(--tabview-horizon-color)); } .hl-main * { color: inherit; } .hl-comment, .hl-var, .hl-number { color: rgba(var(--accept-color)); } .hl-quotes, .hl-string, .hl-inlinedoc, .hl-url, .hl-builtin, .hl-reserved, .hl-special, .hl-inlinetags { color: rgba(var(--accent-color)); } :where(ol ul, ul ul) { list-style-type: circle; } div.wiki-note { font-weight: inherit; border: rgba(var(--note-border-color)) dashed 0.15rem; padding: 0.5rem 1rem; } .footnotes-footer, .bibitems { border: rgba(var(--footnote-block-border-color)) solid 0.15rem; border-left-width: 0.4rem; } .owindow .content > img + h1 + table, .owindow .content > img + h1 + table td { border-color: rgba(var(--accent-color), 0.18); } div.creditBottomRate { border-color: rgba(var(--accent-color)); } .lightblock { border: rgba(var(--accent-color)) solid 0.15rem; } .styled-quote { border: rgba(var(--styled-quote-border-color)) solid 0.15rem; border-left-width: 0.6rem; } .keycap { box-shadow: 0 0.125em 0 0.05em rgba(var(--accent-color)); } .licensebox a.collapsible-block-link { opacity: 1; color: rgba(var(--link-color)); transition: color 0.15s; } .licensebox a.collapsible-block-link:is(:hover, :active, :focus, :focus-within) { color: rgba(var(--hover-link-color)); } .sd-container { --sd-border: var(--black-color); --sd-symbol: var(--white-color); --sd-bullets: var(--black-color); --sd-text: var(--white-color); } .sd-container .top-box::before, .sd-container .header-diamond .diamond-pattern { display: none; } .warnblock { background: rgba(var(--warning-color)); color: rgba(var(--warning-text-color)); margin: 1rem 0; padding: 0.5rem 1rem; } .titleblock { background: rgba(var(--popup-background-color)); color: rgba(var(--popup-text-color)); border: rgba(var(--popup-border-color)) solid 0.15rem; margin: 1rem 0; padding: 0 1rem 0.5rem; } .titleblock > h1:first-child { background: rgba(var(--popup-title-background-color)); color: rgba(var(--popup-title-text-color)); padding: 0.5rem 1rem; margin: 0 -1rem 0.5rem; font-size: 1.25rem; } .accent { background: rgba(var(--general-dark-background-color)); color: rgba(var(--general-dark-text-color)); } .insert { background: rgba(var(--accept-color)); color: rgba(var(--accept-text-color)); } .delete { background: rgba(var(--warning-color)); color: rgba(var(--warning-text-color)); } .classic-title, .new-title { color: rgba(var(--page-title-text-color)); font-weight: 700; margin: 1rem 0; font-size: 2rem; font-family: var(--title-font); } .classic-title p, .new-title p { display: contents; } .classic-title { padding: 0 0 0.25rem; border-bottom: solid 0.15rem rgba(var(--page-title-border-color)); } .new-title { display: flex; align-items: center; } .new-title::after { content: ""; flex-grow: 1; height: 0.15rem; background-color: rgba(var(--accent-color)); margin-left: 1rem; } .button-collap .collapsible-block-link, .button-collap [class|=colmod-link] a { display: inline-block; padding: 0.5em; line-height: 1; color: rgba(var(--general-button-text-color)); background: rgba(var(--general-button-background-color)); transition: background var(--general-transition-time-fast); } .button-collap .collapsible-block-link:is(:hover, :active, :focus, :focus-within), .button-collap [class|=colmod-link] a:is(:hover, :active, :focus, :focus-within) { color: rgba(var(--general-hover-button-text-color)); background: rgba(var(--general-hover-button-background-color)); } .modal-collap li.unfolded > .colmod-link-end a { display: none; } .modal-collap li.unfolded > .colmod-link-top a:first-child { display: inline; } .modal-collap li.unfolded > .colmod-link-top a + a, .modal-collap li.unfolded > .colmod-content { display: flex; justify-content: center; align-items: center; position: fixed; width: 100%; height: 100%; top: 0; left: 0; z-index: 10; } .modal-collap li.unfolded > .colmod-link-top a + a { font-size: 0; backdrop-filter: blur(var(--general-blur)); background: rgba(var(--popup-fader-color)); border: none; } .modal-collap li.unfolded > .colmod-content { pointer-events: none; } .modal-collap div.modalbox > div:last-child { padding: 0.5rem 1rem; margin: 0; max-height: 47.5vh; overflow-y: auto; height: auto; min-height: 5rem; background: transparent; } .modal-collap div.modalbox > div:last-child h2 { margin: 0.35em 0; font-size: 1.75em; color: inherit; } .modal-collap.button-collap li.unfolded > .colmod-link-top a:first-child { display: inline-block; } .warning { --popup-title-background-color: var(--warning-color); --popup-title-text-color: var(--warning-text-color); --popup-border-color: var(--warning-color); } @media only screen and (max-width: 1024px) { #search-top-box-form .button { background: rgba(var(--search-button-text-color)); } #top-bar div[class*=top-bar] > ul > li > ul > li:nth-child(2n):nth-last-child(2) { box-shadow: none; } }
:root { --lh-red: #c0392b; --lh-blue: #2980b9; --lh-green: #27ae60; --lh-dark-green: #16a085; --lh-purple: #8e44ad; --lh-orange: #e67e22; --lh-yellow: #f1c40f; --lh-paper-bg: 255, 251, 240; --lh-string-color: 192, 57, 43; --lh-book-color: var(--gray-monochrome); --lh-tape-color: 90,90,90,0.3; --lh-white-bg: 249,249,249; --lh-dark-bg: 50, 50, 50; --lh-highlighter: var(--bright-accent); --lh-border-color: var(--gray-monochrome); --lh-wiki-note-color: var(--bright-accent) } /** * 旧代码合集 * 为了向下兼容而保留 */ .grid-container{display:flex;flex-direction:row;flex-wrap:wrap;width:100%}.grid-container,.grid-container [class*=grid]{box-sizing:border-box}[class*=grid]{padding:5px}.grid{width:100%}.grid-large{width:75%}.grid-big{width:50%}.grid-medium{width:33.33%}.grid-small{width:25%}@media screen and (min-width:768px){.wd-grid-large{width:75%}.wd-grid,.wd-grid-big{width:50%}.wd-grid-medium{width:33.33%}.wd-grid-small{width:25%}}.text-hover-hide{opacity:0;transition:opacity .3s}.text-hover-hide:hover{opacity:1}.text-block-hide{background:rgb(var(--black-monochrome));color:rgb(var(--black-monochrome));transition:background .3s}.text-block-hide:hover{background:0 0}.text-blur-hide,.text-blur-hover-hide{filter:blur(.3rem);-webkit-filter:blur(.3rem) transition: blur .3s}.text-blur-hover-hide:hover{filter:blur(0);-webkit-filter:blur(0)}.lyric-box{text-align:center;font-size:1.05rem;display:flex;flex-direction:column;flex-wrap:wrap;justify-content:center}.lyric-box p{margin:1.5em auto}.lyric-box.with-bigger-line p{margin:3em auto} /** * 便签纸 * notepaper */ .notepaper { background: linear-gradient(rgb(var(--lh-paper-bg)) 95%, #ddd 0); line-height: 2em; background-size: 100% 2em; background-attachment: local; border: 2em solid rgb(var(--lh-paper-bg)); box-shadow: 0 0.1rem 0.3rem rgba(0,0,0,0.2); padding: 0; margin: 1em auto; box-sizing: border-box; position: relative } .notepaper p { margin: 0; font-size: 1.05rem; letter-spacing: 0.1rem; line-height: inherit } .notepaper.narrow, .notepaper.wide { width: 90% } @media screen and (min-width:768px){ .notepaper.narrow { width: 50% } .notepaper.wide { width: 75% } } .notepaper.tight { border-width: 1rem; border-left-width: 1.2rem; border-right-width: 1.2rem; line-height: 1.8em; background-size: 100% 1.8em; font-size: 13px } .notepaper.with-string::before { content: ''; width: 0.5em; height: 6rem; background: rgb(var(--lh-string-color)); top: -2rem; right: -1rem; display: block; position: absolute; box-shadow: 0 0.1em 0.2em rgba(0,0,0,0.2); clip-path: polygon(-100% -100%,100% 0%,100% 100%,50% 98%,0% 100%); } .notepaper.with-tape::before { content: ''; border: 1px solid #ddd; background: rgba(var(--lh-tape-color)); width: 1.5em; height: 4em; transform: rotate(45deg); display: block; position: absolute; top: -3em; left: -1.8em } .notepaper.tight.with-string::before { top: -1rem; right: -0.25rem; } .notepaper.tight.with-tape::before { top: -2.5em; left: -1.3em } .notepaper.page { min-height: 36em; counter-increment: page; display: flex; flex-direction: column; justify-content: space-between } @media screen and (min-width:768px){ .notepaper.page { width: 70% } } .notepaper.page:after { content: counter(page); display: block; text-align: center } .notepaper-group { counter-reset: page; } .book-pattern { display: flex; flex-wrap: wrap; flex-direction: row } .book-pattern .notepaper.page:not(.notepaper > .notepaper) { width: 100% } @media screen and (min-width: 768px) { .book-pattern .notepaper.page:not(.notepaper > .notepaper) { width: 50% } } .book-wrapper { background: rgb(var(--lh-book-color)); padding: 0.5rem; box-shadow: 0 0.1rem 0.2rem rgba(0,0,0,0.2); border-radius: 5px; margin: 1rem auto } @media screen and (min-width: 768px) { .book-wrapper .notepaper { margin: 0 } } /** * 文字修饰 */ .text-highlighted { position: relative } .text-highlighted::before { content: ""; position: absolute; height: 0.9em; bottom: 2px; left: -2px; width: 105%; z-index: -1; background-color: rgb(var(--lh-highlighter)); opacity: .6; transform: skew(-15deg); transition: opacity .2s ease; border-radius: 3px 8px 10px 6px; transition: 0.1s ease background-color; } .text-underlined { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; text-decoration-color: rgb(var(--lh-highlighter)) } .text-wavy { text-decoration: underline wavy; text-underline-offset: 4px; text-decoration-color: rgb(var(--lh-highlighter)) } .text-circled, .text-squared { display: inline-block; border: 2px solid rgb(var(--lh-highlighter)); border-radius: 100%; box-sizing: border-box } .text-squared { border-radius: 0 } .text-shadow { text-shadow: 0.075em 0.075em 0 rgb(var(--lh-highlighter)) } .text-highlighted.td-red::before { background: var(--lh-red) } .text-circled.td-red, .text-squared.td-red { border-color: var(--lh-red) } .text-underlined.td-red, .text-wavy.td-red { text-decoration-color: var(--lh-red) } .text-highlighted.td-blue::before { background: var(--lh-blue) } .text-circled.td-blue, .text-squared.td-blue { border-color: var(--lh-blue) } .text-underlined.td-blue, .text-wavy.td-blue { text-decoration-color: var(--lh-blue) } .text-highlighted.td-green::before { background: var(--lh-green) } .text-circled.td-green, .text-squared.td-green { border-color: var(--lh-green) } .text-underlined.td-green, .text-wavy.td-green { text-decoration-color: var(--lh-green) } .text-highlighted.td-darkgreen::before { background: var(--lh-dark-green) } .text-circled.td-darkgreen, .text-squared.td-darkgreen { border-color: var(--lh-dark-green) } .text-underlined.td-darkgreen, .text-wavy.td-darkgreen { text-decoration-color: var(--lh-dark-green) } .text-highlighted.td-purple::before { background: var(--lh-purple) } .text-circled.td-purple, .text-squared.td-purple { border-color: var(--lh-purple) } .text-underlined.td-purple, .text-wavy.td-purple { text-decoration-color: var(--lh-purple) } .text-highlighted.td-yellow::before { background: var(--lh-yellow) } .text-circled.td-yellow, .text-squared.td-yellow { border-color: var(--lh-yellow) } .text-underlined.td-yellow, .text-wavy.td-yellow { text-decoration-color: var(--lh-yellow) } .text-highlighted.td-orange::before { background: var(--lh-orange) } .text-circled.td-orange, .text-squared.td-orange { border-color: var(--lh-orange) } .text-underlined.td-orange, .text-wavy.td-orange { text-decoration-color: var(--lh-orange) } /* 隐藏文字 */ .text-blank { color: rgba(0,0,0,0) } .text-block { background: rgb(var(--black-monochrome)); color: rgb(var(--black-monochrome)); } .text-blur { filter: blur(0.3em); -webkit-filter: blur(0.3em) } .text-hoverback, .text-selectback { transition-duration: 0.3s; transition-property: background, transform, color } .text-blank.text-hoverback:hover, .text-blank.text-selectback::selection, .text-blank.text-selectback *::selection { color: rgb(var(--black-monochrome)) } .text-block.text-hoverback:hover { background: transparent!important } .text-block.text-selectback::selection, .text-block.text-selectback *::selection { color: rgb(var(--white-monochrome, 255, 255, 255)) } .text-blur.text-hoverback:hover { filter: blur(0)!important; -webkit-filter: blur(0)!important } /** * 附加项 */ .with-border, .with-box-style { border: 1px solid rgb(var(--bright-accent)) } .with-border-dark { border: 1px solid rgb(var(--black-monochrome)) } .with-border-light { border: 1px solid rgb(var(--white-monochrome)) } .with-border-thick { border-width: 2px } .with-shadow-sm { box-shadow: 0 0 0.1em rgba(0,0,0,0.2) } .with-shadow { box-shadow: 0 0.1em 0.2em rgba(0,0,0,0.2) } .with-shadow-lg { box-shadow: 0 0.15em 0.3em rgba(0,0,0,0.2) } .with-shadow-xl { box-shadow: 0 0.2em 0.5em rgba(0,0,0,0.2) } .with-shadow-xxl { box-shadow: 0 0.25em 0.8em rgba(0,0,0,0.2) } .with-padding, .with-box-style { padding: 0.25em 1em } .with-p-sm { padding: 0.125em 0.5em } .with-p-lg { padding: 0.5em 2em } .with-margin, .with-box-style { margin: 1em auto } .with-m-sm { margin: 0.5em auto } .with-m-lg { margin: 2em auto } .with-narrow-width { width: 90%!important; margin-left: auto; margin-right: auto } @media screen and (min-width: 768px) { .with-narrow-width { width: 75%!important } } [class*="with-bg-"], [class*="with-bg-"] h1 { color: #fff!important } .with-bg-red { background: var(--lh-red)!important } .with-bg-blue { background: var(--lh-blue)!important } .with-bg-green { background: var(--lh-green)!important } .with-bg-darkgreen { background: var(--lh-dark-green)!important } .with-bg-yellow { background: var(--lh-yellow)!important } .with-bg-orange { background: var(--lh-orange)!important } .with-bg-purple { background: var(--lh-purple)!important } /** * 删除类 */ .offwith-shadow { box-shadow: none!important } .offwith-border { border: none!important } .offwith-padding, .offwith-pam { padding: 0!important } .offwith-margin, .offwith-pam { margin: 0!important } .offwith-width-limit { width: auto!important; margin-left: auto!important; margin-right: auto!important } div[class*="grider"].offwith-grid-gap { grid-gap: 0!important } /** * 网格布局 */ /* Gridder 容器 */ div[class*="gridder"] { display: grid; box-sizing: border-box; grid-gap: 1rem; padding: 0 } div[class*="gridder"] * { box-sizing: border-box } .gridder, .gridder-col-2 { grid-template-columns: 1fr 1fr; } .gridder-col-3 { grid-template-columns: repeat(3, 1fr); } .gridder-col-4 { grid-template-columns: repeat(4, 1fr); } @media screen and (min-width: 768px) { .pc-gridder, .pc-gridder-col-2 { grid-template-columns: 1fr 1fr; } .pc-gridder-col-3 { grid-template-columns: repeat(3, 1fr); } .pc-gridder-col-4 { grid-template-columns: repeat(4, 1fr); } } .spanner, .spanner-2 { grid-column-start: span 2; } .spanner-3 { grid-column-start: span 3; } /** * 告示组件 */ .signblock, .signblock-dark, .signblock-warn { margin: 1rem auto; box-shadow: 0 0.1rem 0.3rem rgba(0,0,0,0.4); background: rgb(var(--lh-white-bg)); font-size: 1.05rem; padding: 2rem } @media screen and (min-width: 768px) { .signblock, .signblock-dark, .signblock-warn { width: 75% } } .signblock-dark, .signblock-dark h1 { background: rgb(var(--lh-dark-bg)); color: #fff } .signblock-warn, .signblock-warn h1 { background: var(--lh-red); color: #fff } .signblock h1, .signblock-dark h1, .signblock-warn h1 { text-align: center; font-size: 2rem; margin: 0; font-weight: 700 } .signblock-img { display: flex; flex-direction: row; justify-content: center } .signblock-img img { width: 8em } .signblock-footer { font-size: 0.9em; text-align: center; margin: 0.5rem 0; font-weight: bolder; display: block } /** * 报告 */ .reportblock, .reportblock-dark { border: 2px solid rgb(var(--lh-border-color)); box-shadow: 0 0.1rem 0.2rem rgba(0,0,0,0.3); background: rgb(var(--white-monochrome)); padding: 0.8rem 1.5rem; padding-bottom: 0.4rem; margin: 1.5rem auto; margin-bottom: 1rem; position: relative } .reportblock hr, .reportblock-dark hr { background-color: rgb(var(--lh-border-color)); margin-left: -1.5rem; margin-right: -1.5rem } .reportblock h1:first-child, .reportblock-dark h1:first-child { position: absolute; top: -1rem; left: 1.5rem; font-size: 110%; font-weight: 600; background: rgb(var(--lh-border-color)); color: #fff; padding: 0.2rem 0.5rem; margin: 0; } .reportblock-dark, .reportblock-dark h1 { border-color: rgb(var(--lh-white-bg)); background: rgb(var(--lh-dark-bg)); color: #fff } .reportblock-dark hr { background-color: rgb(var(--lh-white-bg)); } /* 更好的折叠框 */ .bettercollap { margin: 1em 0; } .bettercollap .collapsible-block { width: auto; overflow: hidden; border: 1px solid rgb(var(--lh-border-color)) } .bettercollap .collapsible-block-content, .bettercollap .collapsible-block-link { background: rgb(var(--white-monochrome)); padding: 0.5em } .bettercollap .collapsible-block-content { padding-left: 1em; padding-right: 1em } .bettercollap .collapsible-block-link { color: rgb(var(--lh-border-color)); background: rgb(var(--white-monochrome)); transition: .3s; display: block; } .bettercollap .collapsible-block-link:hover, .bettercollap .collapsible-block-unfolded .collapsible-block-link, .styledcollap.bettercollap .collapsible-block-link { color: rgb(var(--white-monochrome)); background: rgb(var(--lh-border-color))!important; text-decoration: none } .bettercollap .collapsible-block-link:hover a { color: rgb(var(--white-monochrome)) } .bettercollap .collapsible-block-link::before { content: "\25BC"; display: inline-block; margin-right: 0.5em; transform: rotate(-90deg) scale(0.9) } .bettercollap .collapsible-block-unfolded .collapsible-block-link::before { transform: rotate(0) scale(0.9) } .bettercollap .collapsible-block + .collapsible-block { border-top: none } .styledcollap.bettercollap .collapsible-block { border-radius: 2px; box-shadow: 0 0.1rem 0.2rem rgba(0,0,0,0.3) } .styledcollap.bettercollap .collapsible-block-content { background-color: rgb(var(--pale-gray-monochrome)); border-width: 3px } .styledcollap.bettercollap .collapsible-block-link:hover { background: rgba(var(--lh-border-color),0.95)!important; } /** * 提示框 */ .infoblock { color: #f1f1f1; font-weight: bold; background: #424242; padding: 5px 5px 5px 5px; border-radius: 4px; margin: -0.5rem 0 1rem 0; display: block; width: fit-content; padding-right: 25px; } .infoblock::before { content: "ⓘ " } /** * 单页迭代 */ .offset-page:not(:target), .offset-page:target ~ div#u-default-page { display: none } .offset-page:target { display: block }
您正在阅读过时的文档
近期得到的证据表明Entity AS-27不是独立物种,因此条目Entity AS-27 - “乘客”已被归档。
关于该条目的相关后续事务,请关注后室通用数据库官方公告。
通用数据库
2065年3月14日
Entity AS-27
Entity AS-27,中文正式名为“乘客”,是一种只在Level 903(后室地铁)出现的类人实体。该实体目前仅观察到两名具有独立外貌特征的个体,分别编号为C-403-A与C-403-B。
描述
由于后室地铁及其列车过于罕见,目前对Entity AS-27的研究极其有限,因此关于其行为学特征的描述只能由零散的报告以及经验拼凑而成。不应完全相信本文档的一切内容,还请流浪者遭遇实体时根据实际情况行动。
Entity AS-27外表上与人类基本无异,拥有完整的五官与独立的意识反应。两个个体始终维持着在列车车厢内面对面落座的状态。
该实体最早于2015年前后被观察到。最初,人们认为其只是两名因长期流浪而患有严重创伤后应激障碍(PTSD)的幸存者。然而,随着长达数十年的追踪监测,研究人员发现两人的衰老速度与列车行驶的物理时长完全同步,且从未离开过各自的座位。
自2015年首次被目击以来,Entity AS-27从未被记录到发出过任何人声。所有记录都表明实体仅表现出轻微的生理性颤抖或压抑的抽泣,甚至其处境已经相当危险时,也从未发出呼救或交流。没有证据可以充分说明实体对人类具有敌意,事实上,除去上文所述的极端条件外,Entity AS-27很少对外界变化或刺激产生反应。尽管如此,我们依然不建议流浪者主动与实体进行互动。
实体表现出极低的基础代谢,但在特定条件下会进行补给。当车厢内出现可供免费获取的食物或淡水(如层级内自发的商贩)时,两名实体会表现出一种镜像式的攫取动作。他们仅摄取维持生命最低限度的份量,且在进食过程中依然保持沉默。
另一个有趣的现象是,尽管在50年前就已被目击,该实体始终没有留下任何照片。我们认为这与“解放”的袭击有着些许联系,有关该实体的影像资料很有可能在2025年前后的浩劫中被销毁。
行为准则
应该:
- 保持冷静,无视其存在。
不应:
- 暴力攻击实体。
- 做出(人类认知中的)挑衅行为。
- 与其进行言语交流或者肢体接触,这类行为通常没有任何效果。
新邮件
Backrosoft Interlook®
发件人:A-L. Lee (V4)
收件人:E. J. Hopkins (V6)
主题:实体AS-27的归档问题
想必你已经知道,我们的Entity AS-27已经在后室地铁中消失了。的确,这种实体对我们来说的确没有什么研究价值;然而游手好闲的流浪者似乎对此事十分在意…他们急切地想知道“乘客”的去向,我们的服务器因此正面临着一定的压力。还请你尽快把这个条目归档,并将舆情平息到可控范围内。
另外,向你透露一个消息。我们的条目管控总监收到消息,“乘客”出现的那节列车上出现了一些有意思的东西。你一定猜不到那意味着什么。那是一叠木浆纸,看起来是某个人类留下的;这样的东西,今天差不多在前厅的博物馆里才能见到。我们的人费了不少功夫才把它从几个匿名的流浪者手里交换过来,而它承载着相当令人震惊的情报。这份资料,我很快就找人送到你的办公室来。想来文件夹这个东西,上次用还是三十年前,还真是令人怀念啊。
我想,我们不得不直面五十年前我们的前辈犯下的一个不大不小的错误,而现在看来,这样的错误还有不少呢。
诚挚的,
李,条目管控副总监
3月13日,2065年
五十年前的二月十四日,我在开往宜居地带的列车上遇见了你。
你穿着淡黄色外套和浅绿色长裙,我穿着深灰色长裤和墨绿色上衣。
列车从后室地铁出发,在无垠城市和宜居地带停靠两次,然后回到原点,又沿着不同的路线运行。你匆匆忙忙地提着包,灰头土脸地登上列车,坐在我对面的座位上。
你坐下了,就在我对面。你看着窗外,我看着你。我上下打量了一下你,觉得你长得真好看,觉得你是个值得交往的人。这想法真肤浅,真荒谬,不是吗?我历尽坎坷才来到这儿,我应该去宜居地带,我应该去为了生存奔波,可是你——你为什么这样巧地登上这趟列车呢?我想问你一句话,随便什么。比如,你是从哪儿来的?那样太唐突了,你会觉得我是个疯子,或者是个不怀好意的歹徒。你往这边看了一眼,我迅速扭过头去,全神贯注盯着列车另一头。
没有对视。绝对的寂静,只有车厢门关上时的摩擦声。
蓝天白云和断壁残垣渐渐远去了,下一站是宜居地带,那是我要去的地方。
列车扎进蓝色的深渊,车厢没有灯,周遭的一切黯淡下来。我们的影子在地板上颤动,不时重叠在一起,但我们的目光似乎依然平行。我的脖子扭得很酸——为了不让你觉得我在偷看,我强迫自己看向相反的方向。
很快蓝色就渐渐褪去了,宜居地带单调的灰白色逐渐占据上风。车门叹了口气,慢慢滑向两边。
后室地铁不论在哪一个层级都说得上是稀罕物,只听得外面的站台上有人在呼喊,有新鲜的空气钻进车厢。我把手抓在挎包的带子上。按照原定的计划,我现在就该站起来,走出去,我们的生命从此不再有任何交集。
但我不愿意动,我用余光看着你,发现你也没有要起身的意思。你低着头,盯着自己的膝盖,手紧紧拽着那个包。我松开了手,任由挎包滑回座位上。很好,那么,就让列车继续开下去吧。
眼见着就要发车了,你缓慢抬起头,看向了我,眼里浮起惊愕。就在这时,车门发出一声沉闷的排气声,慢慢合上了。列车晃动了一下,开始重新加速。很快列车扎进蓝色的深渊,车厢没有灯,周遭的一切黯淡下来。我们的影子在地板上颤动,不时重叠在一起,但我们的目光似乎依然平行。
列车又回到了后室地铁。在这里定居的个中流浪者似乎没有注意到我又回来了,依旧只是喧闹;很快列车上又来了两三个乘客,选定了自己的目的地。车门在沉闷的排气声中慢慢合上,列车又一次扎进蓝色的深渊。
这样转了两三圈过后,我觉得我应该说点什么才好。列车刚刚开过椰树岛,那真是个不错的地方,就是无法切出的特性有点讨厌,我们来聊聊这个吧?不,那样的层级简直是老掉牙了,更何况这样一个封闭的层级似乎也不会有人想要了解。那么,你想必是前厅的人,你的故乡是哪里呢?你看起来像一个亚洲人,可我也不愿意胡乱下这样武断的结论…不,不这样简直看起来是在滋生事端了。于是我最终没有说话。
抬头时你恰好也在看我。你的眼睛很好看,墨绿色的。
列车没有介意我们这样的古怪乘客,一次又一次地发车,返回,发车,返回;车站的钟敲了一下又一下,第四个来回时,半天过去了。在这里和我玩这样无聊的游戏真是在浪费生命,你还不离开吗?我想看你果决地站起来,在哪个站点下车去,那样至少能给我尘埃落定的遗憾而不是这样拉锯的纠缠。可你没有下车,看来你是要让这样的游戏进行下去。
你也真是很幸运,像我这样一般软弱的人,思索着这时推辞反而是我的无礼了。于是,我们的影子继续在车厢中摇曳。半周后我的手机就关机了,尽管我在上车后根本不曾打开。只要在有无线网络的地方,我的手机就要收到一个又一个的短信。大概都是问我在哪,我是活着还是死了。手机关机之后,这些算是消停了一些,可我是连看以下手机消遣的权利都没有了,盯着窗外的目光也就更加涣散。
后来我推算出,列车跑一趟正好就是大约三个小时。为了消磨时间,我饶有兴致地数列车的行程,大概是数到第八十个来回的时候我放弃了。仅剩的消遣就是看这个动作本身。我们的对视越来越久,你墨绿色的眼睛倒映出的却总是很类似——疑惑、好奇、慌张和困倦。我们的生物钟越来越接近,于是我总是要装睡来观察你熟睡的模样。很快,一班列车的时长显得微不足道了。一个月过去,我们还奇迹般地坐在原来的位置上。天知道我们是怎样撑过去的。探险者总署的一众反对派总是要在列车停泊的间隙,走进车厢游荡着宣传。他们用来收买宣传对象的糖果和罐头帮了大忙,我们就是靠着这些才活了下来。
又是一个月,两个月,三个月。我们还是在原来的位置上看着彼此。蓝色通道的景色一如既往,来分发传单的叛乱组织成员换了一批又一批——毕竟造反这行风险的确太大了。也许是生命本身的节律,又也许是学到了那些叛乱者们的精髓,我每隔几个月就会有“时机成熟”的错觉,似乎我不得不说些什么,评论两句,或者肆无忌惮地抒发我那早就被磨平的爱慕之情。你似乎也知道我要说,似乎也想说。我们弓着背,对着彼此,眉毛没有节律地蹙缩着,呼吸也比原来局促。但我总是在思索,像我这样浅薄又粗俗的人,怎样才能使我的谈吐配得上你这样的女孩呢?就这样僵持上几个来回,原本要说的话完全忘掉了。于是车厢又一次归于寂静。
起初我还数日子,八个来回算作一天,这我是清楚的。后来,我只能通过你鬓角那一缕头发的颜色,或者我指甲生长的次数来判断时间。你我的头发越来越长,每隔一段时间你就要用自己的剪刀修剪;我则是用口袋中的小刀直接把太长的部分割掉。我多余的指甲,我会在你入睡后用牙咬下来,免得叫你看到——毕竟这样的行为实在算不得一个绅士的所作所为
后来,外面的世界好像发生了什么巨大的变化。当列车开进不夜城时,她已经被烧成了焦黑的废墟。再也没有人来搭便车了。后室地铁的人越来越多,传单上的标语也越来越激进。蓝色通道升起了大雾,列车在浓雾里跑了大概五年,我们只能在列车停泊时短暂见面。大雾散去后,我看着对面的座椅,发现你的眼角已经有了细密的纹路。
很快探险者总署的人又出现了。他们拿着步枪、手枪、土质的手榴弹,搭上路过的列车,向后室地铁进攻。那天你特别慌张,因为地铁上来了三十多个全副武装的不速之客,上车后讲着难懂的名词。列车开到后室地铁过后,你我都能看见站台上那些人饿狼一般嗜血的眼神。
交火很快爆发了,但一切都是如此安静…我们还是像往常那样坐着,但是额头上都有了汗滴。直到这个车厢也开始交战,一颗流弹打在我身旁的车窗上,以一个诡异的角度弹开,从你我之间划过。你惊叫了一声,几乎站了起来,却没有做到;车门在交火声中慢慢合上,那些意欲撤退的人疯狂捶打着车门,他们身后,紧接着便是来自手提式机关枪的一阵激烈的扫射。子弹没有击穿车体和车窗,我背后的窗户却鲜血淋漓。
列车晃动了一下,开始重新加速。很快列车扎进蓝色的深渊。地板上,残留的血迹还不时掠过蓝紫色的光。我们颤抖着对视,几乎要哭喊出来,但最终车厢里只回荡了几声难以察觉的抽泣。
多么幸运,这一切以一个美丽的好结局结尾。在以叛乱者的宣传维生一年后,又开始有人在车厢上派发起了糖果,大声宣布着叛乱者已经被肃清的消息。后室地铁的乘客又多了起来,这里又成了反对派的基地。冲突依然像往常一样起起伏伏,不知有多少条人命葬送在这个车厢里。我们还是像往常一样,时而接近,时而疏远。
我们就这样,在这班列车上,生活了五十年。
有一天你看了一眼邻座手上的报纸,突然泪如雨下。我像当时拿挎包一样伸出了手,却又缩回去。你为什么而哭呢?也许是你察觉到流逝的时间不再回来?也许你发现我们终究是走不到一起的陌路人?亦或者你终于想起来自己的目的地了?我不知道,我怎么会知道呢?真希望我身旁也能有个人拿着一份报纸,让我和你一起痛哭一番才好啊,那样我们也许就算交流过一次了。
只是太迟了,一切都没有机会了。二〇六五年二月十四日,列车停靠在不夜城。你颤颤巍巍着站了起来,可想而知这有多难——你已经五十年未曾站起来过了。你面对着车门,墨绿色的眼睛浮起光,用余光凝视着我,似乎要等我出手挽留。我也该说几句话了吧,哪怕是当作挽留一个交情浅薄的老友也好…蓝天白云和断壁残垣渐渐取代了无尽的蓝色。车厢里,绝对的寂静,只有车厢门打开时的摩擦声。
我什么都没说。
你的身影渐渐远去。
再也没有对视。绝对的寂静,只有车厢门关上时的摩擦声。
蓝天白云和断壁残垣渐渐远去了,下一站是宜居地带,那也许才是我真正要去的地方。
五十年里,我排演了无数出戏,一时而觉得自己保守着秘密,一会儿又觉得自己还是太像一个市侩,只能看着你这样的女孩。我总说,这没什么大不了的,大家都是路人,何必弄得那么肤浅,那么难看。恋爱没意思,孤独才自由。
你看,我在这样的戏剧中如鱼得水,我的演技把自己都骗了过去。我历尽坎坷才来到这儿,我本应该去宜居地带,我本应该去为了生存奔波。结果,我们就这样在列车上消磨了五十年的时光,这样说来,你也是个和我一样的演员了。你让我看到了世界上最好的女孩,她美好到我无论如何压抑我内心的黑暗都难以企及,就像贝雅特里齐之于但丁;可是我比但丁平庸太多了,我不过是个漂泊无依的流浪者,哪怕是在最宜居的层级都安不下身来,靠给探险者总署捉刀写点文章混一口饭吃。所以直到最后一刻我还在斟酌辞令呀,你会为此感到失落吗?五十年的沉默我们都捱过去了,一句告别究竟还有没有意义呢,我不知道。
无论如何我要再去不夜城一趟。这样想着,列车经过了宜居地带,又走了几个来回。要到不夜城还要很久,但我可以等。又是若干个完全一样的蓝色深渊,以及各不相同的层级在我面前。手机电量耗尽后,我就没有看过数据库了,不知道探险者总署是不是还在维护这些可爱的档案们;这些层级的编号我也当然不知道,但是我敢肯定这些地方我都见过,而且总有你的身影阻挡我的视线。沿路的流浪者想必也注意到了,听说他们管我们叫什么“乘客”之类的东西。我想,如果有人发现列车上的“乘客”少了一个的话,我们也许又会被上报给探险者总署——如果它还存在的话——之类的当局吧。
大概一天后,列车又一次停靠在不夜城的郊区。后室地铁不论在哪一个层级都说得上是稀罕物,只听得外面有人在呼喊,新鲜的空气钻进车厢。我坐在原地,你没有来。
蓝天白云和断壁残垣渐渐远去了,下一站是宜居地带,那是我本来真正要去的地方。列车扎进蓝色的深渊,车厢没有灯,周遭的一切黯淡下来。我的影子在地板上颤动,那个令我感到不自在的人却不见了。
后来的事记得不甚清楚。只知道很快蓝色就渐渐褪去了,宜居地带单调的灰白色逐渐占据上风。列车停下时,外面有几个人颇惊异地指着车厢议论着些什么,终究没有听见。
车门叹了口气,慢慢滑向两边。于是我撑着扶手勉强站了起来,看向窗外苍白的灯光。车外的人一哄而散,而我把包挎在肩上,离开了车厢。
献给我。
——EnderstrayKPC

