/* 新新桌宠 · 站点样式 */
:root{
  --ink:#16233d; --ink-2:#3d4f6b; --muted:#7c8da8;
  --blue:#3f74e0; --blue-d:#2b57c4; --blue-l:#7fa9ff; --sky:#dceaff;
  --bg:#f6faff; --card:#fff; --line:#e4eefb; --line-2:#d3e2f8;
  --gold:#f2b64c; --mint:#41c7b5; --danger:#e0503f;
  --shadow-sm:0 4px 14px rgba(38,70,140,.06);
  --shadow:0 18px 44px -18px rgba(33,66,140,.28);
  --shadow-lg:0 40px 80px -32px rgba(28,58,130,.38);
  --radius:26px; --radius-sm:16px;
  --nav-h:74px;
  --font:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei UI","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",sans-serif;
  --ease:cubic-bezier(.22,.68,.32,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 16px)}
body{
  margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
body.lock{overflow:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}
h1,h2,h3,h4,p,dl,dd,dt,figure,ol,ul{margin:0;padding:0}
ul,ol{list-style:none}
em{font-style:normal}
:focus-visible{outline:2.5px solid var(--blue-l);outline-offset:3px;border-radius:8px}
::selection{background:#cfe1ff;color:#12203a}
.wrap{width:min(1200px,100% - 48px);margin-inline:auto}
.hidden{display:none !important}
[hidden]{display:none !important}

/* ---------- 背景气泡 ---------- */
.bubbles{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.bubble{position:absolute;border-radius:50%;background:radial-gradient(circle at 30% 28%,rgba(255,255,255,.95),rgba(186,216,255,.35) 45%,rgba(150,190,255,.12) 70%);box-shadow:inset 0 0 18px rgba(255,255,255,.7),0 6px 20px rgba(120,170,240,.18);animation:floaty linear infinite;opacity:.7}
.b1{width:34px;height:34px;left:6%;bottom:-60px;animation-duration:26s}
.b2{width:16px;height:16px;left:18%;bottom:-40px;animation-duration:19s;animation-delay:-8s}
.b3{width:56px;height:56px;left:82%;bottom:-80px;animation-duration:34s;animation-delay:-4s;opacity:.5}
.b4{width:22px;height:22px;left:68%;bottom:-40px;animation-duration:23s;animation-delay:-14s}
.b5{width:12px;height:12px;left:40%;bottom:-30px;animation-duration:17s;animation-delay:-6s}
.b6{width:44px;height:44px;left:92%;bottom:-60px;animation-duration:30s;animation-delay:-20s;opacity:.45}
@keyframes floaty{0%{transform:translateY(0) translateX(0);opacity:0}12%{opacity:.75}100%{transform:translateY(-118vh) translateX(26px);opacity:0}}

/* ---------- 按钮 ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 20px;border-radius:999px;font-size:14.5px;font-weight:600;letter-spacing:.2px;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s,color .25s,border-color .25s;white-space:nowrap;border:1px solid transparent}
.btn:active{transform:translateY(1px) scale(.99)}
.btn-primary{background:linear-gradient(135deg,#5b8dff,#2f5fd8);color:#fff;box-shadow:0 12px 26px -12px rgba(47,95,216,.8)}
.btn-primary:hover{box-shadow:0 18px 34px -14px rgba(47,95,216,.9);transform:translateY(-1px)}
.btn-ghost{background:rgba(255,255,255,.7);color:var(--ink-2);border-color:var(--line-2)}
.btn-ghost:hover{background:#fff;border-color:#bcd3f5;color:var(--ink)}
.btn-glass{background:rgba(255,255,255,.62);color:var(--blue-d);border:1px solid rgba(255,255,255,.9);box-shadow:0 10px 30px -18px rgba(40,80,180,.5);backdrop-filter:blur(12px)}
.btn-glass:hover{background:#fff}
.btn-white{background:#fff;color:var(--blue-d);box-shadow:0 16px 34px -16px rgba(0,20,60,.5)}
.btn-outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.btn-outline-light:hover{background:rgba(255,255,255,.12)}
.btn-sm{height:38px;padding:0 18px;font-size:14px}
.btn-lg{height:54px;padding:0 28px;font-size:15.5px}
.btn.block{width:100%}
.btn[disabled]{opacity:.6;pointer-events:none}
.linklike{color:var(--blue);font-size:13.5px;font-weight:600;padding:0}
.linklike:hover{text-decoration:underline}
.link-arrow{display:inline-flex;align-items:center;gap:8px;color:var(--blue);font-weight:600;font-size:15px}
.link-arrow svg{transition:transform .25s var(--ease)}
.link-arrow:hover svg{transform:translateX(4px)}

/* ---------- 导航 ---------- */
.nav{position:sticky;top:0;z-index:60;height:var(--nav-h);display:flex;align-items:center;transition:background .3s,box-shadow .3s,border-color .3s;border-bottom:1px solid transparent}
.nav.scrolled{background:rgba(247,251,255,.82);backdrop-filter:blur(18px) saturate(160%);border-bottom-color:rgba(210,226,248,.8);box-shadow:0 10px 30px -24px rgba(30,60,120,.5)}
.nav-inner{width:min(1240px,100% - 40px);margin-inline:auto;display:flex;align-items:center;gap:20px}
.brand{display:flex;align-items:center;gap:10px;flex-shrink:0}
.brand-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(150deg,#eaf3ff,#d3e6ff);box-shadow:inset 0 0 0 1px rgba(255,255,255,.8),0 6px 16px -10px rgba(50,90,180,.5)}
.brand-mark svg{width:27px;height:27px}
.brand-mark.small{width:36px;height:36px;color:#3f74e0}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-text strong{font-size:17px;letter-spacing:.5px}
.brand-text small{font-size:9.5px;letter-spacing:2.4px;color:var(--muted);margin-top:3px}
.nav-links{display:flex;gap:4px;margin-inline:auto}
.nav-links a{position:relative;font-size:14.5px;font-weight:500;color:var(--ink-2);padding:9px 14px;border-radius:10px;transition:color .2s,background .2s}
.nav-links a:hover{color:var(--blue-d);background:rgba(219,234,255,.55)}
.nav-links a.on{color:var(--blue-d);font-weight:600}
.nav-links a.on::after{content:"";position:absolute;left:14px;right:14px;bottom:2px;height:2px;border-radius:2px;background:linear-gradient(90deg,#7fb4ff,#3f74e0)}
.nav-actions{display:flex;align-items:center;gap:10px}
.user-chip{display:flex;align-items:center;gap:9px;padding:5px 12px 5px 5px;border-radius:999px;background:rgba(255,255,255,.85);border:1px solid var(--line-2);box-shadow:var(--shadow-sm);transition:.25s var(--ease)}
.user-chip:hover{background:#fff;border-color:#b9d2f6;transform:translateY(-1px)}
.user-chip-avatar{width:32px;height:32px;border-radius:50%;overflow:hidden;background:#dbe9ff;flex-shrink:0}
.user-chip-avatar img{width:100%;height:100%;object-fit:cover}
.user-chip-meta{display:flex;flex-direction:column;line-height:1.15;text-align:left}
.user-chip-meta strong{font-size:13px;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-chip-meta em{font-size:11px;color:var(--blue);font-weight:600;margin-top:1px}
.user-chip .chev{color:var(--muted)}
.nav-burger{display:none;width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.8);border:1px solid var(--line-2);position:relative}
.nav-burger span{position:absolute;left:11px;right:11px;height:2px;background:var(--ink-2);border-radius:2px;transition:.25s}
.nav-burger span:nth-child(1){top:14px}.nav-burger span:nth-child(2){top:19px}.nav-burger span:nth-child(3){top:24px}
.nav-burger[aria-expanded="true"] span:nth-child(1){top:19px;transform:rotate(45deg)}
.nav-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-burger[aria-expanded="true"] span:nth-child(3){top:19px;transform:rotate(-45deg)}

/* ---------- Hero ---------- */
.hero{position:relative;padding:clamp(20px,4vw,48px) 0 0;overflow:hidden;background:
  radial-gradient(900px 520px at 78% 8%,#e8f2ff 0%,rgba(232,242,255,0) 62%),
  radial-gradient(700px 480px at 8% 22%,#eef6ff 0%,rgba(238,246,255,0) 60%),
  linear-gradient(180deg,#eaf4ff 0%,#f6faff 64%,#f6faff 100%)}
.hero-glow{position:absolute;width:760px;height:760px;right:-140px;top:-180px;border-radius:50%;background:radial-gradient(circle,rgba(160,201,255,.5),rgba(160,201,255,0) 62%);filter:blur(10px);z-index:0}
.hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:1.04fr .96fr;gap:32px;align-items:center;padding-bottom:clamp(28px,5vw,56px)}
.hero-copy{max-width:580px}
.pill{display:inline-flex;align-items:center;gap:9px;height:38px;padding:0 8px 0 12px;border-radius:999px;background:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.95);box-shadow:0 10px 26px -20px rgba(40,80,160,.8);font-size:12.5px;color:var(--ink-2);font-weight:500;backdrop-filter:blur(10px);transition:.25s}
.pill:hover{background:#fff;transform:translateY(-1px)}
.pill .dot{width:7px;height:7px;border-radius:50%;background:#39c07a;box-shadow:0 0 0 4px rgba(57,192,122,.16)}
.pill-sep{width:1px;height:12px;background:var(--line-2)}
.hero h1{font-size:clamp(40px,5.6vw,68px);line-height:1.08;letter-spacing:-1.5px;font-weight:800;margin:22px 0 0}
.hero h1 .grad{background:linear-gradient(100deg,#2f5fd8 0%,#5b8dff 40%,#41c7b5 100%);-webkit-background-clip:text;background-clip:text;color:transparent;position:relative}
.lead{font-size:clamp(15px,1.25vw,17px);line-height:1.85;color:var(--ink-2);margin-top:22px;max-width:520px}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.hero-stats{display:flex;gap:clamp(18px,3vw,44px);margin-top:40px;flex-wrap:wrap}
.hero-stats div{position:relative}
.hero-stats div+div::before{content:"";position:absolute;left:calc(-1 * clamp(9px,1.5vw,22px));top:6px;bottom:4px;width:1px;background:var(--line-2)}
.hero-stats dt{font-size:12px;color:var(--muted);letter-spacing:.4px}
.hero-stats dd{font-size:clamp(22px,2.2vw,28px);font-weight:800;margin-top:5px;letter-spacing:-.5px;font-variant-numeric:tabular-nums}
.hero-visual{position:relative;display:grid;place-items:center;min-height:clamp(500px,calc(66vh + 56px),740px)}
.halo{position:absolute;width:88%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.92) 0%,rgba(214,233,255,.72) 42%,rgba(198,222,255,0) 68%);filter:blur(6px)}
.ring{position:absolute;border-radius:50%;border:1px dashed rgba(120,165,235,.35);animation:spin 46s linear infinite}
.ring-a{width:76%;aspect-ratio:1}
.ring-b{width:94%;aspect-ratio:1;border-style:solid;border-color:rgba(140,180,240,.14);animation-direction:reverse;animation-duration:64s}
@keyframes spin{to{transform:rotate(360deg)}}
.hero-figure{position:relative;height:clamp(460px,66vh,680px);border-radius:34px;overflow:hidden;background:#dbeaff;box-shadow:0 46px 90px -40px rgba(28,62,140,.55),0 0 0 1px rgba(255,255,255,.9) inset;transform:rotate(-2deg);animation:bob 7s ease-in-out infinite}
.hero-figure::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 60px rgba(255,255,255,.35);pointer-events:none;border-radius:inherit}
.hero-figure img{height:100%;width:auto;object-fit:cover}
@keyframes bob{0%,100%{transform:rotate(-2deg) translateY(0)}50%{transform:rotate(-2deg) translateY(-14px)}}
.float-card{position:absolute;display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:18px;background:rgba(255,255,255,.86);border:1px solid rgba(255,255,255,.95);box-shadow:0 22px 44px -24px rgba(30,64,130,.55);backdrop-filter:blur(14px);font-size:12px;animation:bob2 6s ease-in-out infinite}
.fc-level{right:-2%;top:-3%;width:236px;display:block;animation-delay:-1s}
.fc-checkin{left:-4%;top:23%;animation-delay:-2.4s}
.fc-dl{right:-5%;bottom:13%;animation-delay:-3.6s}
@keyframes bob2{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.fc-top{display:flex;align-items:center;gap:9px}
.fc-avatar{width:34px;height:34px;border-radius:50%;overflow:hidden;background:#dbe9ff;flex-shrink:0}
.fc-avatar img{width:100%;height:100%;object-fit:cover}
.fc-top b{display:block;font-size:13px}
.fc-top em{font-size:11px;color:var(--blue);font-weight:600}
.fc-bar{height:7px;border-radius:6px;background:#e6efff;margin:11px 0 7px;overflow:hidden}
.fc-bar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#8fc0ff,#3f74e0)}
.fc-foot{display:flex;justify-content:space-between;font-size:10.5px;color:var(--muted)}
.fc-foot .up{color:#2fa36b;font-weight:700}
.fc-ico{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#e4f7ee;color:#22996a;flex-shrink:0}
.fc-ico.blue{background:#e6efff;color:var(--blue)}
.float-card b{display:block;font-size:12.5px}
.float-card em{font-size:10.5px;color:var(--muted)}
.hero-marquee{margin-top:8px;border-top:1px solid rgba(210,228,250,.9);border-bottom:1px solid rgba(210,228,250,.9);padding:14px 0;overflow:hidden;background:rgba(255,255,255,.5)}
.marquee-track{display:flex;align-items:center;gap:22px;width:max-content;animation:marquee 32s linear infinite;font-size:13px;letter-spacing:3px;color:#8fa3c1;text-transform:uppercase}
.marquee-track i{width:5px;height:5px;border-radius:50%;background:#c3d7f2;flex-shrink:0}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- 通用章节 ---------- */
.section{position:relative;padding:clamp(64px,8vw,110px) 0;z-index:1}
.section-tint{background:linear-gradient(180deg,#f6faff,#eef6ff 45%,#f6faff)}
.section-navy{background:
  radial-gradient(900px 400px at 80% 0%,rgba(70,122,220,.4),transparent 60%),
  radial-gradient(700px 500px at 10% 100%,rgba(65,199,181,.16),transparent 60%),
  linear-gradient(160deg,#0f1c33,#132743 55%,#0e1a2e);color:#eaf2ff}
.sec-head{max-width:720px;margin-bottom:clamp(32px,4vw,52px)}
.sec-head.light h2{color:#fff}
.sec-head.light p{color:#a9bddc}
.eyebrow{display:inline-block;font-size:11px;letter-spacing:4px;font-weight:700;color:var(--blue);margin-bottom:14px}
.sec-head.light .eyebrow{color:#7fb4ff}
.sec-head h2{font-size:clamp(26px,3.4vw,42px);line-height:1.24;letter-spacing:-.8px;font-weight:800}
.sec-head p{margin-top:14px;color:var(--ink-2);font-size:15.5px;line-height:1.8}
.sec-head.light p{color:#9fb4d4}

/* ---------- 功能卡片 ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.card{background:var(--card);border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-sm);transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s}
.card:hover{transform:translateY(-8px);box-shadow:var(--shadow);border-color:#cfe0f8}
.card-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:#e8f1ff}
.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.card:hover .card-media img{transform:scale(1.045)}
.card-tag{position:absolute;left:14px;top:14px;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.88);backdrop-filter:blur(8px);font-size:11.5px;font-weight:700;letter-spacing:.5px;color:var(--blue-d);border:1px solid rgba(255,255,255,.9)}
.card-body{padding:24px 24px 26px}
.card-body h3{font-size:19px;letter-spacing:-.3px;font-weight:700}
.card-body p{margin-top:10px;color:var(--ink-2);font-size:14px;line-height:1.8}
.ticks{margin-top:16px;display:grid;gap:8px}
.ticks li{position:relative;padding-left:23px;font-size:13.5px;color:var(--ink-2)}
.ticks li::before{content:"";position:absolute;left:0;top:6px;width:13px;height:8px;border-left:2px solid #34b98a;border-bottom:2px solid #34b98a;transform:rotate(-45deg);border-radius:1px}

/* ---------- 桌面展示 ---------- */
.showcase{display:grid;grid-template-columns:1fr 1.06fr;gap:clamp(28px,4vw,64px);align-items:center}
.showcase-copy h2{font-size:clamp(26px,3.2vw,40px);line-height:1.24;letter-spacing:-.8px;font-weight:800;margin-top:6px}
.showcase-copy p{margin-top:16px;color:var(--ink-2);font-size:15px;line-height:1.85}
.mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:26px 0 24px}
.mini{background:rgba(255,255,255,.8);border:1px solid var(--line);border-radius:16px;padding:14px 12px;text-align:center;box-shadow:var(--shadow-sm)}
.mini b{display:block;font-size:19px;letter-spacing:-.5px}
.mini span{font-size:11.5px;color:var(--muted)}
.showcase-shot{position:relative}
.shot-frame{border-radius:20px;overflow:hidden;background:#0f1c33;box-shadow:var(--shadow-lg);border:1px solid rgba(255,255,255,.5)}
.shot-bar{display:flex;align-items:center;gap:6px;padding:10px 14px;background:#152439}
.shot-bar span{width:10px;height:10px;border-radius:50%}
.shot-bar span:nth-child(1){background:#ff6b5e}.shot-bar span:nth-child(2){background:#ffc14d}.shot-bar span:nth-child(3){background:#4ad07a}
.shot-bar em{margin-left:auto;font-size:11px;color:#7f93b4;letter-spacing:1px}
.shot-frame img{width:100%;height:auto}
.shot-note{display:flex;align-items:center;gap:7px;margin-top:14px;font-size:12px;color:var(--muted)}

/* ---------- 等级 ---------- */
.levels{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(24px,4vw,56px);align-items:start}
.level-demo{background:linear-gradient(160deg,#fff,#f2f8ff);border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow)}
.lv-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.lv-badge{background:linear-gradient(135deg,#5b8dff,#2f5fd8);color:#fff;font-weight:800;font-size:14px;padding:6px 13px;border-radius:999px;box-shadow:0 10px 20px -12px rgba(47,95,216,.9)}
.lv-title{font-size:20px;font-weight:800;letter-spacing:-.3px}
.lv-exp{margin-left:auto;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.lv-bar{position:relative;height:14px;border-radius:10px;background:#e4eeff;margin:18px 0 9px;overflow:hidden;box-shadow:inset 0 1px 3px rgba(40,80,160,.12)}
.lv-bar i{display:block;height:100%;border-radius:10px;background:linear-gradient(90deg,#8fc0ff,#3f74e0 60%,#2f5fd8);transition:width .8s var(--ease);position:relative}
.lv-bar i::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:shine 2.6s linear infinite}
@keyframes shine{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
.lv-spark{position:absolute;right:8px;top:50%;width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 12px #fff;transform:translateY(-50%)}
.lv-foot{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}
.lv-pct{font-weight:700;color:var(--blue)}
.lv-actions{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}
.lv-actions .btn{height:40px;font-size:13.5px}
.ladder{display:grid;gap:8px}
.ladder li{display:grid;grid-template-columns:16px 46px 1fr auto;align-items:center;gap:12px;padding:11px 16px;border-radius:14px;background:rgba(255,255,255,.62);border:1px solid transparent;transition:.3s var(--ease)}
.ladder li .dot{width:8px;height:8px;border-radius:50%;background:#c9dbf5;justify-self:center}
.ladder li b{font-size:12.5px;color:var(--muted);font-weight:700;font-variant-numeric:tabular-nums}
.ladder li em{font-size:14.5px;font-weight:600;color:var(--ink-2)}
.ladder li i{font-size:11.5px;color:#a8b8cf;font-variant-numeric:tabular-nums}
.ladder li.done{background:rgba(230,241,255,.8)}
.ladder li.done .dot{background:#7fa9ff}
.ladder li.current{background:linear-gradient(120deg,#eaf3ff,#fff);border-color:#b9d4fb;box-shadow:0 14px 30px -22px rgba(47,95,216,.9)}
.ladder li.current .dot{background:var(--blue);box-shadow:0 0 0 4px rgba(63,116,224,.18)}
.ladder li.current em{color:var(--blue-d);font-weight:800}
.ladder li.current i{color:var(--blue)}
.exp-rules{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:34px}
.rule{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 16px;box-shadow:var(--shadow-sm);font-size:13px}
.rule b{font-weight:600}
.rule em{margin-left:auto;color:#2fa36b;font-weight:800;font-size:13px}
.r-ico{font-size:16px}

/* ---------- 下载 ---------- */
.dl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.dl-grid > .dl-card{max-width:560px}
@media (min-width:760px){.dl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dl-grid > .dl-card{max-width:none}}
.dl-card{position:relative;border-radius:24px;padding:26px;background:linear-gradient(160deg,rgba(255,255,255,.11),rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(12px);transition:.35s var(--ease);overflow:hidden}
.dl-card:hover{transform:translateY(-6px);border-color:rgba(140,185,255,.5);background:linear-gradient(160deg,rgba(255,255,255,.16),rgba(255,255,255,.06))}
.dl-card.dl-soon{opacity:.72;border-style:dashed}
.dl-card.dl-soon:hover{transform:none;border-color:rgba(255,255,255,.14);background:linear-gradient(160deg,rgba(255,255,255,.11),rgba(255,255,255,.04))}
.dl-badge.soon{background:rgba(140,180,255,.14);color:#a9c6ff;border-color:rgba(140,180,255,.32)}
.dl-card::before{content:"";position:absolute;right:-60px;top:-60px;width:190px;height:190px;border-radius:50%;background:radial-gradient(circle,rgba(110,165,255,.35),transparent 68%)}
.dl-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;position:relative}
.dl-ico{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);color:#cfe3ff}
.dl-ico svg{width:24px;height:24px}
.dl-badge{font-size:11px;padding:5px 11px;border-radius:999px;background:rgba(240,182,76,.18);color:#ffd48a;border:1px solid rgba(240,182,76,.35);font-weight:700;letter-spacing:.5px}
.dl-card h3{font-size:20px;margin-top:18px;letter-spacing:-.3px;color:#fff}
.dl-card .dl-sub{font-size:13px;color:#9fb4d4;margin-top:6px;line-height:1.7}
.dl-meta{display:flex;gap:16px;margin:16px 0 20px;font-size:12px;color:#8ea6c8;flex-wrap:wrap}
.dl-meta b{color:#d8e6ff;font-weight:600}
.dl-actions{display:flex;gap:10px;flex-wrap:wrap}
.dl-actions .btn-primary{background:linear-gradient(135deg,#79aaff,#3f74e0);box-shadow:0 14px 30px -16px rgba(60,120,240,.9)}
.dl-actions .btn-ghost{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);color:#dbe8ff}
.dl-actions .btn-ghost:hover{background:rgba(255,255,255,.16);color:#fff}
.dl-hash{margin-top:16px;font-size:10.5px;color:#6f86a8;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.7}
.dl-count{font-size:11px;color:#7f96b8;margin-top:8px}
.dl-skeleton{height:250px;border-radius:24px;background:linear-gradient(100deg,rgba(255,255,255,.05) 30%,rgba(255,255,255,.11) 50%,rgba(255,255,255,.05) 70%);background-size:200% 100%;animation:sk 1.4s linear infinite}
@keyframes sk{to{background-position:-200% 0}}
.dl-note{display:flex;align-items:center;gap:8px;margin-top:26px;font-size:13px;color:#8ea6c8;flex-wrap:wrap}
.dl-note a{color:#9cc4ff;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.dl-note .sep{opacity:.5}

/* ---------- FAQ ---------- */
.faq-wrap{max-width:920px}
.faq{display:grid;gap:10px}
.qa{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;transition:.3s var(--ease)}
.qa[open]{border-color:#c8dcf8;box-shadow:var(--shadow-sm)}
.qa summary{list-style:none;cursor:pointer;padding:19px 22px;font-size:15.5px;font-weight:600;display:flex;align-items:center;gap:12px;position:relative}
.qa summary::-webkit-details-marker{display:none}
.qa summary::before{content:"";width:8px;height:8px;border-right:2px solid var(--blue);border-bottom:2px solid var(--blue);transform:rotate(45deg);transition:.3s var(--ease);flex-shrink:0}
.qa[open] summary::before{transform:rotate(225deg)}
.qa p{padding:0 22px 20px 42px;color:var(--ink-2);font-size:14px;line-height:1.85}

/* ---------- CTA ---------- */
.cta-band{position:relative;padding:clamp(48px,6vw,76px) 0;background:linear-gradient(120deg,#2f5fd8,#4f86ec 45%,#41c7b5);color:#fff;overflow:hidden}
.cta-band::after{content:"";position:absolute;inset:0;background:radial-gradient(600px 300px at 85% 20%,rgba(255,255,255,.22),transparent 65%)}
.cta-inner{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:26px;flex-wrap:wrap}
.cta-inner h2{font-size:clamp(24px,3vw,36px);letter-spacing:-.6px;font-weight:800}
.cta-inner p{margin-top:10px;color:rgba(255,255,255,.82);font-size:14.5px}
.cta-actions{display:flex;gap:12px;flex-wrap:wrap}

/* ---------- 页脚 ---------- */
.footer{background:#0d1728;color:#8ea3c2;padding:46px 0 40px}
.footer-inner{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.footer-brand{display:flex;align-items:center;gap:11px;color:#dbe8ff}
.footer-brand strong{font-size:15px;color:#fff}
.footer-brand p{font-size:12px;margin-top:3px}
.footer-links{display:flex;gap:18px;margin-left:auto;flex-wrap:wrap;font-size:13px}
.footer-links a:hover,.footer-links button:hover{color:#fff}
.footer-meta{width:100%;display:flex;justify-content:space-between;gap:12px;font-size:12px;padding-top:22px;border-top:1px solid rgba(255,255,255,.08);flex-wrap:wrap}

/* ---------- 更新日志 ---------- */
.log{display:grid;gap:16px}
.log-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:22px;padding:24px 28px;box-shadow:var(--shadow-sm);border-left:4px solid var(--blue)}
.log-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.log-ver{font-size:22px;font-weight:800;letter-spacing:-.4px}
.log-badge{font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;background:#eaf3ff;color:var(--blue-d);border:1px solid #cfe0fa}
.log-badge.major{background:#fff2dc;color:#b8791a;border-color:#ffe0b0}
.log-date{margin-left:auto;font-size:12px;color:var(--muted)}
.log-title{margin-top:6px;font-size:14px;color:var(--ink-2);font-weight:600}
.log-notes{margin-top:14px;display:grid;gap:9px}
.log-notes li{position:relative;padding-left:20px;font-size:13.5px;line-height:1.75;color:var(--ink-2)}
.log-notes li::before{content:"";position:absolute;left:2px;top:9px;width:6px;height:6px;border-radius:50%;background:#8fb7f5}
.log-skeleton{height:150px;background:linear-gradient(100deg,#f2f7ff 30%,#e8f1ff 50%,#f2f7ff 70%);background-size:200% 100%;animation:sk 1.4s linear infinite;border-left-color:transparent}

/* ---------- 模态 ---------- */
.modal[hidden]{display:none}
.modal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:24px}
.modal-backdrop{position:absolute;inset:0;background:rgba(13,28,52,.52);backdrop-filter:blur(8px);animation:fade .25s ease}
@keyframes fade{from{opacity:0}to{opacity:1}}
.modal-card{position:relative;background:#fff;border-radius:28px;box-shadow:0 60px 120px -40px rgba(10,30,70,.6);animation:pop .32s var(--ease);max-height:calc(100vh - 48px);overflow:auto}
@keyframes pop{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
.modal-close{position:absolute;right:16px;top:16px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#f1f6ff;color:var(--ink-2);z-index:3;transition:.2s}
.modal-close:hover{background:#e4eeff;color:var(--ink);transform:rotate(90deg)}
.auth-card{width:min(880px,100%);display:grid;grid-template-columns:320px 1fr;overflow:hidden}
.auth-side{position:relative;padding:36px 30px;background:linear-gradient(165deg,#eaf3ff,#d9e9ff 60%,#cfe3ff);overflow:hidden}
.auth-mini{font-size:10px;letter-spacing:4px;color:#7d99c4;font-weight:700}
.auth-side h2{font-size:26px;margin-top:12px;letter-spacing:-.5px}
.auth-sub{margin-top:10px;font-size:13px;color:#5c7398;line-height:1.8}
.auth-points{margin-top:20px;display:grid;gap:9px;font-size:12.5px;color:#4a628a}
.auth-points li{display:flex;gap:8px}
.auth-points span{color:#5b8dff}
.auth-mascot{position:absolute;right:20px;bottom:20px;width:104px;height:104px;object-fit:cover;border-radius:22px;border:3px solid rgba(255,255,255,.85);box-shadow:0 20px 40px -22px rgba(30,60,120,.7)}
.auth-main{padding:34px 34px 30px}
.auth-tabs{display:flex;gap:6px;background:#f2f7ff;padding:5px;border-radius:14px;margin-bottom:22px}
.auth-tabs button{flex:1;height:38px;border-radius:10px;font-size:14px;font-weight:600;color:var(--muted);transition:.25s}
.auth-tabs button.on{background:#fff;color:var(--blue-d);box-shadow:0 6px 14px -10px rgba(40,80,160,.8)}
.auth-form{display:grid;gap:14px}
.field{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--ink-2);font-weight:600}
.field input{height:46px;border-radius:12px;border:1.5px solid var(--line);background:#fbfdff;padding:0 14px;font-size:14px;color:var(--ink);font-family:inherit;transition:.2s;font-weight:400}
.field input:focus{outline:none;border-color:#8fb7f5;background:#fff;box-shadow:0 0 0 4px rgba(120,170,240,.14)}
.field input::placeholder{color:#a9b8cf}
.field-row{display:flex;gap:10px;align-items:flex-end}
.field-row .grow{flex:1}
.code-btn{height:46px;border-radius:12px;font-size:13px}
.form-row{display:flex;align-items:center;justify-content:space-between}
.check{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-2);cursor:pointer}
.check input{width:16px;height:16px;accent-color:var(--blue);border-radius:4px}
.check a{color:var(--blue);text-decoration:underline}
.form-error{color:var(--danger);font-size:12.5px;min-height:0}
.form-error:empty{display:none}
.auth-switch{text-align:center;font-size:13px;color:var(--muted);margin-top:4px}
.auth-hint{font-size:13px;color:var(--ink-2);line-height:1.7}

/* ---------- 个人中心 ---------- */
.profile-card{width:min(1020px,100%);display:grid;grid-template-columns:300px 1fr;overflow:hidden;min-height:520px}
.profile-side{padding:30px 24px;background:linear-gradient(170deg,#f4f9ff,#e8f2ff);display:flex;flex-direction:column;gap:18px}
.profile-id{display:flex;align-items:center;gap:12px}
.profile-avatar{width:56px;height:56px;border-radius:18px;overflow:hidden;background:#dbe9ff;box-shadow:0 12px 24px -16px rgba(30,60,120,.7);flex-shrink:0}
.profile-avatar img{width:100%;height:100%;object-fit:cover}
.profile-id h2{font-size:19px;letter-spacing:-.3px;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-id p{font-size:11.5px;color:var(--muted);margin-top:3px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-lv{background:#fff;border-radius:16px;padding:15px;box-shadow:var(--shadow-sm)}
.plv-top{display:flex;align-items:center;gap:8px}
.plv-top span{background:linear-gradient(135deg,#5b8dff,#2f5fd8);color:#fff;font-size:11.5px;font-weight:800;padding:4px 9px;border-radius:8px}
.plv-top b{font-size:14px}
.plv-bar{height:8px;border-radius:6px;background:#e7f0ff;margin:11px 0 7px;overflow:hidden}
.plv-bar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#8fc0ff,#3f74e0);transition:width .7s var(--ease)}
.plv-foot{display:flex;justify-content:space-between;font-size:10.5px;color:var(--muted)}
.profile-nav{display:grid;gap:4px}
.profile-nav button{text-align:left;padding:11px 13px;border-radius:11px;font-size:13.5px;font-weight:600;color:var(--ink-2);transition:.2s}
.profile-nav button:hover{background:rgba(255,255,255,.7)}
.profile-nav button.on{background:#fff;color:var(--blue-d);box-shadow:var(--shadow-sm)}
.profile-side .btn{margin-top:auto}
.profile-main{padding:32px 32px 36px;overflow:auto;max-height:calc(100vh - 48px)}
.pane h3{font-size:20px;letter-spacing:-.3px;margin-bottom:18px}
.ov-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.ov-card{background:#f8fbff;border:1px solid var(--line);border-radius:14px;padding:15px}
.ov-label{font-size:11.5px;color:var(--muted);display:block}
.ov-card strong{display:block;font-size:15px;margin-top:6px;letter-spacing:-.2px}
.ov-card em{display:block;font-size:11px;color:#93a5c0;margin-top:5px}
.checkin-box{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;padding:18px;border-radius:16px;background:linear-gradient(120deg,#eef6ff,#f8fbff);border:1px solid #dbeafc}
.checkin-box b{font-size:15px}
.checkin-box p{font-size:12.5px;color:var(--muted);margin-top:5px}
.recent{margin-top:24px}
.recent h4{font-size:13px;color:var(--muted);font-weight:600;margin-bottom:10px}
.recent ul{display:grid;gap:6px}
.recent li{display:flex;justify-content:space-between;font-size:13px;padding:9px 12px;border-radius:10px;background:#f8fbff;border:1px solid var(--line)}
.recent li span:last-child{color:#2fa36b;font-weight:700}
.recent li time{color:#a8b8cf;font-size:11px}
.recent li.empty,.exp-list li.empty{justify-content:center;color:var(--muted);background:transparent;border:1px dashed var(--line-2)}
.account-block{border:1px solid var(--line);border-radius:16px;padding:18px;margin-bottom:14px;background:#fff}
.ab-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.ab-head b{font-size:14.5px}
.muted{color:var(--muted)}
.small{font-size:12px}
.tag{font-size:10.5px;padding:3px 9px;border-radius:999px;background:#fff0d9;color:#b8791a;border:1px solid #ffe1b8;font-weight:700}
.tag.ok{background:#e5f8ef;color:#1c8a5c;border-color:#c6efdd}
.inline-form{display:flex;gap:10px;align-items:flex-end}
.stack-form{display:grid;gap:12px}
.field-state{font-size:12px;margin-top:8px;min-height:0}
.field-state.err{color:var(--danger)}
.field-state.ok{color:#1c8a5c}
.account-block.danger{border-color:#f6dcd8;background:#fffaf9}
.growth-top{display:flex;align-items:center;gap:26px;padding:18px;border-radius:16px;background:#f8fbff;border:1px solid var(--line);margin-bottom:20px}
.growth-ring{position:relative;flex-shrink:0}
.growth-ring-text{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.growth-ring-text strong{font-size:30px;letter-spacing:-1px}
.growth-ring-text span{font-size:11px;color:var(--muted)}
.growth-stats{display:grid;gap:10px;flex:1}
.growth-stats div{display:flex;justify-content:space-between;font-size:13px;border-bottom:1px dashed var(--line);padding-bottom:8px}
.growth-stats div:last-child{border:0;padding-bottom:0}
.growth-stats span{color:var(--muted)}
.growth-stats b{font-weight:700}
.ladder-mini{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:6px 0 22px}
.ladder-mini div{padding:9px 6px;border-radius:10px;background:#f6faff;border:1px solid var(--line);text-align:center;font-size:10.5px;color:var(--muted)}
.ladder-mini div b{display:block;font-size:12px;color:var(--ink-2);margin-bottom:2px}
.ladder-mini div.on{background:linear-gradient(135deg,#eaf3ff,#fff);border-color:#b9d4fb}
.ladder-mini div.on b{color:var(--blue-d)}
.exp-list{display:grid;gap:6px;max-height:230px;overflow:auto}
.exp-list li{display:flex;justify-content:space-between;padding:10px 12px;border-radius:10px;background:#f8fbff;border:1px solid var(--line);font-size:12.5px;gap:10px}
.exp-list em{color:#2fa36b;font-weight:800;flex-shrink:0}
.exp-list time{color:#a8b8cf;font-size:11px;flex-shrink:0}

/* ---------- Toast ---------- */
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:rgba(20,35,60,.94);color:#fff;padding:12px 20px;border-radius:999px;font-size:13.5px;box-shadow:0 20px 40px -20px rgba(0,0,0,.6);opacity:0;pointer-events:none;transition:.3s var(--ease);z-index:200;max-width:calc(100vw - 40px);text-align:center}
.toast.on{opacity:1;transform:translate(-50%,0)}
.toast.err{background:#a83227}

/* ---------- 功能模块 / 玩法 ---------- */
.mods{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.mod{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:20px 18px;box-shadow:var(--shadow-sm);transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s}
.mod:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:#cfe0f8}
.mod-ico{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:13px;background:linear-gradient(140deg,#eef5ff,#d9e8ff);font-size:18px;line-height:1}
.mod h3{margin-top:14px;font-size:16px;font-weight:700;letter-spacing:-.2px}
.mod p{margin-top:8px;font-size:13px;line-height:1.75;color:var(--ink-2)}
.mods-note{margin-top:22px;font-size:13px;line-height:1.8;color:var(--muted)}
.plays{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.play{background:rgba(255,255,255,.82);border:1px solid var(--line);border-radius:20px;padding:22px 20px 20px;box-shadow:var(--shadow-sm)}
.play-no{font-size:11px;font-weight:800;letter-spacing:2px;color:var(--blue-l)}
.play h3{margin-top:8px;font-size:17px;font-weight:700;letter-spacing:-.2px}
.play p{margin-top:9px;font-size:13px;line-height:1.8;color:var(--ink-2)}
.play-cta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:28px}
.play-cta span{font-size:13px;color:var(--muted)}

/* ---------- 入场动画 ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* ---------- 响应式 ---------- */
@media (max-width:1080px){
  .nav-links{display:none;position:absolute;left:20px;right:20px;top:calc(var(--nav-h) - 4px);background:#fff;border:1px solid var(--line);border-radius:18px;padding:10px;flex-direction:column;box-shadow:var(--shadow);gap:2px}
  .nav-links.open{display:flex}
  .nav-links a{padding:12px 14px}
  .nav-links a.on::after{display:none}
  .nav-links a.on{background:#eef5ff}
  .nav-burger{display:block}
  .hero-inner{grid-template-columns:1fr;gap:8px}
  .hero-copy{max-width:640px}
  .hero-visual{min-height:auto;margin-top:18px}
  .hero-figure{width:min(72%,380px)}
  .fc-level{right:2%;top:8%}
  .fc-checkin{left:0;bottom:18%}
  .fc-dl{right:0;bottom:6%}
  .cards{grid-template-columns:1fr;max-width:640px;margin-inline:auto}
  .mods{grid-template-columns:repeat(2,1fr)}
  .plays{grid-template-columns:repeat(2,1fr)}
  .showcase{grid-template-columns:1fr}
  .levels{grid-template-columns:1fr}
  .exp-rules{grid-template-columns:repeat(2,1fr)}
  .auth-card{grid-template-columns:1fr;width:min(520px,100%)}
  .auth-side{display:none}
  .profile-card{grid-template-columns:1fr;min-height:0}
  .profile-side{flex-direction:row;flex-wrap:wrap;align-items:center}
  .profile-nav{flex-direction:row;flex-wrap:wrap;width:100%;order:4}
  .profile-nav button{flex:1 1 auto;text-align:center}
  .profile-side .btn{width:100%;order:5}
  .profile-main{max-height:none}
}
@media (max-width:720px){
  .wrap{width:calc(100% - 32px)}
  .nav-inner{width:calc(100% - 28px);gap:10px}
  .nav-actions .btn-ghost{display:none}
  .brand-text small{display:none}
  .hero{padding-top:12px}
  .hero h1{letter-spacing:-1px}
  .hero-stats{gap:18px 0;display:grid;grid-template-columns:repeat(2,1fr)}
  .hero-stats div+div::before{display:none}
  .hero-stats div{padding-right:12px}
  .hero-cta .btn{width:100%}
  .hero-visual{min-height:clamp(380px,calc(56vh + 46px),540px)}
  .hero-figure{height:clamp(360px,56vh,470px);max-width:100%}
  .float-card{padding:9px 11px;border-radius:14px}
  .fc-level{display:none}
  .fc-checkin{left:-2px;top:10%}
  .fc-dl{right:-2px;bottom:8%}
  .mini-grid{grid-template-columns:repeat(2,1fr)}
  .plays{grid-template-columns:1fr}
  .play-cta .btn{width:100%;justify-content:center}
  .exp-rules{grid-template-columns:1fr}
  .ov-grid{grid-template-columns:1fr}
  .growth-top{flex-direction:column;gap:16px}
  .checkin-box{flex-direction:column;align-items:flex-start}
  .modal{padding:0}
  .modal-card{width:100%;max-height:100vh;border-radius:22px 22px 0 0;align-self:end}
  .auth-main{padding:26px 20px 28px}
  .profile-main{padding:22px 18px 28px}
  .profile-side{padding:22px 18px}
  .footer-links{margin-left:0}
  .cta-actions{width:100%}
  .cta-actions .btn{flex:1}
  .ladder li{grid-template-columns:14px 42px 1fr auto;padding:10px 12px;gap:9px}
  .ladder-mini{grid-template-columns:repeat(3,1fr)}
  .dl-card{padding:22px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
  .reveal{opacity:1;transform:none}
}

/* ---- 滑块验证码 ---- */
.captcha{margin:10px 0 4px}
.captcha[hidden]{display:none}
.captcha-stage{position:relative;overflow:hidden;border-radius:12px;line-height:0;background:#eef4ff;border:1px solid #dbe8fb;max-width:320px}
.captcha-stage img{display:block;max-width:100%;height:auto;user-select:none;-webkit-user-drag:none}
.captcha-piece{position:absolute;left:0;z-index:2;box-shadow:0 2px 8px rgba(20,50,110,.28);border-radius:4px}
.captcha-range{width:100%;max-width:320px;margin-top:10px;accent-color:#3f74e0}
.captcha-hint{font-size:12px;color:#7c8da8;margin-top:6px}
.captcha-hint.err{color:#d9483b}
.captcha-hint.ok{color:#2f9e6b}

.capmodal{position:fixed;inset:0;z-index:9999;background:rgba(10,25,50,.42);display:flex;align-items:center;justify-content:center;padding:20px}
.capmodal[hidden]{display:none}
.capmodal-box{background:#fff;border-radius:16px;padding:18px;max-width:360px;width:100%;box-shadow:0 30px 80px -30px rgba(10,30,70,.5)}
.capmodal-title{font-weight:700;margin-bottom:10px}
.capmodal-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}
