/* ============================================================
   国米指南 · 共享样式表  /assets/site.css
   母题：被点亮的战术板 —— 深墨蓝底、坐标网格、等宽编号、电光蓝与亮金
   ============================================================ */

/* ---------- 01 · 设计变量 ---------- */
:root{
  --c-ink:#0A1A2F;
  --c-ink-2:#0E2748;
  --c-line:#163B7A;
  --c-volt:#1E5BFF;
  --c-volt-soft:#7FA8FF;
  --c-gold:#F5C542;
  --c-bone:#F2EFE9;
  --c-slate:#6A7684;
  --c-moss:#2E7D6B;
  --c-clay:#B06A4A;
  --c-pale:#E8EEF9;

  --f-head:"HarmonyOS Sans SC","Source Han Sans SC","Noto Sans SC",system-ui,"PingFang SC","Microsoft YaHei",sans-serif;
  --f-body:"Source Han Sans SC","Noto Sans SC",system-ui,"PingFang SC","Microsoft YaHei",sans-serif;
  --f-mono:"IBM Plex Mono","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,"Courier New",monospace;

  --w-max:1280px;
  --gut:clamp(16px,4vw,40px);
  --hdr:72px;
}

/* ---------- 02 · 重置 ---------- */
*,*::before,*::after{box-sizing:border-box}
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  scroll-behavior:smooth;
}
body{
  margin:0;
  min-height:100%;
  background-color:var(--c-ink);
  background-image:
    linear-gradient(rgba(30,91,255,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(30,91,255,.055) 1px,transparent 1px);
  background-size:72px 72px;
  background-position:center top;
  color:var(--c-pale);
  font-family:var(--f-body);
  font-size:16px;
  font-weight:400;
  line-height:1.8;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
body[data-nav-locked]{overflow:hidden}

img,svg,video{display:block;max-width:100%}
img{height:auto}
a{color:var(--c-volt-soft);text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3,h4,h5,p,figure,blockquote,dl,dd{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
table{border-collapse:collapse;width:100%}
hr{border:0;border-top:1px solid var(--c-line);margin:0}
[hidden]{display:none!important}

/* ---------- 03 · 中文排版基准 ---------- */
h1,h2,h3,h4{
  font-family:var(--f-head);
  font-weight:800;
  line-height:1.3;
  letter-spacing:-.01em;
  color:var(--c-bone);
}
h1{font-size:clamp(30px,4.4vw,50px);line-height:1.18;letter-spacing:-.02em;font-weight:900}
h2{font-size:clamp(23px,3vw,32px)}
h3{font-size:clamp(17px,1.8vw,20px)}
h4{font-size:16px}
p{line-height:1.85}
strong{font-weight:700}

.gi-mono{font-family:var(--f-mono);letter-spacing:.06em}
.gi-visually-hidden{
  position:absolute!important;
  width:1px;height:1px;
  margin:-1px;padding:0;border:0;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);
  white-space:nowrap;
}

/* ---------- 04 · 焦点可见 ---------- */
:focus-visible{outline:2px solid var(--c-volt-soft);outline-offset:2px}

/* ---------- 05 · 跳转链接 ---------- */
.skip-link{
  position:fixed;
  left:12px;top:-120px;
  z-index:200;
  display:inline-block;
  padding:10px 18px;
  background:var(--c-gold);
  color:var(--c-ink);
  font-family:var(--f-mono);
  font-size:12.5px;
  letter-spacing:.08em;
  transition:top .16s ease-out;
}
.skip-link:focus{top:12px}

/* ---------- 06 · 页眉：固定命令栏 ---------- */
.gi-header{
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(10,26,47,.94);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--c-line);
}
.gi-header__inner{
  display:flex;
  align-items:center;
  gap:clamp(10px,1.6vw,24px);
  width:100%;
  max-width:var(--w-max);
  height:var(--hdr);
  margin:0 auto;
  padding:0 var(--gut);
}
.gi-header__progress{
  position:absolute;
  left:0;right:0;bottom:-1px;
  height:2px;
  background-image:linear-gradient(90deg,var(--c-volt) 0%,var(--c-volt-soft) 45%,var(--c-gold) 100%);
  transform:scaleX(0);
  transform-origin:left center;
  pointer-events:none;
}

/* 品牌 */
.gi-brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  flex:0 0 auto;
  color:var(--c-bone);
}
.gi-brand__mark{
  width:16px;height:16px;
  flex:0 0 auto;
  background-image:
    linear-gradient(var(--c-gold),var(--c-gold)),
    linear-gradient(var(--c-volt),var(--c-volt)),
    linear-gradient(var(--c-volt-soft),var(--c-volt-soft)),
    linear-gradient(var(--c-line),var(--c-line));
  background-repeat:no-repeat;
  background-size:6px 6px,6px 6px,6px 6px,6px 6px;
  background-position:0 0,100% 0,0 100%,100% 100%;
}
.gi-brand__text{display:flex;flex-direction:column;line-height:1.15}
.gi-brand__name{
  font-family:var(--f-head);
  font-size:16px;
  font-weight:800;
  letter-spacing:.04em;
  color:var(--c-bone);
}
.gi-brand__coord{
  margin-top:2px;
  font-family:var(--f-mono);
  font-size:10px;
  letter-spacing:.16em;
  color:var(--c-gold);
}

/* 汉堡按钮 */
.gi-nav-toggle{
  display:none;
  align-items:center;
  justify-content:center;
  width:38px;height:38px;
  flex:0 0 auto;
  border:1px solid var(--c-line);
  color:var(--c-pale);
  transition:border-color .16s ease-out,color .16s ease-out;
}
.gi-nav-toggle:hover{border-color:var(--c-gold);color:var(--c-gold)}
.gi-nav-toggle__bars{display:block;width:16px}
.gi-nav-toggle__bars i{display:block;height:1.5px;background:currentColor}
.gi-nav-toggle__bars i + i{margin-top:4px}
.gi-nav-toggle[aria-expanded="true"]{border-color:var(--c-gold);color:var(--c-gold)}
.gi-nav-toggle[aria-expanded="true"] .gi-nav-toggle__bars i:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.gi-nav-toggle[aria-expanded="true"] .gi-nav-toggle__bars i:nth-child(2){opacity:0}
.gi-nav-toggle[aria-expanded="true"] .gi-nav-toggle__bars i:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}

/* 坐标导航 */
.gi-nav{
  display:flex;
  flex:1 1 auto;
  min-width:0;
  justify-content:center;
}
.gi-nav__list{
  display:flex;
  align-items:center;
  gap:clamp(2px,.9vw,16px);
}
.gi-nav__link{
  position:relative;
  display:flex;
  flex-direction:column;
  padding:10px 6px 9px;
  color:var(--c-pale);
  font-size:13.5px;
  font-weight:500;
  white-space:nowrap;
  transition:color .16s ease-out;
}
.gi-nav__coord{
  font-family:var(--f-mono);
  font-size:9.5px;
  letter-spacing:.16em;
  color:var(--c-volt-soft);
  transition:color .16s ease-out;
}
.gi-nav__label{margin-top:3px}
.gi-nav__link::after{
  content:"";
  position:absolute;
  left:6px;right:6px;bottom:0;
  height:2px;
  background:var(--c-gold);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .16s ease-out;
}
.gi-nav__link:hover,
.gi-nav__link:focus-visible{color:#fff}
.gi-nav__link:hover .gi-nav__coord,
.gi-nav__link:focus-visible .gi-nav__coord{color:var(--c-gold)}
.gi-nav__link:hover::after,
.gi-nav__link:focus-visible::after{transform:scaleX(1)}
.gi-nav__link[aria-current="page"]{color:#fff}
.gi-nav__link[aria-current="page"] .gi-nav__coord{color:var(--c-gold)}
.gi-nav__link[aria-current="page"]::after{transform:scaleX(1)}
.gi-nav__foot{display:none}

/* 右侧 */
.gi-header__aside{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  margin-left:auto;
}
.gi-icon-btn{
  display:grid;
  place-items:center;
  width:36px;height:36px;
  border:1px solid var(--c-line);
  color:var(--c-volt-soft);
  transition:color .16s ease-out,border-color .16s ease-out,background-color .16s ease-out;
}
.gi-icon-btn:hover,
.gi-icon-btn:focus-visible{color:#fff;border-color:var(--c-volt);background:var(--c-volt)}

/* ---------- 07 · 通用按钮 ---------- */
.gi-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:40px;
  padding:10px 18px;
  border:1px solid var(--c-volt);
  background:var(--c-volt);
  color:#fff;
  font-size:13.5px;
  font-weight:600;
  letter-spacing:.03em;
  line-height:1;
  text-align:center;
  transition:background-color .16s ease-out,border-color .16s ease-out,color .16s ease-out;
}
.gi-btn:hover,
.gi-btn:focus-visible{background:var(--c-gold);border-color:var(--c-gold);color:var(--c-ink)}
.gi-btn--ghost{background:transparent;border-color:var(--c-line);color:var(--c-pale)}
.gi-btn--ghost:hover,
.gi-btn--ghost:focus-visible{background:transparent;border-color:var(--c-gold);color:var(--c-gold)}
.gi-btn--bone{background:var(--c-bone);border-color:var(--c-bone);color:var(--c-ink)}
.gi-btn--bone:hover,
.gi-btn--bone:focus-visible{background:var(--c-gold);border-color:var(--c-gold);color:var(--c-ink)}
.gi-btn--sm{min-height:34px;padding:7px 14px;font-size:12.5px}
.gi-btn--wide{width:100%}

/* ---------- 08 · 页脚 ---------- */
.gi-footer{
  margin-top:clamp(56px,9vw,120px);
  padding:0 var(--gut);
}
.gi-footer__frame{max-width:var(--w-max);margin:0 auto}
.gi-footer__frame::before{
  content:"";
  display:block;
  height:1px;
  margin-bottom:clamp(22px,4vw,40px);
  background:linear-gradient(90deg,var(--c-line) 0%,rgba(22,59,122,.15) 100%);
}
.gi-footer__panel{
  position:relative;
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1.25fr;
  gap:clamp(20px,3vw,44px);
  padding:clamp(24px,3.4vw,44px);
  background:var(--c-bone);
  color:var(--c-line);
  border:1px solid var(--c-line);
}
.gi-footer__panel::before{
  content:"";
  position:absolute;
  top:-1px;left:-1px;
  width:72px;height:3px;
  background:var(--c-gold);
}
.gi-footer__brand{min-width:0}
.gi-footer__seal{
  display:block;
  width:3px;height:26px;
  margin-bottom:14px;
  background:linear-gradient(180deg,var(--c-volt) 0%,var(--c-gold) 100%);
}
.gi-footer__wordmark{
  font-family:var(--f-head);
  font-size:clamp(18px,2vw,22px);
  font-weight:900;
  letter-spacing:.06em;
  color:var(--c-ink);
}
.gi-footer__tagline{
  margin-top:10px;
  max-width:30ch;
  font-size:14px;
  line-height:1.8;
  color:var(--c-slate);
}
.gi-footer__col{min-width:0}
.gi-footer__cap{
  padding-bottom:10px;
  margin-bottom:14px;
  border-bottom:1px solid rgba(22,59,122,.25);
  font-family:var(--f-mono);
  font-size:10.5px;
  letter-spacing:.22em;
  color:var(--c-slate);
}
.gi-footer__list{display:flex;flex-direction:column;gap:10px}
.gi-footer__list li{
  display:flex;
  align-items:baseline;
  gap:10px;
  min-width:0;
  font-size:14px;
  line-height:1.75;
  color:var(--c-line);
}
.gi-footer__list a{
  color:var(--c-line);
  text-decoration:underline;
  text-decoration-color:transparent;
  text-underline-offset:3px;
  transition:color .16s ease-out,text-decoration-color .16s ease-out;
}
.gi-footer__list a:hover,
.gi-footer__list a:focus-visible{color:var(--c-volt);text-decoration-color:var(--c-volt)}
.gi-footer__list a:hover .gi-coord,
.gi-footer__list a:focus-visible .gi-coord{color:var(--c-volt)}
.gi-footer__val{
  font-family:var(--f-mono);
  font-size:13px;
  letter-spacing:.02em;
  color:var(--c-line);
  overflow-wrap:anywhere;
}
.gi-coord{
  flex:0 0 auto;
  font-family:var(--f-mono);
  font-size:10px;
  letter-spacing:.12em;
  color:var(--c-slate);
}
.gi-footer__base{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:10px 24px;
  padding:20px 2px 34px;
  font-family:var(--f-mono);
  font-size:11.5px;
  letter-spacing:.06em;
  line-height:1.9;
  color:rgba(232,238,249,.58);
}
.gi-footer__addr{margin:0}
.gi-footer__meta{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.gi-footer__sep{color:var(--c-line)}

/* ---------- 09 · 布局容器 ---------- */
.gi-main{display:block;position:relative;min-width:0}
#main-content{scroll-margin-top:calc(var(--hdr) + 12px)}
.gi-wrap{
  width:100%;
  max-width:var(--w-max);
  margin-inline:auto;
  padding-inline:var(--gut);
}
.gi-wrap--narrow{max-width:920px}

/* ---------- 10 · 面包屑 ---------- */
.gi-crumbs{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  padding:22px 0 0;
  font-family:var(--f-mono);
  font-size:11px;
  letter-spacing:.1em;
  color:var(--c-volt-soft);
}
.gi-crumbs a{color:var(--c-volt-soft);transition:color .16s ease-out}
.gi-crumbs a:hover,
.gi-crumbs a:focus-visible{color:var(--c-gold)}
.gi-crumbs__sep{color:var(--c-line)}
.gi-crumbs [aria-current="page"]{color:var(--c-gold)}

/* ---------- 11 · 画板 / 面板 ---------- */
.gi-panel{
  position:relative;
  padding:clamp(20px,3vw,34px);
  border:1px solid var(--c-line);
  background:var(--c-ink-2);
}
.gi-panel--bone{background:var(--c-bone);color:var(--c-line);border-color:var(--c-bone)}
.gi-panel--volt{border-color:var(--c-volt);box-shadow:inset 3px 0 0 0 var(--c-volt)}
.gi-panel--flat{background:transparent}

/* ---------- 12 · 章节头 ---------- */
.gi-head{display:flex;flex-direction:column;gap:10px}
.gi-head__coord{
  font-family:var(--f-mono);
  font-size:11px;
  letter-spacing:.22em;
  color:var(--c-gold);
}
.gi-head__title{
  font-family:var(--f-head);
  font-size:clamp(22px,3vw,32px);
  font-weight:800;
  line-height:1.25;
  letter-spacing:-.01em;
  color:var(--c-bone);
}
.gi-head__sub{
  max-width:62ch;
  font-size:14.5px;
  line-height:1.8;
  color:var(--c-volt-soft);
}

/* ---------- 13 · 网格 ---------- */
.gi-grid{display:grid;gap:clamp(16px,2.4vw,28px)}
.gi-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.gi-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.gi-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.gi-grid--5-7{grid-template-columns:5fr 7fr}
.gi-grid--7-5{grid-template-columns:7fr 5fr}
.gi-grid--auto{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}

/* ---------- 14 · 图片容器 ---------- */
.gi-media{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  border:1px solid var(--c-line);
  background:linear-gradient(150deg,var(--c-ink-2) 0%,var(--c-ink) 68%);
}
.gi-media > img,
.gi-media > video,
.gi-media > picture > img{
  width:100%;height:100%;
  object-fit:cover;
}
.gi-media::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(30,91,255,.16) 1px,transparent 1px),
    linear-gradient(90deg,rgba(30,91,255,.16) 1px,transparent 1px);
  background-size:33.3333% 33.3333%;
  opacity:.75;
}
.gi-media--plain::after{display:none}
.gi-media--square{aspect-ratio:1/1}
.gi-media--portrait{aspect-ratio:3/4}
.gi-media--wide{aspect-ratio:21/9}
.gi-media__cap{
  display:block;
  margin-top:10px;
  font-family:var(--f-mono);
  font-size:11px;
  letter-spacing:.1em;
  color:var(--c-volt-soft);
}

/* ---------- 15 · 分段切换 ---------- */
.gi-tabs{display:block}
.gi-tabs__list{
  display:flex;
  flex-wrap:wrap;
  gap:0;
  border-bottom:1px solid var(--c-line);
}
.gi-tabs__btn{
  position:relative;
  margin-bottom:-1px;
  padding:12px 18px;
  border-bottom:2px solid transparent;
  font-family:var(--f-mono);
  font-size:12.5px;
  letter-spacing:.08em;
  color:var(--c-volt-soft);
  transition:color .16s ease-out,border-color .16s ease-out;
}
.gi-tabs__btn:hover{color:var(--c-pale)}
.gi-tabs__btn[aria-selected="true"]{color:var(--c-gold);border-bottom-color:var(--c-gold)}
.gi-tabs__panel{padding-top:24px}
@keyframes gi-fade{from{opacity:.35}to{opacity:1}}
.gi-tabs__panel{animation:gi-fade .2s ease-out}

/* ---------- 16 · 数值 / 状态 / 注释 ---------- */
.gi-stat{display:flex;flex-direction:column;gap:4px}
.gi-stat__num{
  font-family:var(--f-mono);
  font-size:clamp(22px,3vw,34px);
  font-weight:600;
  line-height:1;
  letter-spacing:.02em;
  color:var(--c-gold);
}
.gi-stat__cap{font-size:12.5px;letter-spacing:.06em;color:var(--c-slate)}

.gi-state{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 9px;
  border:1px solid currentColor;
  font-family:var(--f-mono);
  font-size:11px;
  letter-spacing:.12em;
}
.gi-state--ok{color:var(--c-moss)}
.gi-state--warn{color:var(--c-clay)}
.gi-state--live{color:var(--c-volt-soft)}

.gi-note{
  display:flex;
  gap:12px;
  padding:14px 16px;
  border-left:2px solid var(--c-volt);
  background:var(--c-ink-2);
  font-size:13.5px;
  line-height:1.75;
  color:#A9B6CB;
}
.gi-note--ok{border-left-color:var(--c-moss)}
.gi-note--warn{border-left-color:var(--c-clay)}

.gi-tag{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:5px 10px;
  border:1px solid var(--c-line);
  font-family:var(--f-mono);
  font-size:10.5px;
  letter-spacing:.16em;
  color:var(--c-gold);
}

/* ---------- 17 · 长文排版域 ---------- */
.gi-prose{max-width:74ch;color:inherit}
.gi-prose > * + *{margin-top:1.1em}
.gi-prose h2,
.gi-prose h3{font-family:var(--f-head);color:var(--c-bone);line-height:1.35}
.gi-prose h2{margin-top:2em;font-size:clamp(21px,2.4vw,28px);font-weight:800}
.gi-prose h3{margin-top:1.6em;font-size:clamp(17px,1.6vw,19px);font-weight:700}
.gi-prose a{
  border-bottom:1px solid rgba(127,168,255,.45);
  transition:color .16s ease-out,border-color .16s ease-out;
}
.gi-prose a:hover,
.gi-prose a:focus-visible{color:var(--c-gold);border-bottom-color:var(--c-gold)}
.gi-prose strong{color:#fff}
.gi-prose ul li{position:relative;padding-left:20px;margin-top:.55em}
.gi-prose ul li::before{
  content:"";
  position:absolute;
  left:0;top:.82em;
  width:8px;height:1px;
  background:var(--c-volt);
}
.gi-prose ol{counter-reset:gi-ol}
.gi-prose ol li{
  counter-increment:gi-ol;
  position:relative;
  padding-left:36px;
  margin-top:.75em;
}
.gi-prose ol li::before{
  content:counter(gi-ol,decimal-leading-zero);
  position:absolute;
  left:0;top:.1em;
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:.1em;
  color:var(--c-gold);
}
.gi-prose code{
  padding:1px 5px;
  border:1px solid var(--c-line);
  background:var(--c-ink-2);
  font-family:var(--f-mono);
  font-size:.92em;
  color:var(--c-volt-soft);
}

/* ---------- 18 · 面板显现 ---------- */
html.js [data-reveal]{transition:opacity .24s ease-out,transform .24s ease-out}
html.js [data-reveal]:not([data-reveal-in]){opacity:0;transform:translateY(8px)}

/* ---------- 19 · 响应式：命令栏收拢 ---------- */
@media (max-width:1120px){
  :root{--hdr:64px}

.gi-header__inner{gap:10px}
  .gi-brand__name{font-size:15px}
  .gi-header__aside{gap:8px}
  .gi-header__aside .gi-btn{display:none}
  .gi-nav-toggle{display:inline-flex}

.gi-nav{
    position:fixed;
    left:0;right:0;
    top:var(--hdr);bottom:0;
    z-index:95;
    display:none;
    flex-direction:column;
    justify-content:flex-start;
    align-items:stretch;
    padding:12px var(--gut) 40px;
    background:var(--c-ink-2);
    border-top:1px solid var(--c-line);
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  .gi-nav[data-open]{display:flex}
  .gi-nav__list{flex-direction:column;align-items:stretch;gap:0;width:100%}
  .gi-nav__link{
    flex-direction:row;
    align-items:baseline;
    gap:14px;
    padding:16px 2px;
    border-bottom:1px solid rgba(22,59,122,.75);
    font-size:16px;
    white-space:normal;
  }
  .gi-nav__link::after{display:none}
  .gi-nav__link:hover{background:rgba(30,91,255,.08)}
  .gi-nav__coord{width:40px;flex:0 0 auto;font-size:11px}
  .gi-nav__label{margin-top:0}
  .gi-nav__link[aria-current="page"]{color:var(--c-gold)}
  .gi-nav__foot{display:block;margin-top:26px}
  .gi-nav__foot .gi-btn{width:100%}
}

/* 桌面端窄幅收缩导航 */
@media (min-width:1121px) and (max-width:1400px){
  .gi-nav__list{gap:6px}
  .gi-nav__link{padding-left:4px;padding-right:4px;font-size:12.5px}
}

/* ---------- 20 · 响应式：面板与页脚 ---------- */
@media (max-width:1080px){
  .gi-footer__panel{grid-template-columns:1fr 1fr;gap:28px}
}
@media (max-width:900px){
  .gi-grid--3,
  .gi-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gi-grid--5-7,
  .gi-grid--7-5{grid-template-columns:1fr}
}
@media (max-width:600px){
  .gi-brand__name{font-size:14.5px}
  .gi-brand__coord{font-size:9px}
  .gi-grid--2,
  .gi-grid--3,
  .gi-grid--4{grid-template-columns:1fr}
  .gi-footer__panel{grid-template-columns:1fr;gap:24px}
  .gi-footer__base{flex-direction:column;align-items:flex-start}
  .gi-tabs__list{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .gi-tabs__btn{white-space:nowrap}
}

/* ---------- 21 · 动效降级 ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:1ms!important;
    animation-delay:0ms!important;
    transition-duration:1ms!important;
    transition-delay:0ms!important;
  }
  html.js [data-reveal]:not([data-reveal-in]){transform:none}
  .gi-header__progress{transition:none}
}
