*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}
body{
  background:var(--color-bg-primary);
  overflow-x:hidden;
  font-family:var(--font-sans);
  font-size:17px;
  line-height:1.75;
  color:var(--color-text-primary);
  max-width:100vw;
  -webkit-tap-highlight-color:transparent;
  -webkit-overflow-scrolling:touch;
}

/* ── Article Header ── */
.article-header{
  position:fixed;top:0;left:0;right:0;z-index:var(--z-header);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 20px;height:56px;
  transition:background .3s ease,backdrop-filter .3s ease;
}
.article-header--scrolled{
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--color-border-default);
}

/* 文章顶部导航条 */
.SiteHeader#articleHeader{
  background:rgba(255,255,255,.98);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(10,61,255,.10);
  box-shadow:0 10px 34px rgba(13,41,92,.05);
}
.article-header__back{
  display:flex;align-items:center;gap:6px;font-size:15px;
  color:#fff;text-decoration:none;font-weight:var(--font-weight-medium);
  transition:color .3s ease;
}
.article-header--scrolled .article-header__back{color:var(--color-text-secondary)}
.article-header__back svg{width:20px;height:20px;flex-shrink:0}
.article-header__logo{font-size:16px;font-weight:var(--font-weight-bold);color:#fff;letter-spacing:var(--tracking-tight)}
.article-header--scrolled .article-header__logo{color:var(--color-text-primary)}
.article-header__logo img{height:28px;width:auto;display:block}

/* ── Hero ── */
.article-hero{
  position:relative;
  display:flex;flex-direction:column;
  justify-content:flex-end;
  overflow:hidden;
  padding-top:calc(56px + 32px);
  padding-bottom:0;
}
.article-hero__bg{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(135deg,#0A3DFF 0%,#1677FF 30%,#00D4FF 70%,#7B61FF 100%);
  background-size:200% 200%;
  animation:heroGradientShift 12s ease infinite;
}
@keyframes heroGradientShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.article-hero__bg::after{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(ellipse 70% 40% at 15% 20%,rgba(255,255,255,.10) 0%,transparent 60%),
    radial-gradient(ellipse 50% 30% at 85% 75%,rgba(255,255,255,.06) 0%,transparent 50%);
}
.article-hero__overlay{
  position:absolute;bottom:0;left:0;right:0;height:55%;z-index:3;
  background:linear-gradient(to top,rgba(10,26,58,.90) 0%,rgba(10,26,58,.50) 45%,transparent 100%);
  pointer-events:none;
}
.article-hero__content{
  position:relative;z-index:4;
  padding:0 20px 40px;color:#fff;
  max-width:820px;margin:0 auto;width:100%;
}
.article-hero__category{
  display:inline-flex;align-items:center;gap:6px;padding:4px 14px;
  border-radius:var(--radius-full);font-size: 14px;font-weight:var(--font-weight-medium);
  background:rgba(255,255,255,.15);backdrop-filter:blur(4px);
  border:1px solid rgba(255,255,255,.22);margin-bottom:14px;
}
.article-hero__category-dot{width:6px;height:6px;border-radius:50%;background:#00D4FF}
.article-hero__title{
  font-size:clamp(24px,4.5vw,40px);font-weight:var(--font-weight-bold);line-height:1.2;
  letter-spacing:var(--tracking-tight);margin-bottom:12px;color:#fff;
}
.article-hero__meta{
  font-size: 14px;opacity:.85;line-height:1.6;
  display:flex;flex-wrap:wrap;gap:4px 16px;align-items:center;
}

/* ── Article Container ── */
.article-outer{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--container-padding-inline)}
.article-inner{max-width:780px;margin:0 auto;width:100%}

/* ── Article Content ── */
.article-body{
  padding:40px 0 64px;
}
.article-body__summary{
  font-size:18px;line-height:1.8;color:var(--color-text-secondary);
  padding:24px 28px;margin-bottom:32px;
  background:var(--color-bg-secondary);
  border-left:3px solid var(--color-primary);
  border-radius:0 var(--radius-md) var(--radius-md) 0;
}
.article-body__content{
  font-size:16px;line-height:1.85;color:var(--color-text-primary);
}
.article-body__content h2{
  font-size:24px;font-weight:var(--font-weight-bold);line-height:1.3;
  margin:36px 0 16px;color:var(--color-text-primary);
}
.article-body__content h3{
  font-size:19px;font-weight:var(--font-weight-semibold);
  margin:28px 0 12px;color:var(--color-text-primary);
}
.article-body__content p{
  margin-bottom:16px;color:var(--color-text-secondary);
}
.article-body__content ul,.article-body__content ol{
  margin:12px 0 20px;padding-left:24px;
}
.article-body__content li{
  margin-bottom:8px;color:var(--color-text-secondary);line-height:1.75;
}
.article-body__content blockquote{
  margin:24px 0;padding:18px 24px;
  background:var(--color-bg-secondary);
  border-left:3px solid var(--color-primary);
  border-radius:0 var(--radius-md) var(--radius-md) 0;
  font-size:15px;color:var(--color-text-tertiary);font-style:italic;
}
.article-body__content strong{color:var(--color-text-primary)}
.article-body__content a{color:var(--color-primary);text-decoration:underline}

/* ── Source Link ── */
.article-source{
  margin-top:32px;padding:18px 24px;
  background:var(--color-bg-secondary);
  border-radius:var(--radius-md);
  font-size:14px;color:var(--color-text-tertiary);
}
.article-source a{
  color:var(--color-primary);text-decoration:none;font-weight:var(--font-weight-medium);
}
.article-source a:hover{text-decoration:underline}

/* ── Back to List ── */
.article-back{
  text-align:center;padding:0 0 48px;
}
.article-back a{
  font-size:16px;color:var(--color-text-tertiary);
  text-decoration:none;font-weight:var(--font-weight-medium);
}
.article-back a:hover{color:var(--color-primary)}

/* ── Article Footer ── */
.article-footer{
  background:var(--color-bg-secondary);padding:48px 0 32px;
}
.article-footer__inner{max-width:820px;margin:0 auto;padding:0 var(--container-padding-inline)}
.article-footer__logo{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.article-footer__logo img{height:28px;width:auto}
.article-footer__text{font-size: 15px;color:var(--color-text-tertiary);line-height:1.6}
.article-footer__links{display:flex;flex-wrap:wrap;gap:16px;margin-top:16px}
.article-footer__links a{font-size: 14px;color:var(--color-text-tertiary);text-decoration:none}
.article-footer__links a:hover{color:var(--color-text-primary)}

/* ── Responsive ── */
@media(min-width:768px){
  .article-hero{padding-top:calc(56px + 56px)}
  .article-hero__content{padding:0 0 64px}
  .article-hero__title{font-size:40px}
  .article-hero__meta{font-size:14px;gap:4px 20px}
  .article-body{padding:56px 0 72px}
  .article-body__summary{font-size:19px;padding:28px 32px}
  .article-body__content{font-size:17px}
}
@media(min-width:1024px){
  .article-hero{padding-top:calc(56px + 72px)}
  .article-hero__content{padding:0 0 80px}
  .article-hero__title{font-size:44px}
  .article-body{padding:64px 0 80px}
}

/* ── Article TOC ── */
.article-body__content .article-toc{
  margin:24px 0 32px;padding:20px 24px;
  background:var(--color-bg-secondary, #F5F7FB);
  border:1px solid var(--color-border, #E3E8F0);
  border-radius:var(--radius-md, 10px);
}
.article-body__content .article-toc>strong{
  display:block;font-size:15px;margin-bottom:10px;color:var(--color-text-primary);
}
.article-body__content .article-toc ol{
  margin:0;padding-left:20px;
}
.article-body__content .article-toc li{
  margin-bottom:6px;line-height:1.7;color:var(--color-text-secondary);
}
.article-body__content .article-toc a{
  color:var(--color-primary, #1677FF);text-decoration:none;
}
.article-body__content .article-toc a:hover{text-decoration:underline}
@media (max-width:640px){
  .article-body__content .article-toc{padding:16px 18px}
}

/* ── Article Table ── */
.article-body__content table{
  width:100%;border-collapse:collapse;margin:20px 0 28px;
  font-size:14px;line-height:1.6;color:var(--color-text-primary);
  border:1px solid var(--color-border, #E3E8F0);
  border-radius:var(--radius-md, 10px);overflow:hidden;
}
.article-body__content table th{
  background:var(--color-bg-secondary);color:var(--color-text-primary);
  font-weight:var(--font-weight-semibold);text-align:left;
  padding:12px 14px;border-bottom:1px solid var(--color-border, #E3E8F0);
}
.article-body__content table td{
  padding:12px 14px;border-bottom:1px solid var(--color-border, #E3E8F0);
  vertical-align:top;color:var(--color-text-secondary);
}
.article-body__content table tr:last-child td{border-bottom:none}
@media (max-width:640px){
  .article-body__content table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:normal}
}

/* ==========================================================================
   Global Layout
   ========================================================================== */

:root {
  --xlx-page-inset: 24px; /* <=390：左右各 12px */
  --xlx-page-gutter: 12px;
  --container-wide: calc(100vw - var(--xlx-page-inset));
  --container-main: calc(100vw - var(--xlx-page-inset));
  --container-content: calc(100vw - var(--xlx-page-inset));
  --container-padding-inline: 0px;
}

@media (min-width: 391px) {
  :root {
    --xlx-page-inset: 28px;
    --xlx-page-gutter: 14px;
  }
}

@media (min-width: 431px) {
  :root {
    --xlx-page-inset: 32px;
    --xlx-page-gutter: 16px;
  }
}

@media (min-width: 768px) {
  :root {
    --xlx-page-inset: 48px;
    --xlx-page-gutter: 24px;
  }
}

@media (min-width: 1024px) {
  :root {
    --xlx-page-inset: 72px;
    --xlx-page-gutter: 36px;
  }
}

@media (min-width: 1280px) {
  :root {
    --xlx-page-inset: 96px;
    --xlx-page-gutter: 48px;
  }
}

@media (min-width: 1440px) {
  :root {
    --xlx-page-inset: 144px;
    --xlx-page-gutter: 72px;
  }
}

@media (min-width: 1600px) {
  :root {
    --xlx-page-inset: 220px;
    --xlx-page-gutter: 110px;
  }
}

@media (min-width: 1920px) {
  :root {
    --xlx-page-inset: 360px;
    --xlx-page-gutter: 180px;
  }
}

/* 主背景继续全宽；这里只控制内部内容版心 */
.container,
.site-container,
.SiteHeader__inner {
  max-width: var(--container-main);
}

/* 防止网格/双栏子项因长文本撑破版心 */
.container > *,
.site-container > *,
.SiteHeader__inner > * {
  min-width: 0;
}
