/* =========================================================
   江南体育 · 共享样式表 /assets/site.css
   青绿水面 × 红色旗帜 × 蓝调比分屏
   ========================================================= */

/* ---------- 变量 ---------- */
:root{
  --jn-ink:#06171C;
  --jn-teal-700:#0E4A47;
  --jn-teal-500:#1E7A6E;
  --jn-teal-200:#9FD3C7;
  --jn-red:#D7263D;
  --jn-red-100:#FBE3E6;
  --jn-neon:#2E5BFF;
  --jn-night:#12224D;
  --jn-paper:#F4F7F5;
  --jn-gray:#6E8388;

  --jn-hair:rgba(159,211,199,.32);
  --jn-hair-strong:rgba(159,211,199,.55);
  --jn-teal-wash:rgba(30,122,110,.10);

  --jn-font-head:"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --jn-font-body:"Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  --jn-font-mono:"JetBrains Mono","IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;

  --jn-header-h:84px;
  --jn-header-h-compact:62px;
  --jn-maxw:1320px;
  --jn-gutter:clamp(18px,4vw,48px);
  --jn-ease:cubic-bezier(.22,.61,.36,1);
  --jn-shadow-soft:0 1px 0 rgba(6,23,28,.05),0 10px 28px -22px rgba(6,23,28,.55);
}

@media (max-width:980px){
  :root{ --jn-header-h:64px; }
}

/* ---------- reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--jn-header-h) + 20px);
}
body{
  margin:0;
  background:var(--jn-paper);
  color:var(--jn-ink);
  font-family:var(--jn-font-body);
  font-size:17px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
h1,h2,h3,h4,h5{
  margin:0;
  font-family:var(--jn-font-head);
  font-weight:900;
  letter-spacing:-.02em;
  line-height:1.18;
}
p{margin:0;}
ul,ol{margin:0;padding:0;list-style:none;}
img,svg,video{ display:block; max-width:100%; }
a{ color:inherit; }
button{ font:inherit; color:inherit; background:none; border:0; }
table{ border-collapse:collapse; width:100%; }

:focus-visible{
  outline:2px solid var(--jn-red);
  outline-offset:2px;
  border-radius:2px;
}
.jn-header :focus-visible,
.jn-footer :focus-visible{
  outline-color:var(--jn-teal-200);
}

/* ---------- 主内容外壳 ---------- */
#main-content{
  display:block;
  padding-top:var(--jn-header-h);
}

/* =========================================================
   头部
   ========================================================= */
.jn-skip{
  position:absolute;
  left:12px;
  top:12px;
  z-index:200;
  display:inline-block;
  padding:10px 18px;
  background:var(--jn-red);
  color:#fff;
  font-size:14px;
  font-weight:700;
  text-decoration:none;
  border-radius:2px;
  transform:translateY(-220%);
  transition:transform .22s var(--jn-ease);
}
.jn-skip:focus{ transform:translateY(0); }

.jn-header{
  position:fixed;
  inset:0 0 auto 0;
  z-index:90;
  color:var(--jn-paper);
  background:linear-gradient(180deg,rgba(6,23,28,.62),rgba(6,23,28,0));
  transition:background-color .3s var(--jn-ease),box-shadow .3s var(--jn-ease);
}
.jn-header::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--jn-teal-200),transparent);
  opacity:0;
  transition:opacity .3s var(--jn-ease);
}
.jn-header[data-scrolled="true"]{
  background:var(--jn-teal-700);
  box-shadow:0 14px 34px -26px rgba(0,0,0,.85);
}
.jn-header[data-scrolled="true"]::after{ opacity:.5; }

.jn-header__inner{
  position:relative;
  max-width:var(--jn-maxw);
  margin-inline:auto;
  padding:6px var(--jn-gutter) 0;
  height:var(--jn-header-h);
  display:flex;
  align-items:center;
  gap:clamp(14px,2.6vw,36px);
  transition:height .3s var(--jn-ease);
}
.jn-header[data-scrolled="true"] .jn-header__inner{ height:var(--jn-header-h-compact); }

/* 品牌 */
.jn-brand{
  display:inline-flex;
  align-items:center;
  gap:12px;
  min-height:44px;
  color:inherit;
  text-decoration:none;
  flex:none;
}
.jn-brand__mark{
  position:relative;
  display:block;
  width:22px;
  height:30px;
  flex:none;
  background:linear-gradient(180deg,var(--jn-red) 0 52%,var(--jn-teal-500) 52% 100%);
  clip-path:polygon(0 0,100% 0,100% 100%,50% 80%,0 100%);
  box-shadow:inset 0 0 0 1px rgba(244,247,245,.35);
}
.jn-brand__text{ display:flex; flex-direction:column; line-height:1.06; }
.jn-brand__name{
  font-family:var(--jn-font-head);
  font-weight:900;
  font-size:20px;
  letter-spacing:-.02em;
}
.jn-brand__line{
  font-family:var(--jn-font-mono);
  font-size:10px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--jn-teal-200);
}

/* 导航 */
.jn-nav{ margin-left:auto; }
.jn-nav__list{
  display:flex;
  align-items:center;
  gap:clamp(4px,1.1vw,16px);
}
.jn-nav__item{ display:flex; }
.jn-nav__link{
  position:relative;
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:0 12px;
  color:var(--jn-paper);
  font-size:15px;
  font-weight:500;
  letter-spacing:.01em;
  text-decoration:none;
  white-space:nowrap;
  transform:translateY(var(--jn-offset,0px));
  transition:color .2s var(--jn-ease),transform .3s var(--jn-ease);
}
.jn-nav__link::after{
  content:"";
  position:absolute;
  left:12px; right:12px; bottom:11px;
  height:2px;
  background:var(--jn-red);
  transform:scaleX(0) skewX(-26deg);
  transform-origin:left center;
  transition:transform .24s var(--jn-ease);
}
.jn-nav__item:nth-child(1) .jn-nav__link{ --jn-offset:-11px; }
.jn-nav__item:nth-child(2) .jn-nav__link{ --jn-offset:-6px; }
.jn-nav__item:nth-child(3) .jn-nav__link{ --jn-offset:-2px; }
.jn-nav__item:nth-child(4) .jn-nav__link{ --jn-offset:2px; }
.jn-nav__item:nth-child(5) .jn-nav__link{ --jn-offset:6px; }
.jn-nav__item:nth-child(6) .jn-nav__link{ --jn-offset:11px; }
.jn-nav__link:hover,
.jn-nav__link:focus-visible{ color:#fff; }
.jn-nav__link:hover::after,
.jn-nav__link:focus-visible::after{ transform:scaleX(1) skewX(-26deg); }
.jn-nav__link[aria-current="page"]{ color:#fff; }
.jn-nav__link[aria-current="page"]::after{ transform:scaleX(1) skewX(-26deg); }

/* 头部右侧动作 */
.jn-header__actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex:none;
}
.jn-cta{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:44px;
  padding:0 18px;
  background:var(--jn-red);
  color:#fff;
  font-size:14px;
  font-weight:700;
  letter-spacing:.04em;
  text-decoration:none;
  transform:skewX(-10deg);
  transition:background-color .2s var(--jn-ease),box-shadow .2s var(--jn-ease);
}
.jn-cta:hover,
.jn-cta:focus-visible{
  background:#B81B30;
  box-shadow:0 8px 20px -12px rgba(215,38,61,.9);
}
.jn-cta__label{ transform:skewX(10deg); }
.jn-cta__pulse{
  width:7px; height:7px;
  border-radius:50%;
  background:#fff;
  transform:skewX(10deg);
  animation:jn-pulse 1.2s var(--jn-ease) infinite;
}
@keyframes jn-pulse{
  0%{ box-shadow:0 0 0 0 rgba(255,255,255,.65); }
  70%{ box-shadow:0 0 0 8px rgba(255,255,255,0); }
  100%{ box-shadow:0 0 0 0 rgba(255,255,255,0); }
}

/* 汉堡 */
.jn-burger{
  display:none;
  align-items:center;
  gap:9px;
  min-width:44px;
  min-height:44px;
  padding:0 10px;
  border:1px solid var(--jn-hair-strong);
  color:var(--jn-paper);
  cursor:pointer;
  transition:border-color .2s var(--jn-ease),color .2s var(--jn-ease);
}
.jn-burger:hover{ border-color:var(--jn-teal-200); }
.jn-burger__box{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  width:18px;
  height:12px;
}
.jn-burger__line{
  display:block;
  height:2px;
  width:100%;
  background:currentColor;
  transition:transform .24s var(--jn-ease),opacity .24s var(--jn-ease);
}
.jn-burger__text{
  font-family:var(--jn-font-mono);
  font-size:11px;
  letter-spacing:.14em;
}
.jn-burger[aria-expanded="true"] .jn-burger__line:nth-child(1){ transform:translateY(5px) rotate(45deg); }
.jn-burger[aria-expanded="true"] .jn-burger__line:nth-child(2){ opacity:0; }
.jn-burger[aria-expanded="true"] .jn-burger__line:nth-child(3){ transform:translateY(-5px) rotate(-45deg); }

/* 阅读进度 */
.jn-progress{
  position:fixed;
  top:0; left:0; right:0;
  height:2px;
  z-index:120;
  pointer-events:none;
}
.jn-progress__fill{
  display:block;
  height:100%;
  width:0;
  background:var(--jn-red);
}
.jn-progress__value{
  position:absolute;
  right:var(--jn-gutter);
  top:5px;
  padding:1px 6px;
  background:rgba(6,23,28,.72);
  color:var(--jn-teal-200);
  font-family:var(--jn-font-mono);
  font-size:10px;
  letter-spacing:.12em;
  opacity:0;
  transition:opacity .28s var(--jn-ease);
}
.jn-progress[data-visible="true"] .jn-progress__value{ opacity:1; }

/* ---------- 头部响应式 ---------- */
@media (max-width:1180px){
  .jn-nav__link{ padding:0 9px; font-size:14px; }
  .jn-nav__item:nth-child(n) .jn-nav__link{ --jn-offset:0px; }
}
@media (max-width:980px){
  .jn-burger{ display:inline-flex; }
  .jn-nav{
    position:fixed;
    left:0; right:0;
    top:var(--jn-header-h);
    bottom:0;
    margin:0;
    padding:22px var(--jn-gutter) 56px;
    background:linear-gradient(180deg,var(--jn-teal-700) 0%,var(--jn-ink) 100%);
    border-top:1px solid var(--jn-hair);
    overflow-y:auto;
    opacity:0;
    visibility:hidden;
    transform:translateY(-10px);
    transition:opacity .26s var(--jn-ease),transform .26s var(--jn-ease),visibility .26s var(--jn-ease);
  }
  .jn-nav[data-open="true"]{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
  }
  .jn-nav__list{ flex-direction:column; align-items:stretch; gap:0; }
  .jn-nav__item:nth-child(n) .jn-nav__link{ --jn-offset:0px; }
  .jn-nav__link{
    width:100%;
    min-height:56px;
    padding:0 4px;
    font-size:18px;
    font-weight:700;
    border-bottom:1px solid rgba(159,211,199,.18);
  }
  .jn-nav__link::after{
    left:0; right:auto;
    width:26px;
    bottom:16px;
  }
  html[data-nav-open="true"]{ overflow:hidden; }
}
@media (max-width:600px){
  .jn-brand__line{ display:none; }
  .jn-cta{ padding:0 12px; font-size:13px; }
  .jn-burger__text{ display:none; }
}

/* =========================================================
   页脚
   ========================================================= */
.jn-footer{
  position:relative;
  margin-top:clamp(56px,8vw,120px);
  background:var(--jn-ink);
  color:var(--jn-teal-200);
}
.jn-footer::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:2px;
  background:linear-gradient(90deg,var(--jn-red) 0 22%,var(--jn-teal-500) 22% 68%,var(--jn-neon) 68% 100%);
}
.jn-footer__inner{
  max-width:var(--jn-maxw);
  margin-inline:auto;
  padding:clamp(48px,7vw,88px) var(--jn-gutter) clamp(28px,4vw,44px);
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1.35fr;
  gap:clamp(24px,4vw,56px);
}
.jn-footer__col{ min-width:0; }
.jn-footer__col::before{
  content:"";
  display:block;
  height:8px;
  margin-bottom:18px;
  background-image:repeating-linear-gradient(90deg,var(--jn-teal-200) 0 1px,transparent 1px 12px);
  opacity:.45;
}
.jn-footer__brand{
  display:inline-flex;
  align-items:center;
  gap:11px;
  min-height:44px;
  color:var(--jn-paper);
  text-decoration:none;
}
.jn-footer__brandname{
  font-family:var(--jn-font-head);
  font-weight:900;
  font-size:20px;
  letter-spacing:-.02em;
}
.jn-footer__flagline{
  margin-top:12px;
  font-family:var(--jn-font-mono);
  font-size:12px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--jn-teal-200);
}
.jn-footer__note{
  margin-top:8px;
  font-size:14px;
  color:var(--jn-gray);
  max-width:26ch;
}
.jn-footer__title{
  font-family:var(--jn-font-mono);
  font-size:11px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--jn-paper);
  opacity:.85;
}
.jn-footer__list{
  margin-top:14px;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.jn-footer__link{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding-left:0;
  color:var(--jn-teal-200);
  font-size:15px;
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .2s var(--jn-ease),padding-left .2s var(--jn-ease);
}
.jn-footer__link:hover,
.jn-footer__link:focus-visible{
  color:#fff;
  padding-left:6px;
  border-bottom-color:var(--jn-red);
}
.jn-footer__link--cta{
  margin-top:14px;
  min-height:44px;
  padding:0 16px;
  background:var(--jn-red);
  color:#fff;
  font-weight:700;
  font-size:14px;
  letter-spacing:.04em;
}
.jn-footer__link--cta:hover,
.jn-footer__link--cta:focus-visible{
  background:#B81B30;
  color:#fff;
  padding-left:16px;
  border-bottom-color:transparent;
}
.jn-footer__meta{
  font-size:14px;
  line-height:1.85;
  color:var(--jn-gray);
  padding:4px 0;
}
.jn-footer__bottom{
  max-width:var(--jn-maxw);
  margin-inline:auto;
  padding:20px var(--jn-gutter) 40px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:10px 26px;
  border-top:1px solid rgba(159,211,199,.18);
  font-size:13px;
  color:var(--jn-gray);
}
.jn-footer__legal{ margin:0; }
.jn-footer__legal-links{
  display:flex;
  flex-wrap:wrap;
  gap:18px;
}
.jn-footer__legal-links a{
  color:var(--jn-teal-200);
  text-decoration:none;
  border-bottom:1px solid rgba(159,211,199,.4);
  padding-bottom:1px;
}
.jn-footer__legal-links a:hover,
.jn-footer__legal-links a:focus-visible{
  color:#fff;
  border-bottom-color:var(--jn-red);
}

@media (max-width:980px){
  .jn-footer__inner{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .jn-footer__inner{ grid-template-columns:1fr; }
  .jn-footer__bottom{ flex-direction:column; align-items:flex-start; }
}

/* =========================================================
   基础组件
   ========================================================= */
.jn-container{
  width:100%;
  max-width:var(--jn-maxw);
  margin-inline:auto;
  padding-inline:var(--jn-gutter);
}
.jn-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:clamp(20px,3vw,40px);
}
.jn-grid > *{ grid-column:1 / -1; }
@media (min-width:761px){
  .jn-col-3{ grid-column:span 3; }
  .jn-col-4{ grid-column:span 4; }
  .jn-col-5{ grid-column:span 5; }
  .jn-col-6{ grid-column:span 6; }
  .jn-col-7{ grid-column:span 7; }
  .jn-col-8{ grid-column:span 8; }
  .jn-col-9{ grid-column:span 9; }
  .jn-col-12{ grid-column:span 12; }
}

.jn-kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--jn-font-mono);
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--jn-teal-500);
}
.jn-kicker::before{
  content:"";
  width:28px;
  height:1px;
  background:currentColor;
  opacity:.65;
}
.jn-section__num{
  font-family:var(--jn-font-mono);
  font-size:12px;
  letter-spacing:.16em;
  color:var(--jn-gray);
  font-variant-numeric:tabular-nums;
}
.jn-mono{
  font-family:var(--jn-font-mono);
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum" 1;
}

.jn-prose{
  max-width:68ch;
  font-size:17px;
  line-height:1.75;
  color:var(--jn-ink);
}
.jn-prose h2{
  font-size:clamp(1.4rem,2.4vw,2rem);
  margin:2.2em 0 .7em;
}
.jn-prose h3{
  font-size:clamp(1.1rem,1.8vw,1.35rem);
  margin:1.8em 0 .6em;
}
.jn-prose p + p{ margin-top:1em; }
.jn-prose ul,.jn-prose ol{ margin:1em 0; padding-left:1.2em; list-style:disc; }
.jn-prose li{ margin:.4em 0; }
.jn-prose a{ color:var(--jn-teal-500); text-decoration:underline; text-underline-offset:3px; }
.jn-prose strong{ font-weight:700; }
.jn-prose blockquote{
  margin:1.6em 0;
  padding:4px 0 4px 18px;
  border-left:3px solid var(--jn-red);
  color:var(--jn-teal-700);
}

.jn-panel{
  border:1px solid var(--jn-hair);
  background:#fff;
  box-shadow:var(--jn-shadow-soft);
}
.jn-panel--dark{
  background:var(--jn-night);
  border-color:rgba(46,91,255,.38);
  color:var(--jn-paper);
  box-shadow:none;
}
.jn-panel__head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:16px;
  padding:16px 22px;
  border-bottom:1px solid rgba(159,211,199,.3);
}
.jn-panel--dark .jn-panel__head{ border-bottom-color:rgba(46,91,255,.35); }
.jn-panel__title{
  font-family:var(--jn-font-head);
  font-size:17px;
  font-weight:800;
  letter-spacing:-.01em;
}

.jn-stat{ display:flex; flex-direction:column; gap:6px; }
.jn-stat__value{
  font-family:var(--jn-font-mono);
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum" 1;
  font-size:clamp(28px,4vw,46px);
  line-height:1;
  font-weight:700;
  color:var(--jn-neon);
}
.jn-stat__label{
  font-size:13px;
  letter-spacing:.06em;
  color:var(--jn-gray);
}

.jn-tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:3px 10px;
  font-family:var(--jn-font-mono);
  font-size:12px;
  letter-spacing:.08em;
  border:1px solid currentColor;
  white-space:nowrap;
}
.jn-tag--red{ color:var(--jn-red); background:var(--jn-red-100); }
.jn-tag--teal{ color:var(--jn-teal-700); background:rgba(159,211,199,.3); }
.jn-tag--neon{ color:#fff; background:var(--jn-neon); border-color:var(--jn-neon); }

.jn-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:44px;
  padding:0 22px;
  font-size:15px;
  font-weight:700;
  letter-spacing:.02em;
  text-decoration:none;
  cursor:pointer;
  border:1px solid transparent;
  transition:background-color .2s var(--jn-ease),color .2s var(--jn-ease),border-color .2s var(--jn-ease);
}
.jn-btn--primary{ background:var(--jn-red); color:#fff; }
.jn-btn--primary:hover,
.jn-btn--primary:focus-visible{ background:#B81B30; }
.jn-btn--ghost{
  background:transparent;
  color:var(--jn-teal-700);
  border-color:var(--jn-teal-500);
}
.jn-btn--ghost:hover,
.jn-btn--ghost:focus-visible{
  background:var(--jn-teal-500);
  color:#fff;
}
.jn-btn--quiet{
  background:transparent;
  color:var(--jn-neon);
  border-color:rgba(46,91,255,.4);
}
.jn-btn--quiet:hover,
.jn-btn--quiet:focus-visible{ background:rgba(46,91,255,.12); }

.jn-breadcrumb{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  font-family:var(--jn-font-mono);
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--jn-gray);
}
.jn-breadcrumb__item{ display:inline-flex; align-items:center; gap:10px; }
.jn-breadcrumb__item + .jn-breadcrumb__item::before{
  content:"/";
  color:var(--jn-teal-200);
}
.jn-breadcrumb__link{
  color:var(--jn-teal-500);
  text-decoration:none;
  border-bottom:1px solid var(--jn-hair);
  padding-bottom:1px;
}
.jn-breadcrumb__link:hover,
.jn-breadcrumb__link:focus-visible{ color:var(--jn-red); border-bottom-color:var(--jn-red); }

.jn-ribbon{
  display:block;
  width:100%;
  height:clamp(24px,4vw,44px);
  color:var(--jn-teal-500);
  overflow:visible;
}
.jn-ribbon path,
.jn-ribbon polyline{
  fill:none;
  stroke:currentColor;
  stroke-width:1.25;
  stroke-linejoin:round;
}
.jn-ribbon [data-ribbon-accent]{ stroke:var(--jn-red); stroke-width:2; }

.jn-ticks{
  position:sticky;
  top:calc(var(--jn-header-h) + 24px);
  display:flex;
  flex-direction:column;
  gap:4px;
}
.jn-ticks__link{
  position:relative;
  display:flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  padding-left:18px;
  font-family:var(--jn-font-mono);
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--jn-gray);
  text-decoration:none;
  transition:color .24s var(--jn-ease),transform .24s var(--jn-ease);
}
.jn-ticks__link::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:8px;
  height:1px;
  background:currentColor;
  transition:width .24s var(--jn-ease),background-color .24s var(--jn-ease);
}
.jn-ticks__link:hover,
.jn-ticks__link:focus-visible{ color:var(--jn-teal-700); }
.jn-ticks__link[aria-current="true"]{
  color:var(--jn-red);
  transform:translateX(4px);
}
.jn-ticks__link[aria-current="true"]::before{
  width:20px;
  background:var(--jn-red);
}

.jn-figure{
  position:relative;
  margin:0;
  overflow:hidden;
  background:var(--jn-ink);
  border:1px solid var(--jn-hair);
}
.jn-figure__img{
  display:block;
  width:100%;
  height:100%;
  aspect-ratio:16 / 9;
  object-fit:cover;
}
.jn-figure--wide .jn-figure__img{ aspect-ratio:21 / 9; }
.jn-figure--tall .jn-figure__img{ aspect-ratio:3 / 4; }
.jn-figure--square .jn-figure__img{ aspect-ratio:1 / 1; }
.jn-figure__ph{
  display:block;
  width:100%;
  aspect-ratio:16 / 9;
  background:
    radial-gradient(120% 90% at 82% 8%,rgba(46,91,255,.32),transparent 62%),
    linear-gradient(140deg,var(--jn-teal-700) 0%,var(--jn-ink) 100%);
}
.jn-figure--tall .jn-figure__ph{ aspect-ratio:3 / 4; }
.jn-figure--wide .jn-figure__ph{ aspect-ratio:21 / 9; }
.jn-figure__cap{
  position:absolute;
  left:0;
  bottom:0;
  max-width:100%;
  padding:7px 12px;
  background:rgba(6,23,28,.76);
  color:var(--jn-teal-200);
  font-family:var(--jn-font-mono);
  font-size:11px;
  letter-spacing:.1em;
}

/* ---------- 显现动效 ---------- */
[data-reveal]{
  opacity:0;
  transform:translateY(14px);
  transition:opacity .55s var(--jn-ease),transform .55s var(--jn-ease);
  transition-delay:var(--jn-reveal-delay,0s);
}
[data-reveal].is-visible{
  opacity:1;
  transform:none;
}

/* ---------- 减弱动效 ---------- */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  [data-reveal]{ opacity:1; transform:none; }
  .jn-cta__pulse{ animation:none; box-shadow:0 0 0 3px rgba(255,255,255,.4); }
}
