  /* 阿里巴巴普惠体 — 最粗档 Heavy(900)，自托管 + CDN 兜底 */
  @font-face{
    font-family:'Alibaba PuHuiTi';
    src:url('../AlibabaPuHuiTi-Heavy.woff2') format('woff2'),
        url('https://cdn.jsdelivr.net/gh/LuRenDing2020/AlibabaPuHuiTi-Fonts-Resource/Alibaba-PuHuiTi-Heavy.woff2') format('woff2');
    font-weight:85 95; /* 阿里巴巴普惠体 85–95 字重(覆盖模块85与首屏95) */
    font-display:swap;
  }
  :root{
    --brand:#806dff;          /* 品牌紫 */
    --brand-2:#6650ff;        /* 深紫 */
    --brand-light:#a99dff;
    --grad:linear-gradient(135deg,#aa9dff,#6650ff);
    --grad-soft:linear-gradient(135deg,#806dff,#ba8aff);
    --ink:#1f2133;
    --sub:#6b6f80;
    --sub2:#9aa0b4;
    --line:#eceef5;
    --bg:#ffffff;
    --bg2:#f6f5fc;            /* 浅紫灰底 */
    --shadow:0 6px 22px rgba(30,22,70,.07);
    --shadow-lg:0 18px 44px rgba(30,22,70,.13);
    --glow:0 17px 40px rgba(128,109,255,.35);
    --r-lg:24px; --r-md:16px; --r-sm:10px; --r-pill:999px;
    --maxw:1160px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:"PingFang SC","Microsoft YaHei",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased}
  a{color:inherit;text-decoration:none}
  img{max-width:100%;display:block}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
  .section{padding:72px 0;scroll-margin-top:84px}
  #features{padding-top:87px;padding-bottom:87px}
  .section.alt{background:var(--bg2)}
  .sec-head{text-align:center;max-width:680px;margin:0 auto 40px}
  .sec-head .ey{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--brand-2);background:#f1eeff;padding:6px 14px;border-radius:var(--r-pill);margin-bottom:18px}
  .sec-head h2{font-size:38px;font-weight:85;letter-spacing:-.5px;font-family:'Alibaba PuHuiTi','PingFang SC','Microsoft YaHei',sans-serif}
  .sec-head h2 .hl{color:#806DFF}
  .sec-head p{font-size:17px;color:var(--sub);margin-top:14px}

  /* NAV */
  .nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
  .nav-in{display:flex;align-items:center;justify-content:space-between;height:68px}
  .logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:19px}
  .logo-img{height:32px;width:auto;display:block}
  .logo-text{color:var(--ink);letter-spacing:.5px;white-space:nowrap}
  .logo .mark{width:34px;height:34px;border-radius:10px;background:var(--grad);color:#fff;display:grid;place-items:center;font-size:17px;font-weight:700;box-shadow:var(--glow)}
  .nav-links{display:flex;gap:34px;font-size:15px;color:var(--sub);font-weight:500}
  .nav-links a:hover{color:var(--brand-2)}
  .nav .btn{min-width:auto;padding:11px 22px;font-size:14px}

  /* BUTTONS */
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:16px;font-weight:600;padding:14px 26px;border-radius:var(--r-pill);cursor:pointer;border:1px solid transparent;transition:.25s;font-family:inherit}
  .btn-primary{background:var(--grad);color:#fff;box-shadow:var(--glow)}
  .btn-primary:hover{transform:translateY(-2px);box-shadow:0 22px 50px rgba(128,109,255,.45)}
  .btn-ghost{background:#fff;color:var(--brand-2);border-color:var(--line)}
  .btn-ghost:hover{border-color:var(--brand-light);transform:translateY(-2px)}
  .btn .bi{width:18px;height:18px;flex:none}
  /* 首屏下载按钮：iPhone 黑底 / Android 紫渐变，圆角16，内阴影提质感，图标放大 */
  .dl-iphone{background:linear-gradient(180deg,#2a2730,#15131c);color:#fff;border-color:#0e0c14;border-radius:12px;
    box-shadow:0 14px 28px rgba(20,15,30,.30),inset 0 1px 0 rgba(255,255,255,.16),inset 0 -3px 8px rgba(0,0,0,.30)}
  .dl-iphone:hover{background:linear-gradient(180deg,#211f29,#000);transform:translateY(-2px);box-shadow:0 20px 40px rgba(20,15,30,.42),inset 0 1px 0 rgba(255,255,255,.2),inset 0 -3px 8px rgba(0,0,0,.34)}
  .dl-android{background:linear-gradient(135deg,#b98cff 0%,#6a3df0 100%);color:#fff;border-color:transparent;border-radius:12px;
    box-shadow:0 14px 32px rgba(106,61,240,.34),inset 0 1px 0 rgba(255,255,255,.22),inset 0 -3px 8px rgba(60,20,140,.30)}
  .dl-android:hover{transform:translateY(-2px);box-shadow:0 20px 44px rgba(106,61,240,.5),inset 0 1px 0 rgba(255,255,255,.28),inset 0 -3px 8px rgba(60,20,140,.34)}
  .dl-iphone,.dl-android{padding:14px 26px}
  .dl-iphone .bi,.dl-android .bi{width:32px;height:32px}

  /* HERO */
  /* 首屏背景：使用 背景2.png 作为全幅背景图 */
  .hero{padding:48px 0 100px;position:relative;overflow:hidden;
    background:url("../images/hero-bg.png") center top -30px / cover no-repeat;
    background-color:#f6f3ff}
  .hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:16px;align-items:center;position:relative;z-index:1}
  .title{font-size:52px;line-height:1.42;font-weight:95;letter-spacing:-1px;font-family:'Alibaba PuHuiTi','PingFang SC','Microsoft YaHei',sans-serif}
  .title .hl{color:#6954FB;font-weight:95;font-family:'Alibaba PuHuiTi','PingFang SC','Microsoft YaHei',sans-serif}
  .title-note{display:inline-block;margin-top:14px;font-size:13px;font-weight:600;letter-spacing:.5px;color:#6a57e0;background:rgba(128,109,255,.10);border:1px solid rgba(128,109,255,.22);padding:4px 13px;border-radius:999px}
  .lead{font-size:18px;color:var(--sub);margin-top:22px;max-width:480px}
  /* hero download left/right */
  .hero-dl{display:flex;align-items:center;gap:26px;margin-top:36px;flex-wrap:wrap}
  .qr-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);cursor:pointer;transition:.25s;text-align:center;font-family:inherit}
  .qr-card:hover{border-color:var(--brand-light);transform:translateY(-3px);box-shadow:var(--shadow-lg)}
  .qr-img{width:140px;height:140px;border-radius:12px;display:block;background:#fff}
  .qr-info{display:flex;flex-direction:column;gap:3px;align-items:center}
  .qr-info b{font-size:16px;font-weight:700;color:var(--ink)}
  .qr-info small{font-size:12px;color:var(--sub)}
  .qr-info svg{width:13px;height:13px;margin-right:3px;vertical-align:-1px;color:var(--brand-2)}
  .dl-btns{display:flex;flex-direction:column;gap:12px;justify-content:center}
  .dl-btns .btn{min-width:200px;justify-content:flex-start}

  /* PHONE 17 MOCKUP — 黑色钛金属（对齐样机参考2.png：黑色外壳） */
  .phone-stage{display:flex;justify-content:center;position:relative;top:30px;left:22px}
  /* 样机图片下方的两个线圈装饰（同心，从底部露出） */
  /* 第二台样机（样机2.png）：从主样机右后方探出，旋转+缩小，增加层次 */
  .phone-stage .phone2{position:absolute;z-index:0;right:-4px;bottom:0;width:235px;height:auto;
    transform:rotate(7deg);transform-origin:bottom center;
    filter:drop-shadow(0 22px 44px rgba(150,120,190,.24)) drop-shadow(0 8px 16px rgba(150,120,190,.14))}
  .phone-stage::before{content:"";position:absolute;top:5%;left:50%;transform:translateX(-50%);width:300px;height:300px;border-radius:50%;
    background:radial-gradient(circle,rgba(120,115,135,.14),transparent 60%);filter:blur(12px);z-index:0;pointer-events:none}
  .phone-stage::after{content:"";position:absolute;bottom:-44px;left:50%;transform:translateX(-50%) scaleY(.5);
    width:300px;height:76px;border-radius:50%;background:rgba(110,85,150,.18);filter:blur(30px);z-index:0}
  .phone17{position:relative;z-index:1;width:328px;height:676px;border-radius:60px;padding:13px;
    background:linear-gradient(155deg,#2a2a30 0%,#1a1a1f 30%,#141418 55%,#1c1c21 78%,#26262c 100%);
    box-shadow:
      inset 0 1.5px 2px rgba(255,255,255,.24),
      inset 0 -3px 6px rgba(0,0,0,.66),
      inset 1.5px 0 3px rgba(255,255,255,.08),
      inset -1.5px 0 3px rgba(0,0,0,.32),
      inset 0 0 0 1px rgba(125,125,135,.32),
      0 52px 88px -20px rgba(4,4,6,.60),
      0 18px 38px -24px rgba(28,26,34,.28);
    transform:none}
  .phone17::before{content:"";position:absolute;inset:0;border-radius:60px;pointer-events:none;z-index:3;
    background:linear-gradient(125deg,rgba(255,255,255,.24) 0%,transparent 34%,transparent 66%,rgba(255,255,255,.10) 100%);
    mix-blend-mode:screen}
  .phone17 .frame{position:relative;width:100%;height:100%;border-radius:47px;background:#050507;padding:1.5px;
    box-shadow:inset 0 0 0 1px #1a1a1e,inset 0 0 14px rgba(0,0,0,.92)}
  .phone17 .screen{width:100%;height:100%;border-radius:46px;overflow:hidden;background:#f3f4fb;position:relative;display:flex;flex-direction:column;
    box-shadow:inset 0 0 0 .5px rgba(255,255,255,.05),inset 0 1px 3px rgba(0,0,0,.22)}
  .phone17 .screen img{width:100%;height:100%;object-fit:cover;flex:none}
  /* 玻璃反光 */
  .phone17 .glare{position:absolute;inset:0;z-index:5;pointer-events:none;border-radius:46px;
    background:
      linear-gradient(125deg,rgba(255,255,255,.14) 0%,transparent 28%),
      linear-gradient(125deg,transparent 44%,rgba(255,255,255,.22) 50%,transparent 57%);
    mix-blend-mode:screen}
  /* 灵动岛 — 纯黑药丸 */
  .phone17 .island{position:absolute;top:13px;left:50%;transform:translateX(-50%);width:110px;height:31px;background:#000000;border-radius:17px;z-index:6;
    box-shadow:inset 0 0 0 .5px rgba(255,255,255,.06),0 1px 2px rgba(0,0,0,.6)}
  .phone17 .island::before{content:"";position:absolute;left:24px;top:50%;transform:translateY(-50%);width:34px;height:3.5px;border-radius:3px;
    background:#0a0a0c;box-shadow:inset 0 1px 1px rgba(255,255,255,.04)}
  .phone17 .island::after{content:"";position:absolute;right:15px;top:50%;transform:translateY(-50%);width:9px;height:9px;border-radius:50%;
    background:radial-gradient(circle at 35% 30%,#3a3848,#08080c)}
  /* 侧键 — 深灰钛金属 */
  .phone17 .key{position:absolute;background:linear-gradient(180deg,#3a3a40,#1c1c21);border-radius:2.5px;z-index:0;
    box-shadow:inset 0 1px 1px rgba(255,255,255,.12),inset 0 -1px 1px rgba(0,0,0,.4)}
  .phone17 .key-l1{left:-3.5px;top:148px;width:4px;height:33px}
  .phone17 .key-l2{left:-3.5px;top:194px;width:4px;height:61px}
  .phone17 .key-r{right:-3.5px;top:210px;width:4px;height:82px}
  /* 首屏样机 — 直接用完整样机图(phone-mockup-screen.png：外壳+题库截图合成)展示 */
  .phone17-img{position:relative;z-index:1;width:288px;max-width:80vw;height:auto;display:block;
    filter:drop-shadow(0 22px 42px rgba(150,120,190,.20)) drop-shadow(0 7px 16px rgba(150,120,190,.12))}

  /* MASCOT — 护考兔IP形象，融入首屏（定位+裁切合并到单容器，避免被推出可视区） */
  .mascot{position:absolute;z-index:4;pointer-events:none;overflow:hidden;
    bottom:-22px;left:-42px;width:210px;height:300px;border-radius:22px;
    filter:drop-shadow(0 18px 42px rgba(100,60,200,.30));
    animation:mascotBounce 2.8s ease-in-out infinite}
  /* 原图 1884×1632，三视图并排，每视图约628px；容器取宽210=原图1/3，img缩放630，左移210即露出中间1/3(正面笑脸) */
  .mascot img{width:630px;height:auto;margin-left:-210px;display:block}
  @keyframes mascotBounce{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-6px) scale(1.02)}}
  /* 展台：作为样机(样机+题库.png)底座，置于其底部；介于背景图(背景2.png)与样机之间 */
  .hero-stand{position:absolute;z-index:0;left:50%;bottom:-90px;transform:translateX(calc(-50% + 44px));
    width:97%;max-width:none;height:auto;pointer-events:none;opacity:.98;
    filter:drop-shadow(0 18px 34px rgba(110,80,190,.22));
    -webkit-mask-image:radial-gradient(ellipse 82% 95% at 50% 52%,#000 60%,transparent 90%);
    mask-image:radial-gradient(ellipse 82% 95% at 50% 52%,#000 60%,transparent 90%)}
  /* 展台后的柔光晕：衔接品牌紫与背景图，使过渡自然不生硬 */
  .hero-stand-glow{position:absolute;z-index:0;left:50%;bottom:-86px;transform:translateX(calc(-50% + 44px));
    width:448px;height:150px;border-radius:50%;pointer-events:none;
    background:radial-gradient(ellipse at center,rgba(170,148,255,.28),transparent 70%);
    filter:blur(40px)}

  /* FEATURES */
  .feat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
  .feat{position:relative;background:linear-gradient(160deg,#ffffff,#f4f1ff);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px 22px;transition:.25s;display:flex;flex-direction:column}
  .feat:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--brand-light)}
  .feat .fi{position:relative;width:54px;height:54px;border-radius:15px;display:grid;place-items:center;margin-bottom:16px;
    background:linear-gradient(135deg,rgba(255,255,255,.6),rgba(255,255,255,.18));
    backdrop-filter:blur(12px) saturate(160%);-webkit-backdrop-filter:blur(12px) saturate(160%);
    border:1px solid rgba(255,255,255,.7);
    box-shadow:0 8px 22px rgba(128,109,255,.18),inset 0 1px 0 rgba(255,255,255,.9);overflow:hidden}
  .feat .fi::after{content:"";position:absolute;left:0;right:0;top:0;height:52%;background:linear-gradient(180deg,rgba(255,255,255,.55),transparent)}
  .feat .fi svg{position:relative;z-index:2;width:28px;height:28px}
  .feat h3{font-size:21px;font-weight:700;margin-bottom:10px}
  .feat p{font-size:15px;color:var(--sub);line-height:1.7;flex:1}
  .feat .card-cta{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;margin-top:18px;background:var(--grad);color:#fff;font-size:14px;font-weight:700;padding:10px 20px;border-radius:var(--r-pill);box-shadow:var(--glow);transition:.25s;font-family:inherit}
  .feat .card-cta:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(128,109,255,.45)}
  .feat .card-cta svg{width:16px;height:16px}

  /* PRACTICE SPOTLIGHT */
  /* 独立背景：弥散光斑（多层紫晕 + 模糊，柔和晕染效果） */
  /* PRACTICE SPOTLIGHT */
  /* 独立背景：浅白过渡 + 高亮，弥散光斑（多层紫晕 + 顶部白色高光 + 模糊，柔和晕染效果） */
  #practice{position:relative;overflow:hidden;background:linear-gradient(165deg,#ffffff 0%,#f8f6ff 58%,#f3effe 100%)}
  #practice::before{content:"";position:absolute;inset:-12%;z-index:0;pointer-events:none;
    background:
      radial-gradient(560px 360px at 50% -8%, rgba(255,255,255,.92), transparent 70%),
      radial-gradient(420px 420px at 16% 20%, rgba(184,172,255,.34), transparent 70%),
      radial-gradient(400px 400px at 84% 16%, rgba(214,196,255,.28), transparent 70%),
      radial-gradient(480px 480px at 70% 90%, rgba(150,128,255,.24), transparent 70%),
      radial-gradient(380px 380px at 28% 94%, rgba(192,172,255,.22), transparent 72%);
    filter:blur(46px);opacity:.96}
  #practice .wrap{position:relative;z-index:1}
  /* DAILY — 每日一练：结构对齐 practice，弥散光斑背景 + 单台样机 */
  /* DAILY — 与 #practice 区分：白→冷蓝紫渐变底 + 偏冷调弥散光（更清亮），两台样机层叠 */
  #daily{position:relative;overflow:hidden;background:linear-gradient(160deg,#ffffff 0%,#eef1fb 100%)}
  #daily::before{content:"";position:absolute;inset:-12%;z-index:0;pointer-events:none;
    background:
      radial-gradient(420px 420px at 82% 12%, rgba(132,160,255,.36), transparent 70%),
      radial-gradient(440px 440px at 14% 88%, rgba(176,150,255,.34), transparent 70%),
      radial-gradient(360px 360px at 50% 50%, rgba(150,140,255,.16), transparent 72%);
    filter:blur(48px);opacity:.92}
  #daily .wrap{position:relative;z-index:1}
  /* CUSTOM — 自主组题：结构对齐 practice（样机左/文字右），弥散光斑背景（暖薰衣草，区别于daily的冷蓝紫） */
  #custom{position:relative;overflow:hidden;background:#ffffff}
  #custom::before{content:"";position:absolute;inset:-12%;z-index:0;pointer-events:none;
    background:
      radial-gradient(520px 320px at 50% -8%, rgba(247,245,255,.85), transparent 70%),
      radial-gradient(380px 380px at 90% 96%, rgba(240,236,255,.5), transparent 72%);
    filter:blur(50px);opacity:.7}
  #custom .wrap{position:relative;z-index:1}
  /* MEMORY — 考点速记：结构对齐 custom（样机左/文字右），弥散光斑背景，区别于 custom 纯白 与 steps 实色渐变 */
  #memory{position:relative;overflow:hidden;background:linear-gradient(165deg,#ffffff 0%,#f8f6ff 58%,#f3effe 100%)}
  #memory::before{content:"";position:absolute;inset:-12%;z-index:0;pointer-events:none;
    background:
      radial-gradient(560px 360px at 50% -8%, rgba(255,255,255,.92), transparent 70%),
      radial-gradient(420px 420px at 16% 20%, rgba(184,172,255,.34), transparent 70%),
      radial-gradient(440px 440px at 84% 82%, rgba(214,196,255,.30), transparent 70%),
      radial-gradient(380px 380px at 70% 92%, rgba(170,150,255,.22), transparent 72%);
    filter:blur(46px);opacity:.96}
  #memory .wrap{position:relative;z-index:1}
  #memory .practice-spot{max-width:960px;margin:0 auto}
  /* STEPS — 三步开启高效备考：明显浅紫渐变块，与上方纯白 #custom 形成背景分层区分 */
  #steps{position:relative;overflow:hidden;background:linear-gradient(155deg,#ece2ff 0%,#d6c4ff 100%)}
  #steps::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
    background:radial-gradient(640px 440px at 82% -14%, rgba(255,255,255,.78), transparent 70%)}
  #steps .wrap{position:relative;z-index:1}
  .practice-spot{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
  /* layered mini phone mockups */
  .ps-shots{position:relative;height:540px}
  /* 两台样机视觉底部的高亮弥散圆 */
  .ps-glow{position:absolute;left:50%;bottom:18px;z-index:0;width:340px;height:150px;
    transform:translateX(-50%);border-radius:50%;
    background:radial-gradient(closest-side,rgba(168,146,255,.55),rgba(168,146,255,.18) 55%,transparent 78%);
    filter:blur(34px);pointer-events:none}
  /* 完整样机图直接展示（无 CSS 设备框）：前层右前全尺寸、后层左后缩放变暗 */
  .mini-phone{position:absolute;flex:none;width:250px;height:auto;display:block;
    filter:drop-shadow(0 16px 32px rgba(128,109,255,.20));
    transition:transform .45s cubic-bezier(.2,.7,.2,1),filter .45s ease}
  .mp-front{right:4px;top:40px;z-index:3;transform:scale(.82) translateY(6px);filter:drop-shadow(0 12px 26px rgba(128,109,255,.12))}
  .mp-front:hover{transform:scale(.82) translateY(-6px)}
  .mp-back{left:4px;top:2px;z-index:1;transform:scale(1.02) translateY(10px);
    filter:drop-shadow(0 12px 26px rgba(128,109,255,.16))}
  .mp-back:hover{transform:scale(1.02) translateY(0)}
  .ps-info{margin-top:-30px}
  /* 多维度模块：图片+文字组合成一组，整体水平居中于背景层，并略微往右(后)靠 */
  #practice .practice-spot{max-width:960px;margin:0 auto;transform:translateX(34px)}
  /* daily / custom 图文组同样组合成组、与背景层居中（不含 practice 的 34px 右移特例） */
  #daily .practice-spot,#custom .practice-spot{max-width:960px;margin:0 auto}
  .ps-tag{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--brand-2);background:#f1eeff;padding:6px 14px;border-radius:var(--r-pill);margin-bottom:18px}
  .ps-info h2{font-size:34px;font-weight:700;letter-spacing:-.4px;margin-bottom:16px;line-height:1.25}
  .ps-info h2 span.hl{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
  .ps-lead{font-size:15px;color:var(--sub);line-height:1.75;margin-bottom:22px}
  .ps-list{list-style:none;display:flex;flex-direction:column;gap:30px;margin-top:8px}
  .ps-list li{display:flex;gap:16px;align-items:flex-start}
  .ps-list .pi{flex:none;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;
    background:linear-gradient(135deg,rgba(255,255,255,.6),rgba(255,255,255,.18));
    backdrop-filter:blur(12px) saturate(160%);-webkit-backdrop-filter:blur(12px) saturate(160%);
    border:1px solid rgba(255,255,255,.7);
    box-shadow:0 8px 22px rgba(128,109,255,.18),inset 0 1px 0 rgba(255,255,255,.9);overflow:hidden}
  .ps-list .pi::after{content:"";position:absolute;left:0;right:0;top:0;height:52%;background:linear-gradient(180deg,rgba(255,255,255,.55),transparent)}
  .ps-list .pi{position:relative}
  .ps-list .pi svg{position:relative;z-index:2;width:24px;height:24px}
  .ps-list .txt h4{font-size:17px;font-weight:700;color:var(--ink);margin-bottom:4px}
  .ps-list .txt p{font-size:14px;color:var(--sub);line-height:1.65}

  /* DATA */
  .data-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
  .data-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:34px 26px;text-align:center;box-shadow:var(--shadow);transition:.25s}
  .data-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);border-color:var(--brand-light)}
  .data-card .v{font-size:42px;font-weight:700;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1}
  .data-card .v span{font-size:22px}
  .data-card .l{font-size:15px;color:var(--sub);margin-top:12px}

  /* STEPS */
  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
  .step{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:34px 30px;box-shadow:var(--shadow);transition:.25s}
  .step:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);border-color:var(--brand-light)}
  .step .num{width:46px;height:46px;border-radius:13px;background:var(--grad);color:#fff;display:grid;place-items:center;font-size:20px;font-weight:700;box-shadow:var(--glow);margin-bottom:18px}
  .step h3{font-size:21px;font-weight:700;margin-bottom:10px}
  .step p{font-size:15px;color:var(--sub);line-height:1.7}

  /* REVIEWS */
  .rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
  .rev{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:28px;box-shadow:var(--shadow);transition:.25s}
  .rev:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);border-color:var(--brand-light)}
  .rev .stars{color:#ffb020;font-size:16px;letter-spacing:2px;margin-bottom:14px}
  .rev p{font-size:15px;color:var(--ink);line-height:1.75}
  .rev .who{display:flex;align-items:center;gap:12px;margin-top:18px}
  .rev .av{width:42px;height:42px;border-radius:50%;background:var(--grad);color:#fff;display:grid;place-items:center;font-weight:700;font-size:16px}
  .rev .who b{font-size:15px;font-weight:600}
  .rev .who small{display:block;font-size:13px;color:var(--sub2)}


  /* CTA */
  #download{background:url("../images/download-bg.png") center / cover no-repeat;background-color:#f3edfb;height:505px;display:flex;align-items:center;justify-content:center}
  .cta{background:transparent;border-radius:0;padding:24px 0;text-align:center;color:#3a2590;position:relative;overflow:visible;box-shadow:none;transform:translateY(-60px)}
  .cta>*{position:relative;z-index:1}
  .cta h2{font-size:40px;font-weight:85;color:#3a2590;font-family:'Alibaba PuHuiTi','PingFang SC','Microsoft YaHei',sans-serif}
  .cta h2 .hl-pink{color:#FF5BAB}
  .cta h2 .hl-purple{color:#6a3df0}
  .cta p{font-size:18px;color:#5b5380;margin-top:14px}
  .cta .cta-btns{display:flex;gap:14px;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:32px}
  .cta .btn-white{background:linear-gradient(135deg,#8a6dff 0%,#6a3df0 100%);color:#fff;border:2px solid #fff;padding:19px 26px;border-radius:20px;box-shadow:0 10px 26px rgba(50,25,120,.20)}
  .cta .btn-white:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(50,25,120,.26)}
  .cta .btn-out{background:rgba(102,80,255,.10);color:var(--brand-2);border:1px solid rgba(102,80,255,.45)}
  .cta .btn-out:hover{background:rgba(102,80,255,.18);transform:translateY(-2px)}
  .cta .qr-ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#fff;border-radius:20px;padding:16px 16px 13px;box-shadow:0 14px 32px rgba(50,25,120,.30)}
  .cta .qr-ph svg{width:120px;height:120px;display:block;border-radius:8px;background:#fff}
  .cta .qr-ph span{font-size:13px;font-weight:700;color:var(--brand-2);letter-spacing:.06em}
  .cta .cta-stack{display:flex;flex-direction:column;gap:14px}
  .cta .cta-stack .btn{width:100%}
  .cta .cta-stack .bi{width:30px;height:30px}


  /* FOOTER */
  footer{background:#0c0d1a;color:#c7c9d6;padding:64px 0 30px}
  .foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
  .foot-grid .logo{color:#fff;margin-bottom:16px}
  .foot-grid .logo .logo-text{color:#fff}
  .foot-grid .logo .mark{box-shadow:none}
  .foot-about{font-size:14px;color:#8b8fa3;line-height:1.8;max-width:300px}
  .foot-col h4{color:#fff;font-size:15px;font-weight:600;margin-bottom:16px}
  .foot-col a{display:block;font-size:14px;color:#8b8fa3;margin-bottom:11px;transition:.2s}
  .foot-col a:hover{color:#fff}
  .foot-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:48px;padding-top:24px;display:flex;justify-content:center;flex-wrap:wrap;gap:30px;font-size:13px;color:#7a7e92}
  .foot-bottom a{color:inherit;text-decoration:none;transition:.2s}
  .foot-bottom a:hover{color:#fff}

  /* QR MODAL */
  .qr-modal{position:fixed;inset:0;background:rgba(15,12,30,.6);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:100;padding:20px}
  .qr-modal.open{display:flex}
  .qr-box{background:#fff;border-radius:22px;padding:30px;text-align:center;max-width:320px;width:100%;position:relative;animation:pop .25s ease}
  @keyframes pop{from{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}
  .qr-box img{width:200px;height:200px;margin:0 auto 16px;border-radius:12px}
  .qr-box h3{font-size:19px;font-weight:700;color:var(--ink)}
  .qr-box p{font-size:14px;color:var(--sub);margin-top:6px}
  .qr-close{position:absolute;top:12px;right:14px;width:34px;height:34px;border-radius:50%;border:none;background:#f0f0f5;color:#666;font-size:20px;cursor:pointer;line-height:1}
  .qr-close:hover{background:#e4e4ec}

  /* REVEAL */
  .reveal{opacity:0;transform:translateY(26px);transition:.7s cubic-bezier(.2,.7,.2,1)}
  .reveal.in{opacity:1;transform:none}

  @media(max-width:900px){
    .hero-grid{grid-template-columns:1fr;text-align:center}
    .lead{margin-left:auto;margin-right:auto}
    .hero-dl{justify-content:center}
    .phone-stage{margin-top:10px}
    .phone2{display:none}
    .feat-grid{grid-template-columns:repeat(2,1fr)}
    .feat-grid{grid-template-columns:repeat(3,1fr)}
    .practice-spot{grid-template-columns:1fr;gap:36px}
    #practice .practice-spot{transform:none}
    .ps-shots{position:relative;height:auto;display:flex;justify-content:center;align-items:flex-end;gap:16px;padding:10px 0}
    .mini-phone{position:relative;left:auto;right:auto;top:auto;transform:none;filter:none;width:46%}
    .mp-back{transform:none}
    .mp-front:hover,.mp-back:hover{transform:translateY(-8px)}
    .mascot{display:none}
    .steps,.rev-grid{grid-template-columns:1fr}
    .dm-stats{flex-wrap:wrap;gap:20px}
    .foot-grid{grid-template-columns:1fr 1fr}
    .sec-head h2,.cta h2{font-size:30px}
    .title{font-size:38px}
    .hero-stand{width:130%;bottom:-18px}
    .hero-stand-glow{width:440px;height:150px}
  }
  @media(max-width:560px){
    .feat-grid{grid-template-columns:1fr}
    .ps-shots{flex-direction:column}
    .mini-phone{width:74%}
    .nav-links{display:none}
    .foot-grid{grid-template-columns:1fr}
  }
