/* 天博看台 · 共享外壳样式 /assets/site.css */

/* 1. Reset */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body,h1,h2,h3,h4,h5,p,ul,ol,li,figure,blockquote,dl,dd,address{margin:0;padding:0}
ul,ol{list-style:none}
img,svg,video{display:block;max-width:100%}
button{background:none;border:0;cursor:pointer;font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
table{border-collapse:collapse;width:100%}

/* 2. 令牌 */
:root{
  --void:#0B1220;
  --stand:#152340;
  --paper:#F3EADA;
  --ink:#1A1512;
  --neon:#33E1D6;
  --flare:#FF5A2B;
  --amber:#FFC24B;
  --graphite:#8A94A6;
  --cool:#E8EDF5;
  --edge:#CBD8D6;

  --font-display:"Arial Narrow","Helvetica Neue","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --font-mono:ui-monospace,"SFMono-Regular","JetBrains Mono","Cascadia Mono",Menlo,Consolas,"Courier New",monospace;
  --font-body:system-ui,-apple-system,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;

  --wrap:1240px;
  --ticker-h:40px;
  --bar-h:60px;
  --sticky-top:calc(var(--bar-h) + 20px);

  --line:rgba(138,148,166,.26);
  --line-strong:rgba(138,148,166,.55);
  --paper-shadow:0 18px 42px -26px rgba(0,0,0,.8);
}

/* 3. 基础排版 */
body{
  background:var(--void);
  color:var(--cool);
  font-family:var(--font-body);
  font-size:clamp(15px,.35vw + 14px,16.5px);
  line-height:1.75;
  letter-spacing:.01em;
  overflow-x:hidden;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:900;line-height:1.14;letter-spacing:-.015em;font-stretch:condensed}
h1{font-size:clamp(2rem,4.4vw,3.5rem)}
h2{font-size:clamp(1.5rem,2.7vw,2.3rem)}
h3{font-size:clamp(1.15px + 1rem,1.6vw,1.45rem)}
h4{font-size:1.05rem}
strong{font-weight:700}
.mono{font-family:var(--font-mono);letter-spacing:.02em}
::selection{background:var(--neon);color:var(--ink)}
:focus-visible{outline:2px solid var(--neon);outline-offset:3px;border-radius:2px}
.skip-link{
  position:fixed;top:10px;left:10px;z-index:200;
  transform:translateY(-180%);
  background:var(--neon);color:var(--ink);
  padding:10px 16px;border-radius:2px;
  font-weight:800;font-size:14px;letter-spacing:.04em;
  transition:transform .18s ease;
}
.skip-link:focus{transform:none}
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(18px,4vw,40px)}

/* 4. 头部外壳 */
.site-header{
  position:sticky;top:calc(-1 * var(--ticker-h));z-index:80;
  background:var(--void);
  border-bottom:1px solid var(--line);
}
.ticker{
  height:var(--ticker-h);
  background:linear-gradient(90deg,#0B1220 0%,#111D31 55%,#0B1220 100%);
  border-bottom:1px solid var(--line);
}
.ticker__inner{display:flex;align-items:center;gap:clamp(12px,2vw,28px);height:100%}
.ticker__brand{display:inline-flex;align-items:center;gap:9px;flex:none}
.ticker__mark{
  display:grid;place-items:center;width:22px;height:22px;flex:none;
  background:var(--flare);color:#fff;border-radius:2px;
  font-family:var(--font-display);font-weight:900;font-size:13px;
}
.ticker__lockup{
  font-family:var(--font-display);font-weight:900;font-size:14.5px;
  letter-spacing:.1em;white-space:nowrap;
}
.ticker__tagline{
  flex:none;color:var(--graphite);font-size:12px;letter-spacing:.14em;
  white-space:nowrap;border-left:1px solid var(--line-strong);padding-left:16px;
}
.ticker__stream{
  display:flex;align-items:center;gap:clamp(14px,2.4vw,30px);
  flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none;
  padding-block:4px;
}
.ticker__stream::-webkit-scrollbar{display:none}
.ticker__item{
  display:inline-flex;align-items:center;gap:7px;white-space:nowrap;
  font-family:var(--font-mono);font-size:11.5px;letter-spacing:.04em;color:var(--graphite);
}
.ticker__time{font-family:var(--font-mono);font-size:12px;color:var(--cool);letter-spacing:.06em}
.ticker__cta{
  flex:none;padding:5px 12px;border:1px solid var(--flare);border-radius:2px;
  color:var(--flare);font-family:var(--font-mono);font-size:11.5px;letter-spacing:.12em;
  transition:background .18s ease,color .18s ease;
}
.ticker__cta:hover{background:var(--flare);color:#fff}
.dot{
  display:inline-block;width:8px;height:8px;flex:none;border-radius:50%;
  background:var(--graphite);
}
.dot--live{background:var(--neon);animation:dot-breathe 2.4s ease-out infinite}
.dot--delay{background:var(--amber)}
.dot--alert{background:var(--flare)}
@keyframes dot-breathe{
  0%{box-shadow:0 0 0 0 rgba(51,225,214,.55)}
  70%{box-shadow:0 0 0 9px rgba(51,225,214,0)}
  100%{box-shadow:0 0 0 0 rgba(51,225,214,0)}
}

/* 5. 命令栏导航 */
.command-bar{
  position:relative;
  background:rgba(11,18,32,.94);
  border-bottom:1px solid var(--line);
}
.command-bar__inner{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;
  padding-block:9px;min-height:var(--bar-h);
}
.command-bar__toggle{
  display:inline-flex;align-items:center;gap:9px;flex:none;
  padding:9px 12px;border:1px solid var(--line-strong);border-radius:2px;
  font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;color:var(--cool);
  transition:border-color .18s ease,color .18s ease;
}
.command-bar__toggle:hover{border-color:var(--neon);color:var(--neon)}
.command-bar__bars{display:inline-flex;flex-direction:column;justify-content:center;gap:3px;width:15px}
.command-bar__bars i{display:block;height:2px;background:var(--neon);transition:transform .2s ease,opacity .2s ease}
.command-bar[data-open] .command-bar__bars i:nth-child(1){transform:translateY(5px) rotate(45deg)}
.command-bar[data-open] .command-bar__bars i:nth-child(2){opacity:0}
.command-bar[data-open] .command-bar__bars i:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
.command-bar__toggle-text{font-family:var(--font-display);font-weight:800;letter-spacing:.06em}
.command-bar__list{
  display:none;flex:1 1 100%;min-width:0;
  grid-template-columns:1fr;
  border-top:1px solid var(--line);
  margin-top:4px;padding-top:6px;
}
.command-bar[data-open] .command-bar__list{display:grid}
.command-bar__item{display:flex;min-width:0}
.command-bar__link{
  position:relative;display:flex;align-items:baseline;gap:10px;
  flex:1 1 auto;min-width:0;
  padding:11px 34px 11px 8px;
  border-bottom:1px solid rgba(138,148,166,.16);
  font-family:var(--font-display);font-weight:800;font-size:15.5px;
  letter-spacing:.02em;color:var(--cool);
  transition:color .18s ease,background .18s ease;
}
.command-bar__index{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--graphite)}
.command-bar__link::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;
  background:transparent;transition:background .18s ease;
}
.command-bar__link::before{
  content:"";position:absolute;right:12px;top:50%;transform:translateY(-50%);
  width:6px;height:6px;border-radius:50%;background:transparent;transition:background .18s ease;
}
.command-bar__link:hover{color:#fff;background:rgba(51,225,214,.06)}
.command-bar__link:hover::after{background:rgba(51,225,214,.4)}
.command-bar__link[aria-current="page"]{color:#fff}
.command-bar__link[aria-current="page"] .command-bar__index{color:var(--neon)}
.command-bar__link[aria-current="page"]::after{background:var(--neon)}
.command-bar__link[aria-current="page"]::before{background:var(--neon)}
.command-bar__actions{display:flex;align-items:center;gap:10px;margin-left:auto}
.progress{
  position:absolute;left:0;right:0;bottom:0;height:2px;
  background:rgba(51,225,214,.12);overflow:hidden;
}
.progress__bar{
  display:block;width:100%;height:100%;
  background:linear-gradient(90deg,var(--neon),var(--amber));
  transform:scaleX(0);transform-origin:0 50%;
}

/* 6. 通用按钮 */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:11px 18px;border:1px solid transparent;border-radius:2px;
  font-family:var(--font-display);font-weight:800;font-size:14px;letter-spacing:.05em;
  white-space:nowrap;cursor:pointer;
  transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;
}
.btn--primary{background:var(--flare);color:#fff;box-shadow:0 12px 26px -16px rgba(255,90,43,.95)}
.btn--primary:hover{background:#FF7247;transform:translateY(-1px)}
.btn--ghost{border-color:var(--line-strong);color:var(--cool)}
.btn--ghost:hover{border-color:var(--neon);color:var(--neon)}
.btn--quiet{background:var(--stand);color:var(--cool);border-color:var(--line)}
.btn--quiet:hover{border-color:var(--neon)}
.btn--paper{background:var(--ink);color:var(--paper)}
.btn--paper:hover{background:#2A211B}
.btn--sm{padding:8px 13px;font-size:12.5px;letter-spacing:.07em}

/* 7. 章节 / 分屏 / 长文 */
.section{padding-block:clamp(44px,7vw,88px);position:relative}
.section--tight{padding-block:clamp(24px,4vw,44px)}
.section--paper{background:var(--paper);color:var(--ink)}
.section--paper h1,.section--paper h2,.section--paper h3,.section--paper h4{color:var(--ink)}
.section__index{
  display:block;font-family:var(--font-mono);font-size:11.5px;
  letter-spacing:.22em;color:var(--neon);margin-bottom:12px;
}
.section--paper .section__index{color:var(--flare)}
.section__title{margin-bottom:6px}
.section__lead{max-width:62ch;margin-top:14px;font-size:15.5px;color:var(--graphite)}
.section--paper .section__lead{color:#5B5249}

.split{display:grid;grid-template-columns:1fr;gap:clamp(26px,4vw,52px);align-items:start}
.rail{display:grid;gap:16px;align-content:start}
.rail--sticky{position:static}

.prose{max-width:68ch;font-size:clamp(15.5px,.4vw + 14.4px,17px);line-height:1.85;color:var(--cool)}
.prose > * + *{margin-top:1.05em}
.prose h2{margin-top:1.9em;margin-bottom:.55em}
.prose h3{margin-top:1.5em;margin-bottom:.4em}
.prose ul,.prose ol{display:grid;gap:.6em;margin-top:1.1em}
.prose li{position:relative;padding-left:1.2em}
.prose li::before{content:"";position:absolute;left:0;top:.78em;width:6px;height:6px;background:var(--neon);border-radius:1px}
.prose a{color:var(--neon);text-decoration:underline;text-underline-offset:3px}
.section--paper .prose{color:var(--ink)}
.section--paper .prose a{color:var(--flare)}
.section--paper .prose li::before{background:var(--flare)}

.crumbs{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  margin-bottom:22px;font-family:var(--font-mono);font-size:11.5px;
  letter-spacing:.1em;color:var(--graphite);
}
.crumbs li{display:inline-flex;align-items:center;gap:8px}
.crumbs li::after{content:"/";color:rgba(138,148,166,.5)}
.crumbs li:last-child::after{content:""}
.crumbs a:hover{color:var(--neon)}
.crumbs [aria-current="page"]{color:var(--cool)}

/* 8. 卡片 / 数据 / 标签 / 折叠 / 栅格 */
.card{
  position:relative;background:var(--stand);
  border:1px solid var(--line);border-radius:2px;
  padding:clamp(18px,2.4vw,26px);
}
.card--paper{background:var(--paper);color:var(--ink);border-color:var(--edge);box-shadow:var(--paper-shadow)}
.card--panel{background:linear-gradient(160deg,#152340 0%,#101B30 100%);border-color:rgba(51,225,214,.22)}
.card__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.card__title{font-family:var(--font-display);font-weight:900;font-size:1.05rem;letter-spacing:.01em}
.card__meta{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.08em;color:var(--graphite)}
.card--paper .card__meta{color:#6A6058}

.stat__value{
  display:block;font-family:var(--font-mono);font-weight:700;
  font-size:clamp(1.7rem,3vw,2.5rem);line-height:1;letter-spacing:-.02em;color:var(--neon);
}
.stat__label{
  display:block;margin-top:9px;font-family:var(--font-mono);font-size:11.5px;
  letter-spacing:.16em;color:var(--graphite);
}

.label{
  display:inline-flex;align-items:center;gap:6px;
  padding:3px 8px;border:1px solid currentColor;border-radius:2px;
  font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;
  color:var(--graphite);background:transparent;
}
.label--live{color:var(--neon)}
.label--delay{color:var(--amber)}
.label--alert{color:var(--flare)}
.label--paper{color:var(--ink)}

.fold{border:1px solid var(--line);border-radius:2px;background:rgba(21,35,64,.5);overflow:hidden}
.fold + .fold{margin-top:10px}
.fold__summary{
  display:flex;align-items:center;gap:12px;
  padding:15px 18px;cursor:pointer;list-style:none;
  font-family:var(--font-display);font-weight:800;font-size:15.5px;letter-spacing:.01em;
  transition:background .18s ease;
}
.fold__summary::-webkit-details-marker{display:none}
.fold__summary::after{
  content:"+";margin-left:auto;font-family:var(--font-mono);
  font-size:17px;color:var(--neon);line-height:1;
}
.fold[open] .fold__summary::after{content:"–"}
.fold__summary:hover{background:rgba(51,225,214,.07)}
.fold__body{padding:0 18px 18px;font-size:15px;color:var(--graphite)}
.fold__body > * + *{margin-top:.8em}

.grid{display:grid;gap:clamp(16px,2.4vw,26px)}
.grid--2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.grid--3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.grid--4{grid-template-columns:repeat(auto-fit,minmax(168px,1fr))}

/* 9. 图片占位 */
.media{
  position:relative;border:1px solid var(--line-strong);border-radius:2px;
  background:var(--stand);overflow:hidden;
}
.section--paper .media{border-color:var(--ink)}
.media__frame{
  position:relative;aspect-ratio:16/9;overflow:hidden;
  background:repeating-linear-gradient(135deg,rgba(51,225,214,.07) 0 12px,transparent 12px 24px);
}
.media__frame > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.media--wide .media__frame{aspect-ratio:21/9}
.media--tall .media__frame{aspect-ratio:4/5}
.media--square .media__frame{aspect-ratio:1/1}
.media__tag{
  position:absolute;left:12px;top:12px;z-index:2;
  padding:3px 8px;border-radius:2px;background:var(--vacuum,var(--void));
  background:rgba(11,18,32,.85);color:var(--neon);
  font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;
}
.media__caption{
  padding:10px 14px;border-top:1px solid var(--line);
  font-family:var(--font-mono);font-size:11.5px;letter-spacing:.06em;color:var(--graphite);
}
.section--paper .media__caption{border-top-color:var(--edge);color:#6A6058}

/* 10. 页脚 */
.site-footer{
  margin-top:clamp(48px,7vw,96px);
  padding-block:clamp(40px,6vw,72px) 28px;
  background:var(--void);
  border-top:1px solid var(--line);
}
.feedback-strip{
  display:flex;flex-wrap:wrap;align-items:center;gap:clamp(12px,2vw,22px);
  margin-bottom:clamp(30px,5vw,52px);
  padding:16px clamp(16px,3vw,26px);
  background:var(--paper);color:var(--ink);
  border-left:4px solid var(--flare);border-radius:2px;
  box-shadow:var(--paper-shadow);
  transition:transform .18s ease;
}
.feedback-strip:hover{transform:translateY(-2px)}
.feedback-strip__tag{
  flex:none;padding:4px 9px;border-radius:2px;background:var(--ink);color:var(--paper);
  font-family:var(--font-mono);font-size:11.5px;letter-spacing:.1em;
}
.feedback-strip__text{flex:1 1 220px;font-size:14.5px;line-height:1.6}
.feedback-strip__go{
  flex:none;font-family:var(--font-display);font-weight:900;font-size:13px;
  letter-spacing:.1em;color:var(--flare);
}
.site-footer__grid{display:grid;grid-template-columns:1fr;gap:clamp(26px,4vw,44px)}
.site-footer__lockup{font-family:var(--font-display);font-weight:900;font-size:24px;letter-spacing:.1em;color:var(--paper)}
.site-footer__tagline{margin-top:8px;font-size:13px;letter-spacing:.1em;color:var(--graphite)}
.site-footer__signoff{
  margin-top:18px;font-family:var(--font-mono);font-size:11.5px;
  letter-spacing:.08em;color:var(--graphite);
}
.site-footer__col-title{
  margin-bottom:14px;font-family:var(--font-mono);font-size:11px;
  letter-spacing:.2em;color:var(--neon);
}
.site-footer__list{display:grid;gap:9px}
.site-footer__link{
  display:inline-block;font-size:14px;color:var(--cool);opacity:.82;
  transition:color .18s ease,opacity .18s ease,transform .18s ease;
}
.site-footer__link:hover{color:var(--neon);opacity:1;transform:translateX(3px)}
.site-footer__list--plain li{font-size:13.5px;line-height:1.7;color:var(--graphite)}
.site-footer__hint{font-size:12.5px;color:rgba(138,148,166,.85)}
.site-footer__legal{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:10px 22px;margin-top:clamp(30px,5vw,48px);padding-top:20px;
  border-top:1px solid var(--line);
  font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;color:var(--graphite);
}
.site-footer__icp,.site-footer__copy{margin:0}
.to-top{
  position:fixed;right:clamp(14px,3vw,28px);bottom:clamp(14px,3vw,28px);z-index:70;
  display:grid;place-items:center;width:44px;height:44px;
  background:var(--stand);color:var(--neon);
  border:1px solid var(--line-strong);border-radius:2px;
  font-family:var(--font-mono);font-size:17px;
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .2s ease,transform .2s ease,visibility .2s ease,border-color .2s ease;
}
.to-top.is-visible{opacity:1;visibility:visible;transform:none}
.to-top:hover{border-color:var(--neon)}

/* 11. 响应式 */
@media (min-width:640px){
  .site-footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .feedback-strip__text{font-size:15px}
}
@media (max-width:899px){
  .ticker__tagline{display:none}
}
@media (max-width:639px){
  .ticker__stream{gap:14px}
  .command-bar__actions .btn--ghost{display:none}
  .command-bar[data-open] .command-bar__actions .btn--ghost{display:inline-flex}
}
@media (min-width:880px){
  .command-bar__toggle{display:none}
  .command-bar__inner{flex-wrap:nowrap;gap:clamp(10px,2vw,26px);padding-block:0}
  .command-bar__list{
    display:flex;flex:1 1 auto;align-items:stretch;gap:2px;
    border-top:0;margin-top:0;padding-top:0;
    overflow-x:auto;scrollbar-width:none;
  }
  .command-bar__list::-webkit-scrollbar{display:none}
  .command-bar__item{flex:0 0 auto}
  .command-bar__link{
    align-items:center;flex:0 0 auto;height:var(--bar-h);
    padding:0 14px;border-bottom:0;font-size:14px;letter-spacing:.03em;
  }
  .command-bar__link::after{left:8px;right:8px;bottom:0}
  .command-bar__link::before{top:14px;transform:none;right:14px}
  .command-bar__actions{margin-left:auto}
}
@media (min-width:720px){
  .site-footer__grid{grid-template-columns:1.4fr 1fr 1fr 1.5fr}
}
@media (min-width:960px){
  .split{grid-template-columns:minmax(240px,300px) minmax(0,1fr)}
  .rail--sticky{position:sticky;top:var(--sticky-top)}
}

/* 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;
  }
  .feedback-strip:hover,.btn--primary:hover,.site-footer__link:hover{transform:none}
}
