/* ==========================================================================
   完美体育 · 共享样式 /assets/site.css
   视觉母题：比赛日深夜战术指挥室 · 展览画册式框架
   ========================================================================== */

/* 1 · 变量 */
:root{
  --ink-900:#0A1C17;
  --ink-800:#102A22;
  --ink-700:#16382E;
  --paper:#F4F6F1;
  --text-dark:#0D1714;
  --cyan:#3CE8C0;
  --orange:#FF7A2B;
  --mist:#8FA8A0;
  --line:#D5DFD8;
  --line-dark:rgba(143,168,160,.22);
  --line-cyan:rgba(60,232,192,.35);
  --amber:#EDC24A;
  --red:#E4573D;
  --focus:#3CE8C0;
  --font-display:"Barlow Condensed","Oswald","Archivo Narrow","PingFang SC","Noto Sans SC",system-ui,sans-serif;
  --font-body:"Inter","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  --font-mono:"JetBrains Mono","Roboto Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --frame-h:68px;
  --rail-w:34px;
  --maxw:1280px;
  --gut:24px;
  --ease:cubic-bezier(.2,.7,.3,1);
}

/* 2 · 重置 */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  background:var(--ink-900);
  color:var(--paper);
  font-family:var(--font-body);
  font-size:16px;
  font-weight:400;
  line-height:1.75;
  letter-spacing:.01em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,h5,h6,p,figure,blockquote,dd{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
img,svg,video,canvas{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
table{border-collapse:collapse;width:100%}
::selection{background:rgba(60,232,192,.3);color:var(--paper)}

/* 3 · 骨架与焦点 */
main,.ps-main,#main-content{padding-top:var(--frame-h)}
[id]{scroll-margin-top:calc(var(--frame-h) + 20px)}
:focus{outline:0}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.ps-paper :focus-visible{outline-color:#0B7A63}

/* 4 · 排版 */
.ps-display{
  font-family:var(--font-display);
  font-weight:800;
  letter-spacing:.02em;
  line-height:1.02;
  text-transform:uppercase;
  color:var(--paper);
}
.ps-display--1{font-size:clamp(38px,6.2vw,68px)}
.ps-display--2{font-size:clamp(28px,4.4vw,44px)}
.ps-display--3{font-size:clamp(21px,3vw,30px)}
.ps-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  margin:0 0 14px;
  font-family:var(--font-mono);font-size:11px;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;color:var(--cyan);
}
.ps-eyebrow::before{content:"";width:22px;height:1px;background:currentColor;opacity:.75}
.ps-lede{max-width:62ch;margin:16px 0 0;font-size:clamp(16px,1.5vw,18px);line-height:1.7;color:var(--mist)}
.ps-num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
.ps-meta{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;color:var(--mist)}
.ps-flow>*+*{margin-top:var(--flow,16px)}
.ps-cluster{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.ps-hairline{height:1px;background:var(--line-dark);border:0}

/* 5 · 布局 */
.ps-container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
.ps-section{padding:72px 0;position:relative}
.ps-section--tight{padding:44px 0}
.ps-grid{display:grid;gap:var(--gut)}
.ps-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ps-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ps-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.ps-grid--12{grid-template-columns:repeat(12,minmax(0,1fr))}
.ps-span-3{grid-column:span 3}
.ps-span-4{grid-column:span 4}
.ps-span-5{grid-column:span 5}
.ps-span-6{grid-column:span 6}
.ps-span-7{grid-column:span 7}
.ps-span-8{grid-column:span 8}
.ps-span-9{grid-column:span 9}
.ps-span-12{grid-column:span 12}

/* 6 · 米白阅读区 */
.ps-paper{background:var(--paper);color:var(--text-dark)}
.ps-paper .ps-display{color:var(--text-dark)}
.ps-paper .ps-lede{color:#41564D}
.ps-paper .ps-eyebrow{color:#0B7A63}
.ps-paper .ps-meta{color:#5A6E66}

/* 7 · 页头框架 */
.ps-skip{
  position:fixed;top:8px;left:8px;z-index:120;
  padding:10px 16px;
  background:var(--cyan);color:var(--ink-900);
  font-size:13px;font-weight:600;letter-spacing:.06em;
  transform:translateY(-220%);
  transition:transform .22s var(--ease);
}
.ps-skip:focus,.ps-skip:focus-visible{transform:translateY(0);outline-offset:2px}

.ps-header{
  position:fixed;top:0;left:0;right:0;z-index:60;
  background:rgba(10,28,23,.9);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line-dark);
  transition:background .3s var(--ease),border-color .3s var(--ease);
}
.ps-header.is-thin{background:rgba(10,28,23,.97);border-bottom-color:var(--line-cyan)}
.ps-header::after{
  content:"";position:absolute;left:0;bottom:-1px;width:96px;height:2px;
  background:linear-gradient(90deg,var(--cyan),rgba(60,232,192,0));
  pointer-events:none;
}
.ps-header__frame{
  width:100%;max-width:var(--maxw);margin:0 auto;
  min-height:var(--frame-h);
  padding:0 var(--gut);
  display:flex;align-items:center;gap:20px;
}
.ps-progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;pointer-events:none}
.ps-progress__bar{
  display:block;height:100%;width:0;
  background:linear-gradient(90deg,var(--cyan),var(--orange));
  transition:width .12s linear;
}
.ps-rail{
  position:fixed;top:0;left:0;bottom:0;width:var(--rail-w);
  z-index:55;pointer-events:none;
  border-right:1px solid var(--line-dark);
  background-image:repeating-linear-gradient(180deg,rgba(60,232,192,.34) 0 1px,transparent 1px 28px);
  background-size:10px 100%;background-repeat:no-repeat;background-position:left top;
}
.ps-rail::after{
  content:"";position:absolute;top:0;bottom:0;left:16px;width:1px;
  background:linear-gradient(180deg,rgba(60,232,192,0) 0%,rgba(60,232,192,.2) 14%,rgba(60,232,192,.2) 86%,rgba(60,232,192,0) 100%);
}

.ps-brand{display:flex;align-items:center;gap:11px;flex:0 0 auto;color:var(--paper)}
.ps-brand__mark{
  position:relative;width:22px;height:22px;flex:0 0 auto;
  border:1px solid rgba(60,232,192,.55);
  background-image:
    repeating-linear-gradient(90deg,rgba(60,232,192,.32) 0 1px,transparent 1px 7px),
    repeating-linear-gradient(0deg,rgba(60,232,192,.32) 0 1px,transparent 1px 7px);
  transition:box-shadow .25s var(--ease);
}
.ps-brand__mark::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--orange)}
.ps-brand:hover .ps-brand__mark{box-shadow:0 0 12px rgba(60,232,192,.55)}
.ps-brand__text{display:flex;flex-direction:column;min-width:0}
.ps-brand__name{
  font-family:var(--font-display);font-weight:800;font-size:19px;
  letter-spacing:.14em;line-height:1.05;text-transform:uppercase;
}
.ps-brand__tagline{margin-top:3px;font-size:11px;letter-spacing:.08em;color:var(--mist)}

.ps-nav-toggle{display:none;order:4;margin-left:auto;align-items:center;gap:9px;
  height:38px;padding:0 12px;border:1px solid var(--line-dark);color:var(--paper);
  font-size:12px;letter-spacing:.1em;transition:border-color .2s var(--ease),color .2s var(--ease)}
.ps-nav-toggle__bars{position:relative;width:16px;height:10px;flex:0 0 auto}
.ps-nav-toggle__bars::before,.ps-nav-toggle__bars::after{
  content:"";position:absolute;left:0;right:0;height:1px;background:currentColor;
  transition:transform .25s var(--ease);
}
.ps-nav-toggle__bars::before{top:0}
.ps-nav-toggle__bars::after{bottom:0}
.ps-nav-toggle[aria-expanded="true"]{border-color:var(--cyan);color:var(--cyan)}
.ps-nav-toggle[aria-expanded="true"] .ps-nav-toggle__bars::before{transform:translateY(4.5px) rotate(45deg)}
.ps-nav-toggle[aria-expanded="true"] .ps-nav-toggle__bars::after{transform:translateY(-4.5px) rotate(-45deg)}

.ps-nav{order:2;margin-left:auto;display:flex;align-items:center}
.ps-nav__list{display:flex;align-items:center;gap:2px}
.ps-nav__link{
  position:relative;display:inline-flex;align-items:center;height:36px;padding:0 12px;
  color:var(--mist);font-size:14px;font-weight:500;letter-spacing:.04em;
  transition:color .2s var(--ease);
}
.ps-nav__link::after{
  content:"";position:absolute;left:12px;right:12px;bottom:3px;height:1px;
  background:transparent;transition:background .2s var(--ease);
}
.ps-nav__link:hover{color:var(--paper)}
.ps-nav__link:hover::after{background:rgba(60,232,192,.5)}
.ps-nav__link[aria-current="page"]{color:var(--cyan)}
.ps-nav__link[aria-current="page"]::after{background:var(--cyan)}
.ps-nav__foot{display:none}

.ps-utility{order:3;margin-left:6px;padding-left:16px;border-left:1px solid var(--line-dark);
  display:flex;align-items:center;gap:14px}
.ps-utility__item{font-size:12px;letter-spacing:.08em;color:var(--mist);transition:color .2s var(--ease)}
.ps-utility__item:hover{color:var(--cyan)}
.ps-cta{
  display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 16px;
  background:var(--orange);border:1px solid var(--orange);color:var(--ink-900);
  font-size:13px;font-weight:600;letter-spacing:.06em;white-space:nowrap;
  transition:transform .2s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease);
}
.ps-cta::before{content:"";width:6px;height:6px;background:var(--ink-900);flex:0 0 auto}
.ps-cta:hover{background:#FF8C4A;box-shadow:0 8px 20px rgba(255,122,43,.26);transform:translateY(-1px)}
.ps-cta--block{width:100%;height:46px;justify-content:center}

/* 8 · 页脚 */
.ps-footer{
  position:relative;margin-top:0;
  background:var(--ink-900);color:var(--mist);
  border-top:1px solid var(--line-cyan);
}
.ps-footer::before{
  content:"";position:absolute;top:-1px;left:0;width:132px;height:2px;
  background:linear-gradient(90deg,var(--orange),rgba(255,122,43,0));
}
.ps-footer__inner{
  max-width:var(--maxw);margin:0 auto;padding:60px var(--gut) 32px;
  display:grid;grid-template-columns:minmax(240px,1.1fr) 2.4fr;gap:48px;
}
.ps-footer__brand{display:grid;gap:10px;align-content:start}
.ps-footer__logo{
  font-family:var(--font-display);font-weight:800;font-size:22px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--paper);
}
.ps-footer__logo:hover{color:var(--cyan)}
.ps-footer__tagline{font-size:12px;letter-spacing:.08em;color:var(--mist);padding-bottom:6px;border-bottom:1px solid var(--line-dark)}
.ps-footer__contact{font-size:13px;line-height:1.7;color:var(--mist)}
.ps-footer__contact a{color:var(--paper);border-bottom:1px solid var(--line-cyan)}
.ps-footer__contact a:hover{color:var(--cyan)}
.ps-footer__nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.ps-footer__title{
  margin:0 0 12px;font-family:var(--font-mono);font-size:11px;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--paper);
}
.ps-footer__links{display:grid;gap:9px}
.ps-footer__links a{font-size:14px;color:var(--mist);transition:color .2s var(--ease)}
.ps-footer__links a:hover{color:var(--cyan)}
.ps-footer__base{
  max-width:var(--maxw);margin:0 auto;padding:18px var(--gut) 40px;
  display:flex;flex-wrap:wrap;gap:10px 28px;justify-content:space-between;
  border-top:1px solid var(--line-dark);
  font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;color:var(--mist);
}
.ps-footer__legal,.ps-footer__copy{margin:0}

/* 9 · 按钮 */
.ps-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  height:44px;padding:0 20px;
  border:1px solid var(--cyan);color:var(--cyan);background:transparent;
  font-size:14px;font-weight:600;letter-spacing:.06em;
  transition:background .2s var(--ease),color .2s var(--ease),box-shadow .2s var(--ease),transform .2s var(--ease);
}
.ps-btn:hover{background:rgba(60,232,192,.1);box-shadow:0 0 0 1px rgba(60,232,192,.3) inset}
.ps-btn--solid{background:var(--cyan);color:var(--ink-900)}
.ps-btn--solid:hover{background:#5BF0CD;box-shadow:0 8px 22px rgba(60,232,192,.24)}
.ps-btn--signal{background:var(--orange);border-color:var(--orange);color:var(--ink-900)}
.ps-btn--signal:hover{background:#FF8C4A;box-shadow:0 8px 22px rgba(255,122,43,.26)}
.ps-btn--ghost{border-color:var(--line-dark);color:var(--paper)}
.ps-btn--ghost:hover{background:rgba(143,168,160,.1);box-shadow:none}
.ps-btn--sm{height:34px;padding:0 14px;font-size:12px}
.ps-paper .ps-btn{border-color:rgba(13,23,20,.3);color:var(--text-dark)}
.ps-paper .ps-btn:hover{background:rgba(13,23,20,.06);box-shadow:none}
.ps-paper .ps-btn--solid{background:var(--ink-900);border-color:var(--ink-900);color:var(--paper)}

/* 10 · 面包屑 */
.ps-crumbs{padding:18px 0 0;font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;color:var(--mist)}
.ps-crumbs ol{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.ps-crumbs li{display:flex;align-items:center;gap:10px}
.ps-crumbs li+li::before{content:"/";color:rgba(143,168,160,.5)}
.ps-crumbs a:hover{color:var(--cyan)}
.ps-crumbs [aria-current="page"]{color:var(--paper)}
.ps-paper .ps-crumbs{color:#5A6E66}
.ps-paper .ps-crumbs [aria-current="page"]{color:var(--text-dark)}

/* 11 · 正文容器 */
.ps-prose{max-width:74ch;font-size:16px;line-height:1.75}
.ps-prose h2,.ps-prose h3{margin:36px 0 12px;font-weight:600;line-height:1.4}
.ps-prose h2{font-size:22px}
.ps-prose h3{font-size:18px}
.ps-prose p+p{margin-top:14px}
.ps-prose ul,.ps-prose ol{margin:14px 0 0;padding-left:1.35em;display:grid;gap:8px}
.ps-prose ul{list-style:disc}
.ps-prose ol{list-style:decimal}
.ps-prose a{color:var(--cyan);border-bottom:1px solid var(--line-cyan)}
.ps-paper .ps-prose a{color:#0B7A63;border-bottom-color:rgba(11,122,99,.4)}
.ps-prose strong{font-weight:600;color:var(--paper)}
.ps-paper .ps-prose strong{color:var(--text-dark)}

/* 12 · 面板 / 指标 / 标签 */
.ps-panel{background:var(--ink-800);border:1px solid var(--line-dark);padding:20px 22px}
.ps-panel--flat{background:transparent}
.ps-paper .ps-panel{background:rgba(13,23,20,.035);border-color:var(--line);color:var(--text-dark)}
.ps-stat{display:grid;gap:6px}
.ps-stat__value{
  font-family:var(--font-mono);font-size:clamp(28px,4vw,44px);line-height:1;
  color:var(--cyan);font-variant-numeric:tabular-nums;
}
.ps-stat__unit{font-family:var(--font-mono);font-size:13px;color:var(--mist)}
.ps-stat__label{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--mist)}
.ps-paper .ps-stat__value{color:#0B7A63}
.ps-paper .ps-stat__unit,.ps-paper .ps-stat__label{color:#5A6E66}
.ps-tag{
  display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;
  border:1px solid rgba(143,168,160,.4);color:var(--mist);
  font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
}
.ps-tag--live{color:var(--cyan);border-color:var(--line-cyan)}
.ps-tag--signal{color:var(--orange);border-color:rgba(255,122,43,.5)}
.ps-tag--warn{color:var(--amber);border-color:rgba(237,194,74,.5)}
.ps-tag--danger{color:var(--red);border-color:rgba(228,87,61,.5)}
.ps-paper .ps-tag{color:#5A6E66;border-color:var(--line)}
.ps-paper .ps-tag--live{color:#0B7A63;border-color:rgba(11,122,99,.4)}

/* 13 · 章节索引与对照表 */
.ps-index{display:grid;border-top:1px solid var(--line-dark)}
.ps-index__link{
  display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:baseline;
  padding:14px 2px;border-bottom:1px solid var(--line-dark);
  color:var(--mist);transition:color .2s var(--ease),padding-left .2s var(--ease);
}
.ps-index__link:hover{color:var(--paper);padding-left:10px}
.ps-index__link[aria-current="true"]{color:var(--cyan);border-bottom-color:var(--line-cyan)}
.ps-index__num{font-family:var(--font-mono);font-size:12px;opacity:.75}
.ps-index__label{font-size:15px;font-weight:600}
.ps-index__meta{font-family:var(--font-mono);font-size:12px;opacity:.7}
.ps-paper .ps-index,.ps-paper .ps-index__link{border-color:var(--line)}
.ps-paper .ps-index__link{color:#41564D}
.ps-paper .ps-index__link:hover{color:var(--text-dark)}
.ps-paper .ps-index__link[aria-current="true"]{color:#0B7A63;border-bottom-color:#0B7A63}

.ps-table{width:100%;font-size:14px}
.ps-table th,.ps-table td{padding:12px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line-dark)}
.ps-table th{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--mist)}
.ps-table td.ps-num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.ps-table tbody tr{transition:background .2s var(--ease)}
.ps-table tbody tr:hover{background:rgba(60,232,192,.05)}
.ps-table tr[data-open="true"] td{border-bottom-color:var(--line-cyan)}
.ps-table tr[data-open="true"] td:first-child{box-shadow:inset 2px 0 0 var(--cyan)}
.ps-paper .ps-table th,.ps-paper .ps-table td{border-color:var(--line)}
.ps-paper .ps-table th{color:#5A6E66}
.ps-paper .ps-table tbody tr:hover{background:rgba(13,23,20,.03)}

.ps-expand{display:none;padding:14px 16px;background:rgba(16,42,34,.65);border-left:2px solid var(--line-cyan)}
.ps-expand[data-open="true"]{display:block}
.ps-paper .ps-expand{background:rgba(13,23,20,.03);border-left-color:#0B7A63}

/* 14 · 图形容器（页面阶段放置图片占位） */
.ps-media{
  position:relative;overflow:hidden;
  background:linear-gradient(160deg,var(--ink-800),var(--ink-900) 70%);
  border:1px solid var(--line-dark);
}
.ps-media img,.ps-media video{width:100%;height:100%;object-fit:cover}
.ps-media--16x9{aspect-ratio:16/9}
.ps-media--3x2{aspect-ratio:3/2}
.ps-media--4x3{aspect-ratio:4/3}
.ps-media--1x1{aspect-ratio:1/1}
.ps-media--3x4{aspect-ratio:3/4}
.ps-media--wide{aspect-ratio:21/9}
.ps-media__grid{
  position:absolute;inset:0;pointer-events:none;opacity:.7;
  background-image:
    repeating-linear-gradient(90deg,rgba(60,232,192,.13) 0 1px,transparent 1px 48px),
    repeating-linear-gradient(0deg,rgba(60,232,192,.13) 0 1px,transparent 1px 48px);
}
.ps-media__slot{
  position:absolute;inset:0;display:grid;place-content:center;gap:6px;text-align:center;
  font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(143,168,160,.85);
}
.ps-figure{margin:0;display:grid;gap:10px}
.ps-figure figcaption,.ps-media__caption{font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;color:var(--mist)}
.ps-paper .ps-figure figcaption,.ps-paper .ps-media__caption{color:#5A6E66}

/* 15 · 悬浮订阅控制台 */
.ps-console{
  position:fixed;right:20px;bottom:20px;z-index:70;
  width:min(340px,calc(100vw - 32px));
  background:var(--ink-800);border:1px solid var(--line-cyan);
  box-shadow:0 18px 44px rgba(0,0,0,.45);
}
.ps-console__head{display:flex;align-items:center;gap:10px;padding:12px 14px}
.ps-console__title{margin:0;font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan)}
.ps-console__count{margin-left:auto;font-family:var(--font-mono);font-size:12px;color:var(--orange)}
.ps-console__toggle{
  display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;border:1px solid var(--line-dark);color:var(--paper);
  font-family:var(--font-mono);font-size:13px;line-height:1;
}
.ps-console__toggle:hover{border-color:var(--cyan);color:var(--cyan)}
.ps-console__body{padding:0 14px 14px;border-top:1px solid var(--line-dark)}
.ps-console[data-open="false"] .ps-console__body{display:none}
.ps-console__list{display:grid;padding-top:6px}
.ps-console__item{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid rgba(143,168,160,.16);font-size:13px;color:var(--mist)}
.ps-console__check{
  width:18px;height:18px;flex:0 0 auto;border:1px solid rgba(143,168,160,.5);
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--font-mono);font-size:11px;color:transparent;
}
.ps-console__check[aria-pressed="true"]{border-color:var(--cyan);color:var(--cyan);background:rgba(60,232,192,.12)}
.ps-console__foot{padding-top:12px;font-size:12px;color:var(--mist)}

/* 16 · 动效 */
html.ps-js [data-reveal]{
  opacity:0;transform:translateY(8px);
  transition:opacity .32s var(--ease),transform .32s var(--ease);
  transition-delay:calc(var(--reveal-delay,0) * 1ms);
}
html.ps-js [data-reveal].is-in{opacity:1;transform:none}
.ps-pulse{animation:ps-pulse 1.1s var(--ease) 1}
@keyframes ps-pulse{
  0%{filter:brightness(1)}
  42%{filter:brightness(1.55)}
  100%{filter:brightness(1)}
}

/* 17 · 响应式 */
@media (min-width:1180px){
  .ps-header__frame{padding-left:calc(var(--gut) + var(--rail-w))}
}
@media (max-width:1179px){
  .ps-rail{display:none}
  .ps-utility{display:none}
  .ps-nav-toggle{display:inline-flex}
  .ps-brand__tagline{display:none}
  .ps-nav{
    position:absolute;top:100%;left:0;right:0;
    display:block;margin:0;padding:6px 16px 18px;
    background:var(--ink-800);border-bottom:1px solid var(--line-cyan);
    max-height:0;overflow:hidden;visibility:hidden;opacity:0;
    transition:max-height .34s var(--ease),opacity .22s var(--ease),visibility .34s var(--ease);
  }
  .ps-nav[data-open="true"]{max-height:min(72vh,560px);overflow-y:auto;visibility:visible;opacity:1}
  .ps-nav__list{display:block}
  .ps-nav__item{border-bottom:1px solid rgba(143,168,160,.16)}
  .ps-nav__link{display:flex;height:48px;padding:0 4px 0 14px;font-size:15px}
  .ps-nav__link::after{left:0;right:auto;bottom:auto;top:14px;height:20px;width:2px}
  .ps-nav__link:hover{padding-left:20px}
  .ps-nav__foot{display:grid;gap:10px;padding-top:18px}
  .ps-nav__sub{
    display:flex;align-items:center;height:42px;padding:0 14px;
    border:1px solid rgba(143,168,160,.22);color:var(--mist);
    font-size:13px;letter-spacing:.06em;
  }
  .ps-nav__sub:hover{color:var(--cyan);border-color:var(--line-cyan)}
  .ps-footer__inner{grid-template-columns:1fr;gap:36px}
}
@media (max-width:1023px){
  .ps-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ps-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ps-span-5,.ps-span-4,.ps-span-3{grid-column:span 6}
  .ps-span-7,.ps-span-8,.ps-span-9{grid-column:span 12}
}
@media (max-width:767px){
  :root{--frame-h:60px;--gut:18px}
  .ps-section{padding:52px 0}
  .ps-grid--2,.ps-grid--3,.ps-grid--4,.ps-grid--12{grid-template-columns:minmax(0,1fr)}
  .ps-span-3,.ps-span-4,.ps-span-5,.ps-span-6,.ps-span-7,.ps-span-8,.ps-span-9,.ps-span-12{grid-column:auto}
  .ps-footer__nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
  .ps-footer__inner{padding-top:44px}
  .ps-console{right:12px;left:12px;bottom:12px;width:auto}
}

/* 18 · 无障碍与减弱动效 */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  html.ps-js [data-reveal]{opacity:1;transform:none}
}
