/* Core variables and reset */
:root{
  --bg:#ffffff;
  --page-bg:#fafafa;
  --ink:#111111;
  --muted:#6b6b6b;
  --accent:#c92b2b; /* 朱红 */
  --rule:#e6e6e6;
  --max-page:1400px;
  --min-page:1120px;
  --font-stack:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans CJK SC', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft Yahei', sans-serif;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:var(--font-stack);
  color:var(--ink);
  background:var(--page-bg);
  line-height:1.45;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
a{color:var(--accent);text-decoration:none}
img{max-width:100%;height:auto}
.page-wrap{position:relative;min-height:100vh;padding:24px 16px}
.site-header{max-width:1200px;margin:0 auto 18px;}
.brand-row{display:flex;align-items:center;gap:18px}
.brand{font-weight:700;color:var(--ink);font-size:18px}
.mini-nav{margin-left:auto;color:var(--muted);font-size:13px}
.thin-row{height:3px;background:transparent;border-top:1px solid var(--rule);margin-top:10px}

/* visual signature: 1px vertical line across the page area */
.visual-line{position:absolute;left:50%;transform:translateX(-50%);top:0;bottom:0;width:1px;background:var(--accent);opacity:0.12;pointer-events:none}

.page{margin:0 auto}
.layout-grid{display:grid;grid-template-columns:1fr 320px;gap:28px;align-items:start}

/* Article sheet (offset effect on desktop) */
.sheet{background:var(--bg);border-top:1px solid var(--rule);border-left:1px solid var(--rule);border-right:1px solid var(--rule);padding:28px 32px 36px;position:relative}
.article-head{margin-bottom:14px}
.title{font-size:34px;line-height:1.05;font-weight:700;margin:0 0 10px;color:var(--ink);max-height:calc(2 * 1.05em);overflow:hidden}
.meta{display:flex;flex-wrap:wrap;gap:10px;color:var(--muted);font-size:13px;margin-bottom:10px}
.meta .published,.meta .now{white-space:nowrap}
.summary{margin:6px 0 18px;color:var(--muted);font-size:15px}
.article-body{color:var(--ink);font-size:16px}
.article-body p{margin:0 0 12px}

/* FAQ pattern: horizontal rules between Q/A */
.faq{margin-top:22px}
.faq .section-title{font-size:15px;margin:0 0 10px;color:var(--ink)}
.faq-list > *{padding:12px 0;border-top:1px solid var(--rule)}

/* Sidebar */
.side{padding:6px 0}
.side-block{background:transparent;border-top:1px solid var(--rule);padding-top:12px;margin-bottom:12px}
.side-title{font-size:14px;margin:0 0 8px}
.side-item{font-size:13px;color:var(--muted);padding:6px 0}
.side-note{color:var(--ink);font-size:14px}
.related-list > *{display:block;padding:10px 0;border-top:1px solid var(--rule);font-size:14px}

/* Ads placeholders - non-intrusive blocks */
.ad{border:1px dashed var(--rule);background:transparent;padding:10px;margin:14px 0;font-size:13px;color:var(--muted)}
.ad-side{border-style:solid}

.site-footer{max-width:1200px;margin:34px auto 0;color:var(--muted);font-size:13px}
.footer-line{height:1px;background:var(--rule);margin-bottom:10px}
.footer-inner{padding:6px 0}

/* Desktop specific rules */
@media (min-width:1024px){
  .page{width:clamp(var(--min-page),70%,var(--max-page));}
  .site-header{max-width:var(--max-page);}
  .site-footer{max-width:var(--max-page)}

  /* make the sheet appear offset like a slipped paper: left edge protrudes, no shadow/rounded corners */
  .sheet{transform:translateX(-48px);border-left:1px solid var(--rule)}
  .title{margin-left:-48px;padding-left:12px}

  /* right column narrow and compact */
  .layout-grid{grid-template-columns:1fr 320px}
  .side{position:relative}

  /* emphasize compact tech typography */
  .title{font-size:40px}
  .article-body{font-size:16px;letter-spacing:0.01em}

  /* visual line slightly desaturated on large screens */
  .visual-line{opacity:0.14}
}

/* Mobile specific rules */
@media (max-width:767px){
  .visual-line{display:none}
  .page-wrap{padding:12px}
  .site-header{margin-bottom:10px}
  .layout-grid{display:block}
  .page{width:100%}
  .sheet{transform:none;padding:18px;border-left:none;border-right:none}
  .title{font-size:22px;margin-left:0;padding-left:0;line-height:1.15}
  .meta{font-size:12px}
  .summary{font-size:14px}
  .article-body{font-size:15px}
  .side{margin-top:18px}
  .ad{margin:12px 0}
  .related-list > *{padding:8px 0}

  /* ensure no horizontal scroll on narrowest widths */
  body{overflow-x:hidden}
}

/* mid-range fallback between 768 and 1024 (tablet) - keep balanced */
@media (min-width:768px) and (max-width:1023px){
  .visual-line{display:none}
  .layout-grid{grid-template-columns:1fr 280px;gap:20px}
  .sheet{transform:none;padding:22px}
  .title{font-size:28px;margin-left:0}
}

/* Accessibility hints */
.title, .section-title, .side-title{word-break:break-word}
