/* =========================================================
   AURA Home — 智能家居落地页
   设计语言：深色科技 + 鎏金强调（参照手表2视觉体系）
   约束：纯静态、相对路径、无外部 heavy 依赖、首屏零图片请求
   ========================================================= */
:root {
  --ink-0: #06090d;         /* 更深的墨蓝黑：像夜晚的家 */
  --ink-1: #0a0e13;
  --ink-2: #10161c;
  --ink-3: #18222a;
  --line: #20303a;
  --line-2: #324754;
  --gold-1: #e8b27a;        /* 暖琥珀：作为“通电/在线”信号色 */
  --gold-2: #f6d9ad;        /* 高光 */
  --gold-3: #b07f4e;        /* 暗金 */
  --cyan:  #76d0c4;         /* 联动/数据流 */
  --ivory: #f1e9d8;         /* 暖白 */
  --mute:  #aebcc0;         /* 辅助小字 */
  --mute-2:#7e8f95;
  --danger:#d9695b;
  --signal: #8fe6c8;        /* 节点在线绿青 */
  --text-glow: 0 1px 2px rgba(0,0,0,0.85);
  --ease: cubic-bezier(0.32,0.72,0.24,1);
  --dur: 480ms;
  --font-en: -apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Helvetica Neue",Arial,"PingFang SC","Microsoft YaHei",sans-serif;
  --font-cn: -apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  /* 真实纹理：内联 SVG 颗粒（film grain），零网络请求，约 0.8KB */
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  /* 纸张/纤维纹理（更粗的噪点），用于卡片表面 */
  --fiber: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.04 0.08' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)' opacity='0.4'/%3E%3C/svg%3E");
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; scroll-padding-top:calc(64px + env(safe-area-inset-top,0px)); }
body{
  background:
    radial-gradient(1100px 760px at 18% -8%, rgba(127,208,196,0.06), transparent 58%),
    radial-gradient(1000px 720px at 88% 14%, rgba(184,146,92,0.07), transparent 56%),
    var(--ink-0);
  color:var(--ivory);
  font-family:var(--font-cn);
  font-size:15px; line-height:1.6;
  overflow-x:hidden; min-height:100vh; min-height:100svh;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  -webkit-tap-highlight-color:transparent;
  -webkit-touch-callout:none;
}
/* 全局真实颗粒层：固定、低透明、overlay 混合，消除塑料平滑感（零网络请求） */
body::before{
  content:""; position:fixed; inset:0; z-index:1; pointer-events:none;
  background-image:var(--grain); background-size:160px 160px;
  opacity:.045; mix-blend-mode:overlay;
}
img{ max-width:100%; display:block; }
button{ font-family:inherit; border:0; background:transparent; color:inherit; cursor:pointer; touch-action:manipulation; }
input,textarea{ font-family:inherit; touch-action:manipulation; }
a{ -webkit-tap-highlight-color:transparent; }

/* 小字统一高对比 */
.mute,.section-desc,.section-sub,.footer-text,.modal-sub,.modal-note,
.timeline-desc,.feature-desc,.faq-a,.calc-label,.calc-metric i,
.suspense-sub,.hero-eyebrow,.section-eyebrow,.feature-ico,
.scene-cap,.faq-q,.chip,.seg-btn{
  color:var(--mute);
}

/* =========================================================
   Loader（视觉提示，0 秒即隐藏）
   ========================================================= */
.loader{
  position:fixed; inset:0; z-index:99999;
  display:flex; align-items:center; justify-content:center;
  background:var(--ink-0);
  transition:opacity .5s ease, visibility .5s ease;
}
.loader.hidden{ opacity:0; visibility:hidden; pointer-events:none; }
.loader-inner{ display:flex; flex-direction:column; align-items:center; gap:22px; }
.loader-brand{
  font-family:var(--font-en); letter-spacing:0.5em; font-size:20px;
  color:var(--gold-2); text-transform:uppercase; font-weight:300;
  text-shadow:0 1px 2px rgba(0,0,0,0.8);
}
.loader-track{ width:min(70vw,260px); height:4px; border-radius:999px; background:rgba(255,255,255,0.08); overflow:hidden; box-shadow:inset 0 1px 1px rgba(0,0,0,0.4); }
.loader-fill{ height:100%; width:0%; background:linear-gradient(90deg,var(--gold-3),var(--gold-1)); transition:width .1s linear; }

/* =========================================================
   Header
   ========================================================= */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:calc(14px + env(safe-area-inset-top)) 20px; display:flex; align-items:center; justify-content:space-between;
  background:linear-gradient(to bottom, rgba(7,10,12,0.85), rgba(7,10,12,0));
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}
.brand{ display:flex; align-items:center; gap:10px; text-decoration:none; }
.brand-logo{
  width:32px; height:32px; border:1px solid var(--line-2); border-radius:7px;
  display:grid; place-items:center; color:var(--gold-1);
  background:linear-gradient(145deg,var(--ink-2),var(--ink-1));
}
.brand-name{ font-family:var(--font-en); color:var(--gold-1); font-size:14px; letter-spacing:.22em; font-weight:300; }
.lang-switch{ display:inline-flex; border:1px solid var(--line-2); border-radius:999px; padding:3px; background:rgba(17,23,27,0.7); overflow:hidden; }
.lang-btn{ padding:6px 13px; font-size:12px; letter-spacing:.12em; color:var(--mute); border-radius:999px; transition:color var(--dur) var(--ease),background var(--dur) var(--ease); font-family:var(--font-en); }
.lang-btn.active{ background:linear-gradient(180deg,var(--gold-1),var(--gold-3)); color:#1a1208; box-shadow:inset 0 1px 0 rgba(255,255,255,0.25); }

/* =========================================================
   Hero
   ========================================================= */
.hero{
  position:relative; min-height:100svh; padding:calc(96px + env(safe-area-inset-top)) 20px calc(64px + env(safe-area-inset-bottom));
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; overflow:hidden; z-index:3;
}
.hero-bg{
  position:absolute; inset:0; z-index:-2;
  background:
    radial-gradient(80% 60% at 50% 12%, rgba(244,216,173,0.10), rgba(244,216,173,0) 60%),
    radial-gradient(70% 55% at 78% 78%, rgba(127,208,196,0.07), rgba(127,208,196,0) 62%),
    radial-gradient(60% 50% at 14% 64%, rgba(184,146,92,0.08), rgba(184,146,92,0) 60%);
}
/* 真实室内光感：柔散窗光，用 mask 渐隐边缘 + 极轻噪点，无 blur 假光晕 */
.hero-orb{
  position:absolute; width:min(96vw,560px); aspect-ratio:1; border-radius:50%;
  z-index:-1; top:14%; left:50%; transform:translateX(-50%);
  background:
    radial-gradient(circle at 50% 42%, rgba(244,216,173,0.16), rgba(184,146,92,0.06) 42%, transparent 68%);
  -webkit-mask:radial-gradient(circle at 50% 42%, #000 30%, rgba(0,0,0,0.35) 58%, transparent 72%);
          mask:radial-gradient(circle at 50% 42%, #000 30%, rgba(0,0,0,0.35) 58%, transparent 72%);
  background-image:var(--grain), radial-gradient(circle at 50% 42%, rgba(244,216,173,0.16), rgba(184,146,92,0.06) 42%, transparent 68%);
  animation:orbFloat 11s var(--ease) infinite;
}
@keyframes orbFloat{ 0%,100%{ transform:translateX(-50%) translateY(0);} 50%{ transform:translateX(-50%) translateY(-12px);} }
@keyframes hubPulse{ 0%,100%{ transform:scale(1); filter:drop-shadow(0 0 8px rgba(232,178,122,0.7)); } 50%{ transform:scale(1.18); filter:drop-shadow(0 0 16px rgba(232,178,122,0.95)); } }
.hero-inner{ display:flex; flex-direction:column; align-items:center; max-width:680px; width:100%; }
.hero-eyebrow{
  display:inline-flex; align-items:center; gap:12px; font-family:var(--font-en);
  font-size:11px; letter-spacing:.46em; text-transform:uppercase; color:var(--gold-1);
  opacity:.9; margin-bottom:20px;
}
.hero-eyebrow::before{ content:""; width:7px; height:7px; border-radius:999px; background:var(--signal); box-shadow:0 0 8px var(--signal); animation:hubPulse 2.6s var(--ease) infinite; }
.hero-eyebrow::after{ content:""; width:30px; height:1px; background:linear-gradient(to right,var(--gold-1),transparent); }
.hero-title{
  font-family:var(--font-cn); font-weight:600; font-size:clamp(28px,7.2vw,46px);
  line-height:1.25; letter-spacing:.04em; color:var(--ivory);
  text-shadow:0 2px 10px rgba(0,0,0,0.6);
}
.countdown-stage{ position:relative; width:min(74vw,300px); aspect-ratio:1; margin:26px auto 8px; display:flex; align-items:center; justify-content:center; }
.ring{ position:absolute; inset:0; width:100%; height:100%; transform:rotate(-90deg); }
.ring-track{ fill:none; stroke:var(--line); stroke-width:3; }
.ring-prog{ fill:none; stroke:var(--signal); stroke-width:3; stroke-linecap:round; stroke-dasharray:703; stroke-dashoffset:0; filter:drop-shadow(0 0 6px rgba(143,230,200,0.5)); transition:stroke-dashoffset 1s linear; }
.countdown{ display:flex; align-items:baseline; gap:6px; z-index:2; }
.cd-cell{ display:flex; flex-direction:column; align-items:center; }
.cd-cell b{
  font-family:var(--font-en); font-weight:300; font-size:clamp(34px,9vw,56px); line-height:1;
  background:linear-gradient(180deg,var(--gold-2),var(--gold-1) 50%,var(--gold-3));
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.cd-cell i{ font-style:normal; font-size:11px; color:var(--mute-2); margin-top:4px; letter-spacing:.1em; }
.cd-colon{ font-family:var(--font-en); font-size:clamp(26px,7vw,42px); color:var(--gold-3); align-self:flex-start; margin-top:2px; }
.countdown-label{ font-family:var(--font-en); color:var(--gold-1); font-size:12px; letter-spacing:.3em; text-transform:uppercase; margin-top:4px; }
.cd-badge{ display:inline-block; margin-top:6px; padding:4px 14px; border:1px solid var(--gold-3); border-radius:999px; font-family:var(--font-cn); font-size:13px; color:var(--gold-2); letter-spacing:.06em; background:rgba(201,160,106,0.1); transition:all var(--dur) var(--ease); }
.suspense{ margin-top:24px; min-height:84px; max-width:600px; }
.suspense-headline{ font-family:var(--font-cn); color:var(--ivory); font-size:clamp(18px,4.6vw,24px); line-height:1.5; letter-spacing:.04em; transition:opacity .4s var(--ease),transform .4s var(--ease); min-height:2.4em; }
.suspense.swap .suspense-headline{ opacity:0; transform:translateY(8px); }
.suspense-sub{ margin-top:10px; color:var(--mute); font-size:13px; letter-spacing:.12em; }

.btn-primary{
  display:inline-flex; align-items:center; justify-content:center;
  height:54px; padding:0 30px; border-radius:8px;
  background:linear-gradient(180deg,var(--gold-1) 0%,var(--gold-3) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.28), 0 4px 16px rgba(184,146,92,0.28);
  color:#1a1208; font-family:var(--font-en); font-size:14px; letter-spacing:.24em;
  text-transform:uppercase; font-weight:500; cursor:pointer;
  transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),filter var(--dur) var(--ease);
}
.btn-primary:hover{ transform:translateY(-2px); box-shadow:inset 0 1px 0 rgba(255,255,255,0.34), 0 8px 26px rgba(184,146,92,0.4); filter:saturate(1.05); }
.hero-cta{ margin-top:30px; min-width:220px; }

.scroll-arrow{ text-align:center; margin-top:40px; cursor:pointer; animation:arrowBounce 2s ease-in-out infinite; background:none; }
.scroll-arrow svg{ width:36px; height:36px; display:inline-block; stroke:var(--gold-1); filter:drop-shadow(0 2px 6px rgba(0,0,0,0.95)); }
.scroll-arrow .scroll-arrow-text{ display:block; color:var(--gold-1); font-size:12px; letter-spacing:.12em; margin-top:4px; }
@keyframes arrowBounce{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(6px);} }

/* =========================================================
   Sections
   ========================================================= */
.section{ position:relative; padding:76px 20px; max-width:760px; margin:0 auto; z-index:3; text-align:center; }
.section-header{ text-align:center; margin-bottom:38px; }
.section-eyebrow{ font-family:var(--font-en); color:var(--gold-1); font-size:11px; letter-spacing:.46em; text-transform:uppercase; opacity:.9; display:flex; align-items:center; justify-content:center; gap:12px; margin-bottom:12px; }
.section-eyebrow::before{ content:""; width:6px; height:6px; flex:0 0 6px; border:1px solid var(--gold-1); border-radius:2px; transform:rotate(45deg); background:linear-gradient(135deg,var(--signal),transparent); box-shadow:0 0 6px rgba(143,230,200,0.4); }
.section-title{ font-family:var(--font-cn); font-weight:600; font-size:clamp(23px,5.6vw,32px); color:var(--ivory); letter-spacing:.05em; line-height:1.4; }
.section-desc{ margin-top:12px; color:var(--mute); font-size:15px; max-width:60ch; margin-left:auto; margin-right:auto; line-height:1.75; }

.reveal{ opacity:0; transform:translateY(24px); transition:opacity .9s var(--ease),transform .9s var(--ease); will-change:opacity,transform; }
.reveal.in{ opacity:1; transform:translateY(0); }

/* ---- Calculator ---- */
.calc-card{
  position:relative; border:1px solid var(--line); border-radius:14px; padding:24px 20px; text-align:left;
  background:
    linear-gradient(180deg, rgba(28,37,43,0.72), rgba(11,15,18,0.8)),
    var(--fiber) center/200px 200px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.05), 0 8px 30px rgba(0,0,0,0.35);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}
.calc-row{ margin-bottom:18px; }
.calc-label{ display:block; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--mute); margin-bottom:10px; font-family:var(--font-en); }
.seg{ display:inline-flex; border:1px solid var(--line-2); border-radius:999px; padding:3px; gap:3px; flex-wrap:wrap; }
.seg-btn{ padding:9px 14px; font-size:13px; border-radius:999px; color:var(--mute); transition:all var(--dur) var(--ease); }
.seg-btn.active{ background:linear-gradient(145deg,var(--cyan),#9af0e2); color:#0a1413; font-weight:600; }
.chips{ display:flex; flex-wrap:wrap; gap:8px; }
.chip{ padding:9px 15px; border:1px solid var(--line-2); border-radius:999px; font-size:13px; color:var(--mute); transition:all var(--dur) var(--ease); }
.chip.active{ border-color:var(--gold-3); background:rgba(201,160,106,0.14); color:var(--gold-2); }
.calc-result{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:8px 0 20px; }
.calc-metric{ border:1px solid var(--line); border-radius:10px; padding:14px 8px; text-align:center; background:rgba(7,10,12,0.5); }
.calc-metric b{ display:block; font-family:var(--font-en); font-size:clamp(20px,5vw,26px); font-weight:300; color:var(--gold-2); line-height:1.1; }
.calc-metric i{ font-style:normal; font-size:11px; color:var(--mute-2); letter-spacing:.08em; margin-top:6px; display:block; }

/* ---- Features: 中枢辐射布局 ---- */
.feature-ico{ width:46px; height:46px; border-radius:12px; border:1px solid var(--line-2); display:grid; place-items:center; color:var(--cyan); margin-bottom:14px; background:linear-gradient(180deg,rgba(127,208,196,0.1),rgba(127,208,196,0.02)); box-shadow:inset 0 1px 0 rgba(255,255,255,0.05); }
.feature-ico svg{ width:24px; height:24px; stroke:currentColor; fill:none; }
.feature-title{ font-family:var(--font-cn); font-weight:500; color:var(--ivory); font-size:17px; margin-bottom:6px; letter-spacing:.04em; }
.feature-desc{ color:var(--mute); font-size:13px; line-height:1.7; }

.hub-map{ position:relative; width:100%; max-width:880px; margin:0 auto; }
.hub-links{ display:none; }
.hub-core,.hub-spoke{
  border:1px solid var(--line); border-radius:12px; padding:20px 18px; text-align:left;
  background:linear-gradient(180deg, rgba(26,35,41,0.7), rgba(11,15,18,0.8));
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.05), 0 6px 22px rgba(0,0,0,0.3);
  transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
}
/* 移动端：中枢在上，节点带左侧连线堆叠 */
.hub-core{ border-color:var(--gold-3); box-shadow:inset 0 1px 0 rgba(255,255,255,0.08), 0 0 24px rgba(232,178,122,0.12); }
.hub-core .feature-ico{ color:var(--gold-1); border-color:var(--gold-3); background:linear-gradient(180deg,rgba(232,178,122,0.14),rgba(232,178,122,0.03)); }
.hub-spoke{ position:relative; margin-top:14px; padding-left:26px; }
.hub-spoke::before{ content:""; position:absolute; left:8px; top:18px; bottom:18px; width:1px; background:linear-gradient(to bottom,var(--gold-3),transparent); }
.hub-spoke::after{ content:""; position:absolute; left:5px; top:22px; width:7px; height:7px; border-radius:999px; background:var(--signal); box-shadow:0 0 8px var(--signal); }

/* 桌面端：中央中枢 + 五节点环绕辐射 */
@media(min-width:900px){
  .hub-map{ aspect-ratio:800/640; }
  .hub-links{
    display:block; position:absolute; inset:0; width:100%; height:100%;
    stroke:var(--gold-3); stroke-width:1.2; fill:none; opacity:.4;
    stroke-dasharray:5 6;
  }
  .hub-core,.hub-spoke{ position:absolute; transform:translate(-50%,-50%); }
  .hub-core{
    left:50%; top:50%; width:216px; z-index:2; text-align:center;
    border-radius:16px; padding:26px 20px;
  }
  .hub-core .feature-ico{ margin-left:auto; margin-right:auto; }
  .hub-spoke{ width:196px; margin-top:0; padding-left:18px; }
  .hub-spoke::before,.hub-spoke::after{ display:none; }
  .hub-spoke[data-spoke="top"]{ left:50%; top:15%; }
  .hub-spoke[data-spoke="right-top"]{ left:83.5%; top:36.9%; }
  .hub-spoke[data-spoke="right-bottom"]{ left:74%; top:82.5%; }
  .hub-spoke[data-spoke="left-bottom"]{ left:26%; top:82.5%; }
  .hub-spoke[data-spoke="left-top"]{ left:16.5%; top:36.9%; }
  .hub-spoke:hover{ transform:translate(-50%,-50%) scale(1.03); border-color:var(--gold-3); box-shadow:inset 0 1px 0 rgba(255,255,255,0.08), 0 10px 30px rgba(0,0,0,0.4); }
  .hub-core:hover{ box-shadow:inset 0 1px 0 rgba(255,255,255,0.08), 0 0 34px rgba(232,178,122,0.22); }
}

/* ---- Scenes ---- */
.scene-grid{ display:grid; grid-template-columns:1fr; gap:16px; position:relative; z-index:1; }
/* 场景区背景：房间平面图网格，呼应“每个房间都有光” */
.scene-grid-bg{
  position:absolute; inset:-30px -20px; z-index:0; pointer-events:none;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size:48px 48px; opacity:.14;
  -webkit-mask:radial-gradient(120% 90% at 50% 40%, #000 30%, transparent 78%);
          mask:radial-gradient(120% 90% at 50% 40%, #000 30%, transparent 78%);
}
@media(min-width:640px){ .scene-grid{ grid-template-columns:repeat(2,1fr);} }
.scene-card{ position:relative; border:1px solid var(--line); border-radius:12px; overflow:hidden; cursor:zoom-in; aspect-ratio:16/10; background:var(--ink-1); transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease); box-shadow:inset 0 1px 0 rgba(255,255,255,0.04), 0 6px 22px rgba(0,0,0,0.32); }
.scene-card:hover{ transform:translateY(-3px); border-color:var(--gold-3); }
.scene-card .scene-bg{ position:absolute; inset:0; transition:transform .9s var(--ease); background-size:cover; background-position:center; }
/* 渐变模式叠加细噪点，去除塑料感 */
.scene-card .scene-bg.no-photo{ background-blend-mode:overlay; }
.scene-card .scene-bg.no-photo::after{ content:""; position:absolute; inset:0; background-image:var(--grain); background-size:160px 160px; opacity:.06; mix-blend-mode:overlay; }
.scene-card .scene-bg img{ width:100%; height:100%; object-fit:cover; }
.scene-card:hover .scene-bg{ transform:scale(1.05); }
/* 真实光影：底部暗角 + 顶部暖光，模拟室内自然光 */
.scene-card::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(7,10,12,0.88) 4%, rgba(7,10,12,0.12) 42%, rgba(244,216,173,0.05) 100%); pointer-events:none; }
.scene-cap{ position:absolute; left:16px; bottom:14px; right:16px; z-index:2; text-align:left; }
.scene-cap b{ display:block; font-family:var(--font-cn); color:var(--ivory); font-size:16px; font-weight:500; letter-spacing:.04em; }
.scene-cap span{ font-size:12px; color:var(--mute); display:block; margin-top:3px; }

/* ---- Timeline ---- */
.timeline{ position:relative; padding-left:28px; text-align:left; list-style:none; }
.timeline::before{ content:""; position:absolute; left:8px; top:6px; bottom:6px; width:1px; background:linear-gradient(to bottom,transparent,var(--gold-3) 15%,var(--gold-3) 85%,transparent); }
.timeline-item{ position:relative; padding:0 0 26px 4px; }
.timeline-item::before{ content:""; position:absolute; left:-25px; top:6px; width:10px; height:10px; border-radius:999px; background:var(--ink-0); border:1px solid var(--gold-1); }
.timeline-year{ font-family:var(--font-en); color:var(--gold-1); font-size:22px; letter-spacing:.06em; margin-bottom:4px; font-weight:300; }
.timeline-title{ color:var(--ivory); font-size:15px; font-weight:500; margin-bottom:4px; }
.timeline-desc{ color:var(--mute); font-size:14px; line-height:1.7; }

/* ---- FAQ ---- */
.faq-list{ text-align:left; }
.faq-item{ border:1px solid var(--line); border-radius:10px; margin-bottom:10px; overflow:hidden; background:rgba(11,15,18,0.5); }
.faq-q{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 18px; font-size:15px; color:var(--ivory); text-align:left; font-family:var(--font-cn); font-weight:500; }
.faq-q .faq-ico{ flex:0 0 auto; width:18px; height:18px; position:relative; }
.faq-q .faq-ico::before,.faq-q .faq-ico::after{ content:""; position:absolute; background:var(--gold-1); transition:transform var(--dur) var(--ease); }
.faq-q .faq-ico::before{ top:8px; left:0; width:18px; height:1.5px; }
.faq-q .faq-ico::after{ left:8px; top:0; width:1.5px; height:18px; }
.faq-item.open .faq-ico::after{ transform:scaleY(0); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height var(--dur) var(--ease); }
.faq-a-inner{ padding:0 18px 16px; color:var(--mute); font-size:14px; line-height:1.75; }

/* ---- CTA ---- */
.cta-card{
  position:relative; border:1px solid var(--gold-3); border-radius:16px; padding:40px 22px;
  background:linear-gradient(170deg, rgba(26,35,41,0.78), rgba(11,15,18,0.92));
  box-shadow:inset 0 1px 0 rgba(244,216,173,0.12), 0 14px 40px rgba(0,0,0,0.4);
}
.cta-card .btn-primary{ margin-top:22px; min-width:200px; }

/* ---- Footer ---- */
.site-footer{ padding:40px 20px calc(64px + env(safe-area-inset-bottom)); text-align:center; border-top:1px solid var(--line); margin-top:60px; position:relative; z-index:3; }
.site-footer .fmark{ font-family:var(--font-en); color:var(--gold-1); letter-spacing:.4em; font-size:13px; margin-bottom:8px; }
.footer-text{ font-size:12px; letter-spacing:.16em; color:var(--mute); line-height:1.9; }

/* =========================================================
   Modals
   ========================================================= */
.modal-mask{ position:fixed; inset:0; z-index:200; background:rgba(2,4,5,0.72); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); display:none; align-items:center; justify-content:center; padding:calc(20px + env(safe-area-inset-top)) calc(20px + env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) calc(20px + env(safe-area-inset-left)); opacity:0; transition:opacity var(--dur) var(--ease); }
.modal-mask.show{ display:flex; opacity:1; }
.modal-card{ width:100%; max-width:460px; max-height:92svh; overflow-y:auto; background:linear-gradient(170deg,#16202a,#0a0f12); border:1px solid var(--gold-3); border-radius:12px; position:relative; box-shadow:inset 0 1px 0 rgba(244,216,173,0.1), 0 24px 70px rgba(0,0,0,0.6); transform:translateY(14px) scale(0.98); transition:transform var(--dur) var(--ease); }
.modal-mask.show .modal-card{ transform:translateY(0) scale(1); }
.modal-head{ padding:26px 24px 12px; text-align:center; border-bottom:1px solid var(--line); }
.modal-eyebrow{ font-family:var(--font-en); color:var(--gold-1); font-size:10px; letter-spacing:.46em; text-transform:uppercase; opacity:.9; display:block; margin-bottom:10px; }
.modal-title{ font-family:var(--font-cn); font-weight:600; color:var(--ivory); font-size:22px; letter-spacing:.06em; line-height:1.4; }
.modal-sub{ margin-top:8px; font-size:12px; color:var(--mute); letter-spacing:.06em; }
.modal-body{ padding:18px 24px 24px; }
.form-row{ margin-bottom:10px; text-align:left; }
.form-row label{ display:block; font-size:10px; color:var(--gold-1); letter-spacing:.14em; text-transform:uppercase; margin-bottom:4px; font-family:var(--font-en); font-weight:600; }
.form-row .req{ color:var(--danger); margin-left:3px; }
.form-row input,.form-select{
  width:100%; height:44px; padding:0 13px; background:#0a0e11; border:1px solid rgba(255,255,255,0.10); border-radius:6px;
  color:#f6f7f8; font-size:15px; outline:none;
  transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
  -webkit-appearance:none; appearance:none;
}
.form-select{ padding-right:38px; cursor:pointer; }
.form-select{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23e8b27a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M1 2l5 4 5-4'/%3E%3C/svg%3E"); background-position:calc(100% - 14px) 50%; background-size:12px 8px; background-repeat:no-repeat; }
.form-select option{ background:#ffffff; color:#070a0c; }
.form-row input::placeholder{ color:#6c767d; opacity:1; }
.form-row input:focus,.form-select:focus{ border-color:var(--gold-1); background:#0f1418; box-shadow:0 0 0 1px rgba(232,178,122,0.25); }
.form-row.error input,.form-row.error .form-select{ border-color:var(--danger); }
.err-msg{ display:none; margin-top:4px; font-size:11px; color:var(--danger); }
.form-row.error .err-msg{ display:block; }
.modal-note{ margin-top:14px; text-align:center; font-size:11px; color:var(--mute); letter-spacing:.06em; line-height:1.7; }
.modal-close{ position:absolute; top:12px; right:12px; width:34px; height:34px; border-radius:999px; border:1px solid var(--line-2); color:var(--mute); display:grid; place-items:center; transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease); z-index:2; }
.modal-close:hover{ color:var(--gold-1); border-color:var(--gold-3); }
.modal-close svg{ width:14px; height:14px; stroke:currentColor; fill:none; }
.success-card{ max-width:380px; padding:40px 28px 32px; text-align:center; }
.check-ring{ width:76px; height:76px; margin:0 auto 18px; }
.check-ring circle{ fill:none; stroke:var(--gold-1); stroke-width:1.5; stroke-dasharray:220; stroke-dashoffset:220; animation:cRing .7s var(--ease) forwards; }
.check-ring path{ fill:none; stroke:var(--gold-2); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:40; stroke-dashoffset:40; animation:cCheck .5s var(--ease) .48s forwards; }
@keyframes cRing{ to{ stroke-dashoffset:0;} }
@keyframes cCheck{ to{ stroke-dashoffset:0;} }

/* ---- Lightbox ---- */
.lightbox{ position:fixed; inset:0; z-index:300; background:rgba(2,4,5,0.92); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); display:none; align-items:center; justify-content:center; padding:20px; opacity:0; transition:opacity var(--dur) var(--ease); cursor:zoom-out; }
.lightbox.show{ display:flex; opacity:1; }
.lightbox img{ max-width:100%; max-height:90svh; border:1px solid var(--gold-3); border-radius:8px; }

/* ---- Responsive ---- */
@media(min-width:640px){ .section{ padding:96px 40px;} .site-header{ padding:18px 32px;} body{ font-size:16px;} }
@media(max-width:380px){ .brand-name{ display:none;} }

/* ---- CTA 倒计时弹出（首次访问延时弹出） ---- */
.cta-pop .cta-pop-card{
  max-width:380px; padding:34px 26px 28px; text-align:center;
  border:1px solid var(--gold-3); border-radius:16px;
  background:linear-gradient(170deg, rgba(26,35,41,0.92), rgba(11,15,18,0.97));
}
.cta-pop .modal-close{ font-size:20px; line-height:1; cursor:pointer; background:none; }
.cta-eyebrow{
  display:inline-block; font-family:var(--font-en); color:var(--signal);
  font-size:10px; letter-spacing:.42em; text-transform:uppercase;
  padding:5px 12px; border:1px solid rgba(143,230,200,0.4); border-radius:999px; margin-bottom:14px;
}
.cta-title{ font-family:var(--font-en); font-weight:600; color:var(--ivory); font-size:23px; letter-spacing:.01em; line-height:1.35; }
.cta-sub{ margin-top:10px; font-size:13px; color:var(--mute); line-height:1.7; }
.cta-timer{
  display:flex; align-items:baseline; justify-content:center; gap:4px;
  margin:20px 0 4px; font-family:var(--font-en);
}
.cta-timer .cta-num{
  display:inline-grid; place-items:center; min-width:54px; height:54px; padding:0 6px;
  background:rgba(232,178,122,0.12); border:1px solid var(--gold-3); border-radius:10px;
  color:var(--gold-2); font-size:26px; font-weight:700; font-variant-numeric:tabular-nums;
}
.cta-timer i{ color:var(--gold-1); font-size:24px; font-style:normal; }
.cta-timer small{ display:block; width:100%; margin-top:8px; font-size:11px; letter-spacing:.12em; color:var(--mute-2); text-transform:uppercase; }
.cta-later{
  display:block; width:100%; margin-top:12px; padding:10px; background:none;
  border:none; color:var(--mute-2); font-size:12px; letter-spacing:.1em; cursor:pointer;
  transition:color var(--dur) var(--ease);
}
.cta-later:hover{ color:var(--mute); }
@media(max-width:380px){ .cta-pop .cta-pop-card{ padding:28px 18px 22px; } .cta-title{ font-size:20px; } }

/* ---- Touch & Performance ---- */
@media(hover:none) and (pointer:coarse){
  /* 移动端减少非必要 hover 动画开销，并清除触屏点击后残留的 :hover 态 */
  .hub-spoke:hover{ transform:translate(-50%,-50%); }
  .scene-card:hover{ transform:none; }
  .scene-card:hover .scene-bg{ transform:none; }
  .btn-primary:hover{ transform:none; filter:none; }
  .seg-btn:hover,.chip:hover,.lang-btn:hover,.modal-close:hover{ color:inherit; border-color:inherit; background:inherit; }
  .btn-primary:active{ transform:scale(0.97); }
  .scene-card:active{ transform:scale(0.98); }
  .seg-btn:active,.chip:active{ transform:scale(0.96); }
}

/* Safari 兼容：backdrop-filter 降级 */
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .site-header{ background:rgba(7,10,12,0.92); }
  .calc-card{ background:rgba(17,23,27,0.85); }
}

/* 减少动画偏好 */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:0.01ms !important; transition-duration:0.01ms !important; }
  .reveal{ opacity:1; transform:none; }
}

/* 选择文本颜色 */
::selection{ background:rgba(201,160,106,0.35); color:var(--ivory); }

/* 焦点环（键盘导航可见） */
:focus-visible{ outline:2px solid var(--gold-1); outline-offset:2px; border-radius:4px; }
:focus:not(:focus-visible){ outline:none; }

.no-scroll{ overflow:hidden; }
