/* KidsFan v4 · "License Deck" —— 每个授权都是一张收藏卡。
   色彩取自 logo：K 的蓝、星星的黄、火花的橙。字体只用一套可变字体 Bricolage Grotesque（宽度轴用于标题动效）。 */
@font-face { font-family: "Bricolage"; src: url(../fonts/bricolage-latin.woff2) format("woff2"); font-weight: 200 800; font-stretch: 75% 100%; font-display: swap; }

:root {
  --blue: #0F62E0; --blue-deep: #0A47B0; --logo: #1A8CFF;
  --ink: #12123A; --ink-2: #1D1E52; --paper: #F3F6FF; --white: #fff;
  --sun: #FFB800; --sun-soft: #FFD45C; --pop: #FF5A36; --mint: #2BD9A8;
  --muted: #565D8C; --soft: #AEB8EC; --line: rgba(18,18,58,.12); --line-dk: rgba(174,184,236,.2);
  --font: "Bricolage", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;
  --wrap: 1280px; --ease: cubic-bezier(.2,.7,.1,1);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; font: 400 18px/1.6 var(--font); font-variation-settings: "opsz" 14; color: var(--ink); background: var(--paper); overflow-x: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; }
h1, h2, h3 { margin: 0; font-weight: 800; letter-spacing: -.02em; }
p { margin: 0; }
.wrap { width: min(var(--wrap), 100% - 48px); margin-inline: auto; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:focus-visible { outline: 3px solid var(--sun); outline-offset: 3px; border-radius: 6px; }
.zh { font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif; font-weight: 600; }

/* ---------- 按钮 ---------- */
.btn { display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 28px; border-radius: 999px; font: 700 17px var(--font);
  text-decoration: none; cursor: pointer; border: 2px solid transparent; transition: transform .25s var(--ease), background .2s, color .2s, border-color .2s; }
.btn:hover { transform: translateY(-2px); }
.btn-sun { background: var(--sun); color: var(--ink); box-shadow: 0 10px 30px rgba(255,184,0,.35); }
.btn-sun:hover { background: var(--sun-soft); }
.btn-line { border-color: rgba(255,255,255,.55); color: #fff; }
.btn-line:hover { border-color: #fff; background: rgba(255,255,255,.1); }
.btn-ink { background: var(--ink); color: #fff; }
.btn-ink:hover { background: var(--ink-2); }
.btn-ghost { border-color: var(--ink); color: var(--ink); }
.btn-ghost:hover { background: var(--ink); color: #fff; }
.btn svg { width: 18px; height: 18px; }

/* ---------- 导航：浮动胶囊，下滑隐藏、上滑出现 ---------- */
.nav { position: fixed; top: 16px; left: 0; right: 0; z-index: 50; transition: transform .45s var(--ease); }
.nav.hide { transform: translateY(-120%); }
.nav-in { display: flex; align-items: center; gap: 20px; padding: 8px 8px 8px 16px; border-radius: 999px;
  background: rgba(255,255,255,.88); backdrop-filter: blur(14px) saturate(1.4); -webkit-backdrop-filter: blur(14px) saturate(1.4);
  box-shadow: 0 10px 40px rgba(10,20,80,.14); }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; margin-right: auto; }
.brand img { width: 40px; height: 40px; }
.brand b { font-size: 21px; font-weight: 800; letter-spacing: -.02em; line-height: 1; }
.brand small { display: block; font-size: 11.5px; font-weight: 600; color: var(--muted); letter-spacing: .02em; margin-top: 3px; }
.nav-links { display: flex; gap: 4px; }
.nav-links a { padding: 10px 14px; border-radius: 999px; font-size: 15.5px; font-weight: 600; text-decoration: none; color: var(--ink); transition: background .2s; }
.nav-links a:hover { background: rgba(15,98,224,.08); }
.nav-links a[aria-current="page"] { background: rgba(15,98,224,.12); color: var(--blue); box-shadow: inset 0 0 0 1.5px rgba(15,98,224,.28); }
.nav-links a, .nav .btn, .brand b, .brand small { white-space: nowrap; }
@media (max-width: 1250px) { .brand small { display: none; } .nav-links { gap: 0; } .nav-links a { padding: 10px 11px; font-size: 15px; } .nav-in { gap: 14px; } }
.nav .btn { min-height: 46px; padding: 0 22px; font-size: 15.5px; }
.burger { display: none; width: 46px; height: 46px; border-radius: 50%; border: 0; background: var(--ink); color: #fff; cursor: pointer; }
.burger span, .burger span::before, .burger span::after { display: block; width: 18px; height: 2px; background: #fff; margin: auto; position: relative; transition: transform .3s; }
.burger span::before, .burger span::after { content: ""; position: absolute; left: 0; }
.burger span::before { top: -6px; } .burger span::after { top: 6px; }
@media (max-width: 1180px) {
  .nav-links { position: absolute; top: calc(100% + 10px); left: 12px; right: 12px; flex-direction: column; padding: 12px; border-radius: 24px;
    background: #fff; box-shadow: 0 20px 50px rgba(10,20,80,.2); display: none; }
  .nav.open .nav-links { display: flex; }
  .nav-links a { padding: 14px 16px; font-size: 18px; }
  .burger { display: block; }
  .nav .btn { display: none; }
}

/* ---------- Hero：蓝色舞台 + three.js 海报环 ---------- */
.hero { position: relative; min-height: 100vh; min-height: 100svh; background: radial-gradient(120% 90% at 78% 40%, #2A7DFF 0%, var(--blue) 45%, var(--blue-deep) 100%);
  color: #fff; overflow: hidden; display: flex; align-items: center; }
.hero-stage { position: absolute; inset: 0; }
.hero-stage canvas { display: block; width: 100%; height: 100%; touch-action: pan-y; }
.hero-stage.grab canvas { cursor: grab; } .hero-stage.grabbing canvas { cursor: grabbing; }
.hero-fallback { position: absolute; right: -4%; top: 50%; width: 52%; transform: translateY(-50%) rotate(-6deg); display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; opacity: .9; }
.hero-fallback img { border-radius: 14px; aspect-ratio: 5/7; object-fit: cover; box-shadow: 0 20px 40px rgba(0,0,30,.35); }
.hero.gl .hero-fallback { display: none; }
.hero-in { position: relative; z-index: 2; padding: 140px 0 80px; pointer-events: none; }
.hero-in a, .hero-in button { pointer-events: auto; }
.hero-copy { max-width: 640px; }
.hero h1 { font-size: clamp(54px, 8vw, 128px); line-height: .9; font-weight: 800; font-stretch: 82%; letter-spacing: -.035em; }
.hero h1 .line { display: block; }
.hero h1 .sun { color: var(--sun); }
.hero .lede { margin-top: 28px; max-width: 28em; font-size: 19px; color: #DCE7FF; }
.hero .btns { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 36px; }
.hero-stats { display: flex; flex-wrap: wrap; gap: 14px 44px; margin-top: 56px; }
.hero-stats div b { display: block; font-size: 38px; font-weight: 800; font-stretch: 85%; line-height: 1; color: #fff; font-variant-numeric: tabular-nums; }
.hero-stats div span { font-size: 14.5px; color: #C7D7FF; }
.hero-tip { position: absolute; z-index: 3; pointer-events: none; padding: 10px 14px; border-radius: 12px; background: rgba(18,18,58,.9); color: #fff;
  font-size: 15px; font-weight: 700; line-height: 1.3; opacity: 0; transform: translate(-50%, -130%); transition: opacity .2s; white-space: nowrap; }
.hero-tip small { display: block; font-weight: 500; color: var(--soft); }
.hero-tip.on { opacity: 1; }
.hero-hint { position: absolute; z-index: 2; right: 32px; bottom: 28px; font-size: 14px; color: #C7D7FF; display: flex; align-items: center; gap: 8px; }
.hero-hint i { width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid currentColor; display: grid; place-items: center; font-style: normal; font-size: 13px; }
@media (max-width: 900px) {
  .hero { align-items: flex-start; }
  .hero-stage { top: auto; height: 56vh; bottom: 0; }
  .hero-in { padding: 120px 0 58vh; }
  .hero-fallback { top: auto; bottom: 4%; width: 100%; right: 0; transform: rotate(-6deg); }
  .hero-hint { display: none; }
}

/* ---------- 平台跑马灯 ---------- */
.platforms { background: #fff; padding: 26px 0; border-bottom: 1px solid var(--line); overflow: hidden; }
.platforms p { text-align: center; font-size: 15px; color: var(--muted); margin-bottom: 16px; }
.marquee { display: flex; width: max-content; gap: 14px; }
.marquee .pill { display: flex; align-items: center; gap: 10px; padding: 10px 18px 10px 12px; border-radius: 999px; background: var(--paper); font-size: 16px; font-weight: 700; white-space: nowrap; }
.marquee .pill img { width: 28px; height: 28px; border-radius: 7px; object-fit: contain; }

/* ---------- 通用章节 ---------- */
section { position: relative; padding: 120px 0; }
.sec-head { max-width: 860px; margin-bottom: 56px; }
.sec-head h2 { font-size: clamp(40px, 5.4vw, 82px); line-height: .98; font-stretch: 86%; letter-spacing: -.03em; }
.sec-head p { margin-top: 20px; font-size: 19px; color: var(--muted); max-width: 40em; }
.dark { background: var(--ink); color: #fff; }
.dark .sec-head p { color: var(--soft); }

/* ---------- The Deck：收藏卡 ---------- */
.deck { display: grid; grid-template-columns: repeat(12, 1fr); gap: 18px; perspective: 1400px; align-items: start; }
.deck-intro { grid-column: span 6; align-self: center; padding-left: 28px; }
.deck-intro h2 { font-size: clamp(44px, 5.4vw, 82px); line-height: .95; font-stretch: 84%; letter-spacing: -.03em; }
.deck-intro p { margin-top: 18px; font-size: 19px; color: var(--muted); max-width: 30em; }
.deck-intro p.small { font-size: 16px; }
.deck-intro .btn { margin-top: 26px; }
.card { grid-column: span 2; position: relative; aspect-ratio: 5/7; cursor: pointer; border: 0; padding: 0; background: none; font: inherit; color: inherit; text-align: left;
  --rx: 0deg; --ry: 0deg; --mx: 50%; --my: 50%; --lift: 0px; }
.card.xl { grid-column: span 3; aspect-ratio: 4/5; }
.card-in { position: absolute; inset: 0; transform-style: preserve-3d; transform: translateY(var(--lift)) rotateX(var(--rx)) rotateY(var(--ry));
  transition: transform .5s var(--ease); }
.card:hover .card-in { transition-duration: .12s; }
.card-face, .card-back { position: absolute; inset: 0; border-radius: 18px; overflow: hidden; backface-visibility: hidden; -webkit-backface-visibility: hidden;
  box-shadow: 0 2px 0 rgba(255,255,255,.6) inset, 0 18px 40px rgba(18,18,58,.18); }
.card-face { background: var(--ink); border: 5px solid #fff; }
.card-face img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.card-face .nm { position: absolute; left: 0; right: 0; bottom: 0; padding: 34px 12px 10px; background: linear-gradient(transparent, rgba(10,10,40,.88));
  color: #fff; font-weight: 800; font-size: 15.5px; line-height: 1.15; font-stretch: 90%; }
.card.xl .nm { font-size: clamp(24px, 2.2vw, 34px); padding: 60px 18px 16px; line-height: 1; }
.card-face .nm small { display: block; margin-top: 4px; font-size: 13px; font-weight: 600; color: var(--sun-soft); font-stretch: 100%; }
.card.xl .nm small { font-size: 15px; margin-top: 8px; }
.foil { position: absolute; inset: 0; pointer-events: none; mix-blend-mode: color-dodge; opacity: 0; transition: opacity .3s;
  background:
    radial-gradient(circle at var(--mx) var(--my), rgba(255,255,255,.55), transparent 42%),
    repeating-linear-gradient(115deg, #ff5a36 0%, #ffb800 8%, #2bd9a8 16%, #1a8cff 24%, #b36bff 32%, #ff5a36 40%);
  background-size: 100% 100%, 300% 300%; background-position: center, var(--mx) var(--my); }
.card:hover .foil, .card:focus-visible .foil { opacity: .38; }
.card-back { transform: rotateY(180deg); background: var(--blue); color: #fff; border: 5px solid #fff; padding: 14px; display: flex; flex-direction: column; justify-content: flex-end;
  background-image: radial-gradient(circle at 80% 15%, rgba(255,184,0,.35), transparent 40%); }
.card-back .st { font-size: clamp(19px, 1.6vw, 24px); font-weight: 800; line-height: 1.05; font-stretch: 86%; }
.card.xl .card-back .st { font-size: clamp(34px, 3.4vw, 52px); }
.card-back .nt { margin-top: 8px; font-size: 13px; color: #DCE7FF; line-height: 1.4; }
.card.xl .card-back .nt { font-size: 16px; }
.card-back .bn { font-size: 12px; font-weight: 700; color: var(--sun); margin-bottom: auto; }
.card.flipped .card-in { transform: translateY(var(--lift)) rotateX(var(--rx)) rotateY(calc(180deg + var(--ry))); }
@media (max-width: 1100px) { .card { grid-column: span 3; } .card.xl { grid-column: span 4; } .deck-intro { grid-column: span 4; padding-left: 8px; } }
@media (max-width: 760px) { .deck { gap: 12px; } .card { grid-column: span 4; } .card.xl { grid-column: span 6; } .deck-intro { grid-column: span 12; order: -1; padding: 0 0 12px; } .card-face .nm { font-size: 14px; } }

/* ---------- 海报传送带（滚动速度驱动） ---------- */
.belts { padding: 120px 0 110px; overflow: hidden; background: #fff; }
.belt { display: flex; gap: 14px; width: max-content; padding: 10px 0; }
.belt + .belt { margin-top: 8px; }
.belt figure { margin: 0; position: relative; height: clamp(160px, 17vw, 240px); border-radius: 14px; overflow: hidden; flex: none; background: var(--paper); }
.belt img { height: 100%; width: auto; transition: transform .6s var(--ease); }
.belt figure:hover img { transform: scale(1.05); }
.belt figcaption { position: absolute; left: 10px; bottom: 10px; padding: 6px 12px; border-radius: 12px; background: rgba(255,255,255,.94); font-size: 14px; font-weight: 700; color: var(--ink); max-width: calc(100% - 20px); line-height: 1.3; }
.belt figcaption .zh { display: inline-block; color: var(--muted); font-weight: 600; margin-left: 4px; }
.belt figure.ex::after { content: "Exclusive"; position: absolute; top: 10px; left: 10px; padding: 5px 10px; border-radius: 999px; background: var(--sun); color: var(--ink); font-size: 13px; font-weight: 800; }
.belts-foot { margin-top: 40px; display: flex; flex-wrap: wrap; gap: 16px 28px; align-items: center; color: var(--muted); }

/* ---------- 数字 ---------- */
.numbers { background: var(--blue); color: #fff; padding: 100px 0; overflow: hidden; }
.numbers .grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; }
.numbers b { display: block; font-size: clamp(54px, 7.4vw, 120px); line-height: .9; font-weight: 800; font-stretch: 78%; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.numbers span { display: block; margin-top: 14px; font-size: 17px; color: #DCE7FF; border-top: 2px solid rgba(255,255,255,.3); padding-top: 12px; }
@media (max-width: 800px) { .numbers .grid { grid-template-columns: 1fr 1fr; gap: 40px 24px; } }

/* ---------- 合作网络：地图 + 名单 ---------- */
.network { overflow: hidden; }
.ag-map { position: relative; margin: 0 -30px 40px; }
.ag-map svg { display: block; width: 100%; height: auto; overflow: visible; }
.ag-arc { fill: none; stroke: var(--sun); stroke-width: 1.6; stroke-linecap: round; opacity: .8; transition: opacity .25s, stroke-width .25s; }
.ag-hq-dot { fill: var(--sun); }
.ag-cn-dot { fill: var(--pop); }
.ag-cn-ring { fill: none; stroke: var(--pop); stroke-width: 1.5; opacity: 0; transform-box: fill-box; transform-origin: center; }
.ag-cn-label { fill: #fff; font: 800 16px var(--font); }
.ag-comet { fill: #fff; opacity: 0; }
.ag-map.focus .ag-arc { opacity: .12; }
.ag-map.focus .ag-arc.on { opacity: 1; stroke-width: 2.8; }
.ag-count { display: flex; flex-wrap: wrap; gap: 12px 40px; margin: -10px 0 30px; color: var(--soft); font-size: 16px; }
.ag-count b { color: #fff; font-size: 22px; margin-right: 6px; }
.ag-group { font-size: 17px; font-weight: 800; color: var(--sun); margin: 48px 0 0; padding-bottom: 14px; }
.ag-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; border-top: 1px solid var(--line-dk); }
.ag-list > li { border-bottom: 1px solid var(--line-dk); }
.ag-row { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "id go" "what what"; gap: 12px 20px; align-items: center; height: 100%;
  padding: 20px 8px; text-decoration: none; transition: background .2s; border-radius: 10px; }
a.ag-row:hover, a.ag-row:focus-visible { background: rgba(255,184,0,.08); }
.ag-id { grid-area: id; display: grid; grid-template-columns: 120px 1fr; column-gap: 16px; align-items: center; }
.ag-logo { grid-row: span 2; width: 120px; height: 48px; border-radius: 10px; background: #fff; padding: 8px 12px; object-fit: contain; }
.ag-logo.dk { background: var(--ink-2); }
.ag-name { font-size: 21px; font-weight: 800; line-height: 1.15; font-stretch: 92%; }
.ag-hq { font-size: 14px; color: var(--soft); margin-top: 3px; }
.ag-what { grid-area: what; color: var(--soft); font-size: 15.5px; line-height: 1.55; }
.ag-what b { display: block; color: #EEF2FF; font-weight: 600; }
.ag-go { grid-area: go; font-size: 14.5px; font-weight: 700; color: var(--sun); white-space: nowrap; }
.ag-go i { display: inline-block; font-style: normal; transition: transform .2s; }
a.ag-row:hover .ag-go i { transform: translate(3px,-3px); }
.ag-past { grid-area: go; font-size: 13.5px; color: var(--soft); white-space: nowrap; }
@media (max-width: 1000px) { .ag-list { grid-template-columns: 1fr; } }
@media (max-width: 640px) {
  .ag-map { margin: 0 0 24px; }
  .ag-row { grid-template-columns: 1fr; grid-template-areas: "id" "what" "go"; gap: 8px; padding: 18px 2px; }
  .ag-id { grid-template-columns: 100px 1fr; } .ag-logo { width: 100px; height: 42px; }
}

/* ---------- 口碑：横向滑动 ---------- */
.voices { overflow: hidden; }
.v-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px; max-width: none; }
.v-track { scroll-padding-inline: max(24px, calc((100vw - var(--wrap)) / 2)); display: flex; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 6px max(24px, calc((100vw - var(--wrap)) / 2)) 26px; scrollbar-width: none; }
.v-track::-webkit-scrollbar { display: none; }
.q { margin: 0; flex: 0 0 min(440px, 84vw); scroll-snap-align: start; background: #fff; border-radius: 22px; padding: 30px; display: flex; flex-direction: column; gap: 24px;
  box-shadow: 0 1px 0 var(--line), 0 20px 50px rgba(18,18,58,.07); }
.q.feat { flex-basis: min(620px, 88vw); background: var(--sun); }
.q blockquote { margin: 0; font-size: 21px; line-height: 1.45; font-weight: 600; font-stretch: 95%; }
.q.feat blockquote { font-size: clamp(24px, 2.4vw, 32px); line-height: 1.3; }
.q .who { margin-top: auto; display: flex; align-items: center; gap: 14px; font-weight: 800; }
.q .who img { width: 54px; height: 54px; border-radius: 50%; object-fit: cover; background: var(--paper); }
.q .who small { display: block; font-weight: 500; color: var(--muted); font-size: 14.5px; }
.q.feat .who small { color: rgba(18,18,58,.75); }
.v-nav { display: flex; gap: 10px; margin-top: 10px; }
.v-nav button { width: 52px; height: 52px; border-radius: 50%; border: 2px solid var(--ink); background: transparent; color: var(--ink); cursor: pointer; font-size: 20px; transition: background .2s, color .2s; }
.v-nav button:hover { background: var(--ink); color: #fff; }

/* ---------- 我的世界学英语：方块堆叠 ---------- */
.edu { background: #fff; overflow: hidden; }
.edu-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 70px; align-items: center; }
.chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.chip { padding: 8px 14px; border-radius: 999px; background: var(--paper); font-size: 15px; font-weight: 700; }
.chip.hot { background: var(--pop); color: #fff; }
.tower { position: relative; display: flex; flex-direction: column-reverse; gap: 10px; margin-top: 40px; max-width: 460px; }
.blk { position: relative; display: flex; align-items: baseline; gap: 14px; padding: 16px 20px; border-radius: 10px; color: #fff; font-weight: 800; font-size: 20px;
  box-shadow: 0 -8px 0 rgba(255,255,255,.22) inset, 0 8px 0 rgba(0,0,0,.18); }
.blk small { font-weight: 500; font-size: 15px; opacity: .9; }
.blk:nth-child(1) { background: #3FA34D; margin-right: 0; }
.blk:nth-child(2) { background: #8B5A2B; margin-right: 6%; }
.blk:nth-child(3) { background: var(--logo); margin-right: 12%; }
.blk:nth-child(4) { background: #7B5CFF; margin-right: 18%; }
.blk:nth-child(5) { background: var(--pop); margin-right: 24%; }
.edu-art { position: relative; aspect-ratio: 1; }
.edu-art img { position: absolute; border-radius: 18px; box-shadow: 0 24px 60px rgba(18,18,58,.2); object-fit: cover; }
.edu-art .a1 { width: 64%; left: 0; top: 0; }
.edu-art .a2 { width: 40%; right: 0; top: 8%; }
.edu-art .a3 { width: 42%; right: 4%; bottom: 0; }
.edu-art .a4 { width: 36%; left: 10%; bottom: 4%; }
@media (max-width: 900px) { .edu-grid { grid-template-columns: 1fr; gap: 50px; } }

/* ---------- 最新新闻 ---------- */
.news { background: var(--paper); }
.news-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px; max-width: none; }
.news-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.nc { background: #fff; border-radius: 18px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 1px 0 var(--line), 0 20px 50px rgba(18,18,58,.07); }
.nc-img { display: block; aspect-ratio: 16/10; overflow: hidden; }
.nc-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.nc:hover .nc-img img { transform: scale(1.05); }
.nc-meta { display: flex; gap: 12px; padding: 18px 20px 0; font-size: 14px; font-weight: 700; color: var(--muted); }
.nc-meta a { margin-left: auto; color: var(--blue); }
.nc h3 { margin: 0; padding: 10px 20px 24px; font-size: 19px; line-height: 1.3; font-stretch: 95%; }
.nc h3 a { text-decoration: none; }
.nc h3 a:hover { text-decoration: underline; }
@media (max-width: 1000px) { .news-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .news-grid { grid-template-columns: 1fr; } }

/* ---------- 收尾 CTA + 页脚 ---------- */
.cta { background: var(--sun); padding: 130px 0 120px; overflow: hidden; }
.cta h2 { font-size: clamp(56px, 9vw, 150px); line-height: .88; font-stretch: 78%; letter-spacing: -.04em; max-width: 10em; }
.cta .row { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: 44px; font-size: 18px; font-weight: 700; }
.cta .row a.mail { text-decoration: none; border-bottom: 2px solid; }
.cta h2.md { font-size: clamp(46px, 6.6vw, 108px); max-width: 12em; }
.cta > .wrap > p { margin-top: 26px; max-width: 36em; font-size: 20px; color: rgba(18,18,58,.82); }
.spark { position: absolute; pointer-events: none; width: 14px; height: 14px; border-radius: 50%; }
footer { background: var(--ink); color: var(--soft); padding: 70px 0 40px; font-size: 15px; }
.foot { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px; }
.foot h4 { margin: 0 0 14px; color: #fff; font-size: 16px; }
.foot a { display: block; text-decoration: none; padding: 4px 0; }
.foot a:hover { color: #fff; }
.foot .brand b { color: #fff; } .foot .brand small { color: var(--soft); }
.foot-base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 50px; padding-top: 24px; border-top: 1px solid var(--line-dk); font-size: 13.5px; }
@media (max-width: 900px) { .foot { grid-template-columns: 1fr 1fr; } }

/* ==================== 内页 ==================== */
/* 首屏：蓝色短舞台，右侧三张海报扇形展开（首页"收藏卡"母题的延续） */
.phero { position: relative; overflow: hidden; color: #fff; padding: 168px 0 104px;
  background: radial-gradient(110% 120% at 85% 30%, #2A7DFF 0%, var(--blue) 45%, var(--blue-deep) 100%); }
.phero-in { display: grid; grid-template-columns: 1.2fr .8fr; gap: 48px; align-items: center; }
.phero h1 { font-size: clamp(48px, 7vw, 112px); line-height: .9; font-stretch: 82%; letter-spacing: -.035em; }
.phero h1 .line { display: block; }
.phero h1 .sun { color: var(--sun); }
.phero .lede { margin-top: 26px; max-width: 30em; font-size: 19px; color: #DCE7FF; }
.phero .btns { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 32px; }
.phero .chips .chip { background: rgba(255,255,255,.14); color: #fff; }
.phero .chips .chip.hot { background: var(--sun); color: var(--ink); }
.fan { --h: clamp(280px, 30vw, 430px); position: relative; height: var(--h); transition: transform .8s var(--ease);
  transform: translate(calc(var(--px, 0) * 16px), calc(var(--py, 0) * 12px)); }
.fan img { position: absolute; top: 4%; left: calc(50% - var(--h) * .9 * 5 / 14); height: calc(var(--h) * .9); width: auto; aspect-ratio: 5/7; object-fit: cover;
  border-radius: 18px; border: 5px solid #fff; box-shadow: 0 30px 60px rgba(0,0,40,.35); }
.fan img:nth-child(2) { z-index: 2; }
.js .fan img { opacity: 0; }
@media (max-width: 900px) { .phero { padding: 130px 0 72px; } .phero-in { grid-template-columns: 1fr; } .fan { --h: 260px; margin-top: 10px; } }

.paper { background: var(--paper); } .white { background: #fff; } .blue { background: var(--blue); color: #fff; }
.blue .sec-head p { color: #DCE7FF; }
.sec-head.center { margin-inline: auto; text-align: center; }
.sec-head.center p { margin-inline: auto; }
.fine { margin-top: 18px; font-size: 14px; color: var(--muted); }
.dark .fine { color: var(--soft); }

.band { background: var(--ink); color: #fff; padding: 30px 0; }
.band .wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 30px; }
.band p { color: var(--soft); max-width: 46em; } .band b { color: #fff; font-size: 19px; }
.box.blue .chip { background: rgba(255,255,255,.16); color: #fff; } .box.blue .chip.hot { background: var(--sun); color: var(--ink); }
.box.sun .chip { background: rgba(255,255,255,.6); }
/* 图文交错：图片进入视口时从左向右擦开 */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.split + .split { margin-top: 100px; }
.split.rev > :first-child { order: 2; }
.split-img { border-radius: 22px; overflow: hidden; box-shadow: 0 30px 70px rgba(18,18,58,.16); aspect-ratio: 4/3; background: var(--ink); }
.split-img img { width: 100%; height: 100%; object-fit: cover; }
.split h3 { font-size: clamp(32px, 3.6vw, 52px); line-height: .98; font-stretch: 84%; letter-spacing: -.025em; }
.split h2 { font-size: clamp(36px, 4.4vw, 66px); line-height: .98; font-stretch: 84%; letter-spacing: -.03em; }
.split p { margin-top: 18px; color: var(--muted); font-size: 18px; }
.split .chips { margin-top: 22px; }
.split .btns { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 28px; }
.dark .split p { color: var(--soft); } .dark .chip { background: var(--ink-2); color: #fff; }
@media (max-width: 900px) { .split { grid-template-columns: 1fr; gap: 28px; } .split.rev > :first-child { order: 0; } .split + .split { margin-top: 72px; } }

/* 五步流程：圆点依次弹出，连线画过去 */
.steps-w { position: relative; }
.steps { display: grid; grid-template-columns: repeat(5, 1fr); gap: 28px; list-style: none; margin: 0; padding: 0; }
.st-line { position: absolute; left: 28px; right: 28px; top: 27px; height: 2px; background: var(--sun); transform-origin: left; }
.steps li { position: relative; }
.st-n { position: relative; z-index: 1; width: 56px; height: 56px; border-radius: 50%; background: var(--sun); color: var(--ink); display: grid; place-items: center; font-weight: 800; font-size: 22px; }
.steps h3 { margin-top: 22px; font-size: 24px; font-stretch: 88%; line-height: 1.05; }
.steps p { margin-top: 10px; color: var(--soft); font-size: 16px; }
@media (max-width: 900px) {
  .steps { grid-template-columns: 1fr; gap: 34px; }
  .st-line { left: 27px; right: auto; top: 28px; bottom: 28px; width: 2px; height: auto; transform-origin: top; }
  .steps li { padding-left: 80px; } .st-n { position: absolute; left: 0; top: 0; } .steps h3 { margin-top: 12px; }
}

/* 时间线：随滚动画出竖线，经过的年份点亮 */
.tl { position: relative; list-style: none; margin: 0; padding: 0 0 0 64px; max-width: 920px; --p: 1; }
.tl::before, .tl::after { content: ""; position: absolute; left: 19px; top: 10px; bottom: 30px; width: 3px; border-radius: 2px; background: var(--line); }
.tl::after { background: var(--blue); transform: scaleY(var(--p)); transform-origin: top; }
.tl-i { position: relative; padding-bottom: 52px; transition: opacity .5s; }
.js .tl-i { opacity: .32; } .js .tl-i.on { opacity: 1; }
.tl-i::before { content: ""; position: absolute; left: -55px; top: 10px; z-index: 1; width: 24px; height: 24px; border-radius: 50%; background: var(--paper); border: 3px solid var(--soft);
  transition: background .4s, border-color .4s, transform .4s var(--ease); }
.tl-i.on::before { background: var(--sun); border-color: var(--blue); transform: scale(1.15); }
.tl-y { font-size: clamp(34px, 4vw, 58px); font-weight: 800; font-stretch: 78%; line-height: 1; letter-spacing: -.03em; color: var(--blue); }
.tl-y small { font-size: .42em; font-stretch: 90%; letter-spacing: 0; margin-left: 10px; color: var(--ink); }
.tl-i p { margin-top: 12px; font-size: 18px; color: var(--muted); max-width: 40em; }
.tl-i p a { color: var(--blue); font-weight: 700; }
.white .tl-i::before { background: #fff; }

/* 海报格（内容库）：小尺寸六列，指针倾斜 + 镭射 */
.tiles { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; perspective: 1200px; }
.tile { position: relative; aspect-ratio: 5/7; text-decoration: none; color: #fff; --rx: 0deg; --ry: 0deg; --mx: 50%; --my: 50%; }
.tile.wide { grid-column: span 2; aspect-ratio: 10/7; }
.tile-in { position: absolute; inset: 0; border-radius: 16px; overflow: hidden; background: var(--ink); border: 4px solid #fff; box-shadow: 0 14px 34px rgba(18,18,58,.14);
  transform: rotateX(var(--rx)) rotateY(var(--ry)); transition: transform .5s var(--ease); }
.tile:hover .tile-in { transition-duration: .12s; }
.tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tile .nm { position: absolute; left: 0; right: 0; bottom: 0; padding: 30px 10px 9px; background: linear-gradient(transparent, rgba(10,10,40,.88));
  font-weight: 800; font-size: 14.5px; line-height: 1.15; font-stretch: 90%; }
.tile .nm small { display: block; margin-top: 3px; font-size: 12.5px; font-weight: 600; color: var(--sun-soft); font-stretch: 100%; }
.tile:hover .foil, .tile:focus-visible .foil { opacity: .38; }
.tile .tagx { position: absolute; top: 8px; left: 8px; z-index: 1; padding: 4px 10px; border-radius: 999px; background: var(--sun); color: var(--ink); font-size: 12px; font-weight: 800; }
@media (max-width: 1100px) { .tiles { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 640px) { .tiles { grid-template-columns: repeat(3, 1fr); gap: 10px; } .tile .nm { font-size: 12.5px; padding: 24px 7px 7px; } .tile .nm small { font-size: 11px; } }

/* 平台墙 */
.pf-fam + .pf-fam { margin-top: 34px; }
.pf-fam h3 { font-size: 17px; font-weight: 700; color: var(--muted); margin-bottom: 14px; }
.pf-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.pf { display: flex; align-items: center; gap: 14px; padding: 14px 18px; border-radius: 16px; background: #fff; box-shadow: 0 1px 0 var(--line), 0 12px 30px rgba(18,18,58,.05);
  font-weight: 700; font-size: 16.5px; transition: transform .3s var(--ease); }
.pf:hover { transform: translateY(-3px); }
.pf img { width: 44px; height: 44px; border-radius: 10px; object-fit: contain; flex: none; }
@media (max-width: 800px) { .pf-row { grid-template-columns: 1fr 1fr; } }

/* 卡片组 */
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.cards.c2 { grid-template-columns: repeat(2, 1fr); } .cards.c4 { grid-template-columns: repeat(4, 1fr); }
.box { position: relative; background: #fff; border-radius: 22px; padding: 30px; overflow: hidden; box-shadow: 0 1px 0 var(--line), 0 20px 50px rgba(18,18,58,.07); }
.box > img.top { margin: -30px -30px 24px; width: calc(100% + 60px); max-width: none; aspect-ratio: 16/9; object-fit: cover; }
.cards.c2 .box > img.top { aspect-ratio: 21/9; }
.box h3 { font-size: 24px; font-stretch: 90%; line-height: 1.1; }
.box p { margin-top: 12px; color: var(--muted); font-size: 16.5px; }
.box .chips { margin-top: 18px; }
.box.sun { background: var(--sun); } .box.sun p { color: rgba(18,18,58,.8); }
.box.blue { background: var(--blue); color: #fff; } .box.blue p { color: #DCE7FF; }
.dark .box { background: var(--ink-2); box-shadow: none; } .dark .box p { color: var(--soft); }
@media (max-width: 1000px) { .cards, .cards.c4 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .cards, .cards.c2, .cards.c4 { grid-template-columns: 1fr; } }
.note { margin-top: 22px; padding: 20px 24px; border-left: 4px solid var(--blue); border-radius: 0 16px 16px 0; background: #fff; font-size: 16.5px; color: var(--ink); }
.note a { color: var(--blue); font-weight: 700; }
.paper .note, .white .note { box-shadow: 0 1px 0 var(--line); } .white .note { background: var(--paper); }

/* 问答：展开时内容滑入 */
.faq { max-width: 920px; border-top: 1px solid var(--line); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { list-style: none; cursor: pointer; padding: 26px 56px 26px 0; position: relative; font-size: clamp(19px, 1.8vw, 23px); font-weight: 700; line-height: 1.3; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 8px; top: 18px; font-size: 34px; font-weight: 400; line-height: 1; transition: transform .35s var(--ease); }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { padding: 0 0 28px; color: var(--muted); max-width: 44em; }
.faq details p a { color: var(--blue); font-weight: 700; }

/* 场景对话（学英语页）：一句一句出现，关键词弹一下 */
.dlg { margin-top: 26px; display: grid; gap: 12px; max-width: 34em; }
.dlg p { padding: 14px 18px; border-radius: 18px 18px 18px 4px; background: #fff; box-shadow: 0 1px 0 var(--line); color: var(--ink); font-size: 18px; margin: 0; }
.dlg p:nth-child(even) { border-radius: 18px 18px 4px 18px; background: var(--blue); color: #fff; margin-left: 12%; }
.dlg b { display: inline-block; margin-right: 8px; font-size: 14px; color: var(--pop); }
.dlg p:nth-child(even) b { color: var(--sun); }
.dlg strong { display: inline-block; color: var(--pop); }
.dlg p:nth-child(even) strong { color: var(--sun); }
.words { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.words span { padding: 8px 16px; border-radius: 10px; background: var(--pop); color: #fff; font-weight: 800; box-shadow: 0 5px 0 #C53A1C; }

/* 学英语页：五层方块（大号，带说明） */
.layers { display: flex; flex-direction: column-reverse; gap: 12px; max-width: 980px; margin-inline: auto; }
.layers .blk { display: grid; grid-template-columns: 170px 1fr; gap: 20px; align-items: baseline; padding: 22px 26px; font-size: 26px; }
.layers .blk small { font-size: 17px; line-height: 1.45; }
.layers .blk:nth-child(n) { margin-right: 0; }
.layers .blk:nth-child(2) { margin-inline: 2% 0; } .layers .blk:nth-child(3) { margin-inline: 4% 0; } .layers .blk:nth-child(4) { margin-inline: 6% 0; } .layers .blk:nth-child(5) { margin-inline: 8% 0; }
@media (max-width: 700px) { .layers .blk { grid-template-columns: 1fr; gap: 6px; font-size: 22px; } .layers .blk:nth-child(n) { margin-inline: 0; } }

/* 复用流水线：四步 */
.pipe { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; list-style: none; margin: 0; padding: 0; }
.pipe li { background: #fff; border-radius: 20px; overflow: hidden; box-shadow: 0 1px 0 var(--line), 0 20px 50px rgba(18,18,58,.07); }
.pipe img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.pipe .pd { padding: 20px 22px 24px; }
.pipe .k { font-size: 14px; font-weight: 800; color: var(--blue); }
.pipe h3 { margin-top: 6px; font-size: 21px; font-stretch: 90%; }
.pipe p { margin-top: 8px; font-size: 15.5px; color: var(--muted); }
@media (max-width: 1000px) { .pipe { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .pipe { grid-template-columns: 1fr; } }

/* 关于页：趣 / 帆 */
.name2 { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.name2 .box { padding: 40px; }
.big-zh { display: inline-block; font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif; font-size: clamp(110px, 14vw, 200px); line-height: 1; font-weight: 800; color: var(--blue); transform-origin: 50% 90%; }
.box.sun .big-zh { color: var(--ink); }
.name2 h3 { margin-top: 18px; font-size: 28px; }
@media (max-width: 700px) { .name2 { grid-template-columns: 1fr; } }
.ceo { display: grid; grid-template-columns: 280px 1fr; gap: 56px; align-items: start; }
.ceo img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 24px; border: 4px solid var(--sun); }
.ceo .chips .chip { background: var(--ink-2); color: #fff; } .ceo .chips .chip.hot { background: var(--pop); }
.ceo .facts { display: flex; flex-wrap: wrap; gap: 30px 56px; margin-top: 36px; }
.ceo .facts b { display: block; font-size: clamp(48px, 5vw, 76px); line-height: .9; font-weight: 800; font-stretch: 78%; color: var(--sun); }
.ceo .facts span { display: block; margin-top: 8px; color: var(--soft); font-size: 15.5px; max-width: 16em; }
@media (max-width: 800px) { .ceo { grid-template-columns: 1fr; gap: 28px; } .ceo img { max-width: 220px; } }
.qgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.qgrid .q { flex: none; }
@media (max-width: 1000px) { .qgrid { grid-template-columns: 1fr 1fr; } } @media (max-width: 640px) { .qgrid { grid-template-columns: 1fr; } }

/* 版权页：受保护频道 */
.chans { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.chans div { display: flex; align-items: center; gap: 14px; padding: 12px; border-radius: 16px; background: #fff; box-shadow: 0 1px 0 var(--line); }
.chans img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; flex: none; }
.chans b { display: block; font-size: 17px; line-height: 1.2; } .chans small { color: var(--muted); font-size: 14px; }
@media (max-width: 900px) { .chans { grid-template-columns: 1fr 1fr; } }
.policy { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.policy .box h3 { font-size: 21px; }
@media (max-width: 760px) { .policy { grid-template-columns: 1fr; } }

/* 联系页：大号邮箱 + 一键复制 */
.mail-big { display: block; margin-top: 20px; font-size: clamp(24px, 2.3vw, 32px); font-weight: 800; font-stretch: 86%; color: var(--blue); text-decoration: none; overflow-wrap: anywhere; }
.mail-big:hover { text-decoration: underline; }
.copy { margin-top: 14px; padding: 8px 18px; border-radius: 999px; border: 2px solid var(--line); background: transparent; color: var(--ink); font: 700 14.5px var(--font); cursor: pointer; transition: border-color .2s, background .2s; }
.copy:hover { border-color: var(--ink); }
.copy.done { background: var(--mint); border-color: var(--mint); }
.checks { list-style: none; margin: 18px 0 0; padding: 0; display: grid; gap: 14px; }
.checks li { position: relative; padding-left: 36px; color: var(--muted); }
.checks li::before { content: "✓"; position: absolute; left: 0; top: 1px; width: 24px; height: 24px; border-radius: 50%; background: var(--mint); color: var(--ink); font-size: 14px; font-weight: 800; display: grid; place-items: center; }
.checks strong { color: var(--ink); }

/* 新闻页：里程碑 + 全部文章（列表行由 publish.py 生成，类名保持不变） */
.ms { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.ms-i { display: grid; grid-template-columns: 120px 1fr; gap: 20px; align-items: start; padding: 16px; border-radius: 20px; background: #fff; text-decoration: none;
  box-shadow: 0 1px 0 var(--line), 0 16px 40px rgba(18,18,58,.06); transition: transform .3s var(--ease); }
a.ms-i:hover { transform: translateY(-3px); }
.ms-i img { width: 120px; height: 120px; object-fit: cover; border-radius: 14px; }
.ms-i .d { font-size: 13.5px; font-weight: 700; color: var(--muted); }
.ms-i .d .chip { padding: 3px 10px; font-size: 12.5px; margin-right: 8px; }
.ms-i h3 { margin-top: 8px; font-size: 19px; line-height: 1.25; font-stretch: 94%; }
.ms-i p { margin-top: 8px; font-size: 15px; line-height: 1.5; color: var(--muted); }
.ms-i .go { display: inline-block; margin-top: 10px; font-size: 14.5px; font-weight: 700; color: var(--blue); }
@media (max-width: 900px) { .ms { grid-template-columns: 1fr; } .ms-i { grid-template-columns: 88px 1fr; } .ms-i img { width: 88px; height: 88px; } }
.filter { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 24px; }
.filter button { padding: 10px 18px; border-radius: 999px; border: 2px solid var(--line); background: transparent; color: var(--ink); font: 700 15.5px var(--font); cursor: pointer; }
.filter button[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }
.filter i { font-style: normal; opacity: .6; margin-left: 4px; }
.nlist { border-top: 1px solid var(--line); }
.news-row { display: grid; padding: 22px 12px; border-bottom: 1px solid var(--line); text-decoration: none; border-radius: 12px; transition: background .2s; }
.news-row:hover { background: #fff; }
.news-row[hidden] { display: none; }
.rowmeta { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; font-size: 14px; font-weight: 700; color: var(--muted); }
.rowmeta .chip, .chip.red { padding: 4px 12px; font-size: 13px; }
.chip.red { background: rgba(255,90,54,.12); color: #B8361A; }
.news-row h3 { margin-top: 8px; font-size: 20px; line-height: 1.35; font-weight: 700; font-stretch: 95%; }

/* 文章页 */
.readbar { position: fixed; left: 0; top: 0; z-index: 60; width: 100%; height: 4px; background: var(--sun); transform-origin: left; transform: scaleX(0); }
.art-head { color: #fff; padding: 150px 0 64px; background: radial-gradient(110% 140% at 90% 0%, #2A7DFF 0%, var(--blue) 50%, var(--blue-deep) 100%); }
.art-head .wrap { max-width: 820px; }
.art-head .tag-row { display: flex; flex-wrap: wrap; gap: 8px; }
.art-head .chip { padding: 6px 14px; font-size: 14px; background: rgba(255,255,255,.16); color: #fff; } .art-head .chip.red { background: var(--sun); color: var(--ink); }
.art-head h1 { margin-top: 22px; font-size: clamp(32px, 4.4vw, 58px); line-height: 1.05; font-stretch: 88%; letter-spacing: -.025em; }
.art-meta { display: flex; align-items: center; gap: 12px; margin-top: 24px; font-size: 15px; color: #DCE7FF; }
.seal-stamp { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--sun); color: var(--ink) !important; font-size: 13px !important; font-weight: 800; }
.art-main { background: #fff; }
.article { width: min(760px, 100% - 48px); margin-inline: auto; padding: 64px 0 100px; font-size: 19px; line-height: 1.75; }
html[lang="zh"] .article, html[lang="zh-CN"] .article { line-height: 1.9; }
.article h2 { margin: 52px 0 16px; font-size: clamp(26px, 2.6vw, 34px); line-height: 1.15; font-stretch: 90%; }
.article h3 { margin: 34px 0 10px; font-size: 22px; line-height: 1.3; }
.article p, .article ul, .article ol, .article blockquote { margin: 0 0 20px; }
.article li { margin-bottom: 8px; }
.article a { color: var(--blue); font-weight: 600; }
.article figure { margin: 36px 0 !important; }
.article figure img { margin-inline: auto; border-radius: 18px !important; }
.article blockquote { padding: 4px 0 4px 22px; border-left: 4px solid var(--sun); color: var(--muted); }
.article table { width: 100%; border-collapse: collapse; margin: 0 0 24px; font-size: 16px; }
.article th, .article td { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.article .related { margin-top: 56px !important; padding: 26px 28px !important; border: 0 !important; border-radius: 20px; background: var(--paper); }
.article .related ul { line-height: 1.6 !important; } .article .related li { margin-bottom: 10px; }
.article .backline { margin-top: 36px; }

/* ---------- 入场前的初始态（JS 加 .js 后才隐藏，避免无 JS 时空白） ---------- */
.js .rise { opacity: 0; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js .rise, .js .fan img { opacity: 1; }
  .card-in, .btn, .nav { transition: none; }
}
@media (min-width: 801px) { .numbers .grid.g3 { grid-template-columns: repeat(3, 1fr); } }
.numbers h2 { color: #fff; font-size: clamp(36px, 4.6vw, 68px); line-height: 1; font-stretch: 86%; letter-spacing: -.03em; }
.chans span { min-width: 0; }
.qgrid .q.feat { grid-column: 1 / -1; }
.ceo h2 { font-size: clamp(40px, 5.4vw, 82px); line-height: .98; font-stretch: 86%; letter-spacing: -.03em; color: #fff; }
#honors .box p { margin-top: 8px; font-size: 28px; font-weight: 800; font-stretch: 80%; color: var(--blue); }
.box.sun p, .box.sun .checks li { color: rgba(18,18,58,.84); } .box.sun a { color: var(--ink); }
.foot > div, .chans > div { min-width: 0; }
@media (max-width: 560px) { .foot > div:first-child, .foot > div:last-child { grid-column: 1 / -1; } .chans { grid-template-columns: 1fr; } }
