/* ============ 优发国开服 · 共享样式 /assets/site.css ============ */

:root{
  --uf-ink:#0E3B2E;
  --uf-moss:#1F5C46;
  --uf-gold:#E3A93C;
  --uf-gold-lt:#F2D08A;
  --uf-coral:#E8603C;
  --uf-cyan:#3FD0C9;
  --uf-rock:#2B2F2C;
  --uf-paper:#F4EFE3;
  --uf-clay:#8C5A3C;
  --uf-score:#EADFC6;

  --uf-wrap:1240px;
  --uf-nav-w:1140px;
  --uf-gutter:clamp(16px,4vw,48px);
  --uf-line:3px solid var(--uf-rock);
  --uf-shadow:6px 6px 0 var(--uf-rock);
  --uf-shadow-sm:4px 4px 0 var(--uf-rock);
  --uf-shadow-deep:6px 6px 0 rgba(0,0,0,.45);

  --uf-font:"PingFang SC","Hiragino Sans GB","Noto Sans CJK SC","Source Han Sans SC","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --uf-mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,"Liberation Mono","Courier New",monospace;
}

*,*::before,*::after{box-sizing:border-box;}

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
}

body{
  margin:0;
  font-family:var(--uf-font);
  font-size:16px;
  line-height:1.75;
  color:var(--uf-rock);
  background:var(--uf-paper);
  overflow-x:hidden;
}

h1,h2,h3,h4,h5,p,figure,blockquote,dl,dd{margin:0;}
ul,ol{margin:0;padding:0;}
img,svg,video{display:block;max-width:100%;height:auto;}
a{color:inherit;}
button{font:inherit;color:inherit;}
table{border-collapse:collapse;}

:focus-visible{
  outline:3px solid var(--uf-cyan);
  outline-offset:3px;
  border-radius:4px;
}

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

/* ---------- 跳转链接 ---------- */
.uf-skip{
  position:fixed;left:14px;top:-80px;z-index:99;
  padding:11px 18px;
  background:var(--uf-gold);color:var(--uf-rock);
  border:var(--uf-line);border-radius:8px;
  font-weight:800;letter-spacing:.04em;text-decoration:none;
  box-shadow:var(--uf-shadow-sm);
  transition:top .16s ease;
}
.uf-skip:focus{top:14px;}

/* ---------- 顶部阅读进度 ---------- */
.uf-progress{
  position:fixed;left:0;right:0;top:0;height:3px;z-index:70;
  background:rgba(43,47,44,.28);
  pointer-events:none;
}
.uf-progress__bar{
  display:block;height:100%;width:0;
  background:linear-gradient(90deg,var(--uf-gold) 0%,var(--uf-gold-lt) 100%);
  transition:width .1s linear;
}

/* ---------- 页头：悬浮胶囊 ---------- */
.uf-header{
  position:sticky;top:0;z-index:60;
  padding:12px var(--uf-gutter) 10px;
  background:linear-gradient(180deg,rgba(14,59,46,.92) 0%,rgba(14,59,46,.78) 62%,rgba(14,59,46,0) 100%);
}
.uf-header__inner{
  width:100%;max-width:var(--uf-nav-w);
  margin:0 auto;
  display:flex;align-items:center;gap:10px;
  padding:8px 10px 8px 14px;
  background:var(--uf-ink);
  border:var(--uf-line);
  border-radius:999px;
  box-shadow:5px 5px 0 rgba(0,0,0,.45);
  transition:padding .22s ease,box-shadow .22s ease;
}
.uf-header[data-stuck] .uf-header__inner{
  padding:5px 8px 5px 12px;
  box-shadow:4px 4px 0 rgba(0,0,0,.62);
}

.uf-brand{
  flex:0 0 auto;
  display:inline-flex;align-items:center;gap:9px;
  text-decoration:none;color:var(--uf-paper);
}
.uf-brand__plate{
  font-family:var(--uf-mono);
  font-size:11px;letter-spacing:.16em;line-height:1;
  padding:6px 8px;
  background:var(--uf-gold);color:var(--uf-rock);
  border:2px solid var(--uf-rock);border-radius:5px;
  box-shadow:2px 2px 0 rgba(0,0,0,.5);
  white-space:nowrap;
}
.uf-brand__name{
  font-size:17px;font-weight:900;letter-spacing:.05em;
  white-space:nowrap;
}

.uf-nav{
  flex:1 1 auto;
  display:flex;justify-content:center;
  min-width:0;
}
.uf-nav__list{
  display:flex;align-items:center;gap:2px;
  list-style:none;
}
.uf-nav__item{display:flex;}
.uf-nav__link{
  display:inline-flex;align-items:baseline;gap:6px;
  padding:8px 12px;
  border:2px solid transparent;border-radius:999px;
  color:var(--uf-paper);text-decoration:none;
  font-size:14px;letter-spacing:.03em;white-space:nowrap;
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}
.uf-nav__num{
  font-family:var(--uf-mono);
  font-size:10px;letter-spacing:.1em;
  color:var(--uf-gold);
  transition:color .18s ease;
}
.uf-nav__link:hover{
  background:var(--uf-moss);
  border-color:var(--uf-cyan);
  color:#fff;
}
.uf-nav__link[aria-current="page"]{
  background:var(--uf-gold);
  border-color:var(--uf-rock);
  color:var(--uf-rock);
  font-weight:800;
}
.uf-nav__link[aria-current="page"] .uf-nav__num{color:var(--uf-clay);}

.uf-header__cta{
  flex:0 0 auto;
  display:inline-flex;align-items:center;
  padding:9px 16px;
  background:var(--uf-coral);color:#fff;
  border:2px solid var(--uf-rock);border-radius:999px;
  box-shadow:3px 3px 0 var(--uf-rock);
  font-size:13px;font-weight:800;letter-spacing:.06em;
  text-decoration:none;white-space:nowrap;
  transition:transform .15s ease,box-shadow .15s ease;
}
.uf-header__cta:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--uf-rock);}
.uf-header__cta:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--uf-rock);}

.uf-nav-toggle{
  display:none;
  flex:0 0 auto;
  width:44px;height:40px;
  flex-direction:column;align-items:center;justify-content:center;gap:4px;
  padding:0;
  background:var(--uf-moss);
  border:2px solid var(--uf-rock);border-radius:11px;
  cursor:pointer;
}
.uf-nav-toggle__bar{
  display:block;width:20px;height:2px;background:var(--uf-paper);
  transition:transform .18s ease,opacity .18s ease;
}
.uf-header[data-open] .uf-nav-toggle__bar:nth-child(1){transform:translateY(6px) rotate(45deg);}
.uf-header[data-open] .uf-nav-toggle__bar:nth-child(2){opacity:0;}
.uf-header[data-open] .uf-nav-toggle__bar:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

/* ---------- 页脚三条色带 ---------- */
.uf-footer{
  margin-top:clamp(56px,8vw,110px);
  background:var(--uf-ink);
  color:var(--uf-paper);
}
.uf-footer__band{padding:clamp(28px,4vw,52px) 0;}
.uf-footer__band--log{
  background:var(--uf-score);
  color:var(--uf-rock);
  border-top:4px solid var(--uf-gold);
}
.uf-footer__band--links{background:var(--uf-moss);}
.uf-footer__band--meta{background:var(--uf-rock);}

.uf-footer__head{
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;
  gap:12px 24px;
  padding-bottom:16px;
}
.uf-footer__title{
  font-size:clamp(20px,2.4vw,26px);
  font-weight:900;letter-spacing:-.01em;line-height:1.25;
}
.uf-footer__more{
  font-family:var(--uf-mono);
  font-size:12px;letter-spacing:.12em;
  color:var(--uf-clay);text-decoration:none;
  border-bottom:2px solid var(--uf-clay);
  padding-bottom:2px;
  transition:color .16s ease,border-color .16s ease;
}
.uf-footer__more:hover{color:var(--uf-coral);border-color:var(--uf-coral);}

.uf-loglist{
  list-style:none;
  border-top:2px dashed rgba(43,47,44,.35);
}
.uf-loglist__item{border-bottom:2px dashed rgba(43,47,44,.35);}
.uf-loglist__link{
  display:grid;
  grid-template-columns:74px 110px 1fr 24px;
  align-items:center;gap:16px;
  padding:14px 6px;
  text-decoration:none;color:inherit;
  transition:background .16s ease,transform .16s ease;
}
.uf-loglist__link:hover{background:rgba(232,96,60,.12);transform:translateX(4px);}
.uf-loglist__ver{
  font-family:var(--uf-mono);
  font-size:17px;font-weight:700;letter-spacing:.04em;
  color:var(--uf-clay);
}
.uf-loglist__cat{
  font-family:var(--uf-mono);
  font-size:11px;letter-spacing:.12em;
  color:var(--uf-moss);
  border:2px solid var(--uf-moss);border-radius:999px;
  padding:2px 9px;justify-self:start;
}
.uf-loglist__text{font-size:15px;line-height:1.65;}
.uf-loglist__arrow{font-family:var(--uf-mono);color:var(--uf-coral);text-align:right;}

.uf-footer__split{
  display:grid;
  grid-template-columns:1.5fr 1fr;
  gap:clamp(24px,4vw,64px);
}
.uf-footer__sub{
  font-family:var(--uf-mono);
  font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--uf-gold-lt);
  padding-bottom:14px;
  border-bottom:2px solid rgba(244,239,227,.22);
  margin-bottom:16px;
}
.uf-links{list-style:none;display:grid;gap:2px;}
.uf-links__item a{
  display:inline-flex;align-items:baseline;gap:10px;
  padding:7px 4px;
  color:var(--uf-paper);text-decoration:none;
  font-size:15px;letter-spacing:.02em;
  border-bottom:2px solid transparent;
  transition:color .16s ease,border-color .16s ease,transform .16s ease;
}
.uf-links__item a:hover{
  color:var(--uf-gold-lt);
  border-bottom-color:var(--uf-gold);
  transform:translateX(4px);
}
.uf-links__num{
  font-family:var(--uf-mono);
  font-size:11px;letter-spacing:.1em;
  color:var(--uf-cyan);
}

.uf-meta{
  list-style:none;
  display:flex;flex-wrap:wrap;gap:10px 32px;
  align-items:baseline;
}
.uf-meta__item{display:inline-flex;align-items:baseline;gap:9px;}
.uf-meta__key{
  font-family:var(--uf-mono);
  font-size:11px;letter-spacing:.16em;
  color:var(--uf-gold);
}
.uf-meta__val{font-size:14px;letter-spacing:.02em;color:var(--uf-paper);}
.uf-footer__legal{
  margin-top:18px;padding-top:16px;
  border-top:2px solid rgba(244,239,227,.18);
  font-family:var(--uf-mono);
  font-size:12px;letter-spacing:.1em;
  color:rgba(244,239,227,.6);
}

/* ---------- 通用容器与排版 ---------- */
.uf-wrap{
  width:100%;max-width:var(--uf-wrap);
  margin:0 auto;
  padding:0 var(--uf-gutter);
}
.uf-section{
  position:relative;
  padding:clamp(48px,7vw,96px) 0;
}
.uf-eyebrow{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--uf-mono);
  font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--uf-clay);
}
.uf-eyebrow::before{
  content:"";display:block;width:22px;height:3px;background:var(--uf-gold);
}
.uf-h1{
  font-size:clamp(40px,7vw,96px);
  font-weight:900;line-height:1.02;letter-spacing:-.025em;
}
.uf-h2{
  font-size:clamp(24px,3.2vw,36px);
  font-weight:900;line-height:1.18;letter-spacing:-.015em;
}
.uf-h3{
  font-size:clamp(18px,2vw,22px);
  font-weight:800;line-height:1.35;letter-spacing:-.005em;
}
.uf-lead{
  max-width:34em;
  font-size:clamp(16px,1.5vw,19px);
  line-height:1.75;
  color:var(--uf-moss);
}
.uf-prose{max-width:34em;font-size:16px;line-height:1.75;}
.uf-prose p + p{margin-top:1em;}
.uf-prose ul,.uf-prose ol{margin:1em 0;padding-left:1.4em;list-style:disc;}
.uf-prose li{margin-bottom:.4em;}

/* ---------- 网格 ---------- */
.uf-grid{display:grid;gap:clamp(20px,3vw,40px);}
.uf-grid--7-5{grid-template-columns:7fr 5fr;}
.uf-grid--8-4{grid-template-columns:8fr 4fr;}
.uf-grid--5-7{grid-template-columns:5fr 7fr;}
.uf-grid--cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));}

/* ---------- 卡片 / 门牌 / 标签 / 记分牌 ---------- */
.uf-card{
  position:relative;
  padding:clamp(18px,2.4vw,28px);
  background:var(--uf-paper);
  border:var(--uf-line);
  border-radius:10px;
  box-shadow:var(--uf-shadow);
}
.uf-card--dark{background:var(--uf-ink);color:var(--uf-paper);}
.uf-card--moss{background:var(--uf-moss);color:var(--uf-paper);}
.uf-card--score{background:var(--uf-score);}
.uf-card--flat{box-shadow:none;}

.uf-plate{
  display:flex;gap:14px;align-items:flex-start;
  padding:14px 16px;
  background:var(--uf-moss);color:var(--uf-paper);
  border:var(--uf-line);border-radius:8px;
  box-shadow:var(--uf-shadow-sm);
}
.uf-plate__num{
  font-family:var(--uf-mono);
  font-size:26px;font-weight:700;line-height:1;
  color:var(--uf-gold);
}
.uf-plate__body{min-width:0;}

.uf-tag{
  display:inline-flex;align-items:center;gap:6px;
  padding:4px 10px;
  background:var(--uf-clay);color:var(--uf-paper);
  border:2px solid var(--uf-rock);border-radius:999px;
  font-family:var(--uf-mono);
  font-size:11px;letter-spacing:.1em;
}
.uf-tag--cyan{background:var(--uf-cyan);color:var(--uf-rock);}
.uf-tag--gold{background:var(--uf-gold);color:var(--uf-rock);}
.uf-tag--coral{background:var(--uf-coral);color:#fff;}

.uf-score{
  background:var(--uf-score);
  border:var(--uf-line);border-radius:6px;
  box-shadow:var(--uf-shadow);
  overflow:hidden;
}
.uf-score__row{
  display:grid;
  grid-template-columns:58px 1fr auto;
  align-items:center;gap:16px;
  padding:14px 18px;
  border-bottom:2px dashed rgba(43,47,44,.35);
}
.uf-score__row:last-child{border-bottom:0;}
.uf-score__num{
  font-family:var(--uf-mono);
  font-size:26px;font-weight:700;line-height:1;
  color:var(--uf-clay);
}

/* ---------- 章节索引轨 ---------- */
.uf-rail{
  position:sticky;top:104px;
  display:flex;flex-direction:column;gap:2px;
  font-family:var(--uf-mono);
  font-size:12px;letter-spacing:.1em;
}
.uf-rail__link{
  display:flex;gap:10px;align-items:baseline;
  padding:8px 10px;
  border-left:3px solid transparent;
  color:var(--uf-moss);text-decoration:none;
  transition:color .16s ease,border-color .16s ease,background .16s ease;
}
.uf-rail__link:hover{color:var(--uf-rock);background:rgba(31,92,70,.08);}
.uf-rail__link[data-current]{
  border-left-color:var(--uf-coral);
  color:var(--uf-rock);font-weight:700;
  background:rgba(232,96,60,.12);
}

/* ---------- 图片容器基础规则 ---------- */
.uf-media{
  position:relative;
  display:block;width:100%;
  overflow:hidden;
  background:var(--uf-moss);
  border:var(--uf-line);border-radius:8px;
  box-shadow:var(--uf-shadow);
}
.uf-media img{width:100%;height:100%;object-fit:cover;}
.uf-media::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:repeating-linear-gradient(45deg,rgba(244,239,227,.07) 0 5px,transparent 5px 13px);
}
.uf-media--16x9{aspect-ratio:16/9;}
.uf-media--4x3{aspect-ratio:4/3;}
.uf-media--1x1{aspect-ratio:1/1;}
.uf-media--tall{aspect-ratio:3/4;}
.uf-media__tag{
  position:absolute;left:0;bottom:0;z-index:2;
  padding:7px 13px;
  background:var(--uf-ink);color:var(--uf-gold-lt);
  border-top:2px solid var(--uf-rock);border-right:2px solid var(--uf-rock);
  font-family:var(--uf-mono);
  font-size:11px;letter-spacing:.14em;
}

/* ---------- 按钮 ---------- */
.uf-btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:13px 22px;
  background:var(--uf-paper);color:var(--uf-rock);
  border:var(--uf-line);border-radius:8px;
  font-size:15px;font-weight:800;letter-spacing:.04em;
  text-decoration:none;cursor:pointer;
  box-shadow:var(--uf-shadow-sm);
  transition:transform .15s ease,box-shadow .15s ease,background .15s ease;
}
.uf-btn:hover{transform:translate(-2px,-2px);box-shadow:var(--uf-shadow);}
.uf-btn:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--uf-rock);}
.uf-btn--coral{background:var(--uf-coral);color:#fff;}
.uf-btn--gold{background:var(--uf-gold);color:var(--uf-rock);}
.uf-btn--ghost{
  background:transparent;color:var(--uf-paper);
  border-color:var(--uf-paper);box-shadow:none;
}
.uf-btn--ghost:hover{background:rgba(244,239,227,.12);transform:none;box-shadow:none;}
.uf-btn--block{display:flex;width:100%;justify-content:center;}

/* ---------- 面包屑 ---------- */
.uf-crumb{
  display:flex;flex-wrap:wrap;align-items:center;gap:9px;
  font-family:var(--uf-mono);
  font-size:12px;letter-spacing:.1em;
  color:var(--uf-moss);
}
.uf-crumb__link{
  color:inherit;text-decoration:none;
  border-bottom:2px solid transparent;
  transition:color .16s ease,border-color .16s ease;
}
.uf-crumb__link:hover{color:var(--uf-coral);border-bottom-color:var(--uf-coral);}
.uf-crumb__sep{color:var(--uf-gold);}
.uf-crumb__current{color:var(--uf-rock);font-weight:700;}

/* ---------- 入场动效挂钩 ---------- */
[data-reveal]{transition:opacity .2s ease,transform .2s ease;}

/* ---------- 响应式 ---------- */
@media (max-width:1000px){
  .uf-grid--7-5,.uf-grid--8-4,.uf-grid--5-7{grid-template-columns:1fr;}
  .uf-footer__split{grid-template-columns:1fr;}
  .uf-rail{position:static;top:auto;}
}

@media (max-width:900px){
  .uf-header__inner{
    flex-wrap:wrap;
    border-radius:22px;
    padding:8px 10px;
  }
  .uf-nav{display:none;flex-basis:100%;order:4;justify-content:flex-start;}
  .uf-header[data-open] .uf-nav{display:block;}
  .uf-nav__list{
    flex-direction:column;align-items:stretch;gap:2px;
    width:100%;padding-top:8px;
    border-top:2px solid rgba(244,239,227,.2);
    margin-top:6px;
  }
  .uf-nav__link{
    border-radius:10px;
    justify-content:flex-start;
    padding:12px 14px;
    font-size:15px;
  }
  .uf-nav-toggle{display:inline-flex;margin-left:auto;}
  .uf-header__cta{margin-left:auto;}
}

@media (max-width:640px){
  .uf-header{padding:10px var(--uf-gutter) 8px;}
  .uf-brand__name{font-size:15px;}
  .uf-brand__plate{font-size:10px;letter-spacing:.12em;padding:5px 7px;}
  .uf-header__cta{font-size:12px;padding:8px 12px;box-shadow:2px 2px 0 var(--uf-rock);}
  .uf-loglist__link{
    grid-template-columns:1fr auto;
    grid-template-areas:
      "ver arrow"
      "cat cat"
      "text text";
    gap:8px 12px;
    padding:14px 4px;
    row-gap:6px;
  }
  .uf-loglist__ver{grid-area:ver;}
  .uf-loglist__cat{grid-area:cat;}
  .uf-loglist__text{grid-area:text;}
  .uf-loglist__arrow{grid-area:arrow;}
  .uf-score__row{grid-template-columns:44px 1fr;row-gap:8px;padding:13px 14px;}
  .uf-score__num{font-size:22px;}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  [data-reveal]{opacity:1 !important;transform:none !important;}
}
