/* ==========================================================================
   solar-taiyangxin.com.cn · /assets/site.css
   共享层：reset / 变量 / 中文排版 / 头部 / 页脚 / 通用组件 / 响应式
   ========================================================================== */

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

/* --- 2. 变量 --- */
:root{
  --sun:#FF7A1A;
  --gold:#FFB300;
  --deep:#0B1230;
  --deep-2:#131A3D;
  --ink:#0A0A0F;
  --paper:#F7F6F2;
  --cyan:#00E5D0;
  --crimson:#8E1B2C;
  --grid:#2A3350;
  --amber:#FFD166;
  --mist:#C6CCE2;
  --dim:#8E97B8;
  --shell-w:1240px;
  --gutter:20px;
  --font-display:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Source Han Sans SC","Noto Sans SC",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono","Courier New",monospace;
  --line:1px solid var(--grid);
}

/* --- 3. 中文排版基础 --- */
body{
  font-family:var(--font-display);
  font-size:16px;
  font-weight:400;
  line-height:1.75;
  color:var(--ink);
  background-color:var(--paper);
  background-image:linear-gradient(90deg,rgba(42,51,80,.06) 1px,transparent 1px);
  background-size:72px 100%;
}
h1,h2,h3,h4{font-weight:900;letter-spacing:-.02em;line-height:1.16}
h1{font-size:clamp(30px,5vw,54px)}
h2{font-size:clamp(24px,3.4vw,38px)}
h3{font-size:clamp(19px,2.2vw,24px)}
p{line-height:1.78}
strong{font-weight:700}
::selection{background:var(--sun);color:#180B01}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}

/* --- 4. 容器与文本角色 --- */
.shell{width:100%;max-width:var(--shell-w);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.canvas{padding:44px 0 68px}
.prose{max-width:760px}
.prose p{margin-bottom:1.15em;color:#1D2030}
.prose h2{margin:2em 0 .6em}
.prose h3{margin:1.6em 0 .5em}
.prose ul{margin:0 0 1.2em}
.prose li{position:relative;padding-left:22px;margin-bottom:.55em;line-height:1.78}
.prose li::before{content:"";position:absolute;left:0;top:.75em;width:9px;height:2px;background:var(--sun)}
.eyebrow{display:inline-block;font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--sun)}
.lead{font-size:clamp(16px,1.6vw,19px);line-height:1.82;color:#2A2F45}

/* --- 5. Skip link --- */
.skip-link{
  position:absolute;left:10px;top:-70px;z-index:200;
  padding:11px 16px;
  background:var(--gold);color:var(--ink);
  font-family:var(--font-mono);font-size:13px;font-weight:700;letter-spacing:.06em;
  transition:top .2s ease;
}
.skip-link:focus{top:10px}

/* --- 6. 头部 --- */
.site-header{position:sticky;top:0;z-index:50;background:var(--deep)}
.header-rail{background:var(--ink);border-bottom:1px solid var(--grid)}
.rail-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:36px;padding-top:4px;padding-bottom:4px}
.rail-id{
  display:flex;align-items:center;gap:9px;min-width:0;
  font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.14em;
  color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.rail-dot{flex:0 0 auto;width:7px;height:7px;background:var(--cyan);box-shadow:0 0 0 3px rgba(0,229,208,.16)}
.rail-cta{
  flex:0 0 auto;padding:6px 11px;
  border:1px solid rgba(255,179,0,.45);
  color:var(--gold);font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:.08em;
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}
.rail-cta:hover,.rail-cta:focus-visible{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.header-band{height:4px;background:linear-gradient(90deg,var(--sun) 0%,var(--gold) 34%,var(--cyan) 64%,var(--crimson) 100%)}
.header-bar{background:var(--deep)}
.bar-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 28px;padding-top:14px;padding-bottom:14px}

/* 品牌 */
.brand{display:flex;align-items:center;gap:14px;min-width:0;padding:4px 0}
.brand-sun{
  position:relative;flex:0 0 auto;width:36px;height:36px;border-radius:50%;
  background:radial-gradient(circle at 50% 50%,var(--amber) 0 16%,var(--sun) 42%,var(--crimson) 76%,rgba(142,27,44,0) 78%);
}
.brand-sun::before{
  content:"";position:absolute;inset:-7px;border-radius:50%;
  background:repeating-conic-gradient(from 0deg,rgba(255,122,26,.85) 0deg 6deg,rgba(255,122,26,0) 6deg 30deg);
  -webkit-mask:radial-gradient(circle,rgba(0,0,0,0) 0 56%,#000 58% 100%);
  mask:radial-gradient(circle,rgba(0,0,0,0) 0 56%,#000 58% 100%);
  animation:sun-spin 70s linear infinite;
}
.brand-text{display:flex;flex-direction:column;gap:3px;min-width:0}
.brand-name{font-size:22px;font-weight:900;letter-spacing:.02em;line-height:1.1;color:var(--paper)}
.brand-tag{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.06em;line-height:1.4;color:var(--dim)}

/* 移动按钮 */
.nav-toggle{
  display:none;align-items:center;gap:10px;padding:10px 14px;
  border:1px solid var(--grid);background:rgba(255,255,255,.02);color:var(--paper);
  font-family:var(--font-mono);font-size:13px;font-weight:700;letter-spacing:.08em;
}
.nav-toggle:hover{border-color:var(--sun)}
.nav-toggle-bars{display:grid;gap:4px;width:18px}
.nav-toggle-bars i{display:block;height:2px;background:var(--sun);transition:transform .2s ease,opacity .2s ease}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars i:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars i:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.nav-toggle-label{white-space:nowrap}

/* 主导航 */
.site-nav{display:block}
.nav-list{display:flex;align-items:center;gap:2px}
.nav-link{
  position:relative;display:inline-flex;align-items:center;gap:7px;
  padding:11px 13px;border:1px solid transparent;
  font-size:15px;font-weight:700;letter-spacing:.01em;color:var(--mist);
  transition:color .18s ease,background .18s ease,border-color .18s ease;
}
.nav-num{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--sun);line-height:1}
.nav-label{display:inline-block;white-space:nowrap}
.nav-link:hover{color:#fff;background:rgba(255,122,26,.12);border-color:rgba(255,122,26,.35)}
.nav-link[aria-current="page"]{color:#fff;background:rgba(255,122,26,.2);border-color:var(--sun)}
.nav-link[aria-current="page"] .nav-num{color:var(--gold)}

/* --- 7. 按钮 --- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:13px 22px;border:1px solid transparent;
  font-family:var(--font-display);font-size:15px;font-weight:800;letter-spacing:.02em;line-height:1;
  transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;
}
.btn:hover{transform:translateX(2px)}
.btn-primary{background:var(--sun);color:#180B01}
.btn-primary:hover{background:var(--gold)}
.btn-ghost{background:transparent;color:var(--paper);border-color:var(--grid)}
.btn-ghost:hover{border-color:var(--cyan);color:var(--cyan);background:rgba(0,229,208,.08)}
.btn-neon{background:var(--cyan);color:#04241F}
.btn-neon:hover{background:#5BFFF0}
.btn-ink{background:var(--ink);color:var(--paper)}

/* --- 8. 面包屑 --- */
.breadcrumb{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px;
  padding:16px 0;
  font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.06em;color:#6B7290;
}
.breadcrumb li{display:flex;align-items:center;gap:6px}
.breadcrumb li+li::before{content:"/";color:var(--grid)}
.breadcrumb a{color:var(--sun)}
.breadcrumb a:hover{color:var(--crimson)}
.breadcrumb [aria-current="page"]{color:var(--ink);font-weight:700}

/* --- 9. 版面网格 --- */
.board-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:1px;background:var(--grid);border:1px solid var(--grid);
}
.board-grid > *{background:var(--paper);padding:22px}
.rail-layout{display:grid;grid-template-columns:1fr;gap:32px}

/* --- 10. 章节与色带 --- */
.chapter{position:relative;padding:52px 0}
.chapter+.chapter{border-top:1px solid rgba(42,51,80,.25)}
.chapter-head{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-bottom:24px}
.chapter-num{
  font-family:var(--font-mono);font-size:13px;font-weight:800;letter-spacing:.18em;line-height:1;
  color:var(--sun);padding:7px 10px;border:1px solid rgba(255,122,26,.45);
}
.chapter-title{font-size:clamp(26px,3.6vw,40px);font-weight:900;letter-spacing:-.02em}
.band{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;
  padding:14px 18px;background:var(--ink);color:var(--paper);
  border-left:4px solid var(--sun);
  font-size:14px;line-height:1.6;
}
.band--deep{background:var(--deep);border-left-color:var(--cyan)}
.band--crimson{background:var(--crimson);border-left-color:var(--amber);color:#fff}
.band .eyebrow{color:var(--gold)}
.slab{
  position:relative;padding:58px 26px;background:var(--deep);color:var(--paper);
  clip-path:polygon(0 0,100% 2.5%,100% 100%,0 97.5%);
}

/* --- 11. 情报板 --- */
.panel{position:relative;border:1px solid var(--grid);background:#fff;padding:22px}
.panel--ink{background:var(--ink);color:var(--paper);border-color:#26263A}
.panel--deep{background:var(--deep);color:var(--paper);border-color:var(--grid)}
.panel--deep .panel-title,.panel--ink .panel-title{color:var(--paper)}
.panel-title{font-size:18px;font-weight:900;letter-spacing:-.01em;margin-bottom:8px;color:var(--ink)}
.panel-mark{position:absolute;top:0;right:0;width:26px;height:26px;background:var(--sun)}
.panel-mark--cyan{background:var(--cyan)}
.panel-mark--crimson{background:var(--crimson)}
.data-list{display:grid;gap:14px}
.data-list dt{font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--sun);margin-bottom:4px}
.data-list dd{margin:0;font-size:15px;line-height:1.7}
.data-row{display:grid;grid-template-columns:112px 1fr;gap:12px;padding:11px 0;border-bottom:1px dashed rgba(42,51,80,.45);font-size:15px;line-height:1.7}
.data-row:last-child{border-bottom:0}

/* --- 12. 标签与标签带 --- */
.mono-tag{
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 11px;border:1px solid var(--grid);background:#fff;color:var(--deep);
  font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:.06em;line-height:1;
  white-space:nowrap;
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}
.mono-tag:hover{border-color:var(--sun);color:var(--sun)}
.mono-tag[aria-pressed="true"],.mono-tag.is-active{background:var(--sun);border-color:var(--sun);color:#180B01}
.mono-tag--cyan:hover{border-color:var(--cyan);color:#007A6E}
.tag-band{
  display:flex;align-items:center;gap:10px;overflow-x:auto;padding:14px 0;
  background:var(--deep);border-top:1px solid var(--grid);border-bottom:1px solid var(--grid);
  scrollbar-width:thin;
}
.tag-band .mono-tag{background:transparent;color:var(--mist);border-color:var(--grid)}
.tag-band .mono-tag:hover{border-color:var(--cyan);color:var(--cyan);background:rgba(0,229,208,.08)}
.tag-band .mono-tag[aria-current="page"]{border-color:var(--cyan);color:var(--cyan)}

/* --- 13. 图片容器基础 --- */
.media-frame{
  position:relative;display:block;overflow:hidden;
  background:var(--ink);border:1px solid var(--grid);aspect-ratio:16/9;
}
.media-frame img{width:100%;height:100%;object-fit:cover;display:block}
.media-frame--wide{aspect-ratio:21/9}
.media-frame--tall{aspect-ratio:3/4}
.media-frame--square{aspect-ratio:1/1}
.media-frame::after{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(140deg,rgba(255,122,26,.26),rgba(0,0,0,0) 58%);
}
.media-frame--grid::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background-image:linear-gradient(rgba(42,51,80,.65) 1px,transparent 1px),linear-gradient(90deg,rgba(42,51,80,.65) 1px,transparent 1px);
  background-size:34px 34px;
}
.media-caption{margin-top:10px;font-family:var(--font-mono);font-size:12px;font-weight:500;line-height:1.6;color:#6B7290}

/* --- 14. 装饰光晕 --- */
.sun-burst{
  position:absolute;z-index:0;width:520px;height:520px;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(255,122,26,.34) 0,rgba(255,179,0,.12) 38%,rgba(0,0,0,0) 68%);
  animation:sun-breathe 9s ease-in-out infinite;
}
@keyframes sun-breathe{0%,100%{opacity:.72;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}
@keyframes sun-spin{to{transform:rotate(360deg)}}

/* --- 15. 页脚 --- */
.site-footer{position:relative;margin-top:72px;background:var(--ink);color:#B9C0D8}
.footer-band{height:5px;background:linear-gradient(90deg,var(--crimson) 0%,var(--sun) 40%,var(--gold) 70%,var(--cyan) 100%)}
.footer-inner{padding-top:52px;padding-bottom:26px}
.footer-grid{display:grid;grid-template-columns:1fr;gap:36px}
.footer-brand .brand-sun{margin-bottom:16px}
.footer-brand-name{font-size:24px;font-weight:900;letter-spacing:.02em;color:var(--paper);line-height:1.2}
.footer-brand-line{margin:10px 0 18px;font-size:14px;line-height:1.8;color:#9AA3C0;max-width:34ch}
.footer-heading{
  margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--grid);
  font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);
}
.footer-list{display:grid;gap:2px}
.footer-list a{
  display:block;padding:8px 0;font-size:14px;color:#B9C0D8;
  border-bottom:1px dashed rgba(42,51,80,.6);
  transition:color .18s ease,padding-left .18s ease,border-color .18s ease;
}
.footer-list a:hover,.footer-list a:focus-visible{color:var(--cyan);padding-left:8px;border-color:var(--cyan)}
.footer-address{display:grid;gap:10px;font-style:normal;font-size:14px;line-height:1.72}
.footer-line{display:block;word-break:break-word}
.footer-key{
  display:inline-block;min-width:72px;margin-right:6px;
  font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--sun);
}
.footer-note{
  margin-top:16px;padding-left:11px;border-left:2px solid var(--crimson);
  font-family:var(--font-mono);font-size:12px;line-height:1.75;color:#7C86A8;
}
.footer-meta{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;
  margin-top:44px;padding-top:18px;border-top:1px solid var(--grid);
  font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.04em;line-height:1.6;color:#7C86A8;
}
.footer-icp{color:var(--dim)}
.footer-copy{color:#7C86A8}

/* --- 16. 滚动进度与返回顶部 --- */
.scroll-progress{
  position:fixed;top:0;left:0;z-index:80;width:100%;height:3px;
  transform:scaleX(0);transform-origin:0 50%;pointer-events:none;
  background:linear-gradient(90deg,var(--sun),var(--gold) 55%,var(--cyan));
}
.to-top{
  position:fixed;right:18px;bottom:22px;z-index:70;
  display:grid;place-items:center;width:48px;height:48px;
  background:var(--sun);color:#180B01;
  font-family:var(--font-mono);font-size:11px;font-weight:800;letter-spacing:.06em;
  opacity:0;visibility:hidden;transform:translateY(10px);
  box-shadow:0 10px 24px rgba(255,122,26,.32);
  transition:opacity .2s ease,transform .2s ease,visibility .2s ease,background .18s ease;
}
.to-top[data-visible="true"]{opacity:1;visibility:visible;transform:none}
.to-top:hover{background:var(--gold)}

/* --- 17. 滚动显现 --- */
[data-reveal]{opacity:0;transform:translateY(20px);transition:opacity .55s ease,transform .55s ease}
[data-reveal].is-in{opacity:1;transform:none}

/* --- 18. 响应式 --- */
@media (max-width:980px){
  .nav-toggle{display:inline-flex}
  .site-nav{
    order:3;flex-basis:100%;display:none;
    padding:8px 0 6px;border-top:1px solid var(--grid);
  }
  .site-header[data-open] .site-nav{display:block}
  .nav-list{flex-direction:column;align-items:stretch;gap:0}
  .nav-link{
    justify-content:flex-start;padding:14px 12px;
    border:0;border-bottom:1px solid rgba(42,51,80,.65);border-left:2px solid transparent;
  }
  .nav-link:hover{background:rgba(255,122,26,.1);border-left-color:rgba(255,122,26,.5)}
  .nav-link[aria-current="page"]{
    background:rgba(255,122,26,.18);border:0;border-bottom:1px solid rgba(42,51,80,.65);border-left:2px solid var(--sun);
  }
}
@media (max-width:560px){
  :root{--gutter:16px}
  .brand-name{font-size:19px}
  .brand-tag{display:none}
  .header-rail{display:none}
  .rail-id{font-size:10px;letter-spacing:.1em}
  .chapter{padding:40px 0}
  .footer-inner{padding-top:40px}
  .to-top{right:12px;bottom:14px}
}
@media (min-width:760px){
  .footer-grid{grid-template-columns:1.4fr 1fr 1.2fr}
}
@media (min-width:1024px){
  .rail-layout{grid-template-columns:minmax(0,1fr) 280px;gap:40px}
  .canvas{padding:56px 0 84px}
}

/* --- 19. 动效克制 --- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .brand-sun::before,.sun-burst{animation:none}
  [data-reveal]{opacity:1;transform:none}
  .btn:hover{transform:none}
}
