:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--page-bg:#f8f8f6;--surface:#fff;--text:#252525;--text-secondary:#666660;--text-muted:#898982;--border:#e7e7e1;--accent:#356b59;--accent-hover:#244c3e;--tag-bg:#eeefe9;--content-width:760px;--page-gutter:28px;--radius:8px;--font-sans:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-serif:"Iowan Old Style", "Songti SC", "Noto Serif CJK SC", serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{background:var(--page-bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overflow-wrap:break-word;margin:0;font-size:16px;line-height:1.8}a{color:var(--accent);text-decoration:none;transition:color .16s}a:hover{color:var(--accent-hover)}img,video,iframe{max-width:100%}img{height:auto}button,input,textarea,select{font:inherit}.container{width:min(calc(100% - var(--page-gutter) * 2), var(--content-width));margin-inline:auto}.site-header{border-bottom:1px solid var(--border);padding:24px 0}.site-header .container{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 28px;display:flex}.site-title{color:var(--text);letter-spacing:-.035em;font-size:18px;font-weight:700}.site-title:hover{color:var(--accent);text-decoration:none}.site-nav ul{flex-wrap:wrap;align-items:center;gap:8px 24px;margin:0;padding:0;list-style:none;display:flex}.site-nav a{color:var(--text-secondary);font-size:14px}.site-nav a:hover{color:var(--accent)}.site-main{min-height:68vh;padding:56px 0 80px}.post-list{margin:0;padding:0;list-style:none}.post-item{border-bottom:1px solid var(--border);padding:28px 0 32px}.post-item:first-child{padding-top:0}.post-item:last-child{border-bottom:none}.post-title{font-family:var(--font-serif);letter-spacing:-.025em;margin:0 0 8px;font-size:clamp(21px,3vw,26px);font-weight:600;line-height:1.5}.post-title a{color:var(--text)}.post-title a:hover{color:var(--accent)}.post-meta,.article-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:4px 10px;margin:0 0 12px;font-size:13px;line-height:1.8;display:flex}.post-meta a,.article-meta a{color:var(--text-muted)}.post-meta a:hover,.article-meta a:hover{color:var(--accent)}.post-excerpt{color:var(--text-secondary);margin:0;font-size:15px;line-height:1.9}.article-title{font-family:var(--font-serif);letter-spacing:-.04em;margin:0 0 16px;font-size:clamp(29px,5vw,40px);font-weight:650;line-height:1.4}.article-meta{margin-bottom:0}.article-content{max-width:100%;color:var(--text);overflow-wrap:anywhere;font-size:16px;line-height:2}.article-content h2,.article-content h3,.article-content h4{font-family:var(--font-serif);letter-spacing:-.02em;margin:2em 0 .8em;font-weight:650;line-height:1.5}.article-content h2{font-size:26px}.article-content h3{font-size:21px}.article-content h4{font-size:18px}.article-content a{text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-underline-offset:3px}.article-content hr{background:var(--border);border:0;height:1px;margin:40px 0}.article-content table{border-collapse:collapse;width:100%;font-size:14px;display:block;overflow-x:auto}.article-content th,.article-content td{border:1px solid var(--border);text-align:left;padding:10px 14px}.article-content th{background:var(--tag-bg)}.article-content code{font-family:SFMono-Regular,Consolas,monospace;font-size:.9em}.article-content :not(pre)>code{background:var(--tag-bg);border-radius:4px;padding:2px 5px}.article-tags,.article-categories{flex-wrap:wrap;gap:8px;margin-top:32px;display:flex}.tag,.category{background:var(--tag-bg);color:var(--text-secondary);border-radius:4px;margin:0;padding:3px 10px;font-size:12px;line-height:1.8;display:inline-block}a.tag:hover,a.category:hover{background:var(--border);color:var(--accent);text-decoration:none}.post-nav{border-top:1px solid var(--border);justify-content:space-between;gap:24px;margin-top:48px;padding-top:24px;font-size:14px;display:flex}.post-nav>span{min-width:0;max-width:48%}.post-nav>span:last-child{text-align:right}.post-nav a{overflow-wrap:anywhere}.pagination{color:var(--text-muted);justify-content:center;align-items:center;gap:24px;padding:36px 0 0;font-size:14px;display:flex}.pagination a{color:var(--text-secondary)}.pagination a:hover{color:var(--accent)}.archive-year{font-family:var(--font-serif);margin:40px 0 16px;font-size:24px}.tag-list,.category-list{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.tag-list a,.category-list a{border:1px solid var(--border);color:var(--text-secondary);border-radius:6px;padding:6px 12px;font-size:14px;display:inline-block}.tag-list a:hover,.category-list a:hover{border-color:var(--accent);color:var(--accent)}.site-footer{border-top:1px solid var(--border);color:var(--text-muted);text-align:center;padding:28px 0 36px;font-size:12px;line-height:1.8}.site-footer p{margin:0 0 6px}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}:root,:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page-bg:#171816;--surface:#20211e;--text:#e9e9e3;--text-secondary:#b7b8af;--text-muted:#8d8f86;--border:#34352f;--accent:#8abda6;--accent-hover:#b2d9c4;--tag-bg:#292a25}@media (width<=600px){:root{--page-gutter:20px}.site-header{padding:18px 0}.site-header .container{flex-direction:column;align-items:flex-start;gap:12px}.site-nav ul{gap:6px 18px}.site-main{padding:36px 0 56px}.post-item{padding:24px 0 26px}.post-title{font-size:22px}.post-excerpt{font-size:14px}.article-header{margin-bottom:30px}.article-title{font-size:30px}.article-content{font-size:15px;line-height:1.95}.article-content h2{font-size:23px}.article-content h3{font-size:19px}.post-nav{gap:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.home-intro{border-bottom:1px solid var(--border);margin-bottom:12px;padding:0 0 42px}.home-eyebrow{color:var(--text-muted);letter-spacing:.14em;margin:0 0 14px;font-size:11px;font-weight:600}.section-heading{margin:32px 0 8px}.section-heading h2{letter-spacing:.02em;margin:0;font-size:14px;font-weight:600}.post-categories{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.meta-separator{color:var(--border)}.post-read-more{color:var(--accent);margin-top:12px;font-size:13px;display:inline-block}.post-read-more:hover{color:var(--accent-hover)}@media (width<=600px){.home-intro{padding-bottom:30px}.home-heading{font-size:32px}.section-heading{margin-top:26px}}.article{width:100%;max-width:var(--content-width);margin-inline:auto}.article-header{margin-bottom:38px}.article-title{font-family:var(--font-serif);letter-spacing:-.035em;overflow-wrap:anywhere;margin:0 0 20px;font-size:clamp(30px,4.5vw,40px);font-weight:650;line-height:1.45}.article-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;line-height:1.8;display:flex}.article-categories{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.article-content{color:var(--text);overflow-wrap:anywhere;font-size:16px;line-height:1.95}.article-content>:first-child{margin-top:0}.article-content p{margin:0 0 1.45em}.article-content h2{font-family:var(--font-serif);letter-spacing:-.02em;margin:2.2em 0 .8em;font-size:1.65em;line-height:1.5}.article-content h3{margin:1.9em 0 .7em;font-size:1.3em;line-height:1.6}.article-content h4{margin:1.7em 0 .6em;font-size:1.1em;line-height:1.6}.article-content a{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);text-underline-offset:3px}.article-content a:hover{text-decoration-color:currentColor}.article-content blockquote{border-left:3px solid var(--accent);color:var(--text-secondary);margin:1.8em 0;padding:4px 0 4px 20px}.article-content blockquote>:last-child{margin-bottom:0}.article-content ul,.article-content ol{margin:0 0 1.5em;padding-left:1.6em}.article-content li{margin:.35em 0}.article-content img,.article-content video{border-radius:var(--radius);max-width:100%;height:auto;margin:1.8em auto;display:block}.article-content figure{margin:1.8em 0}.article-content figcaption{color:var(--text-muted);text-align:center;margin-top:8px;font-size:13px}.article-content pre{border:1px solid var(--border);border-radius:var(--radius);background:var(--tag-bg);max-width:100%;padding:18px;font-size:14px;line-height:1.7;overflow-x:auto}.article-content :not(pre)>code{background:var(--tag-bg);border-radius:4px;padding:.15em .4em;font-size:.9em}.article-content hr{border:0;border-top:1px solid var(--border);margin:2.5em 0}.article-footer{border-top:1px solid var(--border);margin-top:48px;padding-top:24px}.article-tags{flex-wrap:wrap;gap:8px;margin-bottom:32px;display:flex}.post-nav{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;display:grid}.post-nav-item{flex-direction:column;gap:8px;min-width:0;display:flex}.post-nav-next{text-align:right}.post-nav-label{color:var(--text-muted);font-size:12px}.post-nav-item a{color:var(--text);overflow-wrap:anywhere;font-size:14px;line-height:1.7}.post-nav-item a:hover{color:var(--accent)}.article-comments{width:100%;max-width:var(--content-width);margin:48px auto 0}@media (width<=600px){.article-header{margin-bottom:28px}.article-title{font-size:30px}.article-content{font-size:15.5px;line-height:1.9}.article-content h2{font-size:1.5em}.article-content pre{padding:14px}.article-footer{margin-top:36px}.post-nav{gap:16px}}.listing-page{width:100%;max-width:var(--content-width);margin-inline:auto}.listing-header{border-bottom:1px solid var(--border);margin-bottom:34px;padding-bottom:26px}.listing-title{font-family:var(--font-serif);letter-spacing:-.03em;overflow-wrap:anywhere;margin:0 0 10px;font-size:clamp(28px,4vw,36px);font-weight:650;line-height:1.45}.listing-description{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.9}.archive-year{margin:34px 0 42px}.archive-year-title{font-family:var(--font-serif);margin:0 0 22px;font-size:28px;font-weight:600}.archive-month{margin:0 0 28px}.archive-month-title{color:var(--text-secondary);letter-spacing:.04em;margin:0 0 10px;font-size:13px;font-weight:600}.archive-post-item{justify-content:space-between;align-items:baseline;gap:20px;display:flex}.archive-post-title{min-width:0;color:var(--text);overflow-wrap:anywhere;font-size:15px;line-height:1.8}.archive-post-title:hover{color:var(--accent)}.archive-post-date{color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:12px}.taxonomy-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.taxonomy-item{min-width:0}.taxonomy-link{border:1px solid var(--border);border-radius:var(--radius);min-height:58px;color:var(--text);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;transition:border-color .16s,background-color .16s;display:flex}.taxonomy-link:hover{border-color:var(--accent);background:var(--tag-bg)}.taxonomy-name{overflow-wrap:anywhere;min-width:0}.taxonomy-count{color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:12px}.taxonomy-tag{overflow-wrap:anywhere;max-width:100%;display:inline-block}.tag-list{grid-template-columns:repeat(3,minmax(0,1fr))}.tag-list .taxonomy-item{align-items:flex-start;display:flex}.standalone-page{margin-bottom:24px}@media (width<=600px){.listing-header{margin-bottom:26px;padding-bottom:22px}.listing-title{font-size:29px}.taxonomy-list{grid-template-columns:minmax(0,1fr)}.tag-list{grid-template-columns:repeat(2,minmax(0,1fr))}.archive-post-item{gap:12px}.archive-post-title{font-size:14px}}@media (prefers-reduced-motion:reduce){.taxonomy-link{transition:none}}.home-banner{margin:24px 0 44px}.home-banner-placeholder{aspect-ratio:16/5;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;min-height:150px;color:var(--text-muted);justify-content:center;align-items:center;font-size:13px;display:flex;overflow:hidden}.home-profile{grid-template-columns:minmax(160px,.8fr) minmax(0,1.6fr);align-items:center;gap:clamp(28px,6vw,64px);padding:0 0 52px;display:grid}.home-profile-photo{aspect-ratio:1;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;max-width:280px;color:var(--text-muted);justify-content:center;align-items:center;font-size:13px;display:flex;overflow:hidden}.home-profile-content{min-width:0}.home-heading{font-family:var(--font-serif);letter-spacing:-.035em;margin:0 0 16px;font-size:clamp(30px,4vw,44px);font-weight:600;line-height:1.25}.home-description{max-width:560px;color:var(--text-secondary);margin:0;font-size:15px;line-height:1.9}.home-continue-link{color:var(--accent);align-items:center;gap:10px;margin-top:24px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.home-continue-link:hover{color:var(--accent-hover)}.home-continue-link span:last-child{transition:transform .16s}.home-continue-link:hover span:last-child{transform:translate(4px)}@media (width<=600px){.home-banner{margin:16px 0 32px}.home-banner-placeholder{aspect-ratio:16/7;min-height:120px}.home-profile{grid-template-columns:1fr;gap:24px;padding-bottom:36px}.home-profile-photo{max-width:180px}.home-heading{font-size:32px}}.site-header .header-layout{grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;display:grid}.header-date{color:var(--text-muted);letter-spacing:.04em;white-space:nowrap;font-size:12px}.header-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.header-search{align-items:center;gap:6px;display:flex}.header-search-input{width:0;min-width:0;color:var(--text);opacity:0;background:0 0;border:0;border-bottom:1px solid #0000;outline:none;padding:7px 0;transition:width .18s,opacity .18s,padding .18s}.header-search:focus-within .header-search-input,.header-search:hover .header-search-input{border-bottom-color:var(--border);opacity:1;width:150px;padding:7px 4px}.icon-button{width:36px;height:36px;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;justify-content:center;align-items:center;padding:8px;display:inline-flex}.icon-button:hover{border-color:var(--border);color:var(--text)}.icon-button svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.theme-icon-moon,:root[data-theme=dark] .theme-icon-sun{display:none}:root[data-theme=dark] .theme-icon-moon{display:block}.site-header .site-nav{margin-top:18px}@media (width<=600px){.site-header .header-layout{grid-template-columns:1fr auto;gap:10px}.header-date{grid-area:2/1}.header-actions{grid-area:1/2/span 2}.header-search:focus-within .header-search-input,.header-search:hover .header-search-input{width:105px}.site-header .site-nav{margin-top:12px}}.is-homepage .site-nav{display:none}.about-nav{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:24px;margin:0 0 40px;padding-bottom:18px;display:flex}.about-nav ul{flex-wrap:wrap;align-items:center;gap:12px 26px;margin:0;padding:0;list-style:none;display:flex}.about-nav a{color:var(--text-secondary);font-size:14px;text-decoration:none;transition:color .16s}.about-nav a:hover{color:var(--accent)}.about-nav .about-back{flex-shrink:0;align-items:center;gap:8px;display:inline-flex}@media (width<=600px){.about-nav{align-items:flex-start;gap:16px;margin-bottom:28px}.about-nav ul{justify-content:flex-end;gap:10px 14px}}.about-nav .space-tab{appearance:none;color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border:0;padding:4px 0;font-size:14px;transition:color .16s}.about-nav .space-tab:hover,.about-nav .space-tab.is-active{color:var(--text)}.about-nav .space-tab.is-active{font-weight:600}.space-panel[hidden]{display:none!important}@media (width<=600px){.about-nav{flex-wrap:wrap}}.archive-page .listing-header{margin-bottom:36px}.archive-page .archive-year{margin:0 0 36px}.archive-page .archive-year-title{color:var(--text-muted);font-size:14px;font-family:var(--font-sans);letter-spacing:.04em;margin-bottom:12px;font-weight:500}.archive-page .archive-post-item{padding:20px 0;display:block}.archive-post-content{grid-template-columns:48px minmax(0,1fr);align-items:baseline;gap:20px;display:grid}.archive-page .archive-post-date{padding-top:3px;font-size:12px}.archive-post-heading{margin:0;font-size:17px;font-weight:500;line-height:1.65}.archive-page .archive-post-title{color:var(--text);text-decoration:none}.archive-page .archive-post-title:hover{color:var(--accent)}.archive-post-excerpt{color:var(--text-secondary);margin:6px 0 0;font-size:13px;line-height:1.8}@media (width<=600px){.archive-post-content{grid-template-columns:42px minmax(0,1fr);gap:12px}.archive-post-heading{font-size:16px}}.archive-category-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:0 0 44px;display:grid}.archive-category-card{min-width:0;color:var(--text);text-decoration:none;display:block}.archive-category-image{aspect-ratio:4/3;background:var(--surface,var(--border));color:var(--text-secondary);border-radius:8px;justify-content:center;align-items:center;font-size:14px;display:flex;overflow:hidden}.archive-category-image img{object-fit:cover;width:100%;height:100%;transition:transform .22s;display:block}.archive-category-card:hover .archive-category-image img{transform:scale(1.035)}.archive-category-name{font-family:var(--font-serif);overflow-wrap:anywhere;margin:12px 0 0;font-size:16px;font-weight:550;line-height:1.6}.archive-category-card:hover .archive-category-name{color:var(--accent)}@media (width<=600px){.archive-category-cards{gap:12px;margin-bottom:32px}.archive-category-image{border-radius:5px}.archive-category-name{margin-top:8px;font-size:14px}}:is(body:has(.personal-space) .site-nav,body:has(.archive-page) .site-nav){display:none!important}.content-nav{border-bottom:1px solid var(--color-border,#e5e5e5);justify-content:space-between;align-items:center;gap:1rem;width:100%;margin:0 0 2rem;padding:.9rem 0;font-size:.92rem;display:flex}.content-nav a{color:var(--color-muted,inherit);text-decoration:none;transition:color .2s}.content-nav a:hover{color:var(--color-text,currentColor)}.content-nav-back{align-items:center;gap:.45rem;min-width:0;display:inline-flex}.content-nav-about{flex-shrink:0;margin-left:auto}body:has(.content-nav) .site-nav{display:none!important}@media (width<=600px){.content-nav{margin-bottom:1.5rem}}

/* Frank blog: tighter top spacing */
.site-header {
  padding: 14px 0;
}

.site-main {
  padding-top: 28px;
}

.home-banner {
  margin-top: 8px;
  margin-bottom: 32px;
}

@media (max-width: 600px) {
  .site-header {
    padding: 12px 0;
  }

  .site-main {
    padding-top: 20px;
  }

  .home-banner {
    margin-top: 6px;
    margin-bottom: 24px;
  }
}

/* ===== Frank Blog: Global layout refinement ===== */

/* Header spacing */
.site-header {
  padding: 14px 0;
}

.site-header .site-nav {
  margin-top: 10px;
}

/* Main content top whitespace */
.site-main {
  padding-top: 28px;
}

/* Homepage banner */
.home-banner {
  margin-top: 8px;
  margin-bottom: 32px;
}

/* Content navigation */
.content-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: -8px 0 1.5rem;
  padding: 0.65rem 0;
}

/* Listing page heading */
.listing-header {
  margin-bottom: 2rem;
}

/* Category overview cards */
.category-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  padding: 0;
  list-style: none;
}

.category-list .taxonomy-item {
  min-width: 0;
  margin: 0;
}

.category-list .taxonomy-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 76px;
  padding: 20px;
  border: 1px solid var(--border);
  border-radius: 12px;
  text-decoration: none;
  transition: border-color 160ms ease,
              transform 160ms ease;
}

.category-list .taxonomy-link:hover {
  border-color: var(--text-secondary);
  transform: translateY(-2px);
}

.category-list .taxonomy-name {
  font-weight: 600;
}

.category-list .taxonomy-count {
  flex-shrink: 0;
  opacity: 0.65;
}

/* Article list spacing */
.post-list {
  padding: 0;
}

.post-item {
  margin-bottom: 2rem;
}

.post-title {
  line-height: 1.45;
}

.post-excerpt {
  line-height: 1.85;
}

/* Article reading width and rhythm */
.article {
  max-width: 800px;
  margin-inline: auto;
}

.article-title {
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.article-content {
  line-height: 1.9;
  overflow-wrap: anywhere;
}

.article-footer {
  margin-top: 3rem;
}

/* Mobile layout */
@media (max-width: 600px) {
  .site-header {
    padding: 12px 0;
  }

  .site-header .site-nav {
    margin-top: 8px;
  }

  .site-main {
    padding-top: 20px;
  }

  .home-banner {
    margin-top: 6px;
    margin-bottom: 24px;
  }

  .category-list {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }

  .category-list .taxonomy-link {
    min-height: 64px;
    padding: 16px;
  }

  .listing-header {
    margin-bottom: 1.5rem;
  }

  .article {
    max-width: none;
  }

  .article-title {
    font-size: clamp(1.8rem, 8vw, 2.5rem);
  }
}
/* ===== Article share and comments ===== */

.article-share {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}

.share-button {
  padding: 9px 15px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
  transition: border-color 160ms ease;
}

.share-button:hover {
  border-color: var(--text-secondary);
}

.share-status {
  font-size: 0.9rem;
  color: var(--text-secondary);
}

.article-comments {
  max-width: 800px;
  margin: 48px auto 0;
  padding-top: 28px;
  border-top: 1px solid var(--border);
}

.comments-title {
  margin: 0 0 24px;
  font-size: 1.5rem;
  line-height: 1.4;
}

@media (max-width: 600px) {
  .article-comments {
    margin-top: 32px;
    padding-top: 22px;
  }

  .article-share {
    margin-top: 20px;
  }
}
/* Halo category hierarchy */
.halo-category-tree {
  list-style: none;
  padding-left: 0;
  margin: 0;
}

.halo-category-item {
  margin: 0;
}

.halo-category-item > .halo-category-tree {
  padding-left: 24px;
}

.halo-category-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 8px;
  text-decoration: none;
}

.halo-category-count {
  color: var(--text-secondary);
  font-size: 0.875rem;
}

.category-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 18px;
  font-size: 0.9rem;
}

.category-children {
  margin: 24px 0;
}

.category-children h2 {
  font-size: 1.1rem;
  margin-bottom: 12px;
}
.taxonomy-children {
  list-style: none;
  margin: 8px 0 12px;
  padding-left: 24px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
}

.taxonomy-children .taxonomy-link {
  min-height: 48px;
  padding: 12px 16px;
  border-radius: 8px;
}

@media (max-width: 600px) {
  .taxonomy-children {
    padding-left: 16px;
  }
}

/* 分类详情页：文章在左，标签在右 */
.category-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
  gap: 36px;
  align-items: start;
  margin-top: 24px;
}

.category-main {
  min-width: 0;
}

.category-sidebar {
  min-width: 0;
  align-self: start;
}

.category-tag-section {
  position: sticky;
  top: 24px;
  padding: 20px;
  border: 1px solid var(--border);
  border-radius: 12px;
}

.category-tag-heading {
  margin: 0 0 16px;
  font-size: 1.1rem;
}

.category-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

.category-tag-list .tag {
  display: inline-block;
  max-width: 100%;
  padding: 5px 10px;
  border: 1px solid var(--border);
  border-radius: 999px;
  overflow-wrap: anywhere;
  text-decoration: none;
  font-size: 0.85rem;
}

.category-tag-section #category-tag-toggle {
  margin-top: 8px;
}

.category-tag-section #category-tag-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 16px;
}

.category-tag-section #category-tag-pagination[hidden] {
  display: none;
}
/* 仅加宽包含分类标签栏的分类详情页 */
.listing-page:has(.category-tag-section) {
  width: calc(100% - 56px);
  max-width: 1080px;
}

@media (max-width: 760px) {
  .listing-page:has(.category-tag-section) {
    width: calc(100% - 40px);
  }
}
/* 手机端改为上下布局 */
@media (max-width: 760px) {
  .category-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  .category-sidebar {
    order: 2;
  }

  .category-tag-section {
    position: static;
  }
}
/* 仅放宽包含分类标签栏的分类详情页 */
/* 分类页沿用网站原有的整体宽度 */
.site-main > .container:has(.category-tag-section) {
  width: auto;
  max-width: var(--content-width);
}

.listing-page:has(.category-tag-section) {
  width: 100%;
  max-width: var(--content-width);
}

/* 桌面端：文章在左，标签在右 */
.category-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 260px;
  gap: 36px;
  align-items: start;
}

.category-main {
  min-width: 0;
}

.category-sidebar {
  min-width: 0;
}

/* 手机端：文章在上，标签在下 */
@media (max-width: 760px) {
  .site-main > .container:has(.category-tag-section) {
    width: calc(100% - 40px);
  }

  .category-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  .category-sidebar {
    order: 2;
  }
}
/* 统一顶部返回导航的字体与位置 */
.content-nav,
.about-nav {
  box-sizing: border-box;
  width: 100%;
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
}

/* 统一左右链接的字体 */
.content-nav a,
.about-nav a {
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  text-decoration: none;
}

/* 统一导航的左侧起点和上下间距 */
.content-nav,
.about-nav {
  margin-top: 0;
  padding-top: 0.65rem;
  padding-bottom: 0.65rem;
}

/* 返回链接的图标和文字保持对齐 */
.content-nav-back,
.about-nav .about-back {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

/* 内容页顶部导航：统一鼠标悬停变色效果 */
.content-nav a,
.content-nav a:visited {
  transition: color 0.2s ease;
}

.content-nav a:hover {
  color: var(--accent, #2563eb);
}

.content-nav a:focus-visible {
  color: var(--accent, #2563eb);
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

/* ===== 全站宽度调整：2026-10 ===== */

/* 全站主要内容容器 */
:root {
  --content-width: 1200px;
  --page-gutter: 32px;
}

/* 文章详情页：适度加宽，同时保留阅读舒适度 */
.article {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
}

/* 文章评论区与正文宽度保持协调 */
.article-comments {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
}

/* 手机端：保留原有响应式布局 */
@media (max-width: 600px) {
  :root {
    --page-gutter: 20px;
  }

  .article,
  .article-comments {
    max-width: 100%;
  }
}
