/* 51fengliu.monster — 象牙白 + 靛蓝 + 朱红；mono 标题气质，sans 正文。 */

:root{
  --bg:#f7f5ee;
  --surface:#fffdf8;
  --surface-2:#efecdf;
  --text:#26303c;
  --text-2:#5c6672;
  --accent:#2c4a8a;
  --accent-deep:#1e3563;
  --on-accent:#ffffff;
  --cinnabar:#c04a3a;
  --cinnabar-deep:#9c382b;
  --on-cinnabar:#fff6f2;
  --border:#dcd6c4;
  --border-soft:#e8e3d4;
  --ring:#2c4a8a;
  --ok:#2e7d4f;
  --warn:#9a6b16;
  --danger:#b03a2e;

  --sans:system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;
  --mono:ui-monospace,SFMono-Regular,Consolas,"Courier New",monospace;

  --radius-sm:6px;
  --radius-md:10px;
  --radius-lg:14px;

  --shadow-1:0 1px 3px rgba(38,48,60,.08);
  --shadow-2:0 3px 10px rgba(38,48,60,.10);
  --shadow-3:0 8px 24px rgba(38,48,60,.14);

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

  --container:1080px;
  --ease:cubic-bezier(.25,.6,.3,1);
  --dur:180ms;
  --cta-loop:2.8s;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:var(--sans);font-size:16px;line-height:1.75;
  overflow-wrap:anywhere;
  padding-bottom:112px;
}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:3px solid var(--ring);outline-offset:2px;border-radius:2px}
img{max-width:100%;height:auto}
.wrap{max-width:var(--container);margin:0 auto;padding:0 var(--space-4)}
.wrap-text{max-width:730px;margin:0 auto;padding:0 var(--space-4)}

h1,.h1{font-size:30px;line-height:1.25;font-weight:800;margin:0 0 var(--space-4)}
h2,.h2{font-size:21px;line-height:1.3;font-weight:700;margin:var(--space-6) 0 var(--space-3)}
h3,.h3{font-size:17px;line-height:1.35;font-weight:700;margin:var(--space-4) 0 var(--space-2)}
p{margin:0 0 var(--space-3)}
ul,ol{margin:0 0 var(--space-3);padding-left:22px}
li{margin-bottom:6px}
small,.small{font-size:13px;color:var(--text-2)}
.mono{font-family:var(--mono)}
code,.code{
  font-family:var(--mono);font-size:14px;background:var(--surface-2);
  padding:2px 7px;border-radius:var(--radius-sm);
}

/* ---------- header ---------- */
.site-head{
  position:sticky;top:0;z-index:60;
  background:var(--bg);border-bottom:1px solid var(--border);
}
.head-in{display:flex;align-items:center;gap:var(--space-4);min-height:60px}
.brand{
  display:flex;align-items:center;gap:9px;
  font-family:var(--mono);font-size:19px;font-weight:700;color:var(--text);
  white-space:nowrap;
}
.brand:hover{text-decoration:none;color:var(--accent-deep)}
.brand-seal{
  display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:var(--radius-sm);
  background:var(--accent);color:var(--on-accent);
  font-size:16px;font-weight:700;
}
.brand small{font-family:var(--sans);font-size:11px;font-weight:400;color:var(--text-2);margin-left:1px}
.head-nav{display:flex;align-items:center;gap:4px;margin-left:auto;flex-wrap:nowrap;overflow-x:auto}
.head-nav a{
  display:flex;align-items:center;min-height:40px;
  padding:4px 13px;border-radius:999px;
  color:var(--text-2);font-size:15px;white-space:nowrap;
}
.head-nav a:hover{background:var(--accent);color:var(--on-accent);text-decoration:none}
.head-nav a[aria-current="page"]{background:var(--accent);color:var(--on-accent)}
.menu-btn{
  display:none;align-items:center;justify-content:center;
  width:44px;height:44px;margin-left:auto;
  background:transparent;border:1px solid var(--border);border-radius:var(--radius-md);
  color:var(--text);cursor:pointer;
}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(320px,86vw);z-index:90;
  background:var(--surface);border-left:1px solid var(--border);
  padding:var(--space-5);transform:translateX(105%);transition:transform var(--dur) var(--ease);
  display:flex;flex-direction:column;gap:2px;overflow-y:auto;
}
.drawer.open{transform:translateX(0)}
.drawer a{display:flex;align-items:center;min-height:46px;padding:0 10px;border-radius:var(--radius-md);color:var(--text);font-size:16px}
.drawer a:hover{background:var(--surface-2);text-decoration:none}
.drawer-close{margin-bottom:var(--space-4);min-height:44px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2);color:var(--text);cursor:pointer;font-size:14px}
.drawer-mask{position:fixed;inset:0;z-index:80;background:rgba(30,42,60,.32);opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease)}
.drawer-mask.show{opacity:1;pointer-events:auto}

/* ---------- bands ---------- */
.band{padding:var(--space-7) 0}
.band-tight{padding:var(--space-6) 0 var(--space-5)}
.page-head{border-bottom:1px dashed var(--border)}
.crumb{font-size:13px;color:var(--text-2);margin:0 0 var(--space-3)}
.crumb a{color:var(--text-2)}
.crumb a:hover{color:var(--accent)}
.lead{font-size:17px;color:var(--text-2);max-width:730px}

/* ---------- 词条日历 hero ---------- */
.hero-flex{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--space-6);align-items:start}
.wod-card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-2);overflow:hidden;
}
.wod-head{
  display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);
  background:var(--accent);color:var(--on-accent);
  padding:10px 20px;font-family:var(--mono);font-size:12.5px;letter-spacing:.05em;
}
.wod-body{padding:var(--space-5) var(--space-5) var(--space-4)}
.wod-word{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.wod-word b{font-size:34px;font-weight:800;letter-spacing:.02em}
.wod-word .py{font-family:var(--mono);font-size:15px;color:var(--accent)}
.wod-def{margin-top:var(--space-3)}
.wod-meta{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-4)}
.chip{
  display:inline-flex;align-items:center;min-height:26px;padding:2px 11px;
  border:1px solid var(--border);border-radius:999px;
  background:var(--surface-2);font-size:12.5px;color:var(--text-2);
}
.hero-side{display:flex;flex-direction:column;gap:var(--space-3)}
.hero-side h1{margin:0 0 var(--space-2)}
.side-links{display:flex;flex-direction:column;gap:2px;margin-top:var(--space-2)}
.side-links a{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  min-height:46px;padding:6px 14px;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);
  color:var(--text);font-size:15px;
}
.side-links a:hover{border-color:var(--accent);text-decoration:none;color:var(--accent-deep)}
.side-links a .mono{font-size:12px;color:var(--text-2)}

/* ---------- 词条卡组 ---------- */
.dict-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}
.dict-col h2{margin-top:0;font-family:var(--mono);font-size:15px;letter-spacing:.06em;color:var(--accent-deep)}
.dict-col details.fold{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);
  margin-bottom:var(--space-2);
}
.dict-col summary{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  min-height:46px;padding:8px 14px;cursor:pointer;list-style:none;
  font-family:var(--mono);font-size:15px;font-weight:700;
}
.dict-col summary::-webkit-details-marker{display:none}
.dict-col summary::after{
  content:"＋";color:var(--text-2);font-size:15px;transition:transform var(--dur) var(--ease);
}
details.fold[open] summary::after{transform:rotate(45deg)}
.fold-body{padding:0 14px 12px;font-size:14.5px;color:var(--text-2)}
.fold-body .eg{display:block;margin-top:6px;font-family:var(--mono);font-size:12.5px;color:var(--accent)}

/* ---------- 词族对比条 ---------- */
.word-row{
  display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);
}
.word-cell{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);
  padding:var(--space-3) var(--space-4);
}
.word-cell b{font-family:var(--mono);font-size:17px;color:var(--accent-deep);display:block}
.word-cell p{margin:6px 0 0;font-size:13.5px;color:var(--text-2)}

/* ---------- 表格 ---------- */
.tbl-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}
.tbl{width:100%;border-collapse:collapse;font-size:14.5px;min-width:560px}
.tbl th{
  text-align:left;background:var(--accent);color:var(--on-accent);
  padding:10px 14px;font-size:13px;letter-spacing:.04em;white-space:nowrap;
}
.tbl td{padding:10px 14px;border-top:1px solid var(--border-soft);vertical-align:top}

/* ---------- fact / rank 列表 ---------- */
.rev-list{list-style:none;padding:0}
.rev-list li{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);
  padding:var(--space-3) var(--space-4);margin-bottom:var(--space-2);
}
.rev-list b{display:block;font-family:var(--mono);font-size:15px;color:var(--accent-deep);margin-bottom:3px}
.rev-list p{margin:0;font-size:14.5px;color:var(--text-2)}
.num-list{list-style:none;padding:0;counter-reset:n}
.num-list li{
  counter-increment:n;display:flex;gap:14px;align-items:baseline;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);
  padding:var(--space-3) var(--space-4);margin-bottom:var(--space-2);
}
.num-list li::before{
  content:counter(n,decimal-leading-zero);font-family:var(--mono);
  font-size:15px;color:var(--cinnabar);flex:0 0 auto;
}
.num-list b{font-family:var(--mono);font-size:15px}
.num-list p{margin:0;font-size:14.5px;color:var(--text-2)}

/* ---------- FAQ ---------- */
.faq details.fold{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);
  margin-bottom:var(--space-2);
}
.faq summary{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  min-height:48px;padding:10px 16px;cursor:pointer;list-style:none;
  font-size:15.5px;font-weight:600;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"＋";color:var(--text-2);transition:transform var(--dur) var(--ease)}
.faq details.fold[open] summary::after{transform:rotate(45deg)}

/* ---------- 链接分栏 ---------- */
.link-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5)}
.link-cols h3{margin-top:0;font-family:var(--mono);font-size:14px;letter-spacing:.05em;color:var(--accent-deep)}
.link-cols ul{list-style:none;padding:0}
.link-cols a{display:flex;align-items:center;min-height:36px;font-size:15px}

/* ---------- notice ---------- */
.notice{
  background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);
  padding:var(--space-3) var(--space-4);font-size:14.5px;
}
.notice b{color:var(--danger)}

/* ---------- CTA：seal-ink-bleed ---------- */
.site-cta{
  position:fixed;left:50%;bottom:18px;transform:translateX(-50%);
  z-index:70;display:flex;align-items:center;justify-content:center;gap:12px;
  min-height:58px;padding:12px 36px;min-width:440px;max-width:calc(100vw - 24px);
  border-radius:var(--radius-md);
  background:var(--cinnabar);color:var(--on-cinnabar);
  font-size:16.5px;font-weight:700;font-family:var(--sans);
  box-shadow:var(--shadow-3);
  white-space:nowrap;overflow:hidden;text-decoration:none;
}
.site-cta:hover{background:var(--cinnabar-deep);color:var(--on-cinnabar);text-decoration:none}
.site-cta:active{transform:translateX(-50%) scale(.98)}
.site-cta:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.site-cta .seal{
  flex:0 0 28px;width:28px;height:28px;border-radius:var(--radius-sm);
  background:rgba(255,255,255,.16);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:14px;line-height:1;
}
/* 通道一（动）：底部靛蓝描边按「落笔画线」节奏画出 */
.site-cta::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:var(--accent);
  transform:scaleX(0);transform-origin:left;
  animation:ink-rule-draw var(--cta-loop) var(--ease) infinite;
  pointer-events:none;
}
/* 通道二（色）：朱红纸面上一层靛蓝墨渍从中心洇开 */
.site-cta::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(90% 120% at 50% 50%,rgba(30,53,99,.30) 0%,rgba(30,53,99,0) 62%);
  opacity:0;
  animation:ink-bleed var(--cta-loop) var(--ease) 1.9s infinite;
  pointer-events:none;
}
@keyframes ink-rule-draw{
  0%{transform:scaleX(0)}
  42%{transform:scaleX(1)}
  74%{transform:scaleX(1)}
  100%{transform:scaleX(0)}
}
@keyframes ink-bleed{
  0%{opacity:0}
  38%{opacity:1}
  68%{opacity:0}
  100%{opacity:0}
}
.site-cta > *{position:relative;z-index:1}
@media (prefers-reduced-motion:reduce){
  .site-cta::after{animation:none;transform:scaleX(1)}
  .site-cta::before{animation:none;opacity:0}
  .site-cta:active{transform:translateX(-50%)}
  details.fold summary::after{transition:none}
}

/* ---------- footer ---------- */
.site-foot{
  background:var(--surface);border-top:1px solid var(--border);
  padding:var(--space-7) 0 var(--space-5);
}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr 1fr;gap:var(--space-5)}
.foot-brand a{
  display:flex;align-items:center;gap:8px;
  font-family:var(--mono);font-size:17px;font-weight:700;color:var(--text);
}
.foot-brand a:hover{text-decoration:none;color:var(--accent-deep)}
.foot-brand p{margin:10px 0 0;font-size:13px;color:var(--text-2);line-height:1.7}
.foot-col p{margin:0 0 var(--space-2);font-family:var(--mono);font-size:12px;color:var(--text-2)}
.foot-col nav{display:flex;flex-direction:column;gap:2px}
.foot-col a{display:flex;align-items:center;min-height:32px;font-size:14px;color:var(--text-2)}
.foot-col a:hover{color:var(--accent)}
.foot-base{
  display:flex;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;
  margin-top:var(--space-6);padding-top:var(--space-4);
  border-top:1px solid var(--border-soft);
  font-size:13px;color:var(--text-2);
}
.foot-base .num{font-family:var(--mono)}

/* ---------- 响应式 ---------- */
@media (max-width:960px){
  .hero-flex{grid-template-columns:1fr}
  .dict-cols{grid-template-columns:1fr 1fr}
  .word-row{grid-template-columns:1fr 1fr}
  .link-cols{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr 1fr;gap:var(--space-4)}
}
@media (max-width:640px){
  .head-nav{display:none}
  .menu-btn{display:flex}
  body{padding-bottom:calc(100px + env(safe-area-inset-bottom))}
  .band{padding:var(--space-6) 0}
  h1,.h1{font-size:24px}
  h2,.h2{font-size:19px}
  .dict-cols{grid-template-columns:1fr}
  .word-row{grid-template-columns:1fr}
  .link-cols{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .site-cta{
    left:12px;right:12px;transform:none;min-width:0;width:auto;
    padding:12px 16px;font-size:15.5px;min-height:54px;
  }
  .site-cta:active{transform:scale(.98)}
  .wod-word b{font-size:28px}
}
