/*
Theme Name: SandWorm 漏斗主题
Theme URI: https://matchbox-tech.com/
Description: SandWorm 产品网站与转化漏斗主题。
Version: 0.1.0
Requires at least: 6.4
Requires PHP: 8.0
*/
.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.screen-reader-text:focus{position:fixed;z-index:100;top:12px;left:12px;width:auto;height:auto;margin:0;padding:10px 14px;background:#fff;color:#000;clip:auto}.form-shell input[type="checkbox"]{width:auto;margin:0 8px 0 0}
:root{--ink:#f4f5f0;--muted:#a5aba4;--panel:#111715;--line:#27312c;--accent:#b8ff5a;--cyan:#83f5d0;--max:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#080b0a;color:var(--ink);font:16px/1.6 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}img,video{max-width:100%;display:block}.site-header{position:fixed;z-index:10;inset:0 0 auto;background:rgba(8,11,10,.76);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.08)}.nav{max-width:var(--max);margin:auto;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-size:20px;font-weight:800;letter-spacing:-.03em}.nav-links{display:flex;align-items:center;gap:24px;font-size:14px;color:#bbc3bb}.nav-links a:hover{color:#fff}.nav-toggle{display:none;background:none;color:#fff;border:1px solid #445048;border-radius:7px;padding:7px 10px}.wrap{max-width:var(--max);margin:auto;padding:0 24px}.hero{min-height:92vh;display:grid;align-items:end;position:relative;overflow:hidden;grid-template-columns:minmax(0,1fr)}.hero>.elementor-container{width:100%;max-width:var(--sw-hero-width,590px);margin-left:auto;margin-right:auto}.hero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.7}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#080b0a 2%,rgba(8,11,10,.42) 55%,rgba(8,11,10,.15))}.hero-copy{position:relative;z-index:1;padding:150px 0 90px;max-width:100%}.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.15em;font-size:12px;font-weight:700}.hero h1{font-size:clamp(48px,8vw,94px);line-height:.98;letter-spacing:-.06em;margin:18px 0}.hero p{font-size:20px;color:#d5dad5;max-width:var(--sw-hero-text-width,590px)}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.button{display:inline-flex;align-items:center;gap:10px;padding:13px 18px;border-radius:7px;background:var(--accent);color:#091008;font-weight:750}.button.ghost{background:transparent;color:#fff;border:1px solid #526058}.section{padding:110px 0;border-top:1px solid var(--line)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:34px}.section h2{font-size:clamp(34px,5vw,64px);line-height:1.02;letter-spacing:-.05em;margin:0}.section-lead{max-width:560px;color:var(--muted);font-size:18px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.card{background:var(--panel);border:1px solid var(--line);padding:24px;border-radius:8px}.card h3{margin:0 0 9px;font-size:22px}.card p{margin:0;color:var(--muted)}.test-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;align-items:stretch}.media-card{min-height:360px;position:relative;overflow:hidden;border-radius:8px;border:1px solid var(--line);background:#101612}.media-card img,.media-card video{width:100%;height:100%;object-fit:cover}.media-card .overlay{position:absolute;inset:auto 0 0;padding:28px;background:linear-gradient(transparent,rgba(0,0,0,.8))}.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.step{border-top:2px solid #38453d;padding-top:14px}.step strong{display:block;color:var(--accent);font-size:13px}.step span{display:block;margin-top:14px;font-weight:650}.form-shell{max-width:680px;background:#e9eee6;color:#111;padding:32px;border-radius:8px}.form-shell label{display:block;margin:0 0 18px;font-weight:700}.form-shell input,.form-shell select,.form-shell textarea{width:100%;margin-top:7px;padding:12px;border:1px solid #b8c1b7;border-radius:5px;background:white;font:inherit}.form-shell button{border:0;cursor:pointer}.notice{margin-top:14px;color:#3c5944}.site-footer{padding:65px 0 30px;border-top:1px solid var(--line);color:var(--muted)}.footer-grid{display:flex;justify-content:space-between;gap:30px}.legal{font-size:13px;margin-top:45px;color:#707b72}@media(max-width:800px){.nav-links{display:none}.nav-toggle{display:block}.nav.open .nav-links{display:flex;position:absolute;left:0;right:0;top:65px;padding:18px 24px;background:#0b0f0d;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}.grid,.test-grid,.steps{grid-template-columns:1fr}.section{padding:78px 0}.hero-copy{padding-bottom:60px}.hero h1{font-size:56px}.footer-grid{display:block}}

/* ---------------------------------------------------------------------------
 * Elementor 兼容层
 *
 * 页面正文改由 Elementor 渲染后，主题原有的 .section / .card / .steps 等类
 * 依然生效，这里只补齐 Elementor 自己的容器、标题与按钮默认样式，让
 * Elementor 输出直接沿用 SandWorm 的视觉。
 * ------------------------------------------------------------------------ */
.elementor-section-boxed>.elementor-container{max-width:var(--max)}
.elementor-section.section{padding:110px 0;border-top:1px solid var(--line)}
.elementor-section.section:first-child{border-top:0}
.elementor-section.hero{min-height:92vh;display:grid;align-items:end;position:relative;overflow:hidden;grid-template-columns:minmax(0,1fr)}
.elementor-section.hero>.elementor-container{position:relative;z-index:1;width:100%;max-width:var(--sw-hero-width,590px);margin-left:auto;margin-right:auto}
.elementor-column.hero-copy{padding:150px 0 90px;max-width:100%}
.elementor-column.hero-copy>.elementor-widget-wrap{padding:0}
.elementor-section.hero .elementor-widget-heading .elementor-heading-title{font-size:clamp(48px,8vw,94px);line-height:.98;letter-spacing:-.06em;margin:18px 0}
.elementor-section.hero .elementor-widget-text-editor{font-size:20px;color:#d5dad5}
.elementor-inner-section.section-head-row{margin-bottom:34px}
.elementor-inner-section.section-head-row>.elementor-container{align-items:flex-end}
.elementor-column.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:24px}
.elementor-column.card>.elementor-widget-wrap{padding:0}
.elementor-column.step{border-top:2px solid #38453d;padding-top:14px}
.elementor-column.step>.elementor-widget-wrap{padding:0}
.elementor-column.actions>.elementor-widget-wrap{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px;padding:0}
.elementor-column.actions .elementor-widget-button{width:auto}
.elementor-widget-heading .elementor-heading-title{color:var(--ink);font-weight:800;margin:0}
.elementor-section .elementor-widget-heading h2.elementor-heading-title{font-size:clamp(34px,5vw,64px);line-height:1.02;letter-spacing:-.05em}
.elementor-column.card .elementor-widget-heading .elementor-heading-title,.elementor-column.step .elementor-widget-heading .elementor-heading-title{font-size:22px;letter-spacing:-.02em;margin:0 0 9px}
.elementor-column.step .elementor-widget-text-editor strong{display:block;color:var(--accent);font-size:13px}
.elementor-column.step .elementor-widget-text-editor p{margin:14px 0 0;color:var(--ink);font-weight:650}
.elementor-widget-text-editor{color:var(--muted)}
.elementor-widget-text-editor p{margin:0 0 10px}
.elementor-widget-text-editor.section-lead{max-width:560px;color:var(--muted);font-size:18px}
.elementor-widget-text-editor.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:12px;font-weight:700}
.elementor-widget-button .elementor-button{background:var(--accent);color:#091008;border:0;border-radius:7px;padding:15px 20px;font-size:16px;font-weight:750;line-height:1;fill:#091008}
.elementor-widget-button .elementor-button:hover,.elementor-widget-button .elementor-button:focus{background:#a6ef4a;color:#091008}
.elementor-widget-button.ghost .elementor-button{background:transparent;color:#fff;border:1px solid #526058}
.elementor-widget-button.ghost .elementor-button:hover{background:rgba(255,255,255,.08);color:#fff}
.elementor-widget-html .media-card{display:block}
@media(max-width:800px){.elementor-section.section{padding:78px 0}.elementor-column.hero-copy{padding:120px 0 60px}}

/* Supplied rover image in the More ground / More chances feature section. */
.elementor-widget-image.sandworm-rover-feature{width:100%;margin:0}
.sandworm-rover-feature .elementor-widget-container{width:100%}
.sandworm-rover-feature img{display:block;width:100%;height:auto;aspect-ratio:1882 / 544;object-fit:contain;border-radius:14px}
@media(max-width:800px){.sandworm-rover-feature img{border-radius:10px}}

/* ---------------------------------------------------------------------------
 * 页头导航改由「外观 → 菜单」渲染（header.php 里的 wp_nav_menu）后的样式
 * ------------------------------------------------------------------------ */
ul.nav-links{list-style:none;margin:0;padding:0}
ul.nav-links li{display:flex;align-items:center}
ul.nav-links a{display:inline-flex;align-items:center;gap:10px}
ul.nav-links .nav-cta>a{padding:13px 18px;border-radius:7px;background:var(--accent);color:#091008;font-weight:750}
ul.nav-links .nav-cta>a:hover{background:#a6ef4a;color:#091008}

/* ---------------------------------------------------------------------------
 * 语言切换（Polylang）与导航右侧容器
 * ------------------------------------------------------------------------ */
.nav-right{display:flex;align-items:center;gap:20px;margin-left:auto}
ul.lang-switch{display:flex;align-items:center;gap:10px;list-style:none;margin:0;padding:0 0 0 16px;border-left:1px solid rgba(255,255,255,.14);font-size:13px}
ul.lang-switch li{display:flex;align-items:center}
ul.lang-switch a{color:#bbc3bb;padding:4px 2px}
ul.lang-switch a:hover{color:#fff}
ul.lang-switch .current a{color:var(--accent);font-weight:700}
@media(max-width:800px){.nav-right{gap:12px}ul.lang-switch{padding-left:10px}}

/* ---------------------------------------------------------------------------
 * 首页 Dev Log 列表（短代码输出）的样式
 * ------------------------------------------------------------------------ */
.devlog-grid{align-items:stretch}
.devlog-date{color:var(--muted);font-size:13px;margin:0 0 6px}
.devlog-grid .card h3{margin:0 0 9px}
.devlog-grid .card h3 a:hover{color:var(--accent)}
.elementor-widget-shortcode .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:800px){.elementor-widget-shortcode .grid{grid-template-columns:1fr}}

/* ---------------------------------------------------------------------------
 * 转化漏斗：分步表单 + 支持阶梯（[sandworm_lead_form] / [sandworm_support_ladder]）
 * ------------------------------------------------------------------------- */

/* 分步线索表单 */
.lead-form{max-width:680px}
.lead-steps{display:flex;gap:18px;list-style:none;margin:0 0 22px;padding:0;font-size:13px;color:#7c877c;font-weight:600}
.lead-steps li{position:relative;padding-left:14px}
.lead-steps li:before{content:"";position:absolute;left:0;top:6px;width:6px;height:6px;border-radius:50%;background:#c3ccc3}
.lead-steps li.is-current{color:#1c2a1c}
.lead-steps li.is-current:before{background:#3f7a3f}
.lead-form .lead-step{border:0;margin:0;padding:0;min-width:0}
.lead-form legend{font-size:20px;font-weight:700;padding:0;margin:0 0 6px;color:#111}
.lead-hint,.lead-note{margin:0 0 16px;font-size:13px;color:#5c6a5c;font-weight:500}
.lead-choices{display:grid;gap:8px;margin:14px 0 18px}
.lead-form .lead-choices label,.lead-form .lead-tier label,.lead-form .lead-trial-toggle,.lead-form .lead-consent{display:flex;gap:9px;align-items:flex-start;font-weight:600;margin:0;cursor:pointer}
.lead-form .lead-choices input,.lead-form .lead-tier input,.lead-form input[type=checkbox]{width:auto;margin:4px 0 0;flex:0 0 auto}
.lead-form .lead-tier{border:0;padding:0;margin:0 0 18px}
.lead-form .lead-tier legend{font-size:15px;font-weight:700;margin-bottom:8px}
.lead-trial-fields{margin:4px 0 18px;padding-left:26px}
.lead-trial-fields label{font-weight:600}
.lead-error{margin:10px 0 0;color:#a3242a;font-size:13px;font-weight:600}
.lead-done{background:#fff;border:1px solid #b8c1b7;border-radius:6px;padding:20px;margin-top:6px}
.lead-done h3{margin:0 0 8px}
.lead-done ul{margin:10px 0 0;padding-left:20px}
.lead-done a{color:#2c6b2c;font-weight:600;text-decoration:underline}
#matchbox-lead-notice:empty{margin:0}

/* 支持阶梯 */
.support-ladder{display:grid;gap:14px}
.support-rung{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:24px}
.support-rung h3{margin:0 0 8px;font-size:22px}
.support-rung p{margin:0 0 14px;color:var(--muted)}
.support-rank{display:inline-block;margin-bottom:10px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.support-rung-money{border-color:#3f5c33;background:#121a13}
.support-share{display:flex;flex-wrap:wrap;gap:8px}
.support-costs{margin:0 0 16px;padding-left:20px;color:var(--ink)}
.support-costs li{margin:0 0 6px}
.support-costs strong{color:var(--accent)}
.support-pay{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.support-address{display:block;width:100%;margin-top:6px;padding:9px 11px;background:#0b100c;border:1px solid var(--line);border-radius:5px;font-size:12px;color:var(--muted);word-break:break-all}
@media(min-width:900px){.support-ladder{grid-template-columns:repeat(2,1fr)}.support-rung-money{grid-column:1/-1}}
.lead-step-num{margin-right:5px;font-weight:700}


















































/* --- SANDWORM-DEVLOG-STYLE BEGIN --- */
/* ==========================================================================
   Dev Log 日志卡片（首页）
   参考排版：左栏「短横线 + 小标签 + 大标题 + 描述 + 胶囊按钮」，
             右栏竖版卡片（图铺满、文字压在图上）+ 下方「箭头 + 进度条」一行。
   短代码结构：
     .devlog-track > .devlog-card > .devlog-link > .devlog-media + .devlog-scrim
                                              + .devlog-tag + .devlog-title
     .devlog-foot  > .devlog-navs(← →) + .devlog-meter
   ========================================================================== */

/* ---------- 左栏：小标签（上面一道短横线，不是胶囊） ---------- */
.devlog-eyebrow .elementor-heading-title{
  display:block;color:var(--muted);
  font-size:13px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;line-height:1;
}
.devlog-eyebrow .elementor-heading-title::before{
  content:"";display:block;width:44px;height:1px;
  background:currentColor;opacity:.5;margin:0 0 22px;
}

/* ---------- 左栏：胶囊按钮 ---------- */
.elementor-widget-button.devlog-pillbtn .elementor-button{
  background:rgba(184,255,90,.08);color:var(--ink);
  border:1px solid rgba(184,255,90,.6);border-radius:999px;
  padding:15px 28px;font-size:12px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;fill:currentColor;
  box-shadow:0 6px 18px rgba(0,0,0,.32);
}
.elementor-widget-button.devlog-pillbtn .elementor-button:hover,
.elementor-widget-button.devlog-pillbtn .elementor-button:focus{
  background:var(--accent);color:#091008;border-color:var(--accent);fill:#091008;
}

/* ---------- 分区背景：左侧压得更暗，保证文字可读，右侧留出照片 ---------- */
.elementor-4 .elementor-element.elementor-element-4860b68 > .elementor-background-overlay{
  background-image:linear-gradient(95deg,
    rgba(8,11,10,.55) 0%,
    rgba(8,11,10,.22) 45%,
    rgba(8,11,10,0) 80%);
}

/* 背景图再走一层毛玻璃：让照片退到后面，不和卡片抢视线。
   用 ::before 的 backdrop-filter，这样背景图仍然留在 Elementor 里可换。 */
.elementor-4 .elementor-element.elementor-element-4860b68{position:relative}
.elementor-4 .elementor-element.elementor-element-4860b68::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  -webkit-backdrop-filter:blur(10px) saturate(72%) brightness(.9);
  backdrop-filter:blur(10px) saturate(72%) brightness(.9);
}

/* 上下边缘渐变到页面底色，和前后分区衔接，不出现硬切的一条线。
   放在 ::after（最后绘制）但 z-index:0，内容容器是 z-index:1，所以压不到内容。 */
.elementor-4 .elementor-element.elementor-element-4860b68::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(180deg,
    #080b0a 0%,
    rgba(8,11,10,0) 16%,
    rgba(8,11,10,0) 84%,
    #080b0a 100%);
}

.elementor-4 .elementor-element.elementor-element-4860b68 > .elementor-container{
  position:relative;z-index:1;
}

/* ---------- 卡片轨道 ---------- */
.devlog-track{
  display:flex;gap:16px;
  overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;scroll-behavior:smooth;
  padding:4px 0 6px;margin:-4px 0 -6px;
  scrollbar-width:none;-ms-overflow-style:none;

  /* 左右边缘淡出，卡片不会被 overflow 硬切。
     滚到最左/最右时 JS 会加 is-at-start / is-at-end，把那一侧的淡出收成 0，
     免得第一张、最后一张被莫名淡化。 */
  --devlog-fade-l:0px;
  --devlog-fade-r:100px;
  -webkit-mask-image:linear-gradient(90deg,
    transparent 0,
    #000 var(--devlog-fade-l),
    #000 calc(100% - var(--devlog-fade-r)),
    transparent 100%);
  mask-image:linear-gradient(90deg,
    transparent 0,
    #000 var(--devlog-fade-l),
    #000 calc(100% - var(--devlog-fade-r)),
    transparent 100%);
}
.devlog-track.is-at-start{--devlog-fade-l:0px}
.devlog-track.is-at-end{--devlog-fade-r:0px}
.devlog-track::-webkit-scrollbar{display:none}

/* ---------- 竖版卡片 ---------- */
.devlog-card{
  flex:0 0 clamp(230px,32%,292px);
  scroll-snap-align:start;
  border-radius:16px;overflow:hidden;position:relative;
  background:var(--panel);
  transition:transform .45s cubic-bezier(.2,.7,.3,1),box-shadow .35s ease;
}
/* 只有 JS 正常运行时才做「先隐藏、进入视口再出现」，避免脚本失效后卡片看不见 */
html.devlog-anim .devlog-card{opacity:0;transform:translateY(26px)}
html.devlog-anim .devlog-card.is-visible{opacity:1;transform:translateY(0)}
.devlog-card:hover{box-shadow:0 22px 46px rgba(0,0,0,.55)}
html.devlog-anim .devlog-card.is-visible:hover,
.devlog-card:hover{transform:translateY(-6px)}

.devlog-link{display:block;position:relative;aspect-ratio:3/4;overflow:hidden;color:#fff}
.devlog-media{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;display:block;background:#0d1210;
  transition:transform .8s cubic-bezier(.2,.7,.3,1);
}
.devlog-card:hover .devlog-media{transform:scale(1.06)}

/* 上下压暗，保证日期和标题可读 */
.devlog-scrim{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,
    rgba(8,11,10,.55) 0%,
    rgba(8,11,10,0) 30%,
    rgba(8,11,10,.10) 55%,
    rgba(8,11,10,.86) 100%);
}

/* 顶部日期 */
.devlog-tag{
  position:absolute;left:15px;top:15px;
  font-size:11px;font-weight:600;letter-spacing:.06em;
  color:rgba(255,255,255,.82);
}

/* 底部标题 */
.devlog-title{
  position:absolute;left:16px;right:16px;bottom:17px;
  font-size:17px;line-height:1.28;font-weight:800;letter-spacing:-.01em;
  color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.5);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.devlog-card:hover .devlog-title{color:var(--accent)}

/* 视频标记：右上角，开始播放时淡出 */
.devlog-play{
  position:absolute;right:14px;top:14px;
  width:28px;height:28px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(8,11,10,.6);color:var(--accent);
  border:1px solid rgba(255,255,255,.2);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  transition:opacity .3s ease,transform .3s ease;pointer-events:none;
}
.devlog-play svg{width:11px;height:11px;margin-left:1px}
.devlog-card:hover .devlog-play{opacity:0;transform:scale(.75)}

/* ---------- 卡片下方：箭头 + 进度条 ---------- */
.devlog-foot{display:flex;align-items:center;gap:24px;margin-top:22px}
.devlog-navs{display:flex;gap:10px;flex:0 0 auto}
.devlog-nav{
  width:52px;height:52px;border-radius:50%;padding:0;
  border:1px solid rgba(255,255,255,.26);
  background:transparent;color:var(--ink);
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:background .25s ease,color .25s ease,border-color .25s ease,transform .25s ease;
}
.devlog-nav svg{width:20px;height:20px}
.devlog-nav:hover{background:var(--accent);color:#091008;border-color:var(--accent);transform:translateY(-2px)}
.devlog-nav:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.devlog-nav.is-disabled{opacity:.28;pointer-events:none}

.devlog-meter{
  position:relative;flex:1 1 auto;height:2px;border-radius:2px;
  background:rgba(255,255,255,.16);overflow:hidden;
}
.devlog-meter-fill{
  position:absolute;top:0;bottom:0;left:0;width:30%;
  background:var(--accent);border-radius:2px;
  transition:left .28s ease,width .28s ease;
}

/* ---------- 窄屏 ---------- */
@media(max-width:1024px){
  .devlog-card{flex:0 0 clamp(200px,44%,262px)}
}
@media(max-width:800px){
  .devlog-card{flex:0 0 62%}
  .devlog-foot{gap:16px;margin-top:18px}
  .devlog-nav{width:46px;height:46px}
}

/* ---------- 尊重系统「减少动态效果」 ---------- */
@media(prefers-reduced-motion:reduce){
  html.devlog-anim .devlog-card{opacity:1;transform:none}
  .devlog-track{scroll-behavior:auto}
  .devlog-media,.devlog-card,.devlog-meter-fill{transition:none}
}
/* --- SANDWORM-DEVLOG-STYLE END --- */




/* --- SANDWORM-FIELDTEST-STYLE BEGIN --- */
/* ==========================================================================
   测试记录播放器（首页）
   结构：.ft-player > .ft-stage(video + 当前标题) + .ft-strip(缩略图按钮)
   ========================================================================== */

.ft-player{display:flex;flex-direction:column;gap:16px;width:100%;min-width:0}

/* 播放器 */
.ft-stage{
  position:relative;border-radius:14px;overflow:hidden;background:#0d1210;
  aspect-ratio:16/9;box-shadow:0 22px 54px rgba(0,0,0,.5);
}
.ft-video{width:100%;height:100%;object-fit:cover;display:block;background:#000}
.ft-current{
  position:absolute;left:18px;top:16px;right:18px;
  font-size:14px;font-weight:800;letter-spacing:-.01em;color:#fff;
  text-shadow:0 1px 12px rgba(0,0,0,.85);
  pointer-events:none;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}

/* 缩略图条 */
.ft-strip{
  display:flex;gap:12px;
  overflow-x:auto;overflow-y:hidden;
  padding:4px 0 8px;margin:-4px 0 -8px;
  scrollbar-width:none;-ms-overflow-style:none;
  --ft-fade-r:60px;
  -webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - var(--ft-fade-r)),transparent 100%);
  mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - var(--ft-fade-r)),transparent 100%);
}
.ft-strip::-webkit-scrollbar{display:none}
.ft-strip.is-at-end{--ft-fade-r:0px}

.ft-item{
  flex:0 0 138px;padding:0;border:0;background:none;cursor:pointer;text-align:left;
  display:flex;flex-direction:column;gap:8px;
  color:var(--muted);font:inherit;
}
.ft-thumb{
  position:relative;display:block;aspect-ratio:16/10;border-radius:10px;overflow:hidden;
  background:#111715;border:1px solid var(--line);
  transition:border-color .3s ease,transform .3s ease,box-shadow .3s ease;
}
.ft-thumb img,.ft-thumb video{
  width:100%;height:100%;object-fit:cover;display:block;
  opacity:.72;transition:opacity .3s ease,transform .6s cubic-bezier(.2,.7,.3,1);
}
.ft-item:hover .ft-thumb{border-color:#3f5c33;transform:translateY(-3px)}
.ft-item:hover .ft-thumb img,
.ft-item:hover .ft-thumb video{opacity:1;transform:scale(1.05)}
.ft-item:focus-visible .ft-thumb{outline:2px solid var(--accent);outline-offset:2px}
.ft-item.is-active .ft-thumb{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.ft-item.is-active .ft-thumb img,
.ft-item.is-active .ft-thumb video{opacity:1}

.ft-play{
  position:absolute;right:8px;bottom:8px;width:24px;height:24px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(8,11,10,.72);color:var(--accent);
  border:1px solid rgba(255,255,255,.2);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  transition:background .3s ease,color .3s ease;
}
.ft-play svg{width:10px;height:10px;margin-left:1px}
.ft-item.is-active .ft-play{background:var(--accent);color:#091008;border-color:var(--accent)}

.ft-name{
  font-size:12px;line-height:1.35;font-weight:600;color:var(--muted);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.ft-item.is-active .ft-name{color:var(--accent)}

/* 还没有内容时的占位 */
.ft-empty{
  padding:48px 24px;border:1px dashed var(--line);border-radius:14px;
  color:var(--muted);text-align:center;
}
.ft-empty p{margin:0}

/* 窄屏 */
@media(max-width:1024px){
  .ft-item{flex:0 0 124px}
}
@media(max-width:800px){
  .ft-stage{border-radius:12px}
  .ft-current{font-size:13px;left:14px;top:13px;right:14px}
  .ft-item{flex:0 0 116px}
  .ft-strip{--ft-fade-r:40px}
}

@media(prefers-reduced-motion:reduce){
  .ft-thumb,.ft-thumb img,.ft-thumb video{transition:none}
}

/* ---------- 分区背景（和日志那块同一套处理） ---------- */
/* ① 横向渐变：左侧压暗保文字，右侧渐透留出照片
   ② 毛玻璃：让背景退到后面，不和播放器抢视线
   ③ 上下淡出：和前后分区柔和衔接，不出现硬切的一条线
   背景图本身放在 Elementor 里（样式 → 背景），这里只是叠加处理。 */
.elementor-4 .elementor-element.elementor-element-1dd4cd9 > .elementor-background-overlay{
  background-image:linear-gradient(95deg,
    rgba(8,11,10,.55) 0%,
    rgba(8,11,10,.22) 45%,
    rgba(8,11,10,0) 80%);
}
.elementor-4 .elementor-element.elementor-element-1dd4cd9{position:relative}
.elementor-4 .elementor-element.elementor-element-1dd4cd9::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  -webkit-backdrop-filter:blur(10px) saturate(72%) brightness(.9);
  backdrop-filter:blur(10px) saturate(72%) brightness(.9);
}
.elementor-4 .elementor-element.elementor-element-1dd4cd9::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(180deg,
    #080b0a 0%,
    rgba(8,11,10,0) 16%,
    rgba(8,11,10,0) 84%,
    #080b0a 100%);
}
.elementor-4 .elementor-element.elementor-element-1dd4cd9 > .elementor-container{
  position:relative;z-index:1;
}

/* ---------- 左栏：小标签（和日志一致的短横线） ---------- */
.ft-eyebrow .elementor-heading-title{
  display:block;color:var(--muted);
  font-size:13px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;line-height:1;
}
.ft-eyebrow .elementor-heading-title::before{
  content:"";display:block;width:44px;height:1px;
  background:currentColor;opacity:.5;margin:0 0 22px;
}

/* ---------- 左栏：胶囊按钮（和日志一致） ---------- */
.elementor-widget-button.ft-pillbtn .elementor-button{
  background:rgba(184,255,90,.08);color:var(--ink);
  border:1px solid rgba(184,255,90,.6);border-radius:999px;
  padding:15px 28px;font-size:12px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;fill:currentColor;
  box-shadow:0 6px 18px rgba(0,0,0,.32);
}
.elementor-widget-button.ft-pillbtn .elementor-button:hover,
.elementor-widget-button.ft-pillbtn .elementor-button:focus{
  background:var(--accent);color:#091008;border-color:var(--accent);fill:#091008;
}
/* --- SANDWORM-FIELDTEST-STYLE END --- */
















/* --- SANDWORM-CTA-STYLE BEGIN --- */
/* ==========================================================================
   招募区（Early access & Support）—— 参考海报式排版
   左栏：带两侧短横线的小标签 + 三行大标题（最后一行强调色）+ 描述 + 两个 CTA
   右栏留空，露出背景里的车
   ========================================================================== */

/* ---------- 小标签：左右各一道短横线 ---------- */
.cta-eyebrow .elementor-heading-title{
  display:flex;align-items:center;gap:14px;
  color:rgba(255,255,255,.78);
  font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;line-height:1;
}
.cta-eyebrow .elementor-heading-title::before,
.cta-eyebrow .elementor-heading-title::after{
  content:"";height:1px;width:38px;background:currentColor;opacity:.5;flex:0 0 auto;
}

/* ---------- 三行大标题：行与行贴紧 ---------- */
.elementor-4 .elementor-element-9c9af28 .elementor-widget-heading h2.elementor-heading-title{
  margin:0;
}

/* ---------- CTA 按钮：胶囊形 ---------- */
/* ---------- CTA 按钮：胶囊形 ---------- */
/* 2026-10 提高清晰度（用户反馈「按钮要清晰一点」）：
   主按钮从「只靠 Elementor 全局底色」改成显式实心 + 一圈柔光，从那张虚化照片里托出来；
   次按钮从「白细边 + 半透明底」改成绿调幽灵胶囊（和站上 SEE ALL FIELD TESTS / VIEW ALL POSTS 同款处理：
   边框 rgba(184,255,90,.6)、底色压实到 rgba(8,11,10,.55)），字重 750 → 800、字号 13 → 13.5px。 */
.elementor-widget-button.cta-pill .elementor-button{
  border-radius:999px;
  padding:17px 32px;
  font-size:13.5px;font-weight:800;letter-spacing:.01em;line-height:1;
  display:inline-flex;align-items:center;gap:10px;
  transition:background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease;
}
.elementor-widget-button.cta-pill .elementor-button .elementor-button-icon{font-size:15px;line-height:1}
/* 主按钮（Join early access）：实心强调色 + 柔光 */
.elementor-widget-button.cta-pill:not(.ghost) .elementor-button{
  background:var(--accent);border:1px solid var(--accent);color:#091008;
  box-shadow:0 12px 30px rgba(184,255,90,.22);
}
.elementor-widget-button.cta-pill:not(.ghost) .elementor-button:hover,
.elementor-widget-button.cta-pill:not(.ghost) .elementor-button:focus{
  background:#a6ef4a;border-color:#a6ef4a;color:#091008;
  box-shadow:0 14px 34px rgba(184,255,90,.3);
}
/* 次按钮（Support the project）：绿调幽灵胶囊 —— 边框提亮、底色压实，暗照片上也看得清 */
.elementor-widget-button.ghost.cta-pill .elementor-button{
  background:rgba(8,11,10,.55);
  border:1px solid rgba(184,255,90,.6);
  color:#fff;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  box-shadow:0 10px 24px rgba(0,0,0,.35);
}
.elementor-widget-button.ghost.cta-pill .elementor-button:hover,
.elementor-widget-button.ghost.cta-pill .elementor-button:focus{
  background:rgba(184,255,90,.16);
  border-color:var(--accent);
  color:#fff;
}

/* ---------- 背景：左模糊右清晰 + 上下淡出 ---------- */
/* 两层渐变都放在 Elementor 的「背景叠加」层上（真实元素，一定画得出来）：
   第 1 层 = 上下淡出；第 2 层 = 横向压暗（左暗右透） */
.elementor-4 .elementor-element.elementor-element-9c9af28 > .elementor-background-overlay{
  /* Elementor 那边算出来的 opacity 不是 1，导致渐变永远到不了全黑、边缘看着是硬切 */
  opacity:1 !important;
  background-image:
    linear-gradient(180deg,
      #080b0a 0%,
      rgba(8,11,10,0) 15%,
      rgba(8,11,10,0) 40%,
      rgba(8,11,10,.16) 54%,
      rgba(8,11,10,.38) 68%,
      rgba(8,11,10,.64) 80%,
      rgba(8,11,10,.86) 91%,
      #080b0a 100%),
    linear-gradient(95deg,
      rgba(8,11,10,.58) 0%,
      rgba(8,11,10,.30) 34%,
      rgba(8,11,10,.06) 62%,
      rgba(8,11,10,0) 100%);
}
.elementor-4 .elementor-element.elementor-element-9c9af28{position:relative}

/* 毛玻璃只作用在左侧：backdrop-filter 本身没法做渐变，
   所以给这一层加横向遮罩 —— 不透明的地方显示模糊层，透明的地方透出下面原图，
   效果就是「左边虚、右边实」，车保持清晰。 */
.elementor-4 .elementor-element.elementor-element-9c9af28::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  -webkit-backdrop-filter:blur(3.5px) saturate(95%) brightness(1);
  backdrop-filter:blur(3.5px) saturate(95%) brightness(1);
  -webkit-mask-image:linear-gradient(90deg,
    #000 0%,
    #000 9%,
    rgba(0,0,0,.45) 24%,
    rgba(0,0,0,0) 38%,
    rgba(0,0,0,0) 100%);
  mask-image:linear-gradient(90deg,
    #000 0%,
    #000 9%,
    rgba(0,0,0,.45) 24%,
    rgba(0,0,0,0) 38%,
    rgba(0,0,0,0) 100%);
}
.elementor-4 .elementor-element.elementor-element-9c9af28 > .elementor-container{
  position:relative;z-index:1;
}

/* 窄屏：毛玻璃淡一点，标签横线短一点 */
@media(max-width:800px){
  .cta-eyebrow .elementor-heading-title{font-size:11px;gap:10px}
  .cta-eyebrow .elementor-heading-title::before,
  .cta-eyebrow .elementor-heading-title::after{width:22px}
  .elementor-widget-button.cta-pill .elementor-button{padding:15px 24px;font-size:12px}
}

@media(prefers-reduced-motion:reduce){
  .elementor-widget-button.cta-pill .elementor-button{transition:none}
}
/* --- SANDWORM-CTA-STYLE END --- */










/* --- SANDWORM-NAV-PILL BEGIN --- */
/* ==========================================================================
   顶部导航：通栏「磨砂玻璃」条
   - 从屏幕最左贯穿到最右，不再悬浮、没有圆角、两侧不留白
   - 材质是通透磨砂：低透明度底色 + 高倍模糊 + 轻微提亮，背景画面透过来
   - 内容仍然锁在 --max(1180px) 栅格里，和下方正文左右对齐
   - 品牌字标 SandWorm-black.png 是纯黑，用 invert 反成白色
   - 这一段在 style.css 末尾，用来覆盖前面那套「通栏深色 header」的规则
   ========================================================================== */

.site-header{
  /* 通栏铺满：左右不留白、不圆角 */
  inset:0 0 auto;
  padding:0;
  border-radius:0;
  border-bottom:1px solid rgba(255,255,255,.10);   /* 一条很细的下沿，勾出玻璃厚度 */

  /* 通透磨砂：只留一层淡暗底防止亮部过曝，
     主要靠 backdrop-filter 的模糊 + 提亮把背景「拉」进玻璃里 */
  background:rgba(10,14,12,.34);
  -webkit-backdrop-filter:blur(24px) saturate(175%) brightness(1.16);
  backdrop-filter:blur(24px) saturate(175%) brightness(1.16);
  box-shadow:0 10px 34px rgba(0,0,0,.30);
}

/* 不支持 backdrop-filter 时用实一点的深色兜底 */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .site-header{background:rgba(10,14,12,.86)}
}

/* 内容层：材质在 .site-header 上，.nav 只管排版 */
.nav{
  position:relative;              /* 移动端下拉菜单以它为定位基准 */
  max-width:var(--max);
  margin:0 auto;
  padding:18px 24px;
  gap:20px;
  background:none;
  -webkit-backdrop-filter:none;backdrop-filter:none;
  border:0;
  border-radius:0;
  box-shadow:none;
  color:var(--ink);
}

/* ---------- 品牌 ---------- */
.brand{display:flex;align-items:center;color:var(--ink)}
.brand img{height:23px;width:auto;display:block;filter:invert(1)}

/* ---------- 链接 ---------- */
.nav-links{gap:24px;font-size:14px;color:rgba(240,244,238,.78)}
.nav-links a{color:inherit}
.nav-links a:hover{color:#fff}

/* 右侧主行动按钮：绿色胶囊 */
.nav-links a.button{
  padding:11px 20px;
  border-radius:999px;
  background:var(--accent);
  color:#0b1208;
  font-weight:750;
}
.nav-links a.button:hover{background:#a6ef4a;color:#0b1208}

/* 汉堡按钮（窄屏） */
.nav-toggle{
  color:var(--ink);
  border-color:rgba(255,255,255,.24);
  background:rgba(255,255,255,.06);
}

/* ---------- 语言切换 ---------- */
ul.lang-switch{border-left-color:rgba(255,255,255,.18)}
ul.lang-switch a{color:rgba(240,244,238,.78)}
ul.lang-switch a:hover{color:#fff}
ul.lang-switch .current a{color:var(--accent);font-weight:700}

/* ---------- 窄屏 ---------- */
@media(max-width:800px){
  .nav{padding:14px 20px}

  /* 展开的菜单：接着通栏往下铺，同样是磨砂材质 */
  .nav.open .nav-links{
    top:100%;
    left:0;right:0;
    padding:12px 20px 18px;
    background:rgba(10,14,12,.72);
    -webkit-backdrop-filter:blur(24px) saturate(175%) brightness(1.10);
    backdrop-filter:blur(24px) saturate(175%) brightness(1.10);
    border:0;
    border-top:1px solid rgba(255,255,255,.08);
    border-radius:0;
    box-shadow:0 20px 44px rgba(0,0,0,.45);
  }
  .nav.open .nav-links a{color:rgba(240,244,238,.9)}
  .nav.open .nav-links a.button{color:#0b1208}
}

/* --- SANDWORM-NAV-PILL END --- */


















/* --- SANDWORM-PRODUCT-STYLE BEGIN --- */
/* ==========================================================================
   /product/ 页面：参考稿排版（深色主题适配）
   A 全出血 Hero / B 规格条 / C 能力轮播 / D 数据行 / E 了解项目
   所有文字都是 Elementor 小工具；媒体位用「视频」或「图片」小工具都能用（样式通用）。
   ========================================================================== */

/* ---------------------------------------------------------------- A. Hero */
/* 这个 Elementor 版本列上的 _css_classes 不生效，所以卡片/统计卡一律用结构选择器 */
#sw-prod-hero{overflow:hidden}
#sw-prod-hero > .elementor-container{
  min-height:86vh;
  display:flex;align-items:center;
  position:relative;z-index:2;width:100%;
}
#sw-prod-hero > .elementor-container > .elementor-column{width:100%}
#sw-prod-hero .elementor-background-video-container video,
#sw-prod-hero .elementor-background-video-hosted{
  object-fit:cover;width:100%;height:100%;
}
/* 顶部压一层渐变，和通栏导航衔接 */
#sw-prod-hero > .elementor-background-overlay{
  opacity:1 !important;
  background-image:linear-gradient(180deg,
    #080b0a 0%,
    rgba(8,11,10,.55) 18%,
    rgba(8,11,10,.35) 52%,
    rgba(8,11,10,.82) 88%,
    #080b0a 100%) !important;
}

.prod-hero-eyebrow .elementor-heading-title{
  color:var(--accent);
  font-size:12px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;
  margin:0 0 18px;
}
.prod-hero-title .elementor-heading-title{
  font-size:clamp(56px,9vw,116px);
  line-height:.94;letter-spacing:-.055em;font-weight:800;margin:0;
}
.prod-hero-lead .elementor-text-editor p{
  font-size:19px;line-height:1.65;color:#d5dad5;
  max-width:600px;margin:22px auto 0;
}
.prod-dots{margin-top:38px;display:flex;gap:9px;justify-content:center}
.prod-dots i{
  width:7px;height:7px;border-radius:50%;
  background:rgba(255,255,255,.28);display:block;
}
.prod-dots i.on{background:var(--accent);width:22px;border-radius:99px}

/* ------------------------------------------------------------ B. 规格条 */
#sw-prod-spec > .elementor-widget-wrap{
  background:rgba(17,23,21,.92);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border:1px solid var(--line);
  border-radius:18px;
  padding:22px 28px;
  box-shadow:0 22px 50px rgba(0,0,0,.42);
}
#sw-prod-spec .elementor-container{align-items:center}
#sw-prod-spec .elementor-column{display:flex;align-items:center}
#sw-prod-spec .elementor-widget-wrap{display:flex;align-items:center;flex-wrap:wrap}

.prod-spec-item .elementor-icon-box-wrapper{
  display:flex !important;flex-direction:row !important;align-items:center;gap:14px;text-align:left !important;
}
.prod-spec-item .elementor-icon-box-content{text-align:left !important;flex:1 1 auto;min-width:0}
.prod-spec-item .elementor-icon-box-icon{margin:0 !important}
.prod-spec-item .elementor-icon{
  font-size:20px;color:var(--accent);
  border:1px solid var(--line);border-radius:12px;
  width:44px;height:44px;line-height:42px;text-align:center;
  background:rgba(184,255,90,.06);
}
.prod-spec-item .elementor-icon-box-title,
.prod-spec-item .elementor-icon-box-title .elementor-heading-title{
  margin:0;
  font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);
}
.prod-spec-item .elementor-icon-box-description{
  margin:4px 0 0;font-size:14px;color:var(--ink);font-weight:600;line-height:1.35;
}
#sw-prod-spec .prod-spec-item{margin:0}
#sw-prod-spec-cta{text-align:right}
#sw-prod-spec-cta .elementor-widget-wrap{display:flex;align-items:center;justify-content:flex-end}
/* 按钮：Elementor 的 post-<id>.css 在 style.css 之后加载，
   同类选择器（.prod-x .elementor-button）特异性相同会被它盖掉，
   所以这里一律带上所在列的 id 提高特异性。 */
#sw-prod-spec-cta .elementor-button{
  border-radius:999px;padding:14px 24px;
  font-size:13px;font-weight:750;line-height:1;
  background:var(--accent);color:#0b1208;
  display:inline-flex;align-items:center;gap:10px;
}
#sw-prod-spec-cta .elementor-button:hover{background:#a6ef4a;color:#0b1208}

/* -------------------------------------------------------- C. 能力轮播 */
#sw-prod-head .elementor-container{align-items:flex-end}
.prod-head-title .elementor-heading-title{
  font-size:clamp(32px,4.4vw,52px);
  line-height:1.04;letter-spacing:-.045em;font-weight:800;margin:0;
}
#sw-prod-head-link .elementor-button{
  background:none;padding:0;color:var(--accent);
  font-size:14px;font-weight:650;
  display:inline-flex;align-items:center;gap:8px;
}
#sw-prod-head-link .elementor-button:hover{background:none;color:#fff}

/* 横向轨道 */
#sw-prod-track > .elementor-container{
  display:flex;flex-wrap:nowrap;
  gap:18px;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scroll-snap-type:x proximity;
  padding:6px 2px 20px;
  scrollbar-width:thin;
  scrollbar-color:#2f3a34 transparent;
}
#sw-prod-track > .elementor-container::-webkit-scrollbar{height:6px}
#sw-prod-track > .elementor-container::-webkit-scrollbar-thumb{background:#2f3a34;border-radius:99px}
#sw-prod-track > .elementor-container::-webkit-scrollbar-track{background:transparent}

/* 卡片列（结构选择器：这一版 Elementor 不渲染列上的自定义类） */
#sw-prod-track > .elementor-container > .elementor-column{
  flex:0 0 clamp(258px,26vw,320px) !important;
  width:auto !important;
  max-width:none !important;
  scroll-snap-align:start;
  display:flex;
}
#sw-prod-track > .elementor-container > .elementor-column > .elementor-widget-wrap{
  display:block;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
  padding:0 0 18px;
  width:100%;
  transition:border-color .25s ease, transform .25s ease;
}
#sw-prod-track > .elementor-container > .elementor-column:hover > .elementor-widget-wrap{
  border-color:#3b4a42;transform:translateY(-3px);
}

/* 媒体位：视频 / 图片 同一套 */
.prod-card-media{margin:0 !important}
.prod-card-media .elementor-widget-container,
.prod-card-media .elementor-wrapper,
.prod-card-media .elementor-image{
  height:100%;margin:0;border-radius:0;
}
.prod-card-media .elementor-image,
.prod-card-media .elementor-wrapper{
  aspect-ratio:4 / 3;overflow:hidden;background:#0d1210;position:relative;
}
.prod-card-media video,
.prod-card-media img,
.prod-card-media iframe{
  width:100%;height:100%;object-fit:cover;display:block;
}
.prod-card-media img{border-radius:0}
/* 视频卡右上角一个小播放角标，和参考稿那个小图标对应 */
#sw-prod-track .elementor-widget-video .elementor-wrapper::after{
  content:"\25B6";
  position:absolute;right:12px;top:12px;
  width:30px;height:30px;border-radius:9px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(8,11,10,.62);
  border:1px solid rgba(255,255,255,.2);
  color:#fff;font-size:10px;line-height:1;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  pointer-events:none;
}

/* Elementor 给列内小工具设了 width:100%，再加左右 margin 会整块右移并被 overflow 裁掉，
   所以这里统一 width:auto，让 margin 真正起作用。 */
#sw-prod-track .prod-card-title,
#sw-prod-track .prod-card-text,
#sw-prod-track .prod-card-meta{width:auto !important;max-width:calc(100% - 40px)}

.prod-card-title{margin:18px 20px 0 !important}
.prod-card-title .elementor-heading-title{
  font-size:21px;line-height:1.2;letter-spacing:-.02em;font-weight:750;margin:0;
}
.prod-card-text{margin:8px 20px 0 !important}
.prod-card-text p{margin:0;font-size:14px;line-height:1.55;color:var(--muted)}

.prod-card-meta{margin:16px 20px 0 !important}
.prod-card-meta .elementor-icon-list-items{display:flex;flex-wrap:wrap;gap:16px}
.prod-card-meta .elementor-icon-list-item{gap:7px;padding:0;margin:0}
.prod-card-meta .elementor-icon-list-icon{color:var(--accent);font-size:12px}
.prod-card-meta .elementor-icon-list-text{
  color:var(--muted);font-size:12.5px;font-weight:600;padding-left:7px;
}

/* 卡片底部：亮点 + 按钮。
   注意用 padding 不要用 margin —— Elementor 的 .elementor-inner-section 宽度是写死的 100%，
   给 margin 会让它整块往右溢出卡片（实测超出 19px，把右边按钮切掉）。 */
#sw-prod-track .elementor-inner-section{margin:18px 0 0;padding:0 20px;width:auto}
#sw-prod-track .elementor-inner-section .elementor-container{align-items:center}
#sw-prod-track .elementor-inner-section .elementor-column{display:flex;align-items:center}
.prod-card-badge .elementor-heading-title{
  font-size:14px;font-weight:750;letter-spacing:.04em;margin:0;color:var(--ink);
}
#sw-prod-track .elementor-button{
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.16);
  color:#fff;border-radius:999px;
  padding:9px 18px;font-size:12.5px;font-weight:700;line-height:1;
}
#sw-prod-track .elementor-button:hover{background:var(--accent);color:#0b1208;border-color:var(--accent)}

/* 轨道两侧箭头（JS 注入） */
.prod-nav{display:inline-flex;gap:8px;margin-right:16px;vertical-align:middle}
.prod-nav button{
  width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.06);
  border:1px solid var(--line);
  color:var(--ink);cursor:pointer;font-size:14px;line-height:1;
  display:inline-flex;align-items:center;justify-content:center;
  transition:background .2s ease, border-color .2s ease;
}
.prod-nav button:hover:not(:disabled){background:var(--accent);color:#0b1208;border-color:var(--accent)}
.prod-nav button:disabled{opacity:.35;cursor:default}
#sw-prod-head-link .elementor-widget-wrap{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:4px}

/* ------------------------------------------------------------ D. 数据行 */
#sw-prod-stats .elementor-inner-section > .elementor-container > .elementor-column{display:flex}
#sw-prod-stats .elementor-inner-section > .elementor-container > .elementor-column > .elementor-widget-wrap{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:16px;
  padding:30px 20px;
  width:100%;
  display:flex;flex-direction:column;justify-content:center;
}
.prod-stat-num .elementor-heading-title{
  font-size:clamp(36px,4vw,52px);
  line-height:1;letter-spacing:-.04em;font-weight:800;margin:0;
}
.prod-stat-cap{margin-top:10px !important}
.prod-stat-cap p{
  margin:0;font-size:13px;line-height:1.45;color:var(--muted);
  text-transform:lowercase;letter-spacing:.01em;
}

/* -------------------------------------------------------- E. 了解项目 */
#sw-prod-about .elementor-container{align-items:center}
.prod-about-icon{margin:0 0 22px !important}
.prod-about-icon .elementor-icon-box-wrapper{display:flex;align-items:center;gap:16px}
.prod-about-icon .elementor-icon-box-icon{margin:0 !important}
.prod-about-icon .elementor-icon{
  font-size:22px;color:var(--accent);
  border:1px solid var(--line);border-radius:14px;
  width:54px;height:54px;line-height:52px;text-align:center;
  background:rgba(184,255,90,.06);
}
.prod-about-icon .elementor-icon-box-title,
.prod-about-icon .elementor-icon-box-title .elementor-heading-title{
  font-size:clamp(30px,3.6vw,44px);font-weight:800;letter-spacing:-.04em;
  margin:0;color:var(--ink);
}
.prod-about-icon .elementor-icon-box-description{
  display:none;
}
.prod-about-text p{
  margin:0 0 16px;font-size:16.5px;line-height:1.72;color:var(--muted);
}

/* --- SANDWORM-ABOUT-ROW BEGIN --- */
/* 链接与主按钮同一行：Field tests 在左、Join early access 在右。
   列内 .elementor-widget-wrap 本身就是「可换行的横向 flex」（Elementor 基础样式给的是
   display:flex;flex-wrap:wrap，子小工具默认 width:100% 各占一行），这里把这两个小工具
   改成 width:auto 让它们并排。DOM 顺序里 heading 本就在 button 之前，所以 Field tests
   自然排在前面；窄窗口放不下时靠 flex-wrap 自动回落成上下两行。 */
#sw-prod-about-copy .elementor-widget-wrap{align-items:center}
#sw-prod-about .prod-about-links{width:auto !important;flex:0 0 auto;margin:0 14px 0 0 !important}
#sw-prod-about .prod-about-btn{width:auto !important;flex:0 0 auto;margin:0 !important}

/* 风格对调（2026-10-08）：Field tests 换成「主按钮」实心绿胶囊，Join early access
   换成「次要按钮」描边胶囊。两个胶囊的高度靠各自的 padding 保持 ~44/45px，
   所以只交换填充/描边/文字色，不改 padding，避免两个框高低不齐。
   h6 的 line-height 压成 0 是为了去掉行框上下的空白，让胶囊高度 = 小工具高度，
   这样 .elementor-widget-wrap 的 align-items:center 能把两个小工具对得齐齐的。 */
#sw-prod-about .prod-about-links .elementor-heading-title{line-height:0}
#sw-prod-about .prod-about-links a{
  display:inline-flex;align-items:center;gap:7px;
  padding:14px 24px;line-height:1;vertical-align:middle;
  border:1px solid var(--accent);border-radius:999px;
  background:var(--accent);color:#0b1208;
  transition:background .18s ease,border-color .18s ease,color .18s ease;
}
#sw-prod-about .prod-about-links a:hover{
  background:#a6ef4a;border-color:#a6ef4a;color:#0b1208;
}
/* 站上没有加载 Font Awesome（实测 fa 样式链接数 = 0），标题里那个
   <i class="fas fa-arrow-right"> 渲染不出字形，只会靠 gap 把文字挤偏 → 隐藏它。
   箭头由按钮里的内联 SVG（.e-font-icon-svg）负责。 */
#sw-prod-about .prod-about-links a i{display:none}

/* Join early access 的描边样式。Elementor 的 per-post CSS（post-6.css）和下面 303 行那条
   同特异性规则都会给 .elementor-button 设 background/color，所以这两处必须带 !important，
   否则会被后面出现的规则盖掉；其余属性（圆角、padding、字号、字重）沿用 303 行那条。 */
#sw-prod-about .prod-about-btn .elementor-button{
  background:transparent !important;color:var(--accent) !important;
  border:1px solid rgba(184,255,90,.45);
  transition:background .18s ease,border-color .18s ease,color .18s ease;
}
#sw-prod-about .prod-about-btn .elementor-button:hover{
  background:rgba(184,255,90,.12) !important;border-color:var(--accent);color:#fff !important;
}
#sw-prod-about .prod-about-btn .elementor-button svg{fill:currentColor}
/* --- SANDWORM-ABOUT-ROW END --- */
.prod-about-links .elementor-heading-title{font-size:14px;font-weight:700;margin:0}
.prod-about-links a{color:var(--accent);display:inline-flex;align-items:center;gap:7px}
.prod-about-links a:hover{color:#fff}
.prod-about-links i{font-size:11px}
#sw-prod-about .prod-about-btn .elementor-button{
  border-radius:999px;padding:15px 26px;
  font-size:13px;font-weight:750;line-height:1;
  background:var(--accent);color:#0b1208;
  display:inline-flex;align-items:center;gap:10px;
}
#sw-prod-about .prod-about-btn .elementor-button:hover{background:#a6ef4a;color:#0b1208}

#sw-prod-about-media .elementor-widget-wrap{justify-content:flex-end}
.prod-about-video .elementor-widget-container,
.prod-about-video .elementor-wrapper{height:100%;margin:0}
.prod-about-video .elementor-wrapper{
  aspect-ratio:4 / 3;border-radius:18px;overflow:hidden;
  border:1px solid var(--line);background:#0d1210;
}
.prod-about-video video,
.prod-about-video img{width:100%;height:100%;object-fit:cover;display:block}

/* --------------------------------------------------------------- 窄屏 */
@media(max-width:1024px){
  #sw-prod-hero > .elementor-container{min-height:70vh}
  #sw-prod-spec .elementor-column{width:50% !important}
  #sw-prod-spec-cta{text-align:left}
  #sw-prod-spec-cta .elementor-widget-wrap{justify-content:flex-start;margin-top:14px}
  #sw-prod-stats .elementor-inner-section > .elementor-container > .elementor-column{width:50% !important;margin-bottom:14px}
  #sw-prod-about .elementor-container > .elementor-column{width:100% !important}
  #sw-prod-about-media .elementor-widget-wrap{justify-content:flex-start}
  #sw-prod-about-media{margin-top:34px}
}

@media(max-width:800px){
  #sw-prod-spec > .elementor-widget-wrap{padding:18px 20px;border-radius:16px}
  #sw-prod-spec .elementor-column{width:100% !important}
  #sw-prod-spec .elementor-column + .elementor-column{margin-top:16px}
  #sw-prod-spec-cta{margin-top:6px}
  .prod-spec-item .elementor-icon{width:40px;height:40px;line-height:38px;font-size:18px}

  #sw-prod-track > .elementor-container > .elementor-column{flex:0 0 82% !important}
  #sw-prod-track > .elementor-container{gap:14px}
  .prod-head-title .elementor-heading-title{font-size:34px}
  #sw-prod-head-link .elementor-widget-wrap{justify-content:flex-start;margin-top:14px}

  .prod-hero-title .elementor-heading-title{font-size:56px}
  .prod-hero-lead .elementor-text-editor p{font-size:17px}

  #sw-prod-stats .elementor-inner-section > .elementor-container > .elementor-column{width:100% !important}
  #sw-prod-stats .elementor-inner-section > .elementor-container > .elementor-column > .elementor-widget-wrap{padding:22px 18px}
  .prod-about-text p{font-size:15.5px}
}

/* --- SANDWORM-PRODUCT-STYLE END --- */


















/* --- SANDWORM-FIELDTEST-PAGE-STYLE BEGIN --- */
/* ==========================================================================
   /field-tests/ 页面
   结构：[sandworm_fieldtests] → .ftx
     .ftx-feature  .ftx-stage(视频) + .ftx-info(序号/标题/描述/元信息/按钮)
     .ftx-filters  结果筛选
     .ftx-grid     .ftx-card 卡片索引
   ========================================================================== */

.ftx{width:100%;min-width:0;display:flex;flex-direction:column;gap:28px}

/* ---------- 大播放器 ---------- */
.ftx-feature{
  display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  grid-template-rows:auto auto;
  gap:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;
  background:var(--panel);
}
.ftx-stage{
  grid-column:1;grid-row:1;
  position:relative;background:#0d1210;overflow:hidden;
  min-width:0;min-height:360px;
}
.ftx-video{width:100%;height:100%;object-fit:cover;display:block;background:#000}

/* 结果角标 */
.ftx-state{
  position:absolute;left:16px;top:16px;
  display:none;align-items:center;gap:7px;
  padding:7px 13px;border-radius:999px;
  font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--st);background:rgba(8,11,10,.66);
  border:1px solid color-mix(in srgb, var(--st) 45%, transparent);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  pointer-events:none;
}
/* 四条角标都绝对定位在同一处，只有当前这条能显示，否则最后一条会盖在上面 */
.ftx-state.is-on{display:inline-flex}
.ftx-state::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--st)}

/* ---------- 右侧信息栏 ---------- */
/* 每条记录一块 .ftx-pane，服务端整块渲染（含 TP 翻译），JS 只切 .is-on。
   不要在 JS 里改写这些文字节点：中文站的 trp-translate-dom-changes.js 会把
   新文字先清空再去服务端要翻译，面板会空白约 2 秒。
   所有 pane 都摆在同一格网格里、用 visibility 藏起来（不是 display:none），
   这样整块的高度永远是最高的一条，换卡时不会跳。 */
.ftx-pane{grid-area:1 / 1;min-width:0;visibility:hidden}
.ftx-pane.is-on{visibility:visible}
.ftx-infowrap{
  grid-column:2;grid-row:1;
  display:grid;align-items:center;min-width:0;
}
.ftx-info{
  display:flex;flex-direction:column;justify-content:center;
  padding:38px 34px 34px;min-width:0;width:100%;
  border-left:1px solid var(--line);
}
.ftx-info-top{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);
}
.ftx-index{color:var(--accent)}

.ftx-title{
  margin:20px 0 0;color:var(--ink);
  font-size:clamp(22px,2.1vw,30px);line-height:1.16;font-weight:800;letter-spacing:-.02em;
}
.ftx-bar{width:46px;height:2px;background:var(--accent);margin:22px 0 20px;flex:0 0 auto}

.ftx-desc{color:var(--muted);font-size:14.5px;line-height:1.72;min-width:0}
.ftx-desc p{margin:0 0 12px}
.ftx-desc p:last-child{margin-bottom:0}

/* ---------- 底部规格条（跨两列） ---------- */
.ftx-bottomwrap{
  grid-column:1 / -1;grid-row:2;
  display:flex;align-items:stretch;gap:0;flex-wrap:wrap;
  border-top:1px solid var(--line);
  background:rgba(8,11,10,.30);
  padding-left:28px;min-height:86px;
}
.ftx-metawrap{flex:1 1 auto;min-width:0;display:grid;align-items:stretch}
.ftx-metawrap .ftx-pane{display:flex;align-items:stretch}
.ftx-meta{margin:0;display:flex;flex-wrap:wrap;align-items:stretch;flex:1 1 auto;min-width:0}
.ftx-meta-row{
  display:flex;flex-direction:column;gap:6px;justify-content:center;
  padding:16px 26px;border-left:1px solid var(--line);
}
.ftx-meta-row:first-child{border-left:0;padding-left:26px}
.ftx-meta-row dt{
  margin:0;flex:none;
  font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
}
.ftx-meta-row dd{margin:0;color:var(--ink);font-size:13.5px;font-weight:600}
.ftx-rr{display:inline-flex;align-items:center;gap:7px;color:var(--st)}
.ftx-rr::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--st)}

.ftx-cta{
  flex:0 0 auto;align-self:center;
  margin:0 28px 0 12px;min-height:44px;padding:0 22px;
  display:inline-flex;align-items:center;gap:9px;
  color:var(--accent);text-decoration:none;border:1px solid rgba(184,255,90,.34);border-radius:999px;
  font-size:11.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  transition:background .25s,border-color .25s,color .25s;
}
.ftx-cta:hover{background:var(--accent);border-color:var(--accent);color:#0a0f0c}
.ftx-cta svg{transition:transform .3s cubic-bezier(.2,.7,.3,1)}
.ftx-cta:hover svg{transform:translateX(4px)}

/* ---------- 筛选 ---------- */
.ftx-filters{display:flex;flex-wrap:wrap;gap:9px}
.ftx-chip{
  display:inline-flex;align-items:center;gap:8px;
  padding:9px 15px;border-radius:999px;cursor:pointer;
  background:transparent;border:1px solid var(--line);
  color:var(--muted);font:inherit;font-size:12px;font-weight:700;
  letter-spacing:.06em;
  transition:border-color .25s,color .25s,background .25s;
}
.ftx-chip span{
  font-size:10.5px;color:#6d756e;
  padding-left:8px;border-left:1px solid var(--line);
}
.ftx-chip:hover{border-color:#3f5c33;color:var(--ink)}
.ftx-chip.is-on{background:var(--accent);border-color:var(--accent);color:#091008}
.ftx-chip.is-on span{color:rgba(9,16,8,.55);border-color:rgba(9,16,8,.22)}

/* ---------- 卡片索引 ---------- */
.ftx-grid{
  display:grid;gap:20px;
  grid-template-columns:repeat(auto-fill,minmax(268px,1fr));
}

.ftx-card{
  display:flex;flex-direction:column;text-align:left;cursor:pointer;
  padding:0;margin:0;font:inherit;
  background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;
  transition:border-color .3s,transform .3s cubic-bezier(.2,.7,.3,1),box-shadow .3s;
}
.ftx-card:hover{transform:translateY(-4px);border-color:#3f5c33;box-shadow:0 18px 40px rgba(0,0,0,.45)}
.ftx-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.ftx-card.is-active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.ftx-card[hidden]{display:none}

.ftx-thumb{
  position:relative;display:block;aspect-ratio:16/10;overflow:hidden;
  background:#0d1210;border-bottom:1px solid var(--line);
}
.ftx-thumb img,.ftx-thumb video{
  width:100%;height:100%;object-fit:cover;display:block;
  opacity:.76;transition:opacity .35s,transform .7s cubic-bezier(.2,.7,.3,1);
}
.ftx-card:hover .ftx-thumb img,
.ftx-card:hover .ftx-thumb video,
.ftx-card.is-active .ftx-thumb img,
.ftx-card.is-active .ftx-thumb video{opacity:1;transform:scale(1.045)}

.ftx-play{
  position:absolute;right:10px;bottom:10px;width:28px;height:28px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(8,11,10,.72);color:var(--accent);
  border:1px solid rgba(255,255,255,.2);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  transition:background .3s,color .3s;
}
.ftx-play svg{width:11px;height:11px;margin-left:1px}
.ftx-card.is-active .ftx-play{background:var(--accent);color:#091008;border-color:var(--accent)}

.ftx-len{
  position:absolute;left:10px;bottom:10px;
  padding:4px 8px;border-radius:5px;
  font-size:10.5px;font-weight:700;letter-spacing:.06em;color:#fff;
  background:rgba(8,11,10,.72);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  font-variant-numeric:tabular-nums;
}

.ftx-body{display:flex;flex-direction:column;gap:9px;padding:18px 18px 20px;min-width:0}
.ftx-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ftx-card-num{
  font-size:11px;font-weight:800;letter-spacing:.14em;color:#5d665f;
  font-variant-numeric:tabular-nums;
}
.ftx-dot{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;letter-spacing:.08em;color:var(--st)}
.ftx-dot i{width:6px;height:6px;border-radius:50%;background:var(--st);font-style:normal}

.ftx-card-title{
  color:var(--ink);font-size:15.5px;font-weight:800;line-height:1.32;letter-spacing:-.01em;
}
.ftx-card-desc{
  color:var(--muted);font-size:13px;line-height:1.6;font-style:normal;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.ftx-card-meta{
  display:flex;flex-wrap:wrap;gap:6px;margin-top:2px;
}
.ftx-card-meta span{
  padding:4px 9px;border-radius:5px;
  background:rgba(255,255,255,.045);border:1px solid var(--line);
  font-size:10.5px;font-weight:600;letter-spacing:.05em;color:var(--muted);
}

.ftx-none{color:var(--muted);font-size:14px;text-align:center;padding:32px 0;margin:0}

/* ---------- 切换时的淡入 ---------- */
/* 淡出/淡入只作用在外层容器上，不碰任何文字节点 */
.ftx-infowrap,
.ftx-metawrap{transition:opacity .2s ease,transform .2s ease}
.ftx-feature.is-swapping .ftx-infowrap,
.ftx-feature.is-swapping .ftx-metawrap{opacity:0;transform:translateY(6px)}

/* ==========================================================================
   页头 / 方法 / 收尾 各段
   ========================================================================== */

/* 小标签 */
.ft-eyebrow .elementor-heading-title{
  display:block;color:var(--muted);
  font-size:13px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;line-height:1;
}
.ft-eyebrow .elementor-heading-title::before{
  content:"";display:block;width:44px;height:1px;
  background:currentColor;opacity:.5;margin:0 0 22px;
}

/* 页头统计小条 */
.ft-stats{display:flex;flex-wrap:wrap;gap:0;margin-top:38px}
.ft-stat{
  padding:0 34px;border-left:1px solid var(--line);
  display:flex;flex-direction:column;gap:6px;
}
.ft-stat:first-child{padding-left:0;border-left:0}
.ft-stat b{
  font-size:30px;font-weight:800;line-height:1;color:var(--ink);
  font-variant-numeric:tabular-nums;letter-spacing:-.02em;
}
.ft-stat b.is-accent{color:var(--accent)}
.ft-stat small{
  font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
}

/* 段落标题行 */
.ft-head{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;flex-wrap:wrap}
.ft-head .elementor-heading-title{margin:0}

/* 方法卡片
   注意：这一版 Elementor 列（column）上的 _css_classes 不渲染到 HTML，
   所以只能用结构选择器定位列。 */
#sw-ft-methods > .elementor-container{gap:18px}
#sw-ft-methods > .elementor-container > .elementor-column > .elementor-widget-wrap{
  background:var(--panel);border:1px solid var(--line);border-radius:14px;
  padding:28px 26px 30px;height:100%;
}
#sw-ft-methods .elementor-icon-box-wrapper{text-align:left}
#sw-ft-methods .elementor-icon-box-content{text-align:left;flex-grow:0}
#sw-ft-methods .elementor-icon-box-title,
#sw-ft-methods .elementor-icon-box-title .elementor-heading-title{
  color:var(--ink);font-size:16px;font-weight:800;letter-spacing:-.01em;text-align:left;
}
#sw-ft-methods .elementor-icon-box-description{color:var(--muted);font-size:13.5px;line-height:1.7;text-align:left}
#sw-ft-methods .elementor-icon-box-icon{margin-bottom:16px}
#sw-ft-methods .elementor-icon{
  color:var(--accent);border:1px solid var(--line);border-radius:10px;
  width:44px;height:44px;background:rgba(255,255,255,.03);
}
#sw-ft-methods .elementor-icon svg{width:20px;height:20px}

/* 胶囊按钮 */
.elementor-widget-button.ft-pillbtn .elementor-button{
  background:rgba(184,255,90,.08);color:var(--ink);
  border:1px solid rgba(184,255,90,.6);border-radius:999px;
  padding:15px 28px;font-size:12px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;fill:currentColor;
  box-shadow:0 6px 18px rgba(0,0,0,.32);
}
.elementor-widget-button.ft-pillbtn .elementor-button:hover,
.elementor-widget-button.ft-pillbtn .elementor-button:focus{
  background:var(--accent);color:#091008;border-color:var(--accent);fill:#091008;
}
.elementor-widget-button.ft-solidbtn .elementor-button{
  background:var(--accent);color:#091008;border:1px solid var(--accent);border-radius:999px;
  padding:15px 28px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
}
.elementor-widget-button.ft-solidbtn .elementor-button:hover,
.elementor-widget-button.ft-solidbtn .elementor-button:focus{
  background:transparent;color:var(--accent);
}

/* 段间距 */
@media(max-width:1300px){
  #sw-ft-methods > .elementor-container{gap:14px}
}

/* ---------- 窄屏 ---------- */
@media(max-width:1024px){
  .ftx-feature{grid-template-columns:1fr;border-radius:14px}
  .ftx-stage{grid-column:1;grid-row:1;min-height:0;aspect-ratio:16/9}
  .ftx-infowrap{grid-column:1;grid-row:2;align-items:start}
  .ftx-info{border-left:0;border-top:1px solid var(--line);padding:28px 22px 26px;justify-content:flex-start}
  .ftx-bottomwrap{
    grid-column:1;grid-row:3;padding-left:0;min-height:0;
    flex-direction:column;align-items:stretch;
  }
  .ftx-metawrap{display:grid}
  .ftx-meta{flex-direction:column}
  .ftx-meta-row{padding:13px 22px;border-left:0;border-top:1px solid var(--line)}
  .ftx-meta-row:first-child{border-top:0;padding-left:22px}
  .ftx-cta{margin:16px 22px 22px;align-self:flex-start}
  .ftx-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
  .ft-stat{padding:0 24px}
}

@media(max-width:800px){
  .ftx{gap:22px}
  .ftx-grid{grid-template-columns:1fr}
  .ftx-title{font-size:22px}
  .ftx-state{left:12px;top:12px;padding:6px 11px}
  .ft-stats{margin-top:28px;gap:18px 0}
  .ft-stat{flex:1 1 40%;padding:0 18px}
  .ft-stat:nth-child(odd){padding-left:0;border-left:0}
  .ft-stat b{font-size:24px}
  #sw-ft-methods > .elementor-container > .elementor-column > .elementor-widget-wrap{
    padding:22px 20px 24px;
  }
}

@media(prefers-reduced-motion:reduce){
  .ftx-card,.ftx-thumb img,.ftx-thumb video,
  .ftx-title,.ftx-desc,.ftx-meta,.ftx-index,.ftx-rr,.ftx-cta svg{transition:none}
}


/* ---------- 方法区右下角：跳转 Dev log 的按钮（实心强调，一眼能看到） ---------- */
/* 小工具的 class 仍是 ft-pillbtn ft-devlogbtn —— ft-pillbtn 提供圆角 / 大写 / 字距等基础，
   这里用 #sw-ft-method 前缀（特异度更高）把它改成「实心绿 + 深色字 + 一层柔光」的强调态：
   比描边胶囊明显得多，又和同页「Join early access」主按钮是同一套视觉语言。
   hover 变亮一档（不是变透明），保证鼠标移上去也一直显眼。
   靠右对齐写在按钮小工具自己的 align 上（见「实测页面说明」坑表 ④），下面那条 text-align 是兜底。 */
#sw-ft-method .ft-devlogbtn{margin-top:36px;text-align:right}
#sw-ft-method .ft-devlogbtn .elementor-button{
  background:var(--accent);border:1px solid var(--accent);color:#091008;fill:#091008;
  padding:15px 30px;
  box-shadow:0 8px 22px rgba(184,255,90,.18);
}
#sw-ft-method .ft-devlogbtn .elementor-button:hover,
#sw-ft-method .ft-devlogbtn .elementor-button:focus{
  background:#a6ef4a;border-color:#a6ef4a;color:#091008;fill:#091008;
  box-shadow:0 12px 28px rgba(184,255,90,.28);
}
@media(max-width:1024px){
  #sw-ft-method .ft-devlogbtn{margin-top:28px}
}
/* --- SANDWORM-FIELDTEST-PAGE-STYLE END --- */












/* --- SANDWORM-POST-SINGLE-STYLE BEGIN --- */
/* ==========================================================================
   单篇开发日志（single.php）
   结构：.post-single
     .post-single-head        DEV LOG / 标题 / 日期 + All entries
     .post-single-media       特色图（关键：旧版没有这块）
     .post-single-body        正文（收窄到易读栏宽）
     .post-single-nav         上一篇 / 下一篇
     .post-single-cta         收尾转化区
   ========================================================================== */

.post-single{padding:150px 0 0}

/* ---------- 页头 ---------- */
.post-single-head{max-width:1000px}
.post-single-eyebrow{
  color:var(--muted);font-size:12px;font-weight:700;
  letter-spacing:.15em;text-transform:uppercase;line-height:1;
}
.post-single-eyebrow::before{
  content:"";display:block;width:44px;height:1px;
  background:currentColor;opacity:.5;margin:0 0 20px;
}
.post-single-eyebrow.is-accent{color:var(--accent)}

.post-single-title{
  margin:20px 0 0;
  font-size:clamp(30px,4.4vw,54px);
  font-weight:800;line-height:1.08;letter-spacing:-.045em;
  color:var(--ink);
}

.post-single-meta{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  margin:22px 0 0;
  font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;
  color:var(--muted);
}
.post-single-meta time{font-variant-numeric:tabular-nums}
.post-single-meta-sep{width:26px;height:1px;background:var(--line)}
.post-single-back{color:var(--accent);border-bottom:1px solid transparent;transition:border-color .2s ease}
.post-single-back:hover{border-bottom-color:currentColor}

/* ---------- 特色图 ---------- */
.post-single-media{
  display:block;margin:46px 0 0;
  border:1px solid var(--line);border-radius:20px;overflow:hidden;
  background:var(--panel);
}
.post-single-media img{
  display:block;width:100%;height:auto;max-height:70vh;object-fit:cover;
}

/* ---------- 正文 ---------- */
.post-single-body{
  max-width:760px;
  margin:54px 0 0;
  font-size:17px;line-height:1.85;color:#cdd3cc;
}
.post-single-body > *:first-child{margin-top:0}
.post-single-body > *:last-child{margin-bottom:0}
.post-single-body p{margin:0 0 22px}
.post-single-body h2{
  margin:52px 0 16px;
  font-size:27px;font-weight:800;line-height:1.2;letter-spacing:-.03em;color:var(--ink);
}
.post-single-body h3{
  margin:40px 0 12px;
  font-size:20px;font-weight:700;line-height:1.3;letter-spacing:-.02em;color:var(--ink);
}
.post-single-body h4{
  margin:32px 0 10px;font-size:12px;font-weight:700;
  letter-spacing:.15em;text-transform:uppercase;color:var(--accent);
}
.post-single-body ul,.post-single-body ol{margin:0 0 22px;padding-left:22px}
.post-single-body li{margin:0 0 10px}
.post-single-body li::marker{color:var(--accent)}
.post-single-body strong{color:var(--ink);font-weight:700}
.post-single-body em{color:var(--ink)}
.post-single-body a{color:var(--accent);border-bottom:1px solid rgba(184,255,90,.35)}
.post-single-body a:hover{border-bottom-color:currentColor}
.post-single-body img,.post-single-body video{
  width:100%;height:auto;margin:34px 0;border:1px solid var(--line);border-radius:14px;
}
.post-single-body blockquote{
  margin:34px 0;padding:4px 0 4px 24px;
  border-left:2px solid var(--accent);
  color:var(--ink);font-size:19px;line-height:1.7;
}
.post-single-body hr{border:0;border-top:1px solid var(--line);margin:44px 0}
.post-single-body code{
  background:var(--panel);border:1px solid var(--line);border-radius:5px;
  padding:2px 6px;font-size:15px;color:var(--ink);
}
.post-single-body pre{
  background:var(--panel);border:1px solid var(--line);border-radius:12px;
  padding:20px;overflow:auto;font-size:14px;
}

/* ---------- 上一篇 / 下一篇 ---------- */
.post-single-nav{margin:96px 0 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.post-single-nav-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:0;
}
.post-single-navcard{
  display:flex;flex-direction:column;gap:9px;
  padding:34px 0;min-width:0;
  transition:background .25s ease;
}
.post-single-navcard.is-next{
  align-items:flex-end;text-align:right;
  padding-left:34px;border-left:1px solid var(--line);
}
.post-single-navcard.is-empty{border-left:0}
.post-single-navlabel{
  font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--accent);
}
.post-single-navtitle{
  font-size:19px;font-weight:700;line-height:1.32;letter-spacing:-.01em;color:var(--ink);
  transition:color .2s ease;
}
.post-single-navcard:hover .post-single-navtitle{color:var(--accent)}
.post-single-navdate{
  font-size:10.5px;font-weight:700;letter-spacing:.16em;
  color:var(--muted);font-variant-numeric:tabular-nums;
}

/* ---------- 收尾 ---------- */
.post-single-cta{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:36px;flex-wrap:wrap;
  padding:96px 0 120px;
}
.post-single-cta-copy{max-width:640px}
.post-single-cta-title{
  margin:20px 0 0;
  font-size:clamp(28px,3.6vw,44px);font-weight:800;line-height:1.08;
  letter-spacing:-.04em;color:var(--ink);
}
.post-single-cta-lead{margin:18px 0 0;max-width:560px;font-size:16px;line-height:1.75;color:var(--muted)}
.post-single-cta-actions{display:flex;gap:12px;flex-wrap:wrap;padding-bottom:6px}
.post-single-btn{
  display:inline-flex;align-items:center;gap:9px;
  padding:14px 26px;border-radius:999px;
  font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  transition:background .22s ease, color .22s ease, border-color .22s ease;
}
.post-single-btn.is-solid{background:var(--accent);color:#091008;border:1px solid var(--accent)}
.post-single-btn.is-solid:hover{background:transparent;color:var(--accent)}
.post-single-btn.is-ghost{background:rgba(184,255,90,.08);color:var(--ink);border:1px solid rgba(184,255,90,.6)}
.post-single-btn.is-ghost:hover{background:var(--accent);color:#091008;border-color:var(--accent)}

/* ---------- 窄屏 ---------- */
@media(max-width:800px){
  .post-single{padding:120px 0 0}
  .post-single-media{margin-top:32px;border-radius:14px}
  .post-single-media img{max-height:none}
  .post-single-body{margin-top:36px;font-size:16px;line-height:1.8}
  .post-single-body h2{font-size:23px;margin-top:38px}
  .post-single-body h3{font-size:18.5px}
  .post-single-nav{margin-top:64px}
  .post-single-nav-grid{grid-template-columns:1fr}
  .post-single-navcard{padding:26px 0}
  .post-single-navcard.is-next{
    align-items:flex-start;text-align:left;
    padding-left:0;border-left:0;border-top:1px solid var(--line);
  }
  .post-single-navcard.is-empty{display:none}
  .post-single-navtitle{font-size:17px}
  .post-single-cta{padding:64px 0 84px;gap:26px}
  .post-single-cta-actions{width:100%}
  .post-single-btn{padding:13px 20px}
}
/* --- SANDWORM-POST-SINGLE-STYLE END --- */


/* --- SANDWORM-DEVLOG-TIMELINE-STYLE BEGIN --- */
/* ==========================================================================
   开发日志 · 时间轴（/blog/）
   结构：[sandworm_devlog_timeline] → .dtl
     .dtl-rail   中间那条竖线
     .dtl-item   一条记录（奇偶分列左右），内含
        .dtl-card  → .dtl-media(特色图) + .dtl-body(Entry nn / 日期 / 标题 / 摘要 / Read)
        .dtl-dot   轴上的圆点
   ========================================================================== */

.dtl{
  --dtl-gap:20px;      /* 卡片边缘到轴线的距离（越小卡片越宽、中间空得越少） */
  --dtl-dot:11px;      /* 圆点直径 */
  --dtl-half:5.5px;    /* 圆点半径，用于对齐轴线 */
  --dtl-stagger:64px;  /* 右列整体下移多少（错位感；改成 0 就恢复左右齐平） */
  position:relative;
  width:100%;
  min-width:0;
  padding-bottom:var(--dtl-stagger);  /* 给错位下探的最后一排留位 */
}
/* 卡片是浮动的，这里撑住容器高度 */
.dtl::after{content:"";display:block;clear:both}

/* 整条时间轴收窄并居中。
   标题行一起收窄，保证和下面的时间轴左右对齐。 */
#sw-dl-feed .dtl,
#sw-dl-feed #sw-dl-head{
  max-width:1100px;
  margin-left:auto;
  margin-right:auto;
}

/* 中轴：两端淡出 */
.dtl-rail{
  position:absolute;top:6px;bottom:6px;left:50%;width:1px;
  transform:translateX(-50%);
  background:linear-gradient(180deg,
    rgba(39,49,44,0) 0%, #27312c 3%, #27312c 97%, rgba(39,49,44,0) 100%);
}

/* ---------- 一条记录 ---------- */
/* 用 nth-of-type 而不是 nth-child：.dtl 里的第一个孩子是 .dtl-rail（span），
   用 nth-child 会让第一条记录被当成「偶数条」排到右边。

   用浮动而不是「整行 block + margin-left」，这样第 2 条会**并排**到第 1 条右边，
   而不是等第 1 条结束后才开始 —— 对面那半边的空白就没了。 */
.dtl-item{
  position:relative;
  float:left;
  width:calc(50% - var(--dtl-gap));
  margin-bottom:26px;   /* 上下相邻两组之间的距离 */
}
.dtl-item:nth-of-type(odd){margin-left:0}
/* 右列整体下移 → 左右两列不再齐平，形成错位。
   用 position:relative + top，而不是 margin-top / transform：
     · margin-top 会让右列每一条都多出 64px，越往下越错开、列间距失稳；
     · transform 会和下面的入场动效（translateY）打架。 */
.dtl-item:nth-of-type(even){float:right;margin-left:0;top:var(--dtl-stagger)}

/* 圆点：压在中轴上 */
.dtl-dot{
  position:absolute;top:28px;
  width:var(--dtl-dot);height:var(--dtl-dot);border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 0 5px rgba(184,255,90,.10), 0 0 16px rgba(184,255,90,.35);
}
.dtl-item:nth-of-type(odd)  .dtl-dot{right:calc(-1 * (var(--dtl-gap) + var(--dtl-half)))}
.dtl-item:nth-of-type(even) .dtl-dot{left:calc(-1 * (var(--dtl-gap) + var(--dtl-half)))}

/* 圆点到卡片之间那截细线 */
.dtl-item::after{
  content:"";position:absolute;top:33px;height:1px;
  width:calc(var(--dtl-gap) - var(--dtl-half));
  background:var(--line);
}
.dtl-item:nth-of-type(odd)::after {right:calc(-1 * (var(--dtl-gap) - var(--dtl-half)))}
.dtl-item:nth-of-type(even)::after{left:calc(-1 * (var(--dtl-gap) - var(--dtl-half)))}

/* ---------- 卡片 ---------- */
.dtl-card{
  display:block;position:relative;overflow:hidden;
  background:var(--panel);border:1px solid var(--line);border-radius:16px;
  text-decoration:none;color:inherit;
  transition:border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.dtl-card:hover,.dtl-card:focus-visible{
  border-color:rgba(184,255,90,.42);
  transform:translateY(-3px);
  box-shadow:0 18px 44px rgba(0,0,0,.5);
}

.dtl-media{
  display:block;position:relative;overflow:hidden;
  aspect-ratio:3 / 2;background:#0d1210;
}
.dtl-media img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .6s cubic-bezier(.2,.7,.2,1);
}
.dtl-card:hover .dtl-media img{transform:scale(1.045)}
.dtl-media::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(8,11,10,0) 52%,rgba(8,11,10,.55) 100%);
}
.dtl-media-empty{
  display:flex;align-items:center;justify-content:center;
  color:rgba(165,171,164,.45);
  background-image:repeating-linear-gradient(135deg,#0d1210 0 11px,#111715 11px 22px);
}

.dtl-body{display:block;padding:22px 24px 24px}

.dtl-meta{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;line-height:1;
  color:var(--muted);
}
.dtl-num{color:var(--accent)}
.dtl-date{font-variant-numeric:tabular-nums}

/* 标题固定两行、摘要固定三行的高度，这样并排的两张卡一样高，
   不会在矮的那张下面留出一块空白 */
.dtl-title{
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;
  min-height:calc(2 * 1.34em);
  margin:13px 0 0;
  font-size:19.5px;font-weight:700;line-height:1.34;letter-spacing:-.01em;
  color:var(--ink);
}
.dtl-excerpt{
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;
  min-height:calc(3 * 1.68em);
  margin:10px 0 0;
  font-size:14.5px;line-height:1.68;color:var(--muted);
}
.dtl-more{
  display:inline-flex;align-items:center;gap:8px;margin-top:18px;
  font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent);
}
.dtl-more svg{transition:transform .25s ease}
.dtl-card:hover .dtl-more svg{transform:translateX(4px)}

.dtl-empty{color:var(--muted);font-size:15px;line-height:1.7;margin:0}

/* 滚动淡入（html.dtl-anim 由 site.js 加上） */
html.dtl-anim .dtl-item{opacity:0;transform:translateY(16px)}
html.dtl-anim .dtl-item.is-in{
  opacity:1;transform:none;
  transition:opacity .55s ease, transform .55s cubic-bezier(.2,.7,.2,1);
}
@media (prefers-reduced-motion:reduce){
  html.dtl-anim .dtl-item{opacity:1;transform:none}
  .dtl-card,.dtl-media img,.dtl-more svg{transition:none}
}

/* ---------- 页头小标签 / 统计条 ---------- */
.dtl-eyebrow .elementor-heading-title{
  display:block;color:var(--muted);
  font-size:13px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;line-height:1;
}
.dtl-eyebrow .elementor-heading-title::before{
  content:"";display:block;width:44px;height:1px;
  background:currentColor;opacity:.5;margin:0 0 22px;
}

.dtl-stats{display:flex;flex-wrap:wrap;gap:0;margin-top:38px}
.dtl-stat{
  display:flex;flex-direction:column;gap:6px;
  padding:0 34px;border-left:1px solid var(--line);
}
.dtl-stat:first-child{padding-left:0;border-left:0}
.dtl-stat b{
  font-size:30px;font-weight:800;line-height:1;color:var(--ink);
  font-variant-numeric:tabular-nums;letter-spacing:-.02em;
}
.dtl-stat b.is-accent{color:var(--accent)}
.dtl-stat small{
  font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
}

/* ---------- 段落标题行 ---------- */
.dtl-head{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;flex-wrap:wrap}
.dtl-head .elementor-heading-title{margin:0}

/* ---------- 胶囊按钮（收尾 CTA）---------- */
.elementor-widget-button.dtl-solidbtn .elementor-button{
  background:var(--accent);color:#091008;border:1px solid var(--accent);border-radius:999px;
  padding:15px 28px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
}
.elementor-widget-button.dtl-solidbtn .elementor-button:hover,
.elementor-widget-button.dtl-solidbtn .elementor-button:focus{
  background:transparent;color:var(--accent);
}
.elementor-widget-button.dtl-pillbtn .elementor-button{
  background:rgba(184,255,90,.08);color:var(--ink);
  border:1px solid rgba(184,255,90,.6);border-radius:999px;
  padding:15px 28px;font-size:12px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;fill:currentColor;
  box-shadow:0 6px 18px rgba(0,0,0,.32);
}
.elementor-widget-button.dtl-pillbtn .elementor-button:hover,
.elementor-widget-button.dtl-pillbtn .elementor-button:focus{
  background:var(--accent);color:#091008;border-color:var(--accent);fill:#091008;
}

/* ---------- /blog/ 收尾 CTA（三颗胶囊按钮）：窄屏兜底，避免胶囊内文字折行 ---------- */
#sw-dl-actions > .elementor-container{flex-wrap:wrap;row-gap:14px}
@media (max-width:1019px){
  #sw-dl-actions > .elementor-container{column-gap:26px}
  #sw-dl-actions .elementor-column{width:auto;flex:0 0 auto}
}

/* ---------- 窄屏：轴线挪到左侧，卡片全部靠右（取消浮动，恢复单列） ---------- */
@media(max-width:900px){
  .dtl{--dtl-gap:40px;--dtl-stagger:0px}
  .dtl-rail{left:6px;transform:none}
  .dtl-item,
  .dtl-item:nth-of-type(even),
  .dtl-item:nth-of-type(odd){
    float:none;width:auto;margin-left:40px;margin-bottom:20px;top:0;
  }
  .dtl-title{
    display:block;overflow:visible;min-height:0;
    -webkit-line-clamp:unset;
  }
  .dtl-excerpt{
    display:block;overflow:visible;min-height:0;
    -webkit-line-clamp:unset;
  }
  .dtl-item:nth-of-type(odd)  .dtl-dot,
  .dtl-item:nth-of-type(even) .dtl-dot{
    left:calc(-1 * (40px - 6px + var(--dtl-half)));right:auto;
  }
  .dtl-item:nth-of-type(odd)::after,
  .dtl-item:nth-of-type(even)::after{
    left:calc(-1 * (40px - 6px));right:auto;width:calc(40px - 6px);
  }
  .dtl-dot{top:22px}
  .dtl-item::after{top:27px}
  .dtl-body{padding:18px 20px 20px}
  .dtl-title{font-size:18px}
  .dtl-excerpt{font-size:14px}
  .dtl-stats{margin-top:28px;gap:18px 0}
  .dtl-stat{flex:1 1 40%;padding:0 18px}
  .dtl-stat:nth-child(odd){padding-left:0;border-left:0}
  .dtl-stat b{font-size:22px}
}
/* --- SANDWORM-DEVLOG-TIMELINE-STYLE END --- */






/* --- SANDWORM-SECTION-STYLE BEGIN --- */
/* ==========================================================================
   首页窄屏适配
   ---------------------------------------------------------------------------
   这个分区的内容已经改成 Elementor 原生小工具（标题/文本/图标小工具），
   文字、图标、配色全部在编辑器里可改，不再需要靠 CSS 补样式。
   这里只剩两条「兜底」规则：
   ========================================================================== */

@media(max-width:1024px){
  /* 1) 首页所有 .section 分区在 Elementor 里都设成了「四边联动 240px」，
        左右各 240、合计吃掉 480px 宽。桌面 1585px 下还剩 1105px 放内容所以
        看不出来，但手机 405px 下内容被压成 0，整页横向溢出 75px（出现横向
        滚动条）。这里在窄屏把左右归零，竖向也收到手机上合理的值。 */
  .elementor.elementor-4 .elementor-section.elementor-top-section.section{
    padding:96px 24px;
  }

  /* 2) 三栏竖排时，栏与栏之间的「竖分隔线」换成「横分隔线」 */
  .elementor-4 .elementor-element.elementor-element-b78ecec .elementor-column{
    border-left-width:0;
  }
  .elementor-4 .elementor-element.elementor-element-b78ecec .elementor-column + .elementor-column{
    border-top:1px solid rgba(255,255,255,.18);
    margin-top:22px;
    padding-top:22px;
  }

  /* 3) 「More ground」分区左栏那段导语（小工具 115def3）在数据里比栏还宽，
        桌面靠向右溢出是刻意的设计；手机上必须收回栏内，否则整页横向溢出
        53px（实测 scrollW 468 / clientW 415）。 */
  .elementor-4 .elementor-element.elementor-element-b78ecec .elementor-widget-text-editor{
    width:auto !important;
    max-width:100% !important;
  }

  /* 4) 右列上那个 186px 的「往下压」是为了在桌面上抵消分区上内边距收缩、
        让右侧面板原地不动（Elementor 把它写在了
        `.elementor-element-e3ff9bd > .elementor-element-populated` 上）。
        手机上两栏已经竖排，这 186px 只会变成一段空白，必须归零。 */
  .elementor-4 .elementor-element.elementor-element-b78ecec .elementor-element-e3ff9bd > .elementor-element-populated{
    margin-top:0;
  }

  /* 5) 左栏那四个小工具在桌面上被设成了「绝对定位 + 像素偏移」（手工摆的错位
        构图，见 _position / _offset_x / _offset_y）。像素偏移只在桌面成立：
        手机 415px 视口下它们被推到 x=479，整页横向溢出 141px，而且左栏高度塌成
        1px（四个子元素全部脱离文档流，列只剩 min-height:1px）。
        窄屏一律改回正常文档流；桌面不受影响（这条在 max-width:1024 里）。 */
  .elementor-4 .elementor-element.elementor-element-b78ecec .elementor-element-c0abd8a,
  .elementor-4 .elementor-element.elementor-element-b78ecec .elementor-element-fb20cf2,
  .elementor-4 .elementor-element.elementor-element-b78ecec .elementor-element-00a6393{
    position:static !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    width:100% !important;
    max-width:100% !important;
  }
  .elementor-4 .elementor-element.elementor-element-b78ecec .elementor-element-115def3{
    position:static !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    max-width:100% !important;
  }
  /* 绝对定位下那 48px 右内边距只为桌面构图服务，回到正常流后归零 */
  .elementor-4 .elementor-element.elementor-element-b78ecec .elementor-element-240e4ed > .elementor-element-populated{
    padding-right:0 !important;
  }
}
/* --- SANDWORM-SECTION-STYLE END --- */




/* --- SANDWORM-SURVEY-STYLE BEGIN --- */
/* ==========================================================================
   站内问卷 v2 —— 五阶段奖励版（短代码 [sandworm_survey] → #sandworm-survey / .swq-*）
   规格：SURVEY-SPEC.md v1 的题目 + 五阶段奖励阶梯（5% / 10% / 15% / 20% off at launch、
   第 5 阶段免费样机测试名额）。行为在 assets/site.js 的 SANDWORM-SURVEY-JS 段，
   渲染在 functions.php 的 SANDWORM-SURVEY 段。
   源文件：migration/survey-v2/survey-v3-style.css（改这个文件，再同步进主题 style.css）。

   关键决定：
   1) 所有选择器都以 #sandworm-survey 打头：这段样式是全局 style.css 的一部分，
      作用域锁死，不会碰到页面上别的卡片（规格也要求样式限定在问卷内）。
   2) 配色沿用站点变量（--panel/--line/--ink/--muted/--accent），问卷插在深色页面里
      和 .ftx-*、#sw-prod-* 是同一套语言。站点本身是深色单主题，所以不跟随系统浅色；
      深色模式下对比度已经按 WCAG AA 检查过（正文 #f4f5f0 on #111715）。
   3) 自绘单选/多选/量表：各浏览器原生控件是亮色材质，和深色主题冲突。
   4) !important 只用在输入控件与按钮上（Elementor 的 post-<id>.css 在主题之后加载，
      会盖掉边框和底色），其余靠 #sandworm-survey 前缀提特异性。
   5) 触控目标 ≥44px；≤560px 时矩阵行改成「标题在上、选项在下」，不横向溢出。
   日期：2026-10-09
   ========================================================================== */

/* ---------- 面板 / 页头 ---------- */
#sandworm-survey{
  max-width:1120px;margin:0 auto;padding:34px 32px;
  background:var(--panel);border:1px solid var(--line);border-radius:18px;
  color:var(--ink) !important;
  font-size:15px;line-height:1.6;
}
#sandworm-survey *,#sandworm-survey *::before,#sandworm-survey *::after{box-sizing:border-box}
#sandworm-survey p{margin:0}
#sandworm-survey[hidden],
#sandworm-survey .swq-form[hidden],
#sandworm-survey .swq-done[hidden],
#sandworm-survey .swq-step[hidden],
#sandworm-survey .swq-ladder[hidden],
#sandworm-survey .swq-rung[hidden],
#sandworm-survey .swq-status[hidden],
#sandworm-survey .swq-done-p[hidden],
#sandworm-survey .swq-btn[hidden],
#sandworm-survey .swq-btn-ghost[hidden]{display:none}

/* ---------- 两栏骨架：宽屏时奖励阶梯在左、问卷在右（见文件尾部 1080px 媒体查询） ---------- */
#sandworm-survey .swq-grid{display:grid;grid-template-columns:minmax(0,1fr)}
#sandworm-survey .swq-side,
#sandworm-survey .swq-main{min-width:0}

#sandworm-survey .swq-eyebrow{
  margin:0;color:var(--accent);
  font-size:11.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;line-height:1;
}
#sandworm-survey .swq-title{margin:10px 0 0;color:var(--ink);font-size:clamp(21px,3.4vw,28px);font-weight:800;line-height:1.2}
#sandworm-survey .swq-lede{margin:12px 0 0;color:var(--muted);font-size:14.5px}

/* ---------- 进度条 ---------- */
#sandworm-survey .swq-meter{margin:24px 0 4px}
#sandworm-survey .swq-progress{
  height:5px;background:rgba(255,255,255,.08);border-radius:999px;overflow:hidden;
}
#sandworm-survey .swq-bar{
  display:block;height:100%;width:0;
  background:var(--accent);border-radius:999px;
  transition:width .25s ease;
}
#sandworm-survey .swq-count{
  margin:8px 0 0;color:var(--muted);font-size:12.5px;font-weight:600;
  font-variant-numeric:tabular-nums;
}

/* ---------- 蜜罐（只给爬虫看） ---------- */
#sandworm-survey .swq-hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

/* ---------- 奖励阶梯（JS 只切 .is-done / .is-next） ---------- */
#sandworm-survey .swq-ladder{
  margin:24px 0 0;padding:18px 18px 16px;
  background:rgba(184,255,90,.05);
  border:1px solid rgba(184,255,90,.22);border-radius:16px;
}
#sandworm-survey .swq-ladder-t{
  margin:0 0 12px;color:var(--accent);
  font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
}
#sandworm-survey .swq-rungs{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:9px;
  margin:0;padding:0;list-style:none;
}
#sandworm-survey .swq-rung{
  display:flex;flex-direction:column;gap:3px;
  padding:11px 12px;
  background:rgba(255,255,255,.02);border:1px solid var(--line);border-radius:12px;
  transition:border-color .16s ease,background .16s ease;
}
#sandworm-survey .swq-rung-n{color:var(--muted);font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
#sandworm-survey .swq-rung-r{color:var(--ink);font-size:13.5px;font-weight:800;line-height:1.3}
#sandworm-survey .swq-rung-s{margin-top:2px;font-size:11.5px;font-weight:700;line-height:1.3}
#sandworm-survey .swq-rung-s span{display:none}
#sandworm-survey .swq-rung-open{color:var(--accent)}
#sandworm-survey .swq-rung-locked{color:#79817a}
#sandworm-survey .swq-rung-next{color:var(--cyan)}
#sandworm-survey .swq-rung:not(.is-done):not(.is-next) .swq-rung-locked{display:inline}
#sandworm-survey .swq-rung.is-next{border-color:rgba(131,245,208,.5);background:rgba(131,245,208,.06)}
#sandworm-survey .swq-rung.is-next .swq-rung-next{display:inline}
#sandworm-survey .swq-rung.is-done{border-color:var(--accent);background:rgba(184,255,90,.12)}
#sandworm-survey .swq-rung.is-done .swq-rung-open{display:inline}
#sandworm-survey .swq-rung.is-done .swq-rung-r{color:var(--accent)}
#sandworm-survey .swq-status{
  margin:14px 0 0;padding:11px 13px;
  background:rgba(255,255,255,.02);border-left:3px solid var(--accent);border-radius:0 10px 10px 0;
  color:var(--ink);font-size:13.5px;font-weight:600;line-height:1.55;
}

/* ---------- 侧栏：Reddit 论坛入口（奖励阶梯下方，宽屏时跟阶梯一起粘住） ---------- */
#sandworm-survey .swq-sticky{min-width:0}
#sandworm-survey .swq-side-reddit{
  margin:12px 0 0;padding:14px 16px 15px;
  background:rgba(255,255,255,.02);
  border:1px solid var(--line);border-radius:16px;
}
#sandworm-survey .swq-side-reddit-t{
  margin:0 0 8px;color:var(--muted);
  font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;line-height:1;
}
#sandworm-survey .swq-side-reddit-a{
  display:inline-flex;align-items:center;gap:8px;
  color:var(--ink);font-size:13.5px;font-weight:800;line-height:1.3;
  text-decoration:none !important;
}
#sandworm-survey .swq-side-reddit-a:hover,
#sandworm-survey .swq-side-reddit-a:focus-visible{color:var(--accent);text-decoration:none !important}
#sandworm-survey .swq-side-reddit-a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
#sandworm-survey .swq-side-reddit-i{width:15px;height:15px;flex:0 0 auto;color:var(--accent);transition:transform .16s ease}
#sandworm-survey .swq-side-reddit-a:hover .swq-side-reddit-i{transform:translateX(2px)}

/* ---------- 步骤（fieldset，一次只显示一个） ---------- */
#sandworm-survey .swq-step{
  border:0;border-top:1px solid var(--line);margin:28px 0 0;padding:24px 0 0;min-width:0;
}
#sandworm-survey .swq-step-t{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:0;margin:0 0 6px;
  color:var(--ink);font-size:16.5px;font-weight:800;line-height:1.3;width:100%;
}
#sandworm-survey .swq-step-n{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:24px;height:24px;padding:0 8px;
  background:rgba(184,255,90,.14);border:1px solid rgba(184,255,90,.32);border-radius:999px;
  color:var(--accent);font-size:11.5px;font-weight:800;letter-spacing:.04em;line-height:1;
}
#sandworm-survey .swq-step-title{flex:1 1 auto;min-width:0}
#sandworm-survey .swq-step-r{
  margin-left:auto;padding:4px 10px;
  background:rgba(184,255,90,.12);border:1px solid rgba(184,255,90,.3);border-radius:999px;
  color:var(--accent);font-size:11.5px;font-weight:800;letter-spacing:.02em;white-space:nowrap;
}
#sandworm-survey .swq-step-lede{margin:6px 0 0;color:var(--muted);font-size:13.5px}
#sandworm-survey .swq-step-unlock{
  margin:20px 0 0;padding:11px 13px;
  background:rgba(131,245,208,.06);border:1px dashed rgba(131,245,208,.35);border-radius:12px;
  color:var(--cyan);font-size:13px;font-weight:600;line-height:1.5;
}

/* ---------- 题目 ---------- */
#sandworm-survey .swq-q{margin:22px 0 0;padding:0;border:0;min-width:0}
#sandworm-survey .swq-legend{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;
  padding:0;margin:0 0 10px;
  color:var(--ink);font-size:15.5px;font-weight:700;line-height:1.45;
}
#sandworm-survey .swq-num{
  flex:0 0 auto;min-width:22px;height:22px;padding:0 5px;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:7px;
  color:var(--muted);font-size:11.5px;font-weight:800;line-height:1;
}
#sandworm-survey .swq-qtext{flex:1 1 auto;min-width:0}
#sandworm-survey .swq-req{color:var(--accent);font-weight:800}
#sandworm-survey .swq-opt-tag{color:var(--muted);font-size:12.5px;font-weight:600}
#sandworm-survey .swq-sr{
  position:absolute;width:1px;height:1px;margin:-1px;padding:0;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
#sandworm-survey .swq-hint{margin:0 0 12px;color:var(--muted);font-size:13px}

/* ---------- 选项（自绘单选 / 多选） ---------- */
#sandworm-survey .swq-opts{display:flex;flex-direction:column;gap:9px}
#sandworm-survey .swq-opt{
  display:flex;align-items:center;gap:12px;width:100%;min-height:46px;
  padding:11px 15px;cursor:pointer;
  background:rgba(255,255,255,.02);
  border:1px solid var(--line);border-radius:12px;
  transition:background .16s ease,border-color .16s ease;
}
#sandworm-survey .swq-opt:hover{border-color:rgba(184,255,90,.45)}
#sandworm-survey .swq-opt-t{color:var(--ink);font-size:14.5px;font-weight:400;line-height:1.45}
#sandworm-survey .swq-opt input{position:absolute;opacity:0;width:0;height:0;margin:0;pointer-events:none}
#sandworm-survey .swq-opt input:focus-visible + .swq-opt-t{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
#sandworm-survey .swq-opt:has(input:checked){border-color:var(--accent);background:rgba(184,255,90,.10)}
#sandworm-survey .swq-opt:has(input:disabled){opacity:.45;cursor:not-allowed}
#sandworm-survey .swq-opt:has(input:disabled):hover{border-color:var(--line)}
#sandworm-survey .swq-opt-t::before{
  content:"";flex:0 0 auto;float:left;margin:2px 12px 0 0;
  width:18px;height:18px;
  border:1px solid var(--line);border-radius:50%;
  background:#0d1210;
  transition:background .16s ease,border-color .16s ease,box-shadow .16s ease;
}
#sandworm-survey .swq-opt input[type="checkbox"] + .swq-opt-t::before{border-radius:5px}
#sandworm-survey .swq-opt input:checked + .swq-opt-t::before{
  background:var(--accent);border-color:var(--accent);
  box-shadow:inset 0 0 0 3.5px #0d1210;
}

/* Other 勾选后才出现的自由文本框 */
#sandworm-survey .swq-other{margin:10px 0 0;padding:12px 14px;background:rgba(255,255,255,.02);border:1px dashed var(--line);border-radius:12px}
#sandworm-survey .swq-other[hidden]{display:none}
#sandworm-survey .swq-sublabel{display:block;margin:0 0 7px;color:var(--muted);font-size:13px;font-weight:600}

/* ---------- 文本 / 邮箱 / 多行输入 ---------- */
#sandworm-survey .swq-input{
  width:100%;display:block;
  min-height:46px;padding:12px 15px;
  background:#0d1210 !important;
  border:1px solid var(--line) !important;
  border-radius:12px;
  color:var(--ink) !important;
  font:inherit;font-size:15px;line-height:1.45;
  -webkit-appearance:none;appearance:none;
  transition:border-color .16s ease,box-shadow .16s ease;
}
#sandworm-survey .swq-input::placeholder{color:#6d756e;opacity:1}
#sandworm-survey .swq-input:hover{border-color:#3f5c33 !important}
#sandworm-survey .swq-input:focus,#sandworm-survey .swq-input:focus-visible{
  outline:none;border-color:var(--accent) !important;
  box-shadow:0 0 0 3px rgba(184,255,90,.14);
}
#sandworm-survey .swq-textarea{min-height:104px;resize:vertical}
#sandworm-survey .swq-flabel{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin:0 0 8px;color:var(--ink);font-size:14.5px;font-weight:700}

/* ---------- 1–5 评分（单行） ---------- */
#sandworm-survey .swq-rate{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
#sandworm-survey .swq-rate-opt{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  min-height:64px;padding:8px 6px;cursor:pointer;text-align:center;
  background:rgba(255,255,255,.02);
  border:1px solid var(--line);border-radius:12px;
  transition:background .16s ease,border-color .16s ease;
}
#sandworm-survey .swq-rate-opt input{position:absolute;opacity:0;width:0;height:0;margin:0;pointer-events:none}
#sandworm-survey .swq-rate-opt:hover{border-color:rgba(184,255,90,.45)}
#sandworm-survey .swq-rate-opt:has(input:checked){background:rgba(184,255,90,.10);border-color:var(--accent)}
#sandworm-survey .swq-rate-opt input:focus-visible ~ .swq-rate-n{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
#sandworm-survey .swq-rate-n{color:var(--ink);font-size:16px;font-weight:800;line-height:1}
#sandworm-survey .swq-rate-w{color:var(--muted);font-size:11.5px;line-height:1.25}
#sandworm-survey .swq-rate-opt:has(input:checked) .swq-rate-n{color:var(--accent)}
#sandworm-survey .swq-escape{margin-top:9px}

/* ---------- 评分矩阵 ---------- */
#sandworm-survey .swq-mx{display:flex;flex-direction:column;gap:12px}
#sandworm-survey .swq-mx-row{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 16px;
  padding:10px 12px;background:rgba(255,255,255,.02);
  border:1px solid var(--line);border-radius:12px;
}
#sandworm-survey .swq-mx-label{color:var(--ink);font-size:13.5px;line-height:1.4}
#sandworm-survey .swq-mx-opts{display:flex;align-items:center;gap:6px}
#sandworm-survey .swq-mx-opt{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:44px;min-height:44px;padding:0 8px;cursor:pointer;
  background:#0d1210;border:1px solid var(--line);border-radius:10px;
  transition:background .16s ease,border-color .16s ease,color .16s ease;
}
#sandworm-survey .swq-mx-opt input{position:absolute;opacity:0;width:0;height:0;margin:0;pointer-events:none}
#sandworm-survey .swq-mx-opt:hover{border-color:rgba(184,255,90,.45)}
#sandworm-survey .swq-mx-opt:has(input:checked){background:rgba(184,255,90,.12);border-color:var(--accent)}
#sandworm-survey .swq-mx-opt input:focus-visible + .swq-mx-t{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
#sandworm-survey .swq-mx-t{color:var(--ink);font-size:13.5px;font-weight:700;line-height:1}
#sandworm-survey .swq-mx-opt:has(input:checked) .swq-mx-t{color:var(--accent)}
#sandworm-survey .swq-mx-opt-cant{min-width:auto;padding:0 12px}
#sandworm-survey .swq-mx-opt-cant .swq-mx-t{font-size:12.5px;font-weight:600;white-space:nowrap}

/* ---------- 概念区块（概念题之前展示） ---------- */
#sandworm-survey .swq-concept{
  margin:20px 0 0;padding:18px 20px;
  background:rgba(131,245,208,.06);
  border:1px solid rgba(131,245,208,.28);border-left:3px solid var(--cyan);border-radius:14px;
  color:var(--ink);font-size:14.5px;line-height:1.6;
}
#sandworm-survey .swq-concept p + p{margin-top:11px}
#sandworm-survey .swq-concept strong{color:#fff;font-weight:800}

/* ---------- 错误提示 / 提交失败 ---------- */
#sandworm-survey .swq-err{
  display:none;margin:9px 0 0;color:#ff9c8a;font-size:13px;font-weight:600;
}
#sandworm-survey .swq-q.is-invalid{scroll-margin-top:90px}
#sandworm-survey .swq-q.is-invalid .swq-err{display:block}
#sandworm-survey .swq-q.is-invalid .swq-legend,
#sandworm-survey .swq-q.is-invalid .swq-flabel{color:#ff9c8a}
#sandworm-survey .swq-q.is-invalid .swq-opt,
#sandworm-survey .swq-q.is-invalid .swq-input,
#sandworm-survey .swq-q.is-invalid .swq-mx-row{border-color:rgba(255,156,138,.6) !important}
/* 邮箱那题有两条错误（必填 / 格式），默认都藏，靠 is-invalid-a / is-invalid-b 精确显示 */
#sandworm-survey .swq-q[data-swq-type="email"].is-invalid .swq-err{display:none}
#sandworm-survey .swq-q[data-swq-type="email"].is-invalid-a .swq-err-a{display:block}
#sandworm-survey .swq-q[data-swq-type="email"].is-invalid-b .swq-err-b{display:block}
#sandworm-survey .swq-q[data-swq-type="email"].is-invalid-a .swq-flabel,
#sandworm-survey .swq-q[data-swq-type="email"].is-invalid-b .swq-flabel{color:#ff9c8a}
#sandworm-survey .swq-q[data-swq-type="email"].is-invalid-a .swq-input,
#sandworm-survey .swq-q[data-swq-type="email"].is-invalid-b .swq-input{border-color:rgba(255,156,138,.6) !important}
#sandworm-survey .swq-err-global{
  margin:14px 0 0;padding:12px 14px;
  background:rgba(255,156,138,.10);border:1px solid rgba(255,156,138,.4);border-radius:12px;
}
#sandworm-survey .swq-err-global.is-on{display:block}

/* ---------- 邮箱区（必填，任何步骤都可见） ---------- */
#sandworm-survey .swq-claim{
  margin:28px 0 0;padding:18px 18px 20px;
  background:rgba(184,255,90,.05);
  border:1px solid rgba(184,255,90,.28);border-radius:16px;
}
#sandworm-survey .swq-claim-t{margin:0;color:var(--ink);font-size:16px;font-weight:800;line-height:1.3}
#sandworm-survey .swq-claim-l{margin:8px 0 0;color:var(--muted);font-size:13px}
#sandworm-survey .swq-claim .swq-q{margin:16px 0 0}

/* ---------- 步骤导航 ---------- */
#sandworm-survey .swq-nav{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:24px 0 0}

/* ---------- 底部按钮 ---------- */
#sandworm-survey .swq-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:26px 0 0}
#sandworm-survey .swq-btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;padding:0 24px;
  background:var(--accent) !important;
  border:1px solid var(--accent) !important;border-radius:999px;
  color:#0c1108 !important;font:inherit;font-size:15px;font-weight:800;letter-spacing:.01em;
  text-decoration:none;cursor:pointer;
  transition:filter .16s ease,transform .16s ease;
}
#sandworm-survey .swq-btn:hover{filter:brightness(1.06)}
#sandworm-survey .swq-btn:disabled{opacity:.6;cursor:progress}
#sandworm-survey .swq-btn-ghost{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;padding:0 20px;
  background:transparent !important;
  border:1px solid #526058 !important;border-radius:999px;
  color:var(--ink) !important;font:inherit;font-size:14px;font-weight:600;
  text-decoration:none;cursor:pointer;
  transition:border-color .16s ease,color .16s ease;
}
#sandworm-survey .swq-btn-ghost:hover{border-color:var(--accent) !important;color:var(--accent) !important}
#sandworm-survey .swq-btn:focus-visible,
#sandworm-survey .swq-btn-ghost:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* ---------- v8：按钮一律用主题配色（Next stage = 主题主色柠檬绿；Submit = 主题青绿 --cyan） ---------- */
/* Next stage：跟站内 .button 主按钮同一套（背景 var(--accent)，hover 用主题自己的 #a6ef4a） */
#sandworm-survey .swq-nav .swq-btn-ghost[data-swq-next]{
  background:var(--accent) !important;
  border-color:var(--accent) !important;
  color:#0b1208 !important;
  font-size:15px;font-weight:800;padding:0 24px;
}
#sandworm-survey .swq-nav .swq-btn-ghost[data-swq-next]:hover{
  background:#a6ef4a !important;border-color:#a6ef4a !important;color:#0b1208 !important;
}
/* Submit：换成主题的第二个强调色青绿 --cyan #83f5d0（跟 Next 的柠檬绿区分开；仍只用主题变量，不引入新色值） */
#sandworm-survey .swq-actions .swq-btn[data-swq-submit]{
  background:var(--cyan) !important;
  border:1px solid var(--cyan) !important;
  color:#0b1208 !important;
}
#sandworm-survey .swq-actions .swq-btn[data-swq-submit]:hover{
  background:var(--cyan) !important;border-color:var(--cyan) !important;color:#0b1208 !important;
  filter:brightness(1.06);
}
#sandworm-survey .swq-actions .swq-btn[data-swq-submit]:disabled{
  opacity:.55;background:var(--cyan) !important;color:#0b1208 !important;filter:none;
}

#sandworm-survey .swq-note{margin:16px 0 0;color:var(--muted);font-size:12.5px;line-height:1.55}

/* ---------- 感谢态 ---------- */
#sandworm-survey .swq-done{padding:6px 0 2px}
#sandworm-survey .swq-done-t{margin:0;color:var(--ink);font-size:clamp(20px,3vw,26px);font-weight:800;line-height:1.25}
#sandworm-survey .swq-done-p{margin:12px 0 0;color:var(--muted);font-size:14.5px}
#sandworm-survey .swq-done-links{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0 0}

/* ---------- 宽屏：左侧粘性奖励阶梯，滚动时跟着问卷走 ---------- */
@media (min-width:1080px){
  #sandworm-survey .swq-grid{grid-template-columns:288px minmax(0,1fr);column-gap:34px}
  #sandworm-survey .swq-lede{max-width:680px}
  #sandworm-survey .swq-sticky{position:sticky;top:96px}
  #sandworm-survey .swq-rungs{grid-template-columns:minmax(0,1fr);gap:8px}
  #sandworm-survey .swq-rung{padding:10px 12px}
  #sandworm-survey .swq-status{margin-top:12px;padding:10px 12px;font-size:12.5px}
}

/* ---------- 宽屏但屏幕矮（<820px 高）：整套侧栏压扁一点，保证粘住时不会被截断 ---------- */
@media (min-width:1080px) and (max-height:820px){
  #sandworm-survey .swq-sticky{top:78px}
  #sandworm-survey .swq-rungs{gap:6px}
  #sandworm-survey .swq-rung{padding:8px 11px}
  #sandworm-survey .swq-status{margin-top:10px;padding:9px 11px;font-size:12px}
  #sandworm-survey .swq-side-reddit{margin-top:10px;padding:12px 14px 13px}
}

/* ---------- 窄屏 ---------- */
@media (max-width:560px){
  #sandworm-survey{padding:24px 18px;border-radius:14px}
  #sandworm-survey .swq-ladder{padding:15px 14px 13px}
  #sandworm-survey .swq-side-reddit{padding:12px 14px 13px}
  #sandworm-survey .swq-rungs{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:7px}
  #sandworm-survey .swq-step-t{font-size:15.5px;gap:8px}
  #sandworm-survey .swq-step-r{margin-left:0}
  #sandworm-survey .swq-claim{padding:15px 14px 17px}
  #sandworm-survey .swq-mx-row{grid-template-columns:minmax(0,1fr)}
  #sandworm-survey .swq-mx-opts{flex-wrap:wrap}
  #sandworm-survey .swq-mx-opt{flex:1 1 0;min-width:40px}
  #sandworm-survey .swq-mx-opt-cant{flex:1 1 100%}
  #sandworm-survey .swq-rate-w{font-size:10.5px}
  #sandworm-survey .swq-opt{padding:10px 12px}
  #sandworm-survey .swq-btn,#sandworm-survey .swq-btn-ghost{width:100%}
}
@media (max-width:380px){
  #sandworm-survey{padding:20px 14px}
  #sandworm-survey .swq-rate{gap:6px}
  #sandworm-survey .swq-rate-opt{min-height:58px;padding:6px 3px}
}
@media (prefers-reduced-motion:reduce){
  #sandworm-survey *{transition:none !important;animation:none !important}
}
/* ---------- v9：阶段庆祝弹窗（Next stage 解锁 / Submit 领取） ---------- */
html.swq-pop-open,html.swq-pop-open body{overflow:hidden}
#sandworm-survey .swq-pop{
  position:fixed;inset:0;z-index:9999;
  display:flex;align-items:center;justify-content:center;
  padding:20px;
}
#sandworm-survey .swq-pop[hidden]{display:none}
#sandworm-survey .swq-pop-scrim{
  position:absolute;inset:0;
  background:rgba(4,8,6,.74);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
}
#sandworm-survey .swq-pop-box{
  position:relative;z-index:1;
  width:min(430px,100%);max-height:calc(100vh - 40px);overflow-y:auto;
  padding:28px 26px 22px;
  background:var(--panel);
  border:1px solid rgba(184,255,90,.42);
  border-radius:20px;
  box-shadow:0 26px 70px rgba(0,0,0,.62);
  text-align:center;
  animation:swqPopIn .3s cubic-bezier(.2,.9,.3,1.28) both;
}
#sandworm-survey .swq-pop-sparks{position:absolute;left:0;right:0;top:18px;height:0;pointer-events:none}
#sandworm-survey .swq-pop-spark{
  position:absolute;left:50%;top:0;width:7px;height:7px;border-radius:2px;
  background:var(--accent);opacity:0;
  animation:swqSpark 1.2s cubic-bezier(.2,.7,.3,1) .1s 1 both;
}
#sandworm-survey .swq-pop-spark-1{--swq-dx:-104px;--swq-dy:56px;--swq-rot:-160deg}
#sandworm-survey .swq-pop-spark-2{--swq-dx:-58px;--swq-dy:94px;--swq-rot:-90deg;background:var(--cyan)}
#sandworm-survey .swq-pop-spark-3{--swq-dx:-16px;--swq-dy:70px;--swq-rot:120deg}
#sandworm-survey .swq-pop-spark-4{--swq-dx:36px;--swq-dy:88px;--swq-rot:150deg;background:var(--cyan)}
#sandworm-survey .swq-pop-spark-5{--swq-dx:84px;--swq-dy:60px;--swq-rot:200deg}
#sandworm-survey .swq-pop-spark-6{--swq-dx:112px;--swq-dy:98px;--swq-rot:260deg;background:var(--cyan)}
@keyframes swqSpark{
  0%{opacity:0;transform:translate(-50%,-6px) scale(.3) rotate(0deg)}
  15%{opacity:1}
  100%{opacity:0;transform:translate(calc(-50% + var(--swq-dx,0px)),var(--swq-dy,60px)) scale(1) rotate(var(--swq-rot,90deg))}
}
@keyframes swqPopIn{
  0%{opacity:0;transform:translateY(14px) scale(.94)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}
#sandworm-survey .swq-pop-mark{
  display:inline-flex;align-items:center;justify-content:center;
  width:52px;height:52px;border-radius:50%;
  color:var(--accent);background:rgba(184,255,90,.12);
  border:1px solid rgba(184,255,90,.5);
  margin-bottom:14px;
}
#sandworm-survey .swq-pop-kicker{
  margin:0;color:var(--accent);
  font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
}
#sandworm-survey .swq-pop-v[hidden]{display:none}
#sandworm-survey .swq-pop-reward{
  margin:14px 0 0;padding:14px 16px;
  border:1px dashed rgba(184,255,90,.55);border-radius:14px;
  background:rgba(184,255,90,.06);
  color:var(--accent);
  font-size:clamp(21px,5.2vw,29px);font-weight:800;line-height:1.16;
}
#sandworm-survey .swq-pop-line{
  margin:16px 0 0;padding-top:14px;
  border-top:1px dashed #3a4640;
  color:var(--muted);font-size:14px;line-height:1.55;
}
#sandworm-survey .swq-pop-close{width:100%;margin-top:20px}
#sandworm-survey .swq-pop[data-swq-pop-mode="unlock"] .swq-pop-kicker-claim,
#sandworm-survey .swq-pop[data-swq-pop-mode="claim"] .swq-pop-kicker-unlock{display:none}
#sandworm-survey .swq-pop[data-swq-pop-mode="unlock"] .swq-pop-btn-claim,
#sandworm-survey .swq-pop[data-swq-pop-mode="claim"] .swq-pop-btn-unlock{display:none}
#sandworm-survey .swq-pop[data-swq-pop-mode="claim"] .swq-pop-box{border-color:rgba(131,245,208,.44)}
#sandworm-survey .swq-pop[data-swq-pop-mode="claim"] .swq-pop-mark{
  color:var(--cyan);background:rgba(131,245,208,.12);border-color:rgba(131,245,208,.5);
}
#sandworm-survey .swq-pop[data-swq-pop-mode="claim"] .swq-pop-kicker{color:var(--cyan)}
#sandworm-survey .swq-pop[data-swq-pop-mode="claim"] .swq-pop-reward{
  color:var(--cyan);border-color:rgba(131,245,208,.55);background:rgba(131,245,208,.07);
}
@media (max-width:560px){
  #sandworm-survey .swq-pop{padding:14px;align-items:flex-start}
  #sandworm-survey .swq-pop-box{margin-top:10vh;padding:22px 18px 18px;border-radius:16px}
  #sandworm-survey .swq-pop-reward{font-size:20px;padding:12px 14px}
  #sandworm-survey .swq-pop-spark{display:none}
}
@media (prefers-reduced-motion:reduce){
  #sandworm-survey .swq-pop-box{animation:none}
  #sandworm-survey .swq-pop-spark{animation:none;display:none}
}

/* ---------- v13：弹窗里的「下一阶段能拿什么」+ 每个档位自己的按钮 ---------- */
#sandworm-survey .swq-pop-next{
  margin:14px 0 0;padding:10px 12px;
  border:1px solid rgba(184,255,90,.34);border-radius:12px;
  background:rgba(184,255,90,.05);
  color:var(--ink);font-size:13.5px;font-weight:700;line-height:1.5;
}
#sandworm-survey .swq-pop[data-swq-pop-mode="claim"] .swq-pop-next{border-color:rgba(131,245,208,.32);background:rgba(131,245,208,.05)}
#sandworm-survey .swq-pop-v .swq-pop-close{width:100%;margin-top:18px}
@media (max-width:560px){
  #sandworm-survey .swq-pop-next{font-size:12.5px}
}

/* --- v14：领取弹窗里加一句「我们会认真看你的问卷，感谢你的支持」 --- */
#sandworm-survey .swq-pop-thanks {
	margin: 14px 0 0;
	padding: 9px 13px;
	border-left: 2px solid var(--cyan);
	background: rgba(131, 245, 208, 0.07);
	border-radius: 0 8px 8px 0;
	color: var(--ink);
	font-size: 13.5px;
	line-height: 1.55;
	text-align: left;
}

#sandworm-survey .swq-pop-v[data-swq-pop-mode="claim"] .swq-pop-thanks {
	margin-top: 16px;
}

@media (max-width: 560px) {
	#sandworm-survey .swq-pop-thanks {
		font-size: 13px;
		padding: 8px 11px;
	}
}/* ---------- v15：领取弹窗里再加一颗「再做下一阶段，奖励更高」的按钮 ---------- */
#sandworm-survey .swq-pop-btns{display:grid;gap:10px;margin-top:18px}
#sandworm-survey .swq-pop-btns .swq-pop-close{width:100%;margin-top:0}
#sandworm-survey .swq-pop-btns .swq-pop-claim-go{width:100%}
#sandworm-survey .swq-pop-btns .swq-btn-ghost{width:100%;min-height:48px}
@media (max-width:560px){
  #sandworm-survey .swq-pop-btns{gap:8px;margin-top:16px}
}/* --- SANDWORM-SURVEY-STYLE END --- */

/* --- SANDWORM-SUPPORT-PAYONLY BEGIN --- */
/* /support/ 只留付款卡（2026-10-08）：单卡铺满整行，内距略放大 */
.support-ladder-payonly{grid-template-columns:1fr}
.support-ladder-payonly .support-rung{padding:28px 30px}
@media(min-width:900px){.support-ladder-payonly{grid-template-columns:1fr}}
/* --- SANDWORM-SUPPORT-PAYONLY END --- */

/* --- SANDWORM-SUPPORT-METHODS BEGIN --- */
/* /support/ 付款卡：两种支付方式分开两块 + USDT 二维码（2026-10-09） */
.support-methods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:6px 0 0}
.support-method{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:20px;border:1px solid var(--line);border-radius:12px;background:#0e140f}
.support-method-title{margin:0;font-size:15px;font-weight:700;color:var(--ink);letter-spacing:.01em}
.support-method-note{margin:0;color:var(--muted);font-size:13.5px;line-height:1.55}
.support-qr{display:block;width:190px;height:190px;padding:8px;background:#fff;border-radius:12px;box-sizing:content-box}
.support-method .support-address{margin-top:2px}
.support-method .lead-note{margin:0;font-size:12.5px;line-height:1.5}
@media(max-width:900px){.support-methods{grid-template-columns:1fr}}
/* --- SANDWORM-SUPPORT-METHODS END --- */

/* --- SANDWORM-WHY-STACK BEGIN --- */
/* 首页「More ground / More chances」三张特性卡：竖向排列 + 整块贴右限宽（2026-10-09 用户要求）
   1) 三列 100% 宽 + 容器 flex-wrap → 换行堆叠；
   2) 容器限宽 560px 且 margin-left:auto → 整列贴到分区右侧，正文行长更舒服；
   3) 列间原来的「左边框分隔线」换成「上边框 + 22px 间距」（数值同本文件 ≤1024px 兜底）。
   只改 CSS，不动 Elementor 数据；要还原就删掉本块。 */
.elementor-4 .elementor-element.elementor-element-1de15c4 > .elementor-container{
  flex-wrap:wrap;
  max-width:560px;
  margin-left:auto;
  margin-right:0;
}
.elementor-4 .elementor-element.elementor-element-1de15c4 > .elementor-container > .elementor-column{
  width:100%;
  max-width:100%;
  border-left-width:0;
}
.elementor-4 .elementor-element.elementor-element-1de15c4 > .elementor-container > .elementor-column > .elementor-element-populated{
  border-left-width:0;
}
.elementor-4 .elementor-element.elementor-element-1de15c4 > .elementor-container > .elementor-column + .elementor-column{
  margin-top:22px;
  padding-top:22px;
  border-top:1px solid rgba(255,255,255,.18);
}
/* 整块再往上提：Elementor 给右列写了 margin-top:186px（post-4.css 里
   `.elementor-element-e3ff9bd > .elementor-element-populated{margin:186px 0px 0px 0px}`），
   那是旧构图（三栏并排）为了让面板跟照片居中而往下压的；现在三项竖排贴右，
   要跟左栏标题下面那行对齐，所以归零（左栏标题最低一行 00a6393 的 offset_y=-36，
   分区 padding-top=200，归零后面板顶端≈200 正好落在标题底边附近）。 */
.elementor-4 .elementor-element.elementor-element-b78ecec .elementor-element-e3ff9bd > .elementor-element-populated{
  margin-top:0;
}
/* 窄屏恢复满宽：560px 限宽在小屏上会把内容挤窄 */
@media(max-width:1024px){
  .elementor-4 .elementor-element.elementor-element-1de15c4 > .elementor-container{
    max-width:100%;
    margin-left:0;
    margin-right:0;
  }
}
/* --- SANDWORM-WHY-STACK END --- */

/* --- SANDWORM-FOOTER-MAIL BEGIN --- */
.site-footer .footer-mail{margin:6px 0 0;font-size:inherit;color:var(--muted)}
.site-footer .footer-mail-label{margin-right:6px}
.site-footer .footer-mail a{color:inherit;text-decoration:none}
.site-footer .footer-mail a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
@media(max-width:800px){.site-footer .footer-mail{margin-top:6px}}
/* --- SANDWORM-FOOTER-MAIL END --- */



/* --- SANDWORM-HERO-COPY-FLOW START ---
   hero 文案原先靠 Elementor 绝对定位的负左偏移（-296/-300/-288px）硬顶到视口左侧，
   只有 ~1800px 以上的超宽屏才不被裁切；垂直方向的 top 偏移也是按桌面高度写死的。
   现在：桌面按视口比例贴左（保持原来的视觉位置），≤800px 改成正常文档流，任何宽度都完整显示。 */
.elementor-section.hero{
  --sw-hero-inset:clamp(20px,8vw,168px);
  --sw-hero-inset-r:20px;
}
.elementor-section.hero > .elementor-container{
  width:calc(100% - var(--sw-hero-inset) - var(--sw-hero-inset-r));
  max-width:var(--sw-hero-width,900px);
  margin-left:var(--sw-hero-inset);
  margin-right:auto;
  justify-self:start;
}
@media(max-width:1024px){
  .elementor-section.hero{--sw-hero-inset:20px}
  .elementor-column.hero-copy{padding:110px 0 60px}
}
@media(max-width:800px){
  /* 手机/小平板：三行文案回到文档流，间距由 CSS 控制，不再依赖桌面写死的 top 值 */
  .elementor-section.hero .elementor-absolute{
    position:static!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
  }
  .elementor-section.hero .elementor-widget{
    width:100%!important;
    max-width:100%!important;
    flex-grow:0;
  }
  .elementor-section.hero .elementor-widget:not(:last-child){margin-bottom:14px!important}
  .elementor-section.hero .elementor-widget-text-editor.eyebrow{
    font-size:11px!important;
    letter-spacing:.13em;
    white-space:normal;
  }
  .elementor-section.hero .elementor-widget-heading .elementor-heading-title{
    margin:0 0 16px!important;
    font-size:clamp(40px,11vw,56px);
  }
  .elementor-section.hero .elementor-widget-text-editor p{max-width:100%}
}
/* --- SANDWORM-HERO-COPY-FLOW END --- */




/* --- SANDWORM-ABOUT-BG-BLUR START ---
   WHY SANDWORM 区块的叠加层底图加一点模糊，让画面更柔、文字更清楚。
   模糊半径只改下面这一个变量；scale 略放大是为了避免 blur 在四条边产生透明软边。 */
.elementor-element-b78ecec{
  --sw-about-blur:2px;
}
.elementor-element-b78ecec > .elementor-background-overlay{
  filter:blur(var(--sw-about-blur)) saturate(.97);
  transform:scale(1.03);
  transform-origin:center center;
}
@media(max-width:900px){
  .elementor-element-b78ecec{
    --sw-about-blur:2px;
  }
  .elementor-element-b78ecec > .elementor-background-overlay{
    transform:scale(1.02);
  }
}
/* --- SANDWORM-ABOUT-BG-BLUR END --- */
