/* JKL v11 — 产品中心 × 社群档案 */
:root {
  --ease-out: cubic-bezier(.23, 1, .32, 1);
  --ease-in-out: cubic-bezier(.77, 0, .175, 1);
  --line: rgba(30, 42, 74, .13);
  --surface: rgba(255, 253, 246, .88);
  --shadow-sm: 0 8px 24px rgba(30, 42, 74, .07);
  --shadow-md: 0 18px 54px rgba(30, 42, 74, .12);
}

/* Emil design engineering：明确属性、短反馈、可中断 */
.btn {
  transition: transform 160ms var(--ease-out), box-shadow 220ms ease, border-color 180ms ease, background-color 180ms ease, color 180ms ease;
}
.btn:active,
.nav-toggle:active,
.copy-btn:active,
.text-link:active,
.issue-preview:active,
.product-card:active { transform: scale(.97); }
.copy-btn { transition: transform 140ms var(--ease-out), border-color 180ms ease, color 180ms ease; }
.hero-inner > * { animation-duration: 560ms; animation-timing-function: var(--ease-out); }
.hero-inner > *:nth-child(1) { animation-delay: 20ms; }
.hero-inner > *:nth-child(2) { animation-delay: 80ms; }
.hero-inner > *:nth-child(3) { animation-delay: 140ms; }
.hero-inner > *:nth-child(4) { animation-delay: 200ms; }
.hero-inner > *:nth-child(5) { animation-delay: 260ms; }
.reveal {
  transform: translateY(14px);
  transition: opacity 420ms var(--ease-out), transform 420ms var(--ease-out);
}

.gateway-grid { display: grid; gap: 1.35rem; }
.gateway-card {
  min-height: 32rem;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background: var(--surface);
  position: relative;
  overflow: hidden;
}
.community-mini { min-height: 23rem; }
.gateway-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: var(--grad-brand);
}
.gateway-product { background: linear-gradient(145deg, rgba(195,148,53,.08), transparent 55%), var(--surface); }
.gateway-community { background: linear-gradient(145deg, rgba(30,95,214,.07), transparent 55%), var(--surface); }
.gateway-index {
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .24em;
  color: var(--gold-ink);
  margin-bottom: 1.25rem;
}
.gateway-card h3 { font-size: clamp(1.45rem, 3vw, 2rem); margin: 1.15rem 0 .8rem; max-width: 18em; }
.gateway-card > p { color: var(--text-dim); max-width: 37em; }
.status-pill {
  display: inline-flex;
  align-items: center;
  min-height: 1.75rem;
  padding: .2rem .65rem;
  margin: 0 .35rem .3rem 0;
  border-radius: 999px;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .04em;
  border: 1px solid transparent;
}
.status-ready { color: #245b3a; background: #edf7f0; border-color: #b9ddc5; }
.status-pilot { color: #7a5819; background: #fff7df; border-color: #ead399; }
.status-community { color: #174f9d; background: #edf4ff; border-color: #bed2f2; }
.gateway-list { width: 100%; list-style: none; margin: 1.4rem 0 1.7rem; }
.gateway-list li {
  display: grid;
  grid-template-columns: 5.5rem 1fr;
  gap: .7rem;
  padding: .8rem 0;
  border-bottom: 1px solid var(--line);
}
.gateway-list strong { color: var(--ink); }
.gateway-list span { color: var(--text-dim); font-size: .92rem; }
.text-link,
.card-action {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: var(--ink);
  font-weight: 600;
  margin-top: auto;
  transition: transform 180ms var(--ease-out), color 180ms ease;
}
.text-link span { color: var(--gold-ink); }

.issue-preview-grid { display: grid; gap: 1rem; }
.issue-preview {
  display: block;
  min-height: 17rem;
  padding: 1.45rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
  transition: transform 200ms var(--ease-out), box-shadow 220ms ease, border-color 180ms ease;
}
.issue-preview h3 { font-size: 1.18rem; margin: 1.25rem 0 .65rem; }
.issue-preview p { color: var(--text-dim); font-size: .92rem; }
.issue-no { font-family: var(--font-mono); color: var(--blue); font-weight: 700; }
.issue-kind { float: right; font-size: .73rem; color: var(--gold-ink); border: 1px solid var(--gold-soft); border-radius: 999px; padding: .1rem .55rem; }
.issue-preview .card-action { margin-top: 1.4rem; font-size: .86rem; color: var(--gold-ink); }
.section-actions { margin-top: 1.6rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.3rem; }
.section-actions > span { max-width: 36rem; color: var(--text-dim); font-size: .85rem; }

/* 独立页面骨架 */
.subpage .site-nav { position: fixed; }
.subpage main { padding-top: var(--nav-h); }
.subpage-nav .nav-links a[aria-current="page"] { color: var(--gold-ink); }
.page-hero {
  padding: clamp(4rem, 9vw, 7rem) 0 clamp(3rem, 7vw, 5.5rem);
  background:
    radial-gradient(44rem 24rem at 100% 0, rgba(30,95,214,.08), transparent 66%),
    radial-gradient(38rem 22rem at 0 100%, rgba(195,148,53,.09), transparent 68%);
  border-bottom: 1px solid var(--gold-soft);
}
.breadcrumbs { display: flex; flex-wrap: wrap; gap: .4rem; color: var(--text-dim); font-size: .82rem; margin-bottom: 1.3rem; }
.breadcrumbs a { color: var(--text-dim); }
.page-hero h1 { font-size: clamp(2.15rem, 7vw, 4.6rem); max-width: 15em; letter-spacing: -.02em; }
.page-hero .lead { margin-top: 1rem; max-width: 43rem; font-size: clamp(1rem, 2.3vw, 1.2rem); color: var(--text-dim); }
.hero-meta { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.8rem; }
.hero-meta span { padding: .35rem .7rem; border-left: 2px solid var(--gold); color: var(--ink); font-size: .86rem; background: rgba(255,253,246,.68); }
.page-section { padding: clamp(3.5rem, 8vw, 6rem) 0; }
.page-section + .page-section { border-top: 1px solid var(--line); }
.section-heading-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 1rem; margin-bottom: 2rem; }
.section-heading-row p { max-width: 34rem; color: var(--text-dim); }

.product-grid { display: grid; gap: 1.25rem; }
.product-card {
  display: flex;
  flex-direction: column;
  min-height: 29rem;
  padding: 1.6rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface);
  color: var(--text);
  box-shadow: var(--shadow-sm);
  transition: transform 200ms var(--ease-out), box-shadow 220ms ease, border-color 180ms ease;
}
.product-card .product-code { font-family: var(--font-mono); color: var(--gold-ink); font-size: .75rem; letter-spacing: .16em; }
.product-card h2 { font-size: 1.65rem; margin: 1.15rem 0 .5rem; }
.product-card .product-promise { color: var(--text-dim); min-height: 5.2rem; }
.product-facts { list-style: none; margin: 1.2rem 0 1.7rem; }
.product-facts li { padding: .5rem 0; border-bottom: 1px solid var(--line); font-size: .9rem; }
.product-facts strong { color: var(--ink); }
.product-card .card-action { margin-top: auto; }
.readiness-note { margin-top: 1.5rem; padding: 1.1rem 1.2rem; border-left: 3px solid var(--gold); background: var(--paper-warm); color: var(--text-dim); font-size: .9rem; }

.detail-hero { padding-bottom: 3.6rem; }
.detail-hero .status-pill { margin-top: 1.2rem; }
.detail-layout { display: grid; gap: 2rem; }
.detail-main > section + section { margin-top: 3.5rem; }
.detail-main h2 { font-size: clamp(1.5rem, 4vw, 2rem); margin-bottom: 1rem; }
.detail-main h3 { font-size: 1.08rem; margin-bottom: .35rem; }
.detail-main p + p { margin-top: .8rem; }
.detail-side { align-self: start; }
.side-card { padding: 1.35rem; border: 1px solid var(--gold-soft); border-radius: 8px; background: var(--paper-warm); }
.side-card + .side-card { margin-top: 1rem; }
.side-card h2, .side-card h3 { font-size: 1.08rem; margin-bottom: .7rem; }
.side-card p, .side-card li { font-size: .87rem; color: var(--text-dim); }
.side-card ul { list-style: none; }
.side-card li { padding: .38rem 0; border-bottom: 1px solid rgba(129,96,32,.15); }
.side-card .btn { width: 100%; margin-top: 1rem; }
.feature-grid { display: grid; gap: .9rem; }
.feature-item { padding: 1.15rem; border: 1px solid var(--line); border-radius: 7px; background: rgba(255,255,255,.52); }
.feature-item .feature-no { font-family: var(--font-mono); color: var(--blue); font-size: .75rem; }
.feature-item p { color: var(--text-dim); font-size: .9rem; }
.process-list { counter-reset: steps; list-style: none; }
.process-list li { counter-increment: steps; display: grid; grid-template-columns: 2.6rem 1fr; gap: 1rem; padding: 1.15rem 0; border-bottom: 1px solid var(--line); }
.process-list li::before { content: counter(steps, decimal-leading-zero); font-family: var(--font-mono); color: var(--gold-ink); font-weight: 700; }
.process-list p { color: var(--text-dim); font-size: .9rem; }
.media-frame { margin-top: 1.2rem; padding: .45rem; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: var(--shadow-md); }
.media-frame img { width: 100%; height: auto; border-radius: 6px; }
.media-frame-console { padding: 0; overflow: hidden; background: #faf8f1; }
.media-frame-console iframe {
  display: block;
  width: 100%;
  height: min(1080px, 86vh);
  min-height: 640px;
  border: 0;
  border-radius: 10px;
  background: #faf8f1;
}
.media-caption { margin-top: .7rem; color: var(--text-dim); font-size: .8rem; }
.media-caption a { margin-left: .35em; }
.media-grid { display: grid; gap: 1rem; }
.principle-box { padding: 1.3rem; border-left: 3px solid var(--blue); background: rgba(30,95,214,.055); }
.principle-box strong { color: var(--ink); }

.issue-grid { display: grid; gap: 1.15rem; }
.issue-card {
  display: flex;
  flex-direction: column;
  min-height: 21rem;
  padding: 1.5rem;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--surface);
  color: var(--text);
  box-shadow: var(--shadow-sm);
  transition: transform 200ms var(--ease-out), box-shadow 220ms ease, border-color 180ms ease;
}
.issue-card h2 { margin: 1.1rem 0 .7rem; font-size: 1.35rem; }
.issue-card p { color: var(--text-dim); font-size: .92rem; }
.issue-card .card-action { margin-top: auto; padding-top: 1.3rem; }
.archive-list { list-style: none; border-top: 1px solid var(--line); }
.archive-list li { display: grid; grid-template-columns: 4.5rem 1fr; gap: 1rem; padding: .85rem 0; border-bottom: 1px solid var(--line); }
.archive-list .topic-num { font-weight: 700; }
.archive-list span:last-child { color: var(--text-dim); }

.photo-wall { display: grid; gap: .9rem; }
.photo-slot {
  min-height: 13rem;
  border: 1px dashed rgba(30,95,214,.3);
  border-radius: 9px;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 1.3rem;
  color: var(--text-dim);
  background:
    linear-gradient(135deg, rgba(30,95,214,.035) 25%, transparent 25%) 0 0 / 18px 18px,
    linear-gradient(315deg, rgba(195,148,53,.05) 25%, transparent 25%) 0 0 / 18px 18px,
    #fffdf8;
}
.photo-slot strong { display: block; color: var(--ink); margin-bottom: .35rem; }
.consent-banner { margin-top: 1.2rem; display: grid; gap: .6rem; padding: 1.2rem; border: 1px solid var(--gold-soft); background: var(--paper-warm); }
.consent-banner strong { color: var(--ink); }
.consent-banner p { color: var(--text-dim); font-size: .88rem; }
.issue-article { max-width: 48rem; }
.issue-article .summary { font-family: var(--font-serif); font-size: 1.15rem; color: var(--ink); border-left: 2px solid var(--gold); padding-left: 1rem; }
.takeaway-list { list-style: none; margin-top: 1rem; }
.takeaway-list li { padding: 1rem 0; border-bottom: 1px solid var(--line); }
.takeaway-list strong { display: block; color: var(--ink); margin-bottom: .2rem; }
.takeaway-list span { color: var(--text-dim); }
.next-prev { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }

.compact-footer { margin-top: 0; }

/* 两个社群：个人发起与联合共创 */
#ai-shensihui,
#atomcollide { scroll-margin-top: var(--nav-h); }
.community-brand {
  display: grid;
  gap: 1.5rem;
  padding: clamp(1.6rem, 4vw, 2.6rem);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  position: relative;
}
.community-brand::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: var(--grad-brand);
}
.community-brand-personal {
  background: radial-gradient(34rem 18rem at 100% 0, rgba(195,148,53,.16), transparent 70%), var(--surface);
}
.community-brand-collab {
  background: radial-gradient(34rem 18rem at 100% 0, rgba(30,95,214,.12), transparent 70%), var(--surface);
}
.community-type {
  display: block;
  margin-bottom: .8rem;
  color: var(--gold-ink);
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .14em;
}
.community-brand h2 { font-size: clamp(2rem, 5vw, 3.6rem); }
.community-brand p { max-width: 47rem; margin-top: .7rem; color: var(--text-dim); }
.community-principles {
  display: flex;
  flex-wrap: wrap;
  align-content: end;
  gap: .55rem;
  list-style: none;
}
.community-principles li {
  padding: .38rem .72rem;
  border: 1px solid var(--gold-soft);
  border-radius: 999px;
  background: rgba(255,253,246,.72);
  color: var(--ink);
  font-size: .8rem;
}
.community-section-heading { margin-top: clamp(2.6rem, 6vw, 4.5rem); }
.event-record {
  display: grid;
  gap: 1rem;
  padding: .8rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface);
  box-shadow: var(--shadow-md);
}
.event-record + .event-record { margin-top: 1.25rem; }
.event-topic { padding: clamp(1.2rem, 4vw, 2rem); }
.event-label {
  display: block;
  color: var(--blue);
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .12em;
}
.event-topic h3 { margin-top: 1.2rem; font-size: clamp(1.55rem, 4vw, 2.25rem); }
.event-pending { margin-top: .35rem; color: var(--gold-ink); font-family: var(--font-serif); font-size: 1.1rem; }
.event-fields { margin-top: 1.5rem; }
.event-fields div {
  display: grid;
  grid-template-columns: 6rem 1fr;
  gap: .8rem;
  padding: .7rem 0;
  border-bottom: 1px solid var(--line);
}
.event-fields dt { color: var(--ink); font-weight: 600; }
.event-fields dd { margin: 0; color: var(--text-dim); }
.event-photo { min-height: 19rem; }
.online-heading {
  margin-top: clamp(3.5rem, 8vw, 6rem);
  padding-top: clamp(2.5rem, 6vw, 4rem);
  border-top: 1px solid var(--line);
}
.online-share-grid { display: grid; gap: 1rem; }
.online-share-card {
  min-height: 20rem;
  padding: 1.35rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: linear-gradient(145deg, rgba(30,95,214,.055), transparent 58%), var(--surface);
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
}
.share-card-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .6rem; }
.share-card-head .status-pill { margin: 0; }
.online-share-card h3 { margin: 1.1rem 0 .5rem; font-size: 1.25rem; }
.online-share-card > p { color: var(--text-dim); font-size: .9rem; }
.share-meta { margin-top: auto; padding-top: 1.2rem; list-style: none; }
.share-meta li {
  display: grid;
  grid-template-columns: 5.5rem 1fr;
  gap: .7rem;
  padding: .55rem 0;
  border-bottom: 1px solid var(--line);
  font-size: .84rem;
}
.share-meta strong { color: var(--ink); }
.share-meta span { color: var(--text-dim); }
@media (hover: hover) and (pointer: fine) {
  .gateway-card:hover,
  .issue-preview:hover,
  .product-card:hover,
  .issue-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: rgba(30,95,214,.34); }
  .text-link:hover,
  .card-action:hover { transform: translateX(3px); }
}

@media (hover: none) {
  .card-classic:hover,
  .card-glass:hover,
  .badge:hover { transform: none; }
}

@media (min-width: 720px) {
  .community-brand { grid-template-columns: minmax(0, 1.4fr) minmax(15rem, .6fr); }
  .event-record { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
  .online-share-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .issue-preview-grid,
  .product-grid,
  .issue-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .media-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .photo-wall { grid-template-columns: 1.25fr .75fr .75fr; }
}

@media (min-width: 920px) {
  .gateway-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .detail-layout { grid-template-columns: minmax(0, 1fr) 18rem; gap: 4rem; }
  .detail-side { position: sticky; top: calc(var(--nav-h) + 1.4rem); }
}

@media (max-width: 719px) {
  .gateway-card { min-height: auto; }
  .gateway-list li { grid-template-columns: 1fr; gap: .15rem; }
  .page-hero h1 { font-size: 2.35rem; }
  .archive-list li { grid-template-columns: 3.6rem 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .btn:active,
  .nav-toggle:active,
  .copy-btn:active,
  .text-link:active,
  .issue-preview:active,
  .product-card:active { transform: none; }
}
/* ── 线下聚会真实档案（v12）── */
.event-photo.event-photo-live { min-height: 0; }
.event-photo-live { display: grid; place-items: center; border-radius: 9px; border: 1px solid var(--line); background: var(--paper-warm); padding: .7rem; }
.event-photo-live img { width: 100%; height: auto; max-height: 32rem; object-fit: contain; display: block; border-radius: 6px; box-shadow: 0 2px 12px rgba(30,42,74,.12); }
.event-intro { margin-top: .35rem; color: var(--gold-ink); font-family: var(--font-serif); font-size: 1.1rem; }
.event-gallery { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: .75rem; padding: 0 .2rem .2rem; }
.gallery-item { display: block; border: 1px solid var(--gold-soft); border-radius: 9px; overflow: hidden; background: var(--paper-warm); transition: box-shadow .2s ease, transform .2s ease; }
.gallery-item:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.gallery-item img { width: 100%; height: 10.5rem; object-fit: cover; object-position: center top; display: block; }
.gallery-item span { display: block; padding: .55rem .7rem; font-size: .8rem; color: var(--text-dim); }

.consent-footnote { margin-top: 1.1rem; font-size: .8rem; color: var(--text-dim); }

/* 视频号入口条 */
.channel-banner { margin-top: 1.2rem; display: grid; grid-template-columns: 1fr auto; gap: 1.2rem; align-items: center; padding: 1.2rem 1.4rem; border: 1px solid var(--gold-soft); background: var(--paper-warm); border-radius: 12px; }
.channel-banner strong { color: var(--ink); }
.channel-banner p { color: var(--text-dim); font-size: .88rem; margin-top: .4rem; }
.channel-banner img { width: 9.5rem; height: auto; border-radius: 8px; border: 1px solid var(--line); background: #fff; }
@media (max-width: 640px) { .channel-banner { grid-template-columns: 1fr; justify-items: center; text-align: center; } }

.share-actions { display: flex; flex-wrap: wrap; gap: .8rem 1.2rem; align-items: center; margin-top: 1rem; }
.share-actions .card-action { padding-top: 0; }

.join-banner { margin: 1.2rem 0; display: grid; grid-template-columns: 1fr auto; gap: 1.2rem; align-items: center; padding: 1.2rem 1.4rem; border: 1px solid var(--gold-soft); background: var(--paper-warm); border-radius: 12px; }
.join-banner strong { color: var(--ink); }
.join-banner p { color: var(--text-dim); font-size: .88rem; margin-top: .4rem; }
.join-banner img { width: 9.5rem; height: auto; border-radius: 8px; border: 1px solid var(--line); background: #fff; }
@media (max-width: 640px) { .join-banner { grid-template-columns: 1fr; justify-items: center; text-align: center; } }

/* ── 本场分享：题目 / 嘉宾 / 讲义 ── */
.talk-list { margin-top: 1.4rem; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: var(--paper-warm); }
.talk-list-head {
  padding: .65rem 1rem;
  color: var(--blue);
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .12em;
  border-bottom: 1px solid var(--line);
}
.talk-list ol { list-style: none; margin: 0; padding: 0; }
.talk-list li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 8.2rem auto;
  gap: .45rem 1rem;
  align-items: baseline;
  padding: .8rem 1rem;
  border-bottom: 1px solid var(--line);
}
.talk-list li:last-child { border-bottom: 0; }
.talk-title { color: var(--ink); font-weight: 600; line-height: 1.45; }
.talk-by { color: var(--gold-ink); font-family: var(--font-serif); }
.talk-files { display: flex; flex-wrap: wrap; gap: .35rem .9rem; font-size: .84rem; }
.talk-files a { color: var(--blue); text-decoration: none; border-bottom: 1px solid transparent; }
.talk-files a:hover { border-bottom-color: var(--blue); }
@media (max-width: 720px) {
  .talk-list li { grid-template-columns: 1fr; gap: .2rem; }
}

/* ── 本场分享 v2：单栏名单，不与海报并排 ── */
.event-record {
  grid-template-columns: 1fr !important;
  padding: 0;
  overflow: hidden;
  align-items: start;
}
.event-record-stack { grid-template-columns: 1fr !important; }
.event-photo,
.event-photo.event-photo-live {
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: #1a1a1a;
  display: block;
}
.event-photo img,
.event-photo-live img {
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: unset;
  display: block;
  border-radius: 0;
  box-shadow: none;
}
.event-topic { padding: clamp(1.2rem, 4vw, 2rem); }
.event-gallery { padding: 0 .8rem .8rem; }
.event-meta-line { margin-top: .85rem; color: var(--text-dim); font-size: .9rem; }
.talk-list { margin-top: 1.35rem; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: var(--paper-warm); }
.talk-list-head {
  padding: .65rem 1rem;
  color: var(--blue);
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .12em;
  border-bottom: 1px solid var(--line);
}
.talk-list ol { list-style: none; margin: 0; padding: 0; }
.talk-list li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 7.2rem auto;
  gap: .4rem 1rem;
  align-items: baseline;
  padding: .8rem 1rem;
  border-bottom: 1px solid var(--line);
}
.talk-list li:last-child { border-bottom: 0; }
.talk-list li:has(.talk-main) {
  grid-template-columns: 2.3rem minmax(0, 1fr) auto;
  align-items: center;
}
.talk-no { font-family: var(--font-mono); font-size: .72rem; color: var(--blue); letter-spacing: .08em; }
.talk-main { display: flex; flex-direction: column; gap: .18rem; min-width: 0; }
.talk-title { color: var(--ink); font-weight: 600; line-height: 1.4; }
.talk-by { color: var(--gold-ink); font-family: var(--font-serif); font-size: .95rem; }
.talk-files { display: flex; flex-wrap: wrap; gap: .4rem; justify-content: flex-end; }
.talk-files a {
  display: inline-block;
  padding: .18rem .62rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  color: var(--blue);
  text-decoration: none;
  font-size: .78rem;
}
.talk-files a:hover { border-color: var(--blue); }
.talk-list li:not(:has(.talk-files)) {
  grid-template-columns: minmax(0, 1fr) auto;
}
@media (max-width: 720px) {
  .talk-list li,
  .talk-list li:has(.talk-main),
  .talk-list li:not(:has(.talk-files)) { grid-template-columns: 1fr; gap: .25rem; }
  .talk-files { justify-content: flex-start; }
}
@media (min-width: 900px) {
  .event-record,
  .event-record-stack { grid-template-columns: 1fr !important; }
}

.folder + .folder { margin-top: 1.8rem; }
.consult-rule { margin: .7rem 0 1rem; color: var(--text-dim); font-size: .92rem; line-height: 1.65; }
.consult-rule strong { color: var(--ink); font-weight: 600; }
.consult-ledger { margin: 1rem 0 1.2rem; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: var(--paper-warm); }
.consult-row {
  display: grid;
  grid-template-columns: 3.2rem minmax(0, 1fr) auto;
  gap: .6rem 1rem;
  align-items: center;
  padding: .85rem 1rem;
}
.consult-state { color: var(--gold-ink); font-size: .82rem; }
.consult-rules, .consult-intake { margin: 1rem 0 0; padding-left: 1.2rem; color: var(--text-dim); }
.consult-rules li, .consult-intake li { margin: .45rem 0; line-height: 1.6; }
.consult-intake strong { color: var(--ink); }
@media (max-width: 720px) {
  .consult-row { grid-template-columns: 1fr; gap: .2rem; }
}

/* ---------- 品牌故事（index #story / community 简版） ---------- */
#story { background: linear-gradient(180deg, rgba(243, 237, 221, .55), rgba(250, 248, 241, 0) 70%); }
.story-head { max-width: 46rem; }

.story-quote {
  margin: 2.6rem auto 3rem;
  max-width: 46rem;
  padding: 2rem 1.25rem;
  text-align: center;
  font-family: var(--font-serif);
  color: var(--ink);
  border-top: 1px solid var(--gold-soft);
  border-bottom: 1px solid var(--gold-soft);
}
.story-quote p { font-size: clamp(1.35rem, 4.4vw, 2rem); line-height: 1.75; letter-spacing: .12em; text-indent: .12em; text-wrap: balance; }
.story-quote p + p { margin-top: .5rem; }
.story-quote .story-cite {
  display: block; margin-top: 1.1rem;
  font-family: var(--font-sans); font-size: .85rem; font-style: normal;
  letter-spacing: .06em; color: var(--gold-ink);
}

.story-beats { display: grid; gap: 2.2rem; }
.story-beat {
  position: relative;
  padding: 1.6rem 0 0;
  border-top: 1px solid var(--line);
}
.story-beat-no {
  font-family: var(--font-mono); font-size: .74rem; letter-spacing: .32em;
  color: var(--gold-ink); text-transform: uppercase;
}
.story-beat h3 { font-size: clamp(1.2rem, 3.4vw, 1.5rem); margin: .35rem 0 .9rem; }
.story-beat p { margin-bottom: .9rem; max-width: 44rem; }
.story-beat p:last-child { margin-bottom: 0; }
.story-beat strong { color: var(--ink); font-weight: 600; }

/* 剑与盾：品牌名解码模块 */
.sword-shield { display: grid; gap: 1rem; margin: 1.4rem 0 0; max-width: 46rem; }
.ss-card {
  padding: 1.5rem 1.4rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}
.ss-sword { border-top: 3px solid var(--blue); }
.ss-shield { border-top: 3px solid var(--gold); color: var(--gold-dim); }
.ss-icon { width: 38px; height: 38px; margin-bottom: .9rem; }
.ss-head { display: flex; align-items: baseline; gap: .6rem; margin-bottom: .6rem; }
.ss-char {
  font-family: var(--font-serif); font-size: 2.6rem; font-weight: 600;
  line-height: 1; color: var(--ink);
}
.ss-role {
  font-family: var(--font-serif); font-size: 1.15rem; color: var(--gold-ink);
  letter-spacing: .1em;
}
.ss-card p { color: var(--text); line-height: 1.8; font-size: .96rem; }
.ss-sword p, .ss-shield p { color: var(--text); }

/* 神思会四条规矩：硬标签 + 一句话 */
.story-rules { list-style: none; margin: 1.1rem 0 0; display: grid; gap: 0; max-width: 46rem; }
.story-rules li {
  display: grid; gap: .35rem .1rem;
  padding: .95rem 0;
  border-bottom: 1px solid var(--line);
}
.story-rules li:first-child { border-top: 1px solid var(--line); }
.rule-tag {
  align-self: start;
  font-family: var(--font-sans); font-weight: 600; font-size: .88rem;
  letter-spacing: .06em; color: var(--gold-ink);
  border: 1px solid var(--gold-soft); border-radius: 4px;
  background: rgba(195, 148, 53, .09);
  padding: .2rem .6rem; justify-self: start; white-space: nowrap;
}
.story-rules p { margin: 0 !important; line-height: 1.8; }

.story-kicker-line { margin-top: 1.3rem !important; }

/* 数字条（复用 .stat 既有样式） */
#story .stat-strip { max-width: 46rem; }

.story-aside {
  margin: 1.4rem 0 0;
  padding: 1.15rem 1.3rem;
  background: var(--paper-warm);
  border-left: 3px solid var(--gold);
  border-radius: 0 8px 8px 0;
  max-width: 44rem;
}
.story-aside h4 {
  font-family: var(--font-sans); font-size: .95rem; font-weight: 600;
  color: var(--ink); margin-bottom: .5rem;
}
.story-aside p { font-size: .95rem; line-height: 1.8; color: var(--text); }
.story-aside p + p { margin-top: .55rem; }
.story-aside-qs {
  font-family: var(--font-serif);
  color: var(--text-dim);
  font-size: 1rem !important;
  line-height: 2 !important;
}

.story-close {
  margin-top: 3rem; padding-top: 2rem;
  border-top: 1px solid var(--gold-soft);
  max-width: 46rem;
}
.story-close p {
  font-family: var(--font-serif); font-size: clamp(1.02rem, 2.6vw, 1.2rem);
  color: var(--ink); line-height: 1.95;
}
.story-close p + p { margin-top: .7rem; }
.story-actions { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; margin-top: 1.8rem; }

/* community.html 简版 */
.story-note {
  margin: 2rem 0 0;
  padding: clamp(1.3rem, 3.5vw, 2rem);
  background: var(--paper-warm);
  border: 1px solid var(--line);
  border-radius: 10px;
}
.story-note h3 { font-size: clamp(1.15rem, 3.2vw, 1.4rem); margin: .3rem 0 1rem; }
.story-note blockquote {
  margin: 0 0 1.1rem; padding-left: 1.1rem;
  border-left: 2px solid var(--gold);
  font-family: var(--font-serif); color: var(--ink);
  font-size: clamp(1rem, 2.6vw, 1.15rem); line-height: 1.9;
}
.story-note blockquote cite {
  display: block; margin-top: .5rem;
  font-family: var(--font-sans); font-style: normal;
  font-size: .82rem; letter-spacing: .06em; color: var(--gold-ink);
}
.story-note p { margin-bottom: .8rem; max-width: 46rem; }
.story-note p strong { color: var(--ink); }

@media (min-width: 720px) {
  .sword-shield { grid-template-columns: 1fr 1fr; gap: 1.2rem; }
  .story-rules li { grid-template-columns: 6.6rem minmax(0, 1fr); gap: .1rem 1.4rem; align-items: baseline; }
}
@media (min-width: 900px) {
  .story-beats { gap: 2.6rem; }
  .story-beat { padding-left: 0; }
}

/* ---------- 关于 JKL ---------- */
#about { background: linear-gradient(180deg, rgba(30,95,214,.035), rgba(250,248,241,0) 60%); }
.about-body { max-width: 44rem; margin-top: 1.6rem; }
.about-body p { margin-bottom: 1rem; line-height: 1.95; }
.about-body p:last-child { margin-bottom: 0; color: var(--text-dim); }
.about-body strong { color: var(--ink); font-weight: 600; }

.about-lines { list-style: none; margin: 1.8rem 0 0; max-width: 50rem; }
.about-lines li {
  display: grid;
  grid-template-columns: 2.6rem minmax(0, 1fr);
  gap: .5rem 1rem;
  padding: 1.4rem 0;
  border-top: 1px solid var(--line);
}
.about-lines li:last-child { border-bottom: 1px solid var(--line); }
.al-no {
  font-family: var(--font-mono); font-size: .82rem; letter-spacing: .1em;
  color: var(--gold-ink); padding-top: .3rem;
}
.al-main h3 { font-size: 1.15rem; margin-bottom: .4rem; }
.al-main p { color: var(--text-dim); line-height: 1.8; }
.about-lines .text-link { grid-column: 2; justify-self: start; margin-top: .2rem; font-size: .9rem; }
@media (min-width: 860px) {
  .about-lines li { grid-template-columns: 2.6rem minmax(0, 1fr) auto; align-items: start; }
  .about-lines .text-link { grid-column: 3; margin-top: 0; padding-top: .4rem; white-space: nowrap; }
}

/* ---------- 共创文章索引 ---------- */
.collide-index { margin-top: .5rem; }
.collide-cat { break-inside: avoid; margin-bottom: 2.2rem; }
.collide-cat h3 {
  font-size: 1.05rem; margin-bottom: .9rem; padding-bottom: .5rem;
  border-bottom: 1px solid var(--gold-soft); color: var(--ink);
}
.collide-cat ul { list-style: none; display: grid; gap: .1rem; }
.collide-cat li {
  display: flex; align-items: baseline; gap: .6rem; flex-wrap: wrap;
  padding: .55rem 0; border-bottom: 1px solid var(--line);
}
.collide-cat li:last-child { border-bottom: none; }
.collide-cat li a { color: var(--text); line-height: 1.65; font-size: .95rem; }
.collide-cat li a:hover { color: var(--blue); }
.ci-onsite {
  flex: none; font-size: .7rem; letter-spacing: .05em;
  color: var(--gold-ink); border: 1px solid var(--gold-soft);
  border-radius: 3px; padding: .05rem .4rem; background: rgba(195,148,53,.09);
}
@media (min-width: 860px) {
  .collide-index { columns: 2; column-gap: 3rem; }
}

/* ============ 居中版式（2026-09-09 定）============
   规则：标题、说明、装饰一律居中；正文段落所在的「栏」居中，
   但栏内中文长句仍左对齐——整段居中会让每行起点漂移，中文可读性下降。 */
#hero .hero-inner,
#about .wrap,
#story .wrap,
#lab .wrap { text-align: center; }

/* 栏居中 */
.section-sub,
.about-body,
.badges,
.story-head,
.story-quote,
.story-beat p,
.story-points,
.story-rules,
.sword-shield,
.story-close,
.story-aside,
.about-lines,
#story .stat-strip,
.repo-grid,
.repo-actions { margin-left: auto; margin-right: auto; }

/* 栏内正文回到左对齐 */
.about-body,
.about-lines,
.story-beat,
.story-rules,
.story-aside,
.ss-card,
.repo-card { text-align: left; }

/* 但这些短句/展示元素保持居中 */
.story-quote,
.story-head,
#story .stat-strip .stat,
.story-close { text-align: center; }
.story-close .story-actions { justify-content: center; }
.hero-ctas { justify-content: center; }
.badges { justify-content: center; }
.divider { margin-left: auto; margin-right: auto; }
#book .divider { margin-left: auto; }

/* 剑盾两卡内的大字居中更像徽记 */
.ss-card { text-align: center; }
.ss-head { justify-content: center; }
.ss-icon { margin-left: auto; margin-right: auto; }

/* 关于区：四条索引在居中栏内保持左读 */
.about-lines { max-width: 46rem; }
.story-beat h3, .story-beat .story-beat-no { text-align: center; }

/* ---------- 开源与作品卡片 ---------- */
.repo-grid { display: grid; gap: 1.2rem; max-width: 68rem; margin-top: 2rem; }
.repo-card {
  display: flex; flex-direction: column; gap: .6rem;
  padding: 1.6rem 1.5rem;
  border: 1px solid var(--line); border-radius: 10px;
  background: var(--surface); box-shadow: var(--shadow-sm);
  color: var(--text);
  transition: transform 180ms var(--ease-out), box-shadow 220ms ease, border-color 180ms ease;
}
.repo-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: var(--gold-soft); color: var(--text); }
.repo-kind { font-family: var(--font-mono); font-size: .72rem; letter-spacing: .16em; color: var(--gold-ink); text-transform: uppercase; }
.repo-star { color: var(--gold-dim); font-weight: 700; letter-spacing: 0; }
.repo-card h3 { font-size: 1.2rem; }
.repo-card p { color: var(--text-dim); line-height: 1.75; font-size: .94rem; flex: 1; }
.repo-card .card-action { color: var(--blue); font-size: .88rem; }
.repo-card-star { border-top: 3px solid var(--gold); }
.repo-actions { margin-top: 1.2rem; justify-content: center; display: flex; }
.lab-grid-2 { margin-top: 3rem; }
@media (min-width: 820px) { .repo-grid { grid-template-columns: repeat(3, 1fr); } }
/* 卡片内：标题居中、正文左读 */
.lab-card p, .lab-sub p { text-align: left; }
.lab-card > div:has(.chip) { display: flex; flex-wrap: wrap; gap: .4rem; justify-content: center; }
.hero-line-2 { margin-left: auto; margin-right: auto; }
.about-body p:last-child { text-align: center; }

/* ---------- 书里的案例 ---------- */
.case-grid { display: grid; gap: 1.1rem; margin-top: 1.4rem; text-align: left; }
.case-card {
  padding: 1.5rem 1.4rem;
  border: 1px solid var(--line); border-radius: 10px;
  background: var(--surface); box-shadow: var(--shadow-sm);
}
.case-chapter {
  font-family: var(--font-mono); font-size: .7rem; letter-spacing: .2em;
  color: var(--gold-ink); text-transform: uppercase; margin-bottom: .5rem;
}
.case-card h4 { font-size: 1.1rem; margin-bottom: .8rem; }
.case-card p { color: var(--text-dim); line-height: 1.85; font-size: .94rem; margin-bottom: .7rem; }
.case-card .case-take {
  margin: 1rem 0 0; padding-top: .9rem;
  border-top: 1px solid var(--gold-soft);
  color: var(--text);
}
.case-card .case-take strong { color: var(--ink); }
#book-cases .consult-rule { max-width: 46rem; margin-left: auto; margin-right: auto; }
@media (min-width: 820px) { .case-grid { grid-template-columns: 1fr 1fr; gap: 1.3rem; } }

/* ---------- 教学案例：五段式 ---------- */
.case-record { margin-top: 1.6rem; text-align: left; }
.case-head { display: flex; align-items: baseline; gap: .8rem; margin-bottom: 1.1rem; }
.case-no {
  font-family: var(--font-mono); font-size: .78rem; letter-spacing: .16em;
  color: var(--gold-ink); border: 1px solid var(--gold-soft); border-radius: 4px;
  padding: .15rem .5rem; flex: none;
}
.case-head h4 { font-size: 1.1rem; }
.case-fields { display: grid; gap: 0; }
.case-fields > div {
  display: grid; gap: .4rem;
  padding: 1rem 0; border-top: 1px solid var(--line);
}
.case-fields > div:last-child { border-bottom: 1px solid var(--line); }
.case-fields dt {
  font-family: var(--font-sans); font-weight: 600; font-size: .9rem;
  color: var(--gold-ink); letter-spacing: .04em;
}
.case-fields dd { margin: 0; line-height: 1.85; color: var(--text); }
.case-fields dd strong { color: var(--ink); }
#archive .consult-rule { max-width: 46rem; }
@media (min-width: 860px) {
  .case-fields > div { grid-template-columns: 7.5rem minmax(0, 1fr); gap: .3rem 1.6rem; align-items: start; }
}
.case-record + .case-record { margin-top: 2.6rem; padding-top: 2.2rem; border-top: 2px solid var(--gold-soft); }

/* ============ 居中版式（2026-09-09 定，2026-09-22 接到现有首页）============
   标题、说明、装饰居中。正文长句所在的栏居中，栏内中文仍左对齐。
   不改购书页，不发布 Penthouse 英文页。 */
#hero .hero-inner {
  text-align: center;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
#hero .hero-line-1 { padding-left: .28em; }
#hero .hero-line-2 { margin-left: auto; margin-right: auto; max-width: min(34em, 100%); }
#hero .badge { max-width: 100%; }
#hero .hero-ctas { justify-content: center; }
#hero .badges {
  justify-content: center;
  align-items: center;
  margin-left: auto;
  margin-right: auto;
}
#hero .about-quote {
  text-align: left;
  width: min(46rem, 100%);
  margin-left: auto;
  margin-right: auto;
}

#services > .wrap > .section-kicker,
#archive > .wrap > .section-kicker,
#lab > .wrap > .section-kicker,
#community > .wrap > .section-kicker,
#book > .wrap > .section-kicker {
  text-align: center;
  padding-left: .35em;
}
#services > .wrap > .section-title,
#archive > .wrap > .section-title,
#lab > .wrap > .section-title,
#community > .wrap > .section-title {
  text-align: center;
}
#services > .wrap > .section-sub,
#archive > .wrap > .section-sub,
#lab > .wrap > .section-sub,
#community > .wrap > .section-sub {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

#community .section-heading-row {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
#community .section-heading-row p {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
#community .section-actions { justify-content: center; }

#lab .lab-card h3 { justify-content: center; }
#lab .lab-card p,
#lab .lab-sub p,
#lab .lab-sub h4 { text-align: left; }
#lab .lab-card > div:has(> .chip),
#lab .lab-sub > div:has(> .chip) {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .15rem;
  justify-content: center;
}
#lab .lab-card > div:has(> .chip) .chip,
#lab .lab-sub > div:has(> .chip) .chip { margin: .25rem; }
