:root{
  --bg:#2b2430; /* 深紫灰 */
  --paper:#fff8ef; /* 象牙白 */
  --muted:#9a93a0;
  --text:#212026;
  --accent:#4b3f58;
  --line:rgba(33,32,38,0.06);
  --max-width:1280px; /* within 1120-1440 contract */
  --sheet-offset:28px;
  --gutter:28px;
  --font-stack: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans SC', "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0;background:var(--bg);color:var(--text);font-family:var(--font-stack);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.page-viewport{padding:28px 16px 60px}
.page-width{max-width:var(--max-width);min-width:1120px;margin:0 auto}
@media (max-width:1279px){ .page-width{min-width:0;padding:0 18px} }

/* Header / toolbar: left-aligned compact brand bar, site name + breadcrumb merged */
.toolbar{background:transparent;padding:12px 0;color:var(--paper)}
.toolbar-inner{display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:10px;font-weight:600;color:var(--paper)}
.brand-link{color:var(--paper);text-decoration:none;font-size:18px}
.brand .breadcrumb{color:var(--muted);font-weight:400;font-size:13px}
.brand .divider{color:var(--muted);font-size:13px}
.utility{font-size:13px;color:var(--muted)}

/* Layout grid: desktop has offset sheet and a side annotation column on the right */
.layout-grid{display:grid;grid-template-columns:1fr 280px;gap:24px;align-items:start}
@media (max-width:1023px){ .layout-grid{grid-template-columns:1fr} }

/* Ad wrappers are simple block containers without sticky/floating behaviour */
.ad-wrap{background:transparent;padding:8px 0;text-align:center;color:var(--muted)}
.ad-wrap > *{display:inline-block}

/* Article sheet: resembles a sheet of paper offset on a wide background; no shadow or rounded corners */
.article-sheet{background:var(--paper);padding:36px 44px;border-top:1px solid var(--line);border-left:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:block;position:relative;overflow:visible}
/* offset to right to imply '偏移纸张' */
@media (min-width:1024px){
  .article-sheet{transform:translateX(var(--sheet-offset));}
}

/* Title composition: large title with narrow meta column to right */
.article-header{display:grid;grid-template-columns:1fr 220px;align-items:start;gap:20px;margin-bottom:18px}
.title{grid-column:1/2;font-size:34px;line-height:1.12;margin:0;color:var(--accent);font-weight:700;letter-spacing:-0.01em}
/* title visually extends left beyond the main sheet baseline */
@media (min-width:1024px){
  .title{margin-left:-48px}
}
.meta-col{grid-column:2/3;font-size:13px;color:var(--muted);border-left:1px solid var(--line);padding-left:16px}
.meta-row{margin-bottom:10px}
.meta-row label{display:block;font-size:11px;color:var(--muted);margin-bottom:4px}
.meta-row time{display:block;color:var(--text)}
.meta-row.keywords{font-size:12px;color:var(--muted)}

/* Summary placed early and visible */
.summary{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;margin-bottom:18px}
.summary p{margin:0;color:var(--text);line-height:1.6}

/* Article body: readable width, generous line-height */
.article-body{color:var(--text);font-size:16px;line-height:1.75;hyphens:auto}
.article-body p{margin:0 0 1em}
.article-body :where(h2,h3,h4){margin:1.2em 0 0.6em;color:var(--accent)}

/* FAQ pattern: horizontal-line Q/A list */
.faq{margin-top:28px}
.section-title{display:flex;align-items:center;gap:10px;font-size:18px;margin:0 0 12px;padding:0;color:var(--accent);font-weight:700}
/* visual signature: 章节标题带短编号线但不自动生成编号 - decorative */
.section-title .sig{display:inline-block;width:22px;height:12px;position:relative}
.section-title .sig:before{content:"";position:absolute;left:0;right:0;top:8px;height:2px;background:var(--accent);}
.section-title .sig:after{content:"·";position:absolute;left:8px;top:-2px;color:var(--accent);font-size:14px}

.faq-list{border-top:1px solid var(--line)}
.faq-list > *{padding:14px 0;border-bottom:1px solid var(--line)}
.faq-list .question{font-weight:600;margin-bottom:6px}
.faq-list .answer{color:var(--text)}

/* Related pattern: list with date and separators */
.related{margin-top:22px}
.related-title{font-size:15px;margin:0 0 10px;color:var(--accent)}
.related-list{display:block;border-top:1px solid var(--line)}
.related-list > *{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);color:var(--text)}
.related-list a{color:var(--accent);text-decoration:none}
.related-list .rmeta{font-size:12px;color:var(--muted);margin-left:12px}

/* Side annotation column: narrow right area on desktop; moves below on mobile (contract: 侧栏下移、折叠成自然区块) */
.side-annotation{display:block}
.note-box{background:transparent;border:1px solid var(--line);padding:12px;font-size:13px;color:var(--muted)}
.note-title{font-weight:700;color:var(--accent);margin-bottom:8px}

/* footer */
.site-footer{padding:18px 0;color:var(--muted);font-size:13px}

/* MOBILE RULES: 320px safe, cancel offset and ensure natural flow */
@media (max-width:767px){
  :root{--max-width:720px}
  .page-width{min-width:0;padding:0 14px}
  body{font-size:15px}
  .layout-grid{grid-template-columns:1fr;gap:12px}
  .article-sheet{transform:none;padding:18px;border-left:0;border-right:0}
  .title{font-size:22px;margin-left:0}
  .article-header{grid-template-columns:1fr;margin-bottom:10px}
  .meta-col{grid-column:1/2;border-left:0;padding-left:0;margin-top:10px;display:flex;gap:12px;flex-wrap:wrap}
  .meta-row{flex:0 0 auto}
  .summary{padding:10px 0}
  .article-body{font-size:15px;line-height:1.7}
  .side-annotation{order:3}
  .ad-wrap{padding:10px 0}
  .related-list > *{padding:10px 0}
  /* ensure no horizontal scroll at 320px */
  html,body{overflow-x:hidden}
}

/* DESKTOP SPECIFIC: at least one structure difference above 1024px */
@media (min-width:1024px){
  .page-width{min-width:1120px}
  .side-annotation{position:static}
  .article-sheet{padding:40px 56px}
  /* ensure right column remains narrow and visible */
  .layout-grid{align-items:start}
}

/* Accessibility and small touches */
a{color:inherit}
label{font-size:11px}
