:root {
  color-scheme: light;
  --ink: #16181b;
  --muted: #545b65;
  --line: #e4e6e8;
  --wash: #f5f6f7;
  --accent: #0068c7;
  --page: min(calc(100% - 80px), 1280px);
  font-family: "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  color: var(--ink);
  background: #fff;
}
* { box-sizing: border-box; }
body, h1, h2, p, ul, ol { margin: 0; }
ul, ol { padding: 0; list-style: none; }
img { display: block; max-width: 100%; }
.icon-library { position: absolute; }
.icon { display: block; flex: none; width: 1em; height: 1em; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
button { color: inherit; border: 0; background: none; padding: 0; cursor: pointer; font: inherit; }
a { color: inherit; text-decoration: none; }
button:focus-visible, a:focus-visible { outline: 2px solid #0b73d3; outline-offset: 3px; }
section[id] { scroll-margin-top: 24px; }
.shell { width: var(--page); margin-inline: auto; }
.skip { position: fixed; top: 8px; left: 8px; padding: 10px; background: white; z-index: 5; transform: translateY(-160%); }
.skip:focus { transform: none; }

.masthead {
  color: #fff;
  background: #080b10;
  position: relative;
  isolation: isolate;
}
.masthead::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(#080b10b3, transparent 55%),
    url(assets/hero-abstract.webp) center bottom / cover no-repeat;
}
.hero-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: clamp(520px, 57vw, 760px);
  padding-block: 64px;
  text-align: center;
}
.hero-copy { max-width: 850px; }
.eyebrow { margin-bottom: 12px; color: #d0d4da; font-size: 13px; letter-spacing: .2em; }
h1 { font-size: clamp(38px, 5.1vw, 76px); line-height: 1.13; font-weight: 650; letter-spacing: -.035em; text-wrap: balance; }
.hero-description { margin-top: 16px; font-size: clamp(14px, 1.2vw, 17px); color: #e1e4e9; line-height: 1.65; }
.pill { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 8px 17px; min-height: 35px; border: 1px solid currentColor; border-radius: 999px; font-size: 13px; white-space: nowrap; }
.hero-cta { margin-top: 20px; min-height: 40px; padding-inline: 19px; }
.hero-cta:hover { background: #ffffff1f; }
.hero-cta .icon { font-size: 14px; }
.hero-dots { position: absolute; bottom: 16px; display: flex; justify-content: center; gap: 6px; }
.hero-dots button { position: relative; width: 24px; height: 26px; }
.hero-dots button::before { content: ""; position: absolute; inset: 12px 3px; background: #ffffff80; }
.hero-dots button[aria-pressed=true]::before { background: #fff; }

.quick { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); padding: 24px 0; }
.quick a { display: flex; align-items: center; justify-content: center; gap: 9px; min-height: 46px; text-align: left; }
.quick a + a { border-left: 1px solid var(--line); }
.quick a:hover strong { color: var(--accent); }
.quick .icon { width: 28px; height: 28px; color: #325774; }
.quick strong, .quick small { display: block; }
.quick strong { font-size: 14px; }
.quick small { margin-top: 3px; color: var(--muted); font-size: 11px; }

.block { margin-top: clamp(64px, 7vw, 112px); }
.section-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 20px; }
h2 { font-size: clamp(24px, 2.6vw, 38px); font-weight: 650; line-height: 1.22; letter-spacing: -.025em; text-wrap: balance; }
.more { display: inline-flex; align-items: center; gap: 3px; color: var(--accent); font-size: 13px; white-space: nowrap; flex: none; padding-block: 6px; }
.more:hover { text-decoration: underline; }

#courses { margin-top: clamp(43px, 5vw, 76px); }
.course-head { display: grid; grid-template-columns: 1fr auto 1fr; text-align: center; row-gap: 18px; margin-bottom: 28px; }
.course-head h2 { grid-column: 2; }
.course-head .more { grid-column: 3; grid-row: 1; justify-self: end; }
.course-filters { grid-column: 1 / -1; grid-row: 2; display: flex; justify-content: center; gap: 5px; padding: 3px; }
.course-filters button { padding: 8px 13px; border-radius: 999px; color: var(--muted); font-size: 13px; white-space: nowrap; }
.course-filters button[aria-pressed=true] { background: #202327; color: #fff; }
.course-filters button:hover:not([aria-pressed=true]) { background: var(--wash); }
.course-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(18px, 2.4vw, 32px); }
.course { display: grid; grid-template-rows: 1fr auto auto; min-height: clamp(285px, 33vw, 485px); background: #f2f4f6; text-align: center; overflow: hidden; }
.course::before { content: ""; min-height: 150px; background: var(--art) center / cover no-repeat #e4e8ec; }
.course:hover .course-meta { color: var(--accent); }
.course-cover { display: block; padding: clamp(16px, 1.6vw, 24px) 16px 5px; }
.course-cover strong { font-size: clamp(18px, 1.65vw, 26px); line-height: 1.25; letter-spacing: -.015em; font-weight: 650; }
.course-cover br { display: none; }
.course-meta { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 5px 12px 18px; color: #333941; font-size: 13px; }
.course-meta .icon { font-size: 11px; }

.split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.split > section { min-width: 0; }
.broadcast-grid { display: grid; gap: 1px; background: var(--line); }
.feature-live, .training-banner, .news-feature { width: 100%; position: relative; isolation: isolate; overflow: hidden; }
.feature-live, .training-banner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 10px;
  padding: 26px clamp(21px, 3vw, 46px);
  text-align: left;
}
.feature-live { min-height: clamp(185px, 19vw, 265px); background: #e5e7eb; }
.feature-live::before { content: ""; position: absolute; z-index: -1; inset: 0; }
.feature-live::before { background: linear-gradient(90deg, #eef1f5 5%, #eef1f5e6 41%, #eef1f526 77%), url(assets/live-editorial.webp) right center / cover; }
.feature-live strong, .training-banner strong { font-size: clamp(21px, 2.15vw, 32px); line-height: 1.25; letter-spacing: -.02em; }
.live-time, .byline, .training-banner small { font-size: 13px; }
.live-time b, .upcoming b, .news-tags b { display: inline-block; padding: 3px 6px; margin-right: 4px; font-size: 10px; font-weight: 650; background: #fff; color: #31353a; }
.byline { display: flex; align-items: center; gap: 7px; }
.byline img { width: 25px; height: 25px; border-radius: 50%; object-fit: cover; }
.upcoming { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; }
.upcoming button { min-height: 96px; padding: 15px; background: var(--wash); display: grid; gap: 7px; align-content: center; text-align: left; }
.upcoming small { color: var(--muted); font-size: 12px; }
.upcoming strong { font-size: clamp(13px, 1.2vw, 16px); }
.upcoming button:hover strong { color: var(--accent); }
.training-banner { min-height: calc(clamp(185px, 19vw, 265px) + 97px); color: #fff; background: linear-gradient(90deg, #07111ee8 4%, #07111eb0 48%, #07111e24 100%), url(assets/training-editorial.webp) right center / cover #142031; }
.training-banner small { max-width: 90%; line-height: 1.55; }
.card-action { position: absolute; right: 15px; bottom: 15px; display: grid; place-items: center; width: 35px; height: 35px; border: 1px solid #ffffff91; border-radius: 50%; color: #fff; font-size: 17px; }
.live-action { background: #20242b; border-color: #20242b; font-size: 15px; }
.feature-live:hover .card-action, .training-banner:hover .card-action { background: #0068c7; border-color: #0068c7; }

.promo-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.promo { --promo-inset: clamp(18px, 2.4vw, 34px); display: grid; grid-template-rows: auto 1fr auto; background: #f2f4f6; text-align: left; padding-top: var(--promo-inset); }
.promo h2 { display: flex; align-items: center; gap: 7px; padding-inline: var(--promo-inset); color: #424952; font-size: 13px; letter-spacing: .06em; }
.promo h2 .icon { font-size: 16px; color: #325774; }
.promo-content { padding: 8px var(--promo-inset) var(--promo-inset); }
.promo > img { width: 100%; height: auto; aspect-ratio: 720 / 358; object-fit: contain; filter: saturate(.4); }
.promo-content strong, .promo-content small { display: block; }
.promo-content strong { font-size: clamp(17px, 1.75vw, 25px); line-height: 1.3; }
.promo-content small { font-size: 12px; color: #444c56; margin-top: 5px; }
.promo-content .pill { min-height: 30px; margin-top: 10px; padding: 4px 11px; }
.promo-content .pill:hover { color: var(--accent); }

.teacher-grid { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 36px) / 4); gap: 12px; overflow: auto; scrollbar-width: none; scroll-snap-type: x mandatory; padding: 4px 0; }
.teacher-controls { display: none; gap: 8px; }
.teacher-controls button { display: grid; place-items: center; width: 35px; height: 35px; border-radius: 50%; border: 1px solid #c9cdd2; font-size: 16px; }
.teacher-controls button:hover { background: var(--wash); }
.teacher { text-align: left; scroll-snap-align: start; min-width: 0; background: var(--wash); }
.teacher:focus-visible { outline-offset: -2px; }
.teacher img { width: 100%; aspect-ratio: 1.08; object-fit: cover; object-position: center 39%; }
.teacher > span { display: block; padding: 14px 12px 16px; }
.teacher strong, .teacher small { display: block; }
.teacher strong { font-size: 17px; }
.teacher:hover strong { color: var(--accent); }
.teacher small { margin-top: 3px; color: var(--muted); font-size: 12px; }

.info-layout { grid-template-columns: 1.2fr 1fr; }
.news-grid { display: grid; gap: 13px; }
.news-feature { display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: 12px; min-height: clamp(190px, 21vw, 285px); padding: 20px; color: #fff; text-align: left; background: linear-gradient(#16253654, transparent 32%, #101c2ad9 94%), url(assets/news-hd.webp) center / cover; }
.news-tags { font-size: 11px; }
.news-feature strong { margin-top: auto; font-size: clamp(17px, 1.8vw, 25px); line-height: 1.3; }
.news-feature time { align-self: flex-end; font-size: 11px; }
.news-list button, .knowledge-list button { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; font-size: 14px; }
.news-list li:not(:last-child) button, .knowledge-list li:not(:last-child) button { border-bottom: 1px solid var(--line); }
.news-list button { justify-content: space-between; min-height: 44px; padding: 7px 0; }
.news-list time { flex: none; color: var(--muted); font-size: 12px; }
.news-list button:hover, .knowledge-list button:hover { color: var(--accent); }
.info-layout > section { display: grid; grid-template-rows: auto 1fr; }
.knowledge-list { display: grid; grid-auto-rows: 1fr; }
.knowledge-list button { min-height: 52px; height: 100%; padding: 8px 0; font-weight: 600; }
.doc-icon { flex: none; display: grid; place-items: center; width: 22px; height: 22px; color: #325774; font-size: 17px; }

.community-layout { display: grid; gap: clamp(32px, 5vw, 64px); margin-bottom: clamp(32px, 5vw, 72px); }
.group-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(10px, 1.4vw, 20px); }
.group { display: grid; justify-items: start; align-content: start; gap: 8px; min-height: clamp(145px, 15vw, 205px); padding: clamp(16px, 2.4vw, 34px); background: linear-gradient(145deg, #f8fafc, #edf2f7); text-align: left; }
.group .icon { width: 42px; height: 42px; padding: 9px; margin-bottom: 9px; border: 1px solid #dce6ef; border-radius: 11px; background: #ffffffc9; color: #315e88; }
.group strong { font-size: clamp(16px, 1.5vw, 22px); line-height: 1.25; }
.group:hover strong { color: var(--accent); }
.group small { font-size: 13px; color: var(--muted); line-height: 1.5; }
.leaderboards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(24px, 3vw, 44px); }
.ranking { min-width: 0; }
.ranking .section-head { gap: 12px; margin-bottom: 16px; }
.ranking h2 { font-size: clamp(19px, 2vw, 28px); }
.ranking .section-head small { color: var(--muted); font-size: 13px; white-space: nowrap; }
.ranking li { display: grid; grid-template-columns: 42px 34px minmax(0, 1fr) auto; align-items: center; gap: clamp(8px, 1.2vw, 16px); min-height: 55px; font-size: 15px; }
.rank-avatar { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: #315574; background: #edf3f8; font-size: 13px; }
.rank-index, .rank-score { font-variant-numeric: tabular-nums; }
.rank-index { display: grid; grid-template-columns: 14px 1fr; align-items: center; gap: 5px; color: var(--muted); text-align: center; }
.rank-index .icon { font-size: 21px; }
.ranking li:nth-child(1) .rank-index .icon { color: #a46b08; }
.ranking li:nth-child(2) .rank-index .icon { color: #64768b; }
.ranking li:nth-child(3) .rank-index .icon { color: #a65c38; }
.rank-score { color: #17283b; font-size: 17px; }


dialog { border: 0; border-radius: 4px; width: min(90%, 480px); padding: 26px; color: var(--ink); box-shadow: 0 20px 80px #0004; }
dialog::backdrop { background: #12161db3; }
dialog h2 { padding-right: 24px; font-size: 24px; }
dialog p { margin-top: 12px; line-height: 1.7; color: var(--muted); }
.close { position: absolute; right: 12px; top: 10px; display: grid; place-items: center; width: 32px; height: 32px; font-size: 19px; }

@media (max-width: 850px) {
  :root { --page: calc(100% - 40px); }
  .quick a { flex-direction: column; gap: 5px; text-align: center; }
  .split { gap: 16px; }
  .group-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .course-cover br { display: initial; }
  .course-meta { padding-top: 2px; }
}
@media (max-width: 680px) {
  :root { --page: calc(100% - 32px); }
  .masthead::before {
    background: linear-gradient(#080b10b3, transparent 62%),
      url(assets/hero-abstract-mobile.webp) center bottom / cover no-repeat;
  }
  .hero-inner { min-height: clamp(465px, 96vw, 590px); }
  h1 { font-size: clamp(32px, 8.2vw, 48px); }
  .eyebrow { font-size: 11px; }
  .hero-description { max-width: 430px; margin: 12px auto 0; font-size: 13px; }
  .hero-cta { margin-top: 15px; }
  .hero-dots { bottom: 10px; }
  .quick { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 0; padding-block: 18px; }
  .quick a:nth-child(4) { border-left: 0; }
  .quick .icon { width: 25px; height: 25px; }
  .quick strong { font-size: 13px; }
  .quick small { font-size: 10px; }
  .block { margin-top: 54px; }
  .section-head { margin-bottom: 14px; }
  .course-head { row-gap: 11px; margin-bottom: 20px; }
  .course-filters { justify-content: flex-start; overflow-x: auto; scrollbar-width: none; }
  .course-filters button { padding: 7px 10px; font-size: 12px; }
  .course-grid { grid-template-columns: 1fr; }
  .course { min-height: clamp(255px, 69vw, 390px); }
  .course-cover br { display: none; }
  .course-cover strong { font-size: clamp(17px, 4.5vw, 21px); }
  .course-meta { font-size: 12px; }
  .split { grid-template-columns: 1fr; gap: 39px; }
  .training-banner { min-height: 235px; }
  .promo-grid { grid-template-columns: 1fr; gap: 7px; }
  .teacher-grid { grid-auto-columns: calc((100% - 12px) / 2); }
  .teacher-controls { display: flex; }
  .news-feature { padding: 15px; }
  .leaderboards { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
}
