/* PaperMod v7 License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE Copyright (c) 2020 nanxiaobei and adityatelange Copyright (c) 2021-2024 adityatelange */ :root { --gap: 24px; --content-gap: 20px; --nav-width: 1024px; --main-width: 720px; --header-height: 60px; --footer-height: 60px; --radius: 8px; --theme: rgb(255, 255, 255); --entry: rgb(255, 255, 255); --primary: rgb(30, 30, 30); --secondary: rgb(108, 108, 108); --tertiary: rgb(214, 214, 214); --content: rgb(31, 31, 31); --code-block-bg: rgb(28, 29, 33); --code-bg: rgb(245, 245, 245); --border: rgb(238, 238, 238); } .dark { --theme: rgb(29, 30, 32); --entry: rgb(46, 46, 51); --primary: rgb(218, 218, 219); --secondary: rgb(155, 156, 157); --tertiary: rgb(65, 66, 68); --content: rgb(196, 196, 197); --code-block-bg: rgb(46, 46, 51); --code-bg: rgb(55, 56, 62); --border: rgb(51, 51, 51); } .list { background: var(--code-bg); } .dark.list { background: var(--theme); } *, ::after, ::before { box-sizing: border-box; } html { -webkit-tap-highlight-color: transparent; overflow-y: scroll; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; } a, button, body, h1, h2, h3, h4, h5, h6 { color: var(--primary); } body { font-family: -apple-system, BlinkMacSystemFont, segoe ui, Roboto, Oxygen, Ubuntu, Cantarell, open sans, helvetica neue, sans-serif; font-size: 18px; line-height: 1.6; word-break: break-word; background: var(--theme); } article, aside, figcaption, figure, footer, header, hgroup, main, nav, section, table { display: block; } h1, h2, h3, h4, h5, h6 { line-height: 1.2; } h1, h2, h3, h4, h5, h6, p { margin-top: 0; margin-bottom: 0; } ul { padding: 0; } a { text-decoration: none; } body, figure, ul { margin: 0; } table { width: 100%; border-collapse: collapse; border-spacing: 0; overflow-x: auto; word-break: keep-all; } button, input, textarea { padding: 0; font: inherit; background: 0 0; border: 0; } input, textarea { outline: 0; } button, input[type="button"], input[type="submit"] { cursor: pointer; } input:-webkit-autofill, textarea:-webkit-autofill { box-shadow: 0 0 0 50px var(--theme) inset; } img { display: block; max-width: 100%; } .not-found { position: absolute; left: 0; right: 0; display: flex; align-items: center; justify-content: center; height: 80%; font-size: 160px; font-weight: 700; } .archive-posts { width: 100%; font-size: 16px; } .archive-year { margin-top: 40px; } .archive-year:not(:last-of-type) { border-bottom: 2px solid var(--border); } .archive-month { display: flex; align-items: flex-start; padding: 10px 0; } .archive-month-header { margin: 25px 0; width: 200px; } .archive-month:not(:last-of-type) { border-bottom: 1px solid var(--border); } .archive-entry { position: relative; padding: 5px; margin: 10px 0; } .archive-entry-title { margin: 5px 0; font-weight: 400; } .archive-count, .archive-meta { color: var(--secondary); font-size: 14px; } .footer, .top-link { font-size: 12px; color: var(--secondary); } .footer { max-width: calc(var(--main-width) + var(--gap) * 2); margin: auto; padding: calc((var(--footer-height) - var(--gap)) / 2) var(--gap); text-align: center; line-height: 24px; } .footer span { margin-inline-start: 1px; margin-inline-end: 1px; } .footer span:last-child { white-space: nowrap; } .footer a { color: inherit; border-bottom: 1px solid var(--secondary); } .footer a:hover { border-bottom: 1px solid var(--primary); } .top-link { visibility: hidden; position: fixed; bottom: 60px; right: 30px; z-index: 99; background: var(--tertiary); width: 42px; height: 42px; padding: 12px; border-radius: 64px; transition: visibility 0.5s, opacity 0.8s linear; } .top-link, .top-link svg { filter: drop-shadow(0 0 0 var(--theme)); } .footer a:hover, .top-link:hover { color: var(--primary); } .top-link:focus, #theme-toggle:focus { outline: 0; } .nav { display: flex; flex-wrap: wrap; justify-content: space-between; max-width: calc(var(--nav-width) + var(--gap) * 2); margin-inline-start: auto; margin-inline-end: auto; padding: 10px 0; } .nav a { display: block; } .logo, .primary-menu { display: flex; margin: auto var(--gap); } .logo { flex-wrap: inherit; } .logo a { font-size: 24px; font-weight: 700; } .logo a img, .logo a svg { display: inline; vertical-align: middle; pointer-events: none; transform: translate(0, -10%); border-radius: 6px; margin-inline-end: 8px; } button#theme-toggle { font-size: 26px; margin: auto 4px; } body.dark #moon { vertical-align: middle; display: none; } body:not(.dark) #sun { display: none; } .primary-menu { list-style: none; word-break: keep-all; overflow-x: auto; white-space: nowrap; } .primary-menu li + li { margin-inline-start: var(--gap); } .primary-menu a { font-size: 16px; } .primary-menu .active { font-weight: 500; border-bottom: 2px solid; } .lang-switch li, .lang-switch ul, .logo-switches { display: inline-flex; margin: auto 4px; } .lang-switch { display: flex; flex-wrap: inherit; } .lang-switch a { margin: auto 3px; font-size: 16px; font-weight: 500; } .logo-switches { flex-wrap: inherit; } .main { position: relative; min-height: calc(100vh - var(--header-height) - var(--footer-height)); max-width: calc(var(--main-width) + var(--gap) * 2); margin: auto; padding: var(--gap); } .page-header h1 { font-size: 40px; } .pagination { display: flex; } .pagination a { color: var(--theme); font-size: 13px; line-height: 36px; background: var(--primary); border-radius: calc(36px / 2); padding: 0 16px; } .pagination .next { margin-inline-start: auto; } .social-icons a { display: inline-flex; margin: 10px 10px 10px 0px; } .social-icons a svg { height: 26px; width: 26px; } code { direction: ltr; } div.highlight, pre { position: relative; } .copy-code { display: none; position: absolute; top: 4px; right: 4px; color: rgba(255, 255, 255, 0.8); background: rgba(78, 78, 78, 0.8); border-radius: var(--radius); padding: 0 5px; font-size: 14px; user-select: none; } div.highlight:hover .copy-code, pre:hover .copy-code { display: block; } .first-entry { position: relative; display: flex; flex-direction: column; justify-content: center; min-height: 220px; margin: var(--gap) 0 calc(var(--gap) * 2); } .first-entry .entry-header { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; } .first-entry .entry-header h1 { font-size: 34px; line-height: 1.3; } .first-entry .entry-content { margin: 14px 0; font-size: 16px; -webkit-line-clamp: 3; } .first-entry .entry-footer { font-size: 14px; } .home-info .entry-content { -webkit-line-clamp: unset; } .post-entry { position: relative; margin-bottom: var(--gap); padding: var(--gap); background: var(--entry); border-radius: var(--radius); transition: transform 0.1s; border: 1px solid var(--border); } .post-entry:active { } .tag-entry .entry-cover { display: none; } .entry-header h2 { font-size: 24px; line-height: 1.3; } .entry-content { margin: 8px 0; color: var(--secondary); font-size: 14px; line-height: 1.6; } .entry-footer { color: var(--secondary); font-size: 13px; } .entry-hint { color: var(--secondary); } .entry-hint-parent { display: flex; justify-content: space-between; } .entry-cover { font-size: 14px; margin-bottom: var(--gap); text-align: center; } .entry-cover img { border-radius: var(--radius); pointer-events: none; width: 100%; height: auto; } .entry-cover a { color: var(--secondary); box-shadow: 0 1px 0 var(--primary); } .page-header, .post-header { margin: 24px auto var(--content-gap); } .post-title { margin-bottom: 2px; font-size: 40px; } .post-description { margin-top: 10px; margin-bottom: 5px; } .post-meta, .breadcrumbs { color: var(--secondary); font-size: 14px; } .breadcrumbs { margin-bottom:10px; } .post-meta .i18n_list li { display: inline-flex; list-style: none; margin: auto 3px; box-shadow: 0 1px 0 var(--secondary); } .breadcrumbs a { font-size: 14px; } .post-content { color: var(--content); } .post-content h3, .post-content h4, .post-content h5, .post-content h6 { margin: 24px 0 16px; } .post-content h1 { margin: 40px auto 32px; font-size: 40px; } .post-content h2 { margin: 32px auto 24px; font-size: 32px; } .post-content h3 { font-size: 24px; } .post-content h4 { font-size: 20px; } .post-content h5 { font-size: 18px; } .post-content h6 { font-size: 16px; } .post-content a, .toc a:hover { box-shadow: 0 1px; box-decoration-break: clone; -webkit-box-decoration-break: clone; } .post-content a code { margin: auto 0; border-radius: 0; box-shadow: 0 -1px 0 var(--primary) inset; } .post-content del { text-decoration: line-through; } .post-content dl, .post-content ol, .post-content p, .post-content figure, .post-content ul { margin-bottom: var(--content-gap); } .post-content ol, .post-content ul { padding-inline-start: 20px; } .post-content li { margin-top: 5px; } .post-content li p { margin-bottom: 0; } .post-content dl { display: flex; flex-wrap: wrap; margin: 0; } .post-content dt { width: 25%; font-weight: 700; } .post-content dd { width: 75%; margin-inline-start: 0; padding-inline-start: 10px; } .post-content dd ~ dd, .post-content dt ~ dt { margin-top: 10px; } .post-content table { margin-bottom: var(--content-gap); } .post-content table th, .post-content table:not(.highlighttable, .highlight table, .gist .highlight) td { min-width: 80px; padding: 8px 5px; line-height: 1.5; border-bottom: 1px solid var(--border); } .post-content table th { text-align: start; } .post-content table:not(.highlighttable) td code:only-child { margin: auto 0; } .post-content .highlight table { border-radius: var(--radius); } .post-content .highlight:not(table) { margin: 10px auto; background: var(--code-block-bg) !important; border-radius: var(--radius); direction: ltr; } .post-content li > .highlight { margin-inline-end: 0; } .post-content ul pre { margin-inline-start: calc(var(--gap) * -2); } .post-content .highlight pre { margin: 0; } .post-content .highlighttable { table-layout: fixed; } .post-content .highlighttable td:first-child { width: 40px; } .post-content .highlighttable td .linenodiv { padding-inline-end: 0 !important; } .post-content .highlighttable td .highlight, .post-content .highlighttable td .linenodiv pre { margin-bottom: 0; } .post-content code { margin: auto 4px; padding: 4px 6px; font-size: 0.78em; line-height: 1.5; background: var(--code-bg); border-radius: 2px; } .post-content pre code { display: grid; margin: auto 0; padding: 10px; color: #d5d5d6; background: var(--code-block-bg) !important; border-radius: var(--radius); overflow-x: auto; word-break: break-all; } .post-content blockquote { margin: 20px 0; padding: 0 14px; border-inline-start: 3px solid var(--primary); } .post-content hr { margin: 30px 0; height: 2px; background: var(--tertiary); border: 0; } .post-content iframe { max-width: 100%; } .post-content img { border-radius: 4px; margin: 1rem 0; } .post-content img[src*="#center"] { margin: 1rem auto; } .post-content figure.align-center { text-align: center; } .post-content figure > figcaption { color: var(--primary); font-size: 16px; font-weight: 700; margin: 8px 0 16px; } .post-content figure > figcaption > p { color: var(--secondary); font-size: 14px; font-weight: 400; } .toc-wrapper { border: 1px solid var(--border)!important; background: var(--code-bg)!important; border-radius: var(--radius)!important; } .dark .toc-wrapper { background: var(--entry); border: 1px solid var(--border); } .toc details summary { cursor: zoom-in; margin-inline-start: 20px; } .toc details[open] summary { cursor: zoom-out; } .toc .details { display: inline; font-weight: 500; } .toc .inner { margin: 0 20px; padding: 10px 20px; } .toc li ul { margin-inline-start: var(--gap); } .toc summary:focus { outline: 0; } .post-footer { margin-top: 56px; } .post-footer > * { margin-bottom: 10px; } .post-tags { display: flex; flex-wrap: wrap; gap: 10px; } .post-tags li { display: inline-block; } .post-tags a, .share-buttons, .paginav { border-radius: var(--radius); background: var(--code-bg); border: 1px solid var(--border); } .post-tags a { display: block; padding: 0 14px; color: var(--secondary); font-size: 14px; line-height: 34px; background: var(--code-bg); } .post-tags a:hover, .paginav a:hover { background: var(--border); } .share-buttons { padding: 10px; display: flex; justify-content: center; overflow-x: auto; gap: 10px; } .share-buttons li, .share-buttons a { display: inline-flex; } .share-buttons a:not(:last-of-type) { margin-inline-end: 12px; } h1:hover .anchor, h2:hover .anchor, h3:hover .anchor, h4:hover .anchor, h5:hover .anchor, h6:hover .anchor { display: inline-flex; color: var(--secondary); margin-inline-start: 8px; font-weight: 500; user-select: none; } .paginav { display: flex; line-height: 30px; line-height:1.2; font-size: 90%; } .paginav a { padding:14px; border-radius: var(--radius); } .paginav .title { letter-spacing: 1px; text-transform: uppercase; font-size: small; color: var(--secondary); } .paginav .prev, .paginav .next { width: 50%; } .paginav span:hover:not(.title) { box-shadow: 0 1px; } .paginav .next { margin-inline-start: auto; text-align: right; } [dir="rtl"] .paginav .next { text-align: left; } h1 > a > svg { display: inline; } img.in-text { display: inline; margin: auto; } .buttons, .main .profile { display: flex; justify-content: center; } .main .profile { align-items: center; min-height: calc(100vh - var(--header-height) - var(--footer-height) - (var(--gap) * 2)); text-align: center; } .profile .profile_inner { display: flex; flex-direction: column; align-items: center; gap: 10px; } .profile img { border-radius: 50%; } .buttons { flex-wrap: wrap; max-width: 400px; } .button { background: var(--tertiary); border-radius: var(--radius); margin: 8px; padding: 6px; transition: transform 0.1s; } .button-inner { padding: 0 8px; } .button:active { transform: scale(0.96); } #searchbox input { padding: 4px 10px; width: 100%; color: var(--primary); font-weight: 700; border: 2px solid var(--tertiary); border-radius: var(--radius); } #searchbox input:focus { border-color: var(--secondary); } #searchResults li { list-style: none; border-radius: var(--radius); padding: 10px; margin: 10px 0; position: relative; font-weight: 500; } #searchResults { margin: 10px 0; width: 100%; } #searchResults li:active { transition: transform 0.1s; transform: scale(0.98); } #searchResults a { position: absolute; width: 100%; height: 100%; top: 0; left: 0; outline: none; } #searchResults .focus { transform: scale(0.98); border: 2px solid var(--tertiary); } .terms-tags li { display: inline-block; margin: 10px; font-weight: 500; } .terms-tags a { display: block; padding: 3px 10px; background: var(--tertiary); border-radius: 6px; transition: transform 0.1s; } .terms-tags a:active { background: var(--tertiary); transform: scale(0.96); } .terms-tags li span { display:none; } .bg { color: #cad3f5; background-color: #24273a; } .chroma { color: #cad3f5; background-color: #24273a; } .chroma .x { } .chroma .err { color: #ed8796; } .chroma .cl { } .chroma .lnlinks { outline: none; text-decoration: none; color: inherit; } .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; } .chroma .hl { background-color: #474733; } .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em; color: #8087a2; } .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em; color: #8087a2; } .chroma .line { display: flex; } .chroma .k { color: #c6a0f6; } .chroma .kc { color: #f5a97f; } .chroma .kd { color: #ed8796; } .chroma .kn { color: #8bd5ca; } .chroma .kp { color: #c6a0f6; } .chroma .kr { color: #c6a0f6; } .chroma .kt { color: #ed8796; } .chroma .n { } .chroma .na { color: #8aadf4; } .chroma .nb { color: #91d7e3; } .chroma .bp { color: #91d7e3; } .chroma .nc { color: #eed49f; } .chroma .no { color: #eed49f; } .chroma .nd { color: #8aadf4; font-weight: 700; } .chroma .ni { color: #8bd5ca; } .chroma .ne { color: #f5a97f; } .chroma .nf { color: #8aadf4; } .chroma .fm { color: #8aadf4; } .chroma .nl { color: #91d7e3; } .chroma .nn { color: #f5a97f; } .chroma .nx { } .chroma .py { color: #f5a97f; } .chroma .nt { color: #c6a0f6; } .chroma .nv { color: #f4dbd6; } .chroma .vc { color: #f4dbd6; } .chroma .vg { color: #f4dbd6; } .chroma .vi { color: #f4dbd6; } .chroma .vm { color: #f4dbd6; } .chroma .l { } .chroma .ld { } .chroma .s { color: #a6da95; } .chroma .sa { color: #ed8796; } .chroma .sb { color: #a6da95; } .chroma .sc { color: #a6da95; } .chroma .dl { color: #8aadf4; } .chroma .sd { color: #6e738d; } .chroma .s2 { color: #a6da95; } .chroma .se { color: #8aadf4; } .chroma .sh { color: #6e738d; } .chroma .si { color: #a6da95; } .chroma .sx { color: #a6da95; } .chroma .sr { color: #8bd5ca; } .chroma .s1 { color: #a6da95; } .chroma .ss { color: #a6da95; } .chroma .m { color: #f5a97f; } .chroma .mb { color: #f5a97f; } .chroma .mf { color: #f5a97f; } .chroma .mh { color: #f5a97f; } .chroma .mi { color: #f5a97f; } .chroma .il { color: #f5a97f; } .chroma .mo { color: #f5a97f; } .chroma .o { color: #91d7e3; font-weight: 700; } .chroma .ow { color: #91d7e3; font-weight: 700; } .chroma .p { } .chroma .c { color: #6e738d; font-style: italic; } .chroma .ch { color: #6e738d; font-style: italic; } .chroma .cm { color: #6e738d; font-style: italic; } .chroma .c1 { color: #6e738d; font-style: italic; } .chroma .cs { color: #6e738d; font-style: italic; } .chroma .cp { color: #6e738d; font-style: italic; } .chroma .cpf { color: #6e738d; font-weight: 700; font-style: italic; } .chroma .g { } .chroma .gd { color: #ed8796; background-color: #363a4f; } .chroma .ge { font-style: italic; } .chroma .gr { color: #ed8796; } .chroma .gh { color: #f5a97f; font-weight: 700; } .chroma .gi { color: #a6da95; background-color: #363a4f; } .chroma .go { } .chroma .gp { } .chroma .gs { font-weight: 700; } .chroma .gu { color: #f5a97f; font-weight: 700; } .chroma .gt { color: #ed8796; } .chroma .gl { text-decoration: underline; } .chroma .w { } .chroma { background-color: unset !important; } .chroma .hl { display: flex; } .chroma .lnt { padding: 0 0 0 12px; } .highlight pre.chroma code { padding: 8px 0; } .highlight pre.chroma .line .cl, .chroma .ln { padding: 0 10px; } .chroma .lntd:last-of-type { width: 100%; } ::-webkit-scrollbar-track { background: 0 0; } .list:not(.dark)::-webkit-scrollbar-track { background: var(--code-bg); } ::-webkit-scrollbar-thumb { background: var(--tertiary); border: 5px solid var(--theme); border-radius: var(--radius); } .list:not(.dark)::-webkit-scrollbar-thumb { border: 5px solid var(--code-bg); } ::-webkit-scrollbar-thumb:hover { background: var(--secondary); } ::-webkit-scrollbar:not(.highlighttable, .highlight table, .gist .highlight) { background: var(--theme); } .post-content .highlighttable td .highlight pre code::-webkit-scrollbar { display: none; } .post-content :not(table) ::-webkit-scrollbar-thumb { border: 2px solid var(--code-block-bg); background: #717175; } .post-content :not(table) ::-webkit-scrollbar-thumb:hover { background: #a3a3a5; } .gist table::-webkit-scrollbar-thumb { border: 2px solid #fff; background: #adadad; } .gist table::-webkit-scrollbar-thumb:hover { background: #707070; } .post-content table::-webkit-scrollbar-thumb { border-width: 2px; } @media screen and (min-width: 768px) { ::-webkit-scrollbar { width: 19px; height: 11px; } } @media screen and (max-width: 768px) { :root { --gap: 14px; } .profile img { transform: scale(0.85); } .first-entry { min-height: 260px; } .archive-month { flex-direction: column; } .archive-year { margin-top: 20px; } .footer { padding: calc((var(--footer-height) - var(--gap) - 10px) / 2) var(--gap); } } @media screen and (max-width: 900px) { .list .top-link { transform: translateY(-5rem); } } @media screen and (max-width: 340px) { .share-buttons { justify-content: unset; } } @media (prefers-reduced-motion) { .terms-tags a:active, .button:active, .post-entry:active, .top-link, #searchResults .focus, #searchResults li:active { transform: none; } } .twitter-tweet { margin: auto; } iframe { border-radius: var(--radius) !important; } .home-info ul { padding-inline-start: 20px; } .entry-cover img { border: none; } .dropdown-menu { display:none; } .post-content a.anchor { color: var(--primary); line-height:1; margin-left: 5px; text-decoration:none; box-shadow:none; } .profile_content p{ margin-bottom: var(--content-gap); } .profile_content a { box-shadow: 0 1px; box-decoration-break: clone; } .media-wrapper { margin-bottom: var(--gap); } .related-posts { margin-top: 14px; font-size: 90%; } #search-form input { padding: 4px 10px; width: 100%; color: var(--primary); font-weight: 700; border: 2px solid var(--tertiary); border-radius: var(--radius); } .social-logo a { margin: 10px 10px 10px 0px!important; }