/* ==========================================================================
   云开赛场 · 共享样式表 /assets/site.css
   reset · 变量 · 中文排版 · 页头 · 页脚 · 通用组件 · 响应式
   ========================================================================== */

/* ---------- 1. Reset ---------- */
*,
*::before,
*::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body,
h1, h2, h3, h4, h5, h6,
p, ul, ol, li, figure, blockquote, dl, dd, hr {
  margin: 0;
}

ul, ol { padding: 0; list-style: none; }

img, svg, video, canvas {
  display: block;
  max-width: 100%;
}

button, input, select, textarea {
  font: inherit;
  color: inherit;
}

button {
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
}

a {
  color: var(--sky-cyan);
  text-decoration: none;
}

a:hover { text-decoration: underline; text-underline-offset: 3px; }

hr {
  border: 0;
  border-top: 1px solid var(--sky-line);
}

/* ---------- 2. 变量 ---------- */
:root {
  /* 色彩 */
  --sky-night: #070E1F;
  --sky-night-deep: #040914;
  --sky-panel: #0E1830;
  --sky-raise: #16243F;
  --sky-cyan: #2BE8D2;
  --sky-cyan-soft: #9FF7EC;
  --sky-orange: #FF6A2B;
  --sky-orange-soft: #FF8F5C;
  --sky-yellow: #FFE04D;
  --sky-white: #E8EEF8;
  --sky-mist: #9BAECB;
  --sky-line: #24365C;
  --sky-red: #FF4D6D;
  --sky-ink: #04121B;

  /* 字体 */
  --font-body: system-ui, -apple-system, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", sans-serif;
  --font-cond: "Arial Narrow", "Liberation Sans Narrow", "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", "Courier New", monospace;

  /* 圆角 */
  --r-lg: 32px;
  --r-md: 24px;
  --r-sm: 14px;
  --r-pill: 999px;

  /* 尺寸 */
  --shell: 1320px;
  --gutter: clamp(1rem, 4vw, 2rem);
  --head-h: 128px;

  /* 阴影 */
  --shadow-panel: 0 18px 48px -28px rgba(0, 0, 0, .85);
  --shadow-glow: 0 0 0 1px rgba(43, 232, 210, .28), 0 12px 40px -20px rgba(43, 232, 210, .35);
}

/* ---------- 3. 基础排版 ---------- */
body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background-color: var(--sky-night);
  color: var(--sky-white);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.75;
  letter-spacing: .005em;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(120% 78% at 82% -12%, rgba(43, 232, 210, .10), transparent 62%),
    radial-gradient(96% 62% at -8% 104%, rgba(255, 106, 43, .09), transparent 60%),
    linear-gradient(180deg, rgba(14, 24, 48, .55), transparent 40%);
}

.site-head,
.site-foot,
main,
#main-content {
  position: relative;
  z-index: 1;
}

main { flex: 1 0 auto; }

h1, h2, h3, h4 {
  font-family: var(--font-cond);
  font-weight: 800;
  letter-spacing: -.012em;
  line-height: 1.12;
  text-wrap: balance;
}

h1 { font-size: clamp(34px, 5.2vw, 64px); }
h2 { font-size: clamp(26px, 3.4vw, 40px); }
h3 { font-size: clamp(19px, 2vw, 24px); font-weight: 700; line-height: 1.3; }
h4 { font-size: 20px; font-weight: 700; line-height: 1.35; }

p { text-wrap: pretty; }

strong, b { font-weight: 700; color: var(--sky-white); }

::selection {
  background: var(--sky-cyan);
  color: var(--sky-ink);
}

/* ---------- 4. 工具类 ---------- */
.shell {
  width: min(100% - (var(--gutter) * 2), var(--shell));
  margin-inline: auto;
}

.mono {
  font-family: var(--font-mono);
  font-size: 13px;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-variant-numeric: tabular-nums;
}

.mono--sm { font-size: 12px; }

.num {
  font-family: var(--font-cond);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  letter-spacing: -.02em;
}

.eyebrow {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--sky-cyan);
}

.muted { color: var(--sky-mist); }

.skip {
  position: absolute;
  left: 50%;
  top: -120px;
  transform: translateX(-50%);
  z-index: 200;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: .6rem 1.2rem;
  background: var(--sky-cyan);
  color: var(--sky-ink);
  font-weight: 700;
  border-radius: 0 0 var(--r-sm) var(--r-sm);
  transition: top .22s ease;
}

.skip:focus { top: 0; text-decoration: none; }

:focus-visible {
  outline: 2px solid var(--sky-cyan);
  outline-offset: 3px;
  border-radius: 8px;
}

/* ---------- 5. 按钮与胶囊 ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 44px;
  padding: .62rem 1.3rem;
  border: 1px solid transparent;
  border-radius: var(--r-pill);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .01em;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color .22s ease, color .22s ease, border-color .22s ease, transform .22s ease;
}

.btn:hover { text-decoration: none; transform: translateY(-1px); }
.btn:active { transform: translateY(0); }

.btn--orange {
  background: var(--sky-orange);
  color: var(--sky-ink);
  box-shadow: 0 12px 30px -18px rgba(255, 106, 43, .9);
}
.btn--orange:hover { background: var(--sky-orange-soft); }

.btn--cyan {
  background: var(--sky-cyan);
  color: var(--sky-ink);
}
.btn--cyan:hover { background: var(--sky-cyan-soft); }

.btn--ghost {
  border-color: var(--sky-line);
  color: var(--sky-white);
  background: transparent;
}
.btn--ghost:hover {
  border-color: var(--sky-cyan);
  color: var(--sky-cyan);
}

.btn--block { width: 100%; }

.ghost {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: .4rem .6rem;
  font-size: 13px;
  letter-spacing: .04em;
  color: var(--sky-mist);
  border-bottom: 1px dashed transparent;
  transition: color .2s ease, border-color .2s ease;
}

.ghost:hover {
  color: var(--sky-cyan);
  border-bottom-color: var(--sky-cyan);
  text-decoration: none;
}

.pill {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .28rem .72rem;
  border: 1px solid var(--sky-line);
  border-radius: var(--r-pill);
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--sky-mist);
  white-space: nowrap;
}

.pill--live {
  color: var(--sky-cyan);
  border-color: rgba(43, 232, 210, .42);
  background: rgba(43, 232, 210, .08);
}

.pill--orange {
  color: var(--sky-orange);
  border-color: rgba(255, 106, 43, .42);
  background: rgba(255, 106, 43, .08);
}

.pill--red {
  color: var(--sky-red);
  border-color: rgba(255, 77, 109, .42);
  background: rgba(255, 77, 109, .08);
}

.pill--score {
  color: var(--sky-yellow);
  border-color: rgba(255, 224, 77, .38);
  background: rgba(255, 224, 77, .07);
  font-size: 13px;
}

/* ---------- 6. 页头 ---------- */
.site-head {
  position: sticky;
  top: 0;
  z-index: 90;
  background: linear-gradient(180deg, rgba(7, 14, 31, .97) 0%, rgba(7, 14, 31, .86) 100%);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  backdrop-filter: blur(16px) saturate(140%);
  border-bottom: 1px solid var(--sky-line);
}

.site-head__scan {
  display: block;
  height: 2px;
  width: 100%;
  background: linear-gradient(90deg, transparent 0%, var(--sky-cyan) 26%, var(--sky-orange) 62%, transparent 100%);
  opacity: .55;
}

.site-head__inner { position: relative; }

.masthead {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1rem;
  padding-block: 1.05rem .6rem;
  transition: padding .3s ease;
}

.masthead__meter {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  color: var(--sky-mist);
  transition: opacity .25s ease;
}

.pulse {
  position: relative;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--sky-cyan);
  flex: none;
}

.pulse::after {
  content: "";
  position: absolute;
  inset: -5px;
  border-radius: 50%;
  border: 1px solid var(--sky-cyan);
  animation: beat 45s ease-in-out infinite;
}

@keyframes beat {
  0%, 88%, 100% { opacity: .12; transform: scale(.72); }
  92% { opacity: .85; transform: scale(1.15); }
  96% { opacity: .2; transform: scale(.9); }
}

.brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .1rem;
  color: var(--sky-white);
  padding-inline: .5rem;
}

.brand:hover { text-decoration: none; }

.brand__name {
  font-family: var(--font-cond);
  font-size: clamp(26px, 3.6vw, 40px);
  font-weight: 800;
  letter-spacing: .2em;
  line-height: 1;
  padding-left: .2em;
  background: linear-gradient(96deg, var(--sky-white) 0%, var(--sky-cyan-soft) 52%, var(--sky-white) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  transition: letter-spacing .3s ease;
}

.brand__tag {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .16em;
  color: var(--sky-mist);
  transition: opacity .25s ease, transform .25s ease;
}

.brand:hover .brand__name { letter-spacing: .26em; }

.masthead__tools {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .8rem;
}

.nav {
  border-top: 1px solid var(--sky-line);
}

.nav__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .2rem;
  padding-block: .35rem;
}

.nav__list a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: .3rem .95rem;
  border-radius: var(--r-pill);
  font-size: 14px;
  letter-spacing: .06em;
  color: var(--sky-mist);
  transition: color .2s ease, background-color .2s ease;
}

.nav__list a:hover {
  color: var(--sky-white);
  background: var(--sky-raise);
  text-decoration: none;
}

.nav__list a[aria-current="page"] {
  color: var(--sky-ink);
  background: var(--sky-cyan);
  font-weight: 700;
  box-shadow: 0 10px 26px -18px rgba(43, 232, 210, .95);
}

.site-head__progress {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 2px;
  background: linear-gradient(90deg, var(--sky-cyan), var(--sky-yellow) 55%, var(--sky-orange));
  transform: scaleX(0);
  transform-origin: left center;
  will-change: transform;
}

.nav-toggle {
  display: none;
  align-items: center;
  gap: .55rem;
  min-height: 44px;
  padding: .45rem .9rem;
  border: 1px solid var(--sky-line);
  border-radius: var(--r-pill);
  color: var(--sky-white);
  font-size: 13px;
  letter-spacing: .06em;
  transition: border-color .2s ease, color .2s ease;
}

.nav-toggle:hover { border-color: var(--sky-cyan); color: var(--sky-cyan); }

.nav-toggle__bars {
  display: inline-flex;
  flex-direction: column;
  gap: 4px;
  width: 18px;
}

.nav-toggle__bar {
  display: block;
  width: 100%;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  transition: transform .25s ease;
}

.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(1) { transform: translateY(3px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(2) { transform: translateY(-3px) rotate(-45deg); }

.site-head.is-stuck .masthead { padding-block: .5rem .35rem; }
.site-head.is-stuck .brand__name { font-size: clamp(22px, 2.6vw, 30px); }
.site-head.is-stuck .brand__tag,
.site-head.is-stuck .masthead__meter { opacity: 0; transform: translateY(-6px); pointer-events: none; }

/* ---------- 7. 页脚 ---------- */
.site-foot {
  margin-top: auto;
  border-top: 1px solid var(--sky-line);
  background:
    linear-gradient(180deg, rgba(14, 24, 48, .85) 0%, var(--sky-night-deep) 100%);
}

.ticker {
  overflow: hidden;
  border-bottom: 1px solid var(--sky-line);
  background: rgba(4, 9, 20, .72);
}

.ticker__track {
  display: flex;
  width: max-content;
  animation: ticker-scroll 52s linear infinite;
}

.ticker__group {
  display: flex;
  align-items: center;
  padding-right: 2.75rem;
}

@keyframes ticker-scroll {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(-50%, 0, 0); }
}

.ticker__item {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin-right: 2.75rem;
  white-space: nowrap;
  font-size: 13px;
  color: var(--sky-mist);
}

.ticker__num {
  font-family: var(--font-cond);
  font-size: 17px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: var(--sky-yellow);
}

.ticker__item-tag {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .1em;
  padding: .16rem .5rem;
  border: 1px solid var(--sky-line);
  border-radius: var(--r-pill);
  color: var(--sky-mist);
}

.ticker__item-tag--live { color: var(--sky-cyan); border-color: rgba(43, 232, 210, .45); }
.ticker__item-tag--next { color: var(--sky-orange); border-color: rgba(255, 106, 43, .45); }

.site-foot__grid {
  display: grid;
  grid-template-columns: 1.5fr .9fr .9fr .9fr 1.4fr;
  gap: clamp(1.5rem, 3vw, 2.75rem);
  padding-block: clamp(2.5rem, 5vw, 3.75rem);
}

.foot-brand__name {
  font-family: var(--font-cond);
  font-size: 28px;
  font-weight: 800;
  letter-spacing: .16em;
  color: var(--sky-white);
  line-height: 1.1;
}

.foot-brand__tag {
  margin-top: .35rem;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .14em;
  color: var(--sky-cyan);
}

.foot-brand__note {
  margin-top: 1rem;
  max-width: 34ch;
  font-size: 14px;
  line-height: 1.7;
  color: var(--sky-mist);
}

.foot-brand__icp {
  margin-top: 1rem;
  display: inline-block;
  padding: .28rem .7rem;
  border: 1px solid var(--sky-line);
  border-radius: var(--r-pill);
  color: var(--sky-mist);
}

.foot-col__title {
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--sky-cyan);
  margin-bottom: .9rem;
}

.foot-col__list {
  display: flex;
  flex-direction: column;
  gap: .15rem;
}

.foot-col__list a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  font-size: 15px;
  color: var(--sky-mist);
  transition: color .2s ease, transform .2s ease;
}

.foot-col__list a:hover {
  color: var(--sky-white);
  transform: translateX(3px);
  text-decoration: none;
}

.foot-contact__list {
  display: flex;
  flex-direction: column;
  gap: .7rem;
  font-size: 14px;
  color: var(--sky-white);
  line-height: 1.6;
  word-break: break-word;
}

.foot-contact__list .mono {
  display: block;
  color: var(--sky-mist);
  margin-bottom: .1rem;
}

.foot-contact__note {
  margin-top: 1rem;
  font-size: 13px;
  line-height: 1.7;
  color: var(--sky-mist);
}

.site-foot__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-block: 1.1rem 1.6rem;
  border-top: 1px solid var(--sky-line);
  color: var(--sky-mist);
}

.to-top {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  min-height: 44px;
  padding: .4rem 1.05rem;
  border: 1px solid var(--sky-line);
  border-radius: var(--r-pill);
  font-size: 13px;
  letter-spacing: .06em;
  color: var(--sky-white);
  transition: border-color .2s ease, color .2s ease, background-color .2s ease;
}

.to-top::before {
  content: "";
  width: 7px;
  height: 7px;
  border-left: 2px solid currentColor;
  border-top: 2px solid currentColor;
  transform: rotate(45deg) translate(1px, 1px);
}

.to-top:hover {
  border-color: var(--sky-cyan);
  color: var(--sky-cyan);
  background: rgba(43, 232, 210, .07);
}

/* ---------- 8. 通用布局原语 ---------- */
.section { padding-block: clamp(2.5rem, 6vw, 5rem); }

.section__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--sky-line);
  margin-bottom: 2rem;
}

.section__head .eyebrow { display: block; margin-bottom: .5rem; }

.split {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(1.5rem, 4vw, 3rem);
}

@media (min-width: 1024px) {
  .split { grid-template-columns: 208px minmax(0, 1fr); }
  .split--wide { grid-template-columns: 264px minmax(0, 1fr); }
  .split--right { grid-template-columns: minmax(0, 1fr) 300px; }
}

.rail { min-width: 0; }

.rail__sticky { position: sticky; top: calc(var(--head-h) + 1rem); }

.rail__title {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--sky-mist);
  margin-bottom: .8rem;
}

.rail__list {
  border-left: 1px solid var(--sky-line);
  display: flex;
  flex-direction: column;
}

.rail__list a {
  position: relative;
  display: block;
  padding: .55rem 0 .55rem 1.1rem;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .08em;
  color: var(--sky-mist);
  transition: color .2s ease, padding-left .2s ease;
}

.rail__list a::before {
  content: "";
  position: absolute;
  left: -4px;
  top: 50%;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--sky-line);
  transform: translateY(-50%);
  transition: background-color .2s ease, box-shadow .2s ease;
}

.rail__list a:hover { color: var(--sky-white); text-decoration: none; padding-left: 1.35rem; }

.rail__list a.is-active {
  color: var(--sky-cyan);
  font-weight: 700;
}

.rail__list a.is-active::before {
  background: var(--sky-cyan);
  box-shadow: 0 0 0 4px rgba(43, 232, 210, .18);
}

.grid {
  display: grid;
  gap: clamp(1rem, 2.4vw, 1.6rem);
}

.grid--auto { grid-template-columns: repeat(auto-fit, minmax(255px, 1fr)); }
.grid--two { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }

@media (min-width: 960px) {
  .grid--12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
}

.card {
  position: relative;
  padding: clamp(1.2rem, 2.4vw, 1.75rem);
  border: 1px solid var(--sky-line);
  border-radius: var(--r-md);
  background: linear-gradient(160deg, var(--sky-panel) 0%, rgba(14, 24, 48, .72) 100%);
  box-shadow: var(--shadow-panel);
  transition: border-color .25s ease, transform .25s ease, background-color .25s ease;
}

.card:hover { border-color: rgba(43, 232, 210, .45); transform: translateY(-3px); }

.card--flat { box-shadow: none; }
.card--raise { background: var(--sky-raise); }
.card--accent { border-color: rgba(43, 232, 210, .4); }

.card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .55rem;
  margin-bottom: .9rem;
}

.card__title { margin-bottom: .55rem; }

.card__text { font-size: 15px; line-height: 1.7; color: var(--sky-mist); }

.prose {
  max-width: 68ch;
  font-size: 17px;
  line-height: 1.75;
  color: var(--sky-white);
}

.prose > * + * { margin-top: 1.5em; }
.prose h2 { margin-top: 2.2em; }
.prose h3 { margin-top: 1.8em; }
.prose ul, .prose ol { padding-left: 1.3em; }
.prose li { margin-top: .5em; }
.prose ul li { list-style: none; position: relative; }
.prose ul li::before {
  content: "";
  position: absolute;
  left: -1.1em;
  top: .78em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--sky-cyan);
}
.prose ol { list-style: decimal; }
.prose a { border-bottom: 1px solid rgba(43, 232, 210, .4); }
.prose a:hover { text-decoration: none; border-bottom-color: var(--sky-cyan); }
.prose blockquote {
  padding: .9rem 0 .9rem 1.3rem;
  border-left: 3px solid var(--sky-cyan);
  color: var(--sky-mist);
  font-size: 16px;
}

.cover {
  display: grid;
  gap: clamp(1.5rem, 4vw, 3rem);
  grid-template-columns: minmax(0, 1fr);
  padding-block: clamp(2rem, 5vw, 4rem);
}

@media (min-width: 1024px) {
  .cover { grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: end; }
  .cover__lead { grid-column: 1 / span 7; }
  .cover__aside { grid-column: 8 / span 5; }
}

.cover__lead h1 { margin-block: .6rem 1rem; }

.cover__sub {
  max-width: 46ch;
  font-size: clamp(16px, 1.6vw, 18px);
  line-height: 1.75;
  color: var(--sky-mist);
}

.crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .08em;
  color: var(--sky-mist);
}

.crumbs li { display: inline-flex; align-items: center; gap: .5rem; }
.crumbs li + li::before { content: "/"; color: var(--sky-line); }
.crumbs a { color: var(--sky-mist); }
.crumbs a:hover { color: var(--sky-cyan); text-decoration: none; }
.crumbs [aria-current="page"] { color: var(--sky-cyan); }

/* ---------- 9. 图片容器 ---------- */
.media {
  position: relative;
  overflow: hidden;
  border-radius: var(--r-lg);
  border: 1px solid var(--sky-line);
  background:
    radial-gradient(120% 100% at 20% 0%, rgba(43, 232, 210, .14), transparent 60%),
    linear-gradient(160deg, var(--sky-raise), var(--sky-panel));
  aspect-ratio: var(--ratio, 16 / 10);
  width: 100%;
}

.media img,
.media picture > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}

.media--wide { --ratio: 21 / 9; }
.media--tall { --ratio: 3 / 4; }
.media--square { --ratio: 1 / 1; }
.media--portrait { --ratio: 4 / 5; }

.media__glow {
  position: absolute;
  inset: auto -20% -40% auto;
  width: 62%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(43, 232, 210, .3), transparent 68%);
  pointer-events: none;
}

.media__cap {
  position: absolute;
  left: 1rem;
  bottom: 1rem;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .35rem .85rem;
  border-radius: var(--r-pill);
  background: rgba(4, 9, 20, .78);
  border: 1px solid var(--sky-line);
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .08em;
  color: var(--sky-white);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

/* ---------- 10. 显现动效 ---------- */
html.js [data-reveal] {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .5s ease, transform .5s cubic-bezier(.22, .61, .36, 1);
  transition-delay: var(--reveal-delay, 0ms);
}

html.js [data-reveal].is-in {
  opacity: 1;
  transform: none;
}

/* ---------- 11. 响应式 ---------- */
@media (max-width: 1100px) {
  .site-foot__grid { grid-template-columns: 1.4fr 1fr 1fr; }
  .foot-contact { grid-column: 1 / -1; }
}

@media (max-width: 900px) {
  .masthead {
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: .6rem;
    padding-block: .75rem .5rem;
  }

  .masthead__meter { display: none; }

  .brand {
    align-items: flex-start;
    padding-inline: 0;
  }

  .brand__name { letter-spacing: .12em; }
  .brand__tag { letter-spacing: .1em; }

  .masthead__tools { gap: .5rem; }

  .masthead__tools .ghost,
  .masthead__tools .btn--orange { display: none; }

  .nav-toggle { display: inline-flex; }

  .nav {
    max-height: 0;
    overflow: hidden;
    border-top-color: transparent;
    transition: max-height .35s cubic-bezier(.22, .61, .36, 1), border-color .3s ease;
  }

  .site-head[data-open] .nav {
    max-height: 560px;
    border-top-color: var(--sky-line);
  }

  .nav__list {
    flex-direction: column;
    align-items: stretch;
    gap: .1rem;
    padding-block: .6rem 1rem;
  }

  .nav__list a { justify-content: flex-start; padding-inline: 1rem; }

  .site-head.is-stuck .brand__tag { opacity: 1; transform: none; }
}

@media (max-width: 700px) {
  .site-foot__grid { grid-template-columns: 1fr 1fr; }
  .foot-brand { grid-column: 1 / -1; }
  .foot-contact { grid-column: 1 / -1; }
  .foot-brand__note { max-width: none; }
  .media { border-radius: var(--r-md); }
}

@media (max-width: 520px) {
  .site-foot__grid { grid-template-columns: 1fr; }
  .site-foot__bar { flex-direction: column; align-items: flex-start; }
  .to-top { align-self: stretch; justify-content: center; }
  .ticker__item { font-size: 12px; }
}

/* ---------- 12. 无障碍与偏好 ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  *,
  *::before,
  *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }

  html.js [data-reveal] {
    opacity: 1;
    transform: none;
  }

  .ticker__track { transform: none; }
  .card:hover, .btn:hover { transform: none; }
}

@media print {
  body::before, .site-head, .ticker, .to-top { display: none !important; }
  body { background: #fff; color: #111; }
  .site-foot { border-top: 1px solid #ccc; background: #fff; color: #111; }
}
