/* ===== 友链静态页样式（提取自 halo-theme-hao） ===== */

/* --- CSS 变量 + 主题 --- */
:root {
    --heo-white: #fff;
    --heo-white-op: rgba(255, 255, 255, 0.2);
    --heo-black: #000;
    --heo-black-op: rgba(0, 0, 0, 0.2);
    --heo-none: #00000000;
    --heo-gray: #999999;
    --heo-gray-op: #9999992b;
    --heo-vip: #e5a80d;
    --heo-main: var(--heo-theme);
    --heo-main-op: var(--heo-theme-op);
    --heo-main-op-deep: var(--heo-theme-op-deep);
    --heo-main-op-light: var(--heo-theme-op-light);
    --heo-main-none: var(--heo-theme-none);
    --heo-shadow-theme: 0 8px 12px -3px var(--heo-theme-op);
    --heo-shadow-blackdeep: 0 2px 16px -3px rgba(0, 0, 0, 0.15);
    --heo-shadow-main: 0 8px 12px -3px var(--heo-main-op);
    --heo-shadow-blue: 0 8px 12px -3px rgba(40, 109, 234, 0.2);
    --heo-shadow-white: 0 8px 12px -3px rgba(255, 255, 255, 0.2);
    --heo-shadow-black: 0 0 12px 4px rgba(0, 0, 0, 0.05);
    --heo-shadow-yellow: 0px 38px 77px -26px rgba(255, 201, 62, 0.12);
    --heo-shadow-red: 0 8px 12px -3px #ee7d7936;
    --heo-shadow-green: 0 8px 12px -3px #87ee7936;
    --heo-logo-color: linear-gradient(215deg, #4584ff 0%, #cf0db9 100%);
    --heo-snackbar-time: 5s;
    --style-border: 1px solid var(--heo-card-border);
    --style-border-always: 1px solid var(--heo-card-border);
    --style-border-hover: 1px solid var(--heo-main);
    --style-border-hover-always: 1px solid var(--heo-main);
    --style-border-dashed: 1px dashed var(--heo-theme-op);
    --heo-radius-full: 50px;
}

::selection {
    background: var(--heo-fontcolor);
    color: var(--heo-background);
}

[data-theme=light] {
    --heo-theme: #425AEF;
    --heo-theme-op: #4259ef23;
    --heo-theme-op-deep: #4259efdd;
    --heo-theme-op-light: #4259ef0d;
    --heo-theme-none: #4259ef01;
    --heo-blue: #425AEF;
    --heo-red: #f04a63;
    --heo-pink: #FF7C7C;
    --heo-green: #57bd6a;
    --heo-yellow: #c28b00;
    --heo-yellow-op: #d99c001a;
    --heo-orange: #e38100;
    --heo-fontcolor: #363636;
    --heo-background: #f7f9fe;
    --heo-reverse: #000;
    --heo-maskbg: rgba(255, 255, 255, 0.6);
    --heo-maskbgdeep: rgba(255, 255, 255, 0.85);
    --heo-hovertext: var(--heo-main);
    --heo-ahoverbg: #F7F7FA;
    --heo-lighttext: var(--heo-main);
    --heo-secondtext: rgba(60, 60, 67, 0.8);
    --heo-scrollbar: rgba(60, 60, 67, 0.4);
    --heo-card-btn-bg: #edf0f7;
    --heo-post-blockquote-bg: #fafcff;
    --heo-post-tabs-bg: #f2f5f8;
    --heo-secondbg: #f7f7f9;
    --heo-shadow-nav: 0 5px 12px -5px rgba(102, 68, 68, 0.05);
    --heo-card-bg: #fff;
    --heo-card-bg-op: var(--heo-black-op);
    --heo-card-bg-none: rgba(255, 255, 255, 0);
    --heo-shadow-lightblack: 0 5px 12px -5px rgba(102, 68, 68, 0);
    --heo-shadow-light2black: 0 5px 12px -5px rgba(102, 68, 68, 0);
    --heo-card-border: #e3e8f7;
    --heo-shadow-border: 0 8px 16px -4px #2c2d300c;
    --style-border-forever: 2px solid var(--heo-main);
}

[data-theme=dark] {
    --heo-theme: #ffc848;
    --heo-theme-op: #f2b94b23;
    --heo-theme-op-deep: #f2b94bdd;
    --heo-theme-none: #f2b94b00;
    --heo-blue: #0084FF;
    --heo-red: #FF3842;
    --heo-pink: #d44040;
    --heo-green: #3e9f50;
    --heo-yellow: #ffc93e;
    --heo-yellow-op: #ffc93e30;
    --heo-orange: #ff953e;
    --heo-fontcolor: #F7F7FA;
    --heo-background: #18171d;
    --heo-reverse: #fff;
    --heo-maskbg: rgba(0, 0, 0, 0.6);
    --heo-maskbgdeep: rgba(0, 0, 0, 0.85);
    --heo-hovertext: #0A84FF;
    --heo-ahoverbg: #fff;
    --heo-lighttext: var(--heo-theme);
    --heo-secondtext: #a1a2b8;
    --heo-scrollbar: rgba(200, 200, 223, 0.4);
    --heo-card-btn-bg: #30343f;
    --heo-post-blockquote-bg: #000;
    --heo-post-tabs-bg: #121212;
    --heo-secondbg: #21232a;
    --heo-shadow-nav: 0 5px 20px 0px rgba(28, 28, 28, 0.4);
    --heo-card-bg: #1d1e22;
    --heo-card-bg-op: var(--heo-white-op);
    --heo-card-bg-none: #1d1b2600;
    --heo-shadow-lightblack: 0 5px 12px -5px rgba(102, 68, 68, 0);
    --heo-shadow-light2black: 0 5px 12px -5px rgba(102, 68, 68, 0);
    --heo-card-border: #3d3d3f;
    --heo-shadow-border: 0 8px 16px -4px #00000050;
    --style-border: 1px solid var(--heo-card-border);
    --style-border-always: 1px solid var(--heo-card-border);
    --style-border-hover: 1px solid var(--heo-lighttext);
    --style-border-dashed: 1px dashed var(--heo-theme-op);
    --style-border-forever: 2px solid var(--heo-lighttext);
}

@media screen and (max-width: 768px) {
    :root {
        --style-border: 1px solid var(--heo-none);
        --style-border-hover: 1px solid var(--heo-none)
    }
}

/* --- 全局字体变量 --- */
:root {
    --global-font-size: 16px;
    --global-bg: #fff;
    --font-color: #4c4948;
    --hr-border: #97bcfb;
    --hr-before-color: #6ea2f9;
    --search-bg: #f6f8fa;
    --search-input-color: #4c4948;
    --search-result-title: #4c4948;
    --preloader-bg: #37474f;
    --preloader-color: #fff;
    --tab-border-color: #f0f0f0;
    --tab-botton-bg: #f0f0f0;
    --tab-botton-color: #1f2d3d;
    --tab-button-hover-bg: #dcdcdc;
    --tab-button-active-bg: #fff;
    --card-bg: #fff;
    --sidebar-bg: #f6f8fa;
    --btn-hover-color: #ff7242;
    --btn-color: #fff;
    --btn-bg: #307af6;
    --text-bg-hover: #307af6;
    --light-grey: #eee;
    --white: #fff;
    --text-highlight-color: #1f2d3d;
    --blockquote-color: #6a737d;
    --blockquote-bg: rgba(73, 177, 245, 0.1);
    --reward-pop: #f5f5f5;
    --toc-link-color: #666261;
    --card-box-shadow: 0 3px 8px 6px rgba(7, 17, 27, 0.06);
    --card-hover-box-shadow: 0 3px 8px 6px rgba(7, 17, 27, 0.15);
}

/* --- 基础样式 --- */
html {
    height: 100%;
    font-size: 20px;
}

body {
    position: relative;
    min-height: 100%;
    background: var(--heo-background);
    color: var(--heo-fontcolor);
    font-size: var(--global-font-size);
    font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei";
    line-height: 2;
    -webkit-tap-highlight-color: transparent;
    margin: 0px;
}

input::placeholder {
    color: var(--heo-fontcolor);
}


h1,
h2,
h3,
h4,
h5,
h6 {
    position: relative;
    margin: 1rem 0px 0.7rem;
    color: var(--text-highlight-color);
    font-weight: 700;
}

h1 code,
h2 code,
h3 code,
h4 code,
h5 code,
h6 code {
    font-size: inherit !important;
}

* {
    box-sizing: border-box;
}

hr {
    position: relative;
    margin: 2rem auto;
    border: 2px dashed var(--hr-border);
}

/* --- 布局 --- */
.layout > div:first-child {
    width: 75%;
    transition: all 0.3s ease 0s;
}

@media screen and (max-width: 1200px) {
    .layout > div:first-child {
        width: 100% !important
    }
}

.layout.hide-aside {
    max-width: 1000px;
}

@media screen and (min-width: 2000px) {
    .layout.hide-aside {
        max-width: 1300px;
    }
}

.layout.hide-aside > div {
    width: 100% !important;
}


/* --- 友链（早期规则） --- */
.flink#article-container .flink-desc {
    margin: 0.2rem 0px 0.5rem;
}

.flink#article-container .flink-list {
    overflow: auto;
    padding: 10px 10px 0px;
    text-align: center;
}

.flink#article-container .flink-list > .flink-list-item {
    position: relative;
    float: left;
    overflow: hidden;
    margin: 15px 7px;
    width: calc(25% - 12px);
    height: 90px;
    border-radius: 5px;
    line-height: 17px;
    transform: translateZ(0px);
    transition: all 0.3s ease 0s;
}

.flink#article-container .flink-list.mini > .flink-list-item {
    height: 60px;
}

@media screen and (max-width: 1200px) {
    .flink#article-container .flink-list > .flink-list-item {
        width: calc(25% - 12px) !important;
    }
}

@media screen and (max-width: 1024px) {
    .flink#article-container .flink-list > .flink-list-item {
        width: calc(33.3333% - 12px) !important;
    }
}

@media screen and (max-width: 768px) {
    .flink#article-container .flink-list > .flink-list-item {
        width: calc(50% - 12px) !important;
    }
}

@media screen and (max-width: 600px) {
    .flink#article-container .flink-list > .flink-list-item {
        width: calc(100% - 12px) !important;
    }
}

.flink#article-container .flink-list > .flink-list-item:hover {
    background: rgb(0, 108, 242);
    transform: scale(1.05);
}

.flink#article-container .flink-list > .flink-list-item a {
    color: var(--heo-fontcolor);
    text-decoration: none;
}

.flink#article-container .flink-list > .flink-list-item a img {
    float: left;
    margin: 15px 10px;
    width: 60px;
    height: 60px;
    border-radius: 35px;
    transition: all 0.3s ease 0s;
}

.flink#article-container .flink-list.mini > .flink-list-item a img {
    width: 30px;
    height: 30px;
    min-width: 30px;
    min-height: 30px;
}

.flink#article-container .flink-list > .flink-list-item a .img-alt {
    display: none;
}

.flink#article-container .flink-list > .flink-list-item a .flink-item-name {
    display: block;
    padding: 0px 10px 0px 0px;
    font-weight: 700;
    font-size: 1.43em;
    max-width: calc(100% - 12px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.flink#article-container .flink-list > .flink-list-item a .flink-item-desc {
    display: block;
    padding: 4px 10px 0px 0px;
    height: 50px;
    font-size: 0.93em;
}

.flink#article-container .flink-list.mini > .flink-list-item a .flink-item-desc {
    display: none;
}

.flink#article-container .site-card-group {
    display: flex;
    flex-wrap: wrap;
    -webkit-box-pack: start;
    justify-content: flex-start;
    margin: -8px;
    -webkit-box-align: stretch;
    align-items: stretch;
}

.flink#article-container .site-card {
    margin: 8px;
    width: calc(20% - 16px);
    display: block;
    line-height: 1.4;
    height: 100%;
}

@media screen and (max-width: 1200px) {
    .flink#article-container .site-card {
        width: calc(20% - 16px) !important;
    }
}

@media screen and (max-width: 1024px) {
    .flink#article-container .site-card {
        width: calc(25% - 16px) !important;
    }
}

@media screen and (max-width: 768px) {
    .flink#article-container .site-card {
        width: calc(33.3333% - 16px) !important;
    }
}

@media screen and (max-width: 600px) {
    .flink#article-container .site-card {
        width: calc(50% - 16px) !important;
    }
}

.flink#article-container .site-card .img {
    width: 100%;
    height: 120px;
    overflow: hidden;
    border-radius: 12px 12px 0 0;
    background: #f6f6f6
}

@media screen and (max-width: 500px) {
    .flink#article-container .site-card .img {
        height: 100px;
    }
}

.flink#article-container .site-card .img img {
    width: 100%;
    height: 100%;
    transition: transform 2s ease 0s;
    object-fit: cover;
}

.flink#article-container .site-card .info {
    margin-top: 8px;
}

.flink#article-container .site-card .info img {
    width: 32px;
    height: 32px;
    border-radius: 16px;
    float: left;
    margin-right: 8px;
    margin-top: 2px;
}

.flink#article-container .site-card .info span {
    display: block;
}

.flink#article-container .site-card .info .title {
    font-weight: 600;
    color: rgb(68, 68, 68);
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    -webkit-line-clamp: 1;
    transition: all 0.3s ease 0s;
}

.flink#article-container .site-card .info .desc {
    overflow-wrap: break-word;
    line-height: 1.2;
    color: rgb(136, 136, 136);
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    -webkit-line-clamp: 2;
}

.flink#article-container .site-card .img {
    transition: all 0.3s ease 0s;
}

.flink#article-container .site-card .img-alt {
    display: none;
}

.flink#article-container .site-card:hover .info .title {
    color: rgb(255, 87, 34);
}

/* --- article-container 基础 --- */
#article-container {
    overflow-wrap: break-word;
}

#article-container a:hover {
    text-decoration: none;
    background: var(--heo-main);
    border-width: 0;
    color: var(--heo-white);
    border-radius: 4px
}

#article-container img {
    display: block;
    margin: 0px auto 0.8rem;
}

@media screen and (max-width: 768px) {
    #article-container img {
        max-width: 100%
    }
}

#article-container p {
    margin: 0px 0px 0.8rem;
}

#article-container iframe {
    margin: 0px 0px 1rem;
}

#article-container kbd {
    margin: 0px 3px;
    padding: 3px 5px;
    border: 1px solid rgb(180, 180, 180);
    border-radius: 3px;
    background-color: rgb(248, 248, 248);
    box-shadow: rgba(0, 0, 0, 0.25) 0px 1px 3px, rgba(255, 255, 255, 0.6) 0px 2px 1px 0px inset;
    color: rgb(52, 73, 94);
    white-space: nowrap;
    font-weight: 600;
    font-size: 0.9em;
    font-family: Monaco, "Ubuntu Mono", monospace;
    line-height: 1em;
}

#article-container h1,
#article-container h2,
#article-container h3,
#article-container h4,
#article-container h5,
#article-container h6 {
    transition: all 0.2s ease-out 0s;
}

#article-container h1::before,
#article-container h2::before,
#article-container h3::before,
#article-container h4::before,
#article-container h5::before,
#article-container h6::before {
    position: absolute;
    top: calc(50% - 0.35rem);
    color: rgb(242, 186, 75);
    content: "";
    line-height: 1;
    transition: all 0.2s ease-out 0s;
}

#article-container h1:hover::before,

/* --- article-container.flink --- */
#article-container.flink {
    margin-top: 1rem;
}

#article-container.flink h2 {
    margin-top: 0.5rem;
    margin-bottom: 0;
}

/* --- 横幅 + 滚动头像 --- */
div#banners {
    display: none;
}

.topGroup .todayCard {
    display: none;
}

@media screen and (min-width: 1200px) {
    .topGroup {
        display:flex;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: space-between;
        height: calc(328px + .5rem);
        align-content: space-between;
        width: calc(50% - .25rem);
        position: relative;
        animation: slide-in .6s .1s backwards
    }

    div#bannerGroup {
        width: calc(50% - .5rem);
        margin-right: 1rem;
        height: calc(328px + .5rem);
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }

    div#banners {
        display: flex;
        width: 100%;
        height: 100%;
        background: var(--heo-card-bg);
        border: var(--style-border);
        border-radius: 12px;
        overflow: hidden;
        position: relative;
        box-shadow: var(--heo-shadow-border);
        flex-direction: column;
        overflow: hidden;
        transition: .3s;
        will-change: transform;
        animation: slide-in .6s .1s backwards
    }

    #banners.flink {
        margin-bottom: .5rem
    }

    #banners .banner-button-group {
        position: absolute;
        right: 2rem;
        top: 2rem;
        display: flex
    }

    #banners .banner-button {
        padding: 8px 12px;
        background: var(--heo-fontcolor);
        border-radius: 12px;
        color: var(--heo-card-bg);
        display: flex;
        align-items: center;
        z-index: 1;
        transition: 0.3s;
        cursor: pointer;
        box-shadow: var(--heo-shadow-black);
    }

    #banners .banner-button.secondary {
        background: var(--heo-secondbg);
        border: var(--style-border-always);
        color: var(--heo-lighttext);
        margin-right: 1rem;
        box-shadow: var(--heo-shadow-border);
    }

    #banners .banner-button:hover {
        background: var(--heo-theme);
        color: var(--heo-white);
    }

    #banners .banner-button i {
        margin-right: 8px;
        /*font-size: 1rem;*/
    }

    .banners-title {
        top: 2rem;
        left: 1.5rem;
        position: absolute;
        display: flex;
        flex-direction: column;
    }

    .flink .banners-title {
        top: 1.5rem;
    }


    .banners-title-big {
        font-size: 36px;
        line-height: 1;
        font-weight: 700;
        margin-bottom: 8px;
    }

    .banners-title-small {
        font-size: 12px;
        line-height: 1;
        color: var(--heo-secondtext);
        margin-top: 8px;
        margin-bottom: 0.5rem;
    }
    #banner-hover {
        position: absolute;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        background: var(--heo-lighttext);
        color: var(--heo-card-bg);
        padding-left: .5rem;
        display: flex;
        flex-direction: column;
        justify-content: center;
        opacity: 0;
        transition: cubic-bezier(.71,.15,.16,1.15) .6s
    }

    .bannerText {
        font-size: 4rem;
        line-height: 4rem;
        font-weight: 700
    }

    .banner-righticon {
        font-size: 4rem;
        opacity: 0.6;
    }

    #banners:hover #banner-hover {
        opacity: 1;
        padding-left: 2rem;
        background: var(--heo-theme-op-deep);
        backdrop-filter: blur(15px);
        -webkit-backdrop-filter: blur(15px);
        transform: translateZ(0);
        -webkit-backface-visibility: hidden;
        -webkit-transform-style: preserve-3d;
        transition: .3s;
        background-size: 200%;
        cursor: pointer
    }

    #banners #banner-hover i {
        font-size: 80px;
        opacity: .4
    }

    .topGroup .todayCard {
        position: absolute;
        width: 100%;
        height: 100%;
        z-index: 1;
        top: 0;
        right: 0;
        background: var(--heo-card-bg);
        border-radius: 12px;
        margin-left: 1rem;
        overflow: hidden;
        transition: .3s;
        display: flex;
        cursor: pointer;
        pointer-events: all;
        box-shadow: var(--heo-shadow-border)
    }

    .topGroup .todayCard::after {
        position: absolute;
        content: '';
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
    }

    .topGroup.hideCard .todayCard {
        opacity: 0;
        pointer-events: none
    }

    .topGroup .todayCard .todayCard-info {
        position: absolute;
        bottom: 1.5rem;
        left: 2rem;
        z-index: 2;
        color: var(--heo-white);
        max-width: 60%;
        transition: .3s
    }

    .topGroup.hideCard .todayCard .todayCard-info {
        bottom: 1rem;
        opacity: 0
    }

    .topGroup .todayCard .todayCard-info .todayCard-tips {
        opacity: .8;
        font-size: .6rem;
        margin-left: 3px;
        margin-top: 4px
    }

    .topGroup .todayCard .todayCard-info .todayCard-title {
        font-size: 32px;
        font-weight: 700;
        line-height: 40px
    }

    .topGroup .banner-button-group {
        position: absolute;
        right: 2rem;
        bottom: 2rem;
        display: flex;
        transition: .3s
    }

    .topGroup.hideCard .todayCard .banner-button-group {
        bottom: 1rem
    }

    .topGroup .banner-button {
        background: var(--heo-white-op);
        border-radius: 20px;
        color: var(--heo-white);
        display: flex;
        align-items: center;
        z-index: 1;
        transition: .3s;
        cursor: pointer;
        backdrop-filter: saturate(180%) blur(20px);
        -webkit-backdrop-filter: blur(20px);
        transform: translateZ(0);
        height: 40px;
        width: 118px;
        justify-content: center
    }

    .topGroup .banner-button:hover {
        background: var(--heo-lighttext);
        color: var(--heo-card-bg)
    }

    .topGroup .banner-button i {
        margin-right: 8px;
        font-size: 22px
    }

    .topGroup .todayCard .todayCard-cover {
        position: absolute;
        min-width: 100%;
        min-height: 100%;
        top: 0;
        left: 0;
        background-size: cover;
        z-index: -1;
        transition: .3s
    }

    .topGroup.hideCard .todayCard .todayCard-cover {
        transform: scale(1.2)
    }

    .topGroup.hideCard .recent-post-group {
        display: flex
    }

    .recent-post-group {
        flex-wrap: wrap
    }

    .banners-link {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        position: absolute;
        bottom: 20px;
        left: 40px
    }

    .banners-link-btn {
        display: flex;
        flex-direction: row;
        align-items: center;
        padding: 8px 18px 8px 14px;
        border-radius: 60px;
        margin-bottom: 12px;
        color: var(--heo-white);
        max-width: 170px;
        position: relative
    }

    .banners-link-title {
        margin-left: auto;
        padding-left: 5px;
    }
}

@keyframes rowleft {
    from {
        transform: translateX(100%)
    }

    to {
        transform: translateX(-100%)
    }
}

@keyframes rowup {
    from {
        transform: translateY(0)
    }

    to {
        transform: translateY(-50%)
    }
}

.tags-group-icon {
    width: 120px;
    height: 120px;
    border-radius: 30px
}

.tags-group-all {
    display: flex;
    transform: rotate(0);
}

.tags-group-all.nowrapMove {
    transform: rotate(0);
    padding-bottom: 2rem;
    flex: 1;
    width: 100%;
    overflow: hidden;
    position: relative;
}

#bannerGroup .tags-group-wrapper {
    margin-top: 0;
    display: flex;
    flex-wrap: wrap;
    animation: rowup 60s linear infinite;
    width: 320px;
    margin-left: auto
}

.nowrapMove .tags-group-wrapper {
    margin-top: 6rem;
    animation: rowleft 40s linear infinite;
    display: flex;
    flex-wrap: nowrap;
    width: max-content;
    align-items: flex-start
}

.tags-group-icon-pair .tags-group-icon:nth-child(even) {
    margin-top: 1rem;
    transform: translate(-60px)
}

/* 落单的头像（pair 里只有一个）与第一行平齐，不居中 */
.tags-group-icon-pair .tags-group-icon:only-child {
    margin-top: 0;
    transform: none;
}

#bannerGroup .tags-group-icon-pair {
    display: flex
}

#bannerGroup .tags-group-icon-pair .tags-group-icon:nth-child(even) {
    margin-left: 4rem
}

.tags-group-icon-pair {
    margin-left: 1rem;
    user-select: none
}

.tags-group-icon-pair a img {
    border-radius: 50%!important
}

.tags-group-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 66px;
    font-weight: 700;
    box-shadow: var(--heo-shadow-blackdeep)
}

.nowrapMove .tags-group-icon {
    border-radius: 50%;
}

.tags-group-icon img {
    width: 60%;
    /*rotate: -50deg;*/
}

.nowrapMove .tags-group-icon img {
    min-width: 100%;
    min-height: 100%;
    border-radius: 50%;
    object-fit: cover;
}

/* --- 页面布局容器 --- */
#page {
    box-shadow: none;
}

.post-comment {
    background: var(--heo-card-bg);
}

.layout > div:first-child:not(.recent-posts):hover {
    box-shadow: var(--heo-shadow-border);
}

@media screen and (max-width: 768px) {
    .layout > div:first-child:not(.recent-posts) {
        border-radius: 0;
        padding: 0rem 1rem !important;
        box-shadow: none !important;
        background: var(--heo-background);
    }

    .layout {
        padding: 0 1.5rem;
    }
}

@media screen and (max-width: 768px) {
    .layout {
        padding: 0;
    }

    .layout > div:first-child:not(.recent-posts) {
        z-index: 10;
    }

    .post .layout > div:first-child:not(.recent-posts) {
        border-radius: 12px 12px 0 0;
    }

    .post .layout#content-inner {
        background: var(--heo-main);
    }

    .page .layout#content-inner {
        background: var(--heo-background);
    }

    #aside-content {
        z-index: 99;
        background: var(--heo-background);
        padding: 0 1rem;
        display: flex;
        flex-direction: column;
        width: 100%;
    }
}

.layout#content-inner {
    max-width: 1400px;
}

.layout#content-inner p img {
    margin: auto
}

/* 隐藏主页头图 */
.full_page #post-cover {
    display: none;
}

/* --- 友链（后期规则，覆盖早期） --- */
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.flink#article-container .flink-list > .flink-list-item:hover a .flink-item-desc {
    color: var(--heo-card-bg);
}

/* 友链标题 */
.flink-list-item .flink-item-info {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: calc(100% - 90px);
    height: fit-content;
}

.flink-list-item:hover .flink-item-info {
    min-width: calc(100% - 20px);
}

.flink#article-container .flink-list > .flink-list-item a .flink-item-name {
    text-align: left;
    font-size: 19px;
    line-height: 20px;
    color: var(--heo-fontcolor);
}

.flink#article-container .flink-list > .flink-list-item:hover a .flink-item-name {
    color: var(--heo-card-bg) !important;
}

.flink#article-container .flink-list > .flink-list-item a {
    display: flex;
    border: none;
    width: 100%;
    height: 100%;
    align-items: center;
}

.flink#article-container .flink-list > .flink-list-item a:hover {
    background: none;
}

/* 友链头像 */
.flink#article-container .flink-list > .flink-list-item a img {
    border-radius: 32px;
    margin: 15px 20px 15px 15px;
    transition: 0.3s;
    background: var(--heo-background);
    min-width: 60px;
    min-height: 60px;
}


/* 悬浮状态头像 */
.flink#article-container .flink-list > .flink-list-item:hover a img {
    transition: 0.6s;
    width: 0;
    height: 0;
    opacity: 0;
    margin: 0.5rem;
    min-width: 0px;
    min-height: 0px;
}

/* 友链右侧图标 */

#article-container .flink-list > .flink-list-item:hover .flink-item-info > img {
    opacity: .8 !important;
}

#article-container .flink-list > .flink-list-item .flink-item-info > img {
    position: absolute;
    opacity: 0 !important;
    right: -30px !important;
    bottom: -40px !important;
    width: 100px !important;
    height: 100px !important;
    border-radius: 50% !important;
    z-index: -1;
    -webkit-transition: all .5s ease;
    -moz-transition: all .5s ease;
    -ms-transition: all .5s ease;
    -o-transition: all .5s ease;
    transition: all .5s ease;
}


/* 标题和描述 */
.flink#article-container .flink-list > .flink-list-item a span {
    transition: 0.3s;
}

/* 友链描述 */
.flink#article-container .flink-list > .flink-list-item:hover a .flink-item-desc {
    overflow: hidden;
    width: 100%;
}

/* 修改初始动画 */
.flink#article-container .flink-list > .flink-list-item {
    margin: 6px 6px;
    transition: 0.3s;
    border-radius: 12px;
    transition-timing-function: ease-in-out;
    position: relative;
    width: calc(20% - 12px);
    border: var(--style-border);
    box-shadow: var(--heo-shadow-border);
    background: var(--heo-card-bg);
    display: flex;
}


.flink#article-container .flink-list > .flink-list-item:hover {
    transform: scale(1);
    background: var(--heo-theme);
    border: var(--style-border-hover);
    box-shadow: var(--heo-shadow-main);
}

.gallery-group figcaption p {
    line-height: 1.5 !important;
}

@media screen and (min-width: 1300px) {
    .flink#article-container .flink-list > .flink-list-item:hover {
        transform: scale(1.03);
    }

    .flink#article-container .flink-list > .flink-list-item:active {
        transform: scale(0.97);
    }
}


/* 超级博主友链 */

/* 超级博主标题 */

.flink#article-container .site-card .info .title {
    color: var(--heo-fontcolor);
    text-align: left;
}

.flink#article-container .site-card:hover .info .title {
    color: var(--heo-card-bg);
}

.flink#article-container .site-card:hover .info {
    height: 120px;
}

.flink#article-container .site-card .site-card-text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}


/* 超级博主描述 */
.flink#article-container .site-card .info .desc {
    font-size: 0.7rem;
    color: var(--heo-fontcolor);
    opacity: 0.7;
    transition: 0.3s;
    text-align: left;
}

.flink#article-container .site-card:hover .info .desc {
    color: var(--heo-card-bg);
}

@media screen and (min-width: 768px) {
    .flink#article-container .site-card:hover .info .desc {
        -webkit-line-clamp: 4;
    }

    .flink#article-container .site-card:hover .info .desc {
        transition: .3s;
        color: var(--heo-card-bg);
        width: 100%
    }

    .flink#article-container .site-card:hover .info {
        background: var(--heo-theme)
    }
}

/* 背景 */
.flink#article-container .site-card {
    border: var(--style-border);
    border-radius: 12px;
    transition: 0.3s;
    transition-timing-function: ease-in-out;
    overflow: hidden;
    height: 200px;
    position: relative;
    width: calc(100% / 7 - 16px);
    background: var(--heo-card-bg);
    box-shadow: var(--heo-shadow-border);
}

.site-card-tag {
    position: absolute;
    top: 0;
    left: 0;
    padding: 4px 8px;
    background-color: var(--heo-main);
    box-shadow: var(--heo-shadow-main);
    color: var(--heo-white);
    z-index: 1;
    border-radius: 12px 0 12px 0;
    transition: 0.3s;
    font-size: 0.6rem;
}

.site-card-tag.vip {
    /*! Edit and share this gradient: https://html5kit.com/gradient-editor/?preset=d48f16,100;e5b085,0 */
    background: -moz-linear-gradient(38deg, rgba(229, 176, 133, 1) 0%, rgba(212, 143, 22, 1) 100%);
    /* FF3.6+ */
    background: -webkit-linear-gradient(38deg, rgba(229, 176, 133, 1) 0%, rgba(212, 143, 22, 1) 100%);
    /* Chrome10-25, Safari5.1-6 */
    background: linear-gradient(38deg, rgba(229, 176, 133, 1) 0%, rgba(212, 143, 22, 1) 100%);
    /* W3C, IE10+, Firefox16+, Chrome26+, Opera12+, Safari7+ */
    overflow: hidden;
    box-shadow: var(--heo-shadow-yellow);
}

.light {
    cursor: pointer;
    position: absolute;
    top: 0;
    width: 100px;
    height: 50px;
    background-image: -moz-linear-gradient(0deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0));
    background-image: -webkit-linear-gradient(0deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0));
    -webkit-animation: light_tag 4s both infinite;
    -moz-animation: light_tag 4s both infinite;
    -ms-animation: light_tag 4s both infinite;
    animation: light_tag 4s both infinite;
}

@keyframes light_tag {
    0% {
        transform: skewx(0deg);
        -o-transform: skewx(0deg);
        -moz-transform: skewx(0deg);
        -webkit-transform: skewx(0deg);
        left: -150px;
    }

    99% {
        transform: skewx(-25deg);
        -o-transform: skewx(-25deg);
        -moz-transform: skewx(-25deg);
        -webkit-transform: skewx(-25deg);
        left: 50px;
    }
}

.site-card-tag.speed {
    background: var(--heo-green);
    box-shadow: var(--heo-shadow-green);
}

.flink#article-container .site-card:hover .site-card-tag {
    left: -50px;
}


.flink-list-item:hover .site-card-tag {
    left: -50px;
}

.flink#article-container .site-card .info {
    display: flex;
    border: none;
    padding: 0.5rem;
    width: 100%;
    height: 90px;
    margin: 0;
    border-radius: 0 0 12px 12px;
}

/* 修复图片圆角 */
.flink#article-container .site-card .img img {
    border-radius: 12px 12px 0 0;
    transform: scale(1.03);
    transition: 0.3s;
}

@media screen and (min-width: 769px) {
    .flink#article-container .site-card:hover .img img {
        transform: scale(1.1);
        filter: brightness(0.3);
    }

    .flink#article-container .site-card:hover .img {
        height: 80px;
    }
}


.flink#article-container .site-card .img {
    -webkit-mask-image: -webkit-radial-gradient(center, #fff, #000);
    border-radius: 0;
    height: 120px;
    width: 100%;
    display: flex;
    border: none;
    padding: 0 !important;
}


/* 头像 */
.flink#article-container .site-card .info img {
    border-radius: 32px;
    transition: .3s ease-out !important;
    margin: 2px 8px 0 0;
    width: 20px;
    height: 20px;
    min-width: 20px;
    min-height: 20px;
    background: var(--heo-secondbg);
}

/* 边距 */
.flink#article-container .site-card-group {
    padding: 20px 0;
}

.flink#article-container .site-card:hover .info img {
    width: 0;
    height: 0;
    opacity: 0;
    min-width: 0;
    min-height: 0;
}

.flink#article-container .site-card:hover {
    border: var(--style-border-hover);
    box-shadow: var(--heo-shadow-main);
}

/* --- 友链朋友圈 --- */
@charset "utf-8";
/*
Last Modified time : 20220211 98:00 by https://immmmm.com
已适配 FriendCircle 公共库和主库
*/
:root {
    --lmm-fontcolor: #363636;
    --lmm-background: #f7f9fe;
    --lmm-floorcolor: #a9a9b3;
    --lmm-dark-fontcolor: #a9a9b3;
    --lmm-dack-background: #252627;
    --lmm-dark-floorcolor: #454545;
}

[data-theme=light] {
    --lmm-fontcolor: #363636;
    --lmm-background: #f7f9fe;
    --lmm-floorcolor: #a9a9b3;
}

[data-theme=dark] {
    --lmm-fontcolor: #a9a9b3;
    --lmm-background: #252627;
    --lmm-floorcolor: #454545;
}

/* 基本信息 */
#cf-state {
    font-size: 16px;
    border-radius: 8px;
    box-shadow: none;
    max-width: 810px;
    margin: auto;
    overflow: hidden;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    padding: 8px 0;
}

.cf-state-data {
    width: 100%;
    display: flex;
}

.cf-data-friends, .cf-data-active, .cf-data-article {
    height: 60px;
    background: transparent;
    display: flex;
    flex-direction: column;
    width: 33%;
    cursor: pointer;
}

.cf-label {
    font-size: 16px;
    padding: 0 3%;
    align-self: center;
    text-align: center;
    width: 100%;
    height: 30px;
}

.cf-message {
    align-self: center;
    text-align: center;
    padding: 0 3%;
    width: 50%;
    font-size: 20px;
}

/* 排序按钮 */
#cf-change {
    font-size: 14px;
    display: block;
    padding: 12px 0 4px;
    width: 100%;
    text-align: center;
}

/* 更多按钮 */
#cf-more {
    width: 40%;
    max-width: 810px;
    height: 30px;
    margin: auto;
    margin-top: 1rem;
    border-radius: 12px;
    font-weight: bolder;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    cursor: pointer;
    transition: 0.3s;
}

#cf-more:hover {
    width: 60%;
    background: var(--heo-main);
    color: var(--heo-white);
    border: var(--style-border-hover);
    box-shadow: var(--heo-shadow-main);
}

#cf-more i.fas::before {
    content: "∞";
}

/* 主容器 */
#cf-container {
    width: 100%;
    max-width: 1500px;
    height: auto;
    margin: auto;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
}

#cf-container a {
    text-decoration: none;
    display: flex;
    align-items: center;
    border-bottom: none;
}

#cf-container a:hover {
    color: var(--heo-lighttext) !important;
    border-bottom: none !important;
    background-color: var(--heo-none) !important;
    box-shadow: none !important;
}

#cf-container .img-alt {
    display: none;
}

.cf-article-avatar {
    line-height: 35px;
    display: flex;
    justify-content: space-between;
}

.cf-img-avatar {
    align-self: center;
    text-align: center;
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    min-height: 22px !important;
    border-radius: 50%;
    background: #fff;
    margin-right: 0.3rem;
}

img.cf-img-avatar {
    margin-bottom: 0 !important;
    margin-top: 0 !important;
}


.cf-article-author {
    line-height: 35px;
    font-size: 14px;
    font-weight: 400;
    margin-left: 5px;
    align-self: center;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    transition: 0.3s;
}

.cf-article-avatar a:hover span {
    color: var(--heo-lighttext);
}

.cf-article-author:hover {
    color: var(--heo-lighttext);
}

.cf-article-author .cf-img-avatar {
    margin-right: 0.3rem;
}

.cf-article-floor {
    position: absolute;
    top: 0;
    right: 0.5rem;
    font-style: italic;
    font-size: 3rem;
    line-height: 1.5rem;
    z-index: 1;
    font-weight: 400;
    display: none;
}

.cf-article-title {
    font-weight: 500;
    position: relative;
    z-index: 2;
    margin-right: auto;
    display: block;
    letter-spacing: 1.5px;
    font-size: 18px;
    align-self: start;
    text-align: left;
    line-height: 1.2;
    padding: 0;
    margin-bottom: 10px;
    transition: 0.3s;
    -webkit-line-clamp: 2;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box !important;
    -webkit-box-orient: vertical;
}

.cf-article-time {
    font-size: 14px;
    text-align: right;
    float: right;
    font-weight: 400;
}

.cf-time-updated, .cf-time-created {
    display: inline-block;
    text-align: left;
    white-space: nowrap;
}

.cf-time-updated i.fas, .cf-time-created i.far {
    padding-right: 8px;
}

.cf-article-time i:before {
    margin-right: 5px;
}

/* 底部 */
#cf-footer {
    margin: 1rem 0;
    text-align: right;
    font-size: 13px;
}

.cf-data-lastupdated {
    font-size: 13px;
    text-align: right;
    display: block;
    color: var(--heo-secondtext);
}

/* 个人文章列表层 */
#cf-overlay, #cf-overshow {
    position: fixed;
    width: 100%;
    height: 100%;
}

#cf-overlay {
    top: 0;
    left: 100%;
    background-color: rgba(255, 255, 255, 0.42);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    overflow-y: auto;
    pointer-events: all;
    transition: all 0.1s ease;
    z-index: 998;
}

#cf-overshow {
    bottom: 100%;
    left: 0;
    transition: all 0.3s ease;
    z-index: 999;
    transition: 0.3s;
}

#cf-overlay.cf-show-now {
    left: 0;
}

#cf-overshow.cf-show-now {
    bottom: 0;
    transition: 0.3s;
}

.cf-overshow {
    text-align: center;
    border-radius: 20px;
    position: absolute;
    width: 320px;
    min-height: 170px;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.093);
    background: var(--heo-theme);
}

.cf-overshow-head:hover img.cf-img-avatar {
    transform: rotate(360deg);
    transition: 0.8s;
}

.cf-overshow .cf-overshow-head a {
    color: var(--heo-white);
    display: block;
    text-align: center;
    font-weight: bold;
    margin-top: -5px;
    padding: 5px 8px 5px;
    text-decoration: none;
}

.cf-overshow img.cf-img-avatar {
    background: #fff;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    margin: -45px auto 0 !important;
    box-shadow: 0 12px 40px rgb(0 0 0 / 9%);
    transform: rotate(-360deg);
    transition: 0.8s;
}

.cf-overshow p {
    margin: 0.3rem 5px;
    position: relative;
    display: flex;
    flex-direction: column;
}

.cf-overshow p a.cf-article-title {
    text-decoration: none !important;
    display: block;
    text-align: justify;
    position: relative;
    z-index: 2;
    font-size: 15px;
    line-height: 1.2;
    letter-spacing: normal;
    max-height: 50px;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    display: box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    color: var(--heo-fontcolor);
}

.cf-overshow p span {
    z-index: 1;
    font-size: 12px;
    margin-left: auto;
}

#cf-container .cf-overshow p a:hover {
    letter-spacing: 1px;
    transition: 0.3s;
}

.cf-overshow .cf-overshow-content {
    padding: 10px 15px 10px;
    border-bottom-left-radius: 20px;
    border-bottom-right-radius: 20px;
    background: var(--heo-card-bg);
    display: flex;
    flex-direction: column;
    max-height: 70vh;
    overflow: scroll;
}

.cf-overshow .cf-overshow-content .cf-article-title {
    margin: 0;
}

#cf-overshow .cf-overshow-close {
    position: sticky;
    display: block;
    width: 100%;
    height: 100%;
}

/* 颜色 */
#cf-state, #cf-more {
    background: var(--heo-card-bg);
    color: var(--heo-fontcolor);
    border: var(--style-border);
    box-shadow: var(--heo-shadow-border);
}

#cf-change, .cf-time-updated, .cf-time-created, .cf-article-floor {
    color: var(--heo-fontcolor);
    opacity: 0.4;
    transition: 0.3s;
}

.cf-article-author, .cf-article a.cf-article-title, .cf-article:hover .cf-article-floor, .cf-article:hover .cf-time-created, .cf-article:hover .cf-time-updated {
    color: var(--heo-fontcolor);
    opacity: 1;
}

.cf-article {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-shadow: var(--heo-shadow-border);
    margin: 8px 0;
    border-radius: 8px;
    font-weight: bolder;
    overflow: hidden;
    transition: all ease-out .3s;
    position: relative;
    padding: 0.8rem;
    padding-bottom: 0.4rem;
    width: calc(50% - 12px);
    background: var(--heo-card-bg);
    border: var(--style-border-always);
}

.cf-article:hover {
    transition: 0.3s;
    border: var(--style-border-hover);
    box-shadow: var(--heo-shadow-main);
}

@media screen and (max-width: 768px) {
    .cf-article {
        box-shadow: none !important;
        width: 100%;
    }
}

#cf-change span:hover {
    color: var(--heo-lighttext);
    cursor: pointer;
}

#cf-change .cf-change-now {
    color: var(--heo-lighttext);
    font-weight: 800;
}

.cf-overshow p a:hover {
    color: var(--heo-lighttext) !important;
}

.cf-overshow p span {
    color: var(--heo-fontcolor);
    opacity: 0.4;
}

/* 暗色主题 */
.dark-theme #cf-overlay, .theme-dark #cf-overlay {
    background-color: rgba(59, 61, 66, 0.42);
}

.dark-theme .cf-overshow, .theme-dark .cf-overshow {
    background: #292a2d;
}

.dark-theme .cf-overshow p a, .theme-dark .cf-overshow p a {
    color: var(--lmm-fontcolor);
}

.dark-theme .cf-overshow .cf-overshow-content, .theme-dark .cf-overshow .cf-overshow-content {
    background: #eaeaea;
}

.dark-theme #cf-state, .dark-theme #cf-more, .theme-dark #cf-state, .theme-dark #cf-more {
    background: var(--lmm-dack-background);
    color: var(--lmm-dark-fontcolor);
}

.dark-theme #cf-change, .dark-theme .cf-time-updated, .dark-theme .cf-time-created, .dark-theme .cf-article-floor, .theme-dark #cf-change, .theme-dark .cf-time-updated, .theme-dark .cf-time-created, .theme-dark .cf-article-floor {
    color: var(--lmm-dark-floorcolor);
}

.dark-theme .cf-article-author, .dark-theme .cf-article a.cf-article-title, .theme-dark .cf-article-author, .theme-dark .cf-article a.cf-article-title {
    color: var(--lmm-dark-fontcolor);
}

.dark-theme .cf-article, .theme-dark .cf-article {
    background: var(--lmm-dack-background);
}

.dark-theme .cf-article:hover .cf-article-floor, .dark-theme .cf-article:hover .cf-time-created, .dark-theme .cf-article:hover .cf-time-updated, .dark-theme .cf-overshow p span, .theme-dark .cf-article:hover .cf-article-floor, .theme-dark .cf-article:hover .cf-time-created, .theme-dark .cf-article:hover .cf-time-updated, .theme-dark .cf-overshow p span {
    color: var(--lmm-dark-fontcolor);
}

/* 移动端适配 */
@media screen and (max-width: 400px) {
    #cf-state {
        font-size: 14px;
    }

    .cf-article-time i {
        display: none;
    }
}

@media screen and (max-width: 300px) {
    #cf-state, .cf-article-time {
        display: none;
    }
}
/* ============================ 独立页改造 & 补充样式 ============================ */

/* 去掉 h2 前的字体图标（无 FontAwesome 时避免乱码） */
#article-container h1::before,
#article-container h2::before,
#article-container h3::before,
#article-container h4::before,
#article-container h5::before,
#article-container h6::before {
    content: none !important;
}

/* 友链分组标题 */
.flink#article-container h2 {
    display: flex;
    align-items: center;
    font-size: 1.3rem;
    border-bottom: var(--style-border);
    padding-bottom: .3rem;
}

/* --- 顶部导航（简化版） --- */
#page-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 60px;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 1.5rem;
    background: transparent;
    transition: .3s;
}

#page-header.nav-fixed {
    background: var(--heo-card-bg);
    border-bottom: var(--style-border);
    box-shadow: var(--heo-shadow-nav);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
}

#page-header .nav-site-title {
    font-weight: 700;
    font-size: 1.1rem;
    color: var(--heo-fontcolor);
    cursor: pointer;
}

#page-header .nav-right {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.theme-toggle {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: var(--style-border);
    background: var(--heo-secondbg);
    color: var(--heo-fontcolor);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: .3s;
    padding: 0;
}

.theme-toggle:hover {
    background: var(--heo-theme);
    color: var(--heo-white);
}

.theme-toggle svg {
    width: 18px;
    height: 18px;
}

/* --- 布局容器 --- */
#body-wrap {
    padding-top: 60px;
    min-height: 100vh;
    background: var(--heo-background);
}

.layout#content-inner {
    display: flex;
    flex-direction: column;
    margin: 0 auto;
    max-width: 1400px;
    padding: 1rem 1.5rem 3rem;
}

#page {
    padding: 0;
    margin: 0 auto;
    width: 100%;
    max-width: 1400px;
}

/* --- 横幅：始终显示（原主题仅 >=1200px 显示） --- */
div#banners {
    display: flex !important;
    width: 100%;
    height: 380px;
    background: var(--heo-card-bg);
    border: var(--style-border);
    border-radius: 12px;
    overflow: hidden;
    position: relative;
    box-shadow: var(--heo-shadow-border);
    flex-direction: column;
    transition: .3s;
    margin-bottom: .5rem;
}

#banners .banner-button-group {
    position: absolute;
    right: 2rem;
    top: 2rem;
    display: flex;
    z-index: 2;
}

#banners .banner-button {
    padding: 8px 12px;
    background: var(--heo-fontcolor);
    border-radius: 12px;
    color: var(--heo-card-bg);
    display: flex;
    align-items: center;
    z-index: 1;
    transition: 0.3s;
    cursor: pointer;
    box-shadow: var(--heo-shadow-black);
    text-decoration: none;
}

#banners .banner-button.secondary {
    background: var(--heo-secondbg);
    border: var(--style-border-always);
    color: var(--heo-lighttext);
    margin-right: 1rem;
    box-shadow: var(--heo-shadow-border);
}

#banners .banner-button:hover {
    background: var(--heo-theme);
    color: var(--heo-white);
}

#banners .banner-button i {
    margin-right: 8px;
    display: inline-flex;
    align-items: center;
}

#banners .banner-button i svg,
.addBtn i svg {
    width: 1rem;
    height: 1rem;
    display: block;
}

.banners-title {
    top: 1.5rem;
    left: 1.5rem;
    position: absolute;
    display: flex;
    flex-direction: column;
    z-index: 2;
}

.banners-title-big {
    font-size: 36px;
    line-height: 1;
    font-weight: 700;
    margin-bottom: 8px;
}

.banners-title-small {
    font-size: 12px;
    line-height: 1;
    color: var(--heo-secondtext);
    margin-top: 8px;
    margin-bottom: 0.5rem;
}

/* 滚动头像始终展示 */
.tags-group-all.nowrapMove .tags-group-wrapper {
    margin-top: 6rem;
    display: flex;
    flex-wrap: nowrap;
    width: max-content;
    align-items: flex-start
}

/* --- 互动友链 canvas --- */
#iframe {
    border: var(--style-border);
    border-radius: 12px;
    width: 100%;
}

.flink-canvas-wrap {
    margin-bottom: .5rem;
}

.addBtn {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    width: 100%;
}

.addBtn button {
    transition: .2s;
    display: flex;
    margin: 20px auto 0;
    color: var(--heo-white);
    padding: 12px 18px;
    border-radius: 12px;
    background: var(--heo-fontcolor);
    align-items: center;
    border: none;
    cursor: pointer;
}

.addBtn button:hover {
    background: var(--heo-theme);
    color: var(--heo-white);
}

.addBtn i {
    font-size: 1.2rem;
    margin-right: 10px;
    display: inline-flex;
    align-items: center;
}

/* --- 底部自定义说明区链接 hover --- */
.links-article a {
    color: var(--heo-lighttext);
    text-decoration: none;
    border-bottom: 1px solid var(--heo-lighttext);
}

.links-article a:hover {
    color: var(--heo-white);
    background: var(--heo-main);
    border-radius: 4px;
}

/* --- 页脚 --- */
#footer {
    text-align: center;
    padding: 1.5rem 1rem 2rem;
    color: var(--heo-secondtext);
    font-size: .85rem;
    background: var(--heo-background);
}

#footer a {
    color: var(--heo-lighttext);
    text-decoration: none;
}

/* --- Toast 通知（替代 node-snackbar） --- */
#snackbar {
    position: fixed;
    top: 24px;
    left: 50%;
    transform: translateX(-50%) translateY(-120%);
    z-index: 9999;
    min-width: 280px;
    max-width: 90vw;
    background: var(--heo-card-bg);
    color: var(--heo-fontcolor);
    border: var(--style-border);
    border-radius: 12px;
    box-shadow: var(--heo-shadow-border);
    padding: 14px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    transition: transform .4s cubic-bezier(.2,.8,.2,1), opacity .4s;
    opacity: 0;
}

#snackbar.show {
    transform: translateX(-50%) translateY(0);
    opacity: 1;
}

#snackbar .snack-text {
    flex: 1;
    line-height: 1.5;
    font-size: .9rem;
}

#snackbar .snack-action {
    flex-shrink: 0;
    padding: 6px 14px;
    border-radius: 8px;
    background: var(--heo-theme);
    color: var(--heo-white);
    cursor: pointer;
    font-size: .85rem;
    white-space: nowrap;
    border: none;
}

#snackbar .snack-close {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border: none;
    background: transparent;
    color: var(--heo-secondtext);
    cursor: pointer;
    font-size: 1.1rem;
    line-height: 1;
}

/* --- 响应式 --- */
@media screen and (max-width: 768px) {
    div#banners {
        height: 340px;
    }
    .banners-title-big {
        font-size: 26px;
    }
    #banners .banner-button-group {
        right: 1rem;
        top: 1rem;
    }
    .banners-title {
        left: 1rem;
        top: 1rem;
    }
    #banners .banner-button {
        padding: 6px 8px;
    }
    .layout#content-inner {
        padding: .5rem 0 2rem;
    }
    #footer {
        padding-bottom: 3rem;
    }
}
