/* 基础重置同时限制最小宽度，防止长词把 Grid/Flex 子项撑出卡片。 */
*, *::before, *::after {
  box-sizing: border-box;
}

*, *::before, *::after {
  min-width: 0;
}

h1, h2, h3, h4, p, a, button, strong, small, span {
  overflow-wrap: anywhere;
}

html {
  scroll-behavior: smooth;
  background: var(--canvas);
}

body {
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 12% 18%, rgba(20, 184, 240, .16), transparent 28vw),
    radial-gradient(circle at 88% 34%, rgba(139, 92, 246, .14), transparent 30vw),
    linear-gradient(rgba(52, 120, 246, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(52, 120, 246, .04) 1px, transparent 1px),
    var(--canvas);
  background-attachment: fixed;
  background-size: auto, auto, 42px 42px, 42px 42px, auto;
  font-family: Inter, "Segoe UI", "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0;
  -webkit-font-smoothing: antialiased;
}

body[data-menu-open="true"] {
  overflow: hidden;
}

img {
  max-width: 100%;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

button, input, textarea, select {
  color: inherit;
  font: inherit;
  letter-spacing: 0;
}

button, a {
  -webkit-tap-highlight-color: transparent;
}

h1, h2, h3, h4, p, ul, ol {
  margin-top: 0;
}

h1, h2, h3, h4 {
  letter-spacing: 0;
}

button:focus-visible,
a:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--blue-strong);
  outline-offset: 4px;
}

.skip-link {
  position: fixed;
  z-index: 200;
  top: 10px;
  left: 10px;
  padding: 10px 14px;
  color: var(--surface);
  background: var(--ink);
  transform: translateY(-140%);
  transition: transform var(--transition-fast) ease;
}

/* 键盘用户聚焦后才把跳转入口移入画面，鼠标浏览时不占布局空间。 */
.skip-link:focus {
  transform: translateY(0);
}

.site-shell {
  width: min(100%, var(--content-max));
  margin-inline: auto;
  padding-inline: var(--page-pad);
}

/* 所有首页和二级页面区块共享同一版心；伪元素只负责连续背景，不承载内容。 */
.section-band {
  position: relative;
  padding-block: var(--section-space);
  border-top: 1px solid rgba(255, 255, 255, .62);
  overflow: hidden;
}

.section-band::before {
  content: "";
  position: absolute;
  inset: 0 var(--page-pad);
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255, 255, 255, .36), rgba(255, 255, 255, .08));
  border-left: 1px solid rgba(255, 255, 255, .45);
  border-right: 1px solid rgba(255, 255, 255, .45);
}

.section-band > .site-shell {
  position: relative;
  z-index: 1;
}

.section-band--white,
.section-band--ink {
  color: var(--ink);
  background: transparent;
}

.section-head {
  display: grid;
  grid-template-columns: minmax(180px, .62fr) minmax(0, 1.38fr);
  gap: clamp(28px, 6vw, 96px);
  align-items: end;
  margin-bottom: clamp(38px, 6vw, 76px);
}

.section-kicker,
.eyebrow {
  margin-bottom: 12px;
  color: var(--blue-strong);
  font-size: 12px;
  font-weight: 760;
  line-height: 1.4;
  text-transform: uppercase;
}

.section-title {
  max-width: 880px;
  margin-bottom: 0;
  font-size: clamp(36px, 5.1vw, 76px);
  font-weight: 620;
  line-height: 1.02;
}

.section-summary {
  max-width: 620px;
  margin: 18px 0 0;
  color: var(--muted);
  font-size: clamp(16px, 1.5vw, 20px);
}

.section-band--ink .section-summary {
  color: var(--muted);
}

.section-band--ink .section-kicker,
.section-band--ink .eyebrow {
  color: var(--blue-strong);
}

[data-reveal] {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 560ms ease, transform 560ms ease;
}

/* shared.js 只添加 is-visible，不直接写内联样式，减少脚本与视觉实现耦合。 */
[data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

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