/* Hero: Swiss Minimal typographic stage */
.hero{position:relative;min-height:88svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:left;padding:0 2rem;overflow:hidden;background:var(--bg)}
.hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(var(--hero-grid-line) 1px,transparent 1px) 0 0/100% 88px}
#particle-container{position:absolute;inset:0;z-index:2;opacity:.4}
#particle-container canvas{display:block;width:100%;height:100%}
#hero-fallback{display:none;position:absolute;inset:0;z-index:0;background:var(--bg)}
#hero-overlay{position:relative;z-index:10;width:100%;max-width:1200px;margin:0 auto;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left;padding:7rem 0 5rem;pointer-events:none;will-change:transform,opacity}#hero-overlay *{pointer-events:auto}
.hero-copy{max-width:640px}
.hero-badge{margin:0 0 1.4rem;padding:0;border:0;color:var(--text-dim);font:600 .68rem 'JetBrains Mono',monospace;letter-spacing:.32em;text-transform:uppercase}
.hero-h1{color:var(--text-bright);font:700 clamp(3rem,9vw,6.8rem)/0.98 'Inter',sans-serif;letter-spacing:-.04em;text-transform:uppercase}
.hero-h1 .highlight{color:var(--text-dim)}
.hero-racing-label{margin-top:1.2rem;padding-top:.9rem;border-top:1px solid var(--border-strong);color:var(--text-dim);font:600 .68rem 'JetBrains Mono',monospace;letter-spacing:.28em;text-transform:uppercase;width:min(340px,100%)}
.hero-description{max-width:420px;margin-top:1.4rem;color:var(--text);font:400 .95rem/1.65 'Inter',sans-serif}
.hero-interactive-sub{margin-top:1rem;color:var(--text-dim);font:400 .82rem 'JetBrains Mono',monospace;min-height:1.5em;opacity:.9}
.hero-stats{display:flex;gap:2.6rem;margin-top:3.2rem;padding-top:1.6rem;border-top:1px solid var(--border);width:100%}

/* 主题文字由装配完成（html.hero-assembled）驱动；hero-anim 仅在 JS 正常时隐藏初始态 */
html.hero-anim .hero-copy>*,html.hero-anim .hero-interactive-sub,html.hero-anim .hero-stats,html.hero-anim .hero-controls,html.hero-anim .scroll-ind{opacity:0;transform:translateY(14px);transition:opacity .8s ease,transform .8s cubic-bezier(.22,1,.36,1)}
html.hero-assembled .hero-copy>*{opacity:1;transform:none}
html.hero-assembled .hero-badge{transition-delay:.1s}
html.hero-assembled .hero-h1{transition-delay:.35s}
html.hero-assembled .hero-racing-label{transition-delay:.6s}
html.hero-assembled .hero-description{transition-delay:.7s}
html.hero-assembled .hero-interactive-sub{opacity:1;transform:none;transition-delay:.75s}
html.hero-assembled .hero-stats{opacity:1;transform:none;transition-delay:.9s}
html.hero-assembled .hero-controls{opacity:1;transform:none;transition-delay:1.1s}
html.hero-assembled .scroll-ind{opacity:1;transform:none;transition-delay:1.3s}
.hero-stat{min-width:0}
.hero-stat-nr{font:600 1.9rem/1 'JetBrains Mono',monospace;color:var(--text-bright);font-variant-numeric:tabular-nums}
.hero-stat-lb{margin-top:.5rem;color:var(--text-dim);font:500 .64rem 'Inter',sans-serif;letter-spacing:.18em;text-transform:uppercase}
.hero-stat-div{width:1px;background:var(--border);align-self:stretch}
.hero-controls{position:absolute;right:2rem;top:2rem;z-index:12;display:flex;gap:.55rem;margin:0}
.hero-control{padding:.65rem 1.1rem;border:1px solid var(--border-strong);border-radius:var(--radius);background:transparent;color:var(--text);font:600 .62rem 'JetBrains Mono',monospace;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:background .18s ease,color .18s ease}
.hero-control:hover,.hero-control:focus-visible{background:var(--border-strong);color:var(--bg);outline:none}
.hero-control span{margin-left:.35rem}
.hero-control-secondary{width:2.5rem;height:2.5rem;padding:0;font-size:.85rem}
.scroll-ind{position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);color:var(--text-dim);font:400 .6rem 'JetBrains Mono',monospace;letter-spacing:.14em;text-transform:uppercase}
@keyframes fadeInUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes scrollBounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(7px)}}
@media(max-width:640px){.hero{padding:0 1.2rem;min-height:80svh}#hero-overlay{padding:5rem 0 4rem}.hero-badge{font-size:.58rem;letter-spacing:.24em}.hero-stats{gap:1.4rem;flex-wrap:wrap}.hero-stat-nr{font-size:1.4rem}.hero-controls{right:1.2rem;top:1.2rem}.hero-description{display:none}.scroll-ind{display:none}}
@media(prefers-reduced-motion:reduce){html.hero-anim .hero-copy>*,html.hero-anim .hero-interactive-sub,html.hero-anim .hero-stats,html.hero-anim .hero-controls,html.hero-anim .scroll-ind{opacity:1;transform:none;transition:none}}
