:root{
    --brand:#0bbf66;
    --brand-deep:#07914e;
    --brand-ink:#0c2418;
    --ink:#0d2118;
    --body:#3f5b4c;
    --muted:#5f7a6b;
    --line:#dcefe4;
    --line-soft:#eaf6ef;
    --card:#ffffff;
    --radius:18px;
  }
  *,*::before,*::after{box-sizing:border-box;}
  html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
  body{
    margin:0;
    font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
    font-size:16px;
    line-height:1.7;
    color:var(--body);
    background:
      radial-gradient(1100px 520px at 6% -10%, #d9fbe9 0%, rgba(217,251,233,0) 62%),
      radial-gradient(900px 480px at 100% 2%, #e9fdf1 0%, rgba(233,253,241,0) 58%),
      #f6fdf9;
  }
  h1,h2,h3{color:var(--ink);line-height:1.32;margin:0;}
  p{margin:0;}
  a{color:var(--brand-deep);text-decoration:none;}
  a:hover{color:#0a7a45;}
  img{max-width:100%;display:block;}
  ul{margin:0;padding:0;list-style:none;}
  .container{width:100%;max-width:1180px;margin:0 auto;padding:0 20px;}
  section[id]{scroll-margin-top:90px;}

  /* ---------- Header ---------- */
  .site-header{
    position:sticky;top:0;z-index:60;
    background:rgba(247,253,249,.94);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:10px;padding-bottom:10px;}
  .brand{display:flex;align-items:center;gap:10px;flex:none;}
  .ai-page-logo{max-height:36px;width:auto;height:auto;}
  .brand-text{font-weight:800;font-size:18px;color:var(--brand-ink);letter-spacing:.5px;}
  .site-nav{display:flex;align-items:center;gap:14px;}
  .nav-links{display:flex;align-items:center;flex-wrap:wrap;gap:0;}
  .nav-links a{
    display:inline-block;padding:8px 9px;font-size:14px;font-weight:500;
    color:#2f4a3d;border-radius:8px;transition:color .2s,background .2s;
  }
  .nav-links a:hover{color:var(--brand-deep);background:#e6f9ef;}
  .nav-cta{white-space:nowrap;}
  .nav-toggle{
    display:none;align-items:center;justify-content:center;
    padding:8px 14px;border-radius:10px;border:1px solid #bfe9d3;
    background:#fff;color:var(--brand-deep);font-size:14px;font-weight:700;
    font-family:inherit;cursor:pointer;
  }

  /* ---------- Buttons ---------- */
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    padding:12px 26px;border-radius:999px;font-size:15px;font-weight:700;
    border:1px solid transparent;cursor:pointer;font-family:inherit;
    transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease;
  }
  .btn-primary{
    background:linear-gradient(135deg,#12cf74,#07914e);
    color:#ffffff;box-shadow:0 10px 22px rgba(8,158,82,.28);
  }
  .btn-primary:hover{color:#ffffff;transform:translateY(-2px);box-shadow:0 14px 28px rgba(8,158,82,.36);}
  .btn-ghost{background:#ffffff;color:#087a44;border-color:#bfe9d3;}
  .btn-ghost:hover{border-color:var(--brand);background:#f2fdf7;transform:translateY(-2px);color:#087a44;}
  .btn:active{transform:translateY(0);}

  /* ---------- Shared section ---------- */
  .section{padding:64px 0;}
  .section-head{max-width:780px;margin:0 auto 36px;text-align:center;}
  .section-head--left{max-width:none;margin:0 0 32px;text-align:left;}
  .eyebrow{
    display:inline-flex;align-items:center;gap:8px;
    font-size:13px;font-weight:700;color:var(--brand-deep);
    background:#e4f9ee;border:1px solid #c7edd8;
    padding:6px 14px;border-radius:999px;letter-spacing:.4px;
  }
  .section-head h2{font-size:clamp(22px,3vw,32px);margin-top:14px;}
  .section-desc{margin-top:12px;color:#4a6557;font-size:15.5px;}

  /* ---------- Hero ---------- */
  .hero{padding:56px 0 44px;}
  .hero-inner{display:grid;grid-template-columns:1.12fr .88fr;gap:48px;align-items:center;}
  .hero h1{font-size:clamp(27px,4.2vw,42px);margin-top:18px;letter-spacing:-.5px;}
  .hero-lead{margin-top:16px;font-size:16.5px;color:#3f5f4d;max-width:580px;}
  .hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:26px;}
  .hero-note{margin-top:16px;font-size:13.5px;color:var(--muted);}
  .hero-panel{
    position:relative;background:var(--card);border:1px solid var(--line);
    border-radius:22px;padding:24px;box-shadow:0 22px 44px rgba(9,100,55,.10);
    overflow:hidden;
  }
  .hero-panel::before{
    content:"";position:absolute;top:0;left:0;right:0;height:5px;
    background:linear-gradient(90deg,#12cf74,#a6f2c8);
  }
  .panel-head{
    display:flex;align-items:center;gap:8px;
    font-size:13px;font-weight:800;color:var(--brand-ink);
    letter-spacing:.6px;margin-bottom:16px;
  }
  .dot{width:8px;height:8px;border-radius:50%;background:#12cf74;box-shadow:0 0 0 4px rgba(18,207,116,.18);flex:none;}
  .chip-grid{display:flex;flex-wrap:wrap;gap:8px;}
  .chip{
    font-size:12.5px;font-weight:600;padding:5px 11px;border-radius:999px;
    background:#f2fbf6;border:1px solid #d7efe1;color:#26503b;
  }
  .panel-list{margin-top:18px;padding-top:14px;border-top:1px dashed #d7efe1;display:grid;gap:10px;}
  .panel-list li{display:flex;gap:9px;align-items:flex-start;font-size:13.5px;color:#3f5b4c;}
  .panel-list li::before{content:"";width:6px;height:6px;border-radius:50%;background:#12cf74;margin-top:8px;flex:none;}

  .stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:48px;}
  .stat-card{
    background:var(--card);border:1px solid var(--line);border-radius:16px;
    padding:18px 20px;box-shadow:0 8px 20px rgba(9,100,55,.06);
    transition:transform .25s ease,box-shadow .25s ease;
  }
  .stat-card:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(9,100,55,.11);}
  .stat-card strong{display:block;font-size:26px;line-height:1.2;color:#07864a;font-weight:800;}
  .stat-card span{font-size:13.5px;color:var(--muted);}

  /* ---------- Cards ---------- */
  .card{
    background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
    padding:22px;box-shadow:0 10px 24px rgba(9,100,55,.06);
    transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
  }
  .card:hover{transform:translateY(-4px);box-shadow:0 18px 34px rgba(9,100,55,.12);border-color:#b9e8cf;}
  .card h3{font-size:17px;margin-bottom:8px;}
  .card p{font-size:14.5px;color:#4d6859;}

  .ability-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:34px;}
  .service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;}
  .service-card{position:relative;padding-top:24px;}
  .service-card::after{
    content:"";position:absolute;left:22px;top:14px;width:26px;height:4px;
    border-radius:2px;background:linear-gradient(90deg,#12cf74,#a6f2c8);
  }

  /* ---------- About ---------- */
  .about-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:start;}
  .about-text p{font-size:15.5px;color:#43604f;margin-top:14px;}
  .about-text p:first-of-type{margin-top:0;}
  .media-frame{
    border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);
    background:#f1faf5;box-shadow:0 14px 30px rgba(9,100,55,.09);
  }
  .media-frame img{width:100%;height:auto;}

  /* ---------- Tag cloud ---------- */
  .tag-cloud{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;}
  .tag-cloud span{
    background:var(--card);border:1px solid #d3eee0;color:#2b503c;
    padding:7px 14px;border-radius:999px;font-size:13.5px;font-weight:600;
    transition:border-color .2s,color .2s,transform .2s;
  }
  .tag-cloud span:hover{border-color:var(--brand);color:var(--brand-deep);transform:translateY(-2px);}

  /* ---------- Network list ---------- */
  .net-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;}
  .net-item{
    background:var(--card);border:1px solid var(--line);border-left:4px solid #12cf74;
    border-radius:14px;padding:18px 20px;
    transition:box-shadow .25s ease,transform .25s ease;
  }
  .net-item:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(9,100,55,.10);}
  .net-item h3{font-size:16px;margin-bottom:6px;}
  .net-item p{font-size:14px;color:#4d6859;}

  /* ---------- Process ---------- */
  .process{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;}
  .step{
    background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px 18px;
    box-shadow:0 8px 20px rgba(9,100,55,.05);
    transition:transform .25s ease,box-shadow .25s ease;
  }
  .step:hover{transform:translateY(-3px);box-shadow:0 16px 30px rgba(9,100,55,.11);}
  .step-num{
    width:30px;height:30px;border-radius:999px;display:grid;place-items:center;
    background:#e5f9ee;color:#07914e;font-size:13px;font-weight:800;margin-bottom:12px;
  }
  .step h3{font-size:15.5px;margin-bottom:6px;}
  .step p{font-size:13.5px;color:#4d6859;}

  /* ---------- Cases ---------- */
  .case-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;}
  .case-card{
    background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
    padding:16px;box-shadow:0 10px 24px rgba(9,100,55,.06);
    display:flex;flex-direction:column;gap:14px;
    transition:transform .25s ease,box-shadow .25s ease;
  }
  .case-card:hover{transform:translateY(-4px);box-shadow:0 18px 34px rgba(9,100,55,.13);}
  .case-media{
    aspect-ratio:4/3;border-radius:12px;background:#f1faf5;border:1px solid var(--line-soft);
    display:flex;align-items:center;justify-content:center;overflow:hidden;
  }
  .case-media img{width:100%;height:100%;object-fit:contain;}
  .case-card h3{font-size:16.5px;margin:0 0 6px;}
  .case-card p{font-size:14px;color:#4d6859;}

  /* ---------- Compare ---------- */
  .score-card{
    display:flex;flex-wrap:wrap;align-items:center;gap:28px;
    background:linear-gradient(135deg,#0bbf66,#07914e);
    color:#ffffff;border-radius:20px;padding:26px 30px;
    box-shadow:0 18px 36px rgba(8,158,82,.28);margin-bottom:26px;
  }
  .score-main{display:flex;align-items:baseline;gap:8px;}
  .score-num{font-size:46px;font-weight:800;line-height:1;color:#ffffff;}
  .score-total{font-size:15px;color:#d9ffe9;}
  .score-meta{display:flex;flex-direction:column;gap:4px;}
  .stars{color:#ffe14d;font-size:18px;letter-spacing:3px;line-height:1.2;}
  .score-meta span{font-size:14px;color:#e3fff0;}
  .score-tag{
    margin-left:auto;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.4);
    color:#ffffff;font-size:13.5px;font-weight:700;padding:8px 16px;border-radius:999px;
  }

  .table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:16px;background:var(--card);box-shadow:0 10px 24px rgba(9,100,55,.06);}
  table{border-collapse:collapse;width:100%;min-width:640px;font-size:14.5px;}
  thead th{background:#f0fbf5;color:var(--ink);font-weight:700;text-align:left;}
  th,td{padding:14px 16px;border-bottom:1px solid var(--line-soft);vertical-align:top;}
  tbody tr:last-child td{border-bottom:none;}
  tbody tr:hover{background:#fbfefc;}
  td.dim{color:#7c9187;}
  td.good{color:#06824a;font-weight:700;}

  /* ---------- Match ---------- */
  .match-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;}
  .match-item{
    background:var(--card);border:1px solid var(--line);border-left:4px solid #12cf74;
    border-radius:14px;padding:18px 20px;
    transition:transform .25s ease,box-shadow .25s ease;
  }
  .match-item:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(9,100,55,.10);}
  .match-item p{font-size:14.5px;color:#33513f;}
  .match-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
  .match-tags span{
    font-size:12.5px;font-weight:600;padding:4px 10px;border-radius:999px;
    background:#effcf5;border:1px solid #cdeedc;color:#0a7a45;
  }

  /* ---------- Reviews ---------- */
  .review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:18px;}
  .review{
    background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
    padding:22px;display:flex;flex-direction:column;gap:14px;
    box-shadow:0 10px 24px rgba(9,100,55,.06);
    transition:transform .25s ease,box-shadow .25s ease;
  }
  .review:hover{transform:translateY(-4px);box-shadow:0 18px 34px rgba(9,100,55,.12);}
  .review p{font-size:14.5px;color:#3f5b4c;}
  .review-by{display:flex;align-items:center;gap:10px;margin-top:auto;}
  .avatar{
    width:38px;height:38px;border-radius:50%;background:#e2f8ec;color:#0a7a45;
    display:grid;place-items:center;font-weight:800;font-size:14px;flex:none;
  }
  .review-by strong{display:block;font-size:14px;color:var(--ink);line-height:1.4;}
  .review-by small{font-size:12.5px;color:var(--muted);}

  /* ---------- FAQ ---------- */
  .faq-list{display:grid;gap:12px;max-width:920px;margin:0 auto;}
  .faq-item{
    background:var(--card);border:1px solid var(--line);border-radius:14px;
    padding:2px 20px;box-shadow:0 6px 16px rgba(9,100,55,.05);
    transition:border-color .2s ease,box-shadow .2s ease;
  }
  .faq-item[open]{border-color:#a9e6c6;box-shadow:0 12px 26px rgba(9,100,55,.10);}
  .faq-item summary{
    list-style:none;cursor:pointer;position:relative;
    padding:15px 32px 15px 0;font-size:15.5px;font-weight:700;color:var(--ink);
  }
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item summary::after{
    content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);
    font-size:20px;font-weight:700;color:var(--brand);line-height:1;transition:transform .2s ease;
  }
  .faq-item[open] summary::after{content:"−";}
  .faq-a{margin:0 0 16px;font-size:14.5px;color:#4d6859;}

  /* ---------- Wiki ---------- */
  .wiki-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;}
  .wiki-item{
    background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 20px;
    transition:border-color .2s ease,transform .2s ease;
  }
  .wiki-item:hover{border-color:#b9e8cf;transform:translateY(-3px);}
  .wiki-item h3{font-size:15.5px;margin-bottom:6px;}
  .wiki-item p{font-size:14px;color:#4d6859;}

  /* ---------- News ---------- */
  .news-list{display:grid;gap:12px;max-width:920px;margin:0 auto;}
  .news-item{
    display:flex;align-items:center;justify-content:space-between;gap:16px;
    background:var(--card);border:1px solid var(--line);border-radius:14px;
    padding:16px 20px;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease;
  }
  .news-item:hover{border-color:#b9e8cf;transform:translateY(-2px);box-shadow:0 12px 24px rgba(9,100,55,.09);}
  .news-item span{font-size:15px;font-weight:600;color:var(--ink);}
  .news-item em{
    font-style:normal;font-size:13px;font-weight:700;color:#0a7a45;
    background:#effcf5;border:1px solid #cdeedc;border-radius:999px;padding:4px 12px;white-space:nowrap;flex:none;
  }

  /* ---------- Contact ---------- */
  .contact-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:32px;align-items:start;}
  .form-card{
    background:var(--card);border:1px solid var(--line);border-radius:20px;padding:26px;
    box-shadow:0 14px 30px rgba(9,100,55,.08);
  }
  .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  .field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;}
  .field label{font-size:13.5px;font-weight:700;color:#173a28;}
  .field input,.field select,.field textarea{
    width:100%;padding:11px 14px;border:1px solid #cfe8db;border-radius:10px;
    background:#f8fdfa;font-size:14.5px;color:#173a28;font-family:inherit;
    transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
  }
  .field input:focus,.field select:focus,.field textarea:focus{
    outline:none;border-color:#12cf74;background:#ffffff;
    box-shadow:0 0 0 3px rgba(18,207,116,.16);
  }
  .field textarea{resize:vertical;min-height:112px;}
  .form-tip{font-size:12.5px;color:var(--muted);margin-top:12px;}
  .contact-list{display:grid;gap:12px;}
  .contact-list li{
    background:var(--card);border:1px solid var(--line);border-radius:12px;
    padding:12px 16px;font-size:14.5px;color:#3f5b4c;
  }
  .contact-list strong{color:var(--ink);font-weight:700;}
  .qr-box{
    background:var(--card);border:1px solid var(--line);border-radius:16px;
    padding:18px;text-align:center;margin-top:16px;
  }
  .qr-box img{width:170px;max-width:100%;height:auto;margin:0 auto 10px;border-radius:10px;}
  .qr-box span{font-size:13px;color:var(--muted);}

  /* ---------- Join ---------- */
  .join-box{
    background:linear-gradient(135deg,#e9fdf2,#f4fef8);
    border:1px solid #c9efdb;border-radius:22px;padding:34px;
    display:grid;grid-template-columns:1.1fr .9fr;gap:32px;align-items:center;
  }
  .join-box h2{font-size:clamp(21px,2.6vw,28px);}
  .join-box p{margin-top:12px;font-size:15px;color:#43604f;}
  .join-list{display:grid;gap:12px;}
  .join-list li{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;color:#33513f;}
  .join-list li::before{
    content:"";width:18px;height:18px;border-radius:50%;flex:none;margin-top:4px;
    background:#12cf74;
    box-shadow:inset 0 0 0 4px #e9fdf2;
  }
  .join-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px;}

  /* ---------- Footer ---------- */
  .site-footer{background:#07281a;color:#c9e6d6;padding:48px 0 0;margin-top:0;}
  .footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1.1fr;gap:32px;padding-bottom:32px;}
  .footer-brand{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
  .footer-brand .brand-text{color:#ffffff;font-size:17px;}
  .footer-desc{font-size:14px;color:#9cc9b3;line-height:1.75;}
  .site-footer h3{color:#ffffff;font-size:15px;margin-bottom:12px;}
  .footer-links{display:grid;gap:8px;}
  .footer-links a{color:#a9dcc2;font-size:14px;}
  .footer-links a:hover{color:#7ff0b4;}
  .footer-links--inline{display:flex;flex-wrap:wrap;gap:10px 16px;}
  .footer-bottom{
    border-top:1px solid rgba(255,255,255,.12);
    padding:16px 0 22px;font-size:13px;color:#8fbfa8;
    display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between;
  }

  /* ---------- Float tools ---------- */
  .float-tools{position:fixed;right:18px;bottom:22px;display:flex;flex-direction:column;gap:10px;z-index:70;}
  .float-btn{
    width:50px;height:50px;border-radius:50%;border:none;
    background:linear-gradient(135deg,#12cf74,#07914e);color:#ffffff;
    display:grid;place-items:center;font-size:13px;font-weight:700;
    font-family:inherit;cursor:pointer;text-decoration:none;
    box-shadow:0 10px 22px rgba(8,158,82,.34);
    transition:transform .2s ease,box-shadow .2s ease;
  }
  .float-btn:hover{color:#ffffff;transform:translateY(-3px);box-shadow:0 14px 28px rgba(8,158,82,.42);}
  #backTop{opacity:0;pointer-events:none;transition:opacity .25s ease,transform .2s ease;}
  #backTop.show{opacity:1;pointer-events:auto;}

  /* ---------- Reveal ---------- */
  html.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease;}
  html.js .reveal.is-visible{opacity:1;transform:none;}

  /* ---------- Responsive ---------- */
  @media (max-width:1023px){
    .nav-toggle{display:inline-flex;}
    .site-nav{
      display:none;position:absolute;left:0;right:0;top:100%;
      flex-direction:column;align-items:stretch;gap:0;
      background:#ffffff;border-top:1px solid var(--line);
      box-shadow:0 20px 34px rgba(9,60,35,.14);
      padding:8px 20px 18px;
    }
    .site-nav.open{display:flex;}
    .nav-links{flex-direction:column;align-items:stretch;width:100%;}
    .nav-links a{padding:12px 0;border-bottom:1px dashed var(--line);border-radius:0;}
    .nav-cta{margin-top:14px;align-self:stretch;}
    .hero-inner{grid-template-columns:1fr;gap:32px;}
    .hero-lead{max-width:none;}
    .about-grid{grid-template-columns:1fr;gap:28px;}
    .contact-grid{grid-template-columns:1fr;gap:26px;}
    .join-box{grid-template-columns:1fr;padding:26px;gap:22px;}
    .process{grid-template-columns:repeat(2,1fr);}
    .footer-grid{grid-template-columns:1fr 1fr;gap:26px;}
  }
  @media (max-width:760px){
    .section{padding:48px 0;}
    .hero{padding:36px 0 32px;}
    .stat-row{grid-template-columns:repeat(2,1fr);gap:12px;margin-top:34px;}
    .score-card{padding:22px;gap:18px;}
    .score-tag{margin-left:0;}
    .form-card{padding:20px;}
    .form-row{grid-template-columns:1fr;gap:0;}
    .footer-grid{grid-template-columns:1fr;gap:24px;}
    .news-item{flex-direction:column;align-items:flex-start;gap:8px;}
    .float-tools{right:12px;bottom:16px;}
    .float-btn{width:46px;height:46px;font-size:12px;}
  }
  @media (max-width:560px){
    .process{grid-template-columns:1fr;}
  }
  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    html.js .reveal{opacity:1;transform:none;transition:none;}
    .card:hover,.stat-card:hover,.step:hover,.case-card:hover,.review:hover,.net-item:hover,.match-item:hover,.news-item:hover,.btn:hover,.float-btn:hover{transform:none;}
  }