
  :root {
    --green: #07c160;
    --green-dark: #059a4e;
    --green-bg: #eafaf1;
    --ink: #1a1f24;
    --ink-2: #4b5563;
    --ink-3: #9ca3af;
    --bg: #f6f8f7;
    --card: #ffffff;
    --line: #e5e7eb;
    --radius: 16px;
  }
  * { margin: 0; padding: 0; box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body {
    font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;
    background: var(--bg);
    color: var(--ink);
    line-height: 1.6;
  }
  a { text-decoration: none; color: inherit; }
  img { max-width: 100%; }
  .container { max-width: 1100px; margin: 0 auto; padding: 0 20px; }

  /* ===== Header ===== */
  header {
    position: sticky; top: 0; z-index: 100;
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--line);
  }
  .nav { display: flex; align-items: center; justify-content: space-between; height: 64px; }
  .logo { display: flex; align-items: center; gap: 10px; font-size: 20px; font-weight: 700; }
  .logo-badge {
    width: 34px; height: 34px; border-radius: 9px;
    background: linear-gradient(135deg, var(--green), #0abf7a);
    color: #fff; display: flex; align-items: center; justify-content: center;
    font-size: 18px; font-weight: 800;
  }
  .nav-links { display: flex; gap: 28px; font-size: 15px; color: var(--ink-2); }
  .nav-links a:hover { color: var(--green); }
  .nav-cta {
    background: var(--green); color: #fff; padding: 9px 20px;
    border-radius: 999px; font-size: 14px; font-weight: 600;
    transition: background .2s;
  }
  .nav-cta:hover { background: var(--green-dark); }

  /* ===== Hero ===== */
  .hero {
    text-align: center;
    padding: 80px 20px 60px;
    background:
      radial-gradient(600px 300px at 20% 0%, rgba(7,193,96,.10), transparent),
      radial-gradient(600px 300px at 80% 10%, rgba(7,193,96,.08), transparent);
  }
  .hero-tag {
    display: inline-flex; align-items: center; gap: 6px;
    background: var(--green-bg); color: var(--green-dark);
    font-size: 13px; font-weight: 600;
    padding: 6px 14px; border-radius: 999px; margin-bottom: 20px;
  }
  .hero h1 { font-size: 42px; font-weight: 800; letter-spacing: -1px; margin-bottom: 16px; }
  .hero h1 em { font-style: normal; color: var(--green); }
  .hero p { font-size: 18px; color: var(--ink-2); margin-bottom: 32px; }
  .hero-btns { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
  .btn {
    display: inline-block; padding: 14px 32px; border-radius: 12px;
    font-size: 16px; font-weight: 600; transition: all .2s;
  }
  .btn-primary { background: var(--green); color: #fff; box-shadow: 0 8px 24px rgba(7,193,96,.3); }
  .btn-primary:hover { background: var(--green-dark); transform: translateY(-2px); }
  .btn-ghost { background: #fff; color: var(--ink); border: 1px solid var(--line); }
  .btn-ghost:hover { border-color: var(--green); color: var(--green); }
  .hero-btns button.btn { font-family: inherit; line-height: 1.6; cursor: pointer; touch-action: manipulation; }

  .video-tutorial-dialog {
    width: min(960px, calc(100vw - 32px)); max-width: none;
    max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px);
    margin: auto; padding: 0; border: 0; border-radius: 18px;
    background: #101714; color: #fff; overflow: hidden;
    box-shadow: 0 28px 80px rgba(0, 0, 0, .35);
  }
  .video-tutorial-dialog::backdrop { background: rgba(5, 16, 11, .78); }
  .video-tutorial-head {
    min-height: 60px; display: flex; align-items: center; justify-content: space-between;
    gap: 16px; padding: 10px 14px 10px 22px; background: #fff; color: var(--ink);
  }
  .video-tutorial-head h2 { font-size: 18px; font-weight: 700; line-height: 1.35; }
  .video-tutorial-close {
    flex: none; display: grid; place-items: center; width: 40px; height: 40px;
    border: 0; border-radius: 10px; background: var(--green-bg); color: var(--ink);
    font: inherit; font-size: 28px; line-height: 1; cursor: pointer; touch-action: manipulation;
  }
  .video-tutorial-close:hover { background: #d5f5e3; }
  .video-tutorial-dialog video {
    display: block; width: 100%; height: auto; max-height: calc(100vh - 96px);
    max-height: calc(100dvh - 96px); aspect-ratio: 4 / 3;
    object-fit: contain; background: #000;
  }
  .video-tutorial-error { padding: 10px 18px; font-size: 14px; text-align: center; }
  @media (max-width: 640px) {
    .video-tutorial-dialog { width: calc(100vw - 24px); border-radius: 14px; }
    .video-tutorial-head { min-height: 56px; padding: 8px 10px 8px 16px; }
    .video-tutorial-head h2 { font-size: 16px; }
  }
  @media (orientation: landscape) and (max-height: 500px) {
    .video-tutorial-dialog { width: min(440px, calc(100vw - 24px)); }
    .video-tutorial-dialog video { max-height: calc(100vh - 88px); max-height: calc(100dvh - 88px); }
  }

  /* ===== Section base ===== */
  section { padding: 64px 0; }
  .sec-head { text-align: center; margin-bottom: 44px; }
  .sec-head h2 { font-size: 30px; font-weight: 800; letter-spacing: -.5px; }
  .sec-head p { color: var(--ink-2); margin-top: 10px; font-size: 16px; }

  /* ===== Advantages ===== */
  .adv-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px;
  }
  .adv-card {
    background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
    padding: 28px 24px; transition: transform .2s, box-shadow .2s;
  }
  .adv-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,0,0,.08); }
  .adv-icon {
    width: 46px; height: 46px; border-radius: 12px;
    background: var(--green-bg); color: var(--green);
    display: flex; align-items: center; justify-content: center;
    font-size: 22px; margin-bottom: 16px;
  }
  .adv-card h3 { font-size: 17px; font-weight: 700; margin-bottom: 6px; }
  .adv-card p { font-size: 14px; color: var(--ink-2); }

  /* ===== Steps ===== */
  .steps-wrap {
    background: linear-gradient(135deg, #0d2b1e, #123a29);
    border-radius: 24px; padding: 56px 40px; color: #fff;
  }
  .steps-wrap .sec-head h2, .steps-wrap .sec-head p { color: #fff; }
  .steps-wrap .sec-head p { color: rgba(255,255,255,.65); }
  .steps { display: flex; align-items: stretch; justify-content: center; gap: 0; }
  .step { text-align: center; flex: 1; max-width: 240px; }
  .step-num {
    width: 56px; height: 56px; margin: 0 auto 14px;
    border-radius: 50%; background: var(--green); color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-size: 24px; font-weight: 800;
    box-shadow: 0 0 0 8px rgba(7,193,96,.15);
  }
  .step h3 { font-size: 17px; font-weight: 700; margin-bottom: 4px; }
  .step p { font-size: 13px; color: rgba(255,255,255,.6); }
  .step-arrow {
    display: flex; align-items: center; padding: 0 12px;
    font-size: 22px; color: rgba(255,255,255,.35);
  }
  .steps-tips { text-align: center; margin-top: 32px; font-size: 15px; color: rgba(255,255,255,.75); }
  .steps-tips a { color: #4ade80; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

  /* ===== Pricing ===== */
  .price-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; align-items: stretch; }
  .price-card {
    background: var(--card); border: 1px solid var(--line); border-radius: 20px;
    padding: 36px 32px; position: relative; display: flex; flex-direction: column;
  }
  .price-card.main { border: 2px solid var(--green); box-shadow: 0 16px 40px rgba(7,193,96,.14); }
  .price-badge {
    position: absolute; top: -14px; left: 50%; transform: translateX(-50%);
    background: linear-gradient(135deg, #ff6a3d, #ff3d68); color: #fff;
    font-size: 13px; font-weight: 700; padding: 4px 18px; border-radius: 999px;
    white-space: nowrap;
  }
  .price-label { font-size: 14px; font-weight: 600; color: var(--ink-2); }
  .price-num { font-size: 52px; font-weight: 800; color: var(--green); line-height: 1.2; margin: 6px 0 2px; }
  .price-num small { font-size: 22px; font-weight: 700; }
  .price-desc { font-size: 14px; color: var(--ink-2); margin-bottom: 18px; }
  .price-feats { list-style: none; margin-bottom: 26px; flex: 1; }
  .price-feats li { font-size: 15px; padding: 7px 0; display: flex; align-items: flex-start; gap: 8px; }
  .price-feats li::before { content: "✓"; color: var(--green); font-weight: 800; }
  .price-note { font-size: 12.5px; color: var(--ink-3); margin-top: 12px; }
  .price-card .btn { text-align: center; }

  /* ===== Compare ===== */
  .compare { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; max-width: 880px; margin: 0 auto; }
  .cmp-card { border-radius: 20px; padding: 32px 28px; border: 1px solid var(--line); background: var(--card); }
  .cmp-card.reco { border: 2px solid var(--green); background: linear-gradient(180deg, #f2fdf7, #ffffff); position: relative; }
  .cmp-tag {
    position: absolute; top: -13px; right: 24px;
    background: var(--green); color: #fff; font-size: 12px; font-weight: 700;
    padding: 3px 14px; border-radius: 999px;
  }
  .cmp-card h3 { font-size: 19px; font-weight: 800; margin-bottom: 18px; }
  .cmp-card ul { list-style: none; }
  .cmp-card li { font-size: 15px; padding: 8px 0; display: flex; gap: 10px; align-items: flex-start; }
  .cmp-card.bad li { color: var(--ink-2); }
  .cmp-card.bad li::before { content: "✕"; color: #ef4444; font-weight: 800; }
  .cmp-card.reco li::before { content: "✓"; color: var(--green); font-weight: 800; }
  .cmp-bottom { text-align: center; margin-top: 36px; font-size: 17px; font-weight: 700; }
  .cmp-bottom span { color: var(--green); }

  /* ===== Contact ===== */
  .contact-wrap {
    background: linear-gradient(135deg, #0d2b1e, #123a29);
    border-radius: 24px; padding: 56px 40px; color: #fff;
  }
  .contact-wrap .sec-head h2 { color: #fff; }
  .contact-wrap .sec-head p { color: rgba(255,255,255,.65); }
  .qr-grid { display: flex; justify-content: center; gap: 28px; flex-wrap: wrap; }
  .qr-card {
    background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14);
    border-radius: 18px; padding: 24px; width: 260px; text-align: center;
    backdrop-filter: blur(6px); transition: transform .2s, border-color .2s;
  }
  .qr-card:hover { transform: translateY(-4px); border-color: rgba(74,222,128,.5); }
  /* 自适应二维码容器：不论图片原始尺寸/比例，统一等高展示且不裁切、不变形 */
  .qr-box {
    background: #fff; border-radius: 12px;
    aspect-ratio: 1 / 1;
    display: flex; align-items: center; justify-content: center;
    overflow: hidden; margin-bottom: 16px; padding: 12px;
  }
  .qr-box img {
    width: 100%; height: 100%;
    object-fit: contain;   /* 保持比例完整显示，自适应不同尺寸的二维码图 */
  }
  .qr-card h3 { font-size: 17px; font-weight: 700; margin-bottom: 4px; }
  .qr-card p { font-size: 13px; color: rgba(255,255,255,.6); }
  .contact-tip { text-align: center; margin-top: 28px; font-size: 14px; color: rgba(255,255,255,.55); }
  .contact-tip strong { color: #4ade80; }

  /* ===== FAQ ===== */
  .faq-list { max-width: 780px; margin: 0 auto; }
  details {
    background: var(--card); border: 1px solid var(--line); border-radius: 14px;
    margin-bottom: 12px; overflow: hidden;
  }
  summary {
    cursor: pointer; padding: 18px 22px; font-size: 16px; font-weight: 600;
    list-style: none; display: flex; justify-content: space-between; align-items: center;
  }
  summary::-webkit-details-marker { display: none; }
  summary::after { content: "+"; font-size: 20px; color: var(--green); font-weight: 700; transition: transform .2s; }
  details[open] summary::after { transform: rotate(45deg); }
  details .faq-body { padding: 0 22px 18px; font-size: 14.5px; color: var(--ink-2); }

  /* ===== Footer ===== */
  footer { background: #0d1f16; color: rgba(255,255,255,.55); padding: 40px 0 32px; text-align: center; font-size: 13.5px; }
  footer .foot-logo { color: #fff; font-size: 17px; font-weight: 700; margin-bottom: 10px; }
  footer a { color: rgba(255,255,255,.75); }
  footer a:hover { color: #4ade80; }
  .foot-links { margin: 14px 0; display: flex; justify-content: center; gap: 22px; flex-wrap: wrap; }

  /* ===== Float bar (mobile) ===== */
  .float-bar { display: none; }

  @media (max-width: 860px) {
    .nav-links { display: none; }
    .hero h1 { font-size: 30px; }
    .hero p { font-size: 15px; }
    section { padding: 48px 0; }
    /* 手机端「只需三步」改为竖向时间线：序号在左、文字在右，箭头换成连接两个序号的细线 */
    .steps { flex-direction: column; gap: 0; max-width: 340px; margin: 0 auto; }
    .step { flex: none; max-width: none; display: grid; grid-template-columns: 48px 1fr; column-gap: 16px; align-items: center; text-align: left; }
    .step-num { grid-row: span 2; width: 48px; height: 48px; margin: 0; font-size: 20px; box-shadow: 0 0 0 6px rgba(7,193,96,.15); }
    .step h3 { align-self: end; margin-bottom: 2px; }
    .step p { align-self: start; }
    .step-arrow { font-size: 0; width: 2px; height: 24px; padding: 0; margin: 10px 0 10px 23px; border-radius: 2px; background: rgba(255,255,255,.2); }
    .steps-tips { display: flex; flex-direction: column; gap: 6px; margin-top: 28px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.1); font-size: 14px; }
    .tips-sep { display: none; }
    .steps-wrap .sec-head { margin-bottom: 32px; }
    .steps-wrap .sec-head h2 { font-size: 23px; line-height: 1.35; text-wrap: balance; }
    .price-grid, .compare { grid-template-columns: 1fr; }
    .steps-wrap, .contact-wrap { padding: 40px 22px; }
    body { padding-bottom: 70px; }
    .float-bar {
      display: flex; position: fixed; bottom: 0; left: 0; right: 0; z-index: 99;
      background: rgba(255,255,255,.96); backdrop-filter: blur(10px);
      border-top: 1px solid var(--line);
    }
    .float-bar a {
      flex: 1; text-align: center; padding: 15px 0; font-size: 15px; font-weight: 700;
    }
    .float-bar a.f-cta { background: var(--green); color: #fff; }
  }

.store-environment {padding:10px 20px;text-align:center;background:#fff5d6;color:#735218;font-size:13px;}
.store-status {grid-column:1/-1;text-align:center;padding:28px;color:var(--ink-2);}
.store-status a {color:var(--green-dark);text-decoration:underline;}
.price-label,.price-desc {overflow-wrap:anywhere;white-space:pre-line;}
.price-label {font-size:20px;color:var(--ink);}
.price-desc {margin-top:16px;margin-bottom:28px;flex:1;}
.store-unavailable {background:#e5e7eb;color:#667085;box-shadow:none;cursor:default;}
.store-retry {padding:10px 20px;background:#fff;border:1px solid var(--line);border-radius:10px;cursor:pointer;}
a:focus-visible,button:focus-visible {outline:3px solid #059a4e;outline-offset:4px;}
.price-card button.btn {border:0;font-family:inherit;cursor:pointer;}
.contact-dialog {margin:auto;border:0;border-radius:20px;padding:0;width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 32px);color:var(--ink);background:#fff;box-shadow:0 24px 70px rgba(15,23,42,.28);}
.contact-dialog::backdrop {background:rgba(15,23,42,.55);}
.contact-dialog-body {padding:28px 24px 24px;text-align:center;}
.contact-dialog h3 {font-size:20px;font-weight:800;margin:0 0 6px;}
.contact-dialog-product {font-size:14px;color:var(--ink-2);margin:0 0 18px;overflow-wrap:anywhere;}
.contact-dialog-qr {display:flex;justify-content:center;gap:16px;flex-wrap:wrap;}
.contact-dialog-qr img {width:200px;max-width:100%;height:auto;aspect-ratio:1;object-fit:contain;border-radius:14px;border:1px solid var(--line);background:#fff;}
.contact-dialog-loading {font-size:14px;color:var(--ink-2);padding:24px 0;}
.contact-dialog-note {font-size:13px;color:var(--ink-2);margin:16px 0 20px;white-space:pre-line;}
.contact-dialog-close {min-width:140px;border:0;font-family:inherit;cursor:pointer;}
@media (max-width:480px){.contact-dialog-body{padding:24px 16px 20px;}.contact-dialog-qr{gap:12px;}.contact-dialog-qr img{width:min(200px,calc(50vw - 48px));}}

/* ===== 热门教程 / 用户评价 / 统计条（首页，服务端渲染；教程列表与推荐阅读共用卡片样式）===== */
.nav-links a.is-current {color:var(--green);font-weight:600;}
.article-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.article-card {display:flex;flex-direction:column;gap:12px;min-width:0;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px 24px 22px;transition:transform .2s,box-shadow .2s,border-color .2s;}
.article-card:hover {transform:translateY(-4px);border-color:rgba(7,193,96,.45);box-shadow:0 12px 32px rgba(0,0,0,.08);}
.card-tags {display:flex;flex-wrap:wrap;gap:8px;}
.tag {display:inline-flex;align-items:center;font-size:12px;font-weight:600;line-height:1;padding:5px 10px;border-radius:999px;background:#f1f5f3;color:var(--ink-2);}
.tag.is-featured {background:linear-gradient(135deg,#ff6a3d,#ff3d68);color:#fff;}
.card-title {font-size:17px;line-height:1.5;font-weight:700;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.card-summary {font-size:14px;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.card-foot {margin-top:auto;padding-top:4px;display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.card-more {font-size:14px;font-weight:600;color:var(--green-dark);}
.card-date {font-size:12.5px;color:var(--ink-3);}
.article-card:hover .card-more {color:var(--green);}
.home-more {margin-top:32px;text-align:center;}

.review-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.review-grid[data-count="1"] {grid-template-columns:minmax(0,560px);justify-content:center;}
.review-grid[data-count="2"] {grid-template-columns:repeat(2,minmax(0,1fr));}
.review-card {display:flex;flex-direction:column;gap:16px;min-width:0;margin:0;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:26px 26px 22px;transition:transform .2s,box-shadow .2s;}
.review-card:hover {transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,.08);}
.review-card blockquote {font-size:15px;color:var(--ink-2);line-height:1.85;overflow-wrap:anywhere;}
.stars {position:relative;display:inline-block;align-self:flex-start;font-size:17px;line-height:1;letter-spacing:3px;color:#e5e7eb;}
.stars::before {content:"★★★★★";}
.stars>span {position:absolute;left:0;top:0;overflow:hidden;white-space:nowrap;color:#f5a623;}
.stars>span::before {content:"★★★★★";}
.stars.r10>span{width:20%}.stars.r15>span{width:30%}.stars.r20>span{width:40%}.stars.r25>span{width:50%}.stars.r30>span{width:60%}
.stars.r35>span{width:70%}.stars.r40>span{width:80%}.stars.r45>span{width:90%}.stars.r50>span{width:100%}
.review-person {display:flex;align-items:center;gap:12px;margin-top:auto;}
.review-avatar {flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--green-bg);color:var(--green-dark);font-weight:800;font-size:18px;}
.review-person strong {display:block;font-size:15px;}
.review-person small {display:block;font-size:12.5px;color:var(--ink-3);}
.review-tags {display:flex;flex-wrap:wrap;gap:8px;}
.review-tags span {max-width:100%;overflow-wrap:anywhere;line-height:1.4;font-size:12px;font-weight:600;padding:5px 10px;border-radius:999px;background:var(--green-bg);color:var(--green-dark);}
.stat-bar {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:32px 0 0;background:var(--card);border:2px solid var(--green);border-radius:20px;box-shadow:0 16px 40px rgba(7,193,96,.14);padding:28px 12px;}
.stat-bar[data-count="1"]{grid-template-columns:1fr}.stat-bar[data-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-bar[data-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}
.stat-bar>div {display:flex;flex-direction:column-reverse;align-items:center;gap:6px;text-align:center;padding:0 8px;}
.stat-bar>div+div {border-left:1px solid var(--line);}
.stat-bar dt {font-size:14px;color:var(--ink-2);}
.stat-bar dd {font-size:clamp(30px,3.6vw,42px);font-weight:800;line-height:1.1;color:var(--green);letter-spacing:-.5px;}
.stat-bar dd small {font-size:.5em;font-weight:700;margin-left:2px;}
@media (max-width:980px){
  .article-grid,.review-grid,.review-grid[data-count="2"] {grid-template-columns:repeat(2,minmax(0,1fr));}
  .stat-bar,.stat-bar[data-count="3"] {grid-template-columns:repeat(2,minmax(0,1fr));row-gap:22px;}
  .stat-bar>div:nth-child(odd) {border-left:0;}
}
@media (max-width:640px){
  .article-grid,.review-grid,.review-grid[data-count] {grid-template-columns:minmax(0,1fr);}
  .article-card,.review-card {padding:20px 18px 18px;}
  .stat-bar {padding:22px 6px;}
}
