: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 }
:root { --nusd-speed: 1; } /*岛*/ .ic_wrap-box { } /*上*/ .ic_wrap-box .ic_top-left-box { animation: right0 calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; } .ic_wrap-box .ic_top-left-box .ic_text { animation: right0 calc(1.1s / var(--nusd-speed) ); animation-fill-mode: forwards; } .ic_wrap-box .ic_h-icon { animation: ic-right calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; animation-delay: calc(0.3s / var(--nusd-speed)); opacity: 0; } .ic_wrap-box .ic_r-icon { animation: ic-right calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; animation-delay: calc(0.4s / var(--nusd-speed)); opacity: 0; } .ic_wrap-box .ic_s-icon { animation: ic-right calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; animation-delay: calc(0.5s / var(--nusd-speed)); opacity: 0; } /*sd*/ .ic_wrap-box .ic_sd-box { clip-path: polygon(0% 0%,0.4rem 0%,0.4rem 0%,0% 0%); animation: fadeIn-nu-exit calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; } .ic_wrap-box .ic_infobox-1,.ic_wrap-box .ic_infobox-2 { clip-path: polygon(0% 0%,0.4rem 0%,0.4rem 0%,0% 0%); animation: fadeIn-nu-env calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; animation-delay: calc(0.1s / var(--nusd-speed)); } .ic_wrap-box .ic_infobox-3 { clip-path: polygon(0% 0%,0.4rem 0%,0.4rem 0%,0% 0%); animation: fadeIn-nu-enti calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; animation-delay: calc(0.2s / var(--nusd-speed)); } /*字*/ .ic_wrap-box .ic_sd-box .ic_text { animation: rightin2 calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; } .ic_wrap-box .ic_sd-box .ic_sd { animation: rightin2 calc(1.1s / var(--nusd-speed) ); animation-fill-mode: forwards; } .ic_wrap-box .ic_infobox-1 .ic_text { animation: rightin calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; animation-delay: calc(0.1s / var(--nusd-speed)); } .ic_wrap-box .ic_infobox-1 .ic_info { animation: rightin calc(1.1s / var(--nusd-speed) ); animation-fill-mode: forwards; animation-delay: calc(0.1s / var(--nusd-speed)); } .ic_wrap-box .ic_infobox-2 .ic_text { animation: rightin calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; animation-delay: calc(0.2s / var(--nusd-speed)); } .ic_wrap-box .ic_infobox-2 .ic_info { animation: rightin calc(1.1s / var(--nusd-speed) ); animation-fill-mode: forwards; animation-delay: calc(0.2s / var(--nusd-speed)); } .ic_wrap-box .ic_infobox-3 .ic_text { animation: rightin calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; animation-delay: calc(0.3s / var(--nusd-speed)); } .ic_wrap-box .ic_infobox-3 .ic_info { animation: rightin calc(1.1s / var(--nusd-speed) ); animation-fill-mode: forwards; animation-delay: calc(0.3s / var(--nusd-speed)); } /*info*/ .ic_wrap-box .ic_add-h { clip-path: polygon(50% 0%,50% 0%,50% 100%,50% 100%); animation: ic-add-h calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; animation-delay: calc(0.3s / var(--nusd-speed)); } .ic_wrap-box .ic_add-r { clip-path: polygon(50% 0%,50% 0%,50% 100%,50% 100%); animation: ic-add-r calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; animation-delay: calc(0.4s / var(--nusd-speed)); } .ic_wrap-box .ic_add-s { clip-path: polygon(50% 0%,50% 0%,50% 100%,50% 100%); animation: ic-add-s calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; animation-delay: calc(0.5s / var(--nusd-speed)); } /*字*/ .ic_wrap-box .ic_add-h .ic_text { animation: rightin2 calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; animation-delay: calc(0.5s / var(--nusd-speed)); } .ic_wrap-box .ic_add-h .ic_info { animation: rightin calc(1.1s / var(--nusd-speed) ); animation-fill-mode: forwards; animation-delay: calc(0.5s / var(--nusd-speed)); } .ic_wrap-box .ic_add-r .ic_text { animation: rightin2 calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; animation-delay: calc(0.6s / var(--nusd-speed)); } .ic_wrap-box .ic_add-r .ic_info { animation: rightin calc(1.1s / var(--nusd-speed) ); animation-fill-mode: forwards; animation-delay: calc(0.6s / var(--nusd-speed)); } .ic_wrap-box .ic_add-s .ic_text { animation: rightin2 calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; animation-delay: calc(0.7s / var(--nusd-speed)); } .ic_wrap-box .ic_add-s .ic_info { animation: rightin calc(1.1s / var(--nusd-speed) ); animation-fill-mode: forwards; animation-delay: calc(0.7s / var(--nusd-speed)); } .ic_addbox .ic_text,.ic_addbox .ic_info{ opacity: 0; } /*bubor*/ .ic_top-box { animation: ic-border calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; } .ic_wrap-box { border-bottom: rgba(var(--ic_border-color), 0) solid var(--ic_interspace); animation: ic-border calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; animation-delay: calc(0.7s / var(--nusd-speed)); } @keyframes ic-right { 0% { transform: translateX(-1rem); transform: rotate(30deg); opacity: 0; } 80% { transform: translateX(-1rem); transform: rotate(30deg); opacity: 0; } 100% { transform: translateX(0); transform: rotate(0deg); opacity: 1; } } @keyframes ic-border { 0% { border-bottom: rgba(var(--ic_border-color), 0) solid var(--ic_interspace); } 100% { border-bottom: rgba(var(--ic_border-color), 1) solid var(--ic_interspace); } } @keyframes ic-add-h { 0% { clip-path: polygon(50% 0%,50% 0%,50% 100%,50% 100%); background-color: rgba(var(--ic_border-color), 1); } 100% { clip-path: polygon(0% 0%,100% 0%,100% 100%,0% 100%); background-color: rgba(var(--ic_add-habitability-bg-color), 1); } } @keyframes ic-add-r { 0% { clip-path: polygon(50% 0%,50% 0%,50% 100%,50% 100%); background-color: rgba(var(--ic_border-color), 1); } 100% { clip-path: polygon(0% 0%,100% 0%,100% 100%,0% 100%); background-color: rgba(var(--ic_add-resource-bg-color), 1); } } @keyframes ic-add-s { 0% { clip-path: polygon(50% 0%,50% 0%,50% 100%,50% 100%); background-color: rgba(var(--ic_border-color), 1); } 100% { clip-path: polygon(0% 0%,100% 0%,100% 100%,0% 100%); background-color: rgba(var(--ic_add-signal-bg-color), 1); } } /*nusd*/ /*左*/ .sdnumber p { opacity: 0; animation: right0 calc(2s / var(--nusd-speed)); animation-fill-mode: forwards; } .sdnumber p { opacity: 0; animation: right0 calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; } .sdnumber strong { opacity: 0; animation: right0 calc(1.2s / var(--nusd-speed) ); animation-fill-mode: forwards; } .sdnumber .lines { opacity: 0; animation: fadeIn-nu-sd calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; } /*右*/ .sd-container .exit { animation: fadeIn-nu-exit calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; } .sd-container .environment { animation: fadeIn-nu-env calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; } .sd-container .entity { animation: fadeIn-nu-enti calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; } .sd-container .syntax .sd{ animation: rightin calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; } .sd-container .syntax p strong { animation: rightin calc(1.05s / var(--nusd-speed) ); animation-fill-mode: forwards; } .class.customclass strong::after{ animation: no-opacity calc(1.05s / var(--nusd-speed) ); animation-fill-mode: forwards; } /*字*/ /*ex*/ .sd-container .exit strong { animation: rightin2 calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; } .sd-container .exit p span:nth-child(3) { animation: rightin2 calc(1.1s / var(--nusd-speed) ); animation-fill-mode: forwards; } /*ev*/ .sd-container .environment strong { animation: rightin2 calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; } .sd-container .environment p span:nth-child(3) { animation: rightin2 calc(1.1s / var(--nusd-speed) ); animation-fill-mode: forwards; } /*en*/ .sd-container .entity strong { animation: rightin2 calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; } .sd-container .entity p span:nth-child(3) { animation: rightin2 calc(1.1s / var(--nusd-speed) ); animation-fill-mode: forwards; } /*动画*/ @keyframes clip0 { 0% { clip-path: inset(0 0 100% 0); } 100% { clip-path: inset(0 0 0 0); } } @media only screen and (min-width: 1071px) { .sd-container .border { animation: border-spin-pc calc(1s / var(--nusd-speed) ); transform-origin: right; } @keyframes border-spin-pc { 0%{ clip-path: polygon(0% 0%,0% 0.4rem,0% 0.4rem,0% 0%); transform: scaleX(5000%); } 30% { clip-path: polygon(0% 0%,0% 0.4rem,100% 0.4rem,100% 0%); transform: scaleX(5000%); opacity: 1; } 60% { clip-path: polygon(0% 0%,0% 100%,100% 100%,100% 0%); transform: scaleX(5000%); opacity: 1; } 100% { transform: scaleX(100%); opacity: 1; } } .sdnumber p { animation-delay: calc((2s / var(--nusd-speed))*0.6); } .sdnumber p { animation-delay: calc((1s / var(--nusd-speed))*0.6); } .sdnumber strong { animation-delay: calc((1.2s / var(--nusd-speed))*0.6); } .sdnumber .lines { animation-delay: calc((1s / var(--nusd-speed))*0.6); } } @media only screen and (min-width: 620px) and (max-width: 1070px) { .sd-container .border { animation: border-spin-mo calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; } } @media only screen and (max-width: 620px) { .sd-container .border { animation: border-spin-mo calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; } .sd-container .exit { clip-path: polygon(0% 0%,0.4rem 0%,0.4rem 0%,0% 0%); animation-delay: 0; animation-fill-mode: forwards; } .sd-container .environment { clip-path: polygon(0% 0%,0.4rem 0%,0.4rem 0%,0% 0%); animation-delay: calc(0.5s / var(--nusd-speed) ); animation-fill-mode: forwards; } .sd-container .entity { clip-path: polygon(0% 0%,0.4rem 0%,0.4rem 0%,0% 0%); animation-delay: calc(1s / var(--nusd-speed) ); animation-fill-mode: forwards; } } @keyframes border-spin-mo { 0% { clip-path: polygon(50% 0%,50% 100%,50% 100%,50% 0%); } 70% { clip-path: polygon(50% 0%,50% 100%,50% 100%,50% 0%); opacity: 1; } 100% { clip-path: polygon(0% 0%,0% 100%,100% 100%,100% 0%); opacity: 1; } } @keyframes rightin { 0% { transform: translateX(-1rem); opacity: 0; } 80% { transform: translateX(-1rem); opacity: 0; } 100% { transform: translateX(0); opacity: 1; } } @keyframes rightin2 { 0% { transform: translateY(1rem); opacity: 0; } 80% { transform: translateY(1rem); opacity: 0; } 100% { transform: translateY(0); opacity: 1; } } @keyframes upin0 { 0% { transform: translateY(1rem); opacity: 0; } 100% { transform: translateY(0); opacity: 1; } } @keyframes right0 { 0% { transform: translateX(-1rem); opacity: 0; } 100% { transform: translateX(0); opacity: 1; } } @keyframes fadeIn-nu-sd { 0% { clip-path: polygon(0% 0%,0% 0%, -10% 100%,0% 100%); transform: rotateY(180deg); } 100% { clip-path: polygon(0% 0%,200% 0%, 100% 100%,0% 100%); transform: rotateX(0deg); opacity: 1; } } @keyframes upin1 { 0% { transform: translateY(1rem); opacity: 0; } 50% { transform: translateY(1rem); opacity: 0; } 100% { transform: translateY(0); opacity: 1; } } @keyframes upin2 { 0% { transform: translateY(1rem); opacity: 0; } 50% { transform: translateY(1rem); opacity: 0; } 75% { transform: translateY(0); opacity: 1; } 100% { transform: translateY(0); opacity: 1; } } @keyframes fadeIn-nu-exit { 0% { clip-path: polygon(0% 0%,0.4rem 0%,0.4rem 0%,0% 0%); } 25% { clip-path: polygon(0% 0%,0.4rem 0%,0.4rem 100%,0% 100%); } 100% { clip-path: polygon(0% 0%,100% 0%,100% 100%,0% 100%); } } @keyframes fadeIn-nu-env { 0% { clip-path: polygon(0% 0%,0.4rem 0%,0.4rem 0%,0% 0%); } 25% { clip-path: polygon(0% 0%,0.4rem 0%,0.4rem 100%,0% 100%); } 100% { clip-path: polygon(0% 0%,100% 0%,100% 100%,0% 100%); } } @keyframes fadeIn-nu-enti { 0% { clip-path: polygon(0% 0%,0.4rem 0%,0.4rem 0%,0% 0%); } 25% { clip-path: polygon(0% 0%,0.4rem 0%,0.4rem 100%,0% 100%); } 100% { clip-path: polygon(0% 0%,100% 0%,100% 100%,0% 100%); } } @keyframes no-opacity { 0% { opacity: 0; } 25% { opacity: 0; } 100% { opacity: 1; } }
输入:竹色正浓
为您找到三篇相关文章:
录集1
你醒了
昨夜,你于Level3中丢掉了一根手指,依稀记得被三只猎犬追逐的可怖日子:
你不幸切入了level 3,看着手中的文档,这似乎是个不宜久留的危险地带。探索了十分钟后,你只找到了一瓶杏仁水。“这真是个破地方!”你在心里暗暗咒骂。不过这十分钟内你没有遇到任何实体,只有萦绕在你耳边的噪音与单调令人发狂的砖墙陪伴着你在这个层级中穿行。又过了五分钟,你漫无目的的游荡,在层级内寻找着文档中已探明的出口。突然,一个分岔路口传来令人胆寒的咆哮声,这是你再熟悉不过的——猎犬的声音。你的脚僵在了原地,不知何时已经软了下去,直到看到那三只猎犬的模样时,你才想起来,一场生死的追逐要开始了。
你切入这片正处于寂静中的竹林时,已是凌晨时分。此时的你只希望上天赠予你的这条逃生之路是个安全的地方。你的伤势比较严重,食指已经被咬断,大腿上也有数不清的伤口和划痕。你的每一步都是无比艰难,却又每一步都是在向光明迈进。你在这片竹林漫步了许久,终于找到了一间竹林中的小屋,你小心翼翼的摸索至门边,屋内设施齐全,并且空无一人,你走入房间,嚎啕大哭起来……………………不久,你给自己做好了包扎,在这昏沉的暮色中缓缓睡去。
过了一会,你的手中空无一物 —— 因为你已经把最后的那瓶杏仁水泼了出去。此刻的你犹如一只热锅中的蚂蚁,在滚烫的蒸锅里拼命想去抓住那最后的一丝希望…………
很不幸,上天并没有眷顾你的命运,你最终还是跑入了一个死胡同。那三只猎犬在入口直勾勾的盯着你,发出呜咽的声音………………
你死死的贴近墙壁,整个人都开始发抖。“难道这就是我的终局了吗?”你脑海里不断地浮现出这个声音,这个声音在你的心中动荡,在你的脑中游龙。你强迫自己冷静下来,但这无疑只会点燃你心中不安的火焰。随着一滴液体从你的裤脚滴落,你控制不住的大叫了出来…………
你撕心裂肺的咆哮贯彻了整个层级,那三只猎犬己然被你的叫声刺激到,争先恐后的扑上来捕食…………
回想到这里,你不禁从床上惊醒。被子已经被捏出了褶皱,随着一滴汗珠从脸颊滑落,你转头一看,你身体覆盖的地方都已经湿了。你从床上爬起来,从木屋的窗外伸入的阳光格外耀眼。你看了看自己的手,这个层级并没有带给你什么奇迹——你的食指已被咬去大约一半,现在仍在简易的包扎中。
看着冲过来的三只猎犬,不知怎的,你竟充满了斗争的欲望,一想着自己是为了活下去而战,你就没有了一丝一毫的顾虑………………
当你成功打退了那三只猎犬后,一股恐惧感却油然而生,先前的斗志不再,你每一步动作都变得迟疑且忐忑,你把视线向左移去——那是一块扎了三颗钉子的木板,你没有丝毫犹豫,先收一步捡起木板随后鼓足气势举向空中。那三只猎犬已然被你的气势所吓退,向后跑了几步并转头发出不甘的呜咽声。你步步逼近,看着离你视线越来越近的死胡同入口,“只要出去那个地方!”然而,你的威压引起了三只猎犬的反抗——你无视了它们的警告。看着三三两两袭来的猎犬,你的心里再次涌上一股刺骨的凉意,你的背后冷汗直冒。其中一只猎犬咆哮着向你奔来,看着它身后另外的两只猎犬,你的心中有些忌惮,看着近在咫尺的攻击,你的牙齿打颤,闭着眼睛用木板向前拍去…………
“已经天亮了吗?”你拖着疲惫不堪的身体向屋外走去。“貌似我切入的时候都已经快天亮了啊……”你没有睡好,整个凌晨都在Level 3的噩梦中徘徊,你摸了一下食指的伤口,一股沉闷的痛感传来,看了看天边高挂的義和1,你向着这片竹林的深处走去。
你手中的木板狠狠地拍在了那只猎犬上,那只猎犬吃痛,发出一声不甘的嘶吼,你成功解决掉了一只,但你的木板也因此裂成了二块。另外两只猎犬显然被你的所作所为惊吓到,继续往后退了几步,直至逼近死胡同的入口,快了,就快了。你心里不停这么暗示着,因此你操之过急,错误的将这两把“利刃”提前拍在了两只猎犬上。那两只猎犬向后一撤,你的二块木板狠狠的拍在地上,木板的震荡很快传到了你的手上。很明显你扭到了手,这不是一个好的新闻,地上的木板已被砸破,无法使用,虽然你已经丧失了能自卫的东西,但是已经没有时间值得你去反击了,你的心仅在一瞬间就被恐惧完全占领。那两只猎犬发疯似的冲上来,你跌倒了,显然,这个层级的地板不能很好的把你的头稳稳接住,仅是一瞬间你就陷入了昏迷。这就是终局了吧…………你已彻底不想反抗,也许就这么葬身在这个地方也挺好。你的意识渐渐消散,但在最后一刻,你的眼前竟逐渐浮现出母亲的轮廓。
记忆逐渐清晰,你想起了自己是如何来到这里的。
啊,我已经感受不到疼痛了,但看着自己被撕咬的双腿,这股疼痛应该如针砭刺骨吧…………
啊,母亲,最后一刻,我的眼前仍是您和父亲的笑容。坠入这宛如地狱之境,我本已毫无指望,亦或是想过一死了之。直到再次看到您们的那一刻,我指望的是什么,似乎已经明了了。啊,母亲!报道失踪的那一天,您是否不敢置信呢?………………
先前与猎犬战斗的绝境于你的心中点燃了火焰,可不久,你的行为开始忐忑,这股烈火似已完全散尽。现在,死神已毫无保留的站在你的面前之时,纵然终局已定,你也未放弃这生的希望。原来这烈火的根基已深深埋入了你的心田。大脑的指令通过身体的神经组织传达到身体各部,你开始尝试切出………………
录集2
LEVEL
活着
生存等级生存等級
1 级級
逃离逃離:2/5
略难逃离略難逃離
环境環境:0/5
无环境风险無環境風險
实体實體:0/5
无敌对实体無敵對實體
活着,带着人类的意志
描述
终于,你在经历生与死的痛苦后,心中燃起的点点光芒指引你切入了这个层级。你或许没能逃脱一些极端组织烧杀抢掠的魔爪,或许险些葬身在实体的攻击之下…………我不能确定,但我唯一能确定的是,你已被后室所认可了。
我在哪?
本层级为一片常青的绿色竹林所构成,空间并非无限,而是以层级中心的木屋向外辐射,面积仅为1632000平方米。本层存在昼夜循环,遵循24小时的昼夜循环模式。气温舒适,随时节所变化。通俗意义上来说,本层级存在“一年四季”的说法,不同时节也拥有与前厅中相吻合的气候特征。
本层由竹林与竹林中的小屋两个部分构成:
竹林
竹色正浓
竹林是构成本层级的一个重要部分,约占整个层级的70%。其中不存在原生动物,仅有不计其数的翠竹伫立于此。竹林中的翠竹均属禾本科香竹属。会随时节而散发香气。这些香竹花期通常不固定,且花期过后便会出现大面积的枯死。随后,这些枯落的香竹将化为土地的一部分,并再度萌芽出新的香竹。2
竹林内的土壤均为优质的黑土,这些优质的土壤能够给予整个层级内的竹子过剩的养分。并且我们观察到,该层级内部的香竹在成熟后并不会再汲取土壤内部的养分。
竹林中的香竹被认为是可以破坏的,这些竹子外部虽坚如磐石,但根部并未深入土壤。因此,若要采取这些竹子作为材料,从根部拔出不失为一个不错的选择。
林中小屋
众多屋舍的其中一间
层级的正中心设有一座规模较小的村落,由层级中心向四周扩张,目前可容纳35人。从绝境中涅磐的流浪者通常会出现在层级中心区域,因此,他们通常可以在短时间内找到可供疗伤的栖息之地。
这些房屋均由竹料构成,其结构稳固,除故意破坏外无任何风险。房屋的内部十分质朴:仅有一张竹床、一张桌子、一把椅子以及一个储物箱,对向大门的一面装有一扇竹帘。无论流浪者来到层级前受过何种伤势,储物柜中总能出现与其对应的医疗用品。
这些房屋的几何尺寸通常为:高3米,长10米,宽7米。每栋房屋旁均设有与其对应的耕作设施,流浪者可通过播撒储物柜中随机出现的作物种子以供给其基本的生存。
我会遇到什么危险吗?
并不会
实际上,这里完全参考于前厅。流浪者在进入本层级时,所有有关后室的物品都将在进入层级的一瞬间风化直至湮灭。本层不存在除人类社团外任何的实体,不如先放下您的戒备——您已战胜了你所遇到的致命威胁,再次迎接您的将不会再是地狱之景。
这个层级会带给我们什么?
严格来说,这个层级拥有自我意识。
这意味着层级可以随时根据层级境内流浪者人数的变化调整自己的形态,亦或是直接掌控流浪者的生死。举个例子:
我们的社团曾有过60人的顶峰,层级的面积也因此扩大至2456000平方米。不过由于多数的流浪者在伤口痊愈后选择切出,人数最终稳定在了如今的20~28人。
换一种通俗易懂的说法:本层级内的流浪者无法死亡,甚至任何伤害性物质都将被极大的避免。因此,我们不会因极端的环境而忐忑不安,不用因实体的威胁而瞻前顾后。
此外,本层级拥有一个特殊效应——如果这可以算作它对我们的恩赐。
复苏
“复苏”是本层级独有的特殊效应,其通常表现为:作物的高速生长、伤口愈合时间减少及缺失身体组织的快速恢复。
鉴于进入层级的流浪者均已受到较为致命的创伤,本层级可以使流浪者在三天内恢复自己于其他层级中丢失的身体组织。曾有一位天生失明且于后室出生的流浪者切入该层级。不久,报告称他已恢复视力。因此,我们推测“复苏”可以治愈流浪者与生俱来的生理残疾。
你们是谁?
我们是由16人组成的人类社区。主要目标为教导新的流浪者如何生存与共享我们所得的资源。我们不隶属于任何组织,只是一群仍然渴望前厅的游子。我们驻扎在这里,就是为了让来到这里的每一个流浪者都能拾回他们的希望。
我怎样离开呢?
很明了
入口
当你在死亡的大门前徘徊时,眼前是否又泛起前厅中的点点回忆?抓住它,抓住这最后一缕情念。
出口
理应来说,触摸房间中的竹帘可以将流浪者带到他们心中所想的任何层级。
录集3:
“竹影翠,苦根不通。路无悔,祸从口出”
每当谈论起与竹子有关的歌谣时,你的记忆总会飘回前厅中的那个下午。你正百无聊赖的倚在窗前阅读,阳光肆意的扑洒在你购买的那本《活着》上。你很自然的将书签贴在当前的页数——198页上。 你又将读完一本新书,显然,这不是你想象中的巨著,但绝对是一个十分感人且值得深挖的好故事。
来到后室前你曾是一名作家与业余乐手,而到那时你已八个月未出版任何东西了。这段时间你算过的困苦,与出版第一本书时的你形成了鲜明的对比。此时,风正吹过树叶的缝隙,透入出租屋的窗户中。这股凉风一页一页的拨动你所出版的第一本书,最终停在了这本书的最后一页。你愣了神,视线聚焦在书页最后一行的
“二〇一〇年七月 徐浩轩”上。
“喂,妈”
“儿子,妈想你了。你啥时候回来看看啊”
“妈,我…………我有……”
你顿住了。回想起来,你已有一年未曾回过家,此番虽手头空闲,却也只是习惯性地想回绝。想起自己对父母生活的缺失,听到电话那头传来母亲温柔而真切的声音,你毅然做了决定——回乡。
“喂?”
“妈……………我马上叫车,回来看你们。”
“好………儿子长大了………我叫你老汉整几好道菜等你。”
“嗯………好……好……………嗯妈,我先去叫车了。”
“路上注意安全。”
“好,妈,那先挂了,我去叫车”
“再见”
“拜拜”
衣服胡乱地被塞进行李箱中,你拨出快车的电话…………猛然想起自己未吃过任何东西,你看向时钟,已是14:26。简单的吃完一桶泡面,拿起行李箱,你关上家中的大门。
你登上车,将行李箱放入后备箱。车内闷热的气息扑面而来,简单的询问了司机是否从高速经过后,你开启车窗,在迎面的热风下缓缓睡去。
再睁眼,你已回到了家乡。车缓缓的驶过,你将头探出车窗,两旁的街景一览无余。付完车费,你走入街道旁的商店,望向商店的货架,大脑一头雾水。最终还是买了两瓶白酒与一桶食用油,付完钱后,你左手拖着行李箱,右手提着超市的袋子和食用油,向家门口走去。
“咚咚咚”
你敲了敲门,屋内传来母亲的声音:“来了”
她并没有直接开门,而是转头与父亲说了一句:“肯定是你儿子”
你听出了母亲言语间的欣喜,幻想着家人团聚的情景,竟不自觉地露出微笑。她小心翼翼的推开门,将头探出;看到是你后,她将门拉到底,张开双臂,给予你一个用劲的拥抱。
母亲抱得紧又松得快。她朝屋里喊:“我就说嘛,你儿回来了。”声音直直破开空气。父亲从厨房钻出来,袖子撸到胳膊肘,围裙溅着油星。他点点头,喉咙动了动,却最终什么也没说出来。
饭菜冒着热气:酸菜鱼汤上飘着红油花,米饭堆得冒尖儿,三只碗沿桌排开,筷子直直横在筷枕上。
你坐下。父亲夹过一块鱼肉放在你碗中,母亲熏的一块肥瘦相间的腊肉,一块块夹在你的碗里……碗里很快堆出小山………你埋头吃饭,油灯把三个人影投上墙,影子随着火苗在地板跳动。
饭碗见底。父亲推开凳子:“后院香竹绿了,看竹子去。”
后院门发出一声闷响,竹林亮在眼前。竹竿朝上生长,新竹在黄昏中显得格外鲜艳,老竹也并未变得黑沉。竹节鼓着包,细枝条比直立着,只有梢尖叶子正往下挂。风扫过,竹叶互相撞着。
“还是香竹。”父亲用指节刮竹皮,“老辈子定的。”
你摸摸竹竿,凉气往手指里去,敲上去很响。抬头看,竹梢戳破黄昏。
“为啥非种它?”你问。
父亲抠出一截竹根。根须绞成团,泥巴糊满须。“看这。”他鞋底蹭掉泥,
“石头里钻出来的。”根上坑坑洼洼,“别的竹子根软,见石头就躲。香竹根硬,有缝就钻。”
母亲站在竹林深处:“六零年挨饿,后山树皮啃光了,靠它救命。”指甲划过竹竿上一道黄色的深槽,“竹根磨粉煮糊,竹筒装水,竹枝当柴烧。”
风变猛,竹子乱晃,叶子嗡嗡作响。
父亲捡起半截断竹:“断了也死不了。”他把断竹插回土里,“开春照样冒笋。”月光爬过他眼角皱纹,“人不如竹。你爷爷去年走,笋子照发不误。”
母亲的手拍上你后背,那巴掌又薄又硬。三人站在竹林中间,竹影在脸上爬。头顶上,空气从叶缝漏下来。
风卷着竹叶响,清香漫过石阶。父亲背挺得像根老竹,慢慢走回房子里。
母亲掀开里屋的布帘。一股霉味扑出。她踮着脚,胳膊伸长,从立柜顶上取下捆好的被褥,灰尘从空中飘落。草席铺上床,发出干响。她抓起枕头,对着床沿拍打两下,瘪下去的枕芯慢慢地鼓起来。
你拖过墙角那张方凳。凳腿刮着水泥地,发出锐响。吉他横放在腿上,琴箱的木头抵着小腹,手指搭上冰凉的钢弦,虎口卡住琴颈。指甲在弦上刮过,“嗡——”一声震颤在空气里传开。你从口袋里拿出线圈本与圆珠笔,笔尖悬在本子上方。手指在纸上来回蹭,找下笔的位置。你构思着歌的内容,圆珠笔终于落下去,笔声响起。
“南山有群竹,沿河盛开而繁茂;
常言竹骨坚韧,取下可成箭。
燕荡通天道,身染污泥无光照;
常言不惧陷毙,血肉散尽可成仙。
苦不尽,海无穷,行路长,泥不污。
竹影翠,苦根不通,路无悔,祸从口出。
爱上层楼,爱上层楼。
”
箭头连起这段,纸页翻过去。手指突然停住,悬在半空不动,笔尖戳向纸面,你将最后一笔落了下去。
后院的风吹过,带着竹叶的清苦味吹到后颈。你拨了一下最粗的那根弦。“噔”,一个干巴的单音响起。手指在几根弦上来回滑动,食指用力,右手拇指往下一扫。“嘣”,一个和弦在房间回响。
你停下,圆珠笔在本子上某个字上划掉又重写。再拨弦,声音似乎亮了一点。喉结上下滚了滚,你深吸一口气,胸膛微鼓,嘴唇张开,气流擦过声带,一点低哑的震动冒了头,又被咽了回去。手指重新按上琴颈,把金属弦压进木头里,指关节绷紧。
门帘轻晃一下,布帘子被掀开半边。父亲就站在门的阴影里,油灯勾出他半边肩膀与下巴的轮廓。母亲靠着门站在他侧方,半个身子藏在门框的阴影里。两个人一声不吭,只是直挺挺地立在门口。
琴弦还在颤抖。你的右手悬在琴箱上方,左手还死死按着那弦。房间只剩琴箱残余的共鸣。父亲耷拉着眼皮,目光看向你按弦的手。他的手指无意识地搓了搓裤子。母亲的身体向前微倾着,脖子伸得长长的,像是要从这空气里抓住点什么东西。风不知什么时候停了,后院竹林那一片声响也彻底没了。油灯的火苗跳了一下,父母有些不知所措,母亲于是只是微微笑了笑,拉上了门与父亲一同离去。
五天后,你在自建房的前院告别父母。母亲把腰挺直,咧着嘴笑,看着你。父亲依旧拄着拐杖,耷拉着眼皮。上车之前,母亲与你交代过许多事,顺便将家里熏的半块腊肉放在你的包中。父亲仍然是一言不发,母亲轻轻掐了掐他的手,他才嘴里吐出一句:“路上注意安全”。
你看着眼前的二人,眼里掺杂着欣慰与不舍。你上车后,看向侧边窗户外招手的母亲,你招手回应了她,又看向父亲,他一直望着你,车开走时,他也只是一直望着你离去的背影,轻轻叹了口气。
二〇一五年三月 徐浩轩
…………
然而,一切关于前厅的幻梦都已崩塌,你在自己的电子设备中搜索“返乡可能”四字………
阅读大量文本后的你,深知回到家乡已变成一种玩笑………漫步在沉寂的空气中,你踩着脚下沉痛的道路,看向电子屏幕内紧急通报的新闻。
« Level XL-78 | 活着 | Level XL-80 »


