/* PrismJS 1.30.0
https://prismjs.com/download#themes=prism-tomorrow&languages=markup+css+clike+javascript+c+csharp+cpp+cilkcpp+css-extras+git+go+java+javadoclike+json+json5+jsonp+jsstacktrace+js-templates+markup-templating+php+phpdoc+python+textile&plugins=line-highlight+line-numbers+show-language+inline-color+unescaped-markup+normalize-whitespace+toolbar */
code[class*=language-],
pre[class*=language-] {
    color: #ccc;
    background: 0 0;
    font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
    font-size: 1em;
    text-align: left;
    white-space: pre;
    word-spacing: normal;
    word-break: normal;
    word-wrap: normal;
    line-height: 1.5;
    -moz-tab-size: 4;
    -o-tab-size: 4;
    tab-size: 4;
    -webkit-hyphens: none;
    -moz-hyphens: none;
    -ms-hyphens: none;
    hyphens: none
}

pre[class*=language-] {
    padding: 1em;
    margin: .5em 0;
    overflow: auto
}

:not(pre)>code[class*=language-],
pre[class*=language-] {
    background: #2d2d2d
}

:not(pre)>code[class*=language-] {
    padding: .1em;
    border-radius: .3em;
    white-space: normal
}

.token.block-comment,
.token.cdata,
.token.comment,
.token.doctype,
.token.prolog {
    color: #999
}

.token.punctuation {
    color: #ccc
}

.token.attr-name,
.token.deleted,
.token.namespace,
.token.tag {
    color: #e2777a
}

.token.function-name {
    color: #6196cc
}

.token.boolean,
.token.function,
.token.number {
    color: #f08d49
}

.token.class-name,
.token.constant,
.token.property,
.token.symbol {
    color: #f8c555
}

.token.atrule,
.token.builtin,
.token.important,
.token.keyword,
.token.selector {
    color: #cc99cd
}

.token.attr-value,
.token.char,
.token.regex,
.token.string,
.token.variable {
    color: #7ec699
}

.token.entity,
.token.operator,
.token.url {
    color: #67cdcc
}

.token.bold,
.token.important {
    font-weight: 700
}

.token.italic {
    font-style: italic
}

.token.entity {
    cursor: help
}

.token.inserted {
    color: green
}

pre[data-line] {
    position: relative;
    padding: 1em 0 1em 3em
}

.line-highlight {
    position: absolute;
    left: 0;
    right: 0;
    padding: inherit 0;
    margin-top: 1em;
    background: hsla(24, 20%, 50%, .08);
    background: linear-gradient(to right, hsla(24, 20%, 50%, .1) 70%, hsla(24, 20%, 50%, 0));
    pointer-events: none;
    line-height: inherit;
    white-space: pre
}

@media print {
    .line-highlight {
        -webkit-print-color-adjust: exact;
        color-adjust: exact
    }
}

.line-highlight:before,
.line-highlight[data-end]:after {
    content: attr(data-start);
    position: absolute;
    top: .4em;
    left: .6em;
    min-width: 1em;
    padding: 0 .5em;
    background-color: hsla(24, 20%, 50%, .4);
    color: #f4f1ef;
    font: bold 65%/1.5 sans-serif;
    text-align: center;
    vertical-align: .3em;
    border-radius: 999px;
    text-shadow: none;
    box-shadow: 0 1px #fff
}

.line-highlight[data-end]:after {
    content: attr(data-end);
    top: auto;
    bottom: .4em
}

.line-numbers .line-highlight:after,
.line-numbers .line-highlight:before {
    content: none
}

pre[id].linkable-line-numbers span.line-numbers-rows {
    pointer-events: all
}

pre[id].linkable-line-numbers span.line-numbers-rows>span:before {
    cursor: pointer
}

pre[id].linkable-line-numbers span.line-numbers-rows>span:hover:before {
    background-color: rgba(128, 128, 128, .2)
}

pre[class*=language-].line-numbers {
    position: relative;
    padding-left: 3.8em;
    counter-reset: linenumber
}

pre[class*=language-].line-numbers>code {
    position: relative;
    white-space: inherit
}

.line-numbers .line-numbers-rows {
    position: absolute;
    pointer-events: none;
    top: 0;
    font-size: 100%;
    left: -3.8em;
    width: 3em;
    letter-spacing: -1px;
    border-right: 1px solid #999;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none
}

.line-numbers-rows>span {
    display: block;
    counter-increment: linenumber
}

.line-numbers-rows>span:before {
    content: counter(linenumber);
    color: #999;
    display: block;
    padding-right: .8em;
    text-align: right
}

div.code-toolbar {
    position: relative
}

div.code-toolbar>.toolbar {
    position: absolute;
    z-index: 10;
    top: .3em;
    right: .2em;
    transition: opacity .3s ease-in-out;
    opacity: 0
}

div.code-toolbar:hover>.toolbar {
    opacity: 1
}

div.code-toolbar:focus-within>.toolbar {
    opacity: 1
}

div.code-toolbar>.toolbar>.toolbar-item {
    display: inline-block
}

div.code-toolbar>.toolbar>.toolbar-item>a {
    cursor: pointer
}

div.code-toolbar>.toolbar>.toolbar-item>button {
    background: 0 0;
    border: 0;
    color: inherit;
    font: inherit;
    line-height: normal;
    overflow: visible;
    padding: 0;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none
}

div.code-toolbar>.toolbar>.toolbar-item>a,
div.code-toolbar>.toolbar>.toolbar-item>button,
div.code-toolbar>.toolbar>.toolbar-item>span {
    color: #bbb;
    font-size: .8em;
    padding: 0 .5em;
    background: #f5f2f0;
    background: rgba(224, 224, 224, .2);
    box-shadow: 0 2px 0 0 rgba(0, 0, 0, .2);
    border-radius: .5em
}

div.code-toolbar>.toolbar>.toolbar-item>a:focus,
div.code-toolbar>.toolbar>.toolbar-item>a:hover,
div.code-toolbar>.toolbar>.toolbar-item>button:focus,
div.code-toolbar>.toolbar>.toolbar-item>button:hover,
div.code-toolbar>.toolbar>.toolbar-item>span:focus,
div.code-toolbar>.toolbar>.toolbar-item>span:hover {
    color: inherit;
    text-decoration: none
}

span.inline-color-wrapper {
    background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyIDIiPjxwYXRoIGZpbGw9ImdyYXkiIGQ9Ik0wIDBoMnYySDB6Ii8+PHBhdGggZmlsbD0id2hpdGUiIGQ9Ik0wIDBoMXYxSDB6TTEgMWgxdjFIMXoiLz48L3N2Zz4=);
    background-position: center;
    background-size: 110%;
    display: inline-block;
    height: 1.333ch;
    width: 1.333ch;
    margin: 0 .333ch;
    box-sizing: border-box;
    border: 1px solid #fff;
    outline: 1px solid rgba(0, 0, 0, .5);
    overflow: hidden
}

span.inline-color {
    display: block;
    height: 120%;
    width: 120%
}

[class*=lang-] script[type='text/plain'],
[class*=language-] script[type='text/plain'],
script[type='text/plain'][class*=lang-],
script[type='text/plain'][class*=language-] {
    display: block;
    font: 100% Consolas, Monaco, monospace;
    white-space: pre;
    overflow: auto
}


.heart {
    position: fixed;
    top: -50px;
    /* 从屏幕上方看不见的地方开始 */
    color: #ff69b4;
    /* 粉色爱心 */
    opacity: 0.3;
    /* 保持0.3低透明度，不遮挡内容 */
    user-select: none;
    pointer-events: none;
    /* 让鼠标事件穿透爱心，不影响点击页面内容 */
    z-index: 9999;
    animation: fall linear forwards;
    /* 下落动画 */
}

@keyframes fall {
    0% {
        transform: translateY(0) rotate(0deg);
        opacity: 0;
    }

    10% {
        opacity: 0.3;
        /* 快速显现 */
    }

    90% {
        opacity: 0.3;
        /* 保持可见直到接近底部 */
    }

    100% {
        /* 100vh 确保爱心真正触碰到屏幕最底部 */
        transform: translateY(100vh) rotate(360deg);
        opacity: 0;
        /* 触底瞬间消失 */
    }
}