:root {
  --paper:#f7f7f2;
  --ink:#222a24;
  --muted:#677068;
  --line:#e9ece5;
  --accent-light:#235b43;
  --accent-dark:#93c9a3;
  --accent:var(--accent-light);
  --wash:#edf1e7;
  --font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
}
* {
  box-sizing:border-box;
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-sans);
  -webkit-font-smoothing:antialiased;
}
a {
  color:inherit;
  text-decoration:none;
}
a:focus-visible,button:focus-visible,input:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:4px;
}
button,input,textarea {
  font:inherit;
}
button,a {
  touch-action:manipulation;
}
img {
  max-width:100%;
}
h1,h2,h3,p {
  margin-top:0;
}
h1,h2,h3 {
  text-wrap:balance;
}
p {
  text-wrap:pretty;
}
.site-shell {
  width:min(1180px,calc(100% - 64px));
  margin:auto;
}
.site-header {
  background:var(--paper);
}
.header-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  padding:30px 0;
}
.brand {
  display:flex;
  align-items:baseline;
  gap:14px;
}
.brand strong {
  font-size:28px;
  letter-spacing:-.022em;
  font-weight:650;
}
.brand-sub {
  font-size:12px;
  color:var(--muted);
}
.site-nav {
  display:flex;
  align-items:center;
  gap:20px;
  font-size:13px;
}
.site-nav>a {
  padding:10px 0;
}
.site-nav [aria-current] {
  color:var(--accent);
}
.search-form {
  display:flex;
  align-items:center;
  gap:8px;
  background:var(--input);
  border-radius:6px;
  padding:0 10px;
  width:210px;
}
.search-form input {
  width:100%;
  min-width:0;
  border:0;
  background:transparent;
  padding:11px 0;
  font-size:13px;
}
.search-form button {
  background:none;
  border:0;
  padding:10px 0;
  white-space:nowrap;
  color:var(--accent);
  cursor:pointer;
}
.skip-link {
  position:absolute;
  top:-100px;
  left:20px;
  padding:12px;
  background:var(--ink);
  color:white;
  z-index:10;
}
.skip-link:focus {
  top:12px;
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip-path:inset(50%);
}
.editorial-intro {
  padding:66px 0 48px;
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:70px;
}
.editorial-intro.no-route {
  grid-template-columns:1fr;
}
.eyebrow {
  color:var(--accent);
  font-size:12px;
  letter-spacing:.04em;
  margin-bottom:20px;
}
.editorial-intro h1 {
  font-size:clamp(35px,4vw,52px);
  font-weight:650;
  line-height:1.22;
  letter-spacing:-.022em;
  margin-bottom:24px;
}
.intro-copy {
  font-size:16px;
  line-height:1.9;
  max-width:480px;
  color:var(--muted);
}
.reading-route {
  align-self:end;
}
.section-label {
  font-size:13px;
  font-weight:600;
  margin:0 0 22px;
  color:var(--muted);
}
.reading-route a {
  display:flex;
  gap:18px;
  align-items:baseline;
  padding:15px 0;
  font-size:15px;
  line-height:1.7;
}
.route-no {
  font-size:12px;
  color:var(--accent);
  font-variant-numeric:tabular-nums;
}
.journal-body,.layout-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) 250px;
  gap:64px;
}
.journal-body {
  padding:32px 0 50px;
}
.layout-main {
  min-width:0;
}
.feature-story {
  background:var(--wash);
  padding:32px;
  margin-bottom:44px;
  border-radius:8px;
}
.feature-story h2 {
  font-size:27px;
  line-height:1.5;
  letter-spacing:-.012em;
  margin:0 0 16px;
}
.feature-story p {
  font-size:15px;
  line-height:1.85;
  color:var(--soft-ink);
}
.text-link {
  display:inline-block;
  font-size:13px;
  min-height:40px;
  padding:10px 0;
  color:var(--accent);
}
.post-card {
  padding:18px 0 30px;
  margin-bottom:16px;
}
.post-kicker {
  display:flex;
  gap:16px;
  font-size:12px;
  color:var(--muted);
  margin-bottom:12px;
  flex-wrap:wrap;
}
.post-card h2 {
  font-size:22px;
  line-height:1.5;
  letter-spacing:-.012em;
  margin:0 0 12px;
}
.post-excerpt {
  font-size:14px;
  line-height:1.85;
  color:var(--muted);
  max-width:65ch;
}
.archive-head {
  margin:16px 0 35px;
}
.archive-head h1 {
  font-size:32px;
  line-height:1.4;
}
.site-sidebar {
  min-width:0;
  align-self:start;
  position:sticky;
  top:24px;
}
.widget {
  padding:0;
  margin:0 0 40px;
}
.widget-title {
  font-size:13px;
  margin-bottom:14px;
  color:var(--muted);
}
.sidebar-note {
  font-size:13px;
  line-height:1.85;
  color:var(--muted);
}
.sidebar-topic {
  display:block;
  min-height:40px;
  padding:9px 0;
  font-size:13px;
}
.single-wrap {
  padding:48px 0;
}
.single-head h1 {
  font-size:34px;
  line-height:1.45;
  margin:22px 0 32px;
  letter-spacing:-.022em;
}
.single-cover {
  width:100%;
  max-height:380px;
  object-fit:cover;
  border-radius:8px;
  margin-bottom:28px;
}
.breadcrumb {
  font-size:12px;
  color:var(--muted);
  display:flex;
  gap:18px;
  margin-bottom:32px;
}
.entry-content {
  font-size:16px;
  line-height:1.95;
  overflow-wrap:anywhere;
}
.entry-content h2 {
  font-size:25px;
  margin:48px 0 20px;
  scroll-margin-top:24px;
}
.entry-content h3 {
  font-size:19px;
  margin:28px 0 14px;
  scroll-margin-top:24px;
}
.entry-content a {
  color:var(--accent);
  text-decoration:underline;
  text-decoration-color:#b9c9bc;
  text-underline-offset:4px;
}
.entry-content pre {
  background:#242d26;
  color:#e9efe7;
  border-radius:6px;
  padding:20px;
  overflow-x:auto;
  font:13px/1.8 Menlo,Consolas,monospace;
  white-space:pre;
  overflow-wrap:normal;
}
.entry-content code {
  font-family:Menlo,Consolas,monospace;
}
.entry-content table {
  display:block;
  overflow-x:auto;
  max-width:100%;
  font-size:14px;
  border-collapse:collapse;
}
.entry-content th,.entry-content td {
  padding:12px;
  border-bottom:1px solid var(--line);
  min-width:100px;
  text-align:left;
}
.entry-content th {
  background:var(--wash);
}
.entry-content blockquote {
  border:0;
  margin:24px 0;
  padding:20px 24px;
  background:var(--wash);
  border-radius:6px;
  color:var(--soft-ink);
}
.toc-list {
  list-style:none;
  padding:0;
  font-size:12px;
  line-height:1.8;
}
.toc-list li {
  margin-bottom:10px;
}
.toc-h3 {
  padding-left:12px;
}
.toc-h4 {
  padding-left:24px;
}
.toc-link {
  display:block;
  padding:4px 0;
}
.toc-link.is-active {
  color:var(--accent);
  font-weight:600;
}
.single-foot {
  margin-top:40px;
  padding-top:20px;
}
.tag-row {
  font-size:12px;
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}
.post-neighbor {
  display:flex;
  gap:24px;
  justify-content:space-between;
  font-size:13px;
  margin-top:32px;
}
.post-neighbor>span {
  width:48%;
}
.post-neighbor a span {
  display:block;
  line-height:1.7;
}
.post-neighbor small {
  display:block;
  color:var(--muted);
  margin-bottom:8px;
}
.site-footer {
  padding:35px 0;
  color:var(--muted);
}
.footer-inner {
  display:flex;
  justify-content:space-between;
  gap:32px;
  font-size:12px;
}
.footer-inner p {
  margin:0;
  line-height:1.8;
}
.page-navigator {
  display:flex;
  gap:12px;
  padding:24px 0;
  list-style:none;
}
.page-navigator a {
  display:block;
  min-width:40px;
  padding:10px;
  text-align:center;
}
.page-navigator .current {
  background:var(--wash);
  border-radius:4px;
}
.empty-state {
  padding:50px 0;
}
.comments {
  margin-top:48px;
}
.comments input,.comments textarea {
  max-width:100%;
}
.comment-list {
  list-style:none;
  padding:0;
}
.comment-list .comment-list {
  padding-left:18px;
}
.comment-body {
  padding:20px;
  background:var(--wash);
  border-radius:6px;
  margin-bottom:18px;
}
.respond input,.respond textarea {
  padding:12px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:4px;
  max-width:100%;
}
.respond textarea {
  width:100%;
  min-height:120px;
}
.submit {
  padding:10px 20px;
  background:var(--accent);
  color:var(--button-ink);
  border:0;
  border-radius:4px;
  cursor:pointer;
}
.hljs-comment {
  color:#acb5a9;
}
.hljs-string {
  color:#cad9a8;
}
.hljs-keyword {
  color:#c6d1ed;
}
.hljs-number {
  color:#dcc5a9;
}
@media(hover:hover) {
  a:hover {
    color:var(--accent);
  }
  .post-card h2 a:hover,.reading-route a:hover {
    text-decoration:underline;
    text-decoration-color:#cbd5c9;
    text-underline-offset:5px;
  }
}
@media(max-width:1050px) {
  .header-inner {
    flex-wrap:wrap;
    gap:16px;
  }
  .site-nav {
    flex-wrap:wrap;
  }
  .brand-sub {
    font-size:11px;
  }
  .journal-body,.layout-grid {
    grid-template-columns:minmax(0,1fr) 210px;
    gap:35px;
  }
  .editorial-intro {
    gap:36px;
  }
}
@media(max-width:700px) {
  .site-shell {
    width:calc(100% - 36px);
  }
  .header-inner {
    padding:20px 0;
    gap:16px;
  }
  .brand strong {
    font-size:25px;
  }
  .site-nav {
    width:100%;
    gap:8px 18px;
    font-size:12px;
  }
  .search-form {
    width:100%;
    margin-top:4px;
  }
  .search-form input {
    font-size:14px;
  }
  .editorial-intro {
    display:block;
    padding:36px 0 20px;
  }
  .editorial-intro h1 {
    font-size:36px;
  }
  .intro-copy {
    font-size:14px;
  }
  .reading-route {
    margin-top:28px;
  }
  .reading-route a {
    font-size:14px;
    padding:12px 0;
  }
  .journal-body,.layout-grid {
    display:block;
  }
  .journal-body {
    padding-top:28px;
  }
  .feature-story {
    padding:24px;
  }
  .feature-story h2 {
    font-size:23px;
  }
  .post-card h2 {
    font-size:20px;
  }
  .site-sidebar {
    position:static;
    margin-top:40px;
  }
  .single-wrap {
    padding-top:28px;
  }
  .single-head h1 {
    font-size:28px;
  }
  .entry-content {
    font-size:15px;
  }
  .entry-content h2 {
    font-size:22px;
  }
  .footer-inner {
    display:block;
  }
  .footer-inner p+p {
    margin-top:14px;
  }
  .post-neighbor {
    gap:18px;
    font-size:12px;
  }
}
:root {
  color-scheme:light;
  --input:#eef0e9;
  --surface:#fff;
  --soft-ink:#49604d;
  --notice:#edf2ed;
  --warning:#f5efdf;
  --rule:#e9f0ec;
}
:root[data-theme="dark"],:root[data-theme-mode="dark"]:not([data-theme]) {
  color-scheme:dark;
  --paper:#171d19;
  --ink:#e5eae3;
  --muted:#a8b3a9;
  --line:#343f36;
  --wash:#253128;
  --input:#28332b;
  --surface:#202922;
  --soft-ink:#c0d0c3;
  --accent:var(--accent-dark);
  --notice:#24332b;
  --warning:#383223;
  --rule:#20352d;
  --button-ink:#17201a;
  --hover:#202a23;
}
.brand-mark {
  flex:none;
  object-fit:contain;
  opacity:.85;
}
.theme-toggle,.copy-button {
  border:0;
  background:var(--wash);
  color:var(--accent);
  border-radius:5px;
  cursor:pointer;
  padding:9px 12px;
  white-space:nowrap;
  font-size:12px;
  min-height:36px;
}
.theme-toggle[hidden],[hidden] {
  display:none!important;
}
.header-inner {
  gap:22px;
  flex-wrap:wrap;
}
.contact-card {
  background:var(--wash);
  padding:22px;
  border-radius:8px;
}
.contact-title {
  font-size:14px;
  margin-bottom:18px;
}
.contact-copy {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  font-size:13px;
  overflow-wrap:anywhere;
}
.contact-copy strong {
  user-select:all;
}
.contact-card .copy-button {
  background:var(--surface);
}
.service-price {
  font-size:19px;
  line-height:1.5;
  margin-bottom:8px;
}
.service-summary {
  margin:18px 0 0;
}
.contact-card .text-link {
  margin-top:8px;
}
.contact-mobile {
  display:none;
}
.copy-status {
  position:fixed;
  bottom:24px;
  left:50%;
  transform:translateX(-50%);
  z-index:30;
  max-width:calc(100% - 36px);
  padding:12px 18px;
  background:var(--ink);
  color:var(--paper);
  border-radius:6px;
  font-size:13px;
}
.entry-content .callout {
  background:var(--notice);
  padding:20px 24px;
  margin:26px 0;
  border-radius:7px;
  color:var(--ink);
  font-size:15px;
  line-height:1.85;
}
.entry-content .callout-warning {
  background:var(--warning);
}
.entry-content .callout-service {
  background:var(--rule);
}
.callout-title {
  display:block;
  font-weight:600;
  margin-bottom:8px;
}
.callout p:last-child {
  margin-bottom:0;
}
@media(max-width:700px) {
  .brand {
    gap:10px;
  }
  .theme-toggle {
    margin-left:auto;
  }
  .contact-desktop {
    display:none;
  }
  .contact-mobile {
    display:block;
    margin-top:32px;
  }
  .brand-mark {
    width:24px;
    height:24px;
  }
}
:root {
  --button-ink:#fff;
}
:root[data-theme="dark"] {
  --button-ink:#17201a;
}
:root {
  --header-height:84px;
  --hover:#f0f2ec;
}
.site-header {
  position:sticky;
  top:0;
  z-index:20;
}
.header-inner {
  padding:18px 0;
  gap:18px;
  flex-wrap:nowrap;
}
.brand {
  align-items:center;
}
.brand-sub {
  display:none;
}
.site-nav {
  gap:16px;
  margin-left:auto;
}
.search-form {
  width:180px;
}
.theme-toggle {
  font-size:11px;
}
.nav-toggle {
  display:none;
  border:0;
  background:var(--wash);
  color:var(--ink);
  border-radius:5px;
  padding:9px 12px;
  cursor:pointer;
  min-height:40px;
  font-size:12px;
}
.skip-link {
  z-index:40;
  position:fixed;
}
.site-sidebar {
  position:static;
}
.post-toc {
  max-height:none;
  overflow:visible;
}
.layout-grid>.site-sidebar {
  position:static;
  top:auto;
  max-height:none;
  overflow:visible;
}
.entry-content :is(h2,h3,h4),#main {
  scroll-margin-top:calc(var(--header-height) + 24px);
}
.entry-content h4 {
  font-size:17px;
}
.reading-progress {
  position:fixed;
  top:var(--header-height);
  left:0;
  right:0;
  height:2px;
  z-index:21;
  pointer-events:none;
}
.reading-progress span {
  display:block;
  height:100%;
  background:var(--accent);
  transform-origin:left;
  transform:scaleX(0);
}
.reading-time {
  font-variant-numeric:tabular-nums;
}
.feature-cover {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:16/9;
  object-fit:cover;
  border-radius:5px;
  margin-bottom:26px;
}
.single-cover {
  display:block;
  height:auto;
  aspect-ratio:16/9;
}
.post-card {
  padding:22px 18px;
  margin-left:-18px;
  margin-right:-18px;
  border-radius:7px;
  display:flow-root;
  transition:background-color .15s ease;
}
.list-cover {
  width:150px;
  height:auto;
  aspect-ratio:16/9;
  object-fit:cover;
  float:right;
  margin:0 0 16px 22px;
  border-radius:5px;
}
.faq-quick {
  margin:32px 0;
  background:var(--wash);
  padding:24px;
  border-radius:7px;
}
.faq-quick .section-label {
  margin-bottom:12px;
}
.faq-quick a {
  display:block;
  font-size:14px;
  line-height:1.8;
  padding:9px 0;
  color:var(--accent);
}
.code-window {
  margin:24px 0;
  background:#242d26;
  border-radius:6px;
  overflow:hidden;
}
.code-toolbar {
  display:flex;
  justify-content:flex-end;
  padding:8px 12px 0;
}
.code-toolbar .copy-button {
  background:#354138;
  color:#e9efe7;
  font-size:12px;
}
.code-window pre {
  margin:0;
  padding-top:12px;
}
.entry-content :not(pre)>code {
  background:var(--wash);
  padding:2px 5px;
  border-radius:3px;
  font-size:.9em;
}
:root[data-theme="dark"] {
  --hover:#202a23;
}
@media(hover:hover) {
  .post-card:hover {
    background:var(--hover);
  }
}
@media(min-width:1250px) {
  .brand-sub {
    display:inline;
  }
}
@media(max-width:1050px) {
  .header-inner {
    flex-wrap:wrap;
    gap:12px;
  }
  .brand {
    margin-right:auto;
  }
  .site-nav {
    width:100%;
    order:4;
    display:flex;
    flex-wrap:wrap;
    margin:0;
    padding:8px 0 12px;
  }
  .nav-enhanced .site-nav:not(.is-open) {
    display:none;
  }
  .nav-enhanced .nav-toggle {
    display:inline-block;
  }
  .theme-toggle {
    margin-left:0;
  }
  .search-form {
    width:100%;
    margin-top:6px;
  }
  .site-nav>a {
    min-height:40px;
    padding:10px 0;
  }
  .brand-sub {
    display:none;
  }
}
@media(max-width:700px) {
  .header-inner {
    padding:12px 0;
  }
  .brand strong {
    font-size:23px;
  }
  .brand-mark {
    width:23px;
    height:23px;
  }
  .brand {
    gap:8px;
  }
  .theme-toggle {
    padding:9px 8px;
    font-size:10px;
    min-height:40px;
  }
  .nav-toggle {
    padding:9px 10px;
  }
  .layout-grid>.site-sidebar {
    position:static;
    max-height:none;
    overflow:visible;
  }
  .post-toc {
    max-height:none;
  }
  .list-cover {
    width:104px;
    margin-left:14px;
  }
  .post-card {
    margin-left:-10px;
    margin-right:-10px;
    padding:20px 10px;
  }
  .feature-cover {
    margin-bottom:20px;
  }
  .faq-quick {
    padding:20px;
  }
}
@media(prefers-reduced-motion:no-preference) {
  html {
    scroll-behavior:smooth;
  }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    transition:none!important;
    scroll-behavior:auto!important;
  }
}
.layout-grid .post-toc {
  max-height:none;
  overflow:visible;
}
@media(prefers-color-scheme:dark) {
  :root[data-theme-mode="system"]:not([data-theme]) {
    color-scheme:dark;
    --paper:#171d19;
    --ink:#e5eae3;
    --muted:#a8b3a9;
    --line:#343f36;
    --wash:#253128;
    --input:#28332b;
    --surface:#202922;
    --soft-ink:#c0d0c3;
    --accent:var(--accent-dark);
    --notice:#24332b;
    --warning:#383223;
    --rule:#20352d;
    --button-ink:#17201a;
    --hover:#202a23;
  }
}

/* Small local symbols accompany labels; they never replace the label. */
.mn-icon { display:inline-block; width:16px; height:16px; flex:none; vertical-align:-3px; color:currentColor; pointer-events:none; }
.widget-title,.contact-title,.reading-time,.callout-title { display:flex; align-items:center; gap:8px; }
.section-label>.mn-icon { margin-right:8px; }
.widget-title>.mn-icon { opacity:.8; }
.nav-toggle,.theme-toggle,.copy-button,.search-form button { display:inline-flex; align-items:center; justify-content:center; gap:6px; }
.nav-toggle { display:none; }
.theme-toggle>.mn-icon { width:15px; height:15px; }
.callout-title>.mn-icon { color:var(--accent); }
.callout-warning .callout-title>.mn-icon { color:var(--ink); }
@media(min-width:1051px) { .nav-toggle { display:none!important; } }
@media(max-width:1050px) { .nav-enhanced .nav-toggle { display:inline-flex; } }
@media(max-width:700px) { .theme-toggle,.nav-toggle { gap:5px; } .theme-toggle { padding:9px 7px; } .theme-toggle>.mn-icon { width:14px; height:14px; } }

/* Article metadata and contact QR retain text and quiet spacing. */
.breadcrumb { flex-wrap:wrap; gap:12px 22px; }
.breadcrumb>a,.breadcrumb-category,.post-kicker time { display:inline-flex; align-items:center; gap:7px; }
.breadcrumb-category { flex-wrap:wrap; }
.tag-row { align-items:center; }
.tag-row>.mn-icon { color:var(--muted); }
.post-neighbor small { display:flex; align-items:center; gap:7px; }
.wechat-qr { margin:20px 0 0; text-align:center; }
.wechat-qr img { display:block; width:180px; height:auto; max-width:100%; margin:0 auto; padding:8px; background:#fff; border-radius:6px; }
.wechat-qr figcaption { margin-top:9px; font-size:12px; line-height:1.7; color:var(--muted); }

/* Compact breadcrumb; full current title remains in its accessible text. */
.breadcrumb { flex-wrap:nowrap; align-items:center; gap:10px; font-size:12px; }
.breadcrumb>a:first-child,.breadcrumb-separator { flex:none; }
.breadcrumb-separator { color:var(--muted); opacity:.7; }
.breadcrumb-category { min-width:0; max-width:36%; flex-wrap:nowrap; overflow:hidden; }
.breadcrumb-category a { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.breadcrumb>a.breadcrumb-current { display:block; flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.post-author { display:inline-flex; align-items:center; gap:7px; }
/* Long H1s stay on one line and scroll within the heading, not the page. */
.single-head h1 { font-size:28px; line-height:1.45; white-space:nowrap; text-wrap:nowrap; overflow-x:auto; overflow-y:hidden; max-width:100%; scrollbar-width:thin; overscroll-behavior-x:contain; padding-bottom:5px; }
.single-head h1:focus-visible { outline:2px solid var(--accent); outline-offset:5px; border-radius:3px; }
.entry-content :is(h2,h3,h4,h5,h6) { font-family:var(--font-sans); line-height:1.55; text-wrap:balance; overflow-wrap:anywhere; scroll-margin-top:calc(var(--header-height) + 24px); }
.entry-content h2 { font-size:25px; font-weight:650; color:var(--ink); background:var(--wash); padding:10px 16px; border-radius:5px; width:fit-content; max-width:100%; margin:48px 0 22px; letter-spacing:-.01em; }
.entry-content h3 { font-size:22px; font-weight:620; color:var(--accent); margin:34px 0 16px; }
.entry-content h4 { font-size:19px; font-weight:650; color:var(--ink); margin:28px 0 14px; }
.entry-content h5 { font-size:17px; font-weight:650; color:var(--ink); margin:24px 0 12px; }
.entry-content h6 { font-size:15.5px; font-weight:600; color:var(--muted); margin:22px 0 10px; }
.entry-content>:is(h2,h3,h4,h5,h6):first-child { margin-top:0; }
.toc-h5 { padding-left:36px; }
.toc-h6 { padding-left:48px; }
@media(max-width:700px) {
 .single-head h1 { font-size:24px; }
 .breadcrumb { gap:8px; font-size:11px; }
 .entry-content h2 { font-size:22px; padding:9px 12px; margin-top:38px; }
 .entry-content h3 { font-size:20px; }
 .entry-content h4 { font-size:18px; }
 .entry-content h5 { font-size:16px; }
 .entry-content h6 { font-size:15px; }
}

/* Recharge landing page: editable content, quiet surfaces, no decorative arrows. */
.recharge-page { padding:38px 0 72px; }
.recharge-breadcrumb { margin-bottom:42px; }
.recharge-hero { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(240px,1fr); gap:72px; align-items:center; padding-bottom:56px; }
.recharge-intro { min-width:0; }
.recharge-hero h1 { font-size:clamp(28px,3.4vw,44px); font-weight:650; line-height:1.4; letter-spacing:-.025em; white-space:nowrap; text-wrap:nowrap; overflow-x:auto; scrollbar-width:thin; margin:0 0 22px; padding-bottom:5px; }
.recharge-hero h1:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
.recharge-lead { max-width:55ch; color:var(--muted); font-size:16px; line-height:1.95; margin-bottom:24px; }
.recharge-actions { display:flex; gap:14px; align-items:center; flex-wrap:wrap; }
.recharge-button,.recharge-secondary { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:12px 20px; min-height:46px; border-radius:6px; font-size:14px; }
.recharge-button { background:var(--accent); color:var(--button-ink); }
.recharge-secondary { background:var(--wash); color:var(--accent); }
.recharge-contact-note { padding:30px; background:var(--wash); border-radius:8px; }
.recharge-section { padding:34px 0; scroll-margin-top:calc(var(--header-height) + 24px); }
.recharge-section-head { display:flex; align-items:end; justify-content:space-between; gap:36px; margin-bottom:28px; }
.recharge-section-head .section-label { margin-bottom:12px; }
.recharge-section h2 { font-size:28px; line-height:1.5; font-weight:650; margin:0; }
.recharge-section-note { max-width:42ch; font-size:13px; line-height:1.85; color:var(--muted); margin:0; }
.recharge-plan-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.recharge-plan-single { grid-template-columns:minmax(0,1fr) minmax(0,1.35fr); gap:60px; align-items:center; }
.recharge-plan { background:var(--wash); border-radius:9px; padding:32px; min-width:0; }
.recharge-plan-label { display:flex; align-items:center; gap:8px; color:var(--accent); font-size:12px; margin-bottom:18px; }
.recharge-plan h3 { font-size:27px; font-weight:650; margin-bottom:14px; }
.recharge-plan-description { color:var(--muted); font-size:14px; line-height:1.85; min-height:52px; }
.recharge-price { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px; color:var(--accent); margin:24px 0; }
.recharge-price strong { font-size:52px; font-weight:650; letter-spacing:-.03em; line-height:1.2; }
.recharge-price>span { font-size:14px; }
.recharge-plan>.recharge-button { width:100%; }
.recharge-rule-note { max-width:54ch; padding:24px 0; }
.recharge-rule-note>p:not(.section-label) { color:var(--muted); font-size:16px; line-height:2; }
.recharge-rule-note .section-label { margin-bottom:18px; }
.recharge-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; padding:0; margin:0; list-style:none; }
.recharge-steps li { display:flex; align-items:start; gap:16px; min-width:0; }
.recharge-step-number { color:var(--accent); background:var(--wash); width:36px; height:36px; display:flex; align-items:center; justify-content:center; border-radius:5px; flex:none; font-size:12px; font-variant-numeric:tabular-nums; }
.recharge-steps h3 { font-size:18px; line-height:1.5; margin:4px 0 12px; }
.recharge-steps p { color:var(--muted); font-size:14px; line-height:1.85; margin:0; }
.recharge-faq-list { display:grid; gap:12px; }
.recharge-faq-list details { background:var(--wash); border-radius:7px; padding:0 24px; }
.recharge-faq-list summary { display:flex; align-items:baseline; gap:16px; cursor:pointer; list-style:none; padding:20px 0; font-size:15px; font-weight:600; line-height:1.7; }
.recharge-faq-list summary::-webkit-details-marker { display:none; }
.recharge-faq-list summary::after { content:'+'; color:var(--muted); margin-left:auto; padding-left:12px; font-size:18px; font-weight:400; }
.recharge-faq-list details[open] summary::after { content:'−'; }
.recharge-faq-list summary:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.recharge-faq-number { color:var(--accent); font-size:12px; font-weight:400; flex:none; }
.recharge-faq-answer { padding:0 0 20px 32px; color:var(--muted); font-size:14px; line-height:1.9; }
.recharge-faq-answer p { margin-bottom:0; }
.recharge-details .entry-content { max-width:85ch; }
.recharge-details .entry-content h2 { font-size:23px; margin-bottom:18px; }
.recharge-consult { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(260px,1fr); align-items:center; gap:64px; background:var(--wash); border-radius:9px; padding:40px; margin-top:28px; }
.recharge-consult h2 { margin:16px 0 20px; font-size:30px; }
.recharge-contact-box { width:100%; max-width:350px; justify-self:end; }
.recharge-contact-box .wechat-qr { margin:0 0 24px; }
.recharge-contact-box .copy-button { background:var(--surface); }
.recharge-contact-box .contact-copy { justify-content:flex-start; flex-wrap:wrap; gap:10px; }
@media(hover:hover) { .recharge-button:hover { color:var(--button-ink); filter:brightness(.94); } .recharge-secondary:hover { background:var(--input); } }
@media(max-width:900px) { .recharge-hero { gap:32px; } .recharge-plan-single { gap:32px; } .recharge-steps { gap:20px; } .recharge-plan-grid:not(.recharge-plan-single) { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) {
 .recharge-page { padding:28px 0 48px; }
 .recharge-breadcrumb { margin-bottom:30px; }
 .recharge-hero { display:block; padding-bottom:20px; }
 .recharge-hero h1 { font-size:28px; }
 .recharge-lead { font-size:14px; }
 .recharge-contact-note { display:none; }
 .recharge-section { padding:28px 0; }
 .recharge-section-head { display:block; margin-bottom:22px; }
 .recharge-section h2 { font-size:24px; }
 .recharge-section-note { margin-top:16px; }
 .recharge-plan-grid,.recharge-plan-single,.recharge-plan-grid:not(.recharge-plan-single) { display:block; }
 .recharge-plan { padding:26px; margin-bottom:20px; }
 .recharge-rule-note { padding:8px 0 0; }
 .recharge-rule-note>p:not(.section-label) { font-size:14px; }
 .recharge-steps { display:block; }
 .recharge-steps li { margin-bottom:24px; }
 .recharge-faq-list details { padding:0 16px; }
 .recharge-faq-list summary { font-size:14px; gap:12px; }
 .recharge-faq-answer { padding-left:28px; }
 .recharge-consult { display:block; padding:26px; margin-top:20px; }
 .recharge-consult h2 { font-size:26px; }
 .recharge-contact-box { max-width:none; margin-top:28px; }
}

.recharge-original-price { color:var(--muted); font-size:13px; margin:-4px 0 14px; }
.recharge-original-price span { text-decoration:line-through; text-decoration-color:var(--muted); }
.recharge-contact-note .wechat-qr { margin:18px 0 0; }
.recharge-contact-note .wechat-qr img { width:156px; height:156px; }
.recharge-contact-box .wechat-qr { margin-bottom:12px; }

.recharge-contact-note .contact-copy,.recharge-contact-box .contact-copy { justify-content:center; flex-wrap:wrap; gap:10px; margin-top:16px; }
.recharge-contact-note .copy-button { background:var(--surface); }

.contact-card .contact-copy { justify-content:center; flex-wrap:wrap; gap:10px; margin-top:16px; }
.contact-card .service-summary { margin-top:20px; }

/* Comfortable comment spacing, including Typecho's native nested comments. */
.comments-area { margin-top:56px; scroll-margin-top:calc(var(--header-height) + 24px); }
.comments-area h2 { font-size:24px; margin:0 0 28px; line-height:1.5; }
.comments-area .respond { margin-top:36px; padding:30px; border-radius:9px; background:var(--wash); }
.comments-area #comment-form { display:grid; gap:24px; }
.comments-area .form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.comments-area .form-grid label:last-child { grid-column:1/-1; }
.comments-area label { display:flex; flex-direction:column; gap:10px; font-size:14px; line-height:1.6; }
.comments-area .respond input,.comments-area .respond textarea { width:100%; padding:14px 16px; border-color:var(--line); border-radius:6px; font:inherit; line-height:1.7; color:var(--ink); background:var(--surface); }
.comments-area .respond input { min-height:48px; }
.comments-area .respond textarea { min-height:190px; resize:vertical; }
.comments-area .logged-in { margin:0; line-height:1.8; font-size:14px; color:var(--muted); }
.comments-area .logged-in a { margin-left:8px; }
.comments-area .submit { justify-self:start; min-height:46px; padding:12px 24px; font-size:14px; }
.comments-area .comment-list { margin:0; }
.comments-area .comment-body { padding:26px; margin-bottom:24px; line-height:1.85; overflow-wrap:anywhere; }
.comments-area .comment-author { display:flex; align-items:center; gap:12px; margin-bottom:10px; font-size:15px; }
.comments-area .comment-author .avatar { width:40px; height:40px; border-radius:50%; flex:none; }
.comments-area .comment-meta { font-size:12px; color:var(--muted); margin-bottom:18px; }
.comments-area .comment-content p { margin:0 0 14px; }
.comments-area .comment-content p:last-child { margin-bottom:0; }
.comments-area .comment-reply { margin-top:18px; font-size:13px; }
.comments-area .comment-reply a,.comments-area .cancel-reply a { display:inline-block; padding:6px 0; }
.comments-area .comment-list .comment-list { padding-left:24px; margin-top:22px; }
.comments-area .comment-list .comment-list .comment-body { background:var(--surface); padding:22px; }
.comments-area .cancel-reply { font-size:13px; margin-bottom:16px; }
.comments-area .cancel-reply:empty { display:none; }
@media(max-width:700px) {
 .comments-area { margin-top:40px; }
 .comments-area .respond { padding:22px 18px; }
 .comments-area .form-grid { grid-template-columns:1fr; gap:18px; }
 .comments-area .comment-body { padding:20px 18px; }
 .comments-area .comment-list .comment-list { padding-left:12px; }
}
.comments-area #response { scroll-margin-top:calc(var(--header-height) + 24px); }
.comments-area textarea:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }

.site-nav { gap:6px; }
.site-nav>a { padding:9px 10px; border-radius:5px; transition:background-color .15s ease,color .15s ease; }
.site-nav>a.is-active { background:var(--wash); color:var(--accent); font-weight:650; }
@media(hover:hover) { .site-nav>a:hover { background:var(--wash); color:var(--accent); } }
@media(max-width:1050px) { .site-nav>a { padding:10px 12px; } }
