/* roulang page: index */
:root{
      --bg:#f6f8fb;
      --surface:#ffffff;
      --surface-2:#eef3f8;
      --ink:#172032;
      --muted:#647187;
      --soft:#8996aa;
      --line:#dfe7f0;
      --primary:#13233b;
      --primary-2:#244267;
      --accent:#16b6a7;
      --accent-2:#ffb84d;
      --danger:#ef6461;
      --success:#1ca879;
      --radius-xs:10px;
      --radius-sm:14px;
      --radius-md:22px;
      --radius-lg:34px;
      --shadow-sm:0 10px 28px rgba(20,35,57,.08);
      --shadow-md:0 22px 60px rgba(20,35,57,.14);
      --shadow-inset:inset 0 1px 0 rgba(255,255,255,.65);
      --container:1180px;
      --header-h:82px;
      --ease:all .22s ease;
    }
    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;
      color:var(--ink);
      background:
        radial-gradient(circle at 7% 7%, rgba(22,182,167,.13), transparent 31%),
        radial-gradient(circle at 94% 4%, rgba(255,184,77,.14), transparent 28%),
        linear-gradient(180deg,#fbfcfe 0%,var(--bg) 48%,#f4f7fb 100%);
      line-height:1.7;
      overflow-x:hidden;
    }
    a{color:inherit;text-decoration:none;transition:var(--ease)}
    a:hover{color:var(--accent)}
    img{max-width:100%;display:block}
    button,input,textarea,select{font:inherit}
    ::selection{background:rgba(22,182,167,.22)}
    .container-fluid-custom,.container-custom{
      width:min(var(--container), calc(100% - 40px));
      margin-inline:auto;
    }
    .site-header{
      position:sticky;
      top:0;
      z-index:1000;
      backdrop-filter:blur(18px);
      background:rgba(255,255,255,.86);
      border-bottom:1px solid rgba(223,231,240,.82);
      box-shadow:0 8px 30px rgba(19,35,59,.05);
    }
    .brand-row{
      min-height:var(--header-h);
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:20px;
      padding:14px 0 10px;
    }
    .brand-link{
      display:flex;
      align-items:center;
      gap:12px;
      min-width:0;
      color:var(--ink);
    }
    .logo-mark{
      width:46px;
      height:46px;
      border-radius:16px;
      background:
        linear-gradient(135deg,var(--primary),#213f66 54%,var(--accent));
      color:#fff;
      display:grid;
      place-items:center;
      font-weight:900;
      letter-spacing:-.04em;
      box-shadow:0 16px 32px rgba(19,35,59,.18);
      position:relative;
      overflow:hidden;
      flex:0 0 auto;
    }
    .logo-mark:after{
      content:"";
      position:absolute;
      width:34px;
      height:34px;
      border:1px solid rgba(255,255,255,.28);
      border-radius:12px;
      transform:rotate(18deg);
    }
    .brand-text{
      display:flex;
      flex-direction:column;
      gap:2px;
      min-width:0;
    }
    .brand-name{
      font-size:18px;
      font-weight:900;
      letter-spacing:-.02em;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
      max-width:560px;
    }
    .brand-slogan{
      color:var(--muted);
      font-size:13px;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }
    .header-actions{
      display:flex;
      align-items:center;
      gap:12px;
      flex:0 0 auto;
    }
    .search-pill{
      width:260px;
      display:flex;
      align-items:center;
      gap:8px;
      padding:9px 13px;
      border:1px solid var(--line);
      border-radius:999px;
      background:#fff;
      color:var(--soft);
      box-shadow:var(--shadow-inset);
    }
    .search-pill input{
      border:0;
      outline:0;
      min-width:0;
      width:100%;
      color:var(--ink);
      background:transparent;
      font-size:14px;
    }
    .search-pill:focus-within{
      border-color:rgba(22,182,167,.65);
      box-shadow:0 0 0 4px rgba(22,182,167,.12);
    }
    .chip-nav-wrap{
      border-top:1px solid rgba(223,231,240,.65);
      padding:10px 0 12px;
    }
    .chip-nav{
      display:flex;
      align-items:center;
      gap:10px;
      overflow-x:auto;
      scrollbar-width:none;
      -webkit-overflow-scrolling:touch;
    }
    .chip-nav::-webkit-scrollbar{display:none}
    .nav-chip{
      flex:0 0 auto;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      min-height:38px;
      padding:8px 18px;
      border-radius:999px;
      border:1px solid rgba(223,231,240,.95);
      background:#fff;
      color:var(--muted);
      font-weight:800;
      box-shadow:0 8px 18px rgba(19,35,59,.04);
    }
    .nav-chip:hover,.nav-chip:focus{
      color:var(--primary);
      border-color:rgba(22,182,167,.52);
      background:rgba(22,182,167,.08);
      outline:none;
    }
    .nav-chip.active{
      color:#fff;
      border-color:transparent;
      background:linear-gradient(135deg,var(--primary),var(--primary-2));
      box-shadow:0 14px 30px rgba(19,35,59,.16);
    }
    .btn-main,.btn-ghost,.btn-light-custom{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:9px;
      min-height:46px;
      padding:12px 20px;
      border-radius:999px;
      border:1px solid transparent;
      font-weight:900;
      line-height:1;
      cursor:pointer;
      transition:var(--ease);
      white-space:nowrap;
    }
    .btn-main{
      color:#fff;
      background:linear-gradient(135deg,var(--primary),#254d78 70%,var(--accent));
      box-shadow:0 16px 34px rgba(19,35,59,.22);
    }
    .btn-main:hover{
      transform:translateY(-2px);
      color:#fff;
      box-shadow:0 22px 44px rgba(19,35,59,.26);
    }
    .btn-ghost{
      background:#fff;
      color:var(--primary);
      border-color:var(--line);
      box-shadow:0 10px 20px rgba(19,35,59,.06);
    }
    .btn-ghost:hover{
      transform:translateY(-2px);
      border-color:rgba(22,182,167,.55);
      background:rgba(22,182,167,.07);
      color:var(--primary);
    }
    .btn-light-custom{
      background:rgba(255,255,255,.16);
      color:#fff;
      border-color:rgba(255,255,255,.24);
    }
    .btn-light-custom:hover{
      background:#fff;
      color:var(--primary);
      transform:translateY(-2px);
    }
    .btn-main:focus-visible,.btn-ghost:focus-visible,.btn-light-custom:focus-visible,.form-control:focus,.form-select:focus{
      outline:0;
      box-shadow:0 0 0 4px rgba(22,182,167,.18);
      border-color:rgba(22,182,167,.7);
    }
    main{position:relative}
    section{padding:78px 0}
    .section-kicker{
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:7px 12px;
      border-radius:999px;
      background:rgba(22,182,167,.11);
      color:#0b8178;
      font-size:13px;
      font-weight:900;
      margin-bottom:14px;
    }
    .section-title{
      font-size:clamp(28px,4vw,44px);
      line-height:1.16;
      letter-spacing:-.04em;
      font-weight:950;
      margin:0 0 14px;
    }
    .section-desc{
      color:var(--muted);
      font-size:16px;
      max-width:760px;
      margin:0;
    }
    .hero{
      padding:48px 0 74px;
    }
    .hero-stage{
      position:relative;
      overflow:hidden;
      border-radius:var(--radius-lg);
      background:
        linear-gradient(135deg, rgba(19,35,59,.98), rgba(28,63,101,.96) 56%, rgba(22,182,167,.92)),
        radial-gradient(circle at 78% 20%, rgba(255,184,77,.35), transparent 34%);
      color:#fff;
      min-height:540px;
      padding:34px;
      box-shadow:var(--shadow-md);
    }
    .hero-stage:before{
      content:"";
      position:absolute;
      inset:0;
      background:
        linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px),
        linear-gradient(0deg,rgba(255,255,255,.06) 1px,transparent 1px);
      background-size:44px 44px;
      mask-image:linear-gradient(90deg,rgba(0,0,0,.7),transparent 78%);
      opacity:.65;
      pointer-events:none;
    }
    .hero-bento{
      position:relative;
      display:grid;
      grid-template-columns:1.25fr .75fr;
      grid-template-rows:auto 1fr;
      gap:18px;
      min-height:472px;
    }
    .hero-copy{
      grid-row:1 / span 2;
      padding:34px 18px 24px 18px;
      display:flex;
      flex-direction:column;
      justify-content:space-between;
      gap:30px;
    }
    .hero-labels{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-bottom:22px;
    }
    .badge-soft{
      display:inline-flex;
      align-items:center;
      gap:7px;
      border-radius:999px;
      padding:7px 11px;
      background:rgba(255,255,255,.13);
      border:1px solid rgba(255,255,255,.18);
      color:rgba(255,255,255,.92);
      font-size:13px;
      font-weight:850;
      backdrop-filter:blur(10px);
    }
    .hero h1{
      font-size:clamp(38px,6vw,72px);
      line-height:.98;
      letter-spacing:-.065em;
      font-weight:1000;
      max-width:820px;
      margin:0 0 22px;
    }
    .hero-intro{
      max-width:720px;
      color:rgba(255,255,255,.82);
      font-size:18px;
      margin:0;
    }
    .hero-actions{
      display:flex;
      flex-wrap:wrap;
      align-items:center;
      gap:12px;
      margin-top:28px;
    }
    .hero-mini-stats{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:12px;
      max-width:680px;
    }
    .mini-stat{
      padding:16px;
      border-radius:20px;
      background:rgba(255,255,255,.1);
      border:1px solid rgba(255,255,255,.16);
      backdrop-filter:blur(10px);
    }
    .mini-stat strong{
      display:block;
      font-size:26px;
      line-height:1;
      margin-bottom:6px;
      letter-spacing:-.04em;
    }
    .mini-stat span{
      color:rgba(255,255,255,.75);
      font-size:13px;
    }
    .hero-panel{
      border-radius:28px;
      border:1px solid rgba(255,255,255,.18);
      background:rgba(255,255,255,.12);
      backdrop-filter:blur(12px);
      padding:22px;
      box-shadow:var(--shadow-inset);
    }
    .scan-card{
      align-self:start;
    }
    .scan-title{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      margin-bottom:18px;
      font-weight:950;
    }
    .status-dot{
      width:10px;height:10px;border-radius:50%;background:var(--accent-2);
      box-shadow:0 0 0 7px rgba(255,184,77,.15);
    }
    .scan-lines{display:grid;gap:12px}
    .scan-line{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      padding:12px;
      border-radius:16px;
      background:rgba(255,255,255,.1);
      color:rgba(255,255,255,.82);
      font-size:14px;
    }
    .scan-line b{color:#fff}
    .quality-card{
      align-self:end;
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:12px;
    }
    .quality-main{
      grid-column:1 / -1;
      padding:18px;
      border-radius:22px;
      background:#fff;
      color:var(--ink);
    }
    .score-row{
      display:flex;
      align-items:flex-end;
      justify-content:space-between;
      gap:12px;
    }
    .score{
      font-size:48px;
      line-height:.9;
      font-weight:1000;
      letter-spacing:-.07em;
      color:var(--primary);
    }
    .progress-custom{
      height:10px;
      margin-top:14px;
      background:#e8eef5;
      border-radius:999px;
      overflow:hidden;
    }
    .progress-custom i{
      display:block;
      height:100%;
      width:91%;
      background:linear-gradient(90deg,var(--accent),var(--accent-2));
      border-radius:inherit;
    }
    .quality-chip{
      padding:14px;
      border-radius:18px;
      background:rgba(255,255,255,.13);
      border:1px solid rgba(255,255,255,.14);
    }
    .quality-chip b{display:block;font-size:22px}
    .quality-chip span{font-size:12px;color:rgba(255,255,255,.72)}
    .pain-band{
      padding-top:28px;
    }
    .pain-grid{
      display:grid;
      grid-template-columns:1.04fr .96fr;
      gap:24px;
      align-items:stretch;
    }
    .pain-card{
      background:var(--surface);
      border:1px solid var(--line);
      border-radius:var(--radius-lg);
      padding:30px;
      box-shadow:var(--shadow-sm);
      height:100%;
    }
    .pain-list{
      display:grid;
      gap:14px;
      margin-top:22px;
    }
    .pain-item{
      display:flex;
      gap:12px;
      align-items:flex-start;
      padding:15px;
      border-radius:18px;
      background:linear-gradient(180deg,#fff,#f8fbfd);
      border:1px solid rgba(223,231,240,.84);
    }
    .pain-icon{
      width:32px;height:32px;border-radius:12px;
      display:grid;place-items:center;
      flex:0 0 auto;
      color:#fff;
      background:linear-gradient(135deg,var(--danger),#ff9a6b);
      font-weight:900;
    }
    .pain-item strong{display:block;margin-bottom:3px}
    .pain-item p{margin:0;color:var(--muted);font-size:14px}
    .solution-map{
      position:relative;
      overflow:hidden;
      background:
        radial-gradient(circle at 18% 12%, rgba(22,182,167,.2), transparent 28%),
        linear-gradient(145deg,#14243c,#203b60);
      color:#fff;
      border-radius:var(--radius-lg);
      padding:30px;
      min-height:100%;
      box-shadow:var(--shadow-md);
    }
    .map-path{
      display:grid;
      gap:16px;
      margin-top:28px;
    }
    .map-step{
      display:grid;
      grid-template-columns:auto 1fr;
      gap:14px;
      align-items:start;
      position:relative;
      padding:18px;
      border-radius:22px;
      background:rgba(255,255,255,.1);
      border:1px solid rgba(255,255,255,.15);
    }
    .map-step em{
      width:38px;height:38px;border-radius:15px;
      display:grid;place-items:center;
      font-style:normal;
      background:#fff;
      color:var(--primary);
      font-weight:1000;
    }
    .map-step p{margin:3px 0 0;color:rgba(255,255,255,.75);font-size:14px}
    .track-section{
      background:linear-gradient(180deg,rgba(238,243,248,.72),rgba(246,248,251,.15));
      border-block:1px solid rgba(223,231,240,.7);
    }
    .rail-head{
      display:flex;
      align-items:end;
      justify-content:space-between;
      gap:20px;
      margin-bottom:26px;
    }
    .rail-scroll{
      display:grid;
      grid-auto-flow:column;
      grid-auto-columns:minmax(280px, 360px);
      gap:18px;
      overflow-x:auto;
      padding:6px 2px 18px;
      scrollbar-color:rgba(19,35,59,.25) transparent;
    }
    .track-card{
      min-height:250px;
      border-radius:28px;
      background:#fff;
      border:1px solid var(--line);
      padding:24px;
      box-shadow:var(--shadow-sm);
      transition:var(--ease);
      position:relative;
      overflow:hidden;
    }
    .track-card:after{
      content:"";
      position:absolute;
      width:110px;height:110px;border-radius:32px;
      right:-30px;top:-36px;
      background:rgba(22,182,167,.1);
      transform:rotate(18deg);
    }
    .track-card:hover{
      transform:translateY(-5px);
      box-shadow:var(--shadow-md);
      border-color:rgba(22,182,167,.45);
    }
    .track-top{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      margin-bottom:28px;
    }
    .track-num{
      width:46px;height:46px;border-radius:18px;
      display:grid;place-items:center;
      background:var(--surface-2);
      color:var(--primary);
      font-weight:1000;
    }
    .tag{
      display:inline-flex;
      align-items:center;
      border-radius:999px;
      padding:6px 10px;
      background:rgba(22,182,167,.1);
      color:#0d7d74;
      font-size:12px;
      font-weight:900;
    }
    .track-card h3{font-size:21px;font-weight:950;margin:0 0 10px}
    .track-card p{color:var(--muted);margin:0 0 18px;font-size:15px}
    .track-link{font-weight:950;color:var(--primary)}
    .recommend-layout{
      display:grid;
      grid-template-columns:1.1fr .9fr;
      gap:22px;
      margin-top:28px;
    }
    .recommend-feature{
      border-radius:var(--radius-lg);
      background:
        linear-gradient(145deg,rgba(19,35,59,.94),rgba(27,58,89,.92)),
        radial-gradient(circle at 80% 20%, rgba(255,184,77,.45), transparent 30%);
      color:#fff;
      padding:30px;
      min-height:420px;
      display:flex;
      flex-direction:column;
      justify-content:space-between;
      box-shadow:var(--shadow-md);
      overflow:hidden;
      position:relative;
    }
    .recommend-feature:after{
      content:"";
      position:absolute;
      width:250px;height:250px;
      right:-80px;bottom:-90px;
      border-radius:50%;
      background:rgba(22,182,167,.18);
    }
    .heat-badge{
      display:inline-flex;
      align-items:center;
      gap:7px;
      width:max-content;
      padding:8px 12px;
      border-radius:999px;
      background:rgba(255,184,77,.18);
      color:#ffe3b2;
      border:1px solid rgba(255,184,77,.28);
      font-weight:900;
      font-size:13px;
    }
    .recommend-feature h3{
      position:relative;
      font-size:34px;
      line-height:1.15;
      font-weight:1000;
      letter-spacing:-.04em;
      margin:22px 0 12px;
      max-width:540px;
    }
    .recommend-feature p{
      position:relative;
      max-width:560px;
      color:rgba(255,255,255,.78);
      margin:0;
    }
    .feature-pills{
      position:relative;
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-top:28px;
    }
    .feature-pills span{
      padding:8px 11px;
      border-radius:999px;
      background:rgba(255,255,255,.1);
      border:1px solid rgba(255,255,255,.14);
      color:rgba(255,255,255,.84);
      font-size:13px;
      font-weight:850;
    }
    .recommend-side{
      display:grid;
      gap:16px;
    }
    .small-rec{
      display:grid;
      grid-template-columns:auto 1fr auto;
      gap:14px;
      align-items:center;
      padding:18px;
      border-radius:24px;
      background:#fff;
      border:1px solid var(--line);
      box-shadow:var(--shadow-sm);
      transition:var(--ease);
    }
    .small-rec:hover{
      transform:translateX(4px);
      border-color:rgba(22,182,167,.44);
    }
    .rec-rank{
      width:42px;height:42px;border-radius:16px;
      display:grid;place-items:center;
      background:#f0f5fa;
      color:var(--primary);
      font-weight:1000;
    }
    .small-rec h4{font-size:17px;font-weight:950;margin:0 0 4px}
    .small-rec p{margin:0;color:var(--muted);font-size:14px}
    .rec-arrow{
      width:34px;height:34px;border-radius:50%;
      display:grid;place-items:center;
      background:rgba(22,182,167,.1);
      color:#0d8178;
      font-weight:950;
    }
    .topic-section{
      padding-top:50px;
    }
    .topic-grid{
      display:grid;
      grid-template-columns:1fr 1fr 1fr;
      gap:18px;
      margin-top:28px;
    }
    .topic-card{
      border-radius:26px;
      background:#fff;
      border:1px solid var(--line);
      padding:22px;
      box-shadow:var(--shadow-sm);
      transition:var(--ease);
    }
    .topic-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
    .topic-card h3{font-weight:950;font-size:20px;margin:0 0 10px}
    .topic-card p{color:var(--muted);font-size:14px;margin:0 0 18px}
    .topic-tags{
      display:flex;
      flex-wrap:wrap;
      gap:9px;
    }
    .topic-tags span{
      padding:6px 10px;
      border-radius:999px;
      background:#f1f6f8;
      color:#476070;
      font-size:12px;
      font-weight:850;
    }
    .news-section{
      background:#fff;
      border-block:1px solid var(--line);
    }
    .news-layout{
      display:grid;
      grid-template-columns:1.25fr .75fr;
      gap:26px;
      margin-top:28px;
    }
    .news-list{
      background:#fff;
      border:1px solid var(--line);
      border-radius:var(--radius-lg);
      overflow:hidden;
      box-shadow:var(--shadow-sm);
    }
    .news-item{
      display:grid;
      grid-template-columns:1fr auto;
      gap:18px;
      padding:20px 22px;
      border-bottom:1px solid var(--line);
      align-items:center;
    }
    .news-item:last-child{border-bottom:0}
    .news-item:hover{background:#f8fbfd}
    .news-item h3{font-size:18px;font-weight:950;margin:0 0 6px}
    .news-item p{margin:0;color:var(--muted);font-size:14px}
    .news-date{
      color:var(--soft);
      font-weight:900;
      font-size:13px;
      white-space:nowrap;
    }
    .side-panel{
      border-radius:var(--radius-lg);
      border:1px solid var(--line);
      background:
        radial-gradient(circle at 88% 16%, rgba(22,182,167,.15), transparent 34%),
        #f8fbfd;
      padding:24px;
      box-shadow:var(--shadow-sm);
    }
    .side-panel h3{font-weight:950;margin:0 0 12px}
    .side-panel p{color:var(--muted);margin:0 0 18px}
    .check-list{
      list-style:none;
      padding:0;
      margin:0;
      display:grid;
      gap:12px;
    }
    .check-list li{
      display:flex;
      gap:10px;
      align-items:flex-start;
      color:#445368;
      font-size:14px;
    }
    .check-list li:before{
      content:"✓";
      width:22px;height:22px;
      border-radius:50%;
      flex:0 0 auto;
      display:grid;place-items:center;
      background:rgba(28,168,121,.12);
      color:var(--success);
      font-weight:1000;
      line-height:1;
      margin-top:1px;
    }
    .demo-layout{
      display:grid;
      grid-template-columns:.92fr 1.08fr;
      gap:26px;
      align-items:center;
      margin-top:28px;
    }
    .demo-steps{
      display:grid;
      gap:16px;
    }
    .demo-step{
      display:grid;
      grid-template-columns:auto 1fr;
      gap:14px;
      padding:18px;
      border-radius:24px;
      background:#fff;
      border:1px solid var(--line);
      box-shadow:var(--shadow-sm);
    }
    .demo-step b{
      width:42px;height:42px;border-radius:16px;
      display:grid;place-items:center;
      background:linear-gradient(135deg,var(--accent),#46ccb9);
      color:#fff;
      font-weight:1000;
    }
    .demo-step h3{font-size:18px;font-weight:950;margin:0 0 4px}
    .demo-step p{margin:0;color:var(--muted);font-size:14px}
    .screen-card{
      border-radius:var(--radius-lg);
      background:#12213a;
      padding:18px;
      box-shadow:var(--shadow-md);
      color:#fff;
      overflow:hidden;
    }
    .screen-top{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      padding:8px 8px 18px;
      color:rgba(255,255,255,.68);
      font-size:13px;
      font-weight:850;
    }
    .window-dots{display:flex;gap:7px}
    .window-dots i{width:10px;height:10px;border-radius:50%;background:#ff6b6b}
    .window-dots i:nth-child(2){background:#ffc85a}
    .window-dots i:nth-child(3){background:#35d19b}
    .screen-body{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:14px;
    }
    .screen-block{
      border-radius:22px;
      background:rgba(255,255,255,.08);
      border:1px solid rgba(255,255,255,.12);
      padding:16px;
    }
    .screen-block.large{grid-column:1 / -1}
    .code-line{
      height:11px;
      border-radius:999px;
      background:rgba(255,255,255,.18);
      margin:10px 0;
    }
    .code-line.good{background:linear-gradient(90deg,rgba(22,182,167,.85),rgba(255,255,255,.18))}
    .code-line.warn{background:linear-gradient(90deg,rgba(255,184,77,.9),rgba(255,255,255,.16))}
    .proof-section{
      background:linear-gradient(180deg,#f6f8fb,#eef4f8);
    }
    .proof-grid{
      display:grid;
      grid-template-columns:repeat(4,1fr);
      gap:16px;
      margin:28px 0;
    }
    .proof-stat{
      background:#fff;
      border:1px solid var(--line);
      border-radius:26px;
      padding:22px;
      box-shadow:var(--shadow-sm);
    }
    .proof-stat strong{
      display:block;
      font-size:34px;
      line-height:1;
      font-weight:1000;
      color:var(--primary);
      letter-spacing:-.05em;
      margin-bottom:8px;
    }
    .proof-stat span{color:var(--muted);font-size:14px}
    .quote-row{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:18px;
    }
    .quote-card{
      background:#fff;
      border:1px solid var(--line);
      border-radius:var(--radius-lg);
      padding:26px;
      box-shadow:var(--shadow-sm);
    }
    .quote-card p{font-size:16px;margin:0 0 18px;color:#314056}
    .quote-author{
      display:flex;
      align-items:center;
      gap:12px;
    }
    .avatar{
      width:42px;height:42px;border-radius:50%;
      display:grid;place-items:center;
      color:#fff;
      background:linear-gradient(135deg,var(--primary),var(--accent));
      font-weight:1000;
    }
    .quote-author strong{display:block;font-weight:950}
    .quote-author span{display:block;color:var(--muted);font-size:13px}
    .faq-wrap{
      display:grid;
      grid-template-columns:.9fr 1.1fr;
      gap:28px;
      align-items:start;
    }
    .accordion-custom{
      display:grid;
      gap:14px;
    }
    .faq-card{
      border:1px solid var(--line);
      border-radius:24px;
      background:#fff;
      overflow:hidden;
      box-shadow:var(--shadow-sm);
    }
    .faq-button{
      width:100%;
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:16px;
      padding:19px 22px;
      background:#fff;
      border:0;
      color:var(--ink);
      font-weight:950;
      text-align:left;
    }
    .faq-button:hover{background:#f8fbfd}
    .faq-button:focus-visible{
      outline:0;
      box-shadow:inset 0 0 0 3px rgba(22,182,167,.18);
    }
    .faq-button span:last-child{
      width:28px;height:28px;border-radius:50%;
      display:grid;place-items:center;
      background:rgba(22,182,167,.1);
      color:#0e8279;
      flex:0 0 auto;
    }
    .faq-body{
      padding:0 22px 20px;
      color:var(--muted);
      font-size:15px;
    }
    .cta-section{
      padding-top:36px;
    }
    .cta-box{
      border-radius:var(--radius-lg);
      background:
        radial-gradient(circle at 18% 20%, rgba(22,182,167,.28), transparent 30%),
        radial-gradient(circle at 88% 10%, rgba(255,184,77,.22), transparent 32%),
        linear-gradient(135deg,#111f35,#213f66);
      color:#fff;
      padding:34px;
      box-shadow:var(--shadow-md);
      display:grid;
      grid-template-columns:1fr 420px;
      gap:28px;
      align-items:center;
      overflow:hidden;
      position:relative;
    }
    .cta-box h2{
      font-size:clamp(28px,4vw,46px);
      line-height:1.12;
      font-weight:1000;
      letter-spacing:-.05em;
      margin:0 0 14px;
      max-width:760px;
    }
    .cta-box p{color:rgba(255,255,255,.78);margin:0;max-width:740px}
    .countdown{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-top:24px;
    }
    .time-cell{
      min-width:74px;
      padding:13px 10px;
      border-radius:18px;
      background:rgba(255,255,255,.11);
      border:1px solid rgba(255,255,255,.16);
      text-align:center;
    }
    .time-cell strong{
      display:block;
      font-size:26px;
      line-height:1;
      font-weight:1000;
    }
    .time-cell span{color:rgba(255,255,255,.66);font-size:12px}
    .lead-form{
      background:#fff;
      color:var(--ink);
      border-radius:28px;
      padding:22px;
      box-shadow:0 24px 60px rgba(0,0,0,.22);
    }
    .lead-form h3{font-weight:1000;margin:0 0 6px}
    .lead-form p{color:var(--muted);font-size:14px;margin:0 0 16px}
    .form-control,.form-select{
      min-height:48px;
      border-radius:16px;
      border:1px solid var(--line);
      background:#f8fbfd;
      color:var(--ink);
      padding:11px 14px;
      box-shadow:none;
    }
    textarea.form-control{min-height:92px;resize:vertical}
    .privacy-note{
      display:flex;
      gap:8px;
      align-items:flex-start;
      color:var(--muted);
      font-size:12px;
      margin:12px 0 16px;
    }
    .privacy-note:before{
      content:"●";
      color:var(--accent);
      font-size:10px;
      margin-top:3px;
    }
    .form-message{
      display:none;
      margin-top:12px;
      padding:10px 12px;
      border-radius:14px;
      background:rgba(28,168,121,.1);
      color:#0d7656;
      font-weight:850;
      font-size:14px;
    }
    .site-footer{
      padding:54px 0 34px;
      background:#0f1d31;
      color:rgba(255,255,255,.78);
    }
    .footer-grid{
      display:grid;
      grid-template-columns:1.1fr .9fr;
      gap:28px;
      align-items:start;
      padding-bottom:30px;
      border-bottom:1px solid rgba(255,255,255,.1);
    }
    .footer-brand{
      display:flex;
      gap:14px;
      align-items:center;
      margin-bottom:14px;
    }
    .footer-brand .logo-mark{box-shadow:none}
    .footer-brand strong{
      display:block;
      color:#fff;
      font-size:18px;
      font-weight:1000;
    }
    .footer-text{max-width:720px;margin:0;color:rgba(255,255,255,.66)}
    .footer-links{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      justify-content:flex-end;
    }
    .footer-links a{
      padding:8px 12px;
      border-radius:999px;
      background:rgba(255,255,255,.07);
      color:rgba(255,255,255,.78);
      font-weight:850;
      font-size:13px;
    }
    .footer-links a:hover{background:rgba(22,182,167,.18);color:#fff}
    .footer-bottom{
      padding-top:20px;
      display:flex;
      justify-content:space-between;
      gap:16px;
      flex-wrap:wrap;
      color:rgba(255,255,255,.52);
      font-size:13px;
    }
    @media (max-width:1024px){
      :root{--header-h:74px}
      section{padding:62px 0}
      .search-pill{width:220px}
      .hero-bento,.pain-grid,.recommend-layout,.news-layout,.demo-layout,.faq-wrap,.cta-box{
        grid-template-columns:1fr;
      }
      .hero-copy{grid-row:auto;padding:20px 8px}
      .hero-stage{min-height:auto}
      .quality-card{align-self:auto}
      .topic-grid{grid-template-columns:1fr 1fr}
      .proof-grid{grid-template-columns:1fr 1fr}
      .footer-grid{grid-template-columns:1fr}
      .footer-links{justify-content:flex-start}
    }
    @media (max-width:768px){
      .container-fluid-custom,.container-custom{width:min(100% - 28px,var(--container))}
      .brand-row{align-items:flex-start;flex-direction:column;gap:12px}
      .header-actions{width:100%;justify-content:space-between}
      .search-pill{width:100%;flex:1}
      .brand-name{max-width:calc(100vw - 92px);font-size:16px}
      .brand-slogan{max-width:calc(100vw - 92px)}
      .hero{padding-top:28px}
      .hero-stage{border-radius:28px;padding:22px}
      .hero-mini-stats{grid-template-columns:1fr}
      .quality-card{grid-template-columns:1fr}
      .rail-head{align-items:flex-start;flex-direction:column}
      .rail-scroll{grid-auto-columns:minmax(260px,85vw)}
      .small-rec{grid-template-columns:auto 1fr}
      .rec-arrow{display:none}
      .screen-body{grid-template-columns:1fr}
      .quote-row{grid-template-columns:1fr}
      .cta-box{padding:24px}
      .lead-form{padding:18px}
    }
    @media (max-width:520px){
      section{padding:50px 0}
      .hero h1{font-size:38px}
      .hero-intro{font-size:16px}
      .hero-actions{align-items:stretch}
      .hero-actions a,.hero-actions button,.btn-main,.btn-ghost,.btn-light-custom{width:100%}
      .topic-grid,.proof-grid{grid-template-columns:1fr}
      .news-item{grid-template-columns:1fr}
      .news-date{white-space:normal}
      .countdown{display:grid;grid-template-columns:1fr 1fr}
      .time-cell{min-width:0}
      .footer-bottom{flex-direction:column}
    }

/* roulang: framework shim */
/* 覆盖 Bootstrap 等对 a/btn 的全局默认，避免导航出现下划线/蓝链 */
.site-header a,.site-header a:hover,.navbar a,.navbar a:hover,.nav-links a,.nav-links a:hover,header nav a,header nav a:hover{text-decoration:none}
.site-header .btn,.navbar .btn,.nav-cta{text-decoration:none}
