*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-sans-en);background:var(--paper);color:var(--ink);overflow-x:hidden}
body.zh{font-family:var(--font-sans-zh);letter-spacing:.02em}
section{padding:96px 60px}
.section-tag{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.tag-line{width:30px;height:1px;background:var(--red);flex-shrink:0}
.tag-text{font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
body.zh .tag-text{text-transform:none;letter-spacing:.08em;font-size:11px}
.section-h2{font-family:var(--font-serif-en);font-size:clamp(34px,3.8vw,52px);font-weight:500;line-height:1.1}
body.zh .section-h2{font-family:var(--font-serif-zh);font-size:clamp(28px,3.2vw,44px);line-height:1.3;letter-spacing:.03em}
.btn-primary{display:inline-block;background:var(--red);color:var(--white);padding:15px 30px;border-radius:var(--radius);font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;transition:background var(--transition),transform var(--transition);white-space:nowrap}
.btn-primary:hover{background:#a93226;transform:translateY(-1px)}
.btn-outline{display:inline-block;border:1px solid var(--ink);color:var(--ink);padding:15px 30px;border-radius:var(--radius);font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;transition:all var(--transition);white-space:nowrap}
.btn-outline:hover{background:var(--ink);color:var(--white)}
.btn-sm{font-size:11px;padding:11px 22px}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}
