:root{
  --ink-900:#061A2B;
  --ink-800:#0B2740;
  --ink-700:#12395A;
  --rule:#1F4E72;
  --signal:#2BF2C0;
  --coral:#FF7A5A;
  --fog:#DCE9F5;
  --fog-dim:#8FA9BF;
  --paper:#F3EFE6;
  --paper-ink:#0C1B26;
  --font-num:"Barlow Condensed","Oswald","Arial Narrow",system-ui,sans-serif;
  --font-serif:"Noto Serif SC","Songti SC","Source Han Serif SC",Georgia,serif;
  --font-sans:Inter,"PingFang SC","Noto Sans SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  --shell:1280px;
  --gutter:clamp(16px,3.2vw,40px);
  --ease:cubic-bezier(.22,.61,.36,1);
  --fs-body:16px;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--ink-900);
  color:var(--fog);
  font-family:var(--font-sans);
  font-size:var(--fs-body);
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,h5,p,figure,blockquote,dl,dd{margin:0;}
ul,ol{margin:0;padding:0;list-style:none;}
img,svg{max-width:100%;}
button{background:none;border:0;padding:0;cursor:pointer;}
input{background:none;border:0;}
a{color:inherit;}
::selection{background:var(--signal);color:var(--ink-900);}

:where(a,button,input,[tabindex]):focus-visible{
  outline:2px solid var(--signal);
  outline-offset:3px;
}

#main-content{scroll-margin-top:112px;}

.visually-hidden{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;
}

/* ---------- 排版工具 ---------- */
.t-display{
  font-family:var(--font-serif);font-weight:700;
  font-size:clamp(40px,5.6vw,56px);line-height:1.14;letter-spacing:.02em;color:var(--fog);
}
.t-chapter{
  font-family:var(--font-serif);font-weight:700;
  font-size:clamp(28px,3.6vw,34px);line-height:1.3;letter-spacing:.02em;color:var(--fog);
}
.t-number{
  font-family:var(--font-num);font-weight:700;line-height:.86;letter-spacing:-.01em;
  font-size:clamp(96px,12vw,140px);color:transparent;-webkit-text-stroke:1px var(--rule);
}
@supports not ((-webkit-text-stroke:1px #000)){
  .t-number{color:var(--ink-700);}
}
.t-score{
  font-family:var(--font-num);font-weight:700;line-height:.82;
  font-size:clamp(64px,11vw,200px);color:var(--signal);letter-spacing:-.02em;
}
.t-label{
  font-family:var(--font-sans);font-size:13px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--fog-dim);
}
.t-lede{
  font-size:clamp(16px,1.5vw,18px);line-height:1.75;color:var(--fog);max-width:62ch;
}
.t-meta{font-size:13px;line-height:1.6;color:var(--fog-dim);}

/* ---------- 布局工具 ---------- */
.container{width:100%;max-width:var(--shell);margin:0 auto;padding:0 var(--gutter);}
.section{padding:clamp(48px,8vw,96px) 0;}
.rule{height:1px;background:var(--rule);border:0;margin:0;}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(12px,2vw,24px);}
.span-3{grid-column:span 3;}
.span-4{grid-column:span 4;}
.span-5{grid-column:span 5;}
.span-6{grid-column:span 6;}
.span-7{grid-column:span 7;}
.span-8{grid-column:span 8;}
.span-9{grid-column:span 9;}
.span-12{grid-column:span 12;}
@media (max-width:820px){
  .span-3,.span-4,.span-5,.span-6,.span-7,.span-8,.span-9{grid-column:span 12;}
}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 20px;border:1px solid var(--signal);background:var(--signal);color:var(--ink-900);
  font-size:14px;font-weight:700;letter-spacing:.06em;text-decoration:none;cursor:pointer;
  transition:background .16s var(--ease),color .16s var(--ease),border-color .16s var(--ease);
}
.btn:hover{background:transparent;color:var(--signal);}
.btn--ghost{background:transparent;color:var(--fog);border-color:var(--rule);}
.btn--ghost:hover{background:var(--ink-800);color:var(--fog);border-color:var(--fog);}
.btn--coral{background:var(--coral);border-color:var(--coral);color:var(--ink-900);}
.btn--coral:hover{background:transparent;color:var(--coral);}
.btn--block{display:flex;width:100%;}

/* ---------- 标签 ---------- */
.tag{
  display:inline-flex;align-items:center;gap:6px;
  padding:3px 9px;border:1px solid var(--rule);background:transparent;
  font-size:12px;letter-spacing:.08em;color:var(--fog-dim);white-space:nowrap;
}
.tag--signal{color:var(--signal);border-color:var(--signal);}
.tag--coral{color:var(--coral);border-color:var(--coral);font-weight:700;}

/* ---------- 面板 ---------- */
.panel{background:var(--ink-800);border:1px solid var(--rule);padding:clamp(16px,2.6vw,28px);}
.panel--paper{background:var(--paper);color:var(--paper-ink);border-color:var(--paper);}
.panel--paper .t-label,
.panel--paper .t-meta{color:#5A6B77;}
.panel--paper a{color:var(--paper-ink);}

/* ---------- 面包屑 ---------- */
.breadcrumb{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  padding:14px 0;font-size:12px;letter-spacing:.06em;color:var(--fog-dim);
}
.breadcrumb a{color:var(--fog-dim);text-decoration:none;}
.breadcrumb a:hover{color:var(--signal);}
.breadcrumb__sep{color:var(--rule);}

/* ---------- 图片容器 ---------- */
.figure{
  position:relative;margin:0;overflow:hidden;
  background:var(--ink-800);border:1px solid var(--rule);
}
.figure__media{
  display:block;width:100%;height:100%;
  background-image:repeating-linear-gradient(90deg,rgba(31,78,114,.42) 0 1px,transparent 1px 56px);
}
.figure img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.72) contrast(1.04);}
.figure--pitch{aspect-ratio:16/9;}
.figure--portrait{aspect-ratio:3/4;}
.figure--square{aspect-ratio:1/1;}
.figure--wide{aspect-ratio:21/9;}
.figure__caption{
  display:flex;justify-content:space-between;gap:12px;
  padding:8px 10px;border-top:1px solid var(--rule);background:var(--ink-900);
  font-size:12px;color:var(--fog-dim);
}

/* ---------- 显现动效 ---------- */
[data-reveal]{opacity:1;transform:none;}
html.js [data-reveal]{
  opacity:0;transform:translateY(14px);
  transition:opacity .24s var(--ease),transform .24s var(--ease);
}
html.js [data-reveal="2"]{transition-delay:70ms;}
html.js [data-reveal="3"]{transition-delay:140ms;}
html.js [data-reveal="4"]{transition-delay:210ms;}
html.js [data-reveal="5"]{transition-delay:280ms;}
html.js [data-reveal].is-shown{opacity:1;transform:none;}

/* ---------- 跳转链接 ---------- */
.skip-link{
  position:absolute;left:14px;top:8px;z-index:300;
  transform:translateY(-240%);
  background:var(--signal);color:var(--ink-900);
  padding:10px 16px;font-size:14px;font-weight:700;text-decoration:none;
  transition:transform .16s var(--ease);
}
.skip-link:focus,.skip-link:focus-visible{transform:translateY(0);}

/* ---------- 页头 ---------- */
.site-header{
  position:sticky;top:0;z-index:80;
  background:var(--ink-900);
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
.header-inner{
  width:100%;max-width:var(--shell);margin:0 auto;padding:0 var(--gutter);
}
.header-top{
  display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;gap:clamp(8px,2vw,24px);
  padding:14px 0 12px;
  border-bottom:1px solid var(--rule);
}
.header-top__left{display:flex;align-items:center;min-width:0;}
.header-top__right{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0;}

.round-badge{
  display:inline-flex;align-items:baseline;gap:9px;
  border:1px solid var(--rule);padding:5px 11px 6px;
}
.round-badge__label{
  font-size:11px;letter-spacing:.18em;color:var(--fog-dim);text-transform:uppercase;
}
.round-badge__value{
  font-family:var(--font-num);font-size:24px;line-height:1;color:var(--signal);letter-spacing:.02em;
}

.brand{
  justify-self:center;display:flex;flex-direction:column;align-items:center;gap:1px;
  text-decoration:none;color:var(--fog);padding:2px 6px;
}
.brand__name{
  font-family:var(--font-serif);font-weight:700;
  font-size:clamp(20px,2.3vw,28px);line-height:1.1;letter-spacing:.14em;
}
.brand__latin{
  font-family:var(--font-num);font-size:11px;letter-spacing:.42em;
  text-transform:uppercase;color:var(--fog-dim);line-height:1.4;
}
.brand:hover .brand__name{color:var(--signal);}

.quick-find{
  display:flex;align-items:stretch;
  border:1px solid var(--rule);background:var(--ink-800);
}
.quick-find__input{
  width:220px;max-width:40vw;padding:8px 10px;
  font-family:var(--font-sans);font-size:13px;color:var(--fog);
}
.quick-find__input::placeholder{color:var(--fog-dim);}
.quick-find__btn{
  display:inline-flex;align-items:center;gap:7px;
  padding:0 12px;border-left:1px solid var(--rule);background:var(--ink-700);
  font-size:12px;letter-spacing:.08em;color:var(--fog);
  transition:background .16s var(--ease),color .16s var(--ease);
}
.quick-find__btn:hover{background:var(--signal);color:var(--ink-900);}
.quick-find__icon{
  display:block;width:8px;height:8px;
  border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(-45deg);
}
.quick-find__note{
  position:fixed;left:50%;bottom:24px;transform:translateX(-50%);
  z-index:200;max-width:min(420px,calc(100vw - 32px));
  background:var(--ink-800);border:1px solid var(--coral);color:var(--fog);
  padding:9px 15px;font-size:13px;line-height:1.6;
}
.quick-find__note[hidden]{display:none;}

.nav-toggle{
  display:none;align-items:center;gap:9px;
  border:1px solid var(--rule);padding:8px 12px;
  font-size:13px;letter-spacing:.1em;color:var(--fog);
}
.nav-toggle:hover{border-color:var(--signal);color:var(--signal);}
.nav-toggle__bars{display:inline-flex;flex-direction:column;gap:3px;}
.nav-toggle__bars span{
  display:block;width:16px;height:1.5px;background:currentColor;
  transition:transform .18s var(--ease),opacity .18s var(--ease);
}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:nth-child(1){transform:translateY(4.5px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:nth-child(3){transform:translateY(-4.5px) rotate(-45deg);}

.site-nav{border-top:0;}
.site-nav__list{
  display:flex;justify-content:center;align-items:stretch;flex-wrap:wrap;
  gap:clamp(2px,1.4vw,22px);
}
.site-nav__item{position:relative;}
.site-nav__link{
  position:relative;display:inline-block;padding:13px 2px 14px;
  font-size:14px;font-weight:700;letter-spacing:.08em;
  color:var(--fog-dim);text-decoration:none;
  transition:color .16s var(--ease);
}
.site-nav__link:hover{color:var(--fog);}
.site-nav__link[aria-current="page"]{color:var(--signal);}
.site-nav__link[aria-current="page"]::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--signal);
}
.site-nav__link--drop{padding-right:14px;}
.site-nav__link--drop::before{
  content:"";position:absolute;right:2px;top:50%;
  width:5px;height:5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:translateY(-72%) rotate(45deg);
  transition:transform .16s var(--ease);
}
.site-nav__item--drop:hover .site-nav__link--drop::before,
.site-nav__item--drop:focus-within .site-nav__link--drop::before{
  transform:translateY(-30%) rotate(225deg);
}

.drop-panel{
  position:absolute;top:calc(100% + 1px);left:50%;
  transform:translate(-50%,8px);
  width:min(460px,84vw);
  display:grid;grid-template-columns:1fr 1fr;gap:1px;
  background:var(--rule);border:1px solid var(--rule);
  opacity:0;visibility:hidden;z-index:90;
  transition:opacity .16s var(--ease),transform .16s var(--ease),visibility .16s var(--ease);
}
.site-nav__item--drop:hover .drop-panel,
.site-nav__item--drop:focus-within .drop-panel{
  opacity:1;visibility:visible;transform:translate(-50%,0);
}
.drop-panel__entry{
  display:flex;flex-direction:column;gap:4px;
  padding:15px 16px;background:var(--ink-800);
  border-left:3px solid transparent;
  text-decoration:none;color:var(--fog);
  transition:background .16s var(--ease),color .16s var(--ease);
}
.drop-panel__entry:hover{background:var(--ink-700);}
.drop-panel__entry--signal{border-left-color:var(--signal);}
.drop-panel__entry--coral{border-left-color:var(--coral);}
.drop-panel__kicker{
  font-size:11px;letter-spacing:.18em;color:var(--fog-dim);text-transform:uppercase;
}
.drop-panel__title{font-size:15px;font-weight:700;line-height:1.4;}
.drop-panel__meta{font-size:12px;color:var(--fog-dim);line-height:1.5;}

.scroll-progress{
  position:absolute;left:0;right:0;bottom:0;height:2px;
  background:transparent;pointer-events:none;
}
.scroll-progress__bar{
  display:block;height:100%;width:0;background:var(--signal);
  transition:width .1s linear;
}

/* ---------- 页脚 ---------- */
.site-footer{background:var(--ink-900);border-top:1px solid var(--rule);}

.footer-rounds{background:var(--ink-800);border-bottom:1px solid var(--rule);}
.footer-rounds__head{
  display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;
  max-width:var(--shell);margin:0 auto;
  padding:14px var(--gutter) 8px;
}
.footer-rounds__label{
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--signal);font-weight:700;
}
.footer-rounds__hint{font-size:12px;color:var(--fog-dim);letter-spacing:.04em;}
.footer-rounds__track{
  display:flex;overflow-x:auto;
  max-width:var(--shell);margin:0 auto;
  padding:0 var(--gutter) 14px;
  scrollbar-width:thin;
}
.footer-rounds__track::-webkit-scrollbar{height:4px;}
.footer-rounds__track::-webkit-scrollbar-thumb{background:var(--rule);}
.footer-rounds__item{
  position:relative;flex:1 0 44px;text-align:center;min-width:44px;
}
.footer-rounds__num{
  display:block;padding:6px 4px;
  font-family:var(--font-num);font-size:14px;letter-spacing:.08em;
  color:var(--fog-dim);border-left:1px solid var(--rule);
}
.footer-rounds__item:last-child .footer-rounds__num{border-right:1px solid var(--rule);}
.footer-rounds__item--current .footer-rounds__num{color:var(--coral);font-weight:700;}
.footer-rounds__item--current::after{
  content:"";position:absolute;left:50%;bottom:-1px;transform:translateX(-50%);
  width:6px;height:6px;background:var(--coral);display:block;
}

.footer-body{
  max-width:var(--shell);margin:0 auto;
  padding:clamp(32px,5vw,56px) var(--gutter);
}
.footer-brand{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 18px;
  padding-bottom:20px;margin-bottom:clamp(24px,3.4vw,36px);
  border-bottom:1px solid var(--rule);
}
.footer-brand__name{
  font-family:var(--font-serif);font-weight:700;font-size:clamp(20px,2.2vw,24px);
  letter-spacing:.14em;color:var(--fog);
}
.footer-brand__latin{
  font-family:var(--font-num);font-size:12px;letter-spacing:.4em;
  text-transform:uppercase;color:var(--fog-dim);
}
.footer-brand__note{font-size:13px;color:var(--fog-dim);letter-spacing:.04em;}

.footer-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(24px,4vw,56px);
}
.footer-col{min-width:0;}
.footer-col__title{
  font-family:var(--font-sans);font-size:12px;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;color:var(--signal);
  margin:0 0 14px;padding-bottom:10px;border-bottom:1px solid var(--rule);
}
.footer-list li{font-size:14px;line-height:1.75;color:var(--fog-dim);}
.footer-list--plain li{display:flex;gap:10px;padding:5px 0;align-items:flex-start;}
.footer-key{
  flex:0 0 auto;min-width:34px;font-size:12px;letter-spacing:.1em;
  color:var(--fog);padding-top:1px;
}
.footer-link{
  display:inline-block;padding:5px 0;font-size:14px;
  color:var(--fog-dim);text-decoration:none;
  transition:color .16s var(--ease);
}
.footer-link:hover{color:var(--signal);}
.footer-link--inline{padding:0;color:var(--fog);}
.footer-link--inline:hover{color:var(--signal);}

.footer-legal{border-top:1px solid var(--rule);background:var(--ink-900);}
.footer-legal__inner{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 24px;
  max-width:var(--shell);margin:0 auto;
  padding:16px var(--gutter);
  font-size:12px;letter-spacing:.04em;color:var(--fog-dim);
}
.footer-legal__copy{color:var(--fog-dim);}
.footer-legal__icp{
  font-family:var(--font-num);font-size:13px;letter-spacing:.08em;color:var(--fog-dim);
}
.footer-legal__links{display:inline-flex;flex-wrap:wrap;gap:18px;}
.footer-legal__links .footer-link--inline{
  font-size:12px;color:var(--fog-dim);
}
.footer-legal__links .footer-link--inline:hover{color:var(--signal);}

/* ---------- 平板 ---------- */
@media (max-width:1080px){
  .quick-find__input{width:160px;}
  .site-nav__list{gap:clamp(2px,1.2vw,14px);}
}

/* ---------- 移动 ---------- */
@media (max-width:900px){
  .header-top{
    grid-template-columns:minmax(0,1fr) auto;
    padding:12px 0;
    gap:12px;
  }
  .header-top__left{display:none;}
  .brand{justify-self:start;align-items:flex-start;padding:0;}
  .brand__name{font-size:20px;letter-spacing:.1em;}
  .brand__latin{font-size:10px;letter-spacing:.32em;}
  .quick-find{display:none;}
  .nav-toggle{display:inline-flex;}
  .site-nav{display:none;}
  .site-nav[data-open]{display:block;border-top:1px solid var(--rule);}
  .site-nav__list{flex-direction:column;align-items:stretch;gap:0;padding:4px 0 14px;}
  .site-nav__item{border-bottom:1px solid var(--rule);}
  .site-nav__link{display:block;padding:15px 4px;font-size:15px;}
  .site-nav__link[aria-current="page"]::after{
    left:0;right:auto;top:0;bottom:0;width:3px;height:auto;
  }
  .site-nav__link--drop{padding-right:4px;}
  .site-nav__link--drop::before{right:6px;}
  .drop-panel{
    position:static;transform:none;opacity:1;visibility:visible;
    width:auto;grid-template-columns:1fr;border:0;
    background:transparent;margin:0 0 12px;
  }
  .site-nav__item--drop:hover .drop-panel,
  .site-nav__item--drop:focus-within .drop-panel{transform:none;}
  .drop-panel__entry{background:var(--ink-800);border-left-width:2px;padding:12px 14px;}
  .scroll-progress{position:relative;}
  .footer-grid{grid-template-columns:1fr;gap:32px;}
  .footer-rounds__item{flex:0 0 44px;}
}

@media (max-width:560px){
  .footer-legal__inner{flex-direction:column;align-items:flex-start;gap:8px;}
  .footer-rounds__head{padding-bottom:6px;}
  .t-number{font-size:88px;}
}

@media (prefers-reduced-motion:reduce){
  *,*::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 !important;transform:none !important;}
  .scroll-progress__bar{transition:none;}
  .drop-panel{transition:none;}
}
