/* Warm editorial layout, independently implemented after studying https://www.aibrium.cn/. */
.xh-front {
    --xh-ink: #403a35;
    --xh-muted: #9b9082;
    --xh-accent: #d39c48;
    --xh-accent-strong: #b9812f;
    --xh-glass: rgba(255, 253, 247, 0.77);
    --xh-line: rgba(255, 255, 255, 0.85);
    --xh-soft: rgba(198, 154, 85, 0.075);
    --xh-base: #f6f0e6;
    --xh-shadow: 0 12px 35px rgba(112, 83, 48, 0.045);
    --ab-serif: 'Source Han Serif CN Web', serif;
    scrollbar-color: #d7b786 transparent;
}
.xh-front[data-theme='dark'] {
    --xh-ink: #e7decf;
    --xh-muted: #b2a58f;
    --xh-accent: #d5ad6d;
    --xh-accent-strong: #e4bb7b;
    --xh-glass: rgba(41, 36, 31, 0.87);
    --xh-line: rgba(225, 200, 163, 0.1);
    --xh-soft: rgba(222, 181, 119, 0.075);
    --xh-base: #24211d;
    --xh-shadow: 0 12px 35px #0c090716;
}
.xh-front body:before {
    background:
        radial-gradient(ellipse at 0 35%, #e7cfc129, transparent 60%),
        radial-gradient(ellipse at 100% 60%, #e9dabc30, transparent 50%),
        linear-gradient(180deg, #f6f0e6, #faf6ee);
}
.xh-front[data-theme='dark'] body:before {
    background:
        radial-gradient(ellipse at 0 35%, #795a4226, transparent 60%),
        linear-gradient(180deg, #29241e, #211f1c);
}
.xh-front .xh-header {
    max-width: none;
    width: 100%;
    height: 68px;
    padding: 0 max(30px, calc((100vw - 1300px) / 2));
    background: rgba(255, 250, 243, 0.82);
    border-bottom: 1px solid #fff8;
    position: relative;
    gap: 25px;
    backdrop-filter: blur(22px);
}
.xh-front[data-theme='dark'] .xh-header {
    background: #29241ed9;
    border-color: var(--xh-line);
}
/* 首页导航覆盖在首图上，背景有图像经过时才会呈现真实的毛玻璃效果。 */
.ab-home {
    --ab-nav-height: 68px;
}
.xh-front .ab-home > .xh-header {
    position: sticky;
    top: 0;
    margin-bottom: calc(-1 * var(--ab-nav-height));
    background: rgba(255, 250, 243, 0.68);
    border-bottom: 1px solid #fff7;
    -webkit-backdrop-filter: blur(22px) saturate(125%);
    backdrop-filter: blur(22px) saturate(125%);
    box-shadow: 0 3px 20px #493c2610;
}
.xh-front[data-theme='dark'] .ab-home > .xh-header {
    background: rgba(38, 33, 28, 0.7);
    border-color: var(--xh-line);
}
.ab-home .ab-hero {
    box-sizing: content-box;
    padding-top: var(--ab-nav-height);
}
@media (max-width: 700px) {
    .ab-home {
        --ab-nav-height: 65px;
    }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .xh-front .ab-home > .xh-header {
        background: #fffaf3f5;
    }
    .xh-front[data-theme='dark'] .ab-home > .xh-header {
        background: #29241ef5;
    }
}
.xh-front .xh-brand {
    font-family: var(--ab-serif);
    font-size: 21px;
    gap: 5px;
    letter-spacing: -0.5px;
}
.xh-front .xh-brand-icon {
    display: none;
}
.xh-front .xh-brand-divider {
    font-family: var(--ab-serif);
    color: var(--xh-accent);
    font-size: 22px;
    font-weight: bold;
    display: block;
    margin: 0 4px;
}
.xh-front .xh-brand-sub {
    font-size: 20px;
    letter-spacing: -0.5px;
    font-weight: bold;
    font-family: var(--ab-serif);
    color: var(--xh-ink);
}
.xh-front .xh-navigation {
    gap: 27px;
}
.xh-front .xh-navigation > a {
    font-family: var(--ab-serif);
    font-weight: 600;
    font-size: 12px;
    color: var(--xh-ink);
}
.xh-front .xh-navigation > a.is-active {
    color: var(--xh-accent-strong);
}
.xh-front .xh-nav-tools {
    border-color: #b79a6d25;
    padding-left: 17px;
}
.xh-front .xh-icon-button {
    font-size: 13px;
}
.ab-hero {
    height: 365px;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    color: #fffdf9;
    text-align: center;
    display: grid;
    place-items: center;
}
.ab-hero-picture {
    position: absolute;
    inset: 0;
    z-index: -3;
    background: #686f67;
    filter: saturate(0.68) sepia(0.13);
    transform: scale(1.01);
}
.ab-hero-picture > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 43%;
}
.ab-hero:before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -2;
    background:
        linear-gradient(90deg, #4b444a69, #524a4640 60%, #76655735),
        linear-gradient(0deg, #75685b40, transparent 65%);
}
.ab-hero-content {
    margin-top: -27px;
    position: relative;
}
.ab-hero-eyebrow {
    font-family: system-ui, sans-serif;
    font-size: 9px;
    letter-spacing: 4px;
    color: #fff9edcf;
}
.ab-hero h1 {
    font-size: 64px;
    line-height: 1.1;
    font-weight: bold;
    font-family: 'Source Han Serif CN Web', 'Times New Roman', serif;
    letter-spacing: -2px;
    margin: 17px 0 18px;
    text-shadow: 0 3px 30px #423a4b22;
}
.ab-hero-content > p {
    font-family: var(--ab-serif);
    font-size: 15px;
    letter-spacing: 2px;
    color: #fff9f0f0;
    margin: 0;
}
.ab-hero-down {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 33px;
    border: 1px solid #fff7;
    border-radius: 20px;
    margin-top: 28px;
    font-size: 16px;
    animation: ab-down 2s ease-in-out infinite;
    color: white !important;
}
@keyframes ab-down {
    50% {
        transform: translateY(6px);
    }
}
.ab-hero-corner {
    position: absolute;
    right: max(35px, calc((100vw - 1300px) / 2));
    bottom: 60px;
    display: flex;
    flex-direction: column;
    gap: 7px;
    text-align: right;
    color: #fff9d8b5;
}
.ab-hero-corner > span:first-child {
    font-size: 7px;
    font-family: system-ui, sans-serif;
    letter-spacing: 2px;
}
.ab-hero-corner > span:last-child {
    font-size: 10px;
    font-family: var(--ab-serif);
    letter-spacing: 2px;
}
.ab-wave {
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 100%;
    height: 63px;
    color: var(--xh-base);
    pointer-events: none;
    overflow: hidden;
}
/* 波形包含两个相同周期，移动一个周期后无缝循环。三层错速形成层次。 */
.ab-wave-layer {
    transform-box: fill-box;
    animation: ab-wave-flow 24s linear infinite;
    will-change: transform;
}
.ab-wave-back {
    fill: currentColor;
    opacity: 0.25;
    animation-duration: 20s;
    animation-delay: -7s;
}
.ab-wave-middle {
    fill: currentColor;
    opacity: 0.5;
    animation-duration: 28s;
    animation-direction: reverse;
    animation-delay: -12s;
}
.ab-wave-front {
    fill: currentColor;
    animation-duration: 36s;
    animation-delay: -18s;
}
@keyframes ab-wave-flow {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(-50%);
    }
}
@media (prefers-reduced-motion: reduce) {
    .ab-wave-layer {
        animation: none;
        will-change: auto;
    }
}
.ab-shell {
    max-width: 1360px;
    margin: 0 auto;
    padding: 0 30px;
}
.ab-main-search {
    position: relative;
    z-index: 2;
    max-width: 700px;
    margin: -8px auto 35px;
    display: flex;
    align-items: center;
    gap: 16px;
    background: var(--xh-glass);
    border: 1px solid var(--xh-line);
    border-radius: 24px;
    box-shadow: 0 12px 30px #90704905;
    backdrop-filter: blur(18px);
    padding: 14px 21px;
    height: 59px;
}
.ab-main-search > i {
    color: #aaa394;
    font-size: 17px;
    flex-shrink: 0;
}
.ab-main-search > input {
    flex: 1;
    min-width: 0;
    border: 0;
    background: transparent;
    outline: none;
    font-family: var(--ab-serif);
    font-size: 14px;
    color: var(--xh-ink);
    padding: 0;
}
.ab-main-search > input::placeholder {
    color: #b2a797;
}
.ab-main-search > button {
    background: none;
    border: 0;
    font-size: 10px;
    color: var(--xh-accent-strong);
    white-space: nowrap;
}
.ab-main-search > button span {
    margin-left: 7px;
}
.ab-main-search > kbd {
    background: #c4b29514;
    color: #b8ab99;
    font-family: system-ui, sans-serif;
    font-size: 7px;
    padding: 3px 5px;
    box-shadow: none;
    border: 1px solid #bca78323;
    border-radius: 5px;
}
.ab-layout {
    display: grid;
    grid-template-columns: 235px minmax(0, 1fr) 245px;
    gap: 22px;
    align-items: start;
}
.ab-left-sidebar,
.ab-right-sidebar {
    display: flex;
    flex-direction: column;
    gap: 20px;
    min-width: 0;
}
.ab-card {
    background: var(--xh-glass);
    border: 1px solid var(--xh-line);
    border-radius: 24px;
    box-shadow: var(--xh-shadow);
    backdrop-filter: blur(17px);
    -webkit-backdrop-filter: blur(17px);
    overflow: hidden;
}
.ab-profile {
    padding: 28px 21px 20px;
    text-align: center;
    position: relative;
}
.ab-profile-decoration {
    position: absolute;
    top: 14px;
    right: 20px;
    color: #d4b785;
    font-size: 23px;
}
.ab-avatar {
    width: 81px;
    height: 81px;
    border-radius: 19px;
    object-fit: cover;
    padding: 3px;
    border: 2px solid #e8bc72;
    box-shadow: 0 6px 20px #ab8a5e14;
    background: #fff7;
    transition: transform 0.5s;
}
.ab-avatar:hover {
    transform: rotate(6deg);
}
.ab-profile h2 {
    font-family: var(--ab-serif);
    font-size: 23px;
    margin: 15px 0 3px;
    font-weight: bold;
}
.ab-profile-label {
    font:
        6px system-ui,
        sans-serif;
    letter-spacing: 1.7px;
    color: #b29c7d;
}
.ab-bio {
    font-family: var(--ab-serif);
    font-size: 11px;
    line-height: 2.05;
    color: var(--xh-muted);
    margin: 16px 0 19px;
    overflow-wrap: anywhere;
}
.ab-social {
    display: flex;
    justify-content: center;
    gap: 14px;
    color: #a18b6c;
    font-size: 14px;
}
.ab-social > a {
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    transition:
        transform 0.2s,
        color 0.2s;
}
.ab-social > a:hover {
    color: var(--xh-accent-strong);
    transform: translateY(-3px);
}
.ab-stats {
    display: flex;
    justify-content: space-around;
    border-top: 1px solid #c9b59022;
    border-bottom: 1px solid #c9b59022;
    padding: 16px 0;
    margin: 20px 0 15px;
}
.ab-stats > a {
    display: flex;
    flex-direction: column;
    gap: 3px;
    flex: 1;
    position: relative;
}
.ab-stats > a + a:before {
    content: '';
    position: absolute;
    left: 0;
    top: 7px;
    width: 1px;
    height: 24px;
    background: #bda27922;
}
.ab-stats strong {
    font-family: 'Source Han Serif CN Web', serif;
    font-weight: 400;
    font-size: 24px;
    color: var(--xh-accent-strong);
    line-height: 1.4;
}
.ab-stats small {
    font-family: var(--ab-serif);
    font-size: 10px;
    color: var(--xh-muted);
}
.ab-profile-note {
    font-size: 8px;
    color: #ad9e89;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}
.ab-status-dot {
    height: 5px;
    width: 5px;
    border-radius: 50%;
    background: #99ad7d;
    box-shadow: 0 0 0 3px #a7b78e0f;
}
.ab-navigation {
    padding: 21px;
}
.ab-navigation h3,
.ab-recommend-card h3,
.ab-settings h3 {
    font-family: var(--ab-serif);
    font-size: 14px;
    margin: 0 0 15px;
}
.ab-navigation h3 > span,
.ab-recommend-card h3 > span,
.ab-settings h3 > span {
    color: var(--xh-accent);
    margin-right: 5px;
}
.ab-navigation h3 small {
    font:
        6px system-ui,
        sans-serif;
    letter-spacing: 1.4px;
    color: #b7aa96;
    float: right;
    margin-top: 8px;
}
.ab-navigation > div {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}
.ab-navigation > div > a {
    font-size: 10px;
    padding: 8px 2px;
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--xh-muted);
    white-space: nowrap;
}
.ab-navigation > div > a > i {
    font-size: 12px;
    color: #c6a363;
    width: 15px;
}
.ab-navigation > div > a > span {
    font-size: 9px;
    margin-left: auto;
    color: #c8b79c;
}
.ab-clock-card {
    text-align: center;
    padding: 20px 10px;
}
.ab-side-kicker {
    font-family: system-ui, sans-serif;
    font-size: 7px;
    letter-spacing: 1.8px;
    color: #b7a589;
}
.ab-clock-card [data-xh-clock] {
    font-family: 'Source Han Serif CN Web', serif;
    font-size: 36px;
    font-variant-numeric: tabular-nums;
    letter-spacing: 5px;
    color: #8e7e65;
    line-height: 1.6;
}
.ab-clock-card p {
    font-family: var(--ab-serif);
    font-size: 11px;
    margin: 0 0 8px;
    color: var(--xh-muted);
}
.ab-clock-caption {
    font-size: 8px;
    color: #b2a691;
}
.ab-side-quote {
    text-align: center;
    padding: 0 10px;
    color: #b9a889;
}
.ab-side-quote > span {
    font-size: 52px;
    line-height: 1;
    font-family: 'Source Han Serif CN Web', serif;
    color: #d4c2a0;
    display: block;
    margin-top: 4px;
    height: 33px;
}
.ab-side-quote p {
    font-family: var(--ab-serif);
    font-size: 12px;
    line-height: 2.2;
    margin: 6px 0 13px;
}
.ab-side-quote small {
    font:
        5px system-ui,
        sans-serif;
    letter-spacing: 1.2px;
}
.ab-main-column {
    min-width: 0;
}
.ab-feed-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 2px 5px 16px;
    gap: 10px;
}
.ab-feed-heading h2 {
    font-family: var(--ab-serif);
    font-size: 23px;
    margin: 6px 0 0;
    letter-spacing: 0.5px;
    font-weight: 700;
}
.ab-feed-heading em {
    font-style: normal;
    color: #ae8b52;
}
.ab-article-total {
    font-size: 8px;
    color: var(--xh-muted);
    white-space: nowrap;
    align-self: flex-end;
    padding-bottom: 6px;
}
.ab-article-total b {
    font-family: 'Source Han Serif CN Web', serif;
    font-size: 15px;
    font-weight: 400;
    margin-right: 3px;
}
.ab-filter-bar {
    display: flex;
    gap: 7px;
    align-items: center;
    margin: 0 0 16px;
    padding: 0 3px;
}
.ab-filter-bar > a {
    font-size: 9px;
    border-radius: 15px;
    padding: 5px 11px;
    color: var(--xh-muted);
    white-space: nowrap;
    transition: background 0.2s;
}
.ab-filter-bar > a.is-active {
    background: #d9b579;
    color: #fffaf1;
    box-shadow: 0 4px 12px #b7945d16;
}
.ab-filter-bar > a:hover:not(.is-active) {
    background: #c6a66b13;
    color: var(--xh-accent-strong);
}
.ab-filter-bar > a:last-child {
    margin-left: auto;
}
.ab-feed {
    gap: 20px;
}
.ab-post {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 35%;
    min-height: 177px;
    position: relative;
    transition:
        transform 0.35s,
        box-shadow 0.35s;
}
.ab-post:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 30px #9a7a4b10;
}
.ab-post-content {
    padding: 21px 23px 19px;
    min-width: 0;
    display: flex;
    flex-direction: column;
}
.ab-post-top {
    display: flex;
    align-items: center;
    gap: 11px;
    font-size: 7px;
    line-height: 1;
    color: var(--xh-muted);
    margin-bottom: 10px;
}
.ab-post-index {
    font-family: 'Source Han Serif CN Web', serif;
    font-size: 10px;
    color: #d0bf9e;
}
.ab-recommend {
    color: #c19b58;
    font-size: 7px;
}
.ab-nature {
    margin-left: auto;
    opacity: 0.6;
    font-size: 7px;
}
.ab-post-content h3 {
    font-family: var(--ab-serif);
    font-size: 18px;
    font-weight: bold;
    line-height: 1.65;
    margin: 0 0 8px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.ab-post-content h3 a * {
    color: inherit !important;
}
.ab-post-excerpt {
    font-family: var(--ab-serif);
    font-size: 11px !important;
    line-height: 1.9;
    color: var(--xh-muted) !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    max-height: 42px;
}
.ab-post-excerpt * {
    font-size: inherit !important;
    color: inherit !important;
    line-height: inherit !important;
    margin: 0 !important;
}
.ab-post-meta {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-top: auto;
    padding-top: 17px;
    font-size: 8px;
    color: #aaa08f;
}
.ab-post-meta time {
    font-family: 'Source Han Serif CN Web', serif;
    letter-spacing: 0.5px;
}
.ab-post-meta i {
    font-size: 9px;
    margin-right: 2px;
}
.ab-category {
    margin-left: auto;
    background: #d7bd8e19;
    color: var(--xh-accent-strong) !important;
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 7px;
    max-width: 80px;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}
.ab-post-image {
    position: relative;
    display: block;
    overflow: hidden;
    margin: 10px 10px 10px 0;
    border-radius: 17px;
    background: #e5daca;
}
.ab-post-image > img {
    width: 100%;
    height: 100%;
    position: absolute;
    object-fit: cover;
    transition:
        transform 0.8s,
        filter 0.8s;
    filter: saturate(0.7);
}
.ab-post:hover .ab-post-image > img {
    transform: scale(1.06);
    filter: saturate(1);
}
.ab-post-image:after {
    content: '';
    position: absolute;
    inset: 50% 0 0;
    background: linear-gradient(transparent, #4c3c333b);
    opacity: 0;
    transition: opacity 0.3s;
}
.ab-post-image > span {
    position: absolute;
    right: 10px;
    bottom: 10px;
    z-index: 1;
    font-size: 8px;
    color: #fff;
    opacity: 0;
    transform: translateY(6px);
    transition: 0.3s;
}
.ab-post-image > span b {
    font-size: 13px;
    margin-left: 6px;
}
.ab-post:hover .ab-post-image > span,
.ab-post:hover .ab-post-image:after {
    opacity: 1;
    transform: none;
}
.ab-pagination {
    margin-top: 5px;
    gap: 23px;
}
.xh-front .ab-pagination > a {
    width: 35px;
    height: 35px;
    border-radius: 50%;
    font-family: 'Source Han Serif CN Web', serif;
    background: var(--xh-glass);
    color: #ae9166;
}
.ab-page-indicator {
    display: flex;
    gap: 12px;
    align-items: center;
    font:
        12px 'Source Han Serif CN Web',
        serif;
    color: #b1a38e;
}
.ab-page-indicator b {
    font-size: 16px;
    color: #9e7f4e;
    font-weight: 400;
}
.ab-endnote {
    font-family: var(--ab-serif);
    text-align: center;
    color: #b7a58b;
    font-size: 10px;
    letter-spacing: 2px;
    margin: 27px 0;
}
.ab-endnote span {
    margin-right: 6px;
    color: #c6a366;
}
.ab-sound-card {
    padding: 23px 20px 0;
}
.ab-sound-header {
    display: flex;
    align-items: center;
    gap: 14px;
}
.ab-disc {
    width: 66px;
    height: 66px;
    flex-shrink: 0;
    border-radius: 50%;
    background: repeating-radial-gradient(circle, #334942 0 1px, #2b4039 2px 4px);
    display: grid;
    place-items: center;
    box-shadow: 0 3px 13px #3c493321;
    position: relative;
}
.ab-disc:after {
    content: '';
    position: absolute;
    left: 40%;
    height: 100%;
    width: 10%;
    background: #bba46944;
    transform: rotate(-15deg);
}
.ab-disc > div {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #f2e7cf;
    border: 6px solid #c4d1b1;
    z-index: 1;
}
.ab-disc.is-playing {
    animation: ab-spin 9s linear infinite;
}
@keyframes ab-spin {
    to {
        transform: rotate(360deg);
    }
}
.ab-sound-kicker {
    font:
        bold 7px system-ui,
        sans-serif;
    color: #c49a55;
    letter-spacing: 1.2px;
    padding: 2px 5px;
    background: #d8bc851a;
    white-space: nowrap;
}
.ab-sound-header h3 {
    font-family: var(--ab-serif);
    font-size: 18px;
    margin: 6px 0 3px;
}
.ab-sound-header p {
    font-family: var(--ab-serif);
    font-size: 8px;
    color: var(--xh-muted);
    margin: 0;
    white-space: nowrap;
}
.ab-sound-quote {
    font-family: var(--ab-serif);
    font-size: 10px;
    text-align: center;
    color: #b99c6a;
    margin: 24px 0 15px;
    letter-spacing: 0.5px;
}
.ab-sound-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.ab-sound-state {
    font-size: 8px;
    color: #a99a82;
}
.ab-sound-controls button {
    width: 33px;
    height: 33px;
    border-radius: 50%;
    background: #d0ad70;
    color: #fffaf1;
    border: 0;
    display: grid;
    place-items: center;
    font-size: 11px;
    box-shadow: 0 3px 10px #b18f4e12;
}
.ab-volume-row {
    display: flex;
    align-items: center;
    gap: 9px;
    color: #b8a27e;
    font-size: 10px;
    margin: 14px 0 12px;
}
.ab-volume-row input {
    appearance: none;
    height: 3px;
    border-radius: 4px;
    background: #c8b38838;
    width: 100%;
    accent-color: #c19b5e;
    cursor: pointer;
}
.ab-volume-row input::-webkit-slider-thumb {
    appearance: none;
    height: 8px;
    width: 8px;
    border-radius: 50%;
    background: #c8a364;
}
.ab-sound-bars {
    display: flex;
    align-items: end;
    justify-content: center;
    gap: 5px;
    height: 23px;
    opacity: 0.3;
}
.ab-sound-bars i {
    height: 8px;
    width: 3px;
    border-radius: 3px 3px 0 0;
    background: #c3ab7d;
    transform-origin: bottom;
    animation: ab-bars 1.2s ease-in-out infinite alternate;
    animation-play-state: paused;
}
.ab-sound-bars i:nth-child(3n) {
    height: 20px;
    animation-delay: -0.4s;
}
.ab-sound-bars i:nth-child(3n + 1) {
    height: 13px;
    animation-delay: -0.8s;
}
.ab-sound-card.is-playing .ab-sound-bars i {
    animation-play-state: running;
}
.ab-sound-card.is-playing .ab-sound-bars {
    opacity: 0.6;
}
@keyframes ab-bars {
    to {
        transform: scaleY(0.25);
    }
}
.ab-calendar {
    padding: 18px 19px 15px;
}
.ab-calendar-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 0 0 13px;
}
.ab-calendar-top h3 {
    font: 600 13px var(--ab-serif);
    margin: 0;
    letter-spacing: 1px;
}
.ab-calendar-top button {
    border: 0;
    background: none;
    color: #bca16d;
    font-size: 20px;
    padding: 0 8px;
}
.ab-calendar-week,
.ab-calendar-days {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    text-align: center;
    gap: 4px 1px;
}
.ab-calendar-week {
    font-family: var(--ab-serif);
    font-size: 9px;
    color: #af9d80;
    margin-bottom: 8px;
}
.ab-calendar-days > span {
    height: 25px;
    display: grid;
    place-items: center;
    font:
        10px 'Source Han Serif CN Web',
        serif;
    color: #9a8d79;
    position: relative;
}
.ab-calendar-days > .is-today {
    border-radius: 50%;
    background: #d5b57d;
    color: #fff;
    box-shadow: 0 2px 8px #ba9b6520;
}
.ab-calendar-days > .is-weekend:not(.is-today) {
    color: #c0a27f;
}
.ab-calendar > p {
    font-family: var(--ab-serif);
    font-size: 9px;
    color: #baab92;
    text-align: center;
    border-top: 1px solid #cab79225;
    padding-top: 12px;
    margin: 13px 0 0;
}
.ab-calendar-today {
    font-size: 8px;
    border: 0;
    background: transparent;
    color: #b39769;
    display: block;
    margin: 10px auto 0;
}
.ab-recommend-card {
    padding: 22px 20px;
}
.ab-recommend-card h3 {
    font-size: 13px;
    margin-bottom: 5px;
}
.ab-recommend-card > a {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 14px 0;
    border-bottom: 1px solid #c5b28b20;
}
.ab-recommend-card > a:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}
.ab-recommend-card > a > span:first-child {
    font:
        italic 17px 'Source Han Serif CN Web',
        serif;
    color: #c7b28a;
}
.ab-recommend-card > a > span:last-child {
    margin-left: auto;
    color: #c8b897;
    font-size: 10px;
}
.ab-recommend-card > a > div {
    min-width: 0;
}
.ab-recommend-card strong {
    font-family: var(--ab-serif);
    font-size: 10px;
    font-weight: 500;
    line-height: 1.8;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.ab-recommend-card small {
    font:
        8px 'Source Han Serif CN Web',
        serif;
    color: #b6a890;
    display: block;
    margin-top: 4px;
}
.ab-settings {
    padding: 20px;
}
.ab-settings h3 {
    font-size: 13px;
}
.ab-settings .xh-setting-row {
    font-size: 9px;
}
.xh-front .xh-switch.is-on {
    background: #d1af74;
}
.ab-bottom-banner {
    border-top: 1px solid #bda27526;
    max-width: 900px;
    margin: 40px auto 0;
    padding: 35px 15px;
    text-align: center;
}
.ab-bottom-banner > span {
    font:
        7px system-ui,
        sans-serif;
    letter-spacing: 2.5px;
    color: #b9a88b;
}
.ab-bottom-banner h2 {
    font: 600 23px var(--ab-serif);
    letter-spacing: 1px;
    margin: 17px 0 24px;
}
.ab-bottom-banner em {
    font-style: normal;
    color: #b99b67;
}
.ab-bottom-banner > a {
    display: inline-block;
    border: 1px solid #c9ae7d35;
    padding: 8px 18px;
    border-radius: 20px;
    background: #fff6;
    color: #b28b4c;
    font-size: 10px;
}
.ab-bottom-banner > a span {
    margin-left: 18px;
}
.xh-front .xh-footer {
    max-width: 1300px;
    font-family: var(--ab-serif);
    border-color: #c3ab8229;
}
.xh-front .xh-footer-brand {
    font-size: 14px;
}
.xh-front .xh-footer-brand > span:first-child {
    color: #c8a260;
}
.xh-front .xh-footer-bottom {
    border-color: #c3ab8220;
}
.xh-front .xh-reading-progress {
    background: linear-gradient(90deg, #d7bb8a, #e5c3a8);
}
.xh-front .xh-particles {
    z-index: 2;
}
.xh-front .xh-particles i {
    width: 9px;
    height: 14px;
    border-radius: 80% 0 80% 0;
    background: linear-gradient(135deg, #e7bdc2, #cf9ea980);
    box-shadow: none;
    animation: ab-petal 20s linear infinite;
    transform: rotate(30deg);
    opacity: 0;
}
@keyframes ab-petal {
    0% {
        opacity: 0;
        transform: translate(-30px, -120px) rotate(0deg);
    }
    10% {
        opacity: 0.4;
    }
    85% {
        opacity: 0.3;
    }
    100% {
        transform: translate(120px, 80vh) rotate(320deg);
        opacity: 0;
    }
}
.xh-front .xh-floating-tools button {
    border-radius: 50%;
    color: #b89c6b;
    background: var(--xh-glass);
    box-shadow: 0 4px 15px #b3997020;
}
.xh-front .xh-legacy-hero:after {
    background: linear-gradient(120deg, #ece0c8bb, #f7e7d9a0, #eee3ceaa);
}
.xh-front[data-theme='dark'] .xh-legacy-hero:after {
    background: linear-gradient(120deg, #443b2fbc, #3e342ba0, #3d392daa);
}
.xh-front .xh-legacy-hero-copy h1 {
    font-family: var(--ab-serif);
}
.xh-front .xh-dialog {
    background: var(--xh-base);
}
.xh-front .xh-dialog h2 {
    font-family: var(--ab-serif);
}
.xh-front .xh-dialog-submit {
    background: #ccaa70;
}
.xh-front .xh-dialog input:focus {
    border-color: #c6aa7b;
}
.xh-front .xh-search-hint kbd {
    color: var(--xh-accent);
}
.xh-front .xh-post-category,
.xh-front .xh-profile-button {
    color: var(--xh-accent) !important;
}
.xh-front .xh-empty {
    font-family: var(--ab-serif);
}
.xh-front .typo pre {
    background: #38332d !important;
    color: #e9dfce !important;
}
.xh-front .xh-code-copy {
    color: #ddcba9;
}
.xh-front .blog-title {
    font-family: var(--ab-serif);
    font-weight: 700;
}
.xh-front blockquote {
    border-color: #d0ae72 !important;
}
.xh-front .xh-toast {
    background: var(--xh-ink);
    color: var(--xh-base);
}
@media (min-width: 1600px) {
    .ab-shell {
        max-width: 1410px;
    }
    .ab-layout {
        grid-template-columns: 250px minmax(0, 1fr) 265px;
        gap: 25px;
    }
    .ab-hero {
        height: 390px;
    }
    .ab-hero h1 {
        font-size: 70px;
    }
    .ab-post {
        min-height: 190px;
    }
    .ab-post-content {
        padding: 23px 25px;
    }
    .ab-post-content h3 {
        font-size: 20px;
    }
    .ab-post-excerpt {
        font-size: 12px !important;
    }
    .ab-feed-heading h2 {
        font-size: 25px;
    }
    .xh-front .xh-header {
        padding: 0 max(35px, calc((100vw - 1350px) / 2));
    }
}
@media (max-width: 1150px) {
    .xh-front .xh-navigation {
        gap: 20px;
    }
    .ab-shell {
        padding: 0 24px;
    }
    .ab-layout {
        grid-template-columns: 210px minmax(0, 1fr) 220px;
        gap: 17px;
    }
    .ab-profile {
        padding: 25px 17px 18px;
    }
    .ab-profile h2 {
        font-size: 21px;
    }
    .ab-bio {
        font-size: 10px;
    }
    .ab-navigation {
        padding: 20px 16px;
    }
    .ab-navigation > div > a {
        font-size: 9px;
    }
    .ab-post-content {
        padding: 18px;
    }
    .ab-post-content h3 {
        font-size: 16px;
    }
    .ab-post {
        min-height: 167px;
        grid-template-columns: minmax(0, 1fr) 32%;
    }
    .ab-post-excerpt {
        font-size: 10px !important;
    }
    .ab-post-meta {
        gap: 8px;
        font-size: 7px;
    }
    .ab-sound-card {
        padding: 21px 16px 0;
    }
    .ab-sound-header {
        gap: 10px;
    }
    .ab-disc {
        width: 57px;
        height: 57px;
    }
    .ab-sound-header h3 {
        font-size: 17px;
    }
    .ab-sound-header p {
        font-size: 7px;
    }
    .ab-sound-kicker {
        font-size: 6px;
    }
    .ab-calendar {
        padding: 17px 14px;
    }
    .ab-right-sidebar,
    .ab-left-sidebar {
        gap: 17px;
    }
    .ab-recommend-card {
        padding: 20px 17px;
    }
    .ab-recommend-card > a {
        gap: 9px;
    }
    .ab-category {
        font-size: 6px;
    }
    .ab-feed-heading h2 {
        font-size: 21px;
    }
    .ab-filter-bar {
        gap: 3px;
    }
    .ab-filter-bar > a {
        font-size: 8px;
        padding: 5px 9px;
    }
    .ab-feed {
        gap: 17px;
    }
    .ab-hero {
        height: 340px;
    }
    .ab-hero h1 {
        font-size: 58px;
    }
    .ab-hero-content > p {
        font-size: 13px;
    }
}
@media (max-width: 960px) {
    .ab-layout {
        grid-template-columns: 220px minmax(0, 1fr);
        gap: 20px;
    }
    .ab-right-sidebar {
        grid-column: span 2;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 18px;
        margin-top: 4px;
    }
    .ab-settings {
        grid-column: span 3;
        display: flex;
        align-items: center;
        gap: 30px;
        padding: 15px 23px;
    }
    .ab-settings h3 {
        margin: 0 auto 0 0;
    }
    .ab-settings .xh-setting-row {
        gap: 20px;
        margin: 0;
    }
    .ab-recommend-card {
        padding: 20px;
    }
    .ab-sound-card,
    .ab-calendar,
    .ab-recommend-card {
        height: 100%;
    }
    .ab-post {
        min-height: 180px;
        grid-template-columns: minmax(0, 1fr) 35%;
    }
    .ab-post-content h3 {
        font-size: 17px;
    }
    .ab-post-excerpt {
        font-size: 11px !important;
    }
    .ab-post-content {
        padding: 20px;
    }
    .ab-post-meta {
        font-size: 8px;
    }
    .ab-feed-heading h2 {
        font-size: 23px;
    }
    .ab-filter-bar > a {
        font-size: 9px;
    }
    .xh-front .xh-header {
        padding: 0 24px;
    }
    .xh-front .xh-navigation {
        gap: 20px;
    }
    .xh-front .xh-navigation > a {
        font-size: 10px;
    }
    .xh-front .xh-brand {
        font-size: 19px;
    }
    .xh-front .xh-brand-sub {
        font-size: 18px;
    }
    .ab-hero {
        height: 325px;
    }
    .ab-hero h1 {
        font-size: 54px;
    }
    .ab-hero-corner {
        right: 24px;
        bottom: 52px;
    }
    .ab-hero-corner > span:last-child {
        font-size: 8px;
    }
}
@media (max-width: 700px) {
    .xh-front .xh-header {
        padding: 0 19px;
        height: 65px;
        gap: 10px;
    }
    .xh-front .xh-navigation {
        gap: 14px;
    }
    .xh-front .xh-navigation > a {
        font-size: 9px;
    }
    .xh-front .xh-nav-tools {
        padding-left: 10px;
    }
    .xh-front .xh-brand-divider {
        display: none;
    }
    .xh-front .xh-brand-sub {
        display: none;
    }
    .ab-shell {
        padding: 0 18px;
    }
    .ab-layout {
        grid-template-columns: 185px minmax(0, 1fr);
        gap: 16px;
    }
    .ab-profile {
        padding: 23px 16px 17px;
    }
    .ab-profile h2 {
        font-size: 19px;
    }
    .ab-avatar {
        width: 70px;
        height: 70px;
    }
    .ab-profile-label {
        font-size: 5px;
        letter-spacing: 1px;
    }
    .ab-bio {
        font-size: 10px;
        line-height: 1.95;
    }
    .ab-stats strong {
        font-size: 22px;
    }
    .ab-stats small {
        font-size: 8px;
    }
    .ab-profile-note {
        font-size: 6px;
        gap: 4px;
    }
    .ab-navigation {
        padding: 19px 15px;
    }
    .ab-navigation h3 {
        font-size: 13px;
    }
    .ab-navigation h3 small {
        display: none;
    }
    .ab-navigation > div > a {
        font-size: 8px;
        gap: 4px;
    }
    .ab-navigation > div > a > i {
        font-size: 11px;
    }
    .ab-navigation > div > a > span {
        display: none;
    }
    .ab-clock-card [data-xh-clock] {
        font-size: 30px;
    }
    .ab-clock-card p {
        font-size: 9px;
    }
    .ab-card {
        border-radius: 21px;
    }
    .ab-post-content {
        padding: 17px;
    }
    .ab-post {
        grid-template-columns: minmax(0, 1fr) 30%;
        min-height: 167px;
    }
    .ab-post-content h3 {
        font-size: 16px;
    }
    .ab-post-image {
        border-radius: 13px;
        margin: 8px 8px 8px 0;
    }
    .ab-post-top {
        font-size: 6px;
        gap: 8px;
    }
    .ab-post-content h3 {
        font-size: 15px;
    }
    .ab-post-excerpt {
        font-size: 10px !important;
    }
    .ab-post-meta {
        font-size: 7px;
        gap: 8px;
        flex-wrap: wrap;
        padding-top: 13px;
    }
    .ab-category {
        margin-left: 0;
    }
    .ab-feed-heading h2 {
        font-size: 20px;
    }
    .ab-feed-heading em {
        display: block;
    }
    .ab-article-total {
        font-size: 7px;
    }
    .ab-article-total b {
        font-size: 13px;
    }
    .ab-filter-bar {
        gap: 0;
    }
    .ab-filter-bar > a {
        padding: 5px 8px;
        font-size: 8px;
    }
    .ab-filter-bar > a:nth-child(5) {
        display: none;
    }
    .ab-right-sidebar {
        gap: 14px;
        grid-template-columns: 1fr 1fr;
    }
    .ab-recommend-card {
        grid-column: span 2;
    }
    .ab-recommend-card > a {
        display: inline-flex;
        width: 49%;
        vertical-align: top;
        padding-right: 12px;
    }
    .ab-recommend-card > a:nth-last-child(-n + 2) {
        border: 0;
    }
    .ab-recommend-card > a > span:last-child {
        display: none;
    }
    .ab-settings {
        grid-column: span 2;
    }
    .ab-sound-header h3 {
        font-size: 18px;
    }
    .ab-sound-kicker {
        font-size: 7px;
    }
    .ab-sound-header p {
        font-size: 8px;
    }
    .ab-hero {
        height: 300px;
    }
    .ab-hero h1 {
        font-size: 47px;
        letter-spacing: -1.5px;
    }
    .ab-hero-content > p {
        font-size: 11px;
    }
    .ab-hero-eyebrow {
        font-size: 7px;
        letter-spacing: 3px;
    }
    .ab-hero-content {
        margin-top: -15px;
    }
    .ab-hero-corner {
        display: none;
    }
    .ab-main-search {
        max-width: 85%;
        height: 54px;
        margin: -3px auto 26px;
        padding: 12px 18px;
        gap: 12px;
    }
    .ab-main-search > input {
        font-size: 12px;
    }
    .ab-main-search > kbd {
        display: none;
    }
    .ab-main-search > button {
        font-size: 9px;
    }
    .ab-main-search > i {
        font-size: 14px;
    }
    .ab-wave {
        height: 43px;
    }
    .ab-side-quote p {
        font-size: 11px;
    }
    .ab-side-quote small {
        font-size: 4px;
    }
    .ab-bottom-banner h2 {
        font-size: 20px;
    }
    .ab-bottom-banner {
        margin-top: 27px;
    }
    .xh-front .xh-footer {
        margin-left: 20px;
        margin-right: 20px;
    }
}
@media (max-width: 640px) {
    .xh-front .xh-navigation {
        background: var(--xh-base);
        gap: 3px;
    }
    .xh-front .xh-navigation > a {
        font-family: var(--ab-serif);
        font-size: 12px;
    }
    .xh-front .xh-brand-divider,
    .xh-front .xh-brand-sub {
        display: block;
    }
    .xh-front .xh-nav-tools {
        border: 0;
        padding-left: 0;
    }
    .xh-front .xh-brand {
        font-size: 19px;
    }
    .xh-front .xh-brand-sub {
        font-size: 18px;
    }
    .ab-main-search {
        max-width: 88%;
    }
    .ab-layout {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .ab-left-sidebar {
        display: contents;
    }
    .ab-main-column {
        grid-row: 2;
    }
    .ab-profile {
        display: grid;
        grid-template-columns: 60px 1fr;
        gap: 0 17px;
        text-align: left;
        padding: 20px 22px;
        position: relative;
        grid-row: 1;
    }
    .ab-profile > a {
        grid-row: 1/4;
        align-self: center;
        display: block;
    }
    .ab-avatar {
        width: 60px;
        height: 60px;
        border-radius: 15px;
    }
    .ab-profile h2 {
        font-size: 22px;
        margin: 0 0 3px;
        line-height: 1.5;
    }
    .ab-profile-label {
        font-size: 6px;
        letter-spacing: 1.4px;
        align-self: start;
    }
    .ab-bio {
        grid-column: 1/-1;
        font-size: 11px;
        margin: 16px 0 0;
        line-height: 1.9;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .ab-social {
        justify-content: start;
        gap: 12px;
        font-size: 12px;
        align-self: end;
    }
    .ab-social > a {
        width: 20px;
        height: 20px;
    }
    .ab-stats {
        grid-column: 1/-1;
        margin: 16px 0 0;
        padding: 14px 0 0;
        border-bottom: 0;
        justify-content: start;
        text-align: center;
    }
    .ab-stats > a {
        flex-direction: row;
        gap: 7px;
        align-items: center;
        justify-content: center;
    }
    .ab-stats > a + a:before {
        height: 15px;
        top: 9px;
    }
    .ab-stats strong {
        font-size: 22px;
    }
    .ab-stats small {
        font-size: 9px;
    }
    .ab-profile-note {
        display: none;
    }
    .ab-profile-decoration {
        top: 16px;
        right: 21px;
        font-size: 21px;
    }
    .ab-navigation {
        grid-row: 3;
    }
    .ab-clock-card,
    .ab-side-quote {
        display: none;
    }
    .ab-navigation h3 {
        font-size: 14px;
    }
    .ab-navigation h3 small {
        display: block;
        font-size: 6px;
    }
    .ab-navigation > div {
        grid-template-columns: repeat(3, 1fr);
        gap: 10px;
    }
    .ab-navigation > div > a {
        font-size: 10px;
        gap: 8px;
        padding: 9px 3px;
    }
    .ab-navigation > div > a > i {
        font-size: 13px;
    }
    .ab-right-sidebar {
        grid-column: auto;
        grid-row: 4;
        gap: 16px;
    }
    .ab-main-column {
        margin-top: 3px;
    }
    .ab-feed-heading {
        padding-bottom: 17px;
        align-items: center;
    }
    .ab-feed-heading h2 {
        font-size: 23px;
        letter-spacing: 0.5px;
    }
    .ab-feed-heading em {
        display: inline;
    }
    .ab-feed-heading .ab-side-kicker {
        font-size: 6px;
        letter-spacing: 1.7px;
    }
    .ab-filter-bar {
        gap: 4px;
        padding: 0 1px;
        margin-bottom: 17px;
    }
    .ab-filter-bar > a {
        font-size: 9px;
        padding: 5px 10px;
    }
    .ab-filter-bar > a:nth-child(5) {
        display: block;
    }
    .ab-hero {
        height: 290px;
    }
    .ab-hero-content {
        margin-top: -18px;
    }
    .ab-hero h1 {
        font-size: 43px;
        margin: 17px 0 15px;
        letter-spacing: -1.5px;
    }
    .ab-hero-content > p {
        font-size: 11px;
        letter-spacing: 1.3px;
    }
    .ab-hero-eyebrow {
        font-size: 6px;
        letter-spacing: 2.7px;
    }
    .ab-hero-picture > img {
        object-position: 64% 40%;
    }
    .ab-hero-down {
        width: 22px;
        height: 29px;
        font-size: 14px;
        margin-top: 23px;
    }
    .ab-wave {
        height: 40px;
    }
    .ab-main-search {
        max-width: 100%;
        margin: 0 auto 22px;
        height: 53px;
        border-radius: 20px;
        padding: 12px 17px;
    }
    .ab-main-search > input {
        font-size: 12px;
    }
    .ab-main-search > button {
        font-size: 9px;
    }
    .ab-main-search > button span {
        margin-left: 5px;
    }
    .ab-shell {
        padding: 0 16px;
    }
    .ab-post {
        min-height: 164px;
        grid-template-columns: minmax(0, 1fr) 32%;
        border-radius: 21px;
    }
    .ab-post-content {
        padding: 18px 16px;
    }
    .ab-post-content h3 {
        font-size: 17px;
        line-height: 1.65;
        margin-bottom: 7px;
    }
    .ab-post-top {
        font-size: 7px;
        margin-bottom: 10px;
    }
    .ab-post-index {
        font-size: 9px;
    }
    .ab-recommend {
        font-size: 6px;
    }
    .ab-nature {
        font-size: 6px;
    }
    .ab-post-excerpt {
        font-size: 10px !important;
        max-height: 38px;
        -webkit-line-clamp: 2;
    }
    .ab-post-meta {
        font-size: 8px;
        gap: 9px;
        padding-top: 14px;
    }
    .ab-category {
        font-size: 6px;
        margin-left: auto;
        max-width: 65px;
    }
    .ab-feed {
        gap: 17px;
    }
    .ab-post-image > img {
        object-position: 60%;
    }
    .ab-post-image > span {
        font-size: 6px;
        right: 7px;
        bottom: 8px;
        opacity: 0.9;
        transform: none;
        text-shadow: 0 1px 5px #0008;
    }
    .ab-post-image:after {
        opacity: 1;
    }
    .ab-pagination {
        gap: 24px;
        margin-top: 6px;
    }
    .ab-endnote {
        font-size: 9px;
        margin: 25px 0 2px;
        letter-spacing: 1.5px;
    }
    .ab-calendar {
        padding: 20px 13px 15px;
    }
    .ab-sound-card {
        padding: 21px 15px 0;
    }
    .ab-disc {
        width: 48px;
        height: 48px;
    }
    .ab-disc > div {
        width: 18px;
        height: 18px;
        border-width: 5px;
    }
    .ab-sound-header {
        gap: 9px;
    }
    .ab-sound-header h3 {
        font-size: 16px;
    }
    .ab-sound-kicker {
        font-size: 5px;
        letter-spacing: 0.9px;
        white-space: nowrap;
    }
    .ab-sound-header p {
        font-size: 6px;
        white-space: normal;
    }
    .ab-sound-quote {
        font-size: 8px;
        letter-spacing: 0;
        margin: 20px 0 15px;
    }
    .ab-sound-state {
        font-size: 7px;
    }
    .ab-sound-controls button {
        width: 28px;
        height: 28px;
        font-size: 10px;
    }
    .ab-sound-bars {
        gap: 4px;
    }
    .ab-calendar-top h3 {
        font-size: 12px;
    }
    .ab-calendar-days > span {
        font-size: 9px;
        height: 24px;
    }
    .ab-calendar-top button {
        font-size: 18px;
    }
    .ab-calendar-week {
        font-size: 8px;
    }
    .ab-calendar > p {
        font-size: 7px;
        margin-top: 10px;
        padding-top: 10px;
    }
    .ab-recommend-card {
        padding: 21px;
    }
    .ab-recommend-card h3 {
        font-size: 14px;
    }
    .ab-recommend-card strong {
        font-size: 10px;
    }
    .ab-settings {
        gap: 14px;
        padding: 17px 19px;
        flex-wrap: wrap;
        justify-content: space-between;
    }
    .ab-settings h3 {
        width: 100%;
        font-size: 13px;
        margin: 0 0 0;
    }
    .ab-settings .xh-setting-row {
        font-size: 10px;
        width: 44%;
        gap: 15px;
    }
    .ab-settings .xh-setting-row > span {
        white-space: nowrap;
    }
    .ab-bottom-banner {
        margin-top: 30px;
        padding: 25px 7px 30px;
    }
    .ab-bottom-banner > span {
        font-size: 6px;
        letter-spacing: 2px;
    }
    .ab-bottom-banner h2 {
        font-size: 20px;
        line-height: 1.8;
        margin: 12px 0 20px;
    }
    .ab-bottom-banner em {
        display: block;
    }
    .ab-bottom-banner > a {
        font-size: 9px;
        padding: 7px 15px;
    }
    .xh-front .xh-footer-brand {
        font-size: 12px;
    }
    .xh-front .xh-footer {
        margin: 0 16px;
    }
    .xh-front .xh-particles i {
        width: 6px;
        height: 10px;
    }
    .xh-front .xh-reading-progress {
        height: 2px;
    }
    .xh-front .xh-header {
        border-color: #fff5;
    }
    .xh-front .xh-navigation > a.is-active {
        background: #dec59a21;
    }
}
@media (max-width: 360px) {
    .xh-front .xh-brand-sub,
    .xh-front .xh-brand-divider {
        display: none;
    }
    .ab-hero h1 {
        font-size: 36px;
        letter-spacing: -1px;
    }
    .ab-hero-eyebrow {
        font-size: 5px;
        letter-spacing: 2px;
    }
    .ab-feed-heading h2 {
        font-size: 21px;
    }
    .ab-article-total {
        display: none;
    }
    .ab-profile h2 {
        font-size: 20px;
    }
    .ab-profile-label {
        font-size: 5px;
    }
    .ab-post-content {
        padding: 16px 13px;
    }
    .ab-post-content h3 {
        font-size: 15px;
    }
    .ab-post-meta {
        font-size: 7px;
        gap: 7px;
    }
    .ab-sound-header {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 10px;
    }
    .ab-sound-header p {
        display: none;
    }
    .ab-sound-quote {
        font-size: 7px;
    }
    .ab-sound-state {
        font-size: 6px;
    }
    .ab-sound-card {
        padding: 20px 12px 0;
    }
    .ab-calendar {
        padding: 18px 10px;
    }
    .ab-calendar-top h3 {
        font-size: 10px;
    }
    .ab-calendar-top button {
        padding: 0 5px;
    }
    .ab-calendar > p {
        display: none;
    }
}
/* Topic directory and search share the same article cards as the home page. */
.xh-front:not([data-theme='dark']) {
    --xh-muted: #897b67;
}
.ab-page-intro {
    max-width: 1180px;
    margin: 0 auto;
    text-align: center;
    padding: 65px 25px 49px;
    position: relative;
}
.ab-page-intro:after {
    content: '✧';
    position: absolute;
    right: 10%;
    top: 48px;
    color: #d5bd92;
    font-size: 32px;
    opacity: 0.6;
}
.ab-page-intro .ab-side-kicker {
    font-size: 8px;
    letter-spacing: 2.8px;
}
.ab-page-intro h1 {
    font-family: var(--ab-serif);
    font-size: 35px;
    line-height: 1.8;
    margin: 13px 0 14px;
}
.ab-page-intro em,
.ab-search-result-title em {
    font-style: normal;
    color: var(--xh-accent-strong);
}
.ab-page-intro > p:last-child {
    font-family: var(--ab-serif);
    font-size: 12px;
    color: var(--xh-muted);
    margin: 0;
}
.ab-subpage-shell {
    max-width: 1140px;
    padding: 0 28px;
    margin: 0 auto 45px;
}
.ab-types-layout {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 28px;
    align-items: start;
    transition: opacity 0.25s;
}
#typeFlush[aria-busy='true'] {
    opacity: 0.5;
    pointer-events: none;
}
.ab-type-directory {
    padding: 24px 21px;
}
.ab-type-directory h2 {
    font: 600 16px var(--ab-serif);
    margin: 0 0 18px;
}
.ab-type-directory h2 > span {
    color: var(--xh-accent);
    margin-right: 7px;
}
.ab-type-directory h2 > small {
    float: right;
    font-size: 8px;
    color: var(--xh-muted);
    font-weight: 400;
    margin-top: 5px;
}
.ab-type-directory > div {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.ab-type-directory a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 11px;
    color: var(--xh-muted);
    padding: 9px 12px;
    border-radius: 9px;
}
.ab-type-directory a > small {
    font:
        10px 'Source Han Serif CN Web',
        serif;
    color: #b39d77;
}
.ab-type-directory a.is-active {
    background: var(--xh-soft);
    color: var(--xh-accent-strong);
    font-weight: 500;
}
.ab-type-directory a:hover {
    background: var(--xh-soft);
}
.ab-type-directory > p {
    font-family: var(--ab-serif);
    font-size: 9px;
    text-align: center;
    margin: 17px 0 0;
    color: #b1a183;
    padding-top: 17px;
    border-top: 1px solid #c1a27420;
}
.ab-types-content {
    min-width: 0;
}
.ab-types-content .ab-feed-heading {
    padding: 4px 4px 20px;
}
.ab-type-page {
    width: 35px;
    height: 35px;
    background: var(--xh-glass);
    border: 1px solid var(--xh-line);
    border-radius: 50%;
    font-size: 14px;
    color: var(--xh-accent-strong);
}
.ab-type-page:disabled {
    opacity: 0.3;
    cursor: default;
}
.ab-search-shell {
    max-width: 900px;
}
.ab-search-shell .ab-main-search {
    margin: 0 auto 30px;
    max-width: 100%;
}
.ab-search-result-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 23px;
    padding: 0 5px;
}
.ab-search-result-title h2 {
    font: 600 21px var(--ab-serif);
    margin: 0;
}
.ab-search-result-title a {
    font-size: 10px;
    color: var(--xh-muted);
}
.ab-search-feed .ab-post {
    min-height: 180px;
}
.ab-subpage .xh-footer {
    max-width: 1084px;
}
.ab-post-excerpt {
    font-size: 12px !important;
}
.ab-bio {
    font-size: 12px;
    line-height: 2;
}
.ab-hero h1 {
    overflow-wrap: normal;
}
@media (max-width: 960px) {
    .ab-types-layout {
        grid-template-columns: 215px minmax(0, 1fr);
        gap: 20px;
    }
    .ab-type-directory {
        padding: 21px 17px;
    }
    .ab-page-intro h1 {
        font-size: 30px;
    }
    .ab-bio {
        font-size: 11px;
    }
    .ab-post-excerpt {
        font-size: 11px !important;
    }
}
@media (max-width: 640px) {
    .ab-page-intro {
        padding: 40px 22px 34px;
    }
    .ab-page-intro h1 {
        font-size: 24px;
        line-height: 1.8;
    }
    .ab-page-intro h1 em {
        display: block;
    }
    .ab-page-intro > p:last-child {
        font-size: 10px;
        line-height: 2;
    }
    .ab-page-intro .ab-side-kicker {
        font-size: 6px;
        letter-spacing: 2px;
    }
    .ab-page-intro:after {
        font-size: 25px;
        right: 8%;
        top: 30px;
    }
    .ab-subpage-shell {
        padding: 0 16px;
        margin-bottom: 30px;
    }
    .ab-types-layout {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .ab-type-directory {
        padding: 21px 18px;
    }
    .ab-type-directory > div {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 7px;
    }
    .ab-type-directory a {
        font-size: 9px;
        gap: 10px;
        padding: 6px 9px;
        background: var(--xh-soft);
        border-radius: 7px;
    }
    .ab-type-directory a.is-active {
        background: #d2ae73;
        color: #fffcf1;
    }
    .ab-type-directory a.is-active small {
        color: #fff8;
    }
    .ab-type-directory a > small {
        font-size: 8px;
    }
    .ab-type-directory > p {
        display: none;
    }
    .ab-type-directory h2 {
        font-size: 15px;
        margin-bottom: 17px;
    }
    .ab-types-content .ab-feed-heading {
        padding: 0 4px 20px;
    }
    .ab-types-content .ab-feed-heading h2 {
        font-size: 23px;
    }
    .ab-search-shell .ab-main-search {
        margin-bottom: 25px;
    }
    .ab-search-result-title h2 {
        font-size: 19px;
    }
    .ab-search-result-title a {
        font-size: 9px;
    }
    .ab-search-feed .ab-post {
        min-height: 165px;
    }
    .ab-post-excerpt {
        font-size: 10px !important;
    }
    .ab-bio {
        font-size: 11px;
    }
    .ab-post-content h3 {
        font-size: 16px;
    }
}
