*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg:#0a0a0a;
  --bg-elevated:#111;
  --bg-card:#161616;
  --bg-hover:#1e1e1e;
  --border:#2a2a2a;
  --border-light:#333;
  --text:#e8e8e8;
  --text-muted:#8a8a8a;
  --text-dim:#666;
  --accent:#3b9eff;
  --accent-hover:#5cb0ff;
  --accent-dim:#1a3a5c;
  --success:#34c759;
  --radius:6px;
  --max-w:1120px;
}
html{scroll-behavior:smooth}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.6;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-hover)}
img{max-width:100%;display:block}

.container{max-width:var(--max-w);margin:0 auto;padding:0 24px}

/* ---- Nav ---- */
.site-header{
  position:sticky;top:0;z-index:100;
  background:var(--bg-elevated);
  border-bottom:1px solid var(--border);
}
.nav-inner{
  display:flex;align-items:center;justify-content:space-between;
  height:56px;
}
.nav-brand{
  font-size:1.125rem;font-weight:700;color:var(--text);
  letter-spacing:-0.02em;
}
.nav-brand:hover{color:var(--accent)}
.nav-links{display:flex;gap:4px;align-items:center}
.nav-links a{
  color:var(--text-muted);font-size:.875rem;font-weight:500;
  padding:8px 14px;border-radius:var(--radius);
  transition:color .15s,background .15s;
}
.nav-links a:hover{color:var(--text);background:var(--bg-hover)}
.nav-links a.active{color:var(--text);background:var(--bg-card);border:1px solid var(--border)}
.nav-cta{
  margin-left:8px;
  padding:8px 16px!important;
  background:var(--accent)!important;
  color:#fff!important;
  border:1px solid var(--accent)!important;
}
.nav-cta:hover{background:var(--accent-hover)!important;border-color:var(--accent-hover)!important;color:#fff!important}

/* ---- Buttons ---- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:inherit;font-weight:600;font-size:.9375rem;
  border:none;cursor:pointer;border-radius:var(--radius);
  padding:12px 24px;transition:background .15s,color .15s;
}
.btn--primary{background:var(--accent);color:#fff;border:1px solid var(--accent)}
.btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.btn--outline{background:transparent;color:var(--text);border:1px solid var(--border-light)}
.btn--outline:hover{background:var(--bg-hover);border-color:var(--text-muted)}
.btn--lg{padding:14px 32px;font-size:1rem}

/* ---- Page header ---- */
.page-hero{
  padding:48px 0 40px;
  border-bottom:1px solid var(--border);
  background:var(--bg-elevated);
}
.page-hero h1{
  font-size:clamp(1.75rem,4vw,2.5rem);
  font-weight:700;letter-spacing:-0.03em;
  margin-bottom:12px;
}
.page-hero p{
  color:var(--text-muted);font-size:1.0625rem;
  max-width:640px;
}
.breadcrumb{
  font-size:.8125rem;color:var(--text-dim);margin-bottom:16px;
}
.breadcrumb a{color:var(--text-muted)}
.breadcrumb a:hover{color:var(--accent)}
.breadcrumb span{margin:0 6px}

/* ---- Sections ---- */
.section{padding:56px 0}
.section--alt{background:var(--bg-elevated);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.section-title{
  font-size:1.5rem;font-weight:700;letter-spacing:-0.02em;
  margin-bottom:8px;
}
.section-sub{color:var(--text-muted);font-size:.9375rem;margin-bottom:32px}

/* ---- Cards ---- */
.card{
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:24px;
}
.card:hover{border-color:var(--border-light)}
.card h3{font-size:1rem;font-weight:600;margin-bottom:8px}
.card p{font-size:.875rem;color:var(--text-muted);line-height:1.65}
.card-icon{
  width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;
  background:var(--accent-dim);color:var(--accent);
  border-radius:var(--radius);font-size:1.25rem;
  margin-bottom:16px;
}

/* ---- Grids ---- */
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}

/* ---- Stats ---- */
.stats-bar{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:1px;background:var(--border);
  border:1px solid var(--border);border-radius:var(--radius);
  overflow:hidden;
}
.stat-item{
  background:var(--bg-card);padding:24px 20px;text-align:center;
}
.stat-num{font-size:1.75rem;font-weight:700;color:var(--accent);margin-bottom:4px}
.stat-label{font-size:.8125rem;color:var(--text-muted)}

/* ---- Table ---- */
.data-table{width:100%;border-collapse:collapse;font-size:.875rem}
.data-table th,.data-table td{
  padding:12px 16px;text-align:left;
  border:1px solid var(--border);
}
.data-table th{background:var(--bg-card);font-weight:600;color:var(--text)}
.data-table td{color:var(--text-muted);background:var(--bg)}
.data-table tr:hover td{background:var(--bg-hover)}

/* ---- Steps ---- */
.step-list{counter-reset:step}
.step-item{
  display:flex;gap:20px;padding:24px 0;
  border-bottom:1px solid var(--border);
}
.step-item:last-child{border-bottom:none}
.step-item::before{
  counter-increment:step;content:counter(step);
  flex-shrink:0;width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  background:var(--accent);color:#fff;
  font-weight:700;font-size:.875rem;border-radius:var(--radius);
}
.step-body h3{font-size:1rem;font-weight:600;margin-bottom:6px}
.step-body p{font-size:.875rem;color:var(--text-muted);line-height:1.65}

/* ---- FAQ ---- */
.faq-list{display:flex;flex-direction:column;gap:8px}
.faq-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);overflow:hidden}
.faq-q{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 20px;cursor:pointer;font-weight:600;font-size:.9375rem;
  user-select:none;
}
.faq-q:hover{background:var(--bg-hover)}
.faq-q::after{
  content:'';width:8px;height:8px;
  border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);
  transform:rotate(45deg);transition:transform .2s;flex-shrink:0;margin-left:12px;
}
.faq-item.open .faq-q::after{transform:rotate(-135deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease}
.faq-item.open .faq-a{max-height:300px}
.faq-a p{padding:0 20px 16px;font-size:.875rem;color:var(--text-muted);line-height:1.65}

/* ---- Tags ---- */
.tag{
  display:inline-block;font-size:.75rem;font-weight:500;
  padding:4px 10px;border-radius:var(--radius);
  background:var(--bg-hover);color:var(--text-muted);
  border:1px solid var(--border);
}
.tag--accent{background:var(--accent-dim);color:var(--accent);border-color:transparent}

/* ---- List ---- */
.check-list{list-style:none;display:flex;flex-direction:column;gap:10px}
.check-list li{
  font-size:.875rem;color:var(--text-muted);
  padding-left:22px;position:relative;
}
.check-list li::before{
  content:'✓';position:absolute;left:0;color:var(--success);font-weight:700;
}

/* ---- CTA block ---- */
.cta-block{
  text-align:center;padding:48px 32px;
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);
}
.cta-block h2{font-size:1.375rem;font-weight:700;margin-bottom:8px}
.cta-block p{color:var(--text-muted);margin-bottom:24px;font-size:.9375rem}

/* ---- Footer ---- */
.site-footer{
  border-top:1px solid var(--border);
  background:var(--bg-elevated);
  padding:40px 0 32px;margin-top:auto;
}
.footer-grid{
  display:grid;grid-template-columns:2fr 1fr 1fr 1fr;
  gap:32px;margin-bottom:32px;
}
.footer-brand{font-size:1rem;font-weight:700;margin-bottom:8px}
.footer-desc{font-size:.8125rem;color:var(--text-muted);line-height:1.65;max-width:280px}
.footer-col h4{font-size:.8125rem;font-weight:600;margin-bottom:12px;color:var(--text)}
.footer-col a{
  display:block;font-size:.8125rem;color:var(--text-muted);
  padding:4px 0;
}
.footer-col a:hover{color:var(--accent)}
.footer-bottom{
  padding-top:24px;border-top:1px solid var(--border);
  display:flex;justify-content:space-between;align-items:center;
  font-size:.75rem;color:var(--text-dim);
}

/* ---- Home hero ---- */
.home-hero{padding:64px 0 56px}
.home-hero-inner{
  display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;
}
.home-hero h1{
  font-size:clamp(2rem,5vw,3rem);font-weight:700;
  letter-spacing:-0.035em;line-height:1.15;margin-bottom:16px;
}
.home-hero h1 em{font-style:normal;color:var(--accent)}
.home-hero .lead{color:var(--text-muted);font-size:1.0625rem;margin-bottom:28px;line-height:1.7}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.hero-panel{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);padding:28px;
}
.hero-panel h3{font-size:.9375rem;font-weight:600;margin-bottom:16px}
.hero-panel .check-list{margin-bottom:20px}
.parse-box{
  background:var(--bg);border:1px solid var(--border);
  border-radius:var(--radius);padding:16px;
}
.parse-box p{font-size:.8125rem;color:var(--text-dim);margin-bottom:12px}

/* ---- Changelog ---- */
.changelog-item{
  padding:16px 0;border-bottom:1px solid var(--border);
  display:flex;gap:16px;align-items:flex-start;
}
.changelog-date{
  flex-shrink:0;font-size:.75rem;color:var(--text-dim);
  font-family:monospace;padding-top:2px;min-width:80px;
}
.changelog-body h4{font-size:.9375rem;font-weight:600;margin-bottom:4px}
.changelog-body p{font-size:.8125rem;color:var(--text-muted)}

/* ---- Responsive ---- */
@media(max-width:900px){
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .home-hero-inner{grid-template-columns:1fr;gap:32px}
  .stats-bar{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .container{padding:0 16px}
  .nav-links a:not(.nav-cta){padding:6px 10px;font-size:.8125rem}
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column;gap:8px;text-align:center}
  .section{padding:40px 0}
  .home-hero{padding:40px 0 32px}
  .stats-bar{grid-template-columns:1fr 1fr}
}
