{"id":8,"date":"2026-06-09T08:22:26","date_gmt":"2026-06-09T08:22:26","guid":{"rendered":"https:\/\/fastsportgear.com\/?page_id=8"},"modified":"2026-06-10T03:07:37","modified_gmt":"2026-06-10T03:07:37","slug":"home","status":"publish","type":"page","link":"https:\/\/fastsportgear.com\/","title":{"rendered":"Home"},"content":{"rendered":"\n<!--\n  FastSport WP Advertising Landing Page\n  \u7528\u6cd5\uff1a\n  1) \u5c06 GLB \u6587\u4ef6\u4e0a\u4f20\u5230 \/wp-content\/uploads\/models\/fastsport-eb12.glb \u6216 CDN\u3002\n  2) \u641c\u7d22 GLB_MODEL_URL\uff0c\u66ff\u6362\u4e3a\u4f60\u7684 .glb \u7edd\u5bf9\u94fe\u63a5\u3002\n  3) \u5728 WordPress \u91cc\u5efa\u8bae\u7528 Elementor HTML \/ Code Snippets \/ \u81ea\u5b9a\u4e49\u9875\u9762\u6a21\u677f\u5d4c\u5165\u3002\n-->\n<div id=\"fs-ad-landing\" class=\"fs-ad-page\">\n  <style>\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=Orbitron:wght@400;500;700;900&family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap');\n\n    #fs-ad-landing,\n    #fs-ad-landing *{box-sizing:border-box}\n\n    #fs-ad-landing{\n      --fs-bg:#030304;\n      --fs-panel:#07070a;\n      --fs-text:#f2f2f2;\n      --fs-muted:rgba(255,255,255,.48);\n      --fs-dim:rgba(255,255,255,.24);\n      --fs-line:rgba(255,255,255,.075);\n      --fs-accent:#df5819;\n      --fs-accent2:#ff8c42;\n      --fs-accent3:#ff2d55;\n      --fs-glow:0 0 36px rgba(223,88,25,.34);\n      --fs-max:1240px;\n      position:relative;\n      min-height:100vh;\n      overflow:hidden;\n      background:radial-gradient(circle at 58% 32%,rgba(223,88,25,.16),transparent 34%),var(--fs-bg);\n      color:var(--fs-text);\n      font-family:'Noto Sans SC',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;\n      isolation:isolate;\n    }\n\n    #fs-ad-landing a{color:inherit;text-decoration:none}\n\n    #fs-ad-landing .fs-webgl{\n      position:fixed;\n      inset:0;\n      z-index:0;\n      width:100vw;\n      height:100vh;\n      display:block;\n      background:var(--fs-bg);\n    }\n\n    #fs-ad-landing .fs-content{position:relative;z-index:10;min-height:100vh}\n\n    #fs-ad-landing .fs-loader{\n      position:fixed;\n      inset:0;\n      z-index:9999;\n      background:var(--fs-bg);\n      display:flex;\n      flex-direction:column;\n      align-items:center;\n      justify-content:center;\n      transition:opacity .72s ease,visibility .72s ease;\n    }\n    #fs-ad-landing .fs-loader.fs-done{opacity:0;visibility:hidden;pointer-events:none}\n    #fs-ad-landing .fs-loader-ring{\n      width:80px;\n      height:80px;\n      border-radius:50%;\n      border:2px solid transparent;\n      border-top-color:var(--fs-accent);\n      border-right-color:rgba(223,88,25,.26);\n      animation:fsSpin 1s linear infinite;\n    }\n    #fs-ad-landing .fs-loader-text{\n      margin-top:1.4rem;\n      font-family:'Orbitron',monospace;\n      font-size:.66rem;\n      letter-spacing:.28em;\n      color:var(--fs-accent);\n      opacity:.72;\n    }\n    @keyframes fsSpin{to{transform:rotate(360deg)}}\n\n    #fs-ad-landing .fs-nav{\n      position:fixed;\n      top:0;\n      left:0;\n      right:0;\n      z-index:100;\n      display:flex;\n      align-items:center;\n      justify-content:space-between;\n      gap:1.2rem;\n      padding:1rem clamp(1.2rem,4vw,3.2rem);\n      background:linear-gradient(180deg,rgba(3,3,4,.76),rgba(3,3,4,.34));\n      backdrop-filter:blur(30px) saturate(1.45);\n      border-bottom:1px solid rgba(255,255,255,.055);\n    }\n    #fs-ad-landing .fs-logo{\n      font-family:'Orbitron',monospace;\n      font-weight:900;\n      letter-spacing:.18em;\n      color:var(--fs-accent);\n      text-shadow:var(--fs-glow);\n      white-space:nowrap;\n    }\n    #fs-ad-landing .fs-logo span{color:#fff;opacity:.34;margin-left:.12em}\n    #fs-ad-landing .fs-nav-links{display:flex;align-items:center;gap:1.6rem}\n    #fs-ad-landing .fs-nav-links a{\n      font-family:'Orbitron',monospace;\n      font-size:.62rem;\n      letter-spacing:.16em;\n      text-transform:uppercase;\n      color:rgba(255,255,255,.56);\n      transition:color .25s ease,opacity .25s ease;\n    }\n    #fs-ad-landing .fs-nav-links a:hover{color:var(--fs-accent);opacity:1}\n    #fs-ad-landing .fs-nav-cta,\n    #fs-ad-landing .fs-btn{\n      display:inline-flex;\n      align-items:center;\n      justify-content:center;\n      gap:.55rem;\n      border:0;\n      cursor:pointer;\n      font-family:'Orbitron',monospace;\n      font-weight:800;\n      text-transform:uppercase;\n      letter-spacing:.12em;\n      line-height:1;\n      transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease,color .25s ease,background .25s ease;\n    }\n    #fs-ad-landing .fs-nav-cta{\n      padding:.72rem 1.08rem;\n      border:1px solid rgba(223,88,25,.72);\n      color:var(--fs-accent);\n      font-size:.6rem;\n      white-space:nowrap;\n    }\n    #fs-ad-landing .fs-nav-cta:hover{background:var(--fs-accent);color:#080504;box-shadow:var(--fs-glow)}\n\n    #fs-ad-landing .fs-hero{\n      min-height:100svh;\n      width:min(var(--fs-max),calc(100% - 2.4rem));\n      margin:0 auto;\n      display:grid;\n      grid-template-columns:minmax(320px,480px) minmax(0,1fr);\n      align-items:center;\n      gap:clamp(2rem,5vw,5rem);\n      padding:7rem 0 5rem;\n      position:relative;\n    }\n    #fs-ad-landing .fs-hero-copy{position:relative;z-index:12;max-width:480px}\n    #fs-ad-landing .fs-badge,\n    #fs-ad-landing .fs-section-label{\n      display:inline-flex;\n      align-items:center;\n      gap:.65rem;\n      color:var(--fs-accent);\n      font-family:'Orbitron',monospace;\n      font-size:.62rem;\n      letter-spacing:.24em;\n      text-transform:uppercase;\n      opacity:.92;\n    }\n    #fs-ad-landing .fs-dot{\n      width:6px;\n      height:6px;\n      border-radius:50%;\n      background:var(--fs-accent);\n      box-shadow:0 0 12px var(--fs-accent);\n      animation:fsBlink 1.8s infinite;\n    }\n    @keyframes fsBlink{0%,100%{opacity:1}50%{opacity:.28}}\n    #fs-ad-landing .fs-hero h1{\n      margin:.95rem 0 0;\n      font-family:'Orbitron',monospace;\n      font-size:clamp(3.2rem,8vw,7.8rem);\n      line-height:.92;\n      letter-spacing:-.055em;\n      font-weight:900;\n    }\n    #fs-ad-landing .fs-stroke{\n      -webkit-text-stroke:1.4px rgba(255,255,255,.72);\n      -webkit-text-fill-color:transparent;\n    }\n    #fs-ad-landing .fs-glow-word{color:var(--fs-accent);text-shadow:var(--fs-glow)}\n    #fs-ad-landing .fs-hero-sub{\n      margin:1.35rem 0 0;\n      max-width:460px;\n      color:rgba(255,255,255,.56);\n      font-size:clamp(.98rem,1.35vw,1.08rem);\n      line-height:1.9;\n      font-weight:300;\n    }\n    #fs-ad-landing .fs-hero-actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:2rem}\n    #fs-ad-landing .fs-btn{padding:1rem 1.55rem;font-size:.66rem;border-radius:2px}\n    #fs-ad-landing .fs-btn-primary{background:var(--fs-accent);color:#080504;box-shadow:var(--fs-glow)}\n    #fs-ad-landing .fs-btn-primary:hover{transform:translateY(-2px);box-shadow:0 0 58px rgba(223,88,25,.52)}\n    #fs-ad-landing .fs-btn-ghost{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.025);color:rgba(255,255,255,.7)}\n    #fs-ad-landing .fs-btn-ghost:hover{border-color:rgba(223,88,25,.66);color:var(--fs-accent)}\n\n    #fs-ad-landing .fs-model-zone{\n      min-height:460px;\n      position:relative;\n      pointer-events:none;\n    }\n    #fs-ad-landing .fs-model-frame{\n      position:absolute;\n      right:clamp(0rem,4vw,3rem);\n      bottom:8vh;\n      width:min(330px,36vw);\n      padding:1rem;\n      border:1px solid rgba(255,255,255,.08);\n      background:linear-gradient(135deg,rgba(255,255,255,.055),rgba(255,255,255,.018));\n      backdrop-filter:blur(24px);\n      box-shadow:0 24px 80px rgba(0,0,0,.36);\n      pointer-events:auto;\n    }\n    #fs-ad-landing .fs-model-frame::before{\n      content:'';\n      position:absolute;\n      inset:-1px;\n      border-top:1px solid rgba(223,88,25,.5);\n      pointer-events:none;\n    }\n    #fs-ad-landing .fs-mini-title{\n      font-family:'Orbitron',monospace;\n      font-size:.58rem;\n      letter-spacing:.18em;\n      color:var(--fs-accent);\n      text-transform:uppercase;\n    }\n    #fs-ad-landing .fs-mini-grid{\n      margin-top:.86rem;\n      display:grid;\n      grid-template-columns:repeat(2,1fr);\n      gap:1px;\n      background:rgba(255,255,255,.08);\n    }\n    #fs-ad-landing .fs-mini-cell{background:rgba(3,3,4,.86);padding:.82rem .86rem}\n    #fs-ad-landing .fs-mini-val{font-family:'Orbitron',monospace;font-size:1rem;color:#fff;font-weight:800}\n    #fs-ad-landing .fs-mini-lbl{margin-top:.18rem;font-size:.54rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fs-dim)}\n\n    #fs-ad-landing .fs-scroll-cue{\n      position:absolute;\n      left:0;\n      bottom:2.4rem;\n      display:flex;\n      align-items:center;\n      gap:1rem;\n      color:rgba(255,255,255,.3);\n      font-family:'Orbitron',monospace;\n      font-size:.56rem;\n      letter-spacing:.22em;\n      text-transform:uppercase;\n    }\n    #fs-ad-landing .fs-scroll-bar{width:42px;height:1px;background:rgba(255,255,255,.12);overflow:hidden;position:relative}\n    #fs-ad-landing .fs-scroll-bar::after{content:'';position:absolute;top:0;height:100%;width:35%;left:-35%;background:var(--fs-accent);animation:fsScroll 2s infinite ease}\n    @keyframes fsScroll{to{left:100%}}\n\n    #fs-ad-landing .fs-section{\n      min-height:100svh;\n      width:min(var(--fs-max),calc(100% - 2.4rem));\n      margin:0 auto;\n      display:grid;\n      grid-template-columns:minmax(300px,430px) minmax(0,1fr);\n      align-items:center;\n      gap:clamp(2rem,5vw,5rem);\n      padding:7rem 0;\n      position:relative;\n    }\n    #fs-ad-landing .fs-section.fs-right-copy{grid-template-columns:minmax(0,1fr) minmax(300px,460px)}\n    #fs-ad-landing .fs-section.fs-right-copy .fs-section-copy{grid-column:2}\n    #fs-ad-landing .fs-section.fs-right-copy .fs-section-visual{grid-column:1;grid-row:1}\n    #fs-ad-landing .fs-section-title{\n      margin:.85rem 0 0;\n      font-family:'Orbitron',monospace;\n      font-size:clamp(2.2rem,4.6vw,4.65rem);\n      line-height:1.06;\n      letter-spacing:-.035em;\n      font-weight:900;\n    }\n    #fs-ad-landing .fs-section-desc{\n      margin:1.4rem 0 0;\n      max-width:470px;\n      color:rgba(255,255,255,.48);\n      font-size:.98rem;\n      line-height:1.9;\n      font-weight:300;\n    }\n    #fs-ad-landing .fs-card-grid{\n      display:grid;\n      grid-template-columns:repeat(3,minmax(0,1fr));\n      gap:1rem;\n    }\n    #fs-ad-landing .fs-spec-card{\n      min-height:178px;\n      padding:1.65rem 1.25rem;\n      background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.018));\n      border:1px solid rgba(255,255,255,.07);\n      backdrop-filter:blur(22px);\n      position:relative;\n      overflow:hidden;\n      transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease;\n    }\n    #fs-ad-landing .fs-spec-card::before{\n      content:'';\n      position:absolute;\n      top:0;\n      left:-40%;\n      width:80%;\n      height:1px;\n      background:linear-gradient(90deg,transparent,var(--fs-accent),transparent);\n      opacity:.55;\n      transform:translateX(-100%);\n      transition:transform .5s ease;\n    }\n    #fs-ad-landing .fs-spec-card:hover{transform:translateY(-6px);border-color:rgba(223,88,25,.28);box-shadow:0 25px 70px rgba(0,0,0,.35)}\n    #fs-ad-landing .fs-spec-card:hover::before{transform:translateX(160%)}\n    #fs-ad-landing .fs-spec-num{font-family:'Orbitron',monospace;font-size:clamp(2rem,3.2vw,3rem);line-height:1;font-weight:900;color:var(--fs-accent)}\n    #fs-ad-landing .fs-spec-unit{font-size:.82rem;color:rgba(255,255,255,.42);margin-left:.12rem}\n    #fs-ad-landing .fs-spec-label{margin-top:.5rem;font-family:'Orbitron',monospace;font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.36)}\n    #fs-ad-landing .fs-spec-text{margin-top:1.05rem;color:rgba(255,255,255,.42);font-size:.84rem;line-height:1.65}\n\n    #fs-ad-landing .fs-tech-panel{\n      max-width:620px;\n      display:grid;\n      grid-template-columns:repeat(2,minmax(0,1fr));\n      gap:1px;\n      border:1px solid rgba(255,255,255,.08);\n      background:rgba(255,255,255,.08);\n      box-shadow:0 28px 80px rgba(0,0,0,.3);\n    }\n    #fs-ad-landing .fs-tech-cell{background:rgba(3,3,4,.84);padding:1.25rem 1.35rem;min-height:92px}\n    #fs-ad-landing .fs-tech-val{font-family:'Orbitron',monospace;font-size:1.28rem;line-height:1.2;font-weight:900;color:var(--fs-accent2)}\n    #fs-ad-landing .fs-tech-lbl{margin-top:.32rem;font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.32)}\n\n    #fs-ad-landing .fs-color-section{\n      min-height:100svh;\n      width:min(var(--fs-max),calc(100% - 2.4rem));\n      margin:0 auto;\n      display:flex;\n      flex-direction:column;\n      align-items:center;\n      justify-content:center;\n      text-align:center;\n      padding:7rem 0;\n      position:relative;\n    }\n    #fs-ad-landing .fs-color-dock{\n      margin-top:2.4rem;\n      padding:1.1rem 1.35rem;\n      display:flex;\n      align-items:center;\n      gap:1.2rem;\n      border:1px solid rgba(255,255,255,.08);\n      background:rgba(3,3,4,.5);\n      backdrop-filter:blur(24px);\n    }\n    #fs-ad-landing .fs-pips{display:flex;gap:1rem}\n    #fs-ad-landing .fs-pip{\n      width:50px;\n      height:50px;\n      border-radius:50%;\n      border:2px solid transparent;\n      cursor:pointer;\n      position:relative;\n      transition:transform .25s ease;\n    }\n    #fs-ad-landing .fs-pip::after{content:'';position:absolute;inset:-6px;border-radius:50%;border:1px solid transparent;transition:border-color .25s ease}\n    #fs-ad-landing .fs-pip:hover{transform:scale(1.1)}\n    #fs-ad-landing .fs-pip.fs-on::after,#fs-ad-landing .fs-pip:hover::after{border-color:var(--fs-accent)}\n    #fs-ad-landing .fs-pip[data-name=\"Night Black\"]{background:linear-gradient(135deg,#0d1117,#161b22)}\n    #fs-ad-landing .fs-pip[data-name=\"Desert Orange\"]{background:linear-gradient(135deg,#2b1005,#df5819)}\n    #fs-ad-landing .fs-pip[data-name=\"Trail Blue\"]{background:linear-gradient(135deg,#071528,#1f67a5)}\n    #fs-ad-landing .fs-pip[data-name=\"Mud Grey\"]{background:linear-gradient(135deg,#1a1a1a,#555)}\n    #fs-ad-landing .fs-color-name{font-family:'Orbitron',monospace;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.46);white-space:nowrap}\n\n    #fs-ad-landing .fs-cta-section{\n      min-height:78svh;\n      width:min(960px,calc(100% - 2.4rem));\n      margin:0 auto;\n      padding:7rem 0 8.5rem;\n      display:flex;\n      flex-direction:column;\n      align-items:center;\n      justify-content:center;\n      text-align:center;\n      position:relative;\n    }\n    #fs-ad-landing .fs-price{\n      margin-top:1.35rem;\n      font-family:'Orbitron',monospace;\n      font-size:clamp(2.8rem,6vw,5.2rem);\n      font-weight:900;\n      line-height:1;\n      color:#fff;\n      text-shadow:var(--fs-glow);\n    }\n    #fs-ad-landing .fs-price span{font-size:1rem;color:rgba(255,255,255,.36);vertical-align:super;margin-right:.25rem}\n    #fs-ad-landing .fs-note{margin-top:.72rem;color:rgba(255,255,255,.36);font-size:.85rem;line-height:1.8}\n\n    #fs-ad-landing .fs-bottom-bar{\n      position:fixed;\n      left:50%;\n      bottom:.9rem;\n      transform:translateX(-50%);\n      z-index:120;\n      width:min(760px,calc(100% - 2rem));\n      display:grid;\n      grid-template-columns:repeat(4,1fr);\n      border:1px solid rgba(255,255,255,.07);\n      background:rgba(3,3,4,.62);\n      backdrop-filter:blur(28px);\n      box-shadow:0 22px 70px rgba(0,0,0,.4);\n    }\n    #fs-ad-landing .fs-bottom-item{padding:.88rem .75rem;text-align:center;border-right:1px solid rgba(255,255,255,.06)}\n    #fs-ad-landing .fs-bottom-item:last-child{border-right:0}\n    #fs-ad-landing .fs-bottom-val{font-family:'Orbitron',monospace;color:var(--fs-accent);font-weight:900;font-size:1rem;line-height:1}\n    #fs-ad-landing .fs-bottom-lbl{margin-top:.24rem;font-size:.52rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.28)}\n\n    #fs-ad-landing .fs-footer{\n      position:relative;\n      z-index:10;\n      width:min(var(--fs-max),calc(100% - 2.4rem));\n      margin:0 auto;\n      padding:2rem 0 7rem;\n      display:flex;\n      justify-content:space-between;\n      gap:1rem;\n      border-top:1px solid rgba(255,255,255,.06);\n      color:rgba(255,255,255,.25);\n      font-size:.72rem;\n    }\n\n    #fs-ad-landing .fs-reveal{opacity:0;transform:translateY(32px);transition:opacity .82s cubic-bezier(.16,1,.3,1),transform .82s cubic-bezier(.16,1,.3,1)}\n    #fs-ad-landing .fs-reveal.fs-visible{opacity:1;transform:translateY(0)}\n\n    #fs-ad-landing .fs-model-hint{\n      position:fixed;\n      right:1.2rem;\n      top:5.3rem;\n      z-index:80;\n      max-width:320px;\n      padding:.85rem 1rem;\n      background:rgba(3,3,4,.58);\n      border:1px solid rgba(223,88,25,.2);\n      color:rgba(255,255,255,.58);\n      font-size:.75rem;\n      line-height:1.65;\n      backdrop-filter:blur(18px);\n      display:none;\n    }\n    #fs-ad-landing .fs-model-hint strong{color:var(--fs-accent);font-family:'Orbitron',monospace;letter-spacing:.08em}\n\n    @media(max-width:980px){\n      #fs-ad-landing .fs-hero,\n      #fs-ad-landing .fs-section,\n      #fs-ad-landing .fs-section.fs-right-copy{\n        grid-template-columns:1fr;\n        gap:2rem;\n      }\n      #fs-ad-landing .fs-model-zone{min-height:280px;order:-1}\n      #fs-ad-landing .fs-model-frame{position:relative;right:auto;bottom:auto;width:100%;max-width:420px;margin:1rem 0 0 auto}\n      #fs-ad-landing .fs-section.fs-right-copy .fs-section-copy,\n      #fs-ad-landing .fs-section.fs-right-copy .fs-section-visual{grid-column:auto;grid-row:auto}\n      #fs-ad-landing .fs-card-grid{grid-template-columns:1fr}\n      #fs-ad-landing .fs-tech-panel{max-width:none}\n      #fs-ad-landing .fs-nav-links a:not(.fs-nav-cta){display:none}\n      #fs-ad-landing .fs-model-hint{display:block}\n    }\n\n    @media(max-width:620px){\n      #fs-ad-landing .fs-nav{padding:.85rem 1rem}\n      #fs-ad-landing .fs-logo{font-size:.95rem;letter-spacing:.12em}\n      #fs-ad-landing .fs-nav-cta{padding:.62rem .78rem;font-size:.55rem}\n      #fs-ad-landing .fs-hero{width:calc(100% - 1.4rem);padding-top:6.2rem}\n      #fs-ad-landing .fs-section,\n      #fs-ad-landing .fs-color-section,\n      #fs-ad-landing .fs-cta-section{width:calc(100% - 1.4rem);padding:5rem 0}\n      #fs-ad-landing .fs-tech-panel{grid-template-columns:1fr}\n      #fs-ad-landing .fs-color-dock{width:100%;flex-direction:column;gap:1rem}\n      #fs-ad-landing .fs-pips{gap:.72rem;flex-wrap:wrap;justify-content:center}\n      #fs-ad-landing .fs-pip{width:44px;height:44px}\n      #fs-ad-landing .fs-bottom-bar{grid-template-columns:repeat(2,1fr);bottom:.55rem}\n      #fs-ad-landing .fs-bottom-item:nth-child(2){border-right:0}\n      #fs-ad-landing .fs-bottom-item{padding:.66rem .5rem}\n      #fs-ad-landing .fs-footer{width:calc(100% - 1.4rem);flex-direction:column;padding-bottom:7rem}\n      #fs-ad-landing .fs-scroll-cue{display:none}\n    }\n  <\/style>\n\n  <div class=\"fs-loader\" id=\"fsLoader\">\n    <div class=\"fs-loader-ring\"><\/div>\n    <div class=\"fs-loader-text\">LOADING FASTSPORT<\/div>\n  <\/div>\n\n  <canvas class=\"fs-webgl\" id=\"fsWebgl\" aria-hidden=\"true\"><\/canvas>\n\n  <div class=\"fs-model-hint\" id=\"fsModelHint\"><strong>GLB MODEL<\/strong><br>\u8bf7\u5728\u4ee3\u7801\u91cc\u66ff\u6362 <code>GLB_MODEL_URL<\/code> \u4e3a\u4f60\u7684 .glb \u6587\u4ef6\u94fe\u63a5\u3002<\/div>\n\n  <div class=\"fs-content\">\n    <nav class=\"fs-nav\">\n      <a class=\"fs-logo\" href=\"#fs-ad-landing\">FAST<span>SPORT<\/span><\/a>\n      <div class=\"fs-nav-links\">\n        <a href=\"#fsPerf\">Performance<\/a>\n        <a href=\"#fsTech\">Tech<\/a>\n        <a href=\"#fsColor\">Color<\/a>\n        <a class=\"fs-nav-cta\" href=\"#fsOrder\">Reserve Now<\/a>\n      <\/div>\n    <\/nav>\n\n    <section class=\"fs-hero\" id=\"fsHero\">\n      <div class=\"fs-hero-copy\">\n        <div class=\"fs-badge fs-reveal\"><span class=\"fs-dot\"><\/span>Electric Off-Road Series<\/div>\n        <h1 class=\"fs-reveal\"><span class=\"fs-stroke\">FAST<\/span><br><span class=\"fs-glow-word\">SPORT<\/span><\/h1>\n        <p class=\"fs-hero-sub fs-reveal\">\u628a\u5e7f\u544a\u9875\u53d8\u6210\u4e00\u6b21\u8bd5\u9a91\u4f53\u9a8c\u3002FastSport \u7535\u52a8\u6469\u6258\u4ee5\u9ed1\u6a59\u9713\u8679\u89c6\u89c9\u30013D \u8f66\u578b\u5c55\u793a\u548c\u5f3a\u884c\u52a8\u53ec\u5524\uff0c\u627f\u63a5\u5916\u94fe\u3001\u793e\u5a92\u5e7f\u544a\u548c\u641c\u7d22\u6d41\u91cf\u3002<\/p>\n        <div class=\"fs-hero-actions fs-reveal\">\n          <a class=\"fs-btn fs-btn-primary\" href=\"#fsOrder\">\u7acb\u5373\u54a8\u8be2<\/a>\n          <a class=\"fs-btn fs-btn-ghost\" href=\"#fsPerf\">\u67e5\u770b\u53c2\u6570<\/a>\n        <\/div>\n      <\/div>\n\n      <div class=\"fs-model-zone\" aria-hidden=\"true\">\n        <div class=\"fs-model-frame fs-reveal\">\n          <div class=\"fs-mini-title\">FastSport EB12<\/div>\n          <div class=\"fs-mini-grid\">\n            <div class=\"fs-mini-cell\"><div class=\"fs-mini-val\">2000W<\/div><div class=\"fs-mini-lbl\">Motor<\/div><\/div>\n            <div class=\"fs-mini-cell\"><div class=\"fs-mini-val\">48V<\/div><div class=\"fs-mini-lbl\">Battery<\/div><\/div>\n            <div class=\"fs-mini-cell\"><div class=\"fs-mini-val\">55km\/h<\/div><div class=\"fs-mini-lbl\">Top Speed<\/div><\/div>\n            <div class=\"fs-mini-cell\"><div class=\"fs-mini-val\">50\u201360km<\/div><div class=\"fs-mini-lbl\">Range<\/div><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"fs-scroll-cue\">\n        <div class=\"fs-scroll-bar\"><\/div>\n        <span>Scroll to explore<\/span>\n      <\/div>\n    <\/section>\n\n    <section class=\"fs-section\" id=\"fsPerf\">\n      <div class=\"fs-section-copy\">\n        <div class=\"fs-section-label fs-reveal\">Performance<\/div>\n        <h2 class=\"fs-section-title fs-reveal\">\u4e3a\u6ce5\u5730\u800c\u751f<br>\u4e3a\u5468\u672b\u91ca\u653e<\/h2>\n        <p class=\"fs-section-desc fs-reveal\">\u628a\u6838\u5fc3\u53c2\u6570\u96c6\u4e2d\u6210\u5e7f\u544a\u843d\u5730\u9875\u6700\u5bb9\u6613\u7406\u89e3\u7684\u4e09\u5f20\u5361\u7247\uff0c\u51cf\u5c11\u539f\u9875\u9762\u6587\u5b57\u548c\u6a21\u578b\u4e92\u76f8\u906e\u6321\u7684\u95ee\u9898\uff0c\u8ba9\u7528\u6237\u7b2c\u4e00\u5c4f\u5c31\u77e5\u9053\uff1a\u52a8\u529b\u3001\u7eed\u822a\u3001\u901f\u5ea6\u3002<\/p>\n      <\/div>\n      <div class=\"fs-section-visual\">\n        <div class=\"fs-card-grid\">\n          <article class=\"fs-spec-card fs-reveal\">\n            <div class=\"fs-spec-num\">2000<span class=\"fs-spec-unit\">W<\/span><\/div>\n            <div class=\"fs-spec-label\">High Torque Motor<\/div>\n            <div class=\"fs-spec-text\">\u7535\u9a71\u54cd\u5e94\u76f4\u63a5\uff0c\u9002\u5408\u77ed\u9014\u8d8a\u91ce\u3001\u8349\u5730\u3001\u788e\u77f3\u548c\u5165\u95e8\u7ec3\u4e60\u573a\u666f\u3002<\/div>\n          <\/article>\n          <article class=\"fs-spec-card fs-reveal\">\n            <div class=\"fs-spec-num\">50\u201360<span class=\"fs-spec-unit\">km<\/span><\/div>\n            <div class=\"fs-spec-label\">Riding Range<\/div>\n            <div class=\"fs-spec-text\">\u7528\u4e8e\u5e7f\u544a\u9875\u65f6\u4fdd\u7559\u533a\u95f4\u8868\u8fbe\uff0c\u907f\u514d\u56e0\u8def\u51b5\u3001\u4f53\u91cd\u548c\u901f\u5ea6\u5dee\u5f02\u9020\u6210\u8fc7\u5ea6\u627f\u8bfa\u3002<\/div>\n          <\/article>\n          <article class=\"fs-spec-card fs-reveal\">\n            <div class=\"fs-spec-num\">55<span class=\"fs-spec-unit\">km\/h<\/span><\/div>\n            <div class=\"fs-spec-label\">Top Speed<\/div>\n            <div class=\"fs-spec-text\">\u5f3a\u8c03 off-road use\u3001\u5b89\u5168\u88c5\u5907\u548c\u5f53\u5730\u6cd5\u89c4\uff0c\u589e\u5f3a\u7528\u6237\u4fe1\u4efb\u611f\u3002<\/div>\n          <\/article>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <section class=\"fs-section fs-right-copy\" id=\"fsTech\">\n      <div class=\"fs-section-copy\">\n        <div class=\"fs-section-label fs-reveal\">Technology<\/div>\n        <h2 class=\"fs-section-title fs-reveal\">\u53c2\u6570\u6e05\u6670<br>\u4fe1\u4efb\u66f4\u5f3a<\/h2>\n        <p class=\"fs-section-desc fs-reveal\">\u8fd9\u91cc\u9002\u5408\u627f\u63a5 Google Ads\u3001TikTok\u3001YouTube \u548c\u5916\u94fe\u6d41\u91cf\u3002\u9875\u9762\u4e0d\u53ea\u5c55\u793a\u9177\u70ab\u6548\u679c\uff0c\u4e5f\u628a\u7528\u6237\u6700\u5173\u5fc3\u7684\u7535\u6c60\u3001\u5239\u8f66\u3001\u8f6e\u80ce\u3001\u4fdd\u4fee\u548c\u914d\u9001\u4fe1\u606f\u524d\u7f6e\u3002<\/p>\n      <\/div>\n      <div class=\"fs-section-visual\">\n        <div class=\"fs-tech-panel fs-reveal\">\n          <div class=\"fs-tech-cell\"><div class=\"fs-tech-val\">48V<\/div><div class=\"fs-tech-lbl\">Battery System<\/div><\/div>\n          <div class=\"fs-tech-cell\"><div class=\"fs-tech-val\">14 \/ 12 in<\/div><div class=\"fs-tech-lbl\">Front \/ Rear Tire<\/div><\/div>\n          <div class=\"fs-tech-cell\"><div class=\"fs-tech-val\">Disc Brake<\/div><div class=\"fs-tech-lbl\">Power-Off Braking<\/div><\/div>\n          <div class=\"fs-tech-cell\"><div class=\"fs-tech-val\">IPX6<\/div><div class=\"fs-tech-lbl\">Water Resistance<\/div><\/div>\n          <div class=\"fs-tech-cell\"><div class=\"fs-tech-val\">U.S.<\/div><div class=\"fs-tech-lbl\">Target Market<\/div><\/div>\n          <div class=\"fs-tech-cell\"><div class=\"fs-tech-val\">Off-Road<\/div><div class=\"fs-tech-lbl\">Use Scenario<\/div><\/div>\n          <div class=\"fs-tech-cell\"><div class=\"fs-tech-val\">Warranty<\/div><div class=\"fs-tech-lbl\">After-Sales Support<\/div><\/div>\n          <div class=\"fs-tech-cell\"><div class=\"fs-tech-val\">Fast CTA<\/div><div class=\"fs-tech-lbl\">Shopify Checkout<\/div><\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <section class=\"fs-color-section\" id=\"fsColor\">\n      <div class=\"fs-section-label fs-reveal\">Livery<\/div>\n      <h2 class=\"fs-section-title fs-reveal\">\u4fdd\u7559\u70ab\u9177\u6548\u679c<br>\u51cf\u5c11\u89c6\u89c9\u6742\u4e71<\/h2>\n      <p class=\"fs-section-desc fs-reveal\" style=\"text-align:center;margin-left:auto;margin-right:auto\">\u914d\u8272\u9009\u62e9\u533a\u6539\u6210\u72ec\u7acb\u60ac\u6d6e\u63a7\u5236\u53f0\uff0c\u540e\u7eed\u5982\u679c GLB \u6a21\u578b\u6750\u8d28\u547d\u540d\u5305\u542b body \/ fairing \/ tank \/ shell \/ plastic\uff0c\u4f1a\u81ea\u52a8\u5c1d\u8bd5\u540c\u6b65\u6539\u8272\u3002<\/p>\n      <div class=\"fs-color-dock fs-reveal\">\n        <div class=\"fs-pips\">\n          <button class=\"fs-pip fs-on\" type=\"button\" data-color=\"0x0d1117\" data-name=\"Night Black\" aria-label=\"Night Black\"><\/button>\n          <button class=\"fs-pip\" type=\"button\" data-color=\"0xdf5819\" data-name=\"Desert Orange\" aria-label=\"Desert Orange\"><\/button>\n          <button class=\"fs-pip\" type=\"button\" data-color=\"0x1f67a5\" data-name=\"Trail Blue\" aria-label=\"Trail Blue\"><\/button>\n          <button class=\"fs-pip\" type=\"button\" data-color=\"0x444444\" data-name=\"Mud Grey\" aria-label=\"Mud Grey\"><\/button>\n        <\/div>\n        <div class=\"fs-color-name\" id=\"fsColorName\">Night Black<\/div>\n      <\/div>\n    <\/section>\n\n    <section class=\"fs-cta-section\" id=\"fsOrder\">\n      <div class=\"fs-section-label fs-reveal\">Landing CTA<\/div>\n      <h2 class=\"fs-section-title fs-reveal\">\u8ba9\u7528\u6237\u4ece\u5e7f\u544a<br>\u76f4\u63a5\u8fdb\u5165\u6210\u4ea4\u8def\u5f84<\/h2>\n      <div class=\"fs-price fs-reveal\"><span>FROM<\/span>$999<\/div>\n      <p class=\"fs-note fs-reveal\">\u6309\u94ae\u5efa\u8bae\u8df3\u8f6c\u5230 Shopify \u4ea7\u54c1\u9875\u3001\u8be2\u76d8\u8868\u5355\u6216 TikTok Shop\u3002\u4ef7\u683c\u3001\u4fdd\u4fee\u3001\u914d\u9001\u4fe1\u606f\u8bf7\u4ee5\u4e0a\u7ebf\u4ea7\u54c1\u9875\u4e3a\u51c6\u3002<\/p>\n      <div class=\"fs-hero-actions fs-reveal\" style=\"justify-content:center\">\n        <a class=\"fs-btn fs-btn-primary\" href=\"https:\/\/fastsportofficial.com\/\" target=\"_blank\" rel=\"noopener\">Shop Official<\/a>\n        <a class=\"fs-btn fs-btn-ghost\" href=\"#fsHero\">\u8fd4\u56de\u9876\u90e8<\/a>\n      <\/div>\n    <\/section>\n\n    <footer class=\"fs-footer\">\n      <span>\u00a9 FastSport Electric Motorcycle<\/span>\n      <span>Dirt. Water. Speed. Unbound.<\/span>\n    <\/footer>\n  <\/div>\n\n  <div class=\"fs-bottom-bar\" aria-label=\"FastSport key specs\">\n    <div class=\"fs-bottom-item\"><div class=\"fs-bottom-val\">2000W<\/div><div class=\"fs-bottom-lbl\">Motor<\/div><\/div>\n    <div class=\"fs-bottom-item\"><div class=\"fs-bottom-val\">50\u201360km<\/div><div class=\"fs-bottom-lbl\">Range<\/div><\/div>\n    <div class=\"fs-bottom-item\"><div class=\"fs-bottom-val\">55km\/h<\/div><div class=\"fs-bottom-lbl\">Speed<\/div><\/div>\n    <div class=\"fs-bottom-item\"><div class=\"fs-bottom-val\">48V<\/div><div class=\"fs-bottom-lbl\">Battery<\/div><\/div>\n  <\/div>\n\n  <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/three.js\/r128\/three.min.js\"><\/script>\n  <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/three@0.128.0\/examples\/js\/loaders\/GLTFLoader.js\"><\/script>\n  <script>\n    (function(){\n      const root = document.getElementById('fs-ad-landing');\n      if(!root || !window.THREE) return;\n\n      \/\/ \u66ff\u6362\u8fd9\u91cc\uff1a\u4e0a\u4f20 .glb \u540e\uff0c\u628a\u94fe\u63a5\u7c98\u8d34\u5230\u4e0b\u9762\u3002\n      const GLB_MODEL_URL = 'https:\/\/your-domain.com\/wp-content\/uploads\/models\/fastsport-eb12.glb';\n\n      \/\/ \u5982\u679c\u4f60\u7684 GLB \u8f66\u8eab\u6750\u8d28\u540d\u79f0\u5305\u542b\u8fd9\u4e9b\u5173\u952e\u8bcd\uff0c\u914d\u8272\u6309\u94ae\u4f1a\u5c1d\u8bd5\u540c\u6b65\u6539\u8272\u3002\n      const PAINT_MATERIAL_KEYWORDS = ['body','fairing','tank','shell','plastic','cover','frame'];\n\n      const canvas = root.querySelector('#fsWebgl');\n      const loaderEl = root.querySelector('#fsLoader');\n      const modelHint = root.querySelector('#fsModelHint');\n      const W = () => window.innerWidth;\n      const H = () => window.innerHeight;\n      const isPlaceholderUrl = GLB_MODEL_URL.indexOf('your-domain.com') !== -1 || !\/\\.glb(\\?|$)\/i.test(GLB_MODEL_URL);\n\n      const renderer = new THREE.WebGLRenderer({canvas, antialias:true, alpha:false, powerPreference:'high-performance'});\n      renderer.setSize(W(), H());\n      renderer.setPixelRatio(Math.min(window.devicePixelRatio || 1, 2));\n      renderer.setClearColor(0x030304);\n      renderer.toneMapping = THREE.ACESFilmicToneMapping;\n      renderer.toneMappingExposure = 1.05;\n      renderer.shadowMap.enabled = true;\n      renderer.shadowMap.type = THREE.PCFSoftShadowMap;\n\n      const scene = new THREE.Scene();\n      scene.fog = new THREE.FogExp2(0x030304, 0.038);\n\n      const camera = new THREE.PerspectiveCamera(52, W()\/H(), 0.1, 260);\n      camera.position.set(5.8, 3.2, 7.4);\n\n      const stage = new THREE.Group();\n      stage.position.set(1.15, .28, 0);\n      scene.add(stage);\n\n      scene.add(new THREE.AmbientLight(0x151522, .42));\n\n      const key = new THREE.DirectionalLight(0xffffff, .72);\n      key.position.set(8, 12, 6);\n      key.castShadow = true;\n      key.shadow.mapSize.set(2048,2048);\n      scene.add(key);\n\n      const rimA = new THREE.PointLight(0xdf5819, 3.2, 18);\n      rimA.position.set(-4.5, 3, 4.5);\n      scene.add(rimA);\n\n      const rimB = new THREE.PointLight(0xff8c42, 2.2, 14);\n      rimB.position.set(4, 2, -4.2);\n      scene.add(rimB);\n\n      const under = new THREE.PointLight(0xdf5819, 1.5, 8);\n      under.position.set(.6, .2, 0);\n      scene.add(under);\n\n      const groundGeo = new THREE.PlaneGeometry(120,120);\n      const groundMat = new THREE.MeshStandardMaterial({color:0x050508,roughness:.92,metalness:.08});\n      const ground = new THREE.Mesh(groundGeo, groundMat);\n      ground.rotation.x = -Math.PI\/2;\n      ground.receiveShadow = true;\n      scene.add(ground);\n\n      const grid = new THREE.GridHelper(70,90,0xdf5819,0x101016);\n      grid.material.transparent = true;\n      grid.material.opacity = .075;\n      scene.add(grid);\n\n      const rings = [];\n      for(let i=0;i<5;i++){\n        const geo = new THREE.TorusGeometry(2.15 + i*.95, .006, 4, 148);\n        const mat = new THREE.MeshBasicMaterial({color:i%2?0xff8c42:0xdf5819,transparent:true,opacity:.052});\n        const ring = new THREE.Mesh(geo, mat);\n        ring.position.set(.72,1.28,0);\n        ring.rotation.x = Math.PI\/2 + (Math.random()-.5)*.36;\n        scene.add(ring);\n        rings.push({mesh:ring,speed:.004+Math.random()*.006,offset:Math.random()*Math.PI*2});\n      }\n\n      const particleCount = W() < 760 ? 900 : 2200;\n      const pGeo = new THREE.BufferGeometry();\n      const pPos = new Float32Array(particleCount * 3);\n      const pVel = new Float32Array(particleCount * 3);\n      for(let i=0;i<particleCount;i++){\n        pPos[i*3] = (Math.random()-.5)*44;\n        pPos[i*3+1] = Math.random()*20;\n        pPos[i*3+2] = (Math.random()-.5)*44;\n        pVel[i*3] = (Math.random()-.5)*.006;\n        pVel[i*3+1] = Math.random()*.005+.002;\n        pVel[i*3+2] = (Math.random()-.5)*.006;\n      }\n      pGeo.setAttribute('position', new THREE.BufferAttribute(pPos,3));\n      const particles = new THREE.Points(\n        pGeo,\n        new THREE.PointsMaterial({color:0xdf5819,size:.024,transparent:true,opacity:.46,blending:THREE.AdditiveBlending})\n      );\n      scene.add(particles);\n\n      let loadedModel = null;\n      let paintMaterials = [];\n      let currentPaint = 0x0d1117;\n\n      function normalizeAndAddModel(object){\n        const box = new THREE.Box3().setFromObject(object);\n        const size = box.getSize(new THREE.Vector3());\n        const center = box.getCenter(new THREE.Vector3());\n        const maxAxis = Math.max(size.x,size.y,size.z) || 1;\n        const scale = 3.15 \/ maxAxis;\n\n        object.position.sub(center);\n        object.scale.setScalar(scale);\n        object.rotation.y = Math.PI * -.08;\n\n        object.traverse(child => {\n          if(child.isMesh){\n            child.castShadow = true;\n            child.receiveShadow = true;\n            if(child.material){\n              const mats = Array.isArray(child.material) ? child.material : [child.material];\n              mats.forEach(m => {\n                if(m && m.name && PAINT_MATERIAL_KEYWORDS.some(k => m.name.toLowerCase().includes(k))){\n                  paintMaterials.push(m);\n                }\n              });\n            }\n          }\n        });\n\n        loadedModel = object;\n        stage.add(loadedModel);\n        if(paintMaterials.length) setPaintColor(currentPaint);\n      }\n\n      function makeFallbackBike(){\n        const g = new THREE.Group();\n        const metal = new THREE.MeshPhysicalMaterial({color:0x151515,metalness:.9,roughness:.18,clearcoat:.8});\n        const paint = new THREE.MeshPhysicalMaterial({color:currentPaint,metalness:.7,roughness:.16,clearcoat:1,emissive:0x180700,emissiveIntensity:.18});\n        const orange = new THREE.MeshPhysicalMaterial({color:0xdf5819,metalness:.85,roughness:.08,emissive:0xdf5819,emissiveIntensity:.35});\n        paint.name = 'body_fallback_paint';\n        paintMaterials = [paint];\n\n        const body = new THREE.Mesh(new THREE.BoxGeometry(1.9,.42,.66), paint);\n        body.position.set(.05,1.08,0);\n        body.castShadow = true;\n        g.add(body);\n\n        const seat = new THREE.Mesh(new THREE.BoxGeometry(1.25,.16,.54), new THREE.MeshStandardMaterial({color:0x050505,roughness:.9}));\n        seat.position.set(-.38,1.42,0);\n        seat.castShadow = true;\n        g.add(seat);\n\n        [-1.15,1.25].forEach(x=>{\n          const tire = new THREE.Mesh(new THREE.TorusGeometry(.46,.105,24,56), new THREE.MeshStandardMaterial({color:0x080808,roughness:.86}));\n          tire.position.set(x,.46,0);\n          tire.castShadow = true;\n          g.add(tire);\n          const rim = new THREE.Mesh(new THREE.TorusGeometry(.31,.018,10,48), orange);\n          rim.position.set(x,.46,0);\n          g.add(rim);\n        });\n\n        const fork = new THREE.Mesh(new THREE.CylinderGeometry(.035,.035,1.35,16), metal);\n        fork.position.set(1.22,1.04,.18); fork.rotation.z = -.18; g.add(fork);\n        const fork2 = fork.clone(); fork2.position.z = -.18; g.add(fork2);\n        const swing = new THREE.Mesh(new THREE.BoxGeometry(1.35,.06,.08), metal);\n        swing.position.set(-.42,.62,0); swing.rotation.z = .12; g.add(swing);\n        const light = new THREE.Mesh(new THREE.SphereGeometry(.08,18,18), new THREE.MeshBasicMaterial({color:0xdf5819}));\n        light.position.set(1.45,1.22,0); g.add(light);\n\n        normalizeAndAddModel(g);\n        if(modelHint) modelHint.style.display = 'block';\n      }\n\n      function setPaintColor(hex){\n        currentPaint = hex;\n        paintMaterials.forEach(mat => {\n          if(mat && mat.color) mat.color.setHex(hex);\n          if(mat && mat.emissive) mat.emissive.setHex(hex === 0x0d1117 ? 0x120600 : hex);\n        });\n        rimA.color.setHex(hex === 0x0d1117 ? 0xdf5819 : hex);\n      }\n\n      if(isPlaceholderUrl){\n        makeFallbackBike();\n      }else{\n        const gltfLoader = new THREE.GLTFLoader();\n        gltfLoader.load(\n          GLB_MODEL_URL,\n          gltf => normalizeAndAddModel(gltf.scene),\n          undefined,\n          err => {\n            console.warn('GLB load failed, fallback model enabled:', err);\n            makeFallbackBike();\n          }\n        );\n      }\n\n      let mx = 0, my = 0, scrollY = window.scrollY || 0;\n      document.addEventListener('mousemove', function(e){\n        mx = (e.clientX \/ W() - .5) * 2;\n        my = (e.clientY \/ H() - .5) * 2;\n      }, {passive:true});\n      window.addEventListener('scroll', function(){ scrollY = window.scrollY || 0; }, {passive:true});\n\n      const colorName = root.querySelector('#fsColorName');\n      root.querySelectorAll('.fs-pip').forEach(btn => {\n        btn.addEventListener('click', function(){\n          root.querySelectorAll('.fs-pip').forEach(b => b.classList.remove('fs-on'));\n          btn.classList.add('fs-on');\n          if(colorName) colorName.textContent = btn.dataset.name;\n          setPaintColor(parseInt(btn.dataset.color, 16));\n        });\n      });\n\n      const io = new IntersectionObserver(entries => {\n        entries.forEach(entry => {\n          if(entry.isIntersecting){\n            entry.target.classList.add('fs-visible');\n            io.unobserve(entry.target);\n          }\n        });\n      }, {threshold:.12});\n      root.querySelectorAll('.fs-reveal').forEach((el,i)=>{\n        el.style.transitionDelay = Math.min(i*35,260) + 'ms';\n        io.observe(el);\n      });\n\n      const clock = new THREE.Clock();\n      function animate(){\n        requestAnimationFrame(animate);\n        const t = clock.getElapsedTime();\n        const maxScroll = Math.max(1, document.documentElement.scrollHeight - window.innerHeight);\n        const sp = Math.min(1, Math.max(0, scrollY \/ maxScroll));\n        const mobile = W() < 760;\n\n        stage.position.x = mobile ? 0 : 1.05 - sp*.55;\n        stage.position.y = .28 + Math.sin(t*.7)*.06 - sp*.18;\n        stage.rotation.y = Math.sin(t*.24)*.10 + mx*.16 + sp*.42;\n        stage.rotation.x = my*.035;\n\n        camera.position.x = mobile ? 0 : 5.8 - sp*2.1;\n        camera.position.y = mobile ? 2.9 - sp*1.6 : 3.2 - sp*2.25;\n        camera.position.z = mobile ? 7.6 - sp*2.2 : 7.4 - sp*4.4;\n        camera.lookAt(mobile ? 0 : .35, 1.05 + sp*.28, 0);\n\n        rimA.position.x = Math.sin(t*.42)*5;\n        rimA.position.z = Math.cos(t*.42)*5;\n        rimB.position.x = Math.cos(t*.34)*4.5;\n\n        rings.forEach(r=>{\n          r.mesh.rotation.z = t * r.speed + r.offset;\n          r.mesh.position.y = 1.25 + Math.sin(t*.42 + r.offset)*.32;\n        });\n\n        const arr = particles.geometry.attributes.position.array;\n        for(let i=0;i<particleCount;i++){\n          arr[i*3] += pVel[i*3];\n          arr[i*3+1] += pVel[i*3+1];\n          arr[i*3+2] += pVel[i*3+2];\n          if(arr[i*3+1] > 20){\n            arr[i*3+1] = 0;\n            arr[i*3] = (Math.random()-.5)*44;\n            arr[i*3+2] = (Math.random()-.5)*44;\n          }\n        }\n        particles.geometry.attributes.position.needsUpdate = true;\n\n        renderer.render(scene,camera);\n      }\n\n      window.addEventListener('resize', function(){\n        camera.aspect = W()\/H();\n        camera.updateProjectionMatrix();\n        renderer.setSize(W(),H());\n      }, {passive:true});\n\n      animate();\n      setTimeout(function(){ if(loaderEl) loaderEl.classList.add('fs-done'); }, 1150);\n    })();\n  <\/script>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>LOADING FASTSPORT GLB MODEL\u8bf7\u5728\u4ee3\u7801\u91cc\u66ff\u6362 GLB_MODEL_URL \u4e3a\u4f60\u7684 .glb \u6587\u4ef6\u94fe\u63a5\u3002 FASTSPORT Performance Tech Color Reserve Now Electric Off-Road Series FASTSPORT \u628a\u5e7f\u544a\u9875\u53d8\u6210\u4e00\u6b21\u8bd5\u9a91\u4f53\u9a8c\u3002FastSport \u7535\u52a8\u6469\u6258\u4ee5\u9ed1\u6a59\u9713\u8679\u89c6\u89c9\u30013D [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"plain-container","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"enabled","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-8","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/fastsportgear.com\/index.php\/wp-json\/wp\/v2\/pages\/8","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fastsportgear.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/fastsportgear.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/fastsportgear.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fastsportgear.com\/index.php\/wp-json\/wp\/v2\/comments?post=8"}],"version-history":[{"count":2,"href":"https:\/\/fastsportgear.com\/index.php\/wp-json\/wp\/v2\/pages\/8\/revisions"}],"predecessor-version":[{"id":25,"href":"https:\/\/fastsportgear.com\/index.php\/wp-json\/wp\/v2\/pages\/8\/revisions\/25"}],"wp:attachment":[{"href":"https:\/\/fastsportgear.com\/index.php\/wp-json\/wp\/v2\/media?parent=8"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}