/* Reference-led editorial list: native CSS, restrained motion, dense horizontal cards. */
.night-index { color:#eee; padding:18px 0 30px; }
.night-star-toggle { display:none!important; }
.night-index__header { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; padding:0 0 20px; margin-bottom:20px; border-bottom:1px solid #282828; }
.night-index__eyebrow { font:700 12px/1.5 monospace; letter-spacing:.08em; color:#a7a7ad; }
.night-index h1 { font-size:clamp(34px,4vw,48px); line-height:1.15; margin:5px 0 0; font-weight:850; }
.night-index__count { flex:none; color:#999; font-size:13px; padding-bottom:3px; }
.night-index__count b { color:#eee; font-size:28px; margin-right:4px; }
.night-cards { display:grid; gap:20px; }
.night-pagination { display:flex; align-items:center; justify-content:center; gap:10px; margin-top:32px; }
.night-pagination :is(a,span) { display:inline-flex; justify-content:center; align-items:center; min-width:42px; min-height:42px; padding:8px 14px; border:1px solid #45464d; border-radius:8px; color:#dedee5; font:14px/1.4 system-ui,sans-serif; text-decoration:none; }
.night-pagination a:hover { border-color:#edc95d; }
.night-pagination [aria-current="page"] { color:#111; background:#edc95d; border-color:#edc95d; font-weight:700; }
.night-pagination [aria-disabled] { opacity:.4; }
.night-pagination a:focus-visible { outline:2px solid #edc95d; outline-offset:3px; }
.night-pagination__status { text-align:center; font:13px/1.5 system-ui,sans-serif; color:#aaaab2; margin:14px 0 0; }
html:not(.dark) .night-pagination :is(a,span) { color:#303642; border-color:#cdd2db; }
html:not(.dark) .night-pagination [aria-current="page"] { background:#303642; border-color:#303642; color:#fff; }
html:not(.dark) .night-pagination__status { color:#626875; }
.night-card { position:relative; isolation:isolate; overflow:hidden; min-height:230px; border:1px solid #2b2b30; border-radius:17px; background:#070809; cursor:pointer; transition:border-color .2s ease; }
.night-card:hover,.night-card:focus-within { border-color:#df6b6b; }
.night-card__art { position:absolute; z-index:-2; right:0; top:0; height:100%; width:59%; object-fit:cover; object-position:80% 40%; }
.night-card::before { content:''; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,#070809 36%,rgba(7,8,9,.96) 48%,rgba(7,8,9,.58) 64%,transparent 82%); }
.night-card__copy { width:68%; padding:25px 25px 22px; }
.night-card h2 { font-size:clamp(21px,2.25vw,28px); font-weight:800; line-height:1.28; margin:0 0 12px; color:#f2f2f3; }
.night-card h2 { text-wrap:balance; }
.night-card h2 a { color:inherit; text-decoration:none; }
.night-card h2 a::after { content:''; position:absolute; inset:0; }
.night-card__meta { display:flex; align-items:center; gap:12px; font-size:14px; color:#a2a2aa; margin-bottom:11px; }
.night-card__meta a { color:#edc95d; }
.night-card__copy p { font-family:system-ui,'Microsoft YaHei',sans-serif; font-size:15px; line-height:1.7; color:#aaaab2; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; margin:0 0 12px; pointer-events:none; }
.night-card__tags { display:flex; gap:7px; flex-wrap:wrap; font-size:11px; color:#b9b9c0; }
.night-card__tags a { border:1px solid #39393e; padding:2px 6px; border-radius:4px; line-height:1.4; }
.night-card__meta a,.night-card__tags a { position:relative; z-index:1; text-decoration:none; }
.night-card a:focus-visible,.night-adjacent a:focus-visible { outline:2px solid #edc95d; outline-offset:4px; }
body:has(.night-index) { background:#060708!important; --page-bg:#060708; --deep-text:#eee; --content-meta:#a5a5ae; --primary:#edc95d; --line-divider:#303036; color:#eee; }
body:has(.night-index) #main-grid { background:#060708; }
body:has(.night-index) .navbar-pill { background:#111215!important; border:1px solid #303138; box-shadow:none!important; }
body:has(.night-index) #navbar .navbar-pill .navbar-inner :is(a,button,span,svg,iconify-icon) { color:#e5e5e9!important; }
body:has(.night-index) #navbar .dropdown-menu { background:#15161a!important; border-color:#34343b!important; }
body:has(.night-index) .cb,body:has(.night-index) .footer { color:#aaa; }
body:has(.night-index) .cb__link,body:has(.night-index) .cb__current { color:#ddd; }
body:has(.night-index) .footer { border-color:#28282e; }
.night-article-cover { width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; border-radius:14px; margin:12px 0 32px; }
body:has(#post-container) .markdown-content { font-family:system-ui,'Microsoft YaHei',sans-serif; font-size:17px; line-height:1.95; }
body:has(#post-container) .markdown-content h2 { font-size:25px; line-height:1.5; margin-top:2.4em; margin-bottom:1em; scroll-margin-top:100px; }
body:has(#post-container) .markdown-content p { margin-block:1em; }
body:has(#post-container) .markdown-content blockquote { font-size:15px; }
.night-article-audio { --audio-accent:var(--primary,#edc95d); position:relative; overflow:hidden; display:grid; grid-template-columns:52px minmax(0,1fr); align-items:center; gap:16px; margin:8px 0 32px; padding:18px 20px; border:1px solid color-mix(in oklab,var(--line-divider,#555) 72%,transparent); border-radius:18px; background:color-mix(in oklab,var(--license-block-bg,#111) 88%,transparent); box-shadow:0 14px 42px #00000024,inset 0 1px 0 rgba(255,255,255,.055); }
.night-article-audio::before { content:''; position:absolute; inset:0 0 auto; height:1px; background:linear-gradient(90deg,transparent,var(--audio-accent),transparent); opacity:.55; }
.night-article-audio__button { width:52px; height:52px; border:1px solid color-mix(in oklab,var(--audio-accent) 48%,transparent); border-radius:50%; display:grid; place-items:center; color:#181818; background:var(--audio-accent); cursor:pointer; font:800 17px/1 system-ui,sans-serif; box-shadow:0 10px 24px color-mix(in oklab,var(--audio-accent) 24%,transparent); transition:transform .18s ease,filter .18s ease,box-shadow .18s ease; }
.night-article-audio__button:hover { transform:translateY(-1px); filter:brightness(1.04); box-shadow:0 14px 28px color-mix(in oklab,var(--audio-accent) 28%,transparent); }
.night-article-audio__button:active { transform:scale(.96); }
.night-article-audio__button:focus-visible,.night-article-audio__range:focus-visible { outline:2px solid var(--audio-accent); outline-offset:4px; }
.night-article-audio__pause { display:none; }
.night-article-audio.is-playing .night-article-audio__play { display:none; }
.night-article-audio.is-playing .night-article-audio__pause { display:inline; }
.night-article-audio__main { min-width:0; display:grid; gap:8px; }
.night-article-audio__head { display:grid; grid-template-columns:max-content minmax(0,1fr) max-content; gap:10px; align-items:baseline; min-width:0; }
.night-article-audio__kicker { color:var(--audio-accent); font:700 12px/1.4 system-ui,'Microsoft YaHei',sans-serif; white-space:nowrap; }
.night-article-audio__title { margin:0; color:var(--deep-text,#eee); font:800 clamp(17px,1.8vw,20px)/1.32 system-ui,'Microsoft YaHei',sans-serif; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.night-article-audio__duration,.night-article-audio__time { color:var(--content-meta,#aaa); font:12px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace; white-space:nowrap; }
.night-article-audio__summary { margin:0!important; color:var(--content-meta,#aaa); font:14px/1.55 system-ui,'Microsoft YaHei',sans-serif; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.night-article-audio__timeline { display:grid; grid-template-columns:max-content minmax(0,1fr) max-content; align-items:center; gap:10px; min-width:0; }
.night-article-audio__range { width:100%; height:4px; margin:0; border-radius:999px; appearance:none; -webkit-appearance:none; cursor:pointer; background:linear-gradient(90deg,var(--audio-accent) var(--audio-progress,0%),rgba(255,255,255,.16) 0); }
.night-article-audio__range::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:12px; height:12px; border-radius:50%; border:2px solid #15161a; background:var(--audio-accent); box-shadow:0 0 0 4px color-mix(in oklab,var(--audio-accent) 18%,transparent); }
.night-article-audio__range::-moz-range-thumb { width:12px; height:12px; border:2px solid #15161a; border-radius:50%; background:var(--audio-accent); box-shadow:0 0 0 4px color-mix(in oklab,var(--audio-accent) 18%,transparent); }
.night-article-audio:not(.is-enhanced) { grid-template-columns:minmax(0,1fr); }
.night-article-audio:not(.is-enhanced) .night-article-audio__button,.night-article-audio:not(.is-enhanced) .night-article-audio__timeline,.night-article-audio.is-enhanced audio { display:none; }
.night-article-audio audio { display:block; width:100%; grid-column:1 / -1; }
.night-adjacent { display:flex; gap:24px; justify-content:space-between; padding:25px 0; border-top:1px solid var(--line-divider,#555); }
.night-adjacent a { flex:1; font-size:14px; line-height:1.7; }
body:has(#post-container) .article-toc-container { border:1px solid #7775!important; border-radius:14px; padding:18px 12px; }
body:has(#post-container) #article-toc-content { overflow:visible; }
body:has(#post-container) .toc-badge,body:has(#post-container) .toc-badge-index { display:none!important; }
body:has(#post-container) .toc-label { min-width:0; white-space:nowrap!important; line-height:1.45; overflow:visible!important; text-overflow:clip; font-size:13px; letter-spacing:-.02em; }
body:has(#post-container) .toc-item { min-height:34px; white-space:nowrap!important; overflow:visible; text-overflow:clip; }
.night-mobile-toc { display:none; border:1px solid #8885; border-radius:12px; padding:14px 18px; margin:16px 0; }
.night-mobile-toc summary { cursor:pointer; font-weight:700; }
.night-mobile-toc nav { display:grid; gap:14px; padding-top:18px; font:14px/1.7 system-ui,sans-serif; }
@media(max-width:1280px) { .night-mobile-toc { display:block; } }
@media(min-width:1281px) {
 body:has(#post-container) #swup-container { position:relative; }
 body:has(#post-container) #content-wrapper { margin-right:382px; }
 body:has(#post-container) #article-toc-wrapper { display:block!important; left:auto!important; right:0; width:360px; max-width:360px; }
 body:has(#post-container) .article-toc-container { overflow:visible!important; }
}
@media(max-width:767px) {
 .night-index { padding-top:12px; }
 .night-index__header { gap:12px; }
 .night-card { min-height:246px; }
 .night-card__art { width:100%; opacity:.7; object-position:82% 40%; }
 .night-card::before { background:linear-gradient(90deg,#070809 0%,rgba(7,8,9,.9) 43%,rgba(7,8,9,.35) 100%); }
 .night-card__copy { width:100%; padding:22px 19px; }
 .night-card h2 { max-width:91%; font-size:22px; }
 .night-card__copy p { max-width:88%; color:#b8b8c0; }
 .night-card__meta { font-size:12px; }
 .night-article-cover { height:auto; }
 .night-article-audio { grid-template-columns:46px minmax(0,1fr); gap:12px; padding:14px; border-radius:16px; }
 .night-article-audio__button { width:46px; height:46px; }
 .night-article-audio__head { grid-template-columns:minmax(0,1fr) max-content; gap:8px; }
 .night-article-audio__kicker { display:none; }
 .night-article-audio__title { font-size:16px; }
 .night-article-audio__summary { font-size:13px; }
 .night-article-audio__timeline { gap:8px; }
 body:has(#post-container) .markdown-content { font-size:16px; }
 .night-adjacent { flex-direction:column; }
}
@media(prefers-reduced-motion:reduce) { .night-card,.night-article-audio__button { transition:none; } }

/* Follow the site's existing theme toggle and saved preference. */
html:not(.dark) body:has(.night-index) { background:#f7f8fa!important; --page-bg:#f7f8fa; --deep-text:#20232b; --content-meta:#626875; --primary:#966515; --line-divider:#dcdfe5; color:#20232b; }
html:not(.dark) body:has(.night-index) #main-grid { background:#f7f8fa; }
html:not(.dark) body:has(.night-index) .navbar-pill { background:#fff!important; border-color:#e0e3e8; }
html:not(.dark) body:has(.night-index) #navbar .navbar-pill .navbar-inner :is(a,button,span,svg,iconify-icon) { color:#303642!important; }
html:not(.dark) body:has(.night-index) #navbar .dropdown-menu { background:#fff!important; border-color:#dcdfe5!important; }
html:not(.dark) body:has(.night-index) :is(.cb,.footer) { color:#626875; }
html:not(.dark) body:has(.night-index) :is(.cb__link,.cb__current) { color:#303642; }
html:not(.dark) body:has(.night-index) .footer { border-color:#dcdfe5; }
html:not(.dark) .night-index { color:#20232b; }
html:not(.dark) .night-index__header { border-color:#dcdfe5; }
html:not(.dark) :is(.night-index__eyebrow,.night-index__count,.night-card__meta) { color:#626875; }
html:not(.dark) :is(.night-index__count b,.night-card h2) { color:#20232b; }

html:not(.dark) .night-card { background:#fff; border-color:#dcdfe5; }
html:not(.dark) .night-card:hover,html:not(.dark) .night-card:focus-within { border-color:#b75e58; }
html:not(.dark) .night-card::before { background:linear-gradient(90deg,#fff 36%,rgba(255,255,255,.98) 48%,rgba(255,255,255,.88) 64%,transparent 85%); }
html:not(.dark) .night-card__copy p { color:#545b68; }
html:not(.dark) .night-card__meta a { color:#855a13; }
html:not(.dark) .night-card__tags { color:#59616e; }
html:not(.dark) .night-card__tags a { border-color:#cdd2db; background:#ffffffb8; }
html:not(.dark) .night-card a:focus-visible { outline-color:#855a13; }
html:not(.dark) .night-article-audio { background:#fff; box-shadow:0 14px 38px #25304a12,inset 0 1px 0 rgba(255,255,255,.9); }
html:not(.dark) .night-article-audio__range { background:linear-gradient(90deg,var(--audio-accent) var(--audio-progress,0%),#d8dde6 0); }
html:not(.dark) .night-article-audio__range::-webkit-slider-thumb { border-color:#fff; }
html:not(.dark) .night-article-audio__range::-moz-range-thumb { border-color:#fff; }
@media(max-width:767px) {
 html:not(.dark) .night-card::before { background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.97) 43%,rgba(255,255,255,.85) 72%,rgba(255,255,255,.5) 100%); }
}

.night-card { transform-style:preserve-3d; will-change:transform; transition:border-color .25s ease,box-shadow .35s ease; }
.night-card::after { content:''; pointer-events:none; position:absolute; z-index:4; inset:0; border-radius:inherit; opacity:0; background:radial-gradient(440px circle at var(--shine-x,50%) var(--shine-y,50%),rgba(255,226,164,.2),rgba(255,218,147,.06) 38%,transparent 68%); transition:opacity .3s ease; }
.night-card__art { will-change:transform; transform-origin:100% 50%; transition:filter .4s ease; }
@media(min-width:768px) { .night-card__art { right:-16px; top:-14px; height:calc(100% + 28px); width:calc(59% + 32px); } }
.night-card__copy { position:static; z-index:auto; }
.night-card__particle-field { position:absolute; z-index:-1; inset:0; overflow:hidden; pointer-events:none; border-radius:inherit; opacity:0; transition:opacity .3s ease; -webkit-mask-image:linear-gradient(90deg,transparent 24%,#000 40%,#000 100%); mask-image:linear-gradient(90deg,transparent 24%,#000 40%,#000 100%); }
.night-card__particle-canvas { position:absolute; z-index:1; inset:0; display:block; width:100%; height:100%; opacity:1; filter:saturate(1.12) contrast(1.05); }
.night-card__light-beam { position:absolute; z-index:2; inset:-45% auto -45% 38%; width:16%; opacity:0; transform:skewX(-15deg); background:linear-gradient(90deg,transparent,rgba(255,248,218,.56),rgba(239,191,92,.2),transparent); filter:blur(7px); }
.night-card.is-hovered { border-color:#c59856; box-shadow:0 22px 54px rgba(29,20,12,.3); }
.night-card.is-hovered::after { opacity:1; }
.night-card.is-hovered .night-card__art { filter:saturate(1.08) contrast(1.03); }
.night-card.is-hovered .night-card__particle-field { opacity:1; }
html:not(.dark) .night-card.is-hovered { border-color:#b68a4b; box-shadow:0 22px 48px rgba(62,47,29,.18); }
html:not(.dark) .night-card::after { background:radial-gradient(420px circle at var(--shine-x,50%) var(--shine-y,50%),rgba(217,170,88,.2),rgba(225,181,105,.05) 42%,transparent 68%); }
@media(prefers-reduced-motion:reduce) { .night-card,.night-card::after,.night-card__art,.night-card__particle-field { transition:none; } .night-card__particle-field { display:none; } }

/* Article reading layout refresh */
body:has(#post-container) #post-container {
  padding-top: 1.75rem !important;
  padding-bottom: 2rem !important;
}
body:has(#post-container) #post-container > div:first-of-type {
  margin-bottom: 1.15rem !important;
  gap: 1rem !important;
}
body:has(#post-container) #post-container > .relative.onload-animation {
  margin: .15rem 0 1.25rem;
}
body:has(#post-container) #post-container > .relative.onload-animation > .flex > .font-bold {
  max-width: none;
  margin-bottom: 0 !important;
  font-size: clamp(1.85rem, 2.2vw, 2.05rem) !important;
  line-height: 1.24 !important;
  letter-spacing: -.025em;
  text-wrap: balance;
}
body:has(#post-container) .post-meta-root {
  column-gap: 1.25rem !important;
  row-gap: .7rem !important;
  margin-bottom: 1.15rem !important;
  line-height: 1.55;
}
body:has(#post-container) .night-article-cover {
  margin: 1.35rem 0 2.75rem;
}
body:has(#post-container) .markdown-content {
  font-size: 18px;
  line-height: 1.9;
  letter-spacing: .008em;
}
body:has(#post-container) .markdown-content > section {
  margin-bottom: 3.5rem;
}
body:has(#post-container) .markdown-content p {
  margin-block: .72em;
}
body:has(#post-container) .markdown-content :is(h2, h3) {
  text-wrap: balance;
}
body:has(#post-container) .markdown-content h2 {
  margin-top: 2.75em;
  margin-bottom: 1.15em;
  font-size: clamp(1.45rem, 2.15vw, 1.75rem);
  line-height: 1.45;
}
body:has(#post-container) .markdown-content :is(ul, ol) {
  margin-block: 1.25em;
}
body:has(#post-container) .markdown-content li + li {
  margin-top: .55em;
}
body:has(#post-container) .markdown-content blockquote {
  margin-block: 1.6em;
  padding: .85rem 1.15rem;
  font-size: 1rem;
  line-height: 1.9;
}
body:has(#post-container) .article-toc-container {
  overflow: hidden !important;
  padding: 0 !important;
  border: 1px solid color-mix(in oklab, var(--line-divider) 72%, transparent) !important;
  background: color-mix(in oklab, var(--card-bg, var(--page-bg)) 94%, transparent);
  box-shadow: 0 14px 36px rgb(0 0 0 / .07);
}
body:has(#post-container) .article-toc-header {
  padding: 1.1rem 1.2rem .9rem;
}
body:has(#post-container) .article-toc-title {
  font-size: .9rem;
  letter-spacing: .04em;
}
body:has(#post-container) .article-toc-body {
  overflow-y: auto !important;
  max-height: calc(100vh - 10.5rem);
  padding: .65rem .7rem .85rem;
}
body:has(#post-container) #article-toc-content {
  display: grid;
  gap: .18rem;
  overflow: hidden !important;
}
body:has(#post-container) #article-toc-content .toc-item {
  display: block !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: .65rem .75rem !important;
  border: 1px solid transparent !important;
  border-radius: .65rem;
  white-space: normal !important;
  overflow: visible !important;
  overflow-wrap: anywhere;
  text-overflow: clip !important;
  font-size: .82rem;
  line-height: 1.55;
  transition: color .18s ease, background-color .18s ease, border-color .18s ease;
}
body:has(#post-container) #article-toc-content .toc-item:is(:hover, :focus-visible) {
  color: var(--primary);
  background: color-mix(in oklab, var(--primary) 7%, transparent);
}
body:has(#post-container) #article-toc-content .toc-item.visible {
  color: var(--primary);
  border-color: color-mix(in oklab, var(--primary) 24%, transparent) !important;
  background: color-mix(in oklab, var(--primary) 9%, transparent);
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--primary) 72%, transparent);
}
body:has(#post-container) #article-toc-content :is(.toc-label, .toc-label-primary) {
  display: block !important;
  min-width: 0 !important;
  white-space: normal !important;
  overflow: visible !important;
  overflow-wrap: anywhere;
  text-overflow: clip !important;
  font-size: inherit !important;
  line-height: inherit !important;
  letter-spacing: normal !important;
}
.night-mobile-toc {
  overflow: hidden;
  margin: 1.6rem 0 2rem;
  padding: 0;
  background: color-mix(in oklab, var(--card-bg, var(--page-bg)) 94%, transparent);
}
.night-mobile-toc summary {
  padding: 1rem 1.1rem;
  line-height: 1.5;
}
.night-mobile-toc[open] summary {
  border-bottom: 1px solid color-mix(in oklab, var(--line-divider) 58%, transparent);
}
.night-mobile-toc nav {
  gap: .05rem;
  padding: .55rem;
  font-size: .9rem;
  line-height: 1.65;
}
.night-mobile-toc nav a {
  display: block;
  padding: .58rem .75rem;
  border-radius: .6rem;
  white-space: normal !important;
  overflow-wrap: anywhere;
}
.night-mobile-toc nav a:is(:hover, :focus-visible) {
  color: var(--primary);
  background: color-mix(in oklab, var(--primary) 8%, transparent);
}
@media (min-width: 1281px) {
  body:has(#post-container) #main-grid {
    max-width: 86rem !important;
  }
  body:has(#post-container) #content-wrapper {
    margin-right: 20rem;
  }
  body:has(#post-container) #article-toc-wrapper {
    right: 0;
    width: 18rem;
    max-width: 18rem;
  }
  body:has(#post-container) #post-container > .relative.onload-animation > .flex > .font-bold {
    white-space: nowrap !important;
  }
  body:has(#post-container) .article-toc-container {
    top: 6.25rem;
    max-height: calc(100vh - 7.5rem);
  }
}
@media (max-width: 767px) {
  body:has(#post-container) #post-container {
    padding: 1.25rem 1rem 1.75rem !important;
  }
  body:has(#post-container) #post-container > .relative.onload-animation {
    margin-bottom: 1rem;
  }
  body:has(#post-container) #post-container > .relative.onload-animation > .flex > .font-bold {
    font-size: clamp(1.75rem, 8vw, 2.15rem) !important;
    line-height: 1.28 !important;
  }
  body:has(#post-container) .post-meta-root {
    column-gap: 1rem !important;
    margin-bottom: 1rem !important;
  }
  body:has(#post-container) .night-article-cover {
    margin: 1rem 0 1.9rem;
    border-radius: 12px;
  }
  body:has(#post-container) .markdown-content {
    font-size: 16.5px;
    line-height: 1.9;
    letter-spacing: 0;
  }
  body:has(#post-container) .markdown-content > section {
    margin-bottom: 2.75rem;
  }
  body:has(#post-container) .markdown-content p {
    margin-block: .72em;
  }
  body:has(#post-container) .markdown-content h2 {
    margin-top: 2.25em;
    margin-bottom: 1em;
    font-size: 1.4rem;
    line-height: 1.5;
  }
  .night-mobile-toc {
    margin: 1.25rem 0 1.6rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  body:has(#post-container) #article-toc-content .toc-item {
    transition: none;
  }
}
