:root{
  --bg:#f4f6f2;
  --ink:#1e221c;
  --muted:#5c6654;
  --line:#d4ddd0;
  --soft:#fafbf8;
  --brand:#789262;
  --brand-deep:#5f7a4e;
  --header:#1a1a1a;
  --accent:#8fa87a;
  --max:1080px;
  --spine:#789262;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{
  margin:0;
  font-family:"Source Han Sans SC","Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.82;
}
a{color:var(--brand-deep)}
img{max-width:100%;height:auto;display:block}
.container{width:min(100% - 2rem,var(--max));margin-inline:auto}

/* header */
.tl-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.94);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(12px);
}
[data-template="timeline"] .tl-header{background:rgba(20,24,22,.96);border-bottom-color:rgba(255,255,255,.08)}
.tl-header-inner{display:flex;align-items:center;justify-content:space-between;min-height:64px;gap:1rem}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--ink)}
[data-template="timeline"] .brand{color:#eef2ea}
.brand img{width:42px;height:42px;border-radius:10px;object-fit:cover;border:2px solid rgba(255,255,255,.15)}
.brand-text{display:flex;flex-direction:column;line-height:1.15}
.brand-text b{font-size:1.04rem;color:inherit}
[data-template="timeline"] .brand-text b{color:#fff}
.brand-text span{font-size:.74rem;color:var(--muted)}
[data-template="timeline"] .brand-text span{color:var(--accent);opacity:.85}
.tl-nav{display:flex;align-items:center;gap:.05rem;flex-wrap:wrap}
.tl-nav a{
  text-decoration:none;color:var(--muted);
  padding:.42rem .65rem;border-radius:8px;font-size:.88rem;
}
[data-template="timeline"] .tl-nav a{color:#b8c4b8}
.tl-nav a:hover,.tl-nav a.active{background:rgba(0,0,0,.06);color:var(--ink)}
[data-template="timeline"] .tl-nav a:hover,[data-template="timeline"] .tl-nav a.active{background:rgba(255,255,255,.1);color:#fff}
.tl-nav a.btn,[data-template="timeline"] .tl-nav a.btn{
  background:var(--brand);color:#fff!important;font-weight:700;border-radius:999px;margin-left:.1rem;
}
.menu-toggle{
  display:none;width:42px;height:42px;border-radius:10px;
  border:1px solid var(--line);background:transparent;cursor:pointer;
  flex-direction:column;align-items:center;justify-content:center;gap:5px;
}
[data-template="timeline"] .menu-toggle{border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.06)}
.menu-toggle span{width:17px;height:2px;background:var(--ink);display:block}
[data-template="timeline"] .menu-toggle span{background:#eef2ea}

/* intro */
.tl-intro{
  background:linear-gradient(165deg,var(--header) 0%,color-mix(in srgb,var(--header) 80%,var(--brand)) 100%);
  color:#eef2ea;padding:clamp(2rem,5vw,3.5rem) 0 0;
}
.tl-intro-inner{text-align:center;padding-bottom:clamp(1.5rem,3vw,2.5rem)}
.tl-eyebrow{
  display:inline-block;margin:0 0 .75rem;padding:.3rem .8rem;border-radius:999px;
  background:rgba(255,255,255,.1);color:var(--accent);font-size:.78rem;font-weight:700;letter-spacing:.05em;
}
.tl-intro h1{
  margin:0 auto .85rem;max-width:30ch;
  font-family:"Songti SC","Noto Serif SC",serif;
  font-size:clamp(1.75rem,4vw,2.6rem);line-height:1.22;color:#fff;
}
.tl-lead{margin:0 auto 1.2rem;max-width:52ch;color:rgba(238,242,234,.82);font-size:1.02rem}
.tl-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin-bottom:1.2rem}
.tl-stat{
  min-width:8.5rem;padding:.65rem 1rem;border-radius:12px;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);
}
.tl-stat strong{display:block;color:#fff;font-size:.95rem}
.tl-stat span{font-size:.78rem;color:rgba(238,242,234,.7)}
.tl-cta-row{display:flex;flex-wrap:wrap;gap:.65rem;justify-content:center;margin-bottom:1rem}
.tl-cta{
  display:inline-block;padding:.62rem 1.2rem;border-radius:999px;text-decoration:none;font-weight:700;font-size:.92rem;
}
.tl-cta-primary{background:var(--brand);color:#fff}
.tl-cta-ghost{border:1px solid rgba(255,255,255,.28);color:#fff;background:transparent}
.tl-intro-visual img{width:100%;max-height:360px;object-fit:cover;border-top:3px solid var(--brand)}

/* ads */
.tl-ads{padding:1.25rem 0 .5rem}
.ads-wrap{margin:0;padding:.75rem 1rem 1rem;border:1px solid var(--line);border-radius:14px;background:var(--soft)}
.ads-head,.tl-ads .ads-head{margin:0;padding:0}
.applist-title{text-align:center;color:var(--muted);font-size:.95rem;margin:0 0 .55rem}
#applist{width:100%}
#ads{display:flex!important;justify-content:center;align-items:flex-start;flex-wrap:wrap;gap:12px;margin:0;padding:0;background:transparent}
#ads>div{display:flex!important;flex-direction:column;align-items:center;width:72px!important;min-width:72px;box-sizing:border-box;flex:0 0 72px}
#ads figure{margin:0;padding:0;width:72px;display:flex;flex-direction:column;align-items:center}
#ads a{display:block;width:65px;height:65px;border-radius:16px;overflow:hidden;text-decoration:none;flex-shrink:0}
#ads img{width:65px!important;height:65px!important;max-width:65px!important;max-height:65px!important;object-fit:cover!important;border-radius:16px;display:block!important;border:0;background:#f3f3f3}
#ads figcaption,#ads .caption{display:block;width:72px;margin-top:6px;font-size:11px!important;line-height:1.2;color:var(--muted);text-align:center;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis}

/* spine */
.tl-spine{
  position:relative;padding:clamp(2rem,4vw,3.5rem) 0 clamp(3rem,6vw,4.5rem);
}
.tl-spine>.container{position:relative}
.tl-spine>.container::before{
  content:"";position:absolute;left:50%;top:0;bottom:0;width:3px;
  transform:translateX(-50%);
  background:linear-gradient(180deg,var(--brand),color-mix(in srgb,var(--brand) 40%,transparent));
  border-radius:999px;
}
.tl-item{
  position:relative;display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,3vw,2rem);
  align-items:center;margin-bottom:clamp(2.5rem,5vw,3.5rem);
  padding-top:.5rem;
}
.tl-dot{
  position:absolute;left:50%;top:1.2rem;width:14px;height:14px;
  transform:translateX(-50%);border-radius:50%;
  background:var(--brand);border:3px solid var(--bg);box-shadow:0 0 0 2px var(--brand);z-index:2;
}
.tl-media figure,.tl-figure{margin:0}
.tl-media img,.tl-figure img{
  border-radius:14px;border:1px solid var(--line);
  box-shadow:0 12px 32px rgba(0,0,0,.08);
}
.tl-media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}
.tl-media-grid figure,.vip-row,.thumb-row{display:contents}
.vip-row figure,.thumb-row figure{margin:0}
.tl-media figcaption,.tl-figure figcaption{font-size:.82rem;color:var(--muted);margin-top:.45rem;text-align:center}
.tl-body h2{
  margin:0 0 .75rem;font-size:clamp(1.25rem,2.5vw,1.55rem);
  font-family:"Songti SC","Noto Serif SC",serif;color:var(--ink);
}
.tl-body h3{margin:1rem 0 .4rem;font-size:1.05rem;color:var(--brand-deep)}
.tl-body p{margin:0 0 .85rem;color:var(--ink)}
.tl-feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;margin-top:.5rem}
.tl-feature-grid .feature-card,.tl-feature-grid article{
  padding:.85rem;border-radius:12px;background:var(--soft);border:1px solid var(--line);
}
.tl-feature-grid h3{margin:0 0 .35rem;font-size:.95rem}
.tl-feature-grid p{margin:0;font-size:.88rem;color:var(--muted)}
.tl-faq{margin-top:.75rem}
.tl-faq details{
  border:1px solid var(--line);border-radius:10px;padding:.55rem .85rem;margin-bottom:.5rem;background:var(--soft);
}
.tl-faq summary{cursor:pointer;font-weight:700;color:var(--brand-deep)}
.tl-faq p{margin:.45rem 0 0;font-size:.92rem}
.outlinks{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0 0}
.outlinks a{
  display:inline-block;padding:.38rem .75rem;border-radius:999px;
  background:var(--soft);border:1px solid var(--line);text-decoration:none;font-size:.88rem;
}
.outlinks a:hover{background:color-mix(in srgb,var(--brand) 12%,var(--soft));border-color:var(--brand)}

/* subpages */
.page-main{padding:1.5rem 0 3rem}
.page-hero{margin:1.5rem 0 1rem;text-align:center}
.page-hero h1{margin:0 0 .5rem;font-family:"Songti SC","Noto Serif SC",serif;font-size:clamp(1.5rem,3vw,2rem)}
.page-hero p{margin:0;color:var(--muted);max-width:42ch;margin-inline:auto}
.simple-card{
  background:var(--soft);border:1px solid var(--line);border-radius:16px;
  padding:clamp(1.2rem,3vw,1.8rem);max-width:720px;margin:0 auto;
}
.simple-card h2{margin:1.2rem 0 .5rem;font-size:1.15rem;color:var(--brand-deep)}
.simple-card h2:first-child{margin-top:0}
.simple-card p{margin:0 0 .85rem}

/* error pages */
.error-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;background:var(--bg)}
.error-box{
  text-align:center;max-width:420px;padding:2rem;
  background:var(--soft);border:1px solid var(--line);border-radius:18px;
}
.error-box h1{margin:0 0 .5rem;font-size:3rem;color:var(--brand)}
.error-box p{margin:0 0 1rem;color:var(--muted)}
.error-box .tl-cta-primary,.error-box .cta-primary{
  display:inline-block;padding:.6rem 1.2rem;border-radius:999px;
  background:var(--brand);color:#fff;text-decoration:none;font-weight:700;
}

/* footer */
.tl-footer{
  background:var(--header);color:rgba(238,242,234,.75);
  padding:2rem 0 1.5rem;border-top:3px solid var(--brand);
}
.footer-grid{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.footer-grid a{display:inline-block;color:rgba(238,242,234,.8);text-decoration:none;margin-right:.85rem;font-size:.88rem}
.footer-grid a:hover{color:#fff}
.footer-grid strong{color:#fff}
.copyright{margin:0;font-size:.82rem;color:rgba(238,242,234,.5)}

@media(max-width:860px){
  .menu-toggle{display:flex}
  .tl-nav{
    display:none;position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:stretch;padding:.75rem 1rem 1rem;
    background:var(--header);border-bottom:1px solid rgba(255,255,255,.1);
  }
  .tl-nav.open{display:flex}
  .tl-header{position:relative}
  .tl-header-inner{position:relative}
  .tl-spine>.container::before{left:18px;transform:none}
  .tl-item{grid-template-columns:1fr;padding-left:2.5rem}
  .tl-dot{left:18px;transform:translateX(-50%)}
  .tl-item--flip .tl-media{order:0}
  .tl-item--flip .tl-body{order:0}
}
