/* =========================================================
   乐鱼赛场 · 共享站点样式 /assets/site.css
   视觉主题：赛道切片 · 夜场深蓝 + 荧光橙速度带
   ========================================================= */

/* ---------- 1. 变量 ---------- */
:root{
  --ly-deep:#071A2F;
  --ly-steel:#0E2A47;
  --ly-fog:#F4F7FA;
  --ly-white:#FFFFFF;
  --ly-ink:#1C2833;
  --ly-orange:#FF6B1A;
  --ly-mint:#14C8B8;
  --ly-yellow:#FFD166;
  --ly-violet:#7A5CFF;
  --ly-mint-soft:#D7F7F2;
  --ly-orange-soft:#FFE1D0;
  --ly-line:#2E5A7A;

  --ly-font-display:'Noto Sans SC','Source Han Sans SC','PingFang SC',sans-serif;
  --ly-font-body:'Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;
  --ly-font-mono:'Roboto Mono','IBM Plex Mono','SFMono-Regular',monospace;

  --ly-h1:clamp(48px,6vw,76px);
  --ly-h2:clamp(32px,3.6vw,44px);
  --ly-h3:clamp(22px,2.2vw,28px);

  --ly-gutter:clamp(20px,4vw,56px);
  --ly-maxw:1220px;
  --ly-radius:18px;
  --ly-radius-sm:10px;

  --ly-ease:cubic-bezier(.2,.7,.3,1);
  --ly-fast:180ms;

  --ly-header-h:132px;
}

/* ---------- 2. Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  background:var(--ly-fog);
  color:var(--ly-ink);
  font-family:var(--ly-font-body);
  font-size:clamp(16px,1.05vw,18px);
  line-height:1.7;
  letter-spacing:.01em;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,p,figure,blockquote,ul,ol,dl,dd{margin:0}
ul,ol{padding:0;list-style:none}
img,svg,video{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
input,textarea,select{font:inherit}
::selection{background:var(--ly-orange);color:#fff}
:focus-visible{
  outline:3px solid var(--ly-yellow);
  outline-offset:3px;
  border-radius:4px;
}

/* ---------- 3. 中文排版 ---------- */
h1,h2,h3,h4{
  font-family:var(--ly-font-display);
  font-weight:800;
  line-height:1.1;
  letter-spacing:-.02em;
  text-wrap:balance;
}
h1{font-size:var(--ly-h1)}
h2{font-size:var(--ly-h2)}
h3{font-size:var(--ly-h3);line-height:1.25}
p{text-wrap:pretty}
strong{font-weight:700}
.ly-mono{
  font-family:var(--ly-font-mono);
  font-weight:600;
  letter-spacing:.02em;
  font-variant-numeric:tabular-nums;
}

/* ---------- 4. 布局容器与章节 ---------- */
.ly-container{
  width:100%;
  max-width:var(--ly-maxw);
  margin-inline:auto;
  padding-inline:var(--ly-gutter);
}
.ly-container--wide{max-width:1440px}
.ly-section{padding-block:clamp(56px,8vw,112px)}
.ly-section--tight{padding-block:clamp(32px,4.5vw,64px)}
.ly-section--dark{background:var(--ly-deep);color:var(--ly-fog)}
.ly-section--steel{background:var(--ly-steel);color:var(--ly-fog)}
.ly-section--paper{background:var(--ly-white);color:var(--ly-ink)}
.ly-section--fog{background:var(--ly-fog);color:var(--ly-ink)}
.ly-section--dark h2,.ly-section--dark h3,.ly-section--steel h2,.ly-section--steel h3{color:#fff}

.ly-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--ly-font-mono);
  font-size:13px;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ly-line);
  margin-bottom:18px;
}
.ly-section--dark .ly-eyebrow,.ly-section--steel .ly-eyebrow{color:var(--ly-yellow)}
.ly-eyebrow::before{
  content:"";
  width:26px;
  height:3px;
  background:var(--ly-orange);
  flex:none;
}

/* ---------- 5. 网格 ---------- */
.ly-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:clamp(16px,2vw,28px);
}
.ly-grid > *{min-width:0}
.ly-grid--split{grid-template-columns:repeat(12,1fr)}
.ly-grid--offset .ly-card:nth-child(even){transform:translateY(clamp(0px,1.4vw,20px))}

/* ---------- 6. 按钮 ---------- */
.ly-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:48px;
  padding:12px 24px;
  border-radius:999px;
  font-family:var(--ly-font-body);
  font-weight:700;
  font-size:15px;
  letter-spacing:.02em;
  line-height:1;
  border:2px solid transparent;
  transition:transform var(--ly-fast) var(--ly-ease),
             background-color var(--ly-fast) var(--ly-ease),
             color var(--ly-fast) var(--ly-ease),
             border-color var(--ly-fast) var(--ly-ease),
             box-shadow var(--ly-fast) var(--ly-ease);
}
.ly-btn--primary{
  background:var(--ly-orange);
  color:#1a0a00;
  box-shadow:0 10px 24px -12px rgba(255,107,26,.9);
}
.ly-btn--primary:hover{background:#ff7f3a;box-shadow:0 14px 28px -12px rgba(255,107,26,.95)}
.ly-btn--ghost{
  background:transparent;
  color:var(--ly-deep);
  border-color:var(--ly-line);
}
.ly-btn--ghost:hover{border-color:var(--ly-orange);color:var(--ly-orange)}
.ly-section--dark .ly-btn--ghost,.ly-section--steel .ly-btn--ghost,.ly-footer .ly-btn--ghost{
  color:var(--ly-fog);
  border-color:rgba(244,247,250,.42);
}
.ly-section--dark .ly-btn--ghost:hover,.ly-section--steel .ly-btn--ghost:hover,.ly-footer .ly-btn--ghost:hover{
  color:var(--ly-deep);
  background:var(--ly-yellow);
  border-color:var(--ly-yellow);
}
.ly-btn:active{transform:translateY(1px)}

/* ---------- 7. 标签 ---------- */
.ly-tag{
  display:inline-block;
  padding:4px 12px;
  border-radius:999px;
  font-family:var(--ly-font-mono);
  font-size:12px;
  font-weight:600;
  letter-spacing:.08em;
  background:var(--ly-orange-soft);
  color:#7a2a00;
  border:1px solid rgba(255,107,26,.35);
}
.ly-tag--mint{background:var(--ly-mint-soft);color:#06564e;border-color:rgba(20,200,184,.45)}
.ly-tag--violet{background:rgba(122,92,255,.12);color:#4a34b8;border-color:rgba(122,92,255,.4)}

/* ---------- 8. 面包屑 ---------- */
.ly-breadcrumb{
  padding-block:14px;
  border-bottom:1px solid rgba(46,90,122,.18);
  font-size:13px;
}
.ly-breadcrumb ol{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  font-family:var(--ly-font-mono);
}
.ly-breadcrumb li{display:flex;align-items:center;gap:8px}
.ly-breadcrumb li + li::before{content:"/";color:var(--ly-line);opacity:.6}
.ly-breadcrumb a{color:var(--ly-line);text-decoration:underline;text-underline-offset:3px}
.ly-breadcrumb a:hover{color:var(--ly-orange)}
.ly-breadcrumb [aria-current="page"]{color:var(--ly-ink);font-weight:600}

/* ---------- 9. 卡片族 ---------- */
.ly-card{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:clamp(20px,2.4vw,30px);
  background:var(--ly-white);
  color:var(--ly-ink);
  border:1px solid rgba(46,90,122,.16);
  border-radius:var(--ly-radius);
  transition:transform var(--ly-fast) var(--ly-ease),
             box-shadow var(--ly-fast) var(--ly-ease),
             border-color var(--ly-fast) var(--ly-ease),
             background-color var(--ly-fast) var(--ly-ease);
}
.ly-card:hover{
  transform:translateY(-4px);
  border-color:rgba(255,107,26,.5);
  box-shadow:0 20px 40px -28px rgba(7,26,47,.55);
}
.ly-card--tool{border-top:4px solid var(--ly-orange)}
.ly-card--check{border-left:4px solid var(--ly-mint);background:var(--ly-white)}
.ly-card--column{border-top:4px solid var(--ly-violet)}
.ly-card--step{border-top:4px solid var(--ly-yellow)}
.ly-card--term{background:var(--ly-deep);color:var(--ly-fog);border-color:rgba(244,247,250,.16)}
.ly-card--term h3{color:#fff}
.ly-card__head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ly-card__title{font-size:clamp(19px,1.6vw,22px);font-weight:700;line-height:1.3}
.ly-card__text{color:#3b4a58;font-size:15.5px;line-height:1.7}
.ly-card--term .ly-card__text{color:rgba(244,247,250,.78)}
.ly-card__foot{margin-top:auto;padding-top:8px}
.ly-card__link{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--ly-orange);font-size:15px}
.ly-card__link::after{content:"→";transition:transform var(--ly-fast) var(--ly-ease)}
.ly-card__link:hover::after{transform:translateX(4px)}

/* ---------- 10. 图片容器基础规则 ---------- */
.ly-media{
  position:relative;
  overflow:hidden;
  border-radius:var(--ly-radius);
  background:
    radial-gradient(120% 90% at 15% 10%,rgba(20,200,184,.28),transparent 60%),
    radial-gradient(120% 90% at 85% 90%,rgba(255,107,26,.3),transparent 62%),
    linear-gradient(150deg,var(--ly-steel),var(--ly-deep));
  isolation:isolate;
}
.ly-media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(115deg,transparent 42%,rgba(255,209,102,.16) 50%,transparent 58%);
  pointer-events:none;
}
.ly-media__img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.ly-media--wide{aspect-ratio:16/9}
.ly-media--tall{aspect-ratio:3/4}
.ly-media--square{aspect-ratio:1/1}

/* ---------- 11. 斜切过渡装饰 ---------- */
.ly-rule{
  height:clamp(24px,4vw,56px);
  background:var(--ly-orange);
  clip-path:polygon(0 62%,100% 0,100% 62%,0 100%);
  opacity:.95;
}

/* ---------- 12. 滚动显现 ---------- */
.ly-reveal{opacity:0;transform:translateY(16px);transition:opacity 420ms var(--ly-ease),transform 420ms var(--ly-ease)}
.ly-reveal.is-visible{opacity:1;transform:none}
html.ly-reveal-ready .ly-reveal{opacity:0}
html:not(.ly-reveal-ready) .ly-reveal{opacity:1;transform:none}

/* ---------- 13. 跳转链接 ---------- */
.ly-skip{
  position:fixed;
  top:8px;
  left:50%;
  transform:translate(-50%,-160%);
  z-index:200;
  padding:12px 22px;
  background:var(--ly-yellow);
  color:var(--ly-deep);
  font-weight:800;
  border-radius:0 0 var(--ly-radius-sm) var(--ly-radius-sm);
  transition:transform 160ms var(--ly-ease);
}
.ly-skip:focus{transform:translate(-50%,0)}

/* ---------- 14. 阅读进度 ---------- */
.ly-progress{
  position:absolute;
  left:0;right:0;bottom:0;
  height:3px;
  background:rgba(244,247,250,.14);
  overflow:hidden;
}
.ly-progress__bar{
  display:block;
  height:100%;
  width:0;
  background:linear-gradient(90deg,var(--ly-mint),var(--ly-orange));
  transition:width 90ms linear;
}

/* =========================================================
   15. HEADER
   ========================================================= */
.ly-header{
  position:sticky;
  top:0;
  z-index:100;
  background:var(--ly-deep);
  color:var(--ly-fog);
  box-shadow:0 18px 40px -34px rgba(0,0,0,.9);
}

/* 上层：转播条 */
.ly-header__upper{
  background:var(--ly-steel);
  border-bottom:1px solid rgba(46,90,122,.55);
}
.ly-header__upper-inner{
  max-width:var(--ly-maxw);
  margin-inline:auto;
  padding:8px var(--ly-gutter);
  display:flex;
  align-items:center;
  gap:18px;
  font-size:12.5px;
  letter-spacing:.06em;
  color:rgba(244,247,250,.72);
}
.ly-header__brandline{
  font-weight:800;
  color:var(--ly-fog);
  letter-spacing:.1em;
}
.ly-header__upper-note{white-space:nowrap}
.ly-header__upper-meta{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:10px;
  white-space:nowrap;
}
.ly-header__upper-meta .ly-mono{color:var(--ly-yellow);font-size:12px}

/* 下层：品牌 + 分道栏 */
.ly-header__lower-inner{
  max-width:var(--ly-maxw);
  margin-inline:auto;
  padding:14px var(--ly-gutter);
  display:flex;
  align-items:center;
  gap:clamp(16px,2.4vw,36px);
}
.ly-header__brand{display:flex;align-items:center;gap:14px;min-width:0}
.ly-header__brandlink{display:flex;align-items:center;gap:12px;min-width:0}
.ly-header__mark{
  flex:none;
  width:38px;height:38px;
  border-radius:12px;
  background:linear-gradient(135deg,var(--ly-orange) 0 52%,var(--ly-mint) 52% 100%);
  position:relative;
  transform:rotate(-6deg);
  box-shadow:0 8px 18px -10px rgba(255,107,26,.9);
}
.ly-header__mark::after{
  content:"";
  position:absolute;
  inset:9px;
  border:2px solid var(--ly-deep);
  border-radius:6px;
  clip-path:polygon(0 0,100% 0,100% 46%,0 76%);
}
.ly-header__wordmark{
  font-family:var(--ly-font-display);
  font-size:clamp(20px,2vw,25px);
  font-weight:800;
  letter-spacing:-.01em;
  color:#fff;
  white-space:nowrap;
}
.ly-header__descriptor{
  display:none;
  font-size:12.5px;
  color:rgba(244,247,250,.62);
  letter-spacing:.04em;
  padding-left:12px;
  border-left:1px solid rgba(46,90,122,.8);
  white-space:nowrap;
}
.ly-header__note{
  display:none;
  writing-mode:vertical-rl;
  text-orientation:mixed;
  font-family:var(--ly-font-mono);
  font-size:11px;
  letter-spacing:.28em;
  color:var(--ly-mint);
  opacity:.85;
  max-height:58px;
}

/* 导航 */
.ly-nav{display:none;margin-left:auto}
.ly-nav__list{display:flex;align-items:center;gap:clamp(4px,1vw,14px)}
.ly-nav__link{
  position:relative;
  display:inline-block;
  padding:10px 12px;
  font-size:15px;
  font-weight:600;
  color:rgba(244,247,250,.82);
  border-radius:8px;
  transition:color var(--ly-fast) var(--ly-ease),background-color var(--ly-fast) var(--ly-ease);
}
.ly-nav__link:hover{color:#fff;background:rgba(244,247,250,.08)}
.ly-nav__link::before{
  content:"";
  position:absolute;
  left:12px;right:12px;bottom:4px;
  height:3px;
  background:var(--ly-orange);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform var(--ly-fast) var(--ly-ease);
}
.ly-nav__link:hover::before{transform:scaleX(1)}
.ly-nav__link[aria-current="page"]{
  color:#fff;
  background:rgba(255,107,26,.16);
  box-shadow:inset 0 0 0 1px rgba(255,107,26,.5);
}
.ly-nav__link[aria-current="page"]::before{transform:scaleX(1)}

.ly-header__cta{display:none;flex:none}

/* 移动按钮 */
.ly-nav-toggle{
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 16px;
  border:1px solid rgba(244,247,250,.35);
  border-radius:999px;
  color:var(--ly-fog);
  font-size:14px;
  font-weight:700;
  transition:border-color var(--ly-fast) var(--ly-ease),background-color var(--ly-fast) var(--ly-ease);
}
.ly-nav-toggle:hover{border-color:var(--ly-orange);background:rgba(255,107,26,.14)}
.ly-nav-toggle__bars{display:inline-flex;flex-direction:column;gap:4px;width:18px}
.ly-nav-toggle__bars span{display:block;height:2px;background:currentColor;border-radius:2px;transition:transform var(--ly-fast) var(--ly-ease),opacity var(--ly-fast) var(--ly-ease)}
.ly-nav-toggle[aria-expanded="true"] .ly-nav-toggle__bars span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.ly-nav-toggle[aria-expanded="true"] .ly-nav-toggle__bars span:nth-child(2){opacity:0}
.ly-nav-toggle[aria-expanded="true"] .ly-nav-toggle__bars span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* 抽屉 */
.ly-drawer{
  display:grid;
  grid-template-rows:0fr;
  overflow:hidden;
  background:var(--ly-steel);
  border-top:1px solid transparent;
  transition:grid-template-rows 240ms var(--ly-ease),border-color 240ms var(--ly-ease);
}
.ly-drawer[data-open]{
  grid-template-rows:1fr;
  border-top-color:rgba(46,90,122,.8);
}
.ly-drawer__nav{
  min-height:0;
  padding:0 var(--ly-gutter);
  transition:padding 240ms var(--ly-ease);
}
.ly-drawer[data-open] .ly-drawer__nav{padding-block:16px 22px}
.ly-drawer__list{display:grid;gap:4px;margin-bottom:14px}
.ly-drawer__link{
  display:block;
  padding:13px 14px;
  border-radius:10px;
  font-size:16px;
  font-weight:600;
  color:rgba(244,247,250,.9);
  border-left:3px solid transparent;
  transition:background-color var(--ly-fast) var(--ly-ease),border-color var(--ly-fast) var(--ly-ease),color var(--ly-fast) var(--ly-ease);
}
.ly-drawer__link:hover{background:rgba(244,247,250,.08);color:#fff}
.ly-drawer__link[aria-current="page"]{
  background:rgba(255,107,26,.16);
  border-left-color:var(--ly-orange);
  color:#fff;
}
.ly-drawer__cta{width:100%}

/* 桌面断点 */
@media (min-width:900px){
  .ly-nav{display:block}
  .ly-header__descriptor{display:inline}
  .ly-header__note{display:block}
  .ly-header__cta{display:inline-flex}
  .ly-nav-toggle{display:none}
  .ly-drawer{display:none}
}
@media (min-width:1100px){
  .ly-header__note{max-height:none}
}

/* =========================================================
   16. FOOTER · 终点记分板
   ========================================================= */
.ly-footer{
  position:relative;
  background:var(--ly-deep);
  color:var(--ly-fog);
  padding-top:0;
}
.ly-footer__rule{
  height:clamp(18px,3vw,40px);
  background:linear-gradient(90deg,var(--ly-orange) 0 38%,var(--ly-mint) 38% 62%,var(--ly-yellow) 62% 100%);
  clip-path:polygon(0 100%,100% 0,100% 100%,0 100%);
  margin-bottom:clamp(30px,5vw,60px);
}
.ly-footer__top{
  max-width:var(--ly-maxw);
  margin-inline:auto;
  padding:0 var(--ly-gutter) clamp(36px,5vw,56px);
  display:grid;
  gap:clamp(28px,4vw,48px);
}
.ly-footer__brandlink{display:inline-flex;align-items:center;gap:12px}
.ly-footer__mark{
  width:34px;height:34px;
  border-radius:10px;
  background:linear-gradient(135deg,var(--ly-orange) 0 55%,var(--ly-mint) 55% 100%);
  transform:rotate(8deg);
  flex:none;
}
.ly-footer__wordmark{
  font-family:var(--ly-font-display);
  font-size:clamp(26px,3vw,34px);
  font-weight:800;
  letter-spacing:-.02em;
  color:#fff;
}
.ly-footer__descriptor{
  margin-top:10px;
  font-family:var(--ly-font-mono);
  font-size:12.5px;
  letter-spacing:.16em;
  color:var(--ly-mint);
}
.ly-footer__lede{
  margin-top:14px;
  max-width:22em;
  font-size:16px;
  color:rgba(244,247,250,.74);
}
.ly-footer__cta{margin-top:22px}

.ly-footer__cols{
  display:grid;
  gap:clamp(24px,3vw,36px);
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
}
.ly-footer__coltitle{
  font-family:var(--ly-font-mono);
  font-size:12px;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ly-yellow);
  margin-bottom:14px;
}
.ly-footer__list{display:grid;gap:9px;font-size:15px}
.ly-footer__list a{
  color:rgba(244,247,250,.8);
  text-decoration:underline;
  text-decoration-color:rgba(46,90,122,.9);
  text-underline-offset:4px;
  transition:color var(--ly-fast) var(--ly-ease),text-decoration-color var(--ly-fast) var(--ly-ease);
}
.ly-footer__list a:hover{color:var(--ly-orange);text-decoration-color:var(--ly-orange)}
.ly-footer__list--meta li{color:rgba(244,247,250,.72);font-size:13px;word-break:break-word}
.ly-footer__note{
  margin-top:12px;
  font-size:12.5px;
  line-height:1.6;
  color:rgba(244,247,250,.55);
  padding-left:12px;
  border-left:2px solid var(--ly-orange);
}
.ly-footer__meta{
  border-top:1px solid rgba(46,90,122,.6);
  padding:18px var(--ly-gutter);
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px 26px;
  max-width:var(--ly-maxw);
  margin-inline:auto;
  font-size:13px;
  color:rgba(244,247,250,.62);
}
.ly-footer__copy{margin-right:auto}
.ly-footer__icp .ly-mono{font-size:12.5px;color:rgba(244,247,250,.72)}
.ly-footer__metalinks{display:flex;flex-wrap:wrap;gap:16px}
.ly-footer__metalinks a{
  color:rgba(244,247,250,.7);
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-color:rgba(46,90,122,.9);
}
.ly-footer__metalinks a:hover{color:var(--ly-yellow)}

@media (min-width:860px){
  .ly-footer__top{grid-template-columns:minmax(240px,.85fr) 1.6fr;padding-top:8px}
  .ly-footer__cols{grid-template-columns:repeat(3,1fr)}
}

/* ---------- 17. 响应式细节 ---------- */
@media (max-width:599px){
  :root{--ly-radius:14px}
  .ly-header__upper-inner{font-size:11.5px;gap:10px}
  .ly-header__upper-meta{font-size:11px}
  .ly-header__upper-meta span:not(.ly-mono){display:none}
  .ly-header__lower-inner{padding-block:12px}
  .ly-header__brandlink{gap:10px}
  .ly-header__mark{width:32px;height:32px}
  .ly-footer__meta{flex-direction:column;align-items:flex-start;gap:8px}
  .ly-footer__copy{margin-right:0}
}
@media (max-width:899px){
  .ly-header__upper-note{display:none}
}

/* ---------- 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;
  }
  .ly-reveal{opacity:1 !important;transform:none !important}
  .ly-progress__bar{transition:none}
}
