/* ============================================================
   Emotion 官网 · 美术方向：TIMELINE / PIXEL
   骨架参考 groq.com（米白纸面、细等宽大写、超细标题）
   特色：整页当作一条时间轴——刻度尺、时间码、关键帧、播放头
         + 图标同源的像素块与颗粒质感
   ============================================================ */

@font-face{font-family:'InterVar';src:url('fonts/inter-latin.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'InterVar';src:url('fonts/inter-latin-ext.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap;
  unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'MonoVar';src:url('fonts/mono-latin.woff2') format('woff2');font-weight:100 800;font-style:normal;font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'MonoVar';src:url('fonts/mono-latin-ext.woff2') format('woff2');font-weight:100 800;font-style:normal;font-display:swap;
  unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'PixelVar';src:url('fonts/pixel-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'PixelVar';src:url('fonts/pixel-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;}
/* 缝合像素字体 12px：中文像素字，裁切到 GB2312 + 站内用字 */
@font-face{font-family:'FusionPixel';src:url('fonts/pxcn.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
/* 词标专用：Tiny5（严格横平竖直的像素字，有小写） */
@font-face{font-family:'Tiny5';src:url('fonts/tiny5.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}

:root{
  --bone:#f4f3ee;
  --bone-deep:#edebe1;
  --card:#ffffff;
  --ink:#141410;
  --ink-soft:#39392f;
  --gray:#6b6b62;
  --gray-soft:#8e8e84;
  --faint:#dad6c6;
  --faint-deep:#c9c4b0;
  --line:#e2ded1;
  --line-soft:#eae7dc;
  --orange:#ff5a1c;
  --orange-deep:#d9440a;
  --orange-tint:#ffe6dc;
  --orange-line:#ffcbb8;
  --navy:#1e2239;          /* 取自软件图标底色 */
  --navy-soft:#272c48;
  --navy-line:#343a5c;

  --r-pill:999px;
  --r-card:14px;
  --r-md:10px;
  --r-sm:6px;

  --font-ui:'InterVar','Noto Sans SC','Source Han Sans SC','HarmonyOS Sans SC','PingFang SC','Microsoft YaHei',system-ui,-apple-system,sans-serif;
  --font-mono:'MonoVar','JetBrains Mono',ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  --font-pixel:'PixelVar','Silkscreen',var(--font-mono);
  --font-pxcn:'FusionPixel','Noto Sans SC','PingFang SC',sans-serif;
  --font-wordmark:'Tiny5','MonoVar',monospace;

  --container:1280px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}   /* 兜底：避免被 display 覆盖 */
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--bone);color:var(--ink);
  font-family:var(--font-ui);font-size:16px;line-height:1.55;font-weight:400;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;overflow-x:clip;
}
/* 纸面颗粒 */
body::after{
  content:"";position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.16;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
  background-size:160px 160px;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}
::selection{background:var(--orange);color:#fff}

.container{width:min(100% - 80px,var(--container));margin-inline:auto}


/* ---------- 交互态：点击不留色 ---------- */
*{-webkit-tap-highlight-color:transparent}
button:focus{outline:none}
button:focus-visible,a:focus-visible{outline:2px solid var(--orange);outline-offset:2px;border-radius:4px}
.pill:focus,.pill:active{background:transparent;color:var(--gray);border-color:var(--line)}
.pill.active:focus,.pill.active:active{background:var(--ink);border-color:var(--ink);color:#fff}
.pill:hover:focus{color:var(--ink)}

/* ---------- 排版基元 ---------- */
.mono{font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.1em;text-transform:uppercase}
.mono-sm{font-family:var(--font-pxcn);font-size:12px;line-height:1.5;letter-spacing:.02em;color:var(--gray-soft)}
.px{font-family:var(--font-pxcn);font-size:12px;letter-spacing:.04em;line-height:1.5}
.display{font-family:var(--font-pxcn);font-weight:400;letter-spacing:0;line-height:1.2;margin:0}
h2.display{
  font-family:var(--font-pxcn);font-weight:400;
  font-size:24px;line-height:1.25;letter-spacing:0;
}
h3.display{font-family:var(--font-pxcn);font-size:24px;line-height:1.25;letter-spacing:0}
.lead{font-size:clamp(16px,1.35vw,19px);line-height:1.6;color:var(--gray);margin:0;font-weight:400}
.body-sm{font-size:14.5px;line-height:1.6;color:var(--gray);margin:0}
.caption{font-size:13px;line-height:1.5;color:var(--gray-soft);margin:0}
.eyebrow{font-family:var(--font-pxcn);font-size:12px;font-weight:400;letter-spacing:.06em;color:var(--orange);margin:0 0 20px;line-height:1.5}
.dot-o{color:var(--orange)}
.kf{
  display:inline-block;width:7px;height:7px;flex:none;
  background:var(--orange);transform:rotate(45deg);
}
.kf-line{background:transparent;border:1px solid var(--faint-deep)}


/* 标题尾巴的橙色句号、首屏末行的方块：交给伪元素，让文本本身可整体编辑 */
h2.display::after{content:".";color:var(--orange)}
.hero-statements .on::after{
  content:"";display:inline-block;width:.28em;height:.28em;background:var(--ink);
  margin-left:.22em;vertical-align:.06em;
}
.hero .hero-statements .on::after{background:var(--ink)}


/* ---------- 公告（CUT 01）：全部公告逐条列出 ---------- */
.ann-card{
  padding:4px 22px;
  background:var(--card);border:1px solid var(--line);
  border-left:3px solid var(--orange);border-radius:var(--r-md);
}
.ann-list{display:flex;flex-direction:column}
.ann-row{
  display:flex;align-items:center;gap:20px;justify-content:space-between;
  padding:16px 0;border-bottom:1px solid var(--line-soft);
}
.ann-row:last-child{border-bottom:0}
.ann-main{min-width:0;display:flex;flex-direction:column;gap:7px}
/* 标题在上：像素字，黑色 */
.ann-title{
  margin:0;font-family:var(--font-pxcn);font-size:clamp(14px,1.6vw,17px);
  line-height:1.55;color:var(--ink);letter-spacing:.02em;
}
/* 日期在下：像素字，弱化 */
.ann-date{
  font-family:var(--font-pxcn);font-size:12px;line-height:1.4;
  letter-spacing:.12em;color:var(--gray-soft);
}
.ann-more{
  flex:none;display:inline-flex;align-items:center;gap:6px;cursor:pointer;
  border:1px solid var(--line);background:transparent;color:var(--ink-soft);
  font-family:var(--font-pxcn);font-size:12px;padding:8px 14px;border-radius:999px;
  transition:background .16s,color .16s,border-color .16s;
}
.ann-more:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.ann-arrow{font-family:var(--font-ui);transition:transform .16s}
.ann-more:hover .ann-arrow{transform:translateX(2px)}
@media (max-width:640px){
  .ann-card{padding:2px 16px}
  .ann-row{align-items:flex-start;flex-direction:column;gap:10px}
  .ann-more{align-self:flex-end}
}


/* ---------- 标题字体统一：一律像素字 ----------
   排除项：.brand-word（Tiny5 字标）、.dl-word（深色水印）、时间码/编号（等宽） */
h1,h2,h3,h4,h5,h6,
.card h3,.qcard h3,.aside-card h3,.submit-head h3,
.bug-title,.my-item .t,.qr-ph,.ann-title,.stats-title,.log-ver{
  font-family:var(--font-pxcn);
  letter-spacing:0;
}
/* 像素字不需要负字距，行高统一 1.5 左右保证字格不错位 */
.card h3,.qcard h3,.aside-card h3{line-height:1.5}
.bug-title{font-weight:400;line-height:1.55}
.my-item .t{font-weight:400;line-height:1.55}


/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:13px 22px;border-radius:var(--r-pill);
  font-family:var(--font-pxcn);font-size:12px;font-weight:400;
  letter-spacing:.06em;border:1px solid transparent;white-space:nowrap;
  transition:background .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease),transform .18s var(--ease);
}
.btn:active{transform:translateY(1px)}
.btn-solid{background:var(--ink);color:#fff}
.btn-solid:hover{background:#000}
.btn-outline{border-color:var(--orange);color:var(--orange);background:transparent}
.btn-outline:hover{background:var(--orange);color:#fff}
.btn-ghost{border-color:var(--line);color:var(--ink);background:transparent}
.btn-ghost:hover{border-color:var(--ink);background:#fff}
.btn-lg{padding:16px 28px;font-size:12px}
.btn-block{width:100%}

/* ---------- 时间码 HUD ---------- */
.hud{
  position:fixed;right:18px;bottom:18px;z-index:80;
  display:flex;align-items:center;gap:10px;
  background:rgba(17,17,17,.94);color:var(--bone);
  border:1px solid var(--navy-line);border-radius:var(--r-pill);
  padding:8px 13px 8px 12px;
  font-family:var(--font-pixel);font-size:10px;letter-spacing:.06em;
  box-shadow:0 10px 30px -14px rgba(30,34,57,.7);
}
.hud .rec{width:6px;height:6px;background:var(--orange);animation:blink 1.6s steps(2,end) infinite}
.hud-tc{min-width:74px}
.hud-bar{width:54px;height:3px;background:rgba(255,255,255,.16);border-radius:2px;overflow:hidden}
.hud-bar i{display:block;height:100%;width:0;background:var(--orange);transition:width .12s linear}
@keyframes blink{50%{opacity:.15}}

/* ---------- 公告条 ---------- */
.announce{border-bottom:1px solid var(--line);padding:9px 0;background:var(--bone);position:relative;z-index:60}
.announce-inner{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;
  font-family:var(--font-pxcn);font-size:12px;line-height:1.5;letter-spacing:.04em;color:var(--ink-soft);text-align:center}
.announce-inner .sep{width:4px;height:4px;background:var(--orange);flex:none}
.announce a{color:var(--orange)}
.announce a:hover{color:var(--orange-deep)}

/* ---------- 导航 ---------- */
.nav{position:sticky;top:0;z-index:70;background:rgba(244,243,238,.9);
  backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);
  border-bottom:1px solid var(--line-soft)}
.nav-inner{display:flex;align-items:center;gap:24px;height:56px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:11px;flex:none}
.brand img{width:26px;height:26px;flex:none}
.brand-word{
  font-family:var(--font-wordmark);font-weight:400;font-size:24px;line-height:1;
  letter-spacing:0;color:var(--navy);
}
.ver-chip{font-family:var(--font-pxcn);font-size:12px;line-height:1;letter-spacing:.02em;color:var(--gray-soft);
  border:1px solid var(--line);border-radius:5px;padding:5px 7px;margin-left:2px}
.nav-links{display:flex;align-items:center;gap:26px;margin-left:auto}
.nav-links a{font-family:var(--font-pxcn);font-size:12px;line-height:1.5;letter-spacing:.02em;color:var(--ink-soft);transition:color .18s}
.nav-links a:hover{color:var(--orange)}
.nav-actions{display:flex;align-items:center;gap:10px;flex:none}
.nav-actions .btn{padding:8px 16px;font-size:11.5px;letter-spacing:.04em;line-height:1.2}
.nav-actions .user-chip{padding:4px 10px 4px 4px;font-size:11.5px;line-height:1.2}
.nav-actions .user-chip i{width:20px;height:20px;font-size:10px}
.nav-burger{display:none;width:40px;height:40px;border:1px solid var(--line);border-radius:var(--r-sm);align-items:center;justify-content:center;background:transparent}
.nav-burger span{position:relative;display:block;width:15px;height:1.5px;background:var(--ink)}
.nav-burger span::before,.nav-burger span::after{content:"";position:absolute;left:0;width:15px;height:1.5px;background:var(--ink)}
.nav-burger span::before{top:-5px}.nav-burger span::after{top:5px}

/* ---------- Hero：左文案 + 右半屏像素矩阵 ---------- */
.hero{
  position:relative;overflow:hidden;
  background:var(--orange);color:var(--ink);
  padding:clamp(40px,5vw,76px) 0 clamp(44px,5vw,76px);
  min-height:min(84vh,780px);
  display:flex;align-items:center;
  border-bottom:1px solid rgba(17,17,17,.18);
}
.hero .eyebrow{color:rgba(17,17,17,.72)}
.hero .hero-statements{color:rgba(17,17,17,.42)}
.hero .hero-statements .on{color:var(--ink)}
.hero .hero-statements .sq{background:var(--ink)}
.hero .hero-sub{color:rgba(17,17,17,.78)}
.hero .hero-meta{color:rgba(17,17,17,.6)}
.hero .hero-meta li::before{background:rgba(17,17,17,.35)}
.hero .hero-meta li:first-child::before{background:var(--ink)}
.hero .btn-solid{background:var(--ink);color:#fff}
.hero .btn-outline{border-color:var(--ink);color:var(--ink)}
.hero .btn-outline:hover{background:var(--ink);color:#fff}
.hero-inner{
  position:relative;z-index:2;max-width:580px;
  margin-left:max(32px,calc((100% - var(--container)) / 2));
}
.hero-statements{
  font-family:var(--font-pxcn);font-weight:400;
  font-size:36px;line-height:1.25;letter-spacing:0;
  margin:0;color:var(--faint);
  text-rendering:geometricPrecision;
}
.hero-statements span{display:block}
.hero-statements .sq{display:inline-block;width:.28em;height:.28em;background:var(--orange);margin-left:.22em;vertical-align:.06em}
.hero-statements .on{color:var(--ink)}
.hero-sub{margin:24px 0 0;max-width:34em}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.hero-meta{
  display:flex;flex-wrap:wrap;gap:10px 20px;list-style:none;margin:26px 0 0;padding:0;
  font-family:var(--font-pxcn);font-size:12px;line-height:1.5;color:var(--gray-soft);
}
.hero-meta li{display:flex;align-items:center;gap:8px}
.hero-meta li::before{content:"";width:4px;height:4px;background:var(--faint-deep);flex:none}
.hero-meta li:first-child::before{background:var(--orange)}

/* 像素矩阵：整齐排列，随机翻面 */
.hero-matrix{
  position:absolute;top:0;right:0;bottom:0;width:52%;z-index:1;
  display:grid;gap:4px;padding:18px 18px 18px 0;
}
/* 左边缘渐变：用一块同色半透明渐变盖住，不依赖 mask（老 WebView 不支持 mask） */
.hero-matrix::after{
  content:"";position:absolute;left:0;top:0;bottom:0;width:18%;pointer-events:none;
  background:linear-gradient(90deg,var(--orange) 0%,rgba(255,90,28,.9) 30%,rgba(255,90,28,.5) 65%,rgba(255,90,28,0) 100%);
}
.cell{position:relative;perspective:220px}
.cell i{
  position:absolute;inset:0;display:block;
  background:rgba(17,17,17,.13);
  transition:transform .5s var(--ease),background .28s var(--ease);
  transform-style:preserve-3d;backface-visibility:visible;
}
.cell.on i{background:var(--ink);transform:rotateY(180deg)}
.cell.on.navy i{background:var(--bone)}
.cell.ghost i{background:rgba(17,17,17,.26)}
/* 装饰方块 */
.sq-deco{position:absolute;pointer-events:none;z-index:0}
.sq-deco i{display:block;background:var(--orange);animation:float 7s var(--ease) infinite}
.sq-deco.hollow i{background:transparent;border:2px solid var(--orange)}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}

/* ---------- 技术标注 & 裁切角标 ---------- */
.anno{
  display:flex;flex-wrap:wrap;gap:6px 18px;
  font-family:var(--font-pxcn);font-size:12px;line-height:1.5;letter-spacing:.02em;
  color:rgba(17,17,17,.55);
}
.anno b{font-weight:400;color:var(--ink)}
.anno .bar{width:12px;height:1px;background:currentColor;align-self:center;opacity:.5}

/* 大数字 */
.bignums{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.bignum-cell{padding:26px 24px 24px;border-right:1px solid var(--line)}
.bignum-cell:last-child{border-right:0}
.bignum{
  font-weight:800;font-size:clamp(44px,6.4vw,84px);line-height:.95;letter-spacing:-.045em;
  font-variant-numeric:tabular-nums;
}
.bignum small{font-size:.3em;font-weight:600;letter-spacing:0;margin-left:6px;color:var(--gray)}
.bignum-cell .k{margin-top:12px;font-family:var(--font-pxcn);font-size:12px;line-height:1.5;color:var(--gray)}

/* 密排构建日志 */
.listing{
  margin:0;padding:22px 24px;border:1px solid var(--line);border-radius:var(--r-card);
  background:var(--card);overflow:auto;
  font-family:var(--font-mono);font-size:11.5px;line-height:1.75;color:rgba(20,20,16,.42);
  white-space:pre;column-count:2;column-gap:36px;
}
.listing b{font-weight:400;color:var(--orange)}
.listing .dim{color:rgba(20,20,16,.28)}

/* ---------- 滚动字幕条 ---------- */
.ticker{overflow:hidden;background:var(--ink);border-block:1px solid var(--ink)}
.ticker-track{display:flex;width:max-content;animation:marq 34s linear infinite}
.ticker-item{display:flex;align-items:center;gap:22px;padding:13px 22px;white-space:nowrap;
  font-family:var(--font-pxcn);font-size:12px;letter-spacing:.12em;color:rgba(244,243,238,.8)}
.ticker-item b{color:var(--orange);font-weight:500}
.ticker-item .kf{background:var(--orange)}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---------- 时间轴样机 ---------- */
.tl-wrap{padding:clamp(36px,4.6vw,60px) 0 0}
.tl{position:relative;border:1px solid var(--line);border-radius:var(--r-card);background:var(--card);overflow:hidden}
.tl-head{display:flex;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line);background:var(--card)}
.tl-head .px{color:var(--gray-soft)}
.tl-tc{margin-left:auto;font-family:var(--font-pixel);font-size:11px;color:var(--orange);letter-spacing:.05em}
.tl-dots{display:flex;gap:4px;margin-right:4px}
.tl-dots i{width:7px;height:7px;border-radius:50%;background:var(--line)}
.tl-dots i:first-child{background:var(--orange-line)}
.tl-ruler{display:flex;height:26px;border-bottom:1px solid var(--line);background:var(--bone)}
.tl-ruler i{
  flex:1;display:flex;align-items:center;justify-content:center;
  border-right:1px solid var(--line);font-style:normal;
  font-family:var(--font-pxcn);font-size:12px;line-height:1;color:var(--faint-deep);
}
.tl-ruler i:last-child{border-right:0}
.tl-ruler i.on{background:var(--orange);color:#fff}
.tl-ruler i.tall{color:var(--gray-soft)}
.tl-body{display:grid;grid-template-columns:138px 1fr}
.tl-names{border-right:1px solid var(--line)}
.tl-name{display:flex;align-items:center;gap:9px;height:46px;padding:0 14px;
  font-family:var(--font-pxcn);font-size:12px;letter-spacing:.02em;color:var(--gray);
  border-bottom:1px solid var(--line-soft)}
.tl-name:last-child{border-bottom:0}
.tl-lanes{position:relative}
.lane{position:relative;height:46px;border-bottom:1px solid var(--line-soft)}
.lane:last-child{border-bottom:0}
.lane.wave{display:flex;align-items:center}
.lane.wave svg{width:100%;height:26px;display:block}
.wave-label{position:absolute;left:8px;top:50%;transform:translateY(-50%);
  font-family:var(--font-pxcn);font-size:12px;line-height:1;color:var(--gray-soft);opacity:.9}
.clip{position:absolute;top:8px;height:30px;border-radius:5px;display:flex;align-items:center;gap:7px;
  padding:0 9px;font-family:var(--font-pxcn);font-size:12px;letter-spacing:.02em;overflow:hidden;white-space:nowrap}
.clip.v{background:var(--orange-tint);border:1px solid var(--orange-line);color:var(--orange-deep)}
.clip.t{background:var(--bone-deep);border:1px solid var(--line);color:var(--ink-soft)}
.clip.a{background:#e9ebf4;border:1px solid #d8dbea;color:var(--navy)}
.clip.k{background:var(--navy);border:1px solid var(--navy);color:#fff}
.tl-playhead{position:absolute;top:-30px;bottom:0;width:1px;background:var(--orange);z-index:3}
.tl-playhead::after{content:"";position:absolute;top:0;left:-3px;width:7px;height:7px;background:var(--orange)}
.tl-foot{display:flex;flex-wrap:wrap;gap:6px 20px;padding:11px 16px;border-top:1px solid var(--line);
  font-family:var(--font-pxcn);font-size:12px;line-height:1.5;letter-spacing:.02em;color:var(--gray-soft)}
.tl-foot b{color:var(--ink-soft);font-weight:500}

/* ---------- 快速入口 ---------- */
.quick{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.qcard{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);
  padding:26px;position:relative;overflow:hidden;
  transition:border-color .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease)}
.qcard:hover{border-color:var(--faint-deep);transform:translateY(-2px);box-shadow:0 10px 28px -16px rgba(20,20,16,.2)}
.qcard .num{position:absolute;top:18px;right:20px;font-family:var(--font-pxcn);font-size:12px;line-height:1;color:var(--faint-deep)}
.qcard .ico{width:22px;height:22px;color:var(--ink-soft);margin-bottom:40px}
.qcard h3{font-size:16px;font-weight:500;margin:0 0 6px;letter-spacing:-.01em}
.qcard p{margin:0;font-size:14px;color:var(--gray)}
.qcard .arrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--orange);display:block;margin-top:16px}
.qcard::after{content:"";position:absolute;right:0;top:0;width:9px;height:9px;background:var(--orange);
  opacity:0;transition:opacity .2s var(--ease)}
.qcard:hover::after{opacity:1}

/* ---------- section ---------- */
.section{padding:clamp(52px,6.4vw,96px) 0}
.hr{border-top:1px solid var(--line)}
.sec-head{display:flex;align-items:center;gap:14px;margin-bottom:20px;min-width:0}
.sec-head > *{min-width:0}
.sec-head .mono-sm{white-space:nowrap}
.sec-head .px{color:var(--orange)}
.sec-rule{flex:1 1 auto;min-width:16px;height:1px;background:var(--line)}
.sec-head .mono-sm{margin-left:2px}
.section-head{max-width:760px;margin-bottom:clamp(30px,3.8vw,50px)}
.section-head .lead{margin-top:18px}
.section-head-split{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;flex-wrap:wrap;max-width:none}

/* ---------- 规格条 ---------- */
.specs{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.spec{padding:24px 22px;border-right:1px solid var(--line);position:relative}
.spec:last-child{border-right:0}
.spec .k{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gray-soft)}
.spec .v{font-size:26px;font-weight:300;letter-spacing:-.03em;margin-top:6px;line-height:1.2}
.spec .v small{font-size:12px;font-weight:400;color:var(--gray);letter-spacing:0;margin-left:3px}
.spec .tick{position:absolute;top:0;left:0;width:18px;height:2px;background:var(--orange)}

/* ---------- 功能卡 ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);
  padding:28px;position:relative;overflow:hidden;
  transition:border-color .2s var(--ease),transform .2s var(--ease)}
.card:hover{border-color:var(--faint-deep);transform:translateY(-2px)}
.card .num{position:absolute;top:20px;right:22px;font-family:var(--font-pxcn);font-size:12px;line-height:1;color:var(--faint-deep)}
.card .ico{width:22px;height:22px;color:var(--ink-soft);margin-bottom:42px}
.card h3{font-size:17px;font-weight:500;margin:0 0 10px;letter-spacing:-.01em}
.card p{margin:0;color:var(--gray);font-size:14.5px}
.card::after{content:"";position:absolute;right:0;top:0;width:9px;height:9px;background:var(--orange);
  opacity:0;transition:opacity .2s var(--ease)}
.card:hover::after{opacity:1}


/* ---------- Bug 列表上方的修复进度条 ---------- */
.bug-stats{margin-bottom:18px;padding:12px 16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card)}
.stats-line{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.stats-title{font-family:var(--font-pxcn);font-size:12px;letter-spacing:.1em;color:var(--ink);white-space:nowrap}
.stats-total{font-family:var(--font-mono);font-size:11px;color:var(--gray-soft);white-space:nowrap}
.stats-bar{display:flex;height:8px;gap:3px;flex:1 1 160px;min-width:120px;max-width:320px}
@media (max-width:720px){
  .stats-line{gap:10px 12px}
  .stats-bar{flex:1 1 100%;max-width:none;order:3}
  .stats-counts{order:4;gap:12px}
  .stats-foot{order:5;margin-left:0;flex-basis:100%}
}
.stats-bar i{display:block;height:100%;border-radius:2px;min-width:4px}
.stats-bar .fixing{background:var(--orange)}
.stats-bar .confirmed{background:var(--orange-tint);box-shadow:inset 0 0 0 1px var(--orange-line)}
.stats-bar .fixed{background:var(--ink)}
.stats-bar .unrepro{background:transparent;box-shadow:inset 0 0 0 1px var(--faint-deep)}
.stats-bar .rest{background:var(--line);flex:1}
.stats-counts{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.stats-counts span{display:inline-flex;align-items:center;gap:6px;
  font-family:var(--font-pxcn);font-size:12px;line-height:1.4;color:var(--ink-soft);white-space:nowrap}
.stats-counts .n{font-family:var(--font-mono);font-size:11.5px;color:var(--gray)}
.stats-foot{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--gray-soft);white-space:nowrap}
@media (max-width:720px){ .stats-foot{margin-left:0} }

/* ---------- 更新日志 ---------- */
/* 更新日志：日期与标题同一条左边缘，不做缩进 */
.log{border-top:1px solid var(--line)}
.log-item{
  display:grid;grid-template-columns:170px 1fr;gap:32px;
  padding:26px 0;border-bottom:1px solid var(--line);
}
.log-date{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--gray-soft);padding-top:5px}
.log-ver{display:flex;align-items:center;gap:10px;font-family:var(--font-pxcn);font-size:12px;line-height:1.5;margin-bottom:10px;color:var(--ink)}
.chip{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-pxcn);font-size:12px;
  line-height:1.4;letter-spacing:.02em;padding:3px 9px;border-radius:var(--r-pill);
  border:1px solid var(--line);color:var(--gray)}
.chip-orange{background:var(--orange);border-color:var(--orange);color:#fff}
.chip-tint{background:var(--orange-tint);border-color:var(--orange-line);color:var(--orange-deep)}
.chip-dark{background:var(--ink);border-color:var(--ink);color:#fff}
.log ul{margin:8px 0 0;padding-left:16px;color:var(--ink-soft);font-size:14.5px}
.log li{margin:5px 0}
.log li::marker{color:var(--faint-deep)}

/* ---------- Bug 公示 ---------- */
.bug-layout{display:block}

.aside-card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);
  padding:24px;position:relative;overflow:hidden;
}
.aside-card h3{font-size:15px;font-weight:500;margin:0 0 10px}
.aside-card .btn{margin-top:18px}
/* 状态色块：图例和 Bug 列表共用，保证左右一致 */
.sw{width:8px;height:8px;display:block;flex:none;border:1px solid transparent}
.sw.fixing{background:var(--orange)}
.sw.confirmed{background:var(--orange-tint);border-color:var(--orange-line)}
.sw.fixed{background:var(--ink)}
.sw.unrepro{background:transparent;border-color:var(--faint-deep)}

.legend{display:grid;gap:10px;margin-top:20px;font-family:var(--font-pxcn);font-size:12px;line-height:1.7;color:var(--gray)}
.legend div{display:flex;align-items:center;gap:9px}

.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.pill{padding:8px 15px;border-radius:var(--r-pill);border:1px solid var(--line);background:transparent;color:var(--gray);
  font-family:var(--font-pxcn);font-size:12px;line-height:1.5;letter-spacing:.02em;transition:all .16s var(--ease)}
.pill:hover{border-color:var(--faint-deep);color:var(--ink)}
.pill.active{background:var(--ink);border-color:var(--ink);color:#fff}
.pill .n{opacity:.5;margin-left:6px}

.bug-list{display:grid;gap:10px}
.bug-item{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);
  padding:17px 19px;transition:border-color .18s var(--ease);position:relative}
.bug-item:hover{border-color:var(--faint-deep)}
.bug-item.open{border-color:var(--faint-deep)}
.bug-item.open::before{content:"";position:absolute;left:-1px;top:12px;bottom:12px;width:2px;background:var(--orange)}
.bug-top{display:flex;align-items:flex-start;gap:12px}
.bug-id{font-family:var(--font-pxcn);font-size:12px;line-height:1.5;letter-spacing:.02em;color:var(--gray-soft);padding-top:4px;flex:none}
.bug-title{font-size:15px;font-weight:500;margin:0;letter-spacing:-.005em;line-height:1.45}
.bug-status{
  margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:7px;
  font-family:var(--font-pxcn);font-size:12px;line-height:1.5;color:var(--ink-soft);
  white-space:nowrap;
}
.bug-meta{display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 0 0 58px;
  font-family:var(--font-pxcn);font-size:12px;line-height:1.5;letter-spacing:.02em;color:var(--gray-soft)}
.bug-meta b{font-weight:500;color:var(--ink-soft)}
.bug-detail{margin:12px 0 0 58px;font-size:14px;color:var(--gray);display:none;line-height:1.62}
.bug-item.open .bug-detail{display:block}
.bug-empty{padding:40px;text-align:center;color:var(--gray-soft);border:1px dashed var(--line);border-radius:var(--r-md);font-size:14px}



/* ---------- 公告详情弹层 ---------- */
.ann-dialog{
  max-width:440px;width:calc(100% - 40px);border:1px solid var(--line);border-radius:var(--r-card);
  padding:24px;background:var(--card);color:var(--ink);
  box-shadow:0 24px 60px -30px rgba(20,20,16,.4);
}
.ann-dialog::backdrop{background:rgba(20,20,16,.42);backdrop-filter:blur(2px)}
.ann-dialog h3{margin:0 0 6px;font-family:var(--font-pxcn);font-size:18px;line-height:1.5;font-weight:400}
.ann-dialog .ann-time{margin:0 0 14px;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--gray-soft)}
.ann-dialog .ann-body{margin:0 0 18px;font-size:14.5px;line-height:1.7;color:var(--ink-soft);white-space:pre-wrap}


/* ---------- 截图上传 ---------- */
.upload{
  display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;
  padding:20px;border:1px dashed var(--faint-deep);border-radius:var(--r-md);
  background:var(--bone);cursor:pointer;transition:border-color .16s,background .16s;text-align:center;
}
.upload:hover,.upload.drag{border-color:var(--orange);background:var(--cream-light)}
.upload-title{font-family:var(--font-pxcn);font-size:12px;color:var(--ink)}
.upload-hint{font-family:var(--font-pxcn);font-size:11px;color:var(--gray-soft)}
.shots{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.shot{position:relative;width:78px;height:78px;border-radius:8px;overflow:hidden;border:1px solid var(--line);background:#fff}
.shot img{width:100%;height:100%;object-fit:cover;display:block}
.shot button{
  position:absolute;top:2px;right:2px;width:20px;height:20px;border:0;border-radius:50%;
  background:rgba(20,20,16,.66);color:#fff;font-size:11px;line-height:1;cursor:pointer;
}
.shot .sz{
  position:absolute;left:0;right:0;bottom:0;padding:1px 4px;font-family:var(--font-mono);
  font-size:9px;color:#fff;background:rgba(20,20,16,.55);text-align:center;
}

/* ---------- 提交 Bug 面板 ---------- */
.submit-panel{
  margin-top:clamp(26px,3.4vw,40px);padding:clamp(22px,3vw,32px);
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);position:relative;
}
.submit-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:20px}
.submit-side{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}
.submit-side .caption{max-width:30em;text-align:right}
@media (max-width:640px){
  .submit-side{justify-content:flex-start}
  .submit-side .caption{text-align:left}
}
.submit-head h3{font-size:24px}
.submit-panel form{display:grid;gap:16px}
.field{display:block;font-family:var(--font-pxcn);font-size:12px;line-height:1.5;color:var(--gray)}
.field > span{display:block;margin-bottom:7px;color:var(--gray-soft);letter-spacing:.02em}
/* 注意：这里必须覆盖「没有 type 属性」的 input，否则它们会退回浏览器默认窄样式 */
.submit-panel input[type=text],
.submit-panel input:not([type]),
.submit-panel input[type=email],
.submit-panel input[type=tel],
.submit-panel select,
.submit-panel textarea{
  width:100%;box-sizing:border-box;
  font-family:var(--font-ui);font-size:14px;color:var(--ink);
  min-height:42px;padding:10px 13px;
  border:1px solid var(--line);border-radius:10px;background:#fff;
  transition:border-color .15s,box-shadow .15s;
}
.submit-panel select{
  appearance:none;-webkit-appearance:none;padding-right:34px;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--gray-soft) 50%),
                   linear-gradient(135deg,var(--gray-soft) 50%,transparent 50%);
  background-position:calc(100% - 17px) 19px,calc(100% - 12px) 19px;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;
}
.submit-panel textarea{resize:vertical;line-height:1.7;min-height:104px;padding:11px 13px}
.submit-panel input::placeholder,.submit-panel textarea::placeholder{color:var(--faint-deep)}
.submit-panel input:hover,.submit-panel select:hover,.submit-panel textarea:hover{border-color:var(--faint-deep)}
.submit-panel input:focus,.submit-panel select:focus,.submit-panel textarea:focus{
  outline:none;border-color:var(--orange);box-shadow:0 0 0 3px rgba(209,69,11,.12);
}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:720px){ .grid2{grid-template-columns:1fr} }
.seg{display:flex;gap:6px;flex-wrap:wrap}
.seg label{position:relative;cursor:pointer}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg i{
  display:inline-block;font-style:normal;padding:9px 14px;border:1px solid var(--line);
  border-radius:var(--r-pill);font-family:var(--font-pxcn);font-size:12px;color:var(--gray);
  transition:all .16s var(--ease);
}
.seg input:checked + i{background:var(--ink);border-color:var(--ink);color:#fff}
.seg input:focus-visible + i{outline:2px solid var(--orange);outline-offset:2px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.submit-foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:4px}
.form-status{font-family:var(--font-pxcn);font-size:12px;line-height:1.6;color:var(--gray)}
.form-status.ok{color:var(--ink)}
.form-status.err{color:var(--orange-deep)}
.submit-foot .btn[disabled]{opacity:.55;cursor:progress}

/* ---------- QQ 群 ---------- */
/* QQ 群：一张卡片，左边文字右边二维码，中间细分隔线 */
.qq-card{
  display:grid;grid-template-columns:minmax(0,1fr) 232px;
  background:var(--card);border:1px solid var(--line);border-top:3px solid var(--orange);
  border-radius:var(--r-card);overflow:hidden;margin-top:8px;
}
.qq-info{padding:clamp(24px,3vw,36px)}
.qq-label{font-family:var(--font-pxcn);font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--gray-soft);display:flex;align-items:center;gap:8px}
.qq-label::before{content:"";width:8px;height:8px;background:var(--orange);flex:none}
.qq-num{font-family:var(--font-pxcn);font-size:clamp(30px,3.8vw,42px);font-weight:400;
  letter-spacing:.03em;line-height:1.2;margin:10px 0 6px;
  display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.qq-name{font-family:var(--font-pxcn);font-size:12px;line-height:1.6;color:var(--gray);margin:0}
.copy-btn{font-family:var(--font-pxcn);font-size:12px;letter-spacing:.02em;
  border:1px solid var(--line);border-radius:var(--r-pill);padding:7px 13px;color:var(--gray);
  transition:border-color .16s var(--ease),color .16s var(--ease)}
.copy-btn:hover{border-color:var(--orange);color:var(--orange-deep)}
.copy-btn.done{border-color:var(--orange);color:var(--orange)}
.qq-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.qq-side{
  padding:24px;background:var(--bone);border-left:1px solid var(--line);
  display:grid;gap:12px;justify-items:center;align-content:start;
}
.qr{width:176px;height:176px;border-radius:var(--r-md);overflow:hidden;position:relative;
  background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center}
.qr img{width:100%;height:100%;object-fit:cover}
.qr-load{animation:qrPulse 1.4s ease-in-out infinite}
@keyframes qrPulse{0%,100%{opacity:.45}50%{opacity:.85}}
.qr-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:6px;text-align:center;padding:14px;font-size:12px;color:var(--gray-soft)}
.qq-note{font-family:var(--font-pxcn);font-size:11.5px;line-height:1.6;letter-spacing:.02em;
  color:var(--gray-soft);text-align:center}

/* ---------- 下载区 ---------- */
.dl-block{background:var(--ink);border-radius:22px;padding:clamp(36px,5vw,64px);color:#fff;position:relative;overflow:hidden}
.dl-block::before{content:"";position:absolute;top:0;left:0;right:0;height:6px;
  background-image:repeating-linear-gradient(90deg,var(--orange) 0 10px,transparent 10px 20px)}
.dl-block::after{content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;
  background:radial-gradient(closest-side,rgba(245,80,54,.28),transparent)}
.dl-word{position:absolute;right:-6px;bottom:-18px;font-family:var(--font-pixel);font-size:clamp(60px,10vw,120px);
  color:rgba(255,255,255,.045);line-height:1;letter-spacing:-.02em;pointer-events:none;user-select:none}
.dl-block .eyebrow{color:var(--orange);position:relative}
.dl-block .display{color:#fff;position:relative}
.dl-block .lead{color:rgba(255,255,255,.72);margin-top:16px;max-width:32em;position:relative}
.dl-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px;position:relative}
.dl-actions .btn-solid{background:#fff;color:var(--ink)}
.dl-actions .btn-solid:hover{background:var(--faint)}
.dl-actions .btn-ghost{border-color:rgba(255,255,255,.3);color:#fff}
.dl-actions .btn-ghost:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.5)}
.dl-meta{font-family:var(--font-pxcn);font-size:12px;line-height:1.5;letter-spacing:.04em;color:rgba(255,255,255,.55);margin-top:20px;position:relative}

/* ---------- 页脚 ---------- */
.footer{border-top:1px solid var(--line);padding:clamp(40px,5vw,62px) 0 24px;position:relative}
.footer::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;
  background-image:repeating-linear-gradient(90deg,var(--faint) 0 1px,transparent 1px 24px)}
.footer-inner{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:32px}
.footer h4{font-family:var(--font-pxcn);font-size:12px;line-height:1.5;letter-spacing:.04em;color:var(--gray-soft);margin:0 0 16px}
.footer ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.footer ul a{font-size:14px;color:var(--ink-soft)}
.footer ul a:hover{color:var(--orange)}
.footer-brand p{font-size:13px;color:var(--gray);margin:16px 0 0;max-width:30em;line-height:1.6}
.footer-bottom{border-top:1px solid var(--line-soft);margin-top:clamp(30px,4vw,44px);padding-top:18px;
  display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;
  font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--gray-soft)}



/* ---------- 账号：导航位 / 门禁 / 对话框 ---------- */
.auth-slot{display:inline-flex;align-items:center;gap:8px}
.user-chip{
  display:inline-flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;
  border:1px solid var(--line);border-radius:var(--r-pill);background:#fff;
  font-family:var(--font-pxcn);font-size:12px;color:var(--ink);
}
.user-chip i{
  width:22px;height:22px;border-radius:50%;background:var(--navy);color:#fff;
  display:grid;place-items:center;font-style:normal;font-size:11px;font-family:var(--font-mono);
}
.user-chip .caret{font-size:9px;color:var(--gray-soft)}


.site-dialog{
  border:1px solid var(--line);border-radius:18px;padding:0;background:var(--card);
  width:min(556px,calc(100% - 24px));color:var(--ink);
  box-shadow:0 30px 70px -40px rgba(20,20,16,.5);
}
.site-dialog::backdrop{background:rgba(20,20,16,.42);backdrop-filter:blur(2px)}
.my-head{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}
.my-head h3{margin:0;font-family:var(--font-pxcn);font-size:15px;font-weight:400}
.my-list{max-height:60vh;overflow:auto}
.my-item{padding:14px 20px;border-bottom:1px solid var(--line-soft)}
.my-item:last-child{border-bottom:0}
.my-item .top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}
.my-item .id{font-family:var(--font-mono);font-size:11px;color:var(--gray-soft)}
.my-item .t{font-size:14px;font-weight:500}
.my-item .meta{font-family:var(--font-pxcn);font-size:12px;color:var(--gray-soft)}
.my-empty{padding:30px 20px;text-align:center;font-family:var(--font-pxcn);font-size:12px;color:var(--gray-soft)}



.my-item .my-st{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-pxcn);font-size:12px;color:var(--ink-soft)}




/* ---------- 头像菜单 ---------- */
.nav-actions{position:relative}
.user-menu{
  position:absolute;right:0;top:calc(100% + 8px);min-width:160px;
  background:#fff;border:1px solid var(--line);border-radius:12px;
  box-shadow:0 18px 40px -24px rgba(20,20,16,.45);padding:6px;display:grid;gap:2px;z-index:90;
}
.user-menu-item{
  text-align:left;border:0;background:transparent;cursor:pointer;border-radius:8px;
  padding:9px 12px;font-family:var(--font-pxcn);font-size:12px;color:var(--ink);
}
.user-menu-item:hover{background:var(--bone)}
.user-menu-item.danger{color:var(--orange-deep)}

/* ---------- 登录 / 注册 / 忘记密码 ---------- */
.auth-dialog{margin:clamp(56px,14vh,150px) auto auto}   /* 顶部锚定并下移一些：切换模式只向下长，不会整体跳 */
.auth-dialog form{
  display:flex;flex-direction:column;gap:9px;padding:16px 24px 16px;
}
/* 顶部页签：文字 + 下划线，不用灰色块按钮 */
.auth-tabs{
  display:flex;align-items:center;gap:22px;margin:0 0 4px;
  border-bottom:1px solid var(--line);
}
.auth-tab{
  border:0;background:none;cursor:pointer;padding:0 0 8px;margin-bottom:-1px;
  font-family:var(--font-pxcn);font-size:13.5px;letter-spacing:.04em;color:var(--gray);
  border-bottom:2px solid transparent;transition:color .15s,border-color .15s;
}
.auth-tab:hover{color:var(--ink)}
.auth-tab.active{color:var(--ink);border-bottom-color:var(--orange)}
.auth-close{
  margin-left:auto;border:0;background:none;cursor:pointer;
  font-size:14px;color:var(--gray-soft);padding:0 0 8px;line-height:1;
}
.auth-close:hover{color:var(--ink)}
.auth-dialog label{display:block;font-family:var(--font-pxcn);font-size:12px;color:var(--gray)}
.auth-dialog label input{
  width:100%;margin-top:4px;font-family:var(--font-ui);font-size:14px;
  padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;
}
.auth-dialog label input:focus{outline:2px solid var(--orange);outline-offset:-1px}
.auth-err{margin:0;min-height:14px;line-height:14px;font-family:var(--font-pxcn);font-size:12px;color:var(--orange-deep)}
/* 提交按钮：窄一点、高一点，不铺满 */
.auth-submit{align-self:flex-start;min-width:146px;padding:12px 28px;font-size:12.5px;letter-spacing:.08em}
/* 留白处的橙色装饰：一条刻度线，很淡，不抢内容 */
.auth-deco{display:flex;align-items:center;gap:6px;margin-top:6px;padding:8px 0 10px;opacity:.45}
.auth-deco i{width:5px;height:5px;background:var(--orange);display:block;flex:none}
.auth-deco i:nth-child(2){opacity:.7}
.auth-deco i:nth-child(3){opacity:.45}
.auth-deco i:nth-child(4){opacity:.25}
.auth-deco span{flex:1;height:1px;background:linear-gradient(90deg,var(--orange-line),transparent)}
/* 底部两个文字按钮：左「忘记密码」，右「切换登录/注册」 */
.auth-footer{
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  margin-top:0;padding-top:10px;border-top:1px solid var(--line-soft);
}
.auth-link{
  border:0;background:none;padding:2px 0;cursor:pointer;
  font-family:var(--font-pxcn);font-size:12px;color:var(--gray);
  border-bottom:1px dashed transparent;transition:color .15s,border-color .15s;
}
.auth-link:hover{color:var(--orange);border-bottom-color:var(--orange)}
.my-dialog{width:min(560px,calc(100% - 28px))}
.my-head{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}
.my-head h3{margin:0;font-family:var(--font-pxcn);font-size:15px;font-weight:400}
.my-list{max-height:60vh;overflow:auto}
.my-item{padding:14px 20px;border-bottom:1px solid var(--line-soft)}
.my-item:last-child{border-bottom:0}
.my-item .top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}
.my-item .id{font-family:var(--font-mono);font-size:11px;color:var(--gray-soft)}
.my-item .t{font-size:14px;font-weight:500}
.my-item .meta{font-family:var(--font-pxcn);font-size:12px;color:var(--gray-soft)}
.my-empty{padding:30px 20px;text-align:center;font-family:var(--font-pxcn);font-size:12px;color:var(--gray-soft)}
.my-item .my-st{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-pxcn);font-size:12px;color:var(--ink-soft)}

@media (max-height: 660px), (max-width: 480px){
  /* 矮屏或窄屏：优先保证一次看全，允许高度自适应 */
  .auth-dialog form{height:auto;min-height:0;gap:8px;padding:14px 20px}
  .auth-dialog label input{padding:8px 11px}
  .auth-deco{padding:8px 0}
}

/* 登录验证码 / 邮箱验证码 */
.captcha-row,.code-row{display:grid;gap:5px}
.captcha-label,.code-label{font-family:var(--font-pxcn);font-size:12px;color:var(--gray)}
.captcha-box,.code-box{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.captcha-box img{
  width:124px;height:40px;border:1px solid var(--line);border-radius:8px;
  background:var(--bone);cursor:pointer;display:block;
}
.captcha-box input,.code-box input{
  font-family:var(--font-mono);font-size:14.5px;letter-spacing:.18em;text-transform:uppercase;
  padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);
}
.captcha-box input{width:110px}
.code-box input{flex:1;min-width:110px;letter-spacing:.2em;text-transform:none}
.captcha-box input:focus,.code-box input:focus{outline:2px solid var(--orange);outline-offset:-1px}
.captcha-box .btn,.code-box .btn{padding:8px 12px;font-size:11.5px}
.code-box .btn[disabled]{opacity:.55;cursor:not-allowed}
.code-hint{margin:0;font-family:var(--font-pxcn);font-size:11.5px;color:var(--gray-soft);min-height:14px}
.code-hint.err{color:var(--orange-deep)}

/* ---------- 可视化编辑态（只在 ?edit=1 的 iframe 里出现） ---------- */
/* 编辑态只做「描边 + 光晕」，一律不碰 background / color：
   任何底色、任何文字颜色下都不会出现看不清的情况 */
body.is-editing [data-editable] [contenteditable]{
  cursor:text;caret-color:var(--orange);
  transition:outline-color .12s,box-shadow .12s;
}
body.is-editing [data-editable] [contenteditable]:hover{
  outline:1px dashed rgba(255,90,28,.75);outline-offset:3px;border-radius:3px;
}
body.is-editing [data-editable] [contenteditable]:focus{
  outline:2px solid var(--orange);outline-offset:3px;border-radius:3px;
  box-shadow:0 0 0 4px rgba(255,90,28,.18);
}
body.is-editing.show-outlines [data-editable] [contenteditable]{
  outline:1px dashed rgba(255,90,28,.45);outline-offset:3px;border-radius:3px;
}
body.is-editing a{pointer-events:none}
body.is-editing .ticker,body.is-editing [data-noedit]{opacity:.72}

/* ---------- 动效 ---------- */
/* 只有确认 JS 可用（html.js）才隐藏等待进场；JS 被禁用/拦截时内容照常显示 */
.js .reveal{opacity:0;transform:translateY(12px);transition:opacity .55s var(--ease),transform .55s var(--ease)}
.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .js .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
  .sq-deco i,.ticker-track,.hud .rec,.ph-rec i{animation:none}
  .ticker-track{transform:none}
}

/* ---------- 像素字阶（只用 12 的整数倍，避免糊边） ---------- */
@media (min-width:768px){
  .hero-statements{font-size:48px}
  h2.display{font-size:36px}
  .qq-num{font-size:48px}
}
@media (min-width:1200px){
  .hero-statements{font-size:60px}
  h2.display{font-size:48px}
}

/* ---------- 响应式 ---------- */
@media (max-width:899px){
  .hero-matrix{display:none}
  .hero{min-height:0}
  .hero-inner{max-width:none;margin-left:22px;margin-right:22px}
}
@media (max-width:1240px){
  .nav-inner{gap:16px}
  .nav-links{gap:18px;font-size:12px}
  .nav-actions .btn{padding:8px 14px}
}
@media (max-width:1023px){
  .container{width:calc(100% - 44px)}
  .nav-inner{gap:12px;height:auto;min-height:56px}
  .nav-links{display:none;order:3;width:100%;margin:0;gap:0;flex-direction:column;align-items:flex-start}
  .nav-actions{display:none;order:4;width:100%;margin:0 0 16px}
  .nav-burger{display:flex;margin-left:auto}
  .ver-chip{display:none}
  .nav.open .nav-links{display:flex}
  .nav.open .nav-links a{padding:13px 0;width:100%;border-top:1px solid var(--line-soft);font-size:12.5px}
  .nav.open .nav-actions{display:flex;margin-left:0}
  .nav.open .nav-actions .btn{flex:1}
  .quick{grid-template-columns:1fr}
  .qcard .ico{margin-bottom:26px}
  .grid-3{grid-template-columns:repeat(2,1fr)}
  .card .ico{margin-bottom:26px}
  .specs{grid-template-columns:repeat(2,1fr)}
  .spec{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
  .spec:nth-child(2n){border-right:0}          /* 右列不画右边框，避免外沿多一条线 */
  .spec:nth-last-child(-n+2){border-bottom:0}  /* 最后一行不画底边，交给容器 */

  .footer-inner{grid-template-columns:1fr 1fr}
  .hud{display:none}
  .tl-body{grid-template-columns:104px 1fr}
  .tl-name{font-size:9.5px;padding:0 10px}
}
@media (max-width:599px){
  .specs{grid-template-columns:1fr}
  .spec{border-right:0}
  .spec:nth-last-child(-n+2){border-bottom:1px solid var(--line)}
  .spec:last-child{border-bottom:0}
}
@media (max-width:767px){
  .grid-3{grid-template-columns:1fr}
  .log-item{grid-template-columns:1fr;gap:10px}
  .log-date{padding-top:0}
  .bug-meta,.bug-detail{margin-left:0}
  .bug-top{flex-wrap:wrap}
  .bug-status{margin-left:0;order:3}
  .announce-inner{font-size:10.5px;gap:10px;letter-spacing:.06em}
  .announce-inner .hide-sm{display:none}
  .footer-inner{grid-template-columns:1fr;gap:28px}
  .qr{width:170px;height:170px}
  .hero-meta{font-size:9.5px}
  .tl-ruler i:nth-child(even){display:none}
}

/* ==========================================================================
   手机端独立排版（≤760px）
   桌面版是「左文右图 + 多列网格」，手机端不复用它的比例，改为单列 + 全宽组件：
   竖向节奏 44/28/16，标题只降两档字阶，橙色只在状态与 CTA 出现。
   ========================================================================== */
@media (max-width:760px){
  /* —— 骨架 —— */
  .container{width:calc(100% - 36px)}
  .section{padding:44px 0}
  .sec-head{gap:10px;margin-bottom:16px}
  .sec-head .px,.sec-head .mono-sm{font-size:10.5px;letter-spacing:.1em}
  .section-head{margin-bottom:24px}
  h2.display{font-size:26px;line-height:1.35}
  .lead{font-size:14px;line-height:1.75}
  .eyebrow{font-size:10px;letter-spacing:.12em}

  /* —— 导航：抽屉打开后是整块浅色面板 —— */
  .nav-inner{padding:10px 0;gap:10px}
  .nav.open .nav-inner{padding-bottom:14px}
  .nav.open .nav-links a{padding:14px 0;font-size:13px}
  .nav.open .nav-actions .btn{width:100%;justify-content:center;padding:12px 16px}
  .brand-word{font-size:22px}
  .ver-chip{display:none}

  /* —— 首屏：整块橙色，文字占满，装饰让位 —— */
  .hero{padding:36px 0 40px;min-height:0;align-items:flex-start}
  .hero-matrix{display:none}
  .hero-inner{max-width:none;margin:0 18px}
  .hero-statements{font-size:30px;line-height:1.3;letter-spacing:0}
  .hero-sub{margin-top:16px;font-size:14px;line-height:1.75;max-width:none}
  .hero-actions{margin-top:22px;gap:10px}
  .hero-actions .btn{flex:1 1 100%;justify-content:center;padding:13px 18px}
  .anno{margin-top:18px;font-size:10px;gap:10px;flex-wrap:wrap}
  .anno .bar{display:none}
  .hero-meta{margin-top:18px;gap:8px 16px;font-size:10px;line-height:1.6}

  /* —— 跑马灯：手机上只添乱，隐藏 —— */
  .ticker{display:none}

  /* —— 公告：每条都是「标题 / 日期 / 详情」竖排 —— */
  .ann-card{padding:2px 16px}
  .ann-row{padding:14px 0;gap:10px}
  .ann-title{font-size:14px;line-height:1.5}
  .ann-date{font-size:11px}
  .ann-more{align-self:flex-start;padding:8px 14px}

  /* —— 功能卡片：单列，图标与序号同排 —— */
  .grid-3{grid-template-columns:1fr;gap:12px}
  .card{padding:20px 18px}
  .card .ico{margin-bottom:14px}
  .card .num{position:static;display:inline-block;margin-left:8px;font-size:10px}
  .quick{grid-template-columns:1fr;gap:12px}
  .qcard{padding:20px 18px}

  /* —— 更新日志：日期做小标签，正文全宽 —— */
  .log{border-top:0}
  .log-item{grid-template-columns:1fr;gap:8px;padding:18px 0}
  .log-date{font-size:10px;letter-spacing:.14em;padding-top:0;color:var(--gray-soft)}
  .log-ver{font-size:15px}
  .log-item ul{margin-top:6px}
  .log-item li{font-size:13px;line-height:1.7}

  /* —— Bug 公示：筛选可横滑，统计压成两行 —— */
  .filters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;gap:6px;scrollbar-width:none}
  .filters::-webkit-scrollbar{display:none}
  .pill{flex:none;white-space:nowrap;padding:8px 12px;font-size:11px}
  .bug-stats{padding:12px 14px;margin-bottom:14px}
  .stats-line{gap:10px 12px}
  .stats-title{font-size:11px}
  .stats-bar{flex:1 1 100%;max-width:none;order:3;height:6px}
  .stats-counts{order:4;gap:10px;font-size:11px}
  .stats-foot{order:5;margin-left:0;flex-basis:100%;font-size:10px}
  .bug-item{padding:16px 14px}
  .bug-top{gap:6px}
  .bug-title{font-size:14px;line-height:1.5}
  .bug-meta{font-size:11px;line-height:1.8;gap:6px}
  .bug-detail{font-size:12.5px;margin-top:8px}

  /* —— 表单：标题区竖排，字段全宽 —— */
  .submit-panel{padding:20px 16px;border-radius:16px;margin-top:18px}
  .submit-head{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:16px}
  .submit-head h3{font-size:20px}
  .submit-side{justify-content:flex-start;width:100%}
  .submit-side .caption{text-align:left;max-width:none}
  .submit-panel form{gap:14px}
  .grid2{grid-template-columns:1fr;gap:14px}
  .submit-foot{flex-direction:column;align-items:stretch;gap:10px}
  .submit-foot .btn{width:100%;justify-content:center}
  .upload{padding:20px 14px}

  /* —— QQ 群：上下堆叠，二维码居中 —— */
  .qq-card{grid-template-columns:1fr;border-radius:16px}
  .qq-info{padding:22px 18px}
  .qq-num{font-size:32px;letter-spacing:.02em}
  .qq-side{padding:18px;border-left:0;border-top:1px solid var(--line);align-items:center}
  .qr{width:150px;height:150px;margin:0 auto}
  .qq-note{text-align:center;margin-top:10px}

  /* —— 下载：深色块收窄内边距，按钮全宽 —— */
  .dl-block{padding:26px 20px;border-radius:18px}
  .dl-block .display{font-size:24px}
  .dl-actions{flex-direction:column;gap:10px;margin-top:22px}
  .dl-actions .btn{width:100%;justify-content:center;padding:13px 18px}
  .dl-word{font-size:74px;right:-8px;bottom:-10px;opacity:.7}
  .dl-meta{font-size:11px;line-height:1.7}

  /* —— 规格表：单列，边框交给容器 —— */
  .specs{grid-template-columns:1fr}
  .spec{padding:18px 0;border-right:0;border-bottom:1px solid var(--line-soft)}
  .spec:last-child{border-bottom:0}
  .spec .v{font-size:22px}

  /* —— 页脚：品牌 + 两组链接 —— */
  .footer{padding:36px 0 20px}
  .footer-inner{grid-template-columns:1fr 1fr;gap:26px 20px}
  .footer-brand{grid-column:1 / -1}
  .footer ul a{font-size:13.5px}
  .footer-bottom{font-size:9px;gap:8px;line-height:1.7}
}

/* 超窄屏（≤380px）：再收一档，避免任何横向滚动 */
@media (max-width:380px){
  .container{width:calc(100% - 28px)}
  .hero-statements{font-size:26px}
  .qq-num{font-size:28px;letter-spacing:0}
  .stats-counts span{font-size:10.5px}
}

/* ---------- 标题一律正体（像素字没有真斜体，合成斜体会糊） ---------- */
h1,h2,h3,h4,h5,h6,.display,.hero-statements,.team-title,.team-title i,
em,i[class],.log-ver,.qq-num,.bug-title,.ann-title{font-style:normal}
