/* ================= 未登录落地页 ================= */
html{scroll-behavior:smooth}
body.land{background:#F5F8FF;overflow-x:hidden}
#auth,#features,#models,#how{scroll-margin-top:78px}
.land-bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.land-bg .blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.55}
.land-bg .b1{width:540px;height:540px;left:-140px;top:-160px;background:radial-gradient(circle at 35% 35%,#8FB8FF,#2B6BFF 58%,rgba(43,107,255,0) 74%);animation:drift1 22s ease-in-out infinite alternate}
.land-bg .b2{width:480px;height:480px;right:-140px;top:20px;background:radial-gradient(circle at 60% 40%,#D3B8FF,#8B5CF6 58%,rgba(139,92,246,0) 74%);animation:drift2 27s ease-in-out infinite alternate}
.land-bg .b3{width:560px;height:560px;left:30%;bottom:-280px;background:radial-gradient(circle at 50% 50%,#A5EDF2,#22B8CF 55%,rgba(34,184,207,0) 74%);animation:drift3 31s ease-in-out infinite alternate}
@keyframes drift1{to{transform:translate3d(90px,70px,0) scale(1.14)}}
@keyframes drift2{to{transform:translate3d(-70px,90px,0) scale(1.1)}}
@keyframes drift3{to{transform:translate3d(60px,-80px,0) scale(1.16)}}
.land-bg .grid{position:absolute;inset:0;background-image:linear-gradient(rgba(43,107,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(43,107,255,.07) 1px,transparent 1px);background-size:54px 54px;-webkit-mask-image:radial-gradient(ellipse 90% 60% at 50% 0%,#000 0%,transparent 75%);mask-image:radial-gradient(ellipse 90% 60% at 50% 0%,#000 0%,transparent 75%)}
#fx{position:fixed;inset:0;z-index:1;pointer-events:none}
.land-wrap{position:relative;z-index:2}

/* 顶栏 */
.land-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;height:64px;
  padding-left:max(22px,env(safe-area-inset-left));padding-right:max(22px,env(safe-area-inset-right));
  background:rgba(255,255,255,.74);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(16,32,64,.06)}
.land-nav{display:flex;align-items:center;gap:2px;margin-left:12px}
.land-nav a{padding:7px 13px;border-radius:10px;color:var(--text2);font-size:13.5px;transition:.15s}
.land-nav a:hover{background:rgba(43,107,255,.07);color:var(--primary)}
.land-top-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.btn.lsm{height:36px;padding:0 16px;font-size:13.5px;border-radius:10px}

/* 主区 */
.land-main{max-width:1180px;margin:0 auto;padding:52px 24px 20px;display:grid;grid-template-columns:1.06fr .94fr;
  gap:56px;align-items:center;min-height:calc(100vh - 64px)}
.land-badge{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 13px;border-radius:999px;
  background:rgba(255,255,255,.85);border:1px solid rgba(43,107,255,.18);color:var(--primary);
  font-size:12.5px;font-weight:600;box-shadow:0 6px 18px rgba(43,107,255,.10)}
.land-h1{font-size:clamp(30px,4.4vw,52px);line-height:1.12;letter-spacing:-1.4px;margin:18px 0 0;font-weight:800}
.land-h1 .grad{background:linear-gradient(100deg,#1D4ED8,#6D28D9 40%,#0E7490 72%,#1D4ED8);
  background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:hue 9s linear infinite}
@keyframes hue{to{background-position:220% 0}}
.land-sub{margin:18px 0 0;font-size:15px;line-height:1.75;color:var(--text2);max-width:520px}
.land-sub b{color:var(--primary)}
.typer{margin-top:20px;display:flex;align-items:center;gap:3px;min-height:26px;font-size:14.5px;color:var(--text2);max-width:540px}
.typer .caret{width:2px;height:17px;background:var(--primary);border-radius:2px;animation:blink 1.05s steps(1) infinite;flex:0 0 auto}
@keyframes blink{50%{opacity:0}}
.land-cta{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}
.btn.lg{height:50px;padding:0 26px;border-radius:14px;font-size:15px}
.btn.pri.glow{box-shadow:0 12px 32px rgba(43,107,255,.36)}
.btn.pri.glow:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(43,107,255,.42)}
.land-stats{display:flex;gap:30px;margin-top:38px;flex-wrap:wrap}
.land-stats .n{font-size:23px;font-weight:800;letter-spacing:-.6px;color:var(--text)}
.land-stats .l{font-size:12px;color:var(--text3);margin-top:3px}

/* 登录卡片 */
.land-auth{position:relative}
.land-auth .login-card{width:100%;padding:30px 28px;border-radius:22px;border:1px solid rgba(255,255,255,.75);
  background:rgba(255,255,255,.9);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  box-shadow:0 30px 80px rgba(16,32,64,.16)}
.land-auth .login-card.flip{animation:cardin .34s cubic-bezier(.2,.7,.3,1)}
@keyframes cardin{from{transform:translateY(8px) scale(.994)}}
.auth-head{display:flex;align-items:center;gap:10px;margin-bottom:20px}
.auth-head .mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#2B6BFF,#6BA0FF);
  color:#fff;display:grid;place-items:center;box-shadow:0 6px 16px rgba(43,107,255,.3)}
.auth-head b{font-size:15px}
.auth-gift{margin-top:14px;font-size:12px;color:var(--text3);text-align:center}
.auth-gift b{color:var(--primary)}

/* 通用区块 */
.land-sec{max-width:1180px;margin:0 auto;padding:64px 24px}
.land-h2{font-size:clamp(22px,2.6vw,30px);letter-spacing:-.8px;margin:0 0 10px;font-weight:800;text-align:center}
.land-lead{margin:0 auto 34px;max-width:560px;text-align:center;color:var(--text2);font-size:14.5px;line-height:1.75}
.land-feats{display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));gap:16px}
.fcard{position:relative;background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;overflow:hidden;
  transition:transform .25s cubic-bezier(.2,.7,.3,1),box-shadow .25s,border-color .25s}
.fcard::before{content:"";position:absolute;inset:0;opacity:0;transition:opacity .28s;
  background:radial-gradient(320px circle at var(--mx,50%) var(--my,0%),rgba(43,107,255,.11),transparent 62%)}
.fcard:hover::before{opacity:1}
.fcard:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(16,32,64,.10);border-color:#DCE6FA}
.fcard .ico{position:relative;width:42px;height:42px;border-radius:13px;display:grid;place-items:center;color:#fff;
  background:linear-gradient(135deg,#2B6BFF,#6BA0FF);box-shadow:0 8px 20px rgba(43,107,255,.28);margin-bottom:14px}
.fcard h3{position:relative;margin:0 0 7px;font-size:15px;font-weight:700}
.fcard p{position:relative;margin:0;font-size:13px;line-height:1.72;color:var(--text2)}

/* 模型滚动条 */
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee .track{display:flex;gap:10px;width:max-content;animation:slide 26s linear infinite}
.marquee:hover .track{animation-play-state:paused}
@keyframes slide{to{transform:translateX(-50%)}}
.mchip{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 18px;border-radius:12px;white-space:nowrap;
  background:#fff;border:1px solid var(--line);color:var(--text2);font-size:13.5px;box-shadow:var(--shadow-sm)}
.mchip b{color:var(--primary);font-weight:600}

/* 三步 */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;counter-reset:st}
.step{position:relative;background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px 22px 22px 62px;box-shadow:var(--shadow-sm)}
.step::before{counter-increment:st;content:counter(st);position:absolute;left:20px;top:22px;width:28px;height:28px;border-radius:9px;
  display:grid;place-items:center;font-size:13px;font-weight:700;color:#fff;background:linear-gradient(135deg,#2B6BFF,#6BA0FF)}
.step h3{margin:0 0 6px;font-size:14.5px}
.step p{margin:0;font-size:13px;line-height:1.7;color:var(--text2)}

.land-foot{padding:34px 24px 44px;text-align:center;color:var(--text3);font-size:12.5px}
.land-foot a{color:var(--primary)}

/* 滚动显现：只有 JS 生效时才隐藏初始状态，避免脚本失败 / 关闭 JS 时整页空白 */
html.js .rv{opacity:0;transform:translateY(22px);transition:opacity .62s cubic-bezier(.2,.7,.3,1),transform .62s cubic-bezier(.2,.7,.3,1)}
html.js .rv.in{opacity:1;transform:none}

@media (max-width:900px){
  .land-main{grid-template-columns:1fr;gap:30px;padding:26px 16px 8px;min-height:0}
  .land-h1{font-size:29px;letter-spacing:-1px}
  .land-sub{font-size:14px}
  .typer{font-size:13.5px;min-height:40px;align-items:flex-start}
  .land-cta{gap:10px;margin-top:22px}
  .btn.lg{height:46px;padding:0 18px;font-size:14px;flex:1 1 auto}
  .land-stats{gap:20px;margin-top:26px}
  .land-stats .n{font-size:20px}
  .land-sec{padding:40px 16px}
  .land-top{height:56px;gap:8px;padding-left:14px;padding-right:14px}
  .land-nav{display:none}
  .land-top .brand{font-size:14.5px}
  .btn.lsm{height:32px;padding:0 12px;font-size:13px}
  .land-bg .blob{filter:blur(58px);opacity:.45}
  #fx{opacity:.5}
  .land-hero{position:relative}
  .land-hero::before{content:"";position:absolute;inset:-8px -4px;border-radius:26px;z-index:-1;
    background:radial-gradient(62% 54% at 32% 42%,rgba(255,255,255,.78),rgba(255,255,255,0) 72%)}
  .land-auth .login-card{padding:24px 20px;border-radius:18px}
  .step{padding:20px 20px 20px 58px}
}

@media (prefers-reduced-motion:reduce){
  .land-bg .blob,.land-h1 .grad,.marquee .track,.typer .caret{animation:none}
  .btn.pri.glow:hover,.fcard:hover{transform:none}
  html.js .rv{opacity:1;transform:none;transition:none}
  #fx{display:none}
}
