/* =========================================================
   斗地主现金局 — 站点共享样式 /assets/site.css
   墨绿深夜底 · 暗金细节 · 朱红状态
   ========================================================= */

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
body,h1,h2,h3,h4,h5,h6,p,ul,ol,li,figure,figcaption,blockquote,dl,dt,dd{margin:0;padding:0}
ul,ol{list-style:none}
img,svg,video{display:block;max-width:100%;height:auto}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
a{color:inherit;text-decoration:none}
input,textarea,select{font:inherit}
[hidden]{display:none !important}

/* ---------- tokens ---------- */
:root{
  --ink-900:#0C231E;
  --ink-800:#143A31;
  --ink-700:#1E4B40;
  --gold:#C8A24A;
  --gold-lite:#E4C884;
  --ruby:#D2402F;
  --ruby-deep:#B93322;
  --wine:#6E2320;
  --steel:#7E93A6;
  --steel-lite:#B9C6D0;
  --paper:#F4EFE6;
  --coal:#12100E;

  --font-head:"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --font-body:"Noto Serif SC","Source Han Serif SC","Songti SC","SimSun",serif;
  --font-ui:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --font-mono:"JetBrains Mono","Roboto Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  --fs-xs:.75rem;
  --fs-sm:.875rem;
  --fs-base:1rem;
  --fs-md:1.125rem;
  --fs-lg:1.375rem;
  --fs-xl:1.75rem;
  --fs-2xl:2.25rem;
  --fs-3xl:3rem;
  --fs-4xl:3.75rem;
  --fs-5xl:5rem;

  --sp-1:8px;
  --sp-2:16px;
  --sp-3:24px;
  --sp-4:32px;
  --sp-5:48px;
  --sp-6:64px;
  --sp-7:96px;

  --wrap:1240px;
  --gutter:clamp(16px,4vw,40px);

  --dur-1:120ms;
  --dur-2:200ms;
  --dur-3:320ms;
  --ease:cubic-bezier(.22,.68,0,1);

  --radius:2px;
  --line:1px solid var(--ink-700);
  --shadow-1:0 1px 0 rgba(0,0,0,.2);
  --shadow-2:0 10px 28px -14px rgba(0,0,0,.7);
}

/* ---------- base ---------- */
body{
  min-height:100vh;
  font-family:var(--font-body);
  font-size:var(--fs-base);
  font-weight:400;
  line-height:1.8;
  color:var(--paper);
  background-color:var(--ink-900);
  background-image:
    radial-gradient(rgba(244,239,230,.035) 1px, transparent 1px),
    radial-gradient(1100px 560px at 82% -12%, rgba(30,75,64,.62), transparent 64%),
    radial-gradient(880px 520px at 2% -4%, rgba(110,35,32,.26), transparent 62%);
  background-repeat:repeat,no-repeat,no-repeat;
  background-size:4px 4px,auto,auto;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

h1,h2,h3,h4{
  font-family:var(--font-head);
  font-weight:900;
  letter-spacing:-.02em;
  line-height:1.22;
  color:var(--paper);
}

p{max-width:74ch}
strong{font-weight:700;color:var(--gold-lite)}
code,kbd,samp{font-family:var(--font-mono);font-size:.9em}

::selection{background:var(--ruby);color:var(--paper)}

:focus-visible{
  outline:2px solid var(--gold-lite);
  outline-offset:3px;
  border-radius:var(--radius);
}

/* ---------- skip link ---------- */
.skip-link{
  position:fixed;
  top:0;
  left:0;
  z-index:500;
  padding:12px 22px;
  background:var(--gold-lite);
  color:var(--coal);
  font-family:var(--font-ui);
  font-weight:700;
  font-size:var(--fs-sm);
  letter-spacing:.06em;
  border-radius:0 0 var(--radius) 0;
  transform:translateY(-130%);
  transition:transform var(--dur-2) var(--ease);
}
.skip-link:focus,
.skip-link:focus-visible{transform:translateY(0)}

/* ---------- 布局容器 ---------- */
.wrap{
  width:100%;
  max-width:var(--wrap);
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.wrap--narrow{max-width:860px}

/* ---------- 滚动进度 ---------- */
.scroll-progress{
  position:fixed;
  top:0;
  left:0;
  width:0;
  height:2px;
  z-index:400;
  pointer-events:none;
  background:linear-gradient(90deg,var(--gold) 0%,var(--ruby) 100%);
}

/* ---------- 头部 ---------- */
.site-header{
  position:relative;
  z-index:100;
  color:var(--paper);
  background:var(--ink-900);
  border-bottom:1px solid var(--ink-700);
}
.site-header::before{
  content:"";
  display:block;
  height:3px;
  background:linear-gradient(90deg,var(--wine) 0%,var(--ruby) 14%,var(--gold) 38%,var(--ink-700) 82%);
}

.masthead{
  width:100%;
  max-width:var(--wrap);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

.masthead__inner{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  column-gap:var(--sp-2);
  padding:22px 0 18px;
}

.masthead__descriptor{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-ui);
  font-size:11px;
  font-weight:500;
  letter-spacing:.22em;
  color:var(--steel);
  max-width:none;
}
.masthead__pip{
  display:inline-block;
  flex:0 0 auto;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--ruby);
  box-shadow:0 0 0 3px rgba(210,64,47,.16);
}

.masthead__brand{
  justify-self:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:3px;
  text-align:center;
  transition:opacity var(--dur-2) var(--ease);
}
.masthead__brand:hover{opacity:.86}
.masthead__brand-cn{
  font-family:var(--font-head);
  font-weight:900;
  font-size:clamp(1.5rem,3.2vw,2.125rem);
  line-height:1.1;
  letter-spacing:.06em;
  color:var(--paper);
}
.masthead__brand-en{
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:.42em;
  text-transform:uppercase;
  color:var(--gold);
}

.masthead__actions{
  justify-self:end;
  display:flex;
  align-items:center;
  gap:var(--sp-2);
}

/* 移动端开关 */
.nav-toggle{
  display:none;
  justify-self:end;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  border:1px solid var(--ink-700);
  border-radius:var(--radius);
  color:var(--gold-lite);
  font-family:var(--font-ui);
  font-weight:700;
  font-size:var(--fs-xs);
  letter-spacing:.16em;
  transition:border-color var(--dur-2) var(--ease),color var(--dur-2) var(--ease);
}
.nav-toggle:hover{border-color:var(--gold)}
.nav-toggle__bars{
  position:relative;
  display:block;
  width:16px;
  height:10px;
}
.nav-toggle__bars::before,
.nav-toggle__bars::after{
  content:"";
  position:absolute;
  left:0;
  width:16px;
  height:1.5px;
  background:currentColor;
  transition:transform var(--dur-2) var(--ease);
}
.nav-toggle__bars::before{top:0}
.nav-toggle__bars::after{bottom:0}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before{transform:translateY(4.25px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after{transform:translateY(-4.25px) rotate(-45deg)}

/* 导航 */
.site-nav{
  display:block;
  padding:0 0 14px;
  border-top:1px solid var(--ink-700);
}
.site-nav__list{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:2px;
  padding-top:12px;
}
.site-nav__item{position:relative}
.site-nav__item + .site-nav__item::before{
  content:"";
  position:absolute;
  left:-1px;
  top:50%;
  transform:translateY(-50%);
  width:1px;
  height:11px;
  background:var(--ink-700);
}
.site-nav__link{
  position:relative;
  display:inline-flex;
  align-items:center;
  padding:9px 18px;
  font-family:var(--font-ui);
  font-weight:500;
  font-size:.9375rem;
  letter-spacing:.08em;
  color:var(--steel-lite);
  border-radius:var(--radius);
  transition:color var(--dur-2) var(--ease),background-color var(--dur-2) var(--ease);
}
.site-nav__link::after{
  content:"";
  position:absolute;
  left:18px;
  right:18px;
  bottom:4px;
  height:1px;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:50% 50%;
  transition:transform var(--dur-2) var(--ease),background-color var(--dur-1) linear;
}
.site-nav__link:hover{color:var(--paper)}
.site-nav__link:hover::after{transform:scaleX(1)}
.site-nav__link[aria-current="page"]{
  color:var(--gold-lite);
  background:rgba(200,162,74,.07);
}
.site-nav__link[aria-current="page"]::after{
  transform:scaleX(1);
  height:2px;
  background:var(--ruby);
}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:12px 22px;
  border:1px solid transparent;
  border-radius:var(--radius);
  font-family:var(--font-ui);
  font-weight:700;
  font-size:var(--fs-sm);
  letter-spacing:.08em;
  line-height:1.2;
  white-space:nowrap;
  transition:
    background-color var(--dur-2) var(--ease),
    border-color var(--dur-2) var(--ease),
    color var(--dur-2) var(--ease),
    transform var(--dur-1) var(--ease);
}
.btn:active{transform:translateY(1px)}
.btn--ruby{
  background:var(--ruby);
  border-color:var(--ruby);
  color:var(--paper);
  box-shadow:var(--shadow-1);
}
.btn--ruby:hover{background:var(--ruby-deep);border-color:var(--gold)}
.btn--ghost{
  background:transparent;
  border-color:var(--ink-700);
  color:var(--gold-lite);
}
.btn--ghost:hover{background:var(--ink-800);border-color:var(--gold);color:var(--gold-lite)}

/* ---------- 章节标签 ---------- */
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--gold);
}
.eyebrow__num{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:28px;
  height:20px;
  padding:0 6px;
  background:var(--gold);
  color:var(--ink-900);
  font-family:var(--font-mono);
  font-size:11px;
  font-weight:700;
  letter-spacing:.04em;
  border-radius:1px;
}

.section-rule{
  height:1px;
  border:0;
  margin:var(--sp-3) 0;
  background:linear-gradient(90deg,var(--gold) 0%,var(--ink-700) 34%,var(--ink-700) 100%);
}

/* ---------- 面包屑 ---------- */
.breadcrumb{padding:var(--sp-3) 0 var(--sp-1)}
.breadcrumb__list{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  font-family:var(--font-ui);
  font-size:var(--fs-sm);
  color:var(--steel);
}
.breadcrumb__link{
  color:var(--steel-lite);
  transition:color var(--dur-2) var(--ease);
}
.breadcrumb__link:hover{color:var(--gold-lite)}
.breadcrumb__sep{color:var(--ink-700)}
.breadcrumb__current{color:var(--gold-lite)}

/* ---------- 图片容器 ---------- */
.media-frame{
  position:relative;
  display:block;
  width:100%;
  overflow:hidden;
  border:1px solid var(--ink-700);
  border-radius:var(--radius);
  background:var(--ink-800);
  aspect-ratio:16 / 10;
  box-shadow:var(--shadow-2);
}
.media-frame--wide{aspect-ratio:21 / 9}
.media-frame--tall{aspect-ratio:3 / 4}
.media-frame--square{aspect-ratio:1 / 1}
.media-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.82) contrast(1.04);
}
.media-frame::after{
  content:"";
  position:absolute;
  inset:8px;
  border:1px solid rgba(200,162,74,.24);
  pointer-events:none;
}
.media-frame__caption{
  margin-top:10px;
  font-family:var(--font-ui);
  font-size:var(--fs-xs);
  letter-spacing:.06em;
  color:var(--steel);
}

/* ---------- 筛选 ---------- */
.filter-bar{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.filter-btn{
  padding:8px 16px;
  border:1px solid var(--ink-700);
  border-radius:var(--radius);
  background:transparent;
  color:var(--steel-lite);
  font-family:var(--font-ui);
  font-size:var(--fs-sm);
  font-weight:500;
  letter-spacing:.06em;
  transition:
    background-color var(--dur-2) var(--ease),
    border-color var(--dur-2) var(--ease),
    color var(--dur-2) var(--ease);
}
.filter-btn:hover{border-color:var(--gold);color:var(--gold-lite)}
.filter-btn[aria-pressed="true"]{
  background:var(--ruby);
  border-color:var(--ruby);
  color:var(--paper);
  font-weight:700;
}

/* ---------- 章节轨道（页面侧栏使用） ---------- */
.chapter-track{
  display:flex;
  flex-direction:column;
  gap:2px;
  font-family:var(--font-ui);
  font-size:var(--fs-sm);
}
.chapter-track__link{
  position:relative;
  display:block;
  padding:9px 14px;
  border-left:1px solid var(--ink-700);
  color:var(--steel);
  letter-spacing:.04em;
  transition:
    color var(--dur-2) var(--ease),
    border-color var(--dur-2) var(--ease),
    background-color var(--dur-2) var(--ease);
}
.chapter-track__link:hover{color:var(--gold-lite);border-left-color:var(--gold)}
.chapter-track__link[aria-current="true"]{
  color:var(--gold-lite);
  border-left:2px solid var(--ruby);
  background:linear-gradient(90deg,rgba(200,162,74,.12),transparent 72%);
}

/* ---------- 页脚 ---------- */
.site-footer{
  position:relative;
  margin-top:clamp(56px,8vw,96px);
  padding:clamp(40px,6vw,64px) 0 32px;
  background:var(--ink-900);
  border-top:1px solid var(--ink-700);
  color:var(--paper);
}
.site-footer::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:2px;
  background:linear-gradient(90deg,var(--ruby) 0%,var(--ruby) 16%,var(--gold) 16%,var(--gold) 44%,var(--ink-700) 44%,var(--ink-700) 100%);
}
.site-footer__inner{
  width:100%;
  max-width:var(--wrap);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

.site-footer__top{
  display:grid;
  grid-template-columns:minmax(220px,1fr) minmax(0,1.9fr);
  gap:clamp(28px,5vw,72px);
  padding-bottom:var(--sp-5);
  border-bottom:1px solid var(--ink-700);
}

.site-footer__brand-cn{
  font-family:var(--font-head);
  font-weight:900;
  font-size:clamp(1.375rem,2.6vw,1.875rem);
  line-height:1.2;
  letter-spacing:.05em;
  color:var(--paper);
  max-width:none;
}
.site-footer__brand-cn span{color:var(--gold)}
.site-footer__brand-en{
  margin-top:10px;
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:.36em;
  text-transform:uppercase;
  color:var(--gold);
  max-width:none;
}
.site-footer__tagline{
  margin-top:var(--sp-2);
  max-width:30ch;
  font-family:var(--font-body);
  font-size:var(--fs-sm);
  line-height:1.9;
  color:var(--steel);
}

.footer-cols{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--sp-3);
}
.footer-col__title{
  margin-bottom:12px;
  padding-bottom:10px;
  border-bottom:1px solid var(--ink-700);
  font-family:var(--font-mono);
  font-size:11px;
  font-weight:500;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:var(--gold);
  max-width:none;
}
.footer-col__list{display:grid;gap:9px}
.footer-col__link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-ui);
  font-size:var(--fs-sm);
  letter-spacing:.04em;
  color:var(--steel-lite);
  transition:color var(--dur-2) var(--ease);
}
.footer-col__link::before{
  content:"";
  flex:0 0 auto;
  width:12px;
  height:1px;
  background:var(--ink-700);
  transition:width var(--dur-2) var(--ease),background-color var(--dur-2) var(--ease);
}
.footer-col__link:hover{color:var(--gold-lite)}
.footer-col__link:hover::before{width:20px;background:var(--ruby)}

.site-footer__meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px 40px;
  padding:var(--sp-4) 0;
  border-bottom:1px solid var(--ink-700);
}
.site-footer__meta-item{
  display:inline-flex;
  align-items:baseline;
  gap:10px;
  font-family:var(--font-mono);
  font-size:var(--fs-sm);
  color:var(--steel-lite);
  max-width:none;
}
.site-footer__meta-key{
  font-family:var(--font-ui);
  font-size:11px;
  letter-spacing:.2em;
  color:var(--gold);
}

.site-footer__note{
  max-width:78ch;
  padding:var(--sp-3) 0;
  border-bottom:1px solid var(--ink-700);
  font-family:var(--font-body);
  font-size:.8125rem;
  line-height:1.9;
  color:var(--steel);
}

.site-footer__legal{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:10px 24px;
  padding-top:var(--sp-3);
}
.site-footer__legal-item{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.08em;
  color:var(--steel);
  max-width:none;
}

/* ---------- 平板 ---------- */
@media (max-width:1024px){
  .site-footer__top{
    grid-template-columns:1fr;
    gap:var(--sp-4);
  }
}

/* ---------- 移动 ---------- */
@media (max-width:900px){
  .masthead__inner{
    grid-template-columns:1fr auto;
    column-gap:var(--sp-2);
    padding:16px 0 14px;
  }
  .masthead__descriptor{display:none}
  .masthead__actions{display:none}
  .masthead__brand{justify-self:start;align-items:flex-start;text-align:left}
  .masthead__brand-cn{font-size:1.375rem;letter-spacing:.04em}
  .masthead__brand-en{font-size:9px;letter-spacing:.3em}
  .nav-toggle{display:inline-flex}

  .site-nav{
    display:none;
    padding:0;
    border-top:1px solid var(--ink-700);
  }
  .site-nav[data-open]{display:block}
  .site-nav__list{
    flex-direction:column;
    flex-wrap:nowrap;
    align-items:stretch;
    gap:0;
    padding:4px 0 14px;
  }
  .site-nav__item{width:100%}
  .site-nav__item + .site-nav__item::before{display:none}
  .site-nav__link{
    width:100%;
    padding:14px 2px;
    font-size:var(--fs-base);
    border-bottom:1px solid rgba(30,75,64,.55);
  }
  .site-nav__link::after{left:2px;right:2px;bottom:0}
  .site-nav__link[aria-current="page"]{background:transparent}

  .footer-cols{grid-template-columns:1fr 1fr}
  .site-footer__legal{justify-content:flex-start}
}

@media (max-width:560px){
  .footer-cols{grid-template-columns:1fr;gap:var(--sp-3)}
  .site-footer__meta{flex-direction:column;gap:8px}
  .site-footer__tagline{max-width:none}
  .btn{padding:11px 18px}
}

/* ---------- 动效降级 ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
  .site-nav__link::after{transition:none}
  .btn:active{transform:none}
}
