*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:28px;}
body,h1,h2,h3,h4,h5,p,ul,ol,dl,dt,dd,figure,blockquote{margin:0;}
ul,ol{padding:0;list-style:none;}
img,svg,video{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}
table{border-collapse:collapse;width:100%;}

:root{
  --ink:#06100C;
  --ink-soft:#0B1A14;
  --panel:#11261E;
  --line:#2A4A3D;
  --white:#F2FFF9;
  --muted:#AFC6BA;
  --mint:#38F2A0;
  --orange:#FF7A1A;
  --cyan:#69D9F0;
  --score:#000000;
  --font-display:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-body:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-data:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
  --w-max:1280px;
  --pad:clamp(18px,4vw,56px);
  --gap:clamp(16px,2.4vw,32px);
  --radius:2px;
  --glass:rgba(24,52,42,.55);
  --hair:rgba(42,74,61,.72);
}

body{
  min-height:100vh;
  background-color:var(--ink);
  background-image:
    repeating-linear-gradient(90deg,rgba(42,74,61,.20) 0 1px,transparent 1px 96px),
    repeating-linear-gradient(0deg,rgba(42,74,61,.14) 0 1px,transparent 1px 96px),
    radial-gradient(120% 80% at 12% -12%,rgba(56,242,160,.11),transparent 62%),
    radial-gradient(90% 70% at 100% 0%,rgba(105,217,240,.07),transparent 58%);
  color:var(--white);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.7;
  letter-spacing:.01em;
  overflow-x:hidden;
}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:800;line-height:1.18;letter-spacing:-.01em;}
p{word-break:break-word;}
::selection{background:var(--mint);color:var(--ink);}
:focus-visible{outline:2px solid var(--mint);outline-offset:3px;border-radius:1px;}

/* ---------- 通用容器与排版 ---------- */
.container{width:100%;max-width:var(--w-max);margin-inline:auto;padding-inline:var(--pad);}
.kicker{
  display:inline-block;font-family:var(--font-data);font-size:11px;letter-spacing:.26em;
  text-transform:uppercase;color:var(--mint);border:1px solid rgba(56,242,160,.45);
  padding:5px 10px;background:rgba(56,242,160,.07);
}
.section-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 20px;margin-bottom:clamp(18px,2.4vw,30px);}
.section-head h2{font-size:clamp(28px,4vw,44px);}
.annotation{font-size:12.5px;line-height:1.9;color:var(--muted);letter-spacing:.06em;}
.data-num{font-family:var(--font-data);font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.02em;}
.tag{
  display:inline-flex;align-items:center;gap:6px;padding:4px 9px;font-family:var(--font-data);
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mint);
  border:1px solid rgba(56,242,160,.45);background:rgba(56,242,160,.08);
}
.tag--signal{color:#1B0D00;background:var(--orange);border-color:var(--orange);font-weight:700;}
.panel{background:var(--ink-soft);border:1px solid var(--line);padding:clamp(18px,2.6vw,32px);}
.glass-note{
  background:var(--glass);border:1px solid rgba(105,217,240,.22);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  padding:clamp(14px,2vw,22px);
}
.grid-12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap);}
.split{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--gap);align-items:start;}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 22px;border:1px solid var(--line);background:rgba(17,38,30,.85);
  color:var(--white);font-size:14px;letter-spacing:.08em;
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}
.btn:hover{border-color:var(--mint);color:var(--mint);}
.btn--solid{background:var(--mint);border-color:var(--mint);color:var(--ink);font-weight:700;}
.btn--solid:hover{background:var(--cyan);border-color:var(--cyan);color:var(--ink);}
.btn--ghost{background:transparent;border-color:var(--mint);color:var(--mint);}
.btn--ghost:hover{background:var(--mint);color:var(--ink);}
.btn--signal{background:var(--orange);border-color:var(--orange);color:#1B0D00;font-weight:700;}
.btn--signal:hover{background:#FF9440;border-color:#FF9440;color:#1B0D00;}

/* ---------- 面包屑 ---------- */
.breadcrumb{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  font-family:var(--font-data);font-size:12px;letter-spacing:.10em;color:var(--muted);
  padding:16px 0;border-bottom:1px solid var(--hair);margin-bottom:clamp(24px,4vw,48px);
}
.breadcrumb a{transition:color .18s ease;}
.breadcrumb a:hover{color:var(--mint);}
.breadcrumb__sep{color:rgba(42,74,61,.95);}

/* ---------- 图片容器基础 ---------- */
.figure{position:relative;margin:0;overflow:hidden;border:1px solid var(--line);background:var(--ink-soft);}
.figure__frame{
  position:relative;display:block;width:100%;aspect-ratio:16/10;overflow:hidden;
  background-image:
    repeating-linear-gradient(118deg,rgba(42,74,61,.55) 0 2px,transparent 2px 28px),
    radial-gradient(80% 60% at 18% 8%,rgba(56,242,160,.16),transparent 62%),
    radial-gradient(70% 60% at 92% 96%,rgba(105,217,240,.12),transparent 60%),
    linear-gradient(160deg,#0D2018,#06100C);
}
.figure__frame > img,
.figure__frame > picture,
.figure__frame > video{width:100%;height:100%;object-fit:cover;display:block;}
.figure__tag{
  position:absolute;left:12px;bottom:12px;z-index:2;
  font-family:var(--font-data);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink);background:var(--mint);padding:4px 9px;
}
.figure__caption{margin-top:10px;font-family:var(--font-data);font-size:12px;line-height:1.8;color:var(--muted);letter-spacing:.04em;}
.figure--wide .figure__frame{aspect-ratio:21/9;}
.figure--tall .figure__frame{aspect-ratio:4/5;}
.figure--square .figure__frame{aspect-ratio:1/1;}

/* ---------- 跳过链接 ---------- */
.skip-link{
  position:fixed;left:14px;top:-80px;z-index:200;
  padding:10px 20px;background:var(--mint);color:var(--ink);
  font-weight:700;font-size:14px;letter-spacing:.08em;
  transition:top .2s ease;
}
.skip-link:focus{top:14px;}

/* ---------- 阅读进度 ---------- */
.progress-rail{position:fixed;left:0;right:0;top:0;height:3px;background:rgba(42,74,61,.55);z-index:90;}
.progress-rail__bar{
  display:block;height:100%;width:0;
  background:linear-gradient(90deg,var(--mint),var(--cyan));
  box-shadow:0 0 12px rgba(56,242,160,.65);
  transition:width .12s linear;
}

/* ---------- 头部刊头 ---------- */
.site-header{
  position:relative;z-index:60;
  background:linear-gradient(180deg,rgba(6,16,12,.97),rgba(6,16,12,.78));
  border-bottom:1px solid var(--line);
}
.masthead{max-width:var(--w-max);margin-inline:auto;padding:0 var(--pad);}

.masthead__rail{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;
  padding:12px 0 10px;border-bottom:1px dashed var(--hair);
  font-family:var(--font-data);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
}
.rail__cell{display:flex;align-items:center;gap:8px;}
.rail__dot{
  width:7px;height:7px;border-radius:50%;background:var(--mint);
  box-shadow:0 0 10px rgba(56,242,160,.85);
  animation:pulse 2.4s ease-in-out infinite;
}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.35;}}
.rail__cell--coord .rail__value{color:var(--mint);font-variant-numeric:tabular-nums;}
.rail__cell--utils{display:flex;gap:6px;flex-wrap:wrap;}
.util{
  border:1px solid var(--line);padding:5px 10px;background:rgba(17,38,30,.8);
  font-family:var(--font-data);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);transition:color .18s ease,border-color .18s ease,background .18s ease;
}
.util:hover,.util:focus-visible{color:var(--mint);border-color:rgba(56,242,160,.7);background:rgba(56,242,160,.10);}
.util.is-active{color:var(--ink);background:var(--mint);border-color:var(--mint);}

.masthead__brandline{
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;
  padding:20px 0 16px;
}
.masthead__edition{
  font-family:var(--font-data);font-size:11px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--muted);
}
.brand{
  justify-self:center;display:inline-flex;align-items:baseline;gap:3px;
  font-family:var(--font-display);font-weight:900;
  font-size:clamp(30px,4.6vw,48px);line-height:1;letter-spacing:-.03em;
}
.brand__mark{display:inline-block;transform:skewX(-8deg);color:var(--white);}
.brand__accent{color:var(--mint);transition:color .18s ease;}
.brand:hover .brand__accent{color:var(--cyan);}
.masthead__actions{justify-self:end;display:flex;align-items:center;gap:10px;}
.header-cta{
  display:inline-flex;align-items:center;gap:8px;padding:10px 18px;
  border:1px solid var(--mint);background:rgba(56,242,160,.08);color:var(--mint);
  font-size:13px;letter-spacing:.10em;
  transition:background .18s ease,color .18s ease;
}
.header-cta:hover{background:var(--mint);color:var(--ink);}

.nav-toggle{
  display:none;align-items:center;gap:9px;padding:10px 14px;
  border:1px solid var(--line);background:rgba(17,38,30,.85);color:var(--white);
  font-family:var(--font-data);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  transition:color .18s ease,border-color .18s ease;
}
.nav-toggle__bars{position:relative;display:inline-block;width:16px;height:10px;}
.nav-toggle__bars::before,
.nav-toggle__bars::after{
  content:"";position:absolute;left:0;width:100%;height:2px;background:var(--mint);
  transition:transform .2s ease,top .2s ease,bottom .2s ease;
}
.nav-toggle__bars::before{top:0;}
.nav-toggle__bars::after{bottom:0;}
.nav-toggle[aria-expanded="true"]{color:var(--mint);border-color:var(--mint);}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before{top:4px;transform:rotate(45deg);}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after{bottom:4px;transform:rotate(-45deg);}

.primary-nav{border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.primary-nav__list{display:flex;flex-wrap:wrap;justify-content:center;gap:2px;}
.primary-nav__item{position:relative;}
.primary-nav__link{
  position:relative;display:block;padding:14px 20px;
  font-size:14px;letter-spacing:.18em;color:var(--muted);
  transition:color .18s ease;
}
.primary-nav__link::after{
  content:"";position:absolute;left:20px;right:20px;bottom:-1px;height:2px;
  background:var(--mint);transform:scaleX(0);transform-origin:left center;
  transition:transform .22s ease;
}
.primary-nav__link:hover,.primary-nav__link:focus-visible{color:var(--white);}
.primary-nav__link:hover::after{transform:scaleX(1);}
.primary-nav__link[aria-current="page"]{color:var(--white);font-weight:700;}
.primary-nav__link[aria-current="page"]::after{transform:scaleX(1);}

/* ---------- 页脚 ---------- */
.site-footer{
  position:relative;margin-top:clamp(64px,9vw,120px);
  background:var(--ink);border-top:1px solid var(--line);overflow:hidden;
}
.site-footer::before{
  content:"";position:absolute;inset:0;
  background-image:
    repeating-linear-gradient(90deg,rgba(42,74,61,.16) 0 1px,transparent 1px 96px),
    radial-gradient(90% 120% at 100% 0%,rgba(56,242,160,.07),transparent 60%);
  pointer-events:none;
}
.footer__track{
  position:relative;height:10px;
  background-image:repeating-linear-gradient(90deg,var(--line) 0 1px,transparent 1px 40px);
  border-bottom:1px solid rgba(42,74,61,.5);
}
.footer__inner{
  position:relative;max-width:var(--w-max);margin-inline:auto;
  padding:clamp(40px,6vw,72px) var(--pad) clamp(28px,4vw,44px);
  display:grid;grid-template-columns:1.5fr 1fr 1.25fr 1fr;
  gap:clamp(24px,4vw,56px);
}
.footer__brand{display:flex;flex-direction:column;align-items:flex-start;}
.footer__eyebrow{
  font-family:var(--font-data);font-size:11px;letter-spacing:.30em;text-transform:uppercase;
  color:var(--mint);
}
.footer__line{
  margin-top:10px;font-family:var(--font-display);font-weight:800;
  font-size:clamp(22px,2.8vw,30px);line-height:1.28;letter-spacing:-.01em;color:var(--white);
}
.footer__note{margin-top:12px;max-width:34ch;font-size:14px;line-height:1.8;color:var(--muted);}
.footer__brand .btn{margin-top:18px;}
.footer__col{min-width:0;}
.footer__title{
  font-family:var(--font-data);font-size:11px;font-weight:400;letter-spacing:.24em;text-transform:uppercase;
  color:var(--muted);padding-bottom:10px;margin-bottom:16px;border-bottom:1px solid var(--hair);
}
.footer__list{display:grid;gap:10px;}
.footer__link{
  position:relative;display:inline-block;font-size:14.5px;color:var(--white);
  transition:color .18s ease,transform .18s ease;
}
.footer__link::before{
  content:"／";color:var(--line);margin-right:6px;font-size:12px;
  transition:color .18s ease;
}
.footer__link:hover{color:var(--mint);}
.footer__link:hover::before{color:var(--mint);}
.footer__meta{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;align-items:start;}
.footer__meta dt{
  font-family:var(--font-data);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);padding-top:3px;white-space:nowrap;
}
.footer__meta dd{
  font-family:var(--font-data);font-size:12.5px;line-height:1.7;color:var(--white);
  word-break:break-all;
}
.footer__hours{
  margin-top:16px;padding-left:10px;border-left:2px solid var(--orange);
  font-size:12px;line-height:1.85;color:var(--muted);
}
.footer__baseline{
  position:relative;max-width:var(--w-max);margin-inline:auto;
  padding:16px var(--pad) 30px;border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;
  font-family:var(--font-data);font-size:11.5px;letter-spacing:.10em;color:var(--muted);
}
.footer__copy{color:var(--white);}
.footer__stamp{font-variant-numeric:tabular-nums;}
.footer__stamp--muted{color:rgba(175,198,186,.62);}

/* ---------- 平板 ---------- */
@media (max-width:1080px){
  .footer__inner{grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,40px);}
  .brand{font-size:clamp(28px,4.4vw,40px);}
  .primary-nav__link{padding:13px 15px;letter-spacing:.14em;}
}

/* ---------- 移动 ---------- */
@media (max-width:900px){
  .masthead__rail{gap:6px 14px;font-size:10.5px;letter-spacing:.12em;}
  .rail__cell--coord{order:3;width:100%;}
  .masthead__brandline{grid-template-columns:auto auto;justify-content:space-between;padding:16px 0 14px;}
  .masthead__edition{display:none;}
  .brand{justify-self:start;font-size:clamp(26px,7.6vw,34px);}
  .masthead__actions{gap:8px;}
  .header-cta{display:none;}
  .nav-toggle{display:inline-flex;}

  .primary-nav{display:none;border-top:1px solid var(--line);}
  .primary-nav[data-open]{display:block;}
  .primary-nav__list{flex-direction:column;gap:0;padding:6px 0 18px;}
  .primary-nav__link{padding:15px 4px;text-align:left;font-size:15px;border-bottom:1px solid rgba(42,74,61,.55);letter-spacing:.16em;}
  .primary-nav__link::after{left:4px;right:auto;width:26px;bottom:-1px;}
  .primary-nav__item:last-child .primary-nav__link{border-bottom:0;}

  .split{grid-template-columns:1fr;}
  .grid-12{grid-template-columns:repeat(6,minmax(0,1fr));}
  .footer__inner{grid-template-columns:1fr;gap:32px;}
  .footer__baseline{flex-direction:column;align-items:flex-start;gap:6px;}
}

@media (max-width:560px){
  body{font-size:15.5px;}
  .masthead__rail{padding-top:10px;}
  .rail__cell--id{font-size:10px;}
  .btn{padding:11px 18px;font-size:13.5px;}
  .figure__frame{aspect-ratio:4/3;}
  .figure--wide .figure__frame{aspect-ratio:16/9;}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}
