.page-news{
  --news-rule: rgba(238,243,248,.07);
  --news-gold-line: rgba(217,178,106,.24);
  --news-sticky: calc(var(--header-h) + 14px);
  --news-gap: 16px;
  background: var(--deep-navy);
  color: var(--mist);
}

.page-news .section{
  padding: clamp(48px, 7vw, 86px) 0;
}

.page-news .section__title{
  font-family: var(--font-display);
  letter-spacing: .02em;
}

.page-news figure{
  margin: 0;
}

.page-news img{
  display: block;
  max-width: 100%;
  height: auto;
}

.page-news .figure-frame{
  position: relative;
  overflow: hidden;
  border: 1px solid var(--news-gold-line);
  border-radius: 3px;
  background: var(--ink-black);
}

.page-news .figure-frame img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.page-news .figure-frame__caption{
  margin-top: var(--sp-3);
  font-size: var(--fs-12);
  line-height: 1.75;
  letter-spacing: .04em;
  color: var(--silver);
}

/* ============ 首屏 ============ */
.page-news .news-hero{
  position: relative;
  padding: clamp(76px, 11vw, 126px) 0 clamp(38px, 5vw, 60px);
  background:
    radial-gradient(120% 82% at 84% 4%, rgba(110,91,216,.18) 0%, rgba(110,91,216,0) 58%),
    radial-gradient(88% 66% at 4% 100%, rgba(53,208,192,.08) 0%, rgba(53,208,192,0) 62%),
    linear-gradient(180deg, var(--deep-navy) 0%, var(--navy-mid) 100%);
  border-bottom: 1px solid var(--news-rule);
}

.page-news .news-hero__inner{
  display: grid;
  gap: clamp(28px, 4vw, 46px);
}

.page-news .news-hero__lede .eyebrow{
  margin-bottom: var(--sp-3);
}

.page-news .news-hero h1{
  margin: 0 0 var(--sp-4);
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(30px, 5.4vw, 56px);
  line-height: 1.18;
  letter-spacing: .02em;
  color: var(--mist);
}

.page-news .news-hero__text{
  margin: 0;
  max-width: 58ch;
  font-size: var(--fs-17);
  line-height: 1.92;
  color: var(--silver);
}

.page-news .news-hero__text--sub{
  margin-top: var(--sp-3);
  font-size: var(--fs-14);
  color: rgba(159,180,204,.78);
}

.page-news .news-stamp{
  position: relative;
  padding: var(--sp-5) var(--sp-5) var(--sp-4);
  border: 1px solid var(--news-gold-line);
  border-radius: 3px;
  background: var(--glass);
  backdrop-filter: blur(10px);
  overflow: hidden;
}

.page-news .news-stamp::after{
  content: "";
  position: absolute;
  inset: 6px;
  border: 1px solid rgba(217,178,106,.1);
  border-radius: 2px;
  pointer-events: none;
}

.page-news .news-stamp__label{
  margin: 0;
  font-size: var(--fs-12);
  letter-spacing: .3em;
  color: var(--gold);
}

.page-news .news-stamp__num{
  margin: var(--sp-2) 0 var(--sp-4);
  font-size: clamp(64px, 13vw, 118px);
  line-height: .9;
  letter-spacing: -.02em;
  color: var(--gold);
}

.page-news .news-stamp__facts{
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--news-rule);
}

.page-news .news-stamp__fact{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--sp-3);
  padding: 9px 0;
  border-bottom: 1px solid var(--news-rule);
}

.page-news .news-stamp__key{
  font-size: var(--fs-12);
  letter-spacing: .1em;
  color: var(--silver);
}

.page-news .news-stamp__val{
  font-size: var(--fs-14);
  color: var(--mist);
}

.page-news .news-ledger{
  margin: clamp(32px, 5vw, 56px) 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: var(--news-rule);
  border-top: 1px solid var(--news-rule);
  border-bottom: 1px solid var(--news-rule);
}

.page-news .news-ledger__cell{
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: var(--sp-4) var(--sp-3);
  background: rgba(6,24,41,.72);
}

.page-news .news-ledger__k{
  font-size: var(--fs-12);
  letter-spacing: .12em;
  color: var(--silver);
}

.page-news .news-ledger__v{
  font-size: var(--fs-14);
  color: var(--mist);
}

/* ============ 标签胶囊 ============ */
.page-news .news-chip{
  display: inline-flex;
  align-items: center;
  flex: none;
  padding: 2px 10px;
  border: 1px solid var(--copper-line);
  border-radius: 999px;
  font-size: var(--fs-12);
  letter-spacing: .14em;
  line-height: 1.7;
  color: var(--copper);
  white-space: nowrap;
}

.page-news .news-chip--batch{
  border-color: rgba(217,178,106,.5);
  color: var(--gold);
}

.page-news .news-chip--shift{
  border-color: rgba(110,91,216,.62);
  color: #A99CF0;
}

.page-news .news-chip--rule{
  border-color: var(--copper-line);
  color: var(--copper);
}

/* ============ 置顶条目 ============ */
.page-news .news-pinned__grid{
  display: grid;
  gap: clamp(28px, 4vw, 46px);
}

.page-news .news-stack{
  margin: 0;
  padding: 0;
  list-style: none;
}

.page-news .news-item{
  padding: var(--sp-4) 0;
  border-top: 1px solid var(--news-rule);
}

.page-news .news-item:first-child{
  border-top: 1px solid var(--news-gold-line);
}

.page-news .news-item__meta{
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  margin-bottom: var(--sp-2);
}

.page-news .news-item__no{
  font-size: var(--fs-12);
  letter-spacing: .12em;
  color: rgba(200,69,47,.92);
}

.page-news .news-item__title{
  margin: 0 0 var(--sp-2);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-22);
  line-height: 1.4;
  letter-spacing: .015em;
  color: var(--mist);
}

.page-news .news-item__text{
  margin: 0;
  font-size: var(--fs-14);
  line-height: 1.88;
  color: var(--silver);
}

/* ============ 双轴区 ============ */
.page-news .news-axes{
  background: var(--navy-mid);
}

.page-news .news-axes__grid{
  display: grid;
  gap: clamp(38px, 5vw, 60px);
}

.page-news .news-batches{
  position: relative;
  padding-left: 26px;
}

.page-news .news-batches::before{
  content: "";
  position: absolute;
  left: 8px;
  top: 0;
  bottom: 0;
  width: 1px;
  background: linear-gradient(180deg, rgba(217,178,106,.5) 0%, rgba(176,118,74,.18) 100%);
}

.page-news .news-batch{
  position: relative;
  padding-bottom: var(--sp-5);
}

.page-news .news-batch::before{
  content: "";
  position: absolute;
  left: -21px;
  top: 24px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--night-violet);
  box-shadow: 0 0 0 3px rgba(110,91,216,.16);
}

.page-news .news-batch__head{
  position: sticky;
  top: var(--news-sticky);
  z-index: 3;
  display: flex;
  align-items: baseline;
  gap: var(--sp-4);
  flex-wrap: wrap;
  padding: var(--sp-3) 0 var(--sp-2);
  background: var(--navy-mid);
  border-top: 1px solid var(--news-gold-line);
  box-shadow: 0 16px 20px -18px rgba(2,9,15,.95);
}

.page-news .news-batch__no{
  margin: 0;
  font-size: var(--fs-32);
  font-weight: 500;
  line-height: 1;
  letter-spacing: .01em;
  color: var(--gold);
}

.page-news .news-batch__brief{
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.page-news .news-batch__when{
  margin: 0;
  font-size: var(--fs-12);
  letter-spacing: .16em;
  color: var(--silver);
}

.page-news .news-batch__sum{
  margin: 0;
  font-size: var(--fs-12);
  letter-spacing: .04em;
  color: rgba(159,180,204,.72);
}

.page-news .news-batch__list{
  margin: var(--sp-3) 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}

.page-news .news-row{
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-4);
  border: 1px solid var(--news-rule);
  border-radius: 3px;
  background: rgba(238,243,248,.03);
  transition: background .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease);
}

.page-news .news-row:hover{
  background: var(--glass);
  border-color: rgba(53,208,192,.35);
  transform: translateY(-2px);
}

.page-news .news-row__body{
  min-width: 0;
}

.page-news .news-row__title{
  margin: 0 0 4px;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: var(--fs-14);
  line-height: 1.6;
  letter-spacing: .01em;
  color: var(--mist);
}

.page-news .news-row__text{
  margin: 0;
  font-size: var(--fs-12);
  line-height: 1.85;
  color: rgba(159,180,204,.82);
}

/* ============ 班次视图 ============ */
.page-news .news-shifts__title{
  margin: 0 0 var(--sp-4);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-22);
  letter-spacing: .02em;
  color: var(--mist);
}

.page-news .news-band{
  display: grid;
  gap: 8px;
}

.page-news .news-shift{
  position: relative;
  padding: var(--sp-4);
  border-radius: 3px;
  border: 1px solid var(--news-rule);
  background: var(--deep-navy);
  overflow: hidden;
  transition: transform .25s var(--ease), border-color .25s var(--ease);
}

.page-news .news-shift::before{
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
}

.page-news .news-shift--morning::before{
  background: linear-gradient(180deg, rgba(217,178,106,.85), rgba(217,178,106,.15));
}

.page-news .news-shift--mid::before{
  background: linear-gradient(180deg, rgba(53,208,192,.85), rgba(53,208,192,.15));
}

.page-news .news-shift--night::before{
  background: linear-gradient(180deg, rgba(110,91,216,.9), rgba(110,91,216,.15));
}

.page-news .news-shift:hover,
.page-news .news-shift:focus-visible{
  transform: translateY(-4px);
  border-color: rgba(53,208,192,.4);
}

.page-news .news-shift__time{
  margin: 0 0 6px;
  font-size: var(--fs-14);
  letter-spacing: .06em;
  color: var(--silver);
}

.page-news .news-shift__name{
  margin: 0 0 var(--sp-2);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-22);
  letter-spacing: .04em;
  color: var(--mist);
}

.page-news .news-shift__handover{
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-size: var(--fs-12);
  letter-spacing: .04em;
  color: rgba(159,180,204,.6);
  transition: color .25s var(--ease);
}

.page-news .news-shift:hover .news-shift__handover,
.page-news .news-shift:focus-visible .news-shift__handover{
  color: var(--spark-teal);
}

.page-news .news-shift__dot{
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--night-violet);
  flex: none;
}

.page-news .news-band__axis{
  display: flex;
  justify-content: space-between;
  margin: var(--sp-3) 0 0;
  padding-top: 6px;
  border-top: 1px solid var(--copper-line);
  font-size: var(--fs-12);
  letter-spacing: .08em;
  color: rgba(159,180,204,.7);
}

.page-news .news-shifts__log{
  margin: var(--sp-5) 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 1px;
  background: var(--news-rule);
}

.page-news .news-log{
  display: grid;
  gap: 4px;
  padding: var(--sp-4) 0;
  background: var(--navy-mid);
}

.page-news .news-log__when{
  font-size: var(--fs-12);
  letter-spacing: .16em;
  color: var(--gold);
}

.page-news .news-log__what{
  font-size: var(--fs-14);
  line-height: 1.85;
  color: var(--silver);
}

.page-news .news-shifts__figure{
  margin-top: var(--sp-5);
}

/* ============ 规则区 ============ */
.page-news .news-rules__grid{
  display: grid;
  gap: clamp(28px, 4vw, 46px);
}

.page-news .news-rules__lead{
  margin: 0 0 var(--sp-5);
  max-width: 62ch;
  font-size: var(--fs-17);
  line-height: 1.94;
  color: var(--mist);
}

.page-news .news-rules__list{
  margin: 0;
  display: grid;
  gap: 1px;
  background: var(--news-rule);
  border-top: 1px solid var(--news-rule);
  border-bottom: 1px solid var(--news-rule);
}

.page-news .news-rule-item{
  display: grid;
  gap: 4px;
  padding: var(--sp-4) 0;
  background: var(--deep-navy);
}

.page-news .news-rule-item__term{
  margin: 0;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-17);
  letter-spacing: .03em;
  color: var(--gold);
}

.page-news .news-rule-item__term .mono{
  margin-right: 8px;
  font-size: var(--fs-12);
  color: rgba(200,69,47,.92);
}

.page-news .news-rule-item__desc{
  margin: 0;
  font-size: var(--fs-14);
  line-height: 1.88;
  color: var(--silver);
}

/* ============ 专题 ============ */
.page-news .news-topics{
  background: var(--navy-mid);
}

.page-news .news-topics__grid{
  display: grid;
  gap: var(--news-gap);
}

.page-news .news-topic{
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  padding: var(--sp-5);
  border: 1px solid var(--news-rule);
  border-radius: 3px;
  background: var(--glass);
  transition: transform .25s var(--ease), background .25s var(--ease), border-color .25s var(--ease);
}

.page-news .news-topic:hover{
  transform: translateY(-4px);
  background: var(--glass-strong);
  border-color: rgba(217,178,106,.35);
}

.page-news .news-topic__figure{
  margin-bottom: var(--sp-3);
}

.page-news .news-topic__count{
  margin: 0;
  font-size: var(--fs-12);
  letter-spacing: .12em;
  color: var(--spark-teal);
}

.page-news .news-topic__name{
  margin: 0;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-22);
  letter-spacing: .02em;
  color: var(--mist);
}

.page-news .news-topic__desc{
  margin: 0;
  font-size: var(--fs-14);
  line-height: 1.88;
  color: var(--silver);
}

/* ============ 跟进 ============ */
.page-news .news-follow{
  background:
    radial-gradient(90% 80% at 8% 0%, rgba(110,91,216,.12) 0%, rgba(110,91,216,0) 62%),
    linear-gradient(180deg, var(--deep-navy) 0%, var(--ink-black) 100%);
}

.page-news .news-follow__grid{
  display: grid;
  gap: clamp(30px, 4vw, 52px);
}

.page-news .news-follow__lead{
  margin: var(--sp-4) 0 var(--sp-5);
  max-width: 60ch;
  font-size: var(--fs-17);
  line-height: 1.94;
  color: var(--silver);
}

.page-news .news-follow__points{
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: var(--sp-3);
}

.page-news .news-follow__points li{
  position: relative;
  padding-left: 18px;
  font-size: var(--fs-14);
  line-height: 1.9;
  color: rgba(159,180,204,.86);
}

.page-news .news-follow__points li::before{
  content: "";
  position: absolute;
  left: 0;
  top: 11px;
  width: 6px;
  height: 1px;
  background: var(--gold);
}

.page-news .news-follow__acts{
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-3);
  align-content: start;
}

.page-news .news-follow__links{
  margin: var(--sp-3) 0 0;
  padding: var(--sp-4) 0 0;
  list-style: none;
  width: 100%;
  display: grid;
  gap: 10px;
  border-top: 1px solid var(--news-rule);
}

.page-news .news-follow__links a{
  font-size: var(--fs-14);
  line-height: 1.8;
  color: var(--silver);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color .2s var(--ease), border-color .2s var(--ease);
}

.page-news .news-follow__links a:hover,
.page-news .news-follow__links a:focus-visible{
  color: var(--spark-teal);
  border-bottom-color: var(--spark-teal);
}

/* ============ 响应式 ============ */
@media (min-width: 720px){
  .page-news .news-ledger{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .page-news .news-ledger__cell{
    padding: var(--sp-4);
  }

  .page-news .news-topics__grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-news .news-shifts__log{
    gap: 1px;
  }

  .page-news .news-log{
    grid-template-columns: 140px minmax(0, 1fr);
    align-items: baseline;
    gap: var(--sp-4);
    padding: var(--sp-3) 0;
  }

  .page-news .news-band{
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }
}

@media (min-width: 980px){
  .page-news .news-hero__inner{
    grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr);
    align-items: end;
  }

  .page-news .news-pinned__grid{
    grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
    align-items: start;
  }

  .page-news .news-rules__grid{
    grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
    align-items: start;
  }

  .page-news .news-follow__grid{
    grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
    align-items: start;
  }

  .page-news .news-follow__acts{
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (min-width: 1080px){
  .page-news .news-axes__grid{
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: clamp(40px, 4vw, 62px);
    align-items: start;
  }

  .page-news .news-topics__grid{
    grid-template-columns: 1.6fr 1fr 1fr 1.15fr;
    align-items: stretch;
  }
}

@media (hover: hover) and (min-width: 900px){
  .page-news .news-item__text{
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .page-news .news-item:hover .news-item__text,
  .page-news .news-item:focus-within .news-item__text{
    -webkit-line-clamp: 4;
  }
}

@media (prefers-reduced-motion: reduce){
  .page-news *,
  .page-news *::before,
  .page-news *::after{
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    transform: none !important;
  }
}
