/* ============================================================
   atelier-zero · FDE 课程站共享样式
   与研究站 fde.yizhou.chat 同源设计系统
   红线：单珊瑚强调色 · 无第二强调色 · 无渐变文字 · 无玻璃拟态
   ============================================================ */

:root{
  --paper:#efe7d2;
  --bone:#f7f2e4;
  --ink:#15140f;
  --ink-soft:#2c2a20;
  --ink-mute:#4a4739;
  --ink-faint:#8b8674;
  --coral:#ed6f5c;
  --coral-soft:#f08a79;
  --mustard:#e9b94a;
  --line:rgba(21,20,15,.12);
  --line-strong:rgba(21,20,15,.26);
  --pad:38px;
  --f-disp:"Inter Tight",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
  --f-serif:"Playfair Display",Georgia,serif;
  --f-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
}

*{margin:0; padding:0; box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--paper); color:var(--ink);
  font-family:var(--f-disp); font-weight:400;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
a{color:inherit; text-decoration:none}
button{font:inherit; color:inherit; background:none; border:none; cursor:pointer}
img{display:block; max-width:100%}

.wrap{width:min(1240px,100% - var(--pad)*2); margin-inline:auto}

/* ---------- typography ---------- */
.eyebrow{
  font-family:var(--f-disp); font-weight:600; font-size:12.5px;
  letter-spacing:.22em; text-transform:uppercase; color:var(--coral);
  display:flex; align-items:center; gap:12px;
}
.eyebrow::before{content:""; width:18px; height:1px; background:var(--coral)}
.mono{font-family:var(--f-mono); font-size:11.5px; letter-spacing:.04em; color:var(--ink-faint)}
.disp{font-family:var(--f-disp); font-weight:800; letter-spacing:-.03em; line-height:1.04}
.disp em{font-family:var(--f-serif); font-style:italic; font-weight:500; letter-spacing:-.01em}
.dot{color:var(--coral)}
p.lead{font-size:24px; line-height:1.85; color:var(--ink-soft); font-weight:300; max-width:44em}
p.lead strong{font-weight:600; color:var(--ink)}
p.body{font-size:19px; color:var(--ink-mute); line-height:1.9}

/* ---------- metadata strip ---------- */
.meta-strip{
  border-bottom:1px solid var(--line);
  font-family:var(--f-disp); font-size:11.5px; letter-spacing:.06em; color:var(--ink-faint);
}
.meta-strip .wrap{display:flex; justify-content:space-between; gap:18px; padding:9px 0; flex-wrap:wrap}
.meta-strip .live{display:flex; align-items:center; gap:7px}
.meta-strip .pulse{
  width:6px; height:6px; border-radius:50%; background:var(--coral);
  animation:pulse 2s ease-in-out infinite;
}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.28}}
.credit-row{border-top:1px solid var(--line); padding:8px 0}
.credit{font-family:var(--f-mono); font-size:11px; color:var(--ink-faint); letter-spacing:.03em}

/* ---------- nav ---------- */
nav{
  position:sticky; top:0; z-index:100; background:rgba(239,231,210,.94);
  border-bottom:1px solid var(--line-strong); backdrop-filter:saturate(1.1);
}
nav .wrap{display:flex; align-items:center; justify-content:space-between; gap:22px; padding:14px 0}
.brand{display:flex; align-items:baseline; gap:11px}
.brand .mark{font-family:var(--f-serif); font-style:italic; font-size:22px; color:var(--coral); line-height:1}
.brand .name{font-family:var(--f-disp); font-weight:700; font-size:16px; letter-spacing:-.01em}
.brand .ver{font-family:var(--f-mono); font-size:10.5px; color:var(--ink-faint); letter-spacing:.08em}
.nav-links{display:flex; gap:22px}
.nav-links a{font-family:var(--f-disp); font-size:14px; font-weight:500; color:var(--ink-mute); transition:color .16s}
.nav-links a:hover{color:var(--coral)}
.nav-cta{
  font-family:var(--f-disp); font-size:13.5px; font-weight:600; letter-spacing:.06em;
  border:1px solid var(--line-strong); border-radius:999px; padding:8px 16px;
  transition:all .18s ease; white-space:nowrap;
}
.nav-cta:hover{background:var(--ink); color:var(--bone); transform:translateY(-1px)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:10px; border-radius:999px;
  font-family:var(--f-disp); font-weight:600; font-size:16px; padding:15px 24px;
  transition:transform .18s ease, background .18s ease, border-color .18s ease;
}
.btn.primary{background:var(--coral); color:#fff; box-shadow:0 14px 26px -16px rgba(237,111,92,.9)}
.btn.primary:hover{transform:translateY(-2px); background:#e25f4b}
.btn.primary:disabled{opacity:.45; transform:none; cursor:not-allowed; box-shadow:none}
.btn.ghost{background:transparent; border:1px solid rgba(21,20,15,.2); color:var(--ink)}
.btn.ghost:hover{transform:translateY(-2px); border-color:var(--ink)}

/* ---------- section language ---------- */
.sec{padding:96px 0 84px; position:relative; scroll-margin-top:110px}
.sec-rule{
  border-top:1px solid var(--line-strong); padding-top:14px;
  display:flex; align-items:baseline; justify-content:space-between; margin-bottom:44px;
}
.sec-rule .roman{font-family:var(--f-serif); font-style:italic; font-weight:500; font-size:17px; color:var(--coral)}
.sec-rule .meta{font-family:var(--f-disp); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint)}
.sec-rule .page{font-family:var(--f-disp); font-size:12.5px; color:var(--ink-faint); display:flex; align-items:center; gap:10px}
.sec-h2{font-size:clamp(38px,4.6vw,66px); margin:18px 0 22px}

/* ---------- plate frame ---------- */
.plate{position:relative; border:1px solid var(--line-strong)}
.corner{position:absolute; width:22px; height:22px; border:1px solid var(--ink)}
.corner.tl{top:-9px; left:-9px; border-right:none; border-bottom:none}
.corner.tr{top:-9px; right:-9px; border-left:none; border-bottom:none}
.corner.bl{bottom:-9px; left:-9px; border-right:none; border-top:none}
.corner.br{bottom:-9px; right:-9px; border-left:none; border-top:none}

/* ---------- reveal ---------- */
[data-reveal]{opacity:0; transform:translateY(16px)}
[data-reveal].in{opacity:1; transform:none; transition:opacity .6s ease, transform .6s ease}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  [data-reveal]{opacity:1 !important; transform:none !important; transition:none !important}
  .meta-strip .pulse{animation:none}
}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line-strong); padding:70px 0 0; margin-top:40px}
.fin{font-family:var(--f-serif); font-style:italic; font-size:15px; color:var(--ink-faint); letter-spacing:.1em}
.foot-mega{
  font-family:var(--f-disp); font-weight:800; letter-spacing:-.04em; line-height:.94;
  font-size:clamp(44px,8vw,120px); margin:22px 0 34px;
}
.sources{border-top:1px solid var(--line); padding-top:26px; margin-top:34px}
.sources h5{
  font-family:var(--f-disp); font-size:12px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--ink-faint); margin-bottom:16px;
}
.sources ol{list-style:none; counter-reset:s; display:grid; gap:9px}
.sources li{
  counter-increment:s; font-size:14.5px; line-height:1.75; color:var(--ink-mute);
  padding-left:34px; position:relative;
}
.sources li::before{
  content:counter(s,decimal-leading-zero); position:absolute; left:0; top:1px;
  font-family:var(--f-mono); font-size:11px; color:var(--coral);
}
.foot-bar{
  border-top:1px solid var(--line-strong); margin-top:40px; padding:18px 0;
  font-family:var(--f-mono); font-size:11.5px; color:var(--ink-faint);
  display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;
}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .nav-links{display:none}
}
@media (max-width:640px){
  :root{--pad:22px}
  .sec{padding:80px 0 70px}
  .brand .ver{display:none}
  .brand .name{white-space:nowrap; font-size:14px}
  .nav-cta{padding:9px 13px; font-size:12.5px}
  .sec-rule{flex-wrap:wrap; row-gap:6px}
  p.lead{font-size:21px}
}
