
/* Spoolery — 和 App 同一套语义色 */
:root{
  --bg:#F3F3F1; --card:#FFFFFF; --fill:#ECECEA; --ink:#1A1C1E;
  --dim:#6B6F73; --rule:#E4E4E0; --gold:#E8C878; --gold-deep:#C9A85E;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC",
    "Hiragino Sans GB","Segoe UI",Roboto,sans-serif;
  line-height:1.65; font-size:16.5px; -webkit-font-smoothing:antialiased;
}
a{color:inherit}
img{max-width:100%; display:block}
.wrap{max-width:1020px; margin:0 auto; padding:0 24px}

/* ── 导航 ── */
header.site{
  position:sticky; top:0; z-index:50;
  background:color-mix(in srgb, var(--bg) 84%, transparent);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid color-mix(in srgb, var(--rule) 60%, transparent);
}
.nav{display:flex; align-items:center; gap:26px; height:60px}
.nav .logo img{height:24px; width:auto}
.nav nav{display:flex; gap:22px; margin-left:auto; align-items:center; flex-wrap:wrap}
.nav nav a{font-size:14.5px; text-decoration:none; color:var(--dim)}
.nav nav a:hover{color:var(--ink)}
.nav .lang{
  font-size:13px; padding:5px 12px; border:1px solid var(--rule);
  border-radius:99px; color:var(--ink); text-decoration:none; background:var(--card);
}

/* ── Hero ── */
.hero{padding:72px 0 30px; text-align:center}
.hero h1{
  font-size:clamp(30px,5.4vw,52px); line-height:1.18; letter-spacing:-.02em;
  margin:0 auto 18px; max-width:17em; font-weight:800; text-wrap:balance;
}
.hero .sub{
  font-size:clamp(16px,2.2vw,19px); color:var(--dim);
  max-width:34em; margin:0 auto 30px; text-wrap:balance;
}
.cta{display:flex; gap:14px; justify-content:center; align-items:center; flex-wrap:wrap}
.btn{
  display:inline-flex; align-items:center; gap:8px; text-decoration:none;
  font-weight:600; font-size:16px; padding:13px 26px; border-radius:99px;
}
.btn.primary{background:var(--ink); color:var(--bg)}
.btn.primary:hover{transform:translateY(-1px); box-shadow:0 10px 24px rgb(0 0 0 / .16)}
.btn.ghost{border:1px solid var(--rule); background:var(--card); color:var(--ink)}
.btn{transition:transform .18s, box-shadow .18s}
.soon{font-size:12.5px; color:var(--dim); margin-top:10px}

/* ── Hero 场景：料架 + 转动高光的耗材环 ── */
.scene{position:relative; max-width:660px; margin:54px auto 0; padding-bottom:26px}
.ring{
  --size:150px; width:var(--size); height:var(--size); margin:0 auto 40px;
  border-radius:50%; position:relative;
  background:
    radial-gradient(closest-side, var(--bg) 33%, transparent 34% 100%),
    conic-gradient(#2E3033 0 100%);
  box-shadow:inset 0 0 0 1px rgb(0 0 0 / .05);
  animation:bob 3.2s ease-in-out infinite alternate;
}
.ring::before{ /* 陀螺仪高光：绕圈扫过 */
  content:""; position:absolute; inset:0; border-radius:50%;
  background:
    radial-gradient(closest-side, transparent 33%, transparent 34%),
    conic-gradient(from 0deg, transparent 0 40deg, rgb(255 255 255 / .5) 60deg,
                   transparent 85deg 360deg);
  -webkit-mask:radial-gradient(closest-side, transparent 52%, #000 54% 98%, transparent 100%);
          mask:radial-gradient(closest-side, transparent 52%, #000 54% 98%, transparent 100%);
  animation:sweep 7s linear infinite;
}
.ring::after{ /* 轴心 */
  content:""; position:absolute; inset:38%; border-radius:50%;
  background:var(--fill); box-shadow:inset 0 0 0 1px rgb(0 0 0 / .05);
}
@keyframes sweep{to{transform:rotate(360deg)}}
@keyframes bob{from{transform:translateY(-4px)}to{transform:translateY(4px)}}

.shelf{position:relative; height:190px}
.board{
  position:absolute; left:2%; right:2%; bottom:12px; height:30px;
  background:rgb(0 0 0 / .055);
  clip-path:polygon(4.5% 0, 95.5% 0, 98.6% 100%, 1.4% 100%);
  filter:drop-shadow(0 4px 4px rgb(0 0 0 / .07));
}
.slab{
  --c1:#2E3033; --c2:var(--c1);
  position:absolute; bottom:26px; width:64px; height:118px;
  background:linear-gradient(180deg, var(--c1), var(--c2));
  border:1px solid rgb(0 0 0 / .1); border-radius:2px;
  animation:bob 3.6s ease-in-out infinite alternate;
}
.slab::before,.slab::after{ /* 卷盘边 */
  content:""; position:absolute; top:-7px; bottom:-7px; width:5px;
  border-radius:99px; background:#CFCFCB;
}
.slab::before{left:-10px}
.slab::after{right:-10px}
.slab i{ /* 受光带 */
  position:absolute; inset:8% 0 auto; height:42%;
  background:linear-gradient(180deg, transparent, rgb(255 255 255 / .2), transparent);
}
.s1{left:calc(50% - 176px); animation-delay:.2s}
.s2{left:calc(50% - 88px); --c1:#F0C05A; animation-delay:.6s}
.s3{left:calc(50% + 0px);  --c1:#7CA9E6; --c2:#C6DCF5; animation-delay:.35s}
.s4{left:calc(50% + 88px); --c1:#ED7B6C; --c2:#7CA9E6;
    background:linear-gradient(180deg,#ED7B6C,#F0C05A,#93CDA6,#7CA9E6); animation-delay:.8s}

/* ── 通用 section ── */
section{padding:64px 0}
.kicker{
  font-size:12.5px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--gold-deep); font-weight:700; margin:0 0 10px;
}
h2{font-size:clamp(24px,3.6vw,34px); letter-spacing:-.015em; margin:0 0 14px; text-wrap:balance}
.lead{color:var(--dim); max-width:36em; margin:0 0 34px}

/* 功能卡 */
.grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px}
.card{
  background:var(--card); border:1px solid var(--rule); border-radius:20px;
  padding:26px 24px;
}
.card h3{margin:14px 0 8px; font-size:18.5px}
.card p{margin:0; font-size:15px; color:var(--dim)}
.glyph{
  width:52px; height:52px; border-radius:16px; background:var(--fill);
  display:grid; place-items:center; font-size:24px;
}

/* 贴纸 + 光晕（八角） */
.seal{
  --s:56px; width:var(--s); height:var(--s); position:relative;
  background:#ED7B6C;
  clip-path:polygon(50% 0,63% 9%,79% 6%,86% 21%,100% 27%,97% 43%,
    106% 50%,97% 57%,100% 73%,86% 79%,79% 94%,63% 91%,50% 100%,
    37% 91%,21% 94%,14% 79%,0 73%,3% 57%,-6% 50%,3% 43%,0 27%,14% 21%,21% 6%,37% 9%);
}
.halo{position:relative; width:52px; height:52px; display:grid; place-items:center}
.halo::before,.halo::after{
  content:""; position:absolute; inset:-6px; border-radius:50%;
  border:2px solid var(--gold); opacity:0;
  animation:pulse 3.4s ease-out infinite;
}
.halo::after{animation-delay:.25s}
@keyframes pulse{
  0%,55%{transform:scale(.7); opacity:0}
  63%{opacity:.75}
  88%,100%{transform:scale(1.55); opacity:0}
}
.spark{position:absolute; color:var(--gold); font-size:13px; opacity:0;
  animation:twinkle 3.4s ease-in-out infinite}
.spark.a{top:-12px; right:-8px; animation-delay:.5s}
.spark.b{bottom:-8px; left:-12px; font-size:10px; animation-delay:.9s}
@keyframes twinkle{0%,58%{opacity:0; transform:scale(.4)}
  68%{opacity:1; transform:scale(1.1)} 85%,100%{opacity:0; transform:scale(.6)}}

/* 步骤 */
.steps{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:16px; counter-reset:step}
.step{background:var(--card); border:1px solid var(--rule); border-radius:20px; padding:26px 24px}
.step::before{
  counter-increment:step; content:counter(step);
  display:grid; place-items:center; width:34px; height:34px; border-radius:50%;
  background:var(--ink); color:var(--bg); font-weight:700; font-size:15px; margin-bottom:14px;
}
.step h3{margin:0 0 8px; font-size:17.5px}
.step p{margin:0; font-size:15px; color:var(--dim)}

/* 隐私横幅 */
.privacy-band{
  background:var(--ink); color:var(--bg); border-radius:26px;
  padding:44px 40px; display:flex; gap:30px; align-items:center; flex-wrap:wrap;
}
.privacy-band h2{color:var(--bg); margin-bottom:8px}
.privacy-band p{color:color-mix(in srgb, var(--bg) 72%, transparent); margin:0; max-width:34em}
.privacy-band a{color:var(--gold); font-weight:600}
.privacy-band .lock{font-size:44px}

/* 定价 */
.plans{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px; max-width:720px}
.plan{background:var(--card); border:1px solid var(--rule); border-radius:22px; padding:30px 28px}
.plan.featured{border-color:var(--ink); box-shadow:0 14px 34px rgb(0 0 0 / .08)}
.plan .name{font-size:14px; font-weight:700; letter-spacing:.05em; color:var(--dim); text-transform:uppercase}
.plan .price{font-size:38px; font-weight:800; margin:10px 0 2px; letter-spacing:-.02em}
.plan .price s{font-size:20px; color:var(--dim); font-weight:500; margin-left:8px}
.plan .per{font-size:13.5px; color:var(--dim); margin-bottom:18px}
.plan ul{list-style:none; padding:0; margin:0; font-size:15px; display:grid; gap:9px}
.plan li::before{content:"✓  "; font-weight:700}
.badge-launch{
  display:inline-block; font-size:12px; font-weight:700; padding:3px 10px;
  border-radius:99px; background:color-mix(in srgb, var(--gold) 30%, transparent);
  color:var(--gold-deep); margin-left:8px; vertical-align:middle;
}
.no-sub{margin-top:16px; font-size:14px; font-weight:600}

/* FAQ */
.faq details{
  background:var(--card); border:1px solid var(--rule); border-radius:16px;
  padding:4px 22px; margin-bottom:10px;
}
.faq summary{
  cursor:pointer; font-weight:600; font-size:16px; padding:14px 0;
  list-style:none; display:flex; justify-content:space-between; align-items:center;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+"; font-size:20px; color:var(--dim); transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0 0 18px; color:var(--dim); font-size:15px}

/* 技术小字 */
.tech{font-size:13.5px; color:var(--dim); text-align:center}

/* 页脚 */
footer.site{border-top:1px solid var(--rule); padding:40px 0 56px; margin-top:30px}
.foot{display:flex; gap:26px; flex-wrap:wrap; align-items:center; font-size:14px; color:var(--dim)}
.foot a{color:var(--dim); text-decoration:none}
.foot a:hover{color:var(--ink)}
.foot .cr{margin-left:auto}

/* 法务页 */
.doc{max-width:720px; margin:0 auto; padding:56px 24px 90px}
.doc h1{font-size:32px; letter-spacing:-.02em}
.doc h2{font-size:21px; margin-top:40px}
.doc p,.doc li{color:#3a3d40; font-size:15.5px}
.doc .updated{color:var(--dim); font-size:14px}
.doc .tldr{
  background:var(--card); border:1px solid var(--rule); border-radius:16px;
  padding:18px 22px; margin:26px 0;
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none !important; transition:none !important}
}
@media (max-width:560px){
  .nav nav{gap:14px}
  .privacy-band{padding:34px 26px}
}
