/* ============================================================
   pc加拿大28主站 · 共享样式表 /assets/site.css
   深空档案库：冷色结构 + 暖色高光 + 悬浮胶囊导航
   ============================================================ */

/* ---------- 1. 设计令牌 ---------- */
:root{
  --bg:#05070F;
  --panel:#0D1428;
  --raise:#16203C;
  --cyan:#2EE6DE;
  --magenta:#FF3E9D;
  --violet:#7A4BFF;
  --gold:#FFC85A;
  --ink:#F4F7FF;
  --muted:#97A3C4;
  --line:#25304F;
  --cool:#4C7DFF;
  --warm:#FF7A59;
  --ok:#3ED598;

  --font-head:"Oswald","Archivo Narrow","Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --font-body:"Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-num:"JetBrains Mono","IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;

  --ease:cubic-bezier(.2,.7,.3,1);
  --r-s:12px;
  --r-m:18px;
  --r-l:24px;
  --r-pill:999px;
  --wrap:1320px;
  --gutter:20px;
}

/* ---------- 2. reset ---------- */
*,*::before,*::after{box-sizing:border-box;}

html{
  background:var(--bg);
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
}

body{
  margin:0;
  position:relative;
  z-index:0;
  background:transparent;
  color:var(--ink);
  font-family:var(--font-body);
  font-size:17px;
  font-weight:400;
  line-height:1.75;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

/* 背景层：光晕 + 数字矩阵网格 */
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  pointer-events:none;
  background:
    radial-gradient(760px 520px at 88% -8%, rgba(122,75,255,.22), transparent 68%),
    radial-gradient(600px 460px at 2% 14%, rgba(46,230,222,.13), transparent 70%),
    radial-gradient(520px 520px at 96% 96%, rgba(255,62,157,.10), transparent 72%);
}

body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:.55;
  background-image:
    linear-gradient(rgba(37,48,79,.30) 1px, transparent 1px),
    linear-gradient(90deg, rgba(37,48,79,.30) 1px, transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(120% 88% at 50% 4%, #000 0%, transparent 76%);
  mask-image:radial-gradient(120% 88% at 50% 4%, #000 0%, transparent 76%);
}

img,svg,video{max-width:100%;display:block;}
button,input,select,textarea{font:inherit;color:inherit;}
h1,h2,h3,h4,h5,p,ul,ol,figure,blockquote{margin:0;}
ul,ol{padding:0;list-style:none;}
a{color:inherit;text-decoration:none;}
::selection{background:rgba(46,230,222,.32);color:var(--ink);}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:8px;}

/* ---------- 3. 中文排版 ---------- */
h1,h2,h3,h4{
  font-family:var(--font-head);
  font-weight:800;
  line-height:1.1;
  letter-spacing:.02em;
  color:var(--ink);
}
h1{font-size:clamp(34px,5vw,64px);}
h2{font-size:clamp(24px,3vw,34px);}
h3{font-size:clamp(19px,2vw,24px);}
p{max-width:72ch;}

/* ---------- 4. 通用工具 ---------- */
.wrap{
  width:100%;
  max-width:var(--wrap);
  margin:0 auto;
  padding-left:var(--gutter);
  padding-right:var(--gutter);
}

.sr-only{
  position:absolute;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
  border:0;
}

.skip-link{
  position:fixed;
  top:14px;
  left:16px;
  z-index:200;
  transform:translateY(-180%);
  padding:10px 20px;
  border-radius:var(--r-pill);
  background:var(--cyan);
  color:#04060E;
  font-size:14px;
  font-weight:700;
  transition:transform 200ms var(--ease);
}
.skip-link:focus{transform:translateY(0);}

#main-content{display:block;scroll-margin-top:124px;}

.blob{
  position:absolute;
  z-index:0;
  pointer-events:none;
  border-radius:58% 42% 46% 54% / 48% 54% 46% 52%;
}
.blob--cyan{background:radial-gradient(circle at 34% 32%, rgba(46,230,222,.20), rgba(46,230,222,0) 72%);}
.blob--magenta{background:radial-gradient(circle at 62% 60%, rgba(255,62,157,.18), rgba(255,62,157,0) 72%);}

/* 进场显现 */
[data-reveal]{transition:opacity 220ms var(--ease), transform 320ms var(--ease);}
html.js-ready [data-reveal]{opacity:0;transform:translateY(8px);}
html.js-ready [data-reveal].is-visible{opacity:1;transform:none;}

/* ---------- 5. 头部：悬浮胶囊导航 ---------- */
.site-header{
  position:fixed;
  top:0;left:0;right:0;
  z-index:80;
  padding:16px var(--gutter) 0;
  pointer-events:none;
}

.nav-shell{
  position:relative;
  pointer-events:auto;
  display:flex;
  align-items:center;
  gap:14px;
  width:100%;
  max-width:var(--wrap);
  margin:0 auto;
  padding:10px 14px 10px 16px;
  border-radius:var(--r-pill);
  background:rgba(22,32,60,.74);
  border:1px solid rgba(46,230,222,.22);
  box-shadow:0 18px 44px rgba(0,0,0,.48), inset 0 1px 0 rgba(244,247,255,.06);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  backdrop-filter:blur(14px) saturate(140%);
  transition:padding 260ms var(--ease), background 260ms var(--ease),
             box-shadow 260ms var(--ease), border-color 260ms var(--ease);
}

.site-header.is-condensed .nav-shell{
  padding:5px 10px 5px 12px;
  background:rgba(13,20,40,.90);
  border-color:rgba(46,230,222,.34);
  box-shadow:0 12px 30px rgba(0,0,0,.55);
}

/* 品牌 */
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  flex:0 0 auto;
  min-width:0;
}
.brand-mark{
  display:grid;
  place-items:center;
  width:40px;height:40px;
  flex:0 0 auto;
  border-radius:50%;
  font-family:var(--font-num);
  font-size:15px;
  font-weight:700;
  letter-spacing:0;
  color:#04060E;
  background:linear-gradient(135deg,var(--cyan),var(--violet) 58%,var(--magenta));
  box-shadow:0 0 0 1px rgba(46,230,222,.45), 0 6px 18px rgba(46,230,222,.22);
  transition:width 260ms var(--ease), height 260ms var(--ease), font-size 260ms var(--ease);
}
.site-header.is-condensed .brand-mark{width:32px;height:32px;font-size:13px;}

.brand-text{display:flex;flex-direction:column;min-width:0;line-height:1.15;}
.brand-name{
  font-family:var(--font-head);
  font-size:16px;
  font-weight:700;
  letter-spacing:.04em;
  color:var(--ink);
  white-space:nowrap;
}
.brand-tag{
  font-family:var(--font-num);
  font-size:10.5px;
  letter-spacing:.14em;
  color:var(--muted);
  white-space:nowrap;
  transition:opacity 200ms var(--ease);
}
.site-header.is-condensed .brand-tag{opacity:0;height:0;overflow:hidden;}

/* 导航 */
.site-nav{
  display:flex;
  align-items:center;
  gap:12px;
  margin-left:auto;
  min-width:0;
}
.nav-list{
  display:flex;
  align-items:center;
  gap:2px;
  flex-wrap:nowrap;
}
.nav-list a{
  display:block;
  padding:9px 13px;
  border-radius:var(--r-pill);
  border:1px solid transparent;
  font-size:14.5px;
  font-weight:500;
  color:var(--muted);
  white-space:nowrap;
  transition:color 200ms var(--ease), background 200ms var(--ease), border-color 200ms var(--ease);
}
.nav-list a:hover{
  color:var(--ink);
  background:rgba(46,230,222,.09);
  border-color:rgba(46,230,222,.28);
}
.nav-list a:focus-visible{outline-offset:2px;}
.nav-list a[aria-current="page"]{
  color:#04060E;
  font-weight:700;
  background:var(--cyan);
  border-color:var(--cyan);
  box-shadow:0 0 0 4px rgba(46,230,222,.14);
}

.nav-cta{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:10px 18px;
  border-radius:var(--r-pill);
  font-size:14px;
  font-weight:700;
  letter-spacing:.04em;
  color:#04060E;
  background:linear-gradient(120deg,var(--cyan),var(--violet));
  box-shadow:0 8px 22px rgba(46,230,222,.22);
  transition:transform 200ms var(--ease), box-shadow 200ms var(--ease);
}
.nav-cta:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(46,230,222,.32);}

/* 汉堡按钮（仅移动端显示） */
.nav-toggle{
  display:none;
  margin-left:auto;
  width:44px;height:44px;
  padding:0;
  flex:0 0 auto;
  border-radius:50%;
  border:1px solid rgba(46,230,222,.32);
  background:rgba(13,20,40,.9);
  cursor:pointer;
  place-items:center;
  transition:background 200ms var(--ease), border-color 200ms var(--ease);
}
.nav-toggle:hover{background:rgba(46,230,222,.14);}
.nav-toggle-box{
  display:grid;
  gap:4px;
  width:18px;
}
.nav-toggle-box span{
  display:block;
  height:2px;
  border-radius:2px;
  background:var(--cyan);
  transition:transform 240ms var(--ease), opacity 180ms var(--ease);
}
.site-header[data-open="true"] .nav-toggle-box span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.site-header[data-open="true"] .nav-toggle-box span:nth-child(2){opacity:0;}
.site-header[data-open="true"] .nav-toggle-box span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

/* 遮罩 */
.nav-scrim{
  position:fixed;
  inset:0;
  z-index:70;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  background:rgba(3,5,12,.62);
  -webkit-backdrop-filter:blur(2px);
  backdrop-filter:blur(2px);
  transition:opacity 220ms var(--ease), visibility 220ms var(--ease);
}
.site-header[data-open="true"] + .nav-scrim{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

/* 移动端底部快捷栏 */
.quick-bar{display:none;}

/* ---------- 6. 页脚 ---------- */
.site-footer{
  position:relative;
  z-index:2;
  margin-top:96px;
  padding:56px 0 30px;
  overflow:hidden;
  border-top:1px solid var(--line);
  background:linear-gradient(180deg, rgba(13,20,40,.55), rgba(5,7,15,1) 46%);
}
.site-footer::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:1px;
  background:linear-gradient(90deg, transparent, var(--cyan) 22%, var(--magenta) 62%, transparent);
  opacity:.6;
}
.footer-glow{
  position:absolute;
  top:-160px;right:-80px;
  width:460px;height:400px;
  border-radius:52% 48% 58% 42% / 46% 54% 46% 54%;
  background:radial-gradient(circle at 40% 40%, rgba(122,75,255,.22), rgba(122,75,255,0) 70%);
  pointer-events:none;
}
.footer-inner{position:relative;z-index:1;}

.footer-grid{
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1.6fr;
  gap:40px 32px;
  padding-bottom:40px;
  border-bottom:1px solid var(--line);
}

.footer-brand{display:flex;flex-direction:column;align-items:flex-start;gap:12px;}
.footer-mark{
  display:grid;
  place-items:center;
  width:46px;height:46px;
  border-radius:14px;
  font-family:var(--font-num);
  font-size:17px;
  font-weight:700;
  color:#04060E;
  background:linear-gradient(135deg,var(--cyan),var(--violet) 60%,var(--magenta));
  box-shadow:0 0 0 1px rgba(46,230,222,.4);
}
.footer-brand-line{
  font-family:var(--font-head);
  font-size:17px;
  font-weight:700;
  letter-spacing:.04em;
  color:var(--ink);
}
.footer-legal{
  font-family:var(--font-num);
  font-size:12.5px;
  letter-spacing:.06em;
  color:var(--muted);
}
.footer-note{
  font-size:13.5px;
  line-height:1.7;
  color:var(--muted);
  max-width:38ch;
}

.footer-col{display:flex;flex-direction:column;gap:14px;min-width:0;}
.footer-col-title{
  font-family:var(--font-num);
  font-size:12px;
  font-weight:600;
  letter-spacing:.22em;
  color:var(--cyan);
  text-transform:uppercase;
}
.footer-list{display:flex;flex-direction:column;gap:9px;}
.footer-list a{
  display:inline-block;
  font-size:14.5px;
  color:var(--muted);
  transition:color 200ms var(--ease), transform 200ms var(--ease);
}
.footer-list a:hover{color:var(--cyan);transform:translateX(3px);}

.footer-contact{display:flex;flex-direction:column;gap:14px;}
.footer-contact li{
  display:grid;
  grid-template-columns:1fr auto;
  gap:2px 12px;
  align-items:center;
  padding-bottom:12px;
  border-bottom:1px dashed rgba(37,48,79,.9);
}
.footer-contact li:last-child{border-bottom:0;padding-bottom:0;}
.footer-contact-key{
  grid-column:1 / -1;
  font-family:var(--font-num);
  font-size:11px;
  letter-spacing:.16em;
  color:var(--muted);
}
.footer-contact-val{
  font-family:var(--font-num);
  font-size:14px;
  color:var(--ink);
  word-break:break-all;
}

.btn-copy{
  align-self:center;
  padding:6px 13px;
  border-radius:var(--r-pill);
  border:1px solid rgba(46,230,222,.38);
  background:rgba(46,230,222,.08);
  color:var(--cyan);
  font-size:12px;
  font-weight:600;
  letter-spacing:.04em;
  cursor:pointer;
  white-space:nowrap;
  transition:background 200ms var(--ease), color 200ms var(--ease), border-color 200ms var(--ease);
}
.btn-copy:hover{background:rgba(46,230,222,.2);color:var(--ink);}
.btn-copy.is-copied{
  background:rgba(62,213,152,.18);
  border-color:rgba(62,213,152,.6);
  color:var(--ok);
}

.footer-bottom{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding-top:22px;
}
.footer-copy{
  font-size:13px;
  color:var(--muted);
  font-family:var(--font-num);
  letter-spacing:.04em;
}

/* ---------- 7. 通用按钮 ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:13px 24px;
  border-radius:var(--r-pill);
  border:1px solid transparent;
  font-size:15px;
  font-weight:600;
  letter-spacing:.03em;
  cursor:pointer;
  transition:transform 200ms var(--ease), background 200ms var(--ease),
             color 200ms var(--ease), border-color 200ms var(--ease), box-shadow 200ms var(--ease);
}
.btn-primary{
  color:#04060E;
  background:linear-gradient(120deg,var(--cyan),var(--violet));
  box-shadow:0 10px 26px rgba(46,230,222,.22);
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(46,230,222,.32);}
.btn-ghost{
  color:var(--cyan);
  background:rgba(46,230,222,.07);
  border-color:rgba(46,230,222,.4);
}
.btn-ghost:hover{background:rgba(46,230,222,.16);color:var(--ink);}

/* ---------- 8. 面包屑与章节头 ---------- */
.breadcrumb{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin-bottom:26px;
  font-family:var(--font-num);
  font-size:12.5px;
  letter-spacing:.08em;
  color:var(--muted);
}
.breadcrumb li{display:flex;align-items:center;gap:8px;}
.breadcrumb li + li::before{content:"/";color:var(--line);}
.breadcrumb a{color:var(--muted);transition:color 200ms var(--ease);}
.breadcrumb a:hover{color:var(--cyan);}
.breadcrumb [aria-current="page"]{color:var(--ink);}

.section{position:relative;padding:56px 0;}
.section-head{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:10px 18px;
  margin-bottom:28px;
  padding-bottom:16px;
  border-bottom:1px solid var(--line);
}
.section-index{
  font-family:var(--font-num);
  font-size:13px;
  letter-spacing:.24em;
  color:var(--cyan);
  text-transform:uppercase;
}
.section-title{font-size:clamp(24px,3vw,34px);}
.section-note{
  display:inline-block;
  font-family:var(--font-num);
  font-size:11.5px;
  letter-spacing:.26em;
  color:var(--muted);
  writing-mode:vertical-rl;
  text-orientation:mixed;
}
@media (max-width:720px){
  .section-note{writing-mode:horizontal-tb;}
}

/* ---------- 9. 栅格 ---------- */
.grid{
  display:grid;
  gap:24px;
  grid-template-columns:repeat(12,minmax(0,1fr));
}
.span-4{grid-column:span 4;}
.span-5{grid-column:span 5;}
.span-6{grid-column:span 6;}
.span-7{grid-column:span 7;}
.span-8{grid-column:span 8;}
.span-12{grid-column:span 12;}

/* ---------- 10. 数据卡 / 标签 / 胶囊 ---------- */
.data-card{
  position:relative;
  overflow:hidden;
  padding:22px;
  border-radius:var(--r-l);
  border:1px solid var(--line);
  background:linear-gradient(160deg, rgba(22,32,60,.72), rgba(13,20,40,.92));
}
.data-card::after{
  content:"";
  position:absolute;
  left:0;top:0;bottom:0;
  width:2px;
  background:linear-gradient(180deg,var(--cyan),var(--violet),var(--magenta));
  opacity:.75;
}
.data-label{
  display:block;
  font-family:var(--font-num);
  font-size:11.5px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:10px;
}
.data-value{
  font-family:var(--font-num);
  font-weight:700;
  font-size:clamp(40px,7vw,96px);
  line-height:1;
  letter-spacing:-.01em;
  color:var(--gold);
  font-variant-numeric:tabular-nums;
}
.data-value--cool{color:var(--cool);}
.data-value--warm{color:var(--warm);}
.data-value--cyan{color:var(--cyan);}
.data-unit{
  font-family:var(--font-num);
  font-size:14px;
  color:var(--muted);
  margin-left:8px;
}

.tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 11px;
  border-radius:var(--r-pill);
  border:1px solid var(--line);
  background:rgba(13,20,40,.85);
  font-family:var(--font-num);
  font-size:11.5px;
  letter-spacing:.08em;
  color:var(--muted);
}
.tag--gold{color:var(--gold);border-color:rgba(255,200,90,.42);background:rgba(255,200,90,.08);}
.tag--ok{color:var(--ok);border-color:rgba(62,213,152,.42);background:rgba(62,213,152,.08);}
.tag--hot{color:var(--warm);border-color:rgba(255,122,89,.42);background:rgba(255,122,89,.08);}

.pill-group{
  display:inline-flex;
  flex-wrap:wrap;
  gap:4px;
  padding:5px;
  border-radius:var(--r-pill);
  border:1px solid var(--line);
  background:rgba(22,32,60,.68);
}
.pill{
  padding:9px 17px;
  border-radius:var(--r-pill);
  border:1px solid transparent;
  background:transparent;
  color:var(--muted);
  font-family:var(--font-body);
  font-size:14px;
  font-weight:500;
  cursor:pointer;
  transition:color 200ms var(--ease), background 200ms var(--ease), border-color 200ms var(--ease);
}
.pill:hover{color:var(--ink);background:rgba(46,230,222,.1);}
.pill[aria-pressed="true"],
.pill.is-active{
  color:#04060E;
  font-weight:700;
  background:linear-gradient(120deg,var(--cyan),var(--violet));
  border-color:transparent;
}

/* ---------- 11. 可展开内容组 ---------- */
.disclosure{
  border:1px solid var(--line);
  border-radius:var(--r-m);
  background:rgba(13,20,40,.72);
  overflow:hidden;
  transition:border-color 240ms var(--ease), background 240ms var(--ease);
}
.disclosure[data-open]{border-color:rgba(46,230,222,.4);background:rgba(22,32,60,.7);}
.disclosure-trigger{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  width:100%;
  padding:18px 20px;
  border:0;
  background:none;
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  font-weight:600;
  text-align:left;
  cursor:pointer;
}
.disclosure-trigger::after{
  content:"";
  flex:0 0 auto;
  width:9px;height:9px;
  border-right:2px solid var(--cyan);
  border-bottom:2px solid var(--cyan);
  transform:rotate(45deg) translate(-2px,-2px);
  transition:transform 260ms var(--ease);
}
.disclosure-trigger[aria-expanded="true"]::after{transform:rotate(-135deg) translate(-3px,-3px);}
.disclosure-panel{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows 260ms var(--ease);
}
.disclosure-panel > *{overflow:hidden;min-height:0;}
.disclosure[data-open] .disclosure-panel{grid-template-rows:1fr;}
.disclosure-body{
  padding:0 20px 20px;
  color:var(--muted);
  font-size:15.5px;
  line-height:1.8;
}

/* ---------- 12. 热力图 / 折线 ---------- */
.heat-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(30px, 1fr));
  gap:5px;
}
.heat-cell{
  aspect-ratio:1 / 1;
  display:grid;
  place-items:center;
  border-radius:8px;
  border:1px solid rgba(37,48,79,.95);
  background:var(--panel);
  font-family:var(--font-num);
  font-size:11px;
  color:var(--muted);
  cursor:default;
  transition:transform 180ms var(--ease), border-color 180ms var(--ease), color 180ms var(--ease);
}
.heat-cell:hover,
.heat-cell:focus-visible{transform:translateY(-2px);border-color:var(--cyan);color:var(--ink);}
.heat-cell--cool{background:rgba(76,125,255,.24);border-color:rgba(76,125,255,.5);color:var(--ink);}
.heat-cell--hot{background:rgba(255,122,89,.26);border-color:rgba(255,122,89,.55);color:var(--ink);}
.heat-cell--gold{background:rgba(255,200,90,.22);border-color:rgba(255,200,90,.6);color:var(--gold);}

.sparkline{width:100%;height:auto;display:block;overflow:visible;}
.spark-line{
  fill:none;
  stroke:var(--cyan);
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-dasharray:1200;
  stroke-dashoffset:0;
}
.spark-node{
  fill:var(--bg);
  stroke:var(--cyan);
  stroke-width:2;
  transition:r 180ms var(--ease), stroke 180ms var(--ease);
}
.spark-node:hover,
.spark-node:focus-visible{r:6;stroke:var(--gold);}

/* ---------- 13. 图片占位容器 ---------- */
.media-frame{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:16 / 9;
  overflow:hidden;
  border-radius:var(--r-l);
  border:1px solid var(--line);
  background:
    linear-gradient(135deg, rgba(22,32,60,.9), rgba(13,20,40,.95)),
    repeating-linear-gradient(45deg, rgba(46,230,222,.07) 0 2px, transparent 2px 10px);
}
.media-frame::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(46,230,222,.10) 1px, transparent 1px),
    linear-gradient(90deg, rgba(46,230,222,.10) 1px, transparent 1px);
  background-size:34px 34px;
  opacity:.6;
}
.media-frame img{
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  object-fit:cover;
}
.media-frame--wide{aspect-ratio:21 / 9;}
.media-frame--tall{aspect-ratio:4 / 5;}
.media-frame--square{aspect-ratio:1 / 1;}

/* ---------- 14. 返回顶部 ---------- */
.to-top{
  position:fixed;
  right:22px;
  bottom:26px;
  z-index:75;
  display:grid;
  place-items:center;
  width:46px;height:46px;
  padding:0;
  border-radius:50%;
  border:1px solid rgba(46,230,222,.36);
  background:rgba(22,32,60,.92);
  color:var(--cyan);
  font-size:17px;
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:opacity 220ms var(--ease), transform 220ms var(--ease),
             visibility 220ms var(--ease), background 200ms var(--ease);
}
.to-top.is-visible{opacity:1;visibility:visible;transform:none;}
.to-top:hover{background:rgba(46,230,222,.18);color:var(--ink);}

/* ============================================================
   15. 响应式
   ============================================================ */

/* 1440 以下：放宽留白 */
@media (max-width:1440px){
  :root{--wrap:1240px;}
}

/* 1200 以下：导航收紧 */
@media (max-width:1200px){
  :root{--wrap:1120px;}
  .nav-list a{padding:8px 10px;font-size:13.5px;}
  .brand-tag{font-size:10px;letter-spacing:.1em;}
}

/* 960 以下：左轨折叠，导航转入抽屉 */
@media (max-width:960px){
  :root{--gutter:16px;}

  body{font-size:16.5px;}

  .site-header{padding:12px var(--gutter) 0;}
  .nav-shell{padding:8px 12px;gap:10px;}
  .nav-toggle{display:grid;}
  .brand-tag{display:none;}

  .site-nav{
    position:absolute;
    top:calc(100% + 10px);
    left:0;right:0;
    flex-direction:column;
    align-items:stretch;
    gap:10px;
    margin-left:0;
    padding:14px;
    border-radius:22px;
    background:linear-gradient(180deg, rgba(13,20,40,.98), rgba(5,7,15,.98));
    border:1px solid rgba(46,230,222,.24);
    box-shadow:0 28px 60px rgba(0,0,0,.62);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-8px);
    transition:opacity 200ms var(--ease), transform 240ms var(--ease), visibility 200ms var(--ease);
  }
  .site-header[data-open="true"] .site-nav{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0);
  }
  .nav-list{flex-direction:column;align-items:stretch;gap:4px;}
  .nav-list a{
    padding:13px 14px;
    border-radius:14px;
    font-size:15.5px;
    color:var(--ink);
    background:rgba(22,32,60,.6);
    border-color:rgba(37,48,79,.8);
  }
  .nav-cta{justify-content:center;padding:13px 18px;margin-top:4px;}

  .quick-bar{
    position:fixed;
    left:12px;right:12px;bottom:12px;
    z-index:78;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:4px;
    padding:8px;
    border-radius:20px;
    background:rgba(13,20,40,.94);
    border:1px solid rgba(46,230,222,.22);
    box-shadow:0 -6px 30px rgba(0,0,0,.55);
    -webkit-backdrop-filter:blur(12px);
    backdrop-filter:blur(12px);
  }
  .quick-bar a{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:9px 4px;
    border-radius:14px;
    font-size:13px;
    color:var(--muted);
    transition:color 200ms var(--ease), background 200ms var(--ease);
  }
  .quick-bar a:hover,
  .quick-bar a[aria-current="page"]{color:var(--cyan);background:rgba(46,230,222,.12);}

  .to-top{display:none;}

  .footer-grid{grid-template-columns:1fr 1fr;gap:32px 24px;}
  .footer-brand{grid-column:1 / -1;}
  .site-footer{margin-top:72px;padding-bottom:104px;}
  .footer-note{max-width:none;}

  .section{padding:44px 0;}
  .grid{gap:18px;grid-template-columns:repeat(6,minmax(0,1fr));}
  .span-4,.span-5,.span-6{grid-column:span 3;}
  .span-7,.span-8,.span-12{grid-column:span 6;}

  #main-content{scroll-margin-top:96px;}
}

/* 720 以下：单列 */
@media (max-width:720px){
  .brand-name{font-size:14.5px;}
  .brand-mark{width:34px;height:34px;font-size:13px;}

  .footer-grid{grid-template-columns:1fr;}
  .footer-bottom{flex-direction:column;align-items:flex-start;gap:6px;}

  .grid{grid-template-columns:1fr;}
  .span-4,.span-5,.span-6,.span-7,.span-8,.span-12{grid-column:1 / -1;}

  .section-head{align-items:flex-start;flex-direction:column;gap:8px;}
}

/* 480 以下：紧凑 */
@media (max-width:480px){
  :root{--gutter:14px;}
  body{font-size:16px;line-height:1.72;}

  .nav-shell{padding:7px 10px;}
  .brand-text{max-width:150px;}
  .brand-name{white-space:normal;line-height:1.2;}

  .data-value{font-size:clamp(38px,12vw,64px);}
  .btn{padding:12px 20px;font-size:14.5px;}
  .pill{padding:8px 14px;font-size:13px;}
  .quick-bar a{font-size:12px;}
}

/* ---------- 16. 无障碍与降级 ---------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  html.js-ready [data-reveal]{opacity:1;transform:none;}
  .to-top{transform:none;}
}

@media (forced-colors: active){
  .brand-mark,.footer-mark,.nav-cta,.btn-primary{background:ButtonFace;color:ButtonText;border:1px solid ButtonText;}
  .nav-list a[aria-current="page"]{background:Highlight;color:HighlightText;}
}
