﻿/* ============================================================
   CSS 变量 & Reset
   ============================================================ */
:root {
  --color-bg:           #000000;
  --color-bg-soft:      #0a0a0a;
  --color-bg-card:      #0d0d0d;
  --color-bg-card-hover:#141414;
  --color-border:       rgba(255,255,255,0.08);
  --color-border-light: rgba(255,255,255,0.15);
  --color-text-primary:   #ffffff;
  --color-text-secondary: #999999;
  --color-text-muted:     #444444;
  --color-accent:       #ffffff;
  --color-accent-glow:  rgba(255,255,255,0.12);

  --font-display: 'Songti SC', 'Noto Serif SC', 'STSong', 'SimSun', 'Georgia', serif;
  --font-sans:    'PingFang SC', 'Microsoft YaHei', 'Hiragino Sans GB', 'Noto Sans SC', sans-serif;
  --font-mono:    'JetBrains Mono', 'Courier New', monospace;

  --fs-xs:   11px; --fs-sm:  13px;  --fs-base: 16px;
  --fs-md:   18px; --fs-lg:  24px;  --fs-xl:   32px;
  --fs-2xl:  48px; --fs-3xl: 64px;

  --fw-light: 300; --fw-regular: 400; --fw-medium: 500; --fw-bold: 700;
  --lh-tight: 1.2; --lh-normal: 1.65; --lh-loose: 1.9;
  --ls-normal: 0.02em; --ls-wide: 0.12em; --ls-wider: 0.22em; --ls-widest: 0.35em;

  --sp-1:4px;  --sp-2:8px;   --sp-3:12px;  --sp-4:16px;
  --sp-5:24px; --sp-6:32px;  --sp-7:48px;  --sp-8:64px;
  --sp-9:96px; --sp-10:128px;

  --container-max: 1280px;
  --container-pad: 60px;
  --container-pad-mobile: 24px;
  --radius-sm:4px; --radius-md:8px; --radius-lg:16px;
  --transition-fast:0.2s ease; --transition-normal:0.35s ease;
  --nav-height:68px; --nav-height-mobile:56px;
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  background-color:var(--color-bg);
  color:var(--color-text-primary);
  font-family:var(--font-sans);
  font-size:var(--fs-base);
  font-weight:var(--fw-regular);
  line-height:var(--lh-normal);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
  cursor:none;
  position:relative;
}
/* 暗角遮罩 — 增加空间纵深包裹感 */
body::after {
  content:''; position:fixed; inset:0; z-index:0;
  pointer-events:none;
  background:radial-gradient(ellipse at center,
    transparent 50%,
    rgba(0,0,0,0.15) 75%,
    rgba(0,0,0,0.35) 100%
  );
}
/* 内容区域置于遮罩之上 */
#app { position:relative; z-index:1; }
canvas#starfield { z-index:0; }
@media (hover:none), (pointer:coarse) {
  body { cursor:auto; }
}
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button { cursor:pointer; border:none; background:none; font-family:inherit; color:inherit; }
ul,ol { list-style:none; }
::selection { background:rgba(255,255,255,0.15); color:#fff; }
::-webkit-scrollbar { width:4px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:rgba(255,255,255,0.15); border-radius:2px; }
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:0.01ms!important; transition-duration:0.01ms!important; }
}

/* ============================================================
   自定义光标
   ============================================================ */
.custom-cursor {
  position:fixed; z-index:9999; pointer-events:none;
  width:32px; height:32px;
  border:1px solid rgba(255,255,255,0.5);
  border-radius:50%;
  transform:translate(-50%,-50%);
  transition:width 0.25s ease, height 0.25s ease,
             border-color 0.25s ease, background 0.25s ease;
  mix-blend-mode:difference;
}
.custom-cursor-dot {
  position:fixed; z-index:9999; pointer-events:none;
  width:6px; height:6px;
  background:#fff;
  border-radius:50%;
  transform:translate(-50%,-50%);
  mix-blend-mode:difference;
}
.custom-cursor.hover {
  width:56px; height:56px;
  border-color:rgba(255,255,255,0.8);
  background:rgba(255,255,255,0.06);
}
@media (hover:none), (pointer:coarse) {
  .custom-cursor,.custom-cursor-dot { display:none!important; }
}

/* ============================================================
   布局基础
   ============================================================ */
#starfield {
  position:fixed; top:0; left:0; width:100%; height:100%;
  z-index:0; pointer-events:none;
}
#app { position:relative; z-index:1; }
.container {
  max-width:var(--container-max);
  margin:0 auto;
  padding:0 var(--container-pad);
}

/* ============================================================
   导航栏 — 全宽无边距
   ============================================================ */
.nav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  height:var(--nav-height); display:flex; align-items:center;
  transition:background var(--transition-normal), backdrop-filter var(--transition-normal);
}
.nav.scrolled {
  background:rgba(0,0,0,0.85);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--color-border);
}
.nav__inner {
  width:100%;
  padding:0 var(--sp-7);
  display:flex; align-items:center; justify-content:space-between;
}
.nav__logo { display:flex; align-items:center; gap:var(--sp-3); flex-shrink:0; }
.nav__logo-img {
  height:84px; width:auto; display:block;
  filter:brightness(1);
}
.nav__logo-text {
  font-family:var(--font-display); font-size:22px;
  font-weight:var(--fw-bold); letter-spacing:var(--ls-wider);
  color:var(--color-text-primary); line-height:1;
}
.nav__logo-text--hidden { display:none; }
.nav__logo-sub {
  font-size:var(--fs-xs); letter-spacing:var(--ls-wide);
  color:var(--color-text-muted); font-weight:var(--fw-light);
}
.nav__links { display:flex; align-items:center; gap:var(--sp-7); }
.nav__link {
  font-size:var(--fs-sm); letter-spacing:var(--ls-wide);
  color:var(--color-text-secondary); transition:color var(--transition-fast);
  position:relative; padding-bottom:2px;
}
.nav__link::after {
  content:''; position:absolute; bottom:-2px; left:0;
  width:0; height:1px; background:var(--color-text-primary);
  transition:width var(--transition-normal);
}
.nav__link:hover { color:var(--color-text-primary); }
.nav__link:hover::after { width:100%; }

.nav__burger {
  display:none; flex-direction:column; gap:5px;
  width:28px; cursor:pointer; padding:4px; z-index:110;
}
.nav__burger-line {
  width:100%; height:1px; background:var(--color-text-primary);
  transition:var(--transition-normal); transform-origin:center;
}
.nav__burger.active .nav__burger-line:nth-child(1) { transform:translateY(6px) rotate(45deg); }
.nav__burger.active .nav__burger-line:nth-child(2) { opacity:0; transform:scaleX(0); }
.nav__burger.active .nav__burger-line:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }

.nav__mobile-menu {
  display:none; position:fixed; inset:0; z-index:99;
  background:rgba(0,0,0,0.97); backdrop-filter:blur(16px);
  flex-direction:column; align-items:center; justify-content:center;
  gap:var(--sp-7); opacity:0; transition:opacity var(--transition-normal);
}
.nav__mobile-menu.open { display:flex; opacity:1; }
.nav__mobile-link {
  font-family:var(--font-display); font-size:var(--fs-base);
  font-weight:var(--fw-light); letter-spacing:var(--ls-widest);
  color:var(--color-text-secondary); transition:color var(--transition-fast);
}
.nav__mobile-link:hover { color:var(--color-text-primary); }

/* ============================================================
   板块通用
   ============================================================ */
.section { padding:clamp(80px,10vw,140px) 0; position:relative; }
.section-header { margin-bottom:clamp(48px,6vw,80px); text-align:center; }
.section-label {
  font-size:var(--fs-xs); letter-spacing:var(--ls-widest);
  color:var(--color-text-muted); font-weight:var(--fw-light);
  text-transform:uppercase; margin-bottom:var(--sp-3);
}
.section-title {
  font-family:var(--font-display); font-size:var(--fs-xl);
  font-weight:var(--fw-light); letter-spacing:var(--ls-wider);
  color:var(--color-text-primary); line-height:var(--lh-tight);
  margin-bottom:var(--sp-4);
}
.section-divider {
  width:32px; height:1px;
  background:rgba(255,255,255,0.3); margin:0 auto;
}
.reveal {
  opacity:0; transform:translateY(32px);
  transition:opacity 0.7s cubic-bezier(0.16,1,0.3,1),
             transform 0.7s cubic-bezier(0.16,1,0.3,1);
}
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-delay-1 { transition-delay:0.1s; }
.reveal-delay-2 { transition-delay:0.2s; }
.reveal-delay-3 { transition-delay:0.3s; }

/* ============================================================
   Hero 首页
   ============================================================ */
.hero {
  min-height:100vh; display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  text-align:center; position:relative;
  padding:var(--sp-10) var(--container-pad);
}
.hero__tagline {
  font-family:var(--font-display);
  font-size:clamp(var(--fs-xl),4vw,var(--fs-3xl));
  font-weight:var(--fw-light); letter-spacing:var(--ls-wider);
  color:var(--color-text-primary); margin-bottom:var(--sp-5);
  opacity:0; animation:fadeInUp 1s cubic-bezier(0.16,1,0.3,1) 0.6s forwards;
}
.hero__subtitle {
  font-family:var(--font-sans); font-size:var(--fs-sm);
  letter-spacing:var(--ls-widest);
  color:var(--color-text-muted); font-weight:var(--fw-light);
  opacity:0; animation:fadeInUp 1s cubic-bezier(0.16,1,0.3,1) 0.8s forwards;
  margin-bottom:var(--sp-8);
}
/* 星球 — 原图直出 + 浮动感 */
.hero__planet-wrap {
  position:relative; margin-bottom:var(--sp-6);
  opacity:0; animation:fadeIn 1.2s ease 0.5s forwards;
}
.hero__planet {
  width:clamp(260px,40vw,440px);
  animation:planetFloat 8s ease-in-out infinite;
}
.hero__planet-img {
  width:100%; display:block;
}
@keyframes planetFloat {
  0%,100%{transform:translateY(0)}
  33%{transform:translateY(-12px)}
  66%{transform:translateY(8px)}
}
/* 登陆按钮 */
.hero__cta {
  display:inline-flex; align-items:center; gap:var(--sp-3);
  padding:14px 40px;
  border:1px solid rgba(255,255,255,0.2);
  border-radius:40px;
  font-family:var(--font-display); font-size:var(--fs-sm);
  letter-spacing:var(--ls-wider); color:var(--color-text-primary);
  background:rgba(255,255,255,0.03);
  backdrop-filter:blur(8px);
  cursor:pointer;
  transition:all var(--transition-normal);
  opacity:0; animation:fadeInUp 1s cubic-bezier(0.16,1,0.3,1) 1s forwards;
}
.hero__cta:hover {
  border-color:rgba(255,255,255,0.4);
  background:rgba(255,255,255,0.06);
  box-shadow:0 0 28px rgba(255,255,255,0.06);
  transform:translateY(-2px);
}
.hero__cta-icon {
  width:18px; height:18px; opacity:0.5;
  transition:all var(--transition-normal);
}
.hero__cta:hover .hero__cta-icon {
  opacity:0.8; transform:rotate(-15deg) scale(1.1);
}

/* 下滑引导 — 桌面端匹配副标题风格 */
.hero__scroll-hint {
  margin-top:clamp(32px,4vw,48px);
  display:flex; flex-direction:column; align-items:center; gap:10px;
  font-size:var(--fs-sm); color:var(--color-text-muted);
  letter-spacing:var(--ls-widest); font-weight:var(--fw-light);
  opacity:0; animation:fadeInUp 1s cubic-bezier(0.16,1,0.3,1) 1.2s forwards;
}
.hero__scroll-icon {
  width:14px; height:14px; opacity:0.35;
  animation:scrollBounce 2.4s ease-in-out infinite;
}
@keyframes scrollBounce {
  0%,100% { transform:translateY(0); }
  50% { transform:translateY(5px); }
}

/* 平板 */
@media (max-width: 1024px) {
  .hero__scroll-hint { font-size:var(--fs-xs); gap:8px; margin-top:clamp(28px,3vw,40px); }
}

/* 手机 */
@media (max-width: 640px) {
  .hero__scroll-hint { margin-top:var(--sp-5); }
  .hero__scroll-icon { width:12px; height:12px; }
}

/* ============================================================
   团队介绍
   ============================================================ */
.about {
  background:linear-gradient(to bottom,transparent,rgba(255,255,255,0.015) 30%,rgba(255,255,255,0.015) 70%,transparent);
}
.about__grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(48px,8vw,96px); align-items:stretch;
}
.about__left { display:flex; flex-direction:column; gap:var(--sp-7); height:100%; }
.about__concept {
  border-left:1px solid var(--color-border-light);
  padding-left:var(--sp-6);
}
.about__concept-label {
  font-size:var(--fs-xs); letter-spacing:var(--ls-widest);
  color:var(--color-text-muted); text-transform:uppercase;
  margin-bottom:var(--sp-4);
}
.about__concept-text {
  font-family:var(--font-display); font-size:var(--fs-base);
  font-weight:var(--fw-light); color:var(--color-text-primary);
  line-height:1.8; letter-spacing:var(--ls-normal);
  font-style:italic;
  text-wrap:pretty;
}
.about__right { display:flex; flex-direction:column; gap:0; }
.about__meta-row {
  display:flex; gap:var(--sp-5); align-items:baseline;
  border-bottom:1px solid var(--color-border); padding:var(--sp-5) 0;
}
.about__meta-row:first-child { padding-top:0; }
.about__meta-label {
  font-size:var(--fs-xs); letter-spacing:var(--ls-wide);
  color:var(--color-text-muted); min-width:90px; flex-shrink:0;
}
.about__meta-value {
  font-size:var(--fs-sm); color:var(--color-text-secondary);
  line-height:var(--lh-loose);
}

/* 愿景描述 */
.about__vision {
  flex:1;
  display:flex; flex-direction:column; justify-content:center; align-items:center;
  padding:var(--sp-7);
  border:1px solid var(--color-border);
  background:linear-gradient(160deg, rgba(255,255,255,0.03) 0%, rgba(255,255,255,0.01) 40%, rgba(255,255,255,0.02) 100%);
  position:relative;
  overflow:hidden;
}
/* 星轨顶线 */
.about__vision::before {
  content:'';
  position:absolute; top:0; left:8%; right:8%;
  height:1px;
  background:linear-gradient(to right, transparent, rgba(255,255,255,0.15), rgba(255,255,255,0.4), rgba(255,255,255,0.15), transparent);
  pointer-events:none;
}
.about__vision-text {
  font-family:var(--font-display);
  font-size:var(--fs-base);
  font-weight:var(--fw-light);
  color:var(--color-text-secondary);
  line-height:2;
  font-style:italic;
  letter-spacing:0.04em;
  text-align:center;
  position:relative;
  z-index:1;
}

/* ============================================================
   团队成员（桌面3列 / 移动2列）
   ============================================================ */
.members__leader {
  margin-bottom:var(--sp-9);
  display:grid; grid-template-columns:auto 1fr;
  gap:var(--sp-8); align-items:center;
  padding:var(--sp-8);
  border:1px solid var(--color-border-light);
  background:var(--color-bg-card);
  position:relative; overflow:hidden;
}
.members__leader::before {
  content:''; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(to right,transparent,rgba(255,255,255,0.3),transparent);
}
.member-avatar {
  width:140px; height:140px; border-radius:50%;
  background:var(--color-bg-soft); border:1px solid var(--color-border-light);
  display:flex; align-items:center; justify-content:center;
  overflow:hidden; flex-shrink:0;
}
.member-avatar img { width:100%; height:100%; object-fit:cover; }
.member-avatar__placeholder {
  font-family:var(--font-display); font-size:var(--fs-xl);
  color:var(--color-text-muted); font-weight:var(--fw-light);
}
.leader__badge {
  font-size:var(--fs-xs); letter-spacing:var(--ls-widest);
  color:var(--color-text-muted); text-transform:uppercase; margin-bottom:var(--sp-3);
}
.leader__name {
  font-family:var(--font-display); font-size:var(--fs-2xl);
  font-weight:var(--fw-light); letter-spacing:var(--ls-wider); margin-bottom:var(--sp-2);
}
.leader__name-real {
  font-size:var(--fs-sm); color:var(--color-text-muted);
  letter-spacing:var(--ls-wide); margin-bottom:var(--sp-5);
}
.leader__tags { display:flex; flex-wrap:wrap; gap:var(--sp-2); margin-bottom:var(--sp-5); }
.tag {
  font-size:var(--fs-xs); letter-spacing:var(--ls-wide);
  color:var(--color-text-muted); border:1px solid var(--color-border);
  padding:var(--sp-1) var(--sp-3);
}
.leader__bio {
  font-size:var(--fs-sm); color:var(--color-text-secondary); line-height:var(--lh-loose);
}
/* 桌面3列 */
.members__grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:var(--sp-4);
}
.member-card {
  padding:var(--sp-6) var(--sp-5);
  border:1px solid var(--color-border); background:var(--color-bg-card);
  display:flex; flex-direction:column; align-items:center;
  text-align:center; gap:var(--sp-3); cursor:pointer;
  transition:border-color var(--transition-normal),
             background var(--transition-normal),
             transform var(--transition-normal);
  position:relative; overflow:hidden;
}
.member-card:hover {
  border-color:var(--color-border-light);
  background:var(--color-bg-card-hover);
  transform:translateY(-4px);
}
.member-card .member-avatar { width:80px; height:80px; }
.member-card .member-avatar__placeholder { font-size:var(--fs-lg); }
.member-card__nickname {
  font-family:var(--font-display); font-size:var(--fs-base);
  letter-spacing:var(--ls-wide); color:var(--color-text-primary);
}
.member-card__real {
  font-size:var(--fs-xs); color:var(--color-text-muted); letter-spacing:var(--ls-wide);
}
.member-card__tags {
  display:flex; flex-wrap:wrap; gap:4px; justify-content:center;
  margin-top:var(--sp-2); margin-bottom:var(--sp-1);
}
.member-card__bio-preview {
  font-size:var(--fs-xs); color:var(--color-text-muted);
  line-height:var(--lh-loose); text-align:left;
  display:-webkit-box; -webkit-line-clamp:2;
  -webkit-box-orient:vertical; overflow:hidden;
}

/* 成员卡片展开 */
.member-card__bio-full {
  display:none; max-height:240px; overflow-y:auto;
  padding:var(--sp-5); border-top:1px solid var(--color-border);
  font-size:var(--fs-sm); color:var(--color-text-secondary);
  line-height:var(--lh-loose); text-align:left; margin-top:var(--sp-3);
}
.member-card.expanded .member-card__bio-full { display:block; }
.member-card.expanded .member-card__bio-preview { display:none; }
.member-card.expanded {
  border-color:var(--color-border-light);
  box-shadow:0 0 20px rgba(255,255,255,0.03);
}

/* ============================================================
   团队荣誉 — 滚动奖项栏 + 单列排布
   ============================================================ */
.honors {
  background:linear-gradient(to bottom,transparent,rgba(255,255,255,0.012) 10%,rgba(255,255,255,0.012) 90%,transparent);
}
/* 顶部滚动奖项栏 — 不占满屏宽 */
.honors__scroll {
  max-width:900px; margin:0 auto;
  overflow:hidden;
  padding:var(--sp-4) 0;
  margin-bottom:var(--sp-9);
  border-top:1px solid var(--color-border);
  border-bottom:1px solid var(--color-border);
  position:relative;
}
.honors__scroll::before,
.honors__scroll::after {
  content:''; position:absolute; top:0; bottom:0; width:48px; z-index:2; pointer-events:none;
}
.honors__scroll::before {
  left:0; background:linear-gradient(to right,rgba(0,0,0,0.9),transparent);
}
.honors__scroll::after {
  right:0; background:linear-gradient(to left,rgba(0,0,0,0.9),transparent);
}
.honors__scroll-track {
  display:flex; gap:var(--sp-7); white-space:nowrap;
  animation:honorScroll 50s linear infinite;
  width:max-content;
}
.honors__scroll:hover .honors__scroll-track {
  animation-play-state:paused;
}
.honors__scroll-item {
  font-family:var(--font-display); font-size:var(--fs-sm);
  font-weight:var(--fw-light); letter-spacing:var(--ls-wide);
  color:var(--color-text-secondary); flex-shrink:0;
  opacity:0.55; transition:opacity var(--transition-fast);
}
.honors__scroll-item:hover { opacity:1; color:var(--color-text-primary); }
@keyframes honorScroll {
  0% { transform:translateX(0); }
  100% { transform:translateX(-50%); }
}

/* 奖项单列排布 */
.honors__list {
  display:flex; flex-direction:column;
  max-width:800px; margin:0 auto;
}
.honor-row {
  display:flex; align-items:baseline; gap:var(--sp-4);
  padding:var(--sp-5) 0;
  border-bottom:1px solid var(--color-border);
  transition:all var(--transition-normal);
  position:relative;
}
.honor-row:first-child { border-top:1px solid var(--color-border); }
.honor-row:hover {
  background:rgba(255,255,255,0.015);
  padding-left:var(--sp-3);
}
.honor-row__year {
  font-family:var(--font-mono); font-size:var(--fs-sm);
  color:var(--color-text-muted); letter-spacing:var(--ls-wide);
  min-width:52px; flex-shrink:0; font-weight:var(--fw-medium);
}
.honor-row__divider {
  width:1px; height:14px; background:rgba(255,255,255,0.15);
  flex-shrink:0; align-self:center;
}
.honor-row__event {
  font-family:var(--font-display); font-size:var(--fs-base);
  font-weight:var(--fw-medium); color:var(--color-text-primary);
  letter-spacing:var(--ls-normal); flex:1;
}
.honor-row__award {
  font-size:var(--fs-sm); color:var(--color-text-secondary);
  letter-spacing:var(--ls-normal); text-align:right; flex-shrink:0;
}

/* ============================================================
   标杆案例
   ============================================================ */
.cases__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--sp-5); }
.case-card {
  position:relative; cursor:pointer; overflow:hidden;
  border:1px solid var(--color-border); background:var(--color-bg-card);
  transition:border-color var(--transition-normal),transform var(--transition-normal);
}
.case-card:hover { border-color:var(--color-border-light); transform:translateY(-4px); }
.case-card__cover {
  aspect-ratio:16/9; background:var(--color-bg-soft);
  display:flex; align-items:center; justify-content:center;
  overflow:hidden; position:relative;
}
.case-card__cover img {
  width:100%; height:100%; object-fit:cover;
  transition:transform 0.5s cubic-bezier(0.16,1,0.3,1);
}
.case-card:hover .case-card__cover img { transform:scale(1.05); }
.case-card__cover-placeholder {
  font-size:var(--fs-3xl); color:var(--color-text-muted); opacity:0.2;
}
.case-card__overlay {
  position:absolute; inset:0; background:rgba(0,0,0,0.6);
  display:flex; align-items:center; justify-content:center;
  opacity:0; transition:opacity var(--transition-normal);
}
.case-card:hover .case-card__overlay { opacity:1; }
.case-card__view-btn {
  font-size:var(--fs-xs); letter-spacing:var(--ls-widest); color:#fff;
  border:1px solid rgba(255,255,255,0.5);
  padding:var(--sp-3) var(--sp-5); text-transform:uppercase;
}
.case-card__body { padding:var(--sp-5); }
.case-card__category {
  font-size:var(--fs-xs); letter-spacing:var(--ls-wide);
  color:var(--color-text-muted); text-transform:uppercase; margin-bottom:var(--sp-2);
}
.case-card__title {
  font-family:var(--font-display); font-size:var(--fs-base);
  color:var(--color-text-primary); line-height:var(--lh-tight);
  letter-spacing:var(--ls-normal); margin-bottom:var(--sp-3);
}
.case-card__desc {
  font-size:var(--fs-xs); color:var(--color-text-muted);
  line-height:var(--lh-loose);
  display:-webkit-box; -webkit-line-clamp:2;
  -webkit-box-orient:vertical; overflow:hidden;
}

/* ============================================================
   服务生态 — 四栏分类布局
   ============================================================ */
.brands {
  background:linear-gradient(to bottom,transparent,rgba(255,255,255,0.012) 10%,rgba(255,255,255,0.012) 90%,transparent);
}
/* 空状态 */
.ecosystem__empty {
  text-align:center; color:var(--color-text-muted);
  font-size:var(--fs-sm); letter-spacing:var(--ls-wide);
  padding:var(--sp-8) 0;
}
.ecosystem__disclaimer {
  text-align:center; color:var(--color-text-muted);
  font-size:var(--fs-xs); letter-spacing:var(--ls-wide);
  margin-top:var(--sp-7); padding-top:var(--sp-4);
  border-top:1px solid var(--color-border);
  opacity:0.6;
}
/* 每个子栏 — 独立区块 */
.ecosystem__section {
  margin-bottom:var(--sp-9);  /* 96px 大间距 */
  position:relative;
  padding-left:var(--sp-6);   /* 左侧留白放装饰线 */
}
.ecosystem__section:last-child {
  margin-bottom:0;
}
/* 左侧竖线装饰 */
.ecosystem__section::before {
  content:'';
  position:absolute; left:0; top:0; bottom:0;
  width:1px;
  background:linear-gradient(to bottom,
    rgba(255,255,255,0.12) 0%,
    rgba(255,255,255,0.04) 40%,
    rgba(255,255,255,0.04) 100%
  );
}
/* 子栏标题 */
.ecosystem__section-title {
  font-family:var(--font-display);
  font-size:var(--fs-base);   /* 16px — 醒目 */
  font-weight:var(--fw-light);
  letter-spacing:var(--ls-wider);
  color:var(--color-text-primary);
  margin-bottom:var(--sp-5);
  padding-bottom:var(--sp-3);
  border-bottom:1px solid rgba(255,255,255,0.1);
  position:relative;
  display:inline-block;
}
/* 标题下方光点 */
.ecosystem__section-title::after {
  content:'';
  position:absolute; bottom:-1px; left:0;
  width:32px; height:1px;
  background:rgba(255,255,255,0.3);
}
.ecosystem__grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:var(--sp-3);
}
.brand-item {
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--sp-2);
  padding:var(--sp-5) var(--sp-3);
  border:1px solid var(--color-border); background:rgba(255,255,255,0.02);
  text-align:center;
  transition:border-color var(--transition-fast),
             background var(--transition-fast),
             transform var(--transition-fast);
  min-height:72px;
}
.brand-item:hover {
  border-color:var(--color-border-light);
  background:rgba(255,255,255,0.05);
  transform:translateY(-2px);
}
.brand-item__logo {
  max-width:100%; max-height:48px; object-fit:contain;
  filter:brightness(0.8) grayscale(0.5);
  transition:filter var(--transition-fast);
}
.brand-item:hover .brand-item__logo { filter:brightness(1) grayscale(0); }
.brand-item__name {
  font-size:var(--fs-sm); letter-spacing:var(--ls-wide);
  color:var(--color-text-muted); white-space:nowrap;
  transition:color var(--transition-fast);
}
.brand-item:hover .brand-item__name { color:var(--color-text-secondary); }

/* ============================================================
   AEM快讯 — 星轨横条信号
   ============================================================ */
.news {
  background:linear-gradient(to bottom,transparent,rgba(255,255,255,0.008) 30%,rgba(255,255,255,0.008) 70%,transparent);
}
.news__list {
  max-width:880px; margin:0 auto;
  padding:0 var(--container-pad);
  position:relative;
}
/* 左侧时间线 */
.news__list::before {
  content:'';
  position:absolute; top:0; bottom:0; left:var(--container-pad);
  width:1px;
  background:linear-gradient(to bottom,
    transparent 0%,
    rgba(255,255,255,0.06) 10%,
    rgba(255,255,255,0.06) 90%,
    transparent 100%
  );
}
.news-row {
  position:relative;
  display:flex; align-items:center; gap:var(--sp-5);
  padding:var(--sp-5) 0 var(--sp-5) var(--sp-8);
  border-bottom:1px solid rgba(255,255,255,0.04);
  text-decoration:none; color:inherit;
  transition:all var(--transition-slow);
  cursor:pointer;
}
/* 行悬停 */
.news-row:hover {
  background:rgba(255,255,255,0.015);
  border-bottom-color:rgba(255,255,255,0.08);
}
/* 左侧 — 日期 + 星标 */
.news-row__meta {
  display:flex; align-items:center; gap:var(--sp-3);
  flex-shrink:0; width:100px;
}
.news-row__star {
  font-size:11px; color:rgba(255,255,255,0.2);
  transition:all var(--transition-slow);
  line-height:1;
}
.news-row__star--active {
  color:rgba(255,215,140,0.7);
  text-shadow:0 0 8px rgba(255,200,100,0.25);
}
.news-row:hover .news-row__star--active {
  color:rgba(255,215,140,0.95);
  text-shadow:0 0 12px rgba(255,200,100,0.4);
}
.news-row__date {
  font-family:var(--font-mono); font-size:11px; letter-spacing:0.06em;
  color:var(--color-text-muted);
  transition:color var(--transition-slow);
  white-space:nowrap;
}
.news-row:hover .news-row__date { color:var(--color-text-secondary); }
/* 中间 — 标题 */
.news-row__title {
  flex:1;
  font-family:var(--font-display); font-size:15px; font-weight:var(--fw-light);
  color:var(--color-text-primary); line-height:1.6; letter-spacing:0.03em;
  transition:color var(--transition-slow);
}
.news-row:hover .news-row__title { color:#ffffff; }
/* 右侧 — 标签 + 箭头 */
.news-row__right {
  display:flex; align-items:center; gap:var(--sp-4); flex-shrink:0;
}
.news-row__tag {
  font-size:10px; letter-spacing:0.15em;
  color:var(--color-text-secondary);
  padding:2px 10px; border:1px solid rgba(255,255,255,0.15); border-radius:2px;
  transition:all var(--transition-slow);
  white-space:nowrap;
}
.news-row:hover .news-row__tag {
  border-color:rgba(255,255,255,0.35); color:var(--color-text-primary);
}
.news-row__arrow {
  font-size:13px; color:rgba(255,255,255,0.2);
  transition:all var(--transition-slow);
}
.news-row:hover .news-row__arrow {
  color:rgba(255,255,255,0.5); transform:translateX(3px);
}

/* ============================================================
   联系我们
   ============================================================ */
.contact { text-align:center; }
.contact__tagline {
  font-family:var(--font-display);
  font-size:clamp(var(--fs-lg),3vw,var(--fs-2xl));
  font-weight:var(--fw-light); letter-spacing:var(--ls-wider);
  color:var(--color-text-primary); margin-bottom:var(--sp-8);
}
.contact__directions {
  display:flex; justify-content:center;
  gap:var(--sp-3); flex-wrap:wrap; margin-bottom:var(--sp-8);
}
.contact__dir-item {
  font-size:var(--fs-sm); letter-spacing:var(--ls-wide);
  color:var(--color-text-muted); border:1px solid var(--color-border);
  padding:var(--sp-3) var(--sp-5);
  transition:border-color var(--transition-fast),color var(--transition-fast);
}
.contact__dir-item:hover { border-color:var(--color-border-light); color:var(--color-text-secondary); }
.contact__email-label {
  font-size:var(--fs-xs); letter-spacing:var(--ls-widest);
  color:var(--color-text-muted); margin-bottom:var(--sp-3); text-transform:uppercase;
}
.contact__email {
  font-family:var(--font-mono); font-size:var(--fs-md);
  color:var(--color-text-primary); letter-spacing:var(--ls-wide);
  transition:opacity var(--transition-fast);
}
.contact__email:hover { opacity:0.7; }

/* ============================================================
   通用弹窗
   ============================================================ */
.modal-overlay {
  position:fixed; inset:0; z-index:1000;
  background:rgba(0,0,0,0.75); backdrop-filter:blur(8px);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden;
  transition:opacity 0.35s ease, visibility 0.35s ease;
  padding:var(--sp-5);
}
.modal-overlay.open { opacity:1; visibility:visible; }
.modal {
  background:var(--color-bg-soft); border:1px solid var(--color-border);
  max-width:680px; width:100%; max-height:85vh;
  display:flex; flex-direction:column;
  transform:translateY(16px);
  transition:transform 0.35s cubic-bezier(0.16,1,0.3,1);
  overflow:hidden;
}
.modal-overlay.open .modal { transform:translateY(0); }
.modal__header {
  display:flex; align-items:center; justify-content:space-between;
  padding:var(--sp-5) var(--sp-6); border-bottom:1px solid var(--color-border);
}
.modal__header h3 {
  font-family:var(--font-display); font-size:var(--fs-md);
  font-weight:var(--fw-light); letter-spacing:var(--ls-wider);
}
.modal__close-btn {
  width:36px; height:36px; display:flex; align-items:center; justify-content:center;
  border-radius:50%; color:var(--color-text-muted); font-size:var(--fs-lg);
  transition:all var(--transition-fast); cursor:pointer;
  background:none; border:none;
}
.modal__close-btn:hover { background:var(--color-accent-glow); color:var(--color-text-primary); }
.modal__body {
  padding:var(--sp-6); overflow-y:auto; flex:1;
}
.modal__body img { width:100%; border-radius:var(--radius-sm); margin-bottom:var(--sp-5); }

/* 访客弹窗 */
.visitor-modal { text-align:center; padding:var(--sp-8) var(--sp-6); }
.visitor-modal__number {
  font-family:var(--font-display); font-size:clamp(48px,8vw,80px);
  font-weight:var(--fw-bold); letter-spacing:0.08em;
  background:linear-gradient(180deg,#fff 0%,#aaa 50%,#fff 100%);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  background-clip:text; margin:var(--sp-4) 0;
}
.visitor-modal__greeting {
  font-family:var(--font-display); font-size:var(--fs-lg);
  font-weight:var(--fw-light); letter-spacing:var(--ls-wider);
  color:var(--color-text-primary); margin-bottom:var(--sp-3);
}
.visitor-modal__sub {
  font-size:var(--fs-sm); color:var(--color-text-muted); letter-spacing:var(--ls-wide);
}

/* ============================================================
   案例详情弹窗 — 沉浸式（方案A）
   ============================================================ */
/* 弹窗加宽 */
#caseModal .modal { max-width:780px; }
/* 封面 — 满宽无内边距，像电影荧幕 */
.case-detail__cover {
  position:relative;
  aspect-ratio:16/9; background:var(--color-bg-card); overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  margin:-24px -24px 0;
}
.case-detail__cover img { width:100%; height:100%; object-fit:cover; }
.case-detail__cover-placeholder {
  font-size:clamp(48px,6vw,80px); opacity:0.1;
}
/* 点击观看按钮 — 底部居中 */
.case-detail__watch-btn {
  display:inline-flex; align-items:center; gap:6px;
  padding:10px 28px;
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.25);
  border-radius:24px;
  font-size:var(--fs-sm); letter-spacing:var(--ls-wide);
  color:#fff; text-decoration:none;
  transition:all var(--transition-fast);
}
.case-detail__watch-btn:hover {
  background:rgba(255,255,255,0.14);
  border-color:rgba(255,255,255,0.5);
}
.case-detail__watch-btn svg { width:16px; height:16px; }
/* 信息区 — 居中 */
.case-detail__info {
  text-align:center; padding:var(--sp-6) var(--sp-5) 0;
}
.case-detail__category {
  font-size:var(--fs-xs); letter-spacing:var(--ls-wide);
  color:var(--color-text-muted); text-transform:uppercase; margin-bottom:var(--sp-2);
}
.case-detail__title {
  font-family:var(--font-display); font-size:var(--fs-xl);
  font-weight:var(--fw-light); letter-spacing:var(--ls-normal);
  margin-bottom:var(--sp-5); line-height:var(--lh-tight);
}
.case-detail__desc {
  font-size:var(--fs-sm); color:var(--color-text-secondary);
  line-height:var(--lh-loose); letter-spacing:0.01em;
  max-width:540px; margin:0 auto var(--sp-6);
}
/* 静帧横向滚动胶片带 */
.case-detail__stills-label {
  font-size:var(--fs-xs); letter-spacing:var(--ls-widest);
  color:var(--color-text-muted); text-transform:uppercase;
  padding:0 var(--sp-5); margin-bottom:var(--sp-4);
}
.case-detail__stills-wrap {
  position:relative; display:flex; align-items:stretch;
}
.case-detail__stills {
  display:flex; gap:var(--sp-3);
  overflow-x:auto; scroll-snap-type:x mandatory;
  padding:0 var(--sp-2) var(--sp-3);
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin; scrollbar-color:rgba(255,255,255,0.1) transparent;
  flex:1;
}
.case-detail__stills::-webkit-scrollbar { height:4px; }
.case-detail__stills::-webkit-scrollbar-track { background:transparent; }
.case-detail__stills::-webkit-scrollbar-thumb { background:rgba(255,255,255,0.15); border-radius:2px; }
.case-detail__stills-arrow {
  flex-shrink:0; width:32px; display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,0.4); font-size:18px; cursor:pointer;
  transition:color 0.2s ease; padding:0; background:none; border:none;
}
.case-detail__stills-arrow:hover { color:#fff; }
.case-detail__stills-hint {
  font-size:11px; letter-spacing:0.08em;
  color:var(--color-text-muted); text-align:center;
  padding:var(--sp-3) var(--sp-5); opacity:0.5;
}
.case-detail__still {
  flex:0 0 40%; min-width:160px; scroll-snap-align:start;
  aspect-ratio:16/9; background:var(--color-bg-card);
  border:1px solid var(--color-border); overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  border-radius:var(--radius-sm);
}
.case-detail__still img {
  width:100%; height:100%; object-fit:cover;
  margin-bottom:0; border-radius:0;
}
.case-detail__still-placeholder {
  font-size:var(--fs-2xl); opacity:0.12; color:var(--color-text-muted);
}
/* 底部链接 */
.case-detail__footer-links {
  display:flex; justify-content:center; gap:var(--sp-4);
  padding:var(--sp-4) var(--sp-5) var(--sp-6);
  flex-wrap:wrap;
}

/* ============================================================
   回到顶部
   ============================================================ */
.back-to-top {
  position:fixed; bottom:32px; right:32px; z-index:99;
  width:44px; height:44px; border-radius:50%;
  border:1px solid var(--color-border-light); background:var(--color-bg-card);
  color:var(--color-text-secondary); font-size:var(--fs-lg);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  opacity:0; visibility:hidden; transform:translateY(12px);
  transition:all var(--transition-normal);
  backdrop-filter:blur(8px);
}
.back-to-top.visible { opacity:1; visibility:visible; transform:translateY(0); }
.back-to-top:hover {
  border-color:var(--color-text-muted);
  color:var(--color-text-primary);
  transform:translateY(-3px);
}

/* ============================================================
   Loading 动画 — 颗粒感宇宙飞船
   ============================================================ */
.loading-screen {
  position:fixed; inset:0; z-index:9998;
  background:radial-gradient(ellipse at center, #08080c 0%, #000000 70%);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  transition:opacity 0.8s ease, visibility 0.8s ease;
  overflow:hidden;
}
.loading-screen.hidden { opacity:0; visibility:hidden; pointer-events:none; }

/* 星星容器 */
.loading-screen__ship {
  width:clamp(120px,22vw,180px);
  position:relative;
  animation:shipFloat 3.5s ease-in-out infinite;
}
.loading-screen__ship-img {
  width:100%; display:block;
}

.loading-screen__text {
  font-family:var(--font-display); font-size:var(--fs-2xl);
  font-weight:var(--fw-bold); letter-spacing:0.28em;
  position:relative; z-index:2;
  filter:url(#glowFilter);
  margin-top:var(--sp-6);
}
.loading-screen__sub {
  font-size:var(--fs-xs); letter-spacing:var(--ls-widest);
  color:var(--color-text-muted); margin-top:var(--sp-4);
  position:relative; z-index:2;
  animation:loadingDotAnim 2s steps(3,end) infinite;
}

@keyframes shipFloat {
  0%,100%{transform:translateY(0) rotate(0deg)}
  30%{transform:translateY(-8px) rotate(0.5deg)}
  60%{transform:translateY(-3px) rotate(-0.3deg)}
  85%{transform:translateY(-10px) rotate(0.2deg)}
}
@keyframes loadingPulse {
  0%,100%{opacity:0.4;transform:scale(0.96)}
  50%{opacity:1;transform:scale(1)}
}
@keyframes loadingDotAnim {
  0%{opacity:0.4}
  33%{opacity:0.7}
  66%{opacity:1}
}

/* ============================================================
   页脚 — 社交媒体图标栏
   ============================================================ */
.footer {
  border-top:1px solid var(--color-border);
  padding:var(--sp-8) 0 var(--sp-6);
  text-align:center;
}
.footer__social {
  display:flex; justify-content:center; align-items:center;
  gap:var(--sp-6); margin-bottom:var(--sp-6);
}
.footer__social-link {
  display:flex; align-items:center; justify-content:center; gap:6px;
  height:36px; padding:0 14px; border-radius:18px;
  border:1px solid var(--color-border);
  color:var(--color-text-muted);
  transition:all var(--transition-fast);
  position:relative;
}
.footer__social-link:hover {
  border-color:var(--color-border-light);
  color:var(--color-text-primary);
  background:var(--color-accent-glow);
  transform:translateY(-3px);
  box-shadow:0 4px 16px rgba(255,255,255,0.06);
}
.footer__social-icon {
  display:flex; align-items:center;
}
.footer__social-icon svg {
  width:16px; height:16px; display:block;
}
.footer__social-name {
  font-size:var(--fs-xs); letter-spacing:var(--ls-wide);
}
.footer__text {
  font-size:var(--fs-xs); color:var(--color-text-muted); letter-spacing:var(--ls-wide);
}

/* ============================================================
   关键帧
   ============================================================ */
@keyframes fadeInDown {
  from{opacity:0;transform:translateY(-20px)} to{opacity:1;transform:translateY(0)}
}
@keyframes fadeInUp {
  from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)}
}
@keyframes fadeIn { from{opacity:0} to{opacity:1} }
@keyframes scrollPulse {
  0%,100%{opacity:0.3;transform:scaleY(1)} 50%{opacity:1;transform:scaleY(1.3)}
}

/* ============================================================
   响应式
   ============================================================ */
@media (max-width:640px) {
  /* ── 导航 ── */
  .nav { height:auto; min-height:var(--nav-height-mobile); padding:var(--sp-2) 0; }
  .nav__inner { padding:0 var(--container-pad-mobile); }
  .nav__logo-img { height:40px; }
  .nav__links { display:none; }
  .nav__burger { display:flex; }
  .container { padding:0 var(--container-pad-mobile); }
  .section { padding:var(--sp-7) 0; }
  .section-title { font-size:var(--fs-md); }

  /* ── Hero ── */
  .hero { padding:var(--sp-8) var(--container-pad-mobile); }
  .hero__planet { width:clamp(180px,55vw,300px); }
  .hero__planet-wrap { margin-bottom:var(--sp-5); }
  .hero__tagline {
    font-size:clamp(26px,7vw,36px); letter-spacing:var(--ls-normal);
    font-family:var(--font-display);   /* 与桌面端字体一致 */
  }
  .hero__subtitle {
    font-size:var(--fs-xs);
  }
  .hero__cta { padding:10px 24px; font-size:var(--fs-xs); }

  /* ── 团队介绍 ── */
  .about__grid { grid-template-columns:1fr; gap:var(--sp-5); }
  .about__concept-text { font-size:var(--fs-sm); text-wrap:pretty; }
  .about__vision { padding:var(--sp-5); }
  .about__vision-text { font-size:var(--fs-xs); text-wrap:pretty; }
  .about-meta { font-size:var(--fs-xs); gap:var(--sp-4); }

  /* ── 成员 ── */
  .members__leader { grid-template-columns:1fr; text-align:center; gap:var(--sp-3); }
  .members__leader .member-avatar { margin:0 auto; width:80px; height:80px; }
  .leader__badge { font-size:var(--fs-xs); }
  .leader__name { font-size:var(--fs-md); }
  .leader__bio { font-size:var(--fs-xs); }
  .leader__tags { justify-content:center; }
  .members__grid { grid-template-columns:repeat(2,1fr); gap:var(--sp-3); }
  .member-card { padding:var(--sp-3); }
  .member-card__nickname { font-size:var(--fs-sm); }
  .member-card__real { font-size:10px; }
  .member-card__bio-preview { font-size:10px; }

  /* ── 荣誉 ── */
  .honors__scroll { max-width:100%; }
  .honors__scroll-track { animation-duration:40s; }
  .honors__scroll-item { font-size:var(--fs-xs); }
  .honor-row { flex-wrap:wrap; gap:var(--sp-2); padding:var(--sp-4) 0; }
  .honor-row__event { font-size:var(--fs-sm); flex:1 1 100%; order:2; }
  .honor-row__award { font-size:var(--fs-xs); text-align:left; order:3; }
  .honor-row__year { order:1; }
  .honor-row__divider { display:none; }

  /* ── 案例 ── */
  .cases__grid { grid-template-columns:1fr; gap:var(--sp-4); }
  .case-detail__still { flex:0 0 78%; }
  .case-detail__cover { margin:-16px -16px 0; }
  .case-detail__info { padding:var(--sp-5) var(--sp-4) 0; }
  .case-detail__desc { padding:0 var(--sp-4); }

  /* ── 生态图谱 ── */
  .ecosystem__section { margin-bottom:var(--sp-7); padding-left:var(--sp-5); }
  .ecosystem__section-title { font-size:var(--fs-sm); }
  .ecosystem__grid { grid-template-columns:repeat(3,1fr); gap:var(--sp-2); }
  .brand-item { padding:var(--sp-2); min-height:48px; }
  .brand-item__name { font-size:10px; }
  .brand-item__logo { max-height:24px; }

  /* ── 联系我们 ── */
  .contact__tagline { font-size:var(--fs-md); }
  .contact__directions { gap:var(--sp-2); }
  .contact__dir-item {
    font-size:var(--fs-xs); padding:var(--sp-2) var(--sp-3);
  }
  .contact__email { font-size:var(--fs-sm); }

  /* ── 页脚 ── */
  .footer { padding:var(--sp-6) 0 var(--sp-5); }
  .footer__social {
    gap:var(--sp-3); margin-bottom:var(--sp-5); flex-wrap:wrap;
  }
  .footer__social-link { height:30px; padding:0 10px; gap:4px; }
  .footer__social-icon svg { width:14px; height:14px; }
  .footer__social-name { font-size:10px; letter-spacing:0.06em; }
  .footer__text {
    font-size:10px; letter-spacing:0.04em;
    white-space:nowrap;   /* 保证一行 */
  }

  /* 快讯移动端：日期标签同行，标题自然换行 */
  .news-row { flex-wrap:wrap; gap:var(--sp-2) var(--sp-4); padding:var(--sp-4) 0; }
  .news-row__meta { width:auto; }
  .news-row__title { flex:1 1 100%; font-size:13px; padding-left:0; text-align:left; }
  .news-row__right { padding-left:0; }
  .news__list::before { display:none; }

  /* ── 通用 ── */
  .back-to-top { bottom:20px; right:20px; width:38px; height:38px; }
  .modal { max-width:95vw; }
  .visitor-modal__number { font-size:48px; }
}
@media (min-width:641px) and (max-width:1024px) {
  .nav__inner,.container { padding:0 var(--sp-6); }
  .nav__logo-img { height:56px; }
  .nav__links { gap:var(--sp-5); }
  .about__grid { gap:var(--sp-6); }
  .members__grid { grid-template-columns:repeat(3,1fr); }
  .honors__scroll { max-width:100%; }
  .honor-row__event { font-size:var(--fs-sm); }
  .cases__grid { grid-template-columns:repeat(2,1fr); }
  .ecosystem__section { padding-left:var(--sp-5); }
  .ecosystem__grid { grid-template-columns:repeat(3,1fr); }
  .members__leader { gap:var(--sp-6); }
  .news-row { padding-left:var(--sp-7); }
  .news-row__meta { width:90px; }
}
