/* ============ SpaceX 风 · 全屏电影感 · Three.js 驱动 ============ */
:root{
  --ink:#eaf2ff; --dim:#9fb0d0; --faint:#6b7a99;
  --a1:#5b8cff; --a2:#22d3ee; --a3:#a98bff;
  --grad:linear-gradient(92deg,#7cc7ff,#22d3ee,#a98bff);
  --ease:cubic-bezier(.22,.61,.36,1);
  --maxw:1200px; --nav-h:74px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
html{scroll-behavior:auto}
body{
  font-family:"PingFang SC","Microsoft YaHei","Helvetica Neue",system-ui,-apple-system,"Segoe UI",sans-serif;
  background:#04060e;color:var(--ink);overflow-x:hidden;-webkit-font-smoothing:antialiased;letter-spacing:.2px;
}
/* 深空底色 + 极光辉光 */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(60% 50% at 18% 12%,rgba(43,109,255,.16),transparent 60%),
    radial-gradient(55% 50% at 84% 22%,rgba(24,224,230,.12),transparent 60%),
    radial-gradient(70% 60% at 50% 108%,rgba(155,107,255,.16),transparent 60%),
    linear-gradient(180deg,#060a16 0%,#04060e 55%,#02030a 100%)}
.grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---- Three 画布 + 暗角 ---- */
#scene{position:fixed;inset:0;width:100vw;height:100vh;z-index:0;display:block}
#vignette{position:fixed;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(125% 95% at 50% 44%,transparent 30%,rgba(4,6,14,.5) 70%,rgba(2,3,10,.92) 100%)}

/* ---- 滚动占位（提供滚动长度）---- */
#scroller{position:relative;z-index:0;width:1px;height:800vh}  /* = 章节数 × 100vh */

/* ---- 全屏章节叠层 ---- */
#stage{position:fixed;inset:0;z-index:2;pointer-events:none}
.scene-sec{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  padding:calc(var(--nav-h) + 30px) 7vw 90px;opacity:0;visibility:hidden;will-change:opacity,transform}
.scene-sec .inner{position:relative;width:100%;max-width:var(--maxw);pointer-events:auto}
/* 文字背后的暗罩面板——让前景在粒子上清晰可读 */
.scene-sec .inner::before{content:"";position:absolute;z-index:-1;inset:-10% -12%;
  background:radial-gradient(75% 80% at 28% 50%,rgba(4,7,16,.94),rgba(4,7,16,.62) 50%,rgba(4,7,16,.18) 74%,transparent 86%);
  filter:blur(10px)}
.scene-sec .inner.center{text-align:center;margin:0 auto;max-width:980px}
.scene-sec .inner.center::before{background:radial-gradient(70% 76% at 50% 50%,rgba(4,7,16,.94),rgba(4,7,16,.6) 52%,rgba(4,7,16,.16) 76%,transparent 88%)}

.eyebrow{font-size:12px;letter-spacing:5px;font-weight:700;color:#a9ecff;text-transform:uppercase;margin-bottom:24px;text-shadow:0 1px 14px rgba(24,224,230,.5)}
.scene-sec h1{font-size:clamp(44px,8.4vw,118px);font-weight:900;line-height:1;letter-spacing:-3px;color:#fff;text-shadow:0 4px 30px rgba(2,4,12,.95),0 2px 6px rgba(0,0,0,.9),0 0 1px rgba(0,0,0,.8)}
.scene-sec h2{font-size:clamp(34px,6.2vw,82px);font-weight:850;line-height:1.06;letter-spacing:-2px;color:#fff;text-shadow:0 4px 30px rgba(2,4,12,.95),0 2px 6px rgba(0,0,0,.9),0 0 1px rgba(0,0,0,.8)}
/* 标题强调字：明亮蓝，与背景同色系但更亮，无描边无辉光 */
.scene-sec h1 .grad,.scene-sec h2 .grad,.hero-sub .grad{
  background:linear-gradient(92deg,#9fd4ff,#5aa6ff,#86c2ff);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  background-size:200% auto;animation:grad 7s linear infinite;
  filter:none;text-shadow:none;
}
@keyframes grad{to{background-position:200% center}}
.lead{margin-top:26px;max-width:680px;color:#d4e0f5;font-size:clamp(15px,1.9vw,20px);line-height:1.65;text-shadow:0 2px 16px rgba(2,4,12,.95),0 1px 3px rgba(0,0,0,.85)}
.center .lead{margin-left:auto;margin-right:auto}
.cta-h{font-size:clamp(48px,9vw,128px)}

.hero-logo{height:76px;width:auto;margin:0 auto 26px;display:block;filter:drop-shadow(0 12px 36px rgba(34,211,238,.45))}
/* 首页：BZAI 粒子是主标题，文字落到下方 */
.scene-sec.hero0{align-items:flex-end;padding-bottom:13vh}
.scene-sec.hero0 .inner.bottom::before{inset:-14% -14% -20%;background:radial-gradient(72% 120% at 50% 100%,rgba(4,7,16,.92),rgba(4,7,16,.5) 55%,transparent 82%)}
.hero-sub{font-size:clamp(28px,4.6vw,58px);font-weight:850;line-height:1.08;letter-spacing:-1px;color:#fff;text-shadow:0 4px 30px rgba(2,4,12,.95),0 2px 6px rgba(0,0,0,.9)}

/* tags */
.tags{display:flex;gap:10px;flex-wrap:wrap;margin-top:34px}
.center .tags{justify-content:center}
.tags span{padding:9px 20px;border-radius:999px;font-size:14px;color:#e3edff;border:1px solid rgba(140,180,255,.24);background:rgba(8,14,30,.55);backdrop-filter:blur(8px)}
.tags.big span{font-size:15.5px;padding:11px 24px}

/* key-values */
.kv{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:42px}
.kv.four{grid-template-columns:repeat(4,1fr)}
.center .kv{max-width:920px;margin-left:auto;margin-right:auto}
.kv>div{padding:22px;border-radius:16px;border:1px solid rgba(140,180,255,.16);background:rgba(8,14,30,.5);backdrop-filter:blur(10px);text-align:left}
.kv b{display:block;font-size:22px;font-weight:850;margin-bottom:6px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.kv span{color:var(--dim);font-size:13.5px}

.actions{margin-top:38px}

.foot{margin-top:46px;color:var(--faint);font-size:13px}

.scroll-cue{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:9px;font-size:11px;letter-spacing:3px;color:var(--faint)}
.scroll-cue span{width:24px;height:38px;border:2px solid rgba(255,255,255,.22);border-radius:14px;position:relative}
.scroll-cue span::after{content:"";position:absolute;top:7px;left:50%;width:4px;height:8px;border-radius:2px;background:#9fe9ff;transform:translateX(-50%);animation:cue 1.7s infinite}
@keyframes cue{0%{opacity:0;top:7px}50%{opacity:1}100%{opacity:0;top:20px}}

/* ---- 顶栏 ---- */
.nav{position:fixed;top:0;left:0;right:0;height:var(--nav-h);z-index:20;display:flex;align-items:center;gap:24px;padding:0 6vw;
  transition:background .5s var(--ease),backdrop-filter .5s}
.nav.solid{background:rgba(3,5,12,.6);backdrop-filter:blur(14px) saturate(1.2);border-bottom:1px solid rgba(255,255,255,.07)}
.brand{display:flex;align-items:center;cursor:pointer}
.logo-text{font-weight:900;font-size:24px;letter-spacing:3px;color:#fff;white-space:nowrap}
.nav-links{display:flex;gap:28px;margin-left:auto;font-size:14px}
.nav-links a{color:var(--dim);cursor:pointer;transition:.25s}
.nav-links a:hover{color:#fff}
.nav .btn{margin-left:8px}

/* 按钮 */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 26px;border-radius:12px;font-weight:700;font-size:14px;cursor:pointer;
  color:#fff;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);transition:transform .3s var(--ease),background .3s,box-shadow .3s}
.btn:hover{transform:translateY(-2px);background:rgba(255,255,255,.12);border-color:#fff}
.btn.primary{border:none;color:#021018;background:var(--grad);box-shadow:0 16px 40px rgba(34,211,238,.3);padding:16px 34px;font-size:15px}
.btn.primary:hover{box-shadow:0 22px 54px rgba(169,139,255,.45)}

/* 手势 HUD（左下角：仅骨架，无边框，淡显），点击可开/关 */
.ghud{position:fixed;left:16px;bottom:16px;z-index:30;display:none;flex-direction:column;gap:4px;cursor:pointer;opacity:.6}
.ghud.on{display:flex}
.ghud #gesture-video{display:none}
.ghud #gesture-skel{width:150px;height:120px;background:transparent}
.gstatus{font-size:11px;letter-spacing:1px;color:var(--faint);min-height:13px}

/* 翻页：底部小圆（水滴弹性） */
.pinch-dot{position:fixed;left:50%;bottom:46px;margin-left:-11px;z-index:31;display:none;width:22px;height:22px;border-radius:50%;
  border:1.5px solid rgba(140,180,255,.5);background:rgba(4,7,16,.55);backdrop-filter:blur(6px);
  transition:transform .2s cubic-bezier(.34,1.7,.5,1)}    /* 弹性跟随，拉扯/回弹感 */
.pinch-dot.on{display:block}
.pinch-dot.armed{border-color:#22d3ee;box-shadow:0 0 12px rgba(34,211,238,.45)}
.pinch-dot i{position:absolute;inset:2.5px;border-radius:50%;background:var(--a2);transform:scale(0);box-shadow:0 0 10px rgba(34,211,238,.6)}

/* 右侧进度点 */
.dots{position:fixed;right:26px;top:50%;transform:translateY(-50%);z-index:20;display:flex;flex-direction:column;gap:14px}
.dots i{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.25);cursor:pointer;transition:.3s var(--ease)}
.dots i.on{background:var(--a2);box-shadow:0 0 12px var(--a2);transform:scale(1.35)}

/* 载入遮罩 */
#loader{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#03050c;transition:opacity .8s var(--ease),visibility .8s}
.loader-mark{font-weight:900;font-size:64px;letter-spacing:8px;color:#fff;animation:pulse 1.6s ease-in-out infinite}
#loader span{font-size:13px;letter-spacing:6px;color:var(--faint)}
@keyframes pulse{0%,100%{opacity:.5;transform:scale(.96)}50%{opacity:1;transform:scale(1.04)}}
body.ready #loader{opacity:0;visibility:hidden}

@media(max-width:820px){
  :root{--nav-h:60px}
  .nav-links{display:none}
  .nav{padding:0 5vw;gap:12px}
  .nav .btn{margin-left:auto}
  .logo-text{font-size:20px;letter-spacing:2px}
  .btn.primary{padding:12px 22px;font-size:14px;box-shadow:0 10px 26px rgba(34,211,238,.28)}
  .dots{right:12px;gap:11px}
  .dots i{width:7px;height:7px}
  .scene-sec{padding:calc(var(--nav-h) + 14px) 6vw 64px}
  .scene-sec h1{font-size:clamp(34px,11vw,60px);letter-spacing:-1.5px}
  .scene-sec h2{font-size:clamp(26px,8.2vw,46px);letter-spacing:-1px}
  .cta-h{font-size:clamp(38px,12vw,64px)}
  .hero-sub{font-size:clamp(24px,7.2vw,40px)}
  .eyebrow{font-size:11px;letter-spacing:3px;margin-bottom:16px}
  .lead{font-size:15px;margin-top:18px;line-height:1.6}
  .kv,.kv.four{grid-template-columns:1fr 1fr;gap:12px;margin-top:26px}
  .kv>div{padding:15px;border-radius:13px}
  .kv b{font-size:18px}
  .kv span{font-size:12.5px}
  .tags{gap:8px;margin-top:22px}
  .tags span{padding:7px 14px;font-size:13px}
  .tags.big span{font-size:13.5px;padding:9px 16px}
  .scene-sec.hero0{padding-bottom:11vh}
  .scroll-cue{bottom:20px}
}
@media(max-width:520px){
  .kv,.kv.four{grid-template-columns:1fr}
  .scene-sec h1{font-size:clamp(30px,9.6vw,46px)}
  .scene-sec h2{font-size:clamp(23px,7.6vw,38px)}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important}}
