/* ==========================================================
   幻斗英雄 官方网站
   深圳市若无互娱科技有限公司
   ========================================================== */

:root{
  --bg:#050912;
  --bg-2:#0a1122;
  --bg-3:#0d1526;
  --panel:rgba(17,28,50,.62);
  --panel-solid:#101a2e;
  --line:rgba(120,180,255,.14);
  --line-2:rgba(120,180,255,.28);

  --cyan:#5cc9f0;
  --cyan-lt:#93e4ff;
  --cyan-dp:#1d7ba8;
  --gold:#ffa94d;

  --tx:#d7e3f4;
  --tx-2:#93a6c4;
  --tx-3:#63748f;

  --wrap:1240px;
  --r:14px;
  --ease:cubic-bezier(.22,.7,.3,1);
}

*{margin:0;padding:0;box-sizing:border-box}

html{scroll-behavior:smooth;scroll-padding-top:74px}

body{
  background:var(--bg);
  color:var(--tx);
  font-family:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei","Hiragino Sans GB",system-ui,-apple-system,sans-serif;
  font-size:16px;
  line-height:1.75;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

/* 全站星空底 */
body::before{
  content:"";
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(1.4px 1.4px at 12% 18%, rgba(255,255,255,.55), transparent),
    radial-gradient(1.2px 1.2px at 78% 12%, rgba(180,225,255,.5), transparent),
    radial-gradient(1.6px 1.6px at 33% 62%, rgba(255,255,255,.4), transparent),
    radial-gradient(1.2px 1.2px at 88% 74%, rgba(180,225,255,.45), transparent),
    radial-gradient(1.3px 1.3px at 58% 34%, rgba(255,255,255,.35), transparent),
    radial-gradient(1.1px 1.1px at 22% 88%, rgba(200,235,255,.4), transparent),
    radial-gradient(1.5px 1.5px at 68% 92%, rgba(255,255,255,.3), transparent),
    radial-gradient(900px 600px at 82% -10%, rgba(30,110,160,.18), transparent 70%),
    radial-gradient(800px 500px at 8% 40%, rgba(60,40,120,.12), transparent 70%);
}

img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul{list-style:none}
h1,h2,h3,h4,p,li{overflow-wrap:break-word}

.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 28px;position:relative;z-index:1}

/* ---------- 通用按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  height:52px;padding:0 34px;
  font-size:16px;font-weight:600;letter-spacing:.06em;
  border:none;cursor:pointer;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s;
  clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);
}
.btn-primary{
  background:linear-gradient(135deg,#3fb3e0,#1d7ba8);
  color:#02121c;
  box-shadow:0 6px 26px rgba(60,175,220,.32), inset 0 1px 0 rgba(255,255,255,.35);
}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 12px 34px rgba(60,175,220,.5), inset 0 1px 0 rgba(255,255,255,.45)}
.btn-ghost{
  background:rgba(140,200,255,.05);
  color:var(--cyan-lt);
  box-shadow:inset 0 0 0 1px var(--line-2);
}
.btn-ghost:hover{background:rgba(140,200,255,.12);transform:translateY(-3px)}
.btn-sm{height:40px;padding:0 22px;font-size:14px;clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px)}

/* ==========================================================
   顶部导航
   ========================================================== */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  transition:background .35s, backdrop-filter .35s, box-shadow .35s;
}
.nav.solid{
  background:rgba(6,11,22,.86);
  backdrop-filter:blur(14px);
  box-shadow:0 1px 0 var(--line), 0 8px 30px rgba(0,0,0,.4);
}
.nav-inner{display:flex;align-items:center;gap:28px;height:74px}
.nav-logo img{height:38px;width:auto;filter:drop-shadow(0 2px 10px rgba(70,180,230,.45))}
.nav-links{display:flex;gap:30px;margin-left:auto}
.nav-links a{
  font-size:15px;color:var(--tx-2);position:relative;padding:6px 0;
  transition:color .25s;
}
.nav-links a::after{
  content:"";position:absolute;left:50%;bottom:0;width:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--cyan),transparent);
  transition:width .3s var(--ease), left .3s var(--ease);
}
.nav-links a:hover,.nav-links a.on{color:var(--cyan-lt)}
.nav-links a:hover::after,.nav-links a.on::after{width:100%;left:0}
.nav-cta{flex-shrink:0}
.nav-toggle{display:none;width:42px;height:42px;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;align-items:center;justify-content:center}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--cyan-lt);transition:transform .3s,opacity .3s}
.nav-toggle.on span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.on span:nth-child(2){opacity:0}
.nav-toggle.on span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ==========================================================
   首屏
   ========================================================== */
.hero{
  position:relative;min-height:100vh;
  display:flex;align-items:flex-end;justify-content:center;
  text-align:center;overflow:hidden;
  padding:110px 0 72px;
}
/* 主视觉 postImg 中央自带 Logo。
   桌面：直接用它当主视觉，文案压到画面下方，不叠前景 Logo（避免重复）。
   移动端：竖屏 cover 会把中央 Logo 裁碎，改为取景右侧火星基地 + 前景透明 Logo。 */
.hero-bg{
  position:absolute;inset:0;
  /* 取景略偏上，把中央 Logo 让到画面上半部，给下方文案腾出净空 */
  /* postImg.jpg 是 postImg.png 的压缩版（3.2MB→433KB），原 PNG 已保留 */
  background:url("postImg.jpg") center 30%/cover no-repeat;
  transform:scale(1.03);
  animation:heroDrift 30s ease-in-out infinite alternate;
}
@keyframes heroDrift{
  from{transform:scale(1.03) translateX(0)}
  to{transform:scale(1.09) translateX(-1%)}
}
.hero-veil{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(5,9,18,.7) 0%, rgba(5,9,18,.1) 18%, rgba(5,9,18,.18) 40%,
                    rgba(5,9,18,.66) 56%, rgba(5,9,18,.9) 74%, rgba(5,9,18,.97) 88%, var(--bg) 100%);
}
/* 子元素显式占满，避免 flex 的 shrink-to-fit 让长文本在窄屏溢出容器 */
.hero-inner{display:flex;flex-direction:column;align-items:center}
.hero-inner > *{max-width:100%}
.hero-logo{
  display:none;                      /* 桌面用背景图自带的 Logo */
  width:min(420px,74vw);
  filter:drop-shadow(0 8px 40px rgba(60,170,225,.5));
  animation:floatUp 1s var(--ease) both;
}
.hero-en{
  font-size:13px;letter-spacing:.62em;text-indent:.62em;
  color:var(--cyan);font-weight:600;
  animation:floatUp 1s .1s var(--ease) both;
}
.hero-slogan{
  font-size:clamp(26px,3.7vw,42px);font-weight:800;letter-spacing:.08em;
  background:linear-gradient(180deg,#fff 30%,#a9dcf5 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 3px 18px rgba(0,0,0,.8));
  animation:floatUp 1s .2s var(--ease) both;
}
.hero-desc{
  margin-top:14px;max-width:660px;
  font-size:clamp(13.5px,1.35vw,16px);color:#b6c6de;line-height:1.9;
  text-shadow:0 2px 12px rgba(0,0,0,.9);
  animation:floatUp 1s .3s var(--ease) both;
}
.hero-desc strong{color:var(--cyan-lt);font-weight:600}
.hero-actions{
  margin-top:26px;display:flex;gap:16px;flex-wrap:wrap;justify-content:center;
  animation:floatUp 1s .4s var(--ease) both;
}
.hero-tags{
  margin-top:24px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:center;
  font-size:12.5px;letter-spacing:.16em;color:#8fa2bd;
  text-shadow:0 2px 10px rgba(0,0,0,.9);
  animation:floatUp 1s .5s var(--ease) both;
}
.hero-tags i{width:4px;height:4px;background:var(--cyan-dp);transform:rotate(45deg)}
@keyframes floatUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}

.hero-scroll{
  position:absolute;left:50%;bottom:34px;transform:translateX(-50%);
  width:26px;height:42px;border:2px solid rgba(140,200,255,.35);border-radius:14px;
  z-index:2;
}
.hero-scroll span{
  position:absolute;left:50%;top:9px;width:3px;height:8px;border-radius:2px;
  background:var(--cyan-lt);transform:translateX(-50%);
  animation:scrollDot 1.8s infinite;
}
@keyframes scrollDot{0%{opacity:0;transform:translate(-50%,0)}30%{opacity:1}100%{opacity:0;transform:translate(-50%,15px)}}

/* ==========================================================
   区块通用
   ========================================================== */
.sec{padding:112px 0;position:relative}
.sec-alt{background:linear-gradient(180deg,transparent,rgba(10,18,36,.72) 18%,rgba(10,18,36,.72) 82%,transparent)}

.sec-head{text-align:center;max-width:760px;margin:0 auto 62px}
.eyebrow{
  display:inline-flex;align-items:center;gap:12px;
  font-size:12px;letter-spacing:.42em;text-indent:.42em;
  color:var(--cyan);font-weight:700;margin-bottom:16px;
}
.eyebrow::before,.eyebrow::after{content:"";width:26px;height:1px;background:linear-gradient(90deg,transparent,var(--cyan-dp))}
.eyebrow::after{background:linear-gradient(90deg,var(--cyan-dp),transparent)}
.sec-head h2{
  font-size:clamp(24px,3.2vw,38px);font-weight:800;letter-spacing:.04em;line-height:1.4;
  background:linear-gradient(180deg,#fff,#9fd3ec);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.sec-sub{margin-top:16px;color:var(--tx-2);font-size:15px}

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

/* ==========================================================
   游戏特色
   ========================================================== */
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.card{
  position:relative;padding:36px 26px 32px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--r);
  backdrop-filter:blur(8px);
  overflow:hidden;
  transition:transform .4s var(--ease),border-color .4s,box-shadow .4s;
}
.card::before{
  content:"";position:absolute;top:0;left:22px;right:22px;height:1px;
  background:linear-gradient(90deg,transparent,var(--cyan),transparent);
  opacity:.5;transition:opacity .4s;
}
.card:hover{transform:translateY(-8px);border-color:var(--line-2);box-shadow:0 20px 50px rgba(0,0,0,.45)}
.card:hover::before{opacity:1}
.card h3{font-size:20px;font-weight:700;margin:20px 0 12px;letter-spacing:.04em}
.card p{font-size:14.5px;color:var(--tx-2);line-height:1.9}

.card-ico{
  width:54px;height:54px;position:relative;
  background:linear-gradient(140deg,rgba(92,201,240,.18),rgba(92,201,240,.04));
  border:1px solid var(--line-2);
  clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px);
}
.card-ico::after{
  content:"";position:absolute;inset:0;margin:auto;
  width:24px;height:24px;
}
/* 三消：四格棋盘 */
.ico-match::after{
  background:
    linear-gradient(var(--cyan),var(--cyan)) 0 0/10px 10px no-repeat,
    linear-gradient(var(--gold),var(--gold)) 14px 0/10px 10px no-repeat,
    linear-gradient(var(--gold),var(--gold)) 0 14px/10px 10px no-repeat,
    linear-gradient(var(--cyan),var(--cyan)) 14px 14px/10px 10px no-repeat;
}
/* 剧情：三条文本线 */
.ico-story::after{
  background:
    linear-gradient(var(--cyan),var(--cyan)) 0 2px/24px 3px no-repeat,
    linear-gradient(var(--cyan-lt),var(--cyan-lt)) 0 11px/17px 3px no-repeat,
    linear-gradient(var(--gold),var(--gold)) 0 20px/21px 3px no-repeat;
}
/* 章节：三段递进柱 */
.ico-chapter::after{
  background:
    linear-gradient(var(--cyan-dp),var(--cyan-dp)) 0 14px/6px 10px no-repeat,
    linear-gradient(var(--cyan),var(--cyan)) 9px 7px/6px 17px no-repeat,
    linear-gradient(var(--gold),var(--gold)) 18px 0/6px 24px no-repeat;
}
/* 伙伴：环 + 卫星点 */
.ico-team::after{
  width:26px;height:26px;
  border:3px solid var(--cyan);border-radius:50%;
  background:radial-gradient(circle at 78% 50%, var(--gold) 0 4px, transparent 4px);
}

/* ==========================================================
   核心玩法循环
   ========================================================== */
.loop{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.loop-line{
  position:absolute;top:38px;left:8%;right:8%;height:2px;
  background:linear-gradient(90deg,transparent,var(--cyan-dp) 12%,var(--cyan-dp) 88%,transparent);
  opacity:.5;
}
.step{position:relative;padding:0 12px;text-align:center}
.step-no{
  width:78px;height:78px;margin:0 auto 22px;position:relative;
  display:flex;align-items:center;justify-content:center;
  font-size:24px;font-weight:800;letter-spacing:.04em;
  color:var(--cyan-lt);
  background:var(--bg);
  border:2px solid var(--cyan-dp);border-radius:50%;
  box-shadow:0 0 0 8px rgba(5,9,18,.9), 0 0 28px rgba(70,180,230,.28);
  transition:transform .4s var(--ease), box-shadow .4s, border-color .4s;
}
.step:hover .step-no{
  transform:translateY(-6px) scale(1.06);
  border-color:var(--cyan);
  box-shadow:0 0 0 8px rgba(5,9,18,.9), 0 0 44px rgba(90,205,245,.55);
}
.step h3{font-size:19px;font-weight:700;margin-bottom:12px;letter-spacing:.04em}
.step p{font-size:14.5px;color:var(--tx-2);line-height:1.9}

/* ==========================================================
   探索章节
   ========================================================== */
.chap{
  display:grid;grid-template-columns:1.05fr 1fr;gap:64px;align-items:center;
  margin-bottom:96px;
}
.chap:last-child{margin-bottom:0}
.chap-rev .chap-media{order:2}
/* 竖构图素材（飞船）用窄一些的画框，避免左右大片留白 */
.chap.is-portrait{grid-template-columns:.56fr 1fr}
.chap.is-portrait .chap-media img{height:520px}
.chap-media{position:relative;border-radius:var(--r);overflow:hidden;background:var(--bg-3)}
.chap-media img{
  width:100%;height:400px;object-fit:contain;
  background:radial-gradient(ellipse at center, rgba(30,80,120,.28), rgba(6,11,22,.9) 72%);
  transition:transform .7s var(--ease);
}
.chap-media:hover img{transform:scale(1.05)}
.chap-frame{
  position:absolute;inset:0;pointer-events:none;
  border:1px solid var(--line-2);border-radius:var(--r);
  box-shadow:inset 0 0 70px rgba(5,9,18,.75);
}
.chap-frame::before,.chap-frame::after{
  content:"";position:absolute;width:26px;height:26px;border:2px solid var(--cyan);
}
.chap-frame::before{top:14px;left:14px;border-right:none;border-bottom:none}
.chap-frame::after{bottom:14px;right:14px;border-left:none;border-top:none}

.chap-no{
  font-size:12px;letter-spacing:.4em;color:var(--cyan);font-weight:700;margin-bottom:10px;
}
.chap-text h3{
  font-size:clamp(26px,3.4vw,40px);font-weight:800;letter-spacing:.06em;
  background:linear-gradient(180deg,#fff,#a6d8ef);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.chap-en{
  font-size:13px;letter-spacing:.28em;color:var(--tx-3);
  margin:6px 0 20px;padding-bottom:20px;
  border-bottom:1px solid var(--line);
}
.chap-text > p:last-of-type{color:var(--tx-2);font-size:15.5px;line-height:2.05}
.chap-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.chap-tags li{
  font-size:13px;padding:7px 16px;color:var(--cyan-lt);
  background:rgba(92,201,240,.07);
  border:1px solid var(--line-2);
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);
}

/* ==========================================================
   角色
   ========================================================== */
.chars{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;row-gap:26px}
.char-stage{
  position:relative;height:560px;
  display:flex;align-items:flex-end;justify-content:center;
}
.char-glow{
  position:absolute;bottom:0;left:50%;transform:translateX(-50%);
  width:78%;height:78%;
  background:radial-gradient(ellipse at 50% 78%, rgba(70,180,235,.3), transparent 66%);
  filter:blur(6px);
}
.char-stage::after{
  content:"";position:absolute;bottom:6px;left:50%;transform:translateX(-50%);
  width:62%;height:2px;
  background:linear-gradient(90deg,transparent,var(--cyan),transparent);
  box-shadow:0 0 22px 3px rgba(92,201,240,.5);
}
.char-art{
  position:absolute;bottom:14px;left:50%;
  max-height:540px;width:auto;
  opacity:0;transform:translate(-50%,26px) scale(.97);
  transition:opacity .55s var(--ease),transform .55s var(--ease);
  filter:drop-shadow(0 20px 44px rgba(0,0,0,.6));
  pointer-events:none;
}
.char-art.is-on{opacity:1;transform:translate(-50%,0) scale(1)}
/* 这张是带场景背景的立绘，底部渐隐后才能和另外两张去背立绘并排不违和 */
.char-art[data-char="0"]{
  max-height:520px;border-radius:var(--r) var(--r) 0 0;
  -webkit-mask-image:linear-gradient(180deg,#000 74%,rgba(0,0,0,.35) 92%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 74%,rgba(0,0,0,.35) 92%,transparent 100%);
}

.char-info{position:relative;min-height:560px}
.char-panel{
  position:absolute;inset:0;
  opacity:0;transform:translateY(18px);pointer-events:none;
  transition:opacity .5s var(--ease),transform .5s var(--ease);
}
.char-panel.is-on{opacity:1;transform:none;pointer-events:auto}
.char-role{font-size:12px;letter-spacing:.34em;color:var(--cyan);font-weight:700}
.char-panel h3{
  font-size:clamp(28px,3.6vw,42px);font-weight:800;letter-spacing:.08em;margin-top:10px;
  background:linear-gradient(180deg,#fff,#a6d8ef);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.char-en{font-size:13px;letter-spacing:.3em;color:var(--tx-3);margin-top:4px}
.char-desc{margin-top:22px;color:var(--tx-2);font-size:15.5px;line-height:2.05}

.skill{
  margin-top:26px;padding:22px 24px;
  background:var(--panel);border:1px solid var(--line);border-radius:12px;
  border-left:3px solid var(--cyan);
}
.skill-tag{
  display:inline-block;font-size:11px;letter-spacing:.22em;color:var(--bg);
  background:var(--cyan);padding:3px 10px;font-weight:700;margin-bottom:12px;
}
.skill strong{display:block;font-size:19px;letter-spacing:.06em;margin-bottom:8px;color:var(--cyan-lt)}
.skill p{font-size:14px;color:var(--tx-2);line-height:1.85}

.stats{margin-top:26px;display:flex;flex-direction:column;gap:14px}
.stat{display:flex;align-items:center;gap:16px;font-size:13.5px}
.stat span{width:36px;color:var(--tx-3);flex-shrink:0}
.stat i{
  flex:1;height:6px;border-radius:3px;position:relative;
  background:rgba(120,180,255,.1);overflow:hidden;
}
.stat i::after{
  content:"";position:absolute;left:0;top:0;bottom:0;width:var(--v);
  background:linear-gradient(90deg,var(--cyan-dp),var(--cyan-lt));
  box-shadow:0 0 12px rgba(92,201,240,.6);
  border-radius:3px;
  transform-origin:left;
  animation:barIn .9s var(--ease) both;
}
@keyframes barIn{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.stat b{width:30px;text-align:right;color:var(--cyan-lt);font-weight:700}

/* 独立成一行放在信息面板正下方，避免和属性条抢位置 */
.char-pick{
  grid-column:2;justify-self:start;
  display:flex;gap:14px;
}
.pick{
  width:78px;padding:0;background:none;border:none;cursor:pointer;
  opacity:.5;transition:opacity .3s,transform .3s var(--ease);
}
.pick img{
  width:72px;height:72px;object-fit:cover;object-position:top center;
  border:2px solid var(--line-2);border-radius:10px;
  background:var(--bg-3);
  transition:border-color .3s,box-shadow .3s;
}
.pick span{display:block;margin-top:8px;font-size:12px;color:var(--tx-3);letter-spacing:.1em}
.pick:hover{opacity:.85;transform:translateY(-3px)}
.pick.is-on{opacity:1}
.pick.is-on img{border-color:var(--cyan);box-shadow:0 0 22px rgba(92,201,240,.45)}
.pick.is-on span{color:var(--cyan-lt)}

/* ==========================================================
   宠物
   ========================================================== */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:28px}
/* 图在上、文字在下：横向的画幅才能容下机械狼这种横构图素材 */
.pet-card{
  display:flex;flex-direction:column;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  overflow:hidden;backdrop-filter:blur(8px);
  transition:transform .4s var(--ease),border-color .4s,box-shadow .4s;
}
.pet-card:hover{transform:translateY(-8px);border-color:var(--line-2);box-shadow:0 22px 54px rgba(0,0,0,.45)}
.pet-img{
  position:relative;overflow:hidden;height:290px;flex-shrink:0;
  background:radial-gradient(circle at 50% 44%, rgba(40,100,145,.42), rgba(8,14,28,.95) 74%);
}
.pet-img img{width:100%;height:100%;object-fit:cover;object-position:center center;transition:transform .6s var(--ease)}
/* 整幅宣传图：取景卡在机械狼所在的那一段，避开顶部标题和底部 UI */
.pet-img img[src="wolfInfo.jpg"]{object-position:center 40%}
/* 去背立绘：完整显示，不裁切 */
.pet-img img[src="imgRole3.png"]{object-fit:contain;padding:6px 0;transform-origin:center bottom}
.pet-card:hover .pet-img img{transform:scale(1.06)}
.pet-body{padding:28px 30px 32px}
.pet-type{font-size:11.5px;letter-spacing:.3em;color:var(--cyan);font-weight:700}
.pet-body h3{font-size:24px;font-weight:800;letter-spacing:.06em;margin:10px 0 14px}
.pet-body h3 em{font-size:12px;font-style:normal;letter-spacing:.24em;color:var(--tx-3);margin-left:10px;font-weight:500}
.pet-body > p{font-size:14.5px;color:var(--tx-2);line-height:1.95}
.pet-skill{margin-top:20px;display:flex;flex-direction:column;gap:9px}
.pet-skill li{
  position:relative;padding-left:20px;font-size:13.5px;color:var(--tx-2);
}
.pet-skill li::before{
  content:"";position:absolute;left:0;top:9px;
  width:7px;height:7px;background:var(--cyan);transform:rotate(45deg);
  box-shadow:0 0 10px rgba(92,201,240,.7);
}

/* ==========================================================
   画廊
   ========================================================== */
.shots{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.shot{
  position:relative;border-radius:12px;overflow:hidden;cursor:pointer;
  border:1px solid var(--line);
  transition:transform .4s var(--ease),border-color .4s,box-shadow .4s;
}
.shot img{width:100%;height:340px;object-fit:cover;transition:transform .6s var(--ease)}
.shot figcaption{
  position:absolute;left:0;right:0;bottom:0;
  padding:26px 14px 12px;font-size:13px;letter-spacing:.1em;
  background:linear-gradient(transparent,rgba(4,9,18,.92));
  color:var(--tx);
}
.shot:hover{transform:translateY(-6px);border-color:var(--line-2);box-shadow:0 18px 44px rgba(0,0,0,.5)}
.shot:hover img{transform:scale(1.07)}

/* ==========================================================
   下载 / 预约
   ========================================================== */
.download{
  background:linear-gradient(180deg,transparent,rgba(14,34,58,.55),transparent);
}
.dl-inner{
  display:flex;align-items:center;gap:52px;
  padding:52px 56px;
  background:var(--panel);border:1px solid var(--line-2);border-radius:20px;
  backdrop-filter:blur(10px);
  box-shadow:0 24px 70px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.06);
}
.dl-icon{
  width:150px;height:150px;flex-shrink:0;border-radius:26px;
  box-shadow:0 12px 42px rgba(60,170,225,.4);
}
.dl-text h2{
  font-size:clamp(24px,3vw,34px);font-weight:800;letter-spacing:.05em;margin-bottom:12px;
  background:linear-gradient(180deg,#fff,#a6d8ef);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
/* 只命中标题下那句描述；写成 .dl-text > p 会把小标题 eyebrow 和底部文字链接一起覆盖掉 */
.dl-text > h2 + p{color:var(--tx-2);font-size:15px}
.dl-btns{margin-top:26px;display:flex;gap:14px;flex-wrap:wrap}
.dl-note{margin-top:16px;font-size:12.5px;color:var(--tx-3);letter-spacing:.05em}
/* 文字链接：青色表明可点，上下留白放大手机端点击区域 */
.dl-note a{display:inline-block;padding:6px 0;font-size:14px;color:var(--cyan);transition:color .25s}
.dl-note a:hover{color:var(--cyan-lt);text-decoration:underline;text-underline-offset:4px}

/* ==========================================================
   页脚
   ========================================================== */
.foot{
  padding:78px 0 0;
  background:linear-gradient(180deg,transparent,rgba(4,8,16,.9));
  border-top:1px solid var(--line);
}
.foot-top{
  display:grid;grid-template-columns:2fr 1fr 1fr 1.3fr;gap:44px;
  padding-bottom:52px;
}
.foot-brand img{height:52px;width:auto;margin-bottom:20px;opacity:.95}
.foot-brand p{font-size:13.5px;color:var(--tx-3);line-height:1.95;max-width:340px}
.foot-col h4{
  font-size:13px;letter-spacing:.2em;color:var(--cyan);margin-bottom:20px;font-weight:700;
}
.foot-col a{display:block;font-size:13.5px;color:var(--tx-3);margin-bottom:12px;transition:color .25s}
.foot-col a:hover{color:var(--cyan-lt)}
.foot-company{font-size:14px;color:var(--tx-2);margin-bottom:10px;font-weight:600}
.foot-line{font-size:12.5px;color:var(--tx-3);letter-spacing:.05em;margin-bottom:8px}

.notice{
  padding:28px 0;border-top:1px solid var(--line);
  text-align:center;
}
.notice-title{font-size:13px;letter-spacing:.24em;color:var(--tx-2);margin-bottom:12px;font-weight:700}
.notice p{font-size:12.5px;color:var(--tx-3);line-height:2}
/* 以半句为最小换行单位，窄屏不会出现"上 / 当。"这种孤字 */
.notice .nw{display:inline-block}
.notice-age{margin-top:12px;color:var(--gold) !important;letter-spacing:.08em}

.foot-bar{
  padding:22px 0 30px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
  font-size:12.5px;color:var(--tx-3);
}
/* 软著号 + ICP 备案号：宽屏同一行竖线分隔，窄屏各占一行（避免竖线挂在行尾） */
.foot-icp{display:flex;align-items:center;flex-wrap:wrap;letter-spacing:.03em}
.foot-sep{font-style:normal;margin:0 12px;opacity:.45}
.foot-icp a{transition:color .25s}
.foot-icp a:hover{color:var(--cyan-lt)}

/* ==========================================================
   大图查看
   ========================================================== */
.lightbox{
  position:fixed;inset:0;z-index:200;
  background:rgba(3,6,14,.94);backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:center;padding:5vh 5vw;
  opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s;
}
.lightbox.on{opacity:1;visibility:visible}
.lightbox img{max-width:100%;max-height:90vh;border-radius:10px;box-shadow:0 30px 80px rgba(0,0,0,.7)}
.lb-close{
  position:absolute;top:26px;right:34px;
  width:46px;height:46px;font-size:34px;line-height:1;
  background:none;border:1px solid var(--line-2);border-radius:50%;
  color:var(--tx);cursor:pointer;transition:background .25s,transform .25s;
}
.lb-close:hover{background:rgba(140,200,255,.12);transform:rotate(90deg)}

/* ==========================================================
   响应式
   ========================================================== */
@media (max-width:1180px){
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .shots{grid-template-columns:repeat(3,1fr)}
  .chap{gap:44px}
}

@media (max-width:980px){
  .nav-links{
    position:fixed;top:74px;left:0;right:0;
    flex-direction:column;gap:0;
    background:rgba(6,11,22,.97);backdrop-filter:blur(16px);
    padding:10px 28px 24px;
    border-bottom:1px solid var(--line);
    transform:translateY(-12px);opacity:0;visibility:hidden;
    transition:opacity .3s,transform .3s,visibility .3s;
  }
  .nav-links.on{opacity:1;visibility:visible;transform:none}
  .nav-links a{padding:14px 0;border-bottom:1px solid rgba(120,180,255,.08)}
  .nav-toggle{display:flex}
  .nav-cta{margin-left:auto}

  /* 竖屏 cover 会把主视觉中央的 Logo 裁碎：改为取景左侧空间站+地球，
     Logo 换用前景那张清晰的透明图 */
  .hero{align-items:center;padding:104px 0 68px}
  .hero-logo{display:block}
  .hero-bg{
    background-size:auto 132%;
    background-position:4% center;
    transform:none;animation:none;
  }
  .hero-veil{
    background:linear-gradient(180deg,rgba(5,9,18,.72) 0%,rgba(5,9,18,.5) 34%,
                               rgba(5,9,18,.82) 72%,rgba(5,9,18,.96) 90%,var(--bg) 100%);
  }
  .hero-slogan{margin-top:18px}

  .sec{padding:78px 0}
  .loop{grid-template-columns:repeat(2,1fr);gap:44px 20px}
  .loop-line{display:none}

  .chap,.chap-rev{grid-template-columns:1fr;gap:30px}
  .chap-rev .chap-media{order:0}
  .chap-media img{height:300px}
  .chap{margin-bottom:66px}

  .chars{grid-template-columns:1fr;gap:40px}
  .char-stage{height:430px}
  .char-art{max-height:410px}
  .char-art[data-char="0"]{max-height:400px}
  .char-info{min-height:0}
  .char-panel{position:relative;display:none}
  .char-panel.is-on{display:block}
  .char-pick{grid-column:1;justify-self:center;margin-top:8px}

  .grid-2{grid-template-columns:1fr}
  .dl-inner{flex-direction:column;text-align:center;padding:44px 28px;gap:30px}
  .dl-btns{justify-content:center}
  .eyebrow{justify-content:center}

  .foot-top{grid-template-columns:1fr 1fr;gap:36px}
  .foot-brand{grid-column:1/-1}
  .foot-brand p{max-width:none}
}

@media (max-width:640px){
  .wrap{padding:0 18px}
  /* 下载卡片同时带 .wrap，上一行会把它的上下内边距清零，这里补回 */
  .dl-inner{padding:38px 20px}
  .hero{min-height:auto;padding:112px 0 74px}
  .hero-logo{width:min(300px,78vw)}
  .hero-slogan{font-size:25px;letter-spacing:.04em}
  .hero-desc{width:100%;font-size:13px;line-height:1.95}
  .hero-tags{gap:10px;font-size:11.5px;letter-spacing:.1em}
  .hero-scroll{display:none}
  .sec-head h2{font-size:21px;letter-spacing:.02em}
  .sec-sub{font-size:13.5px}
  .chap-text h3,.char-panel h3{letter-spacing:.04em}

  .grid-4{grid-template-columns:1fr;gap:16px}
  .loop{grid-template-columns:1fr;gap:36px}
  .shots{grid-template-columns:repeat(2,1fr);gap:12px}
  .shot img{height:230px}

  .pet-img{height:236px}

  .char-stage{height:360px}
  .char-art{max-height:340px}
  .char-art[data-char="0"]{max-height:330px}
  .pick img{width:60px;height:60px}
  .pick{width:64px}

  .btn{height:48px;padding:0 26px;font-size:15px}
  .foot-top{grid-template-columns:1fr}
  .foot-bar{flex-direction:column;text-align:center;gap:10px}
  .foot-icp{flex-direction:column;gap:6px}
  .foot-sep{display:none}
  .lb-close{top:14px;right:16px;width:40px;height:40px;font-size:28px}
}

/* 无障碍：尊重系统减少动效设置 */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important;scroll-behavior:auto !important;
  }
  .reveal{opacity:1;transform:none}
}
