/* FDE 实战营课件主题（A·精密仪器）。所有页面 1920×1080，y 880–1000 留给外挂字幕。 */
/* 字体全部为 SIL OFL 授权（Google Fonts），文件自托管在 fonts/，可商用、可网页嵌入、可抽子集 */
@font-face{font-family:"Inter";src:url(fonts/Inter.ttf);font-weight:100 900}
@font-face{font-family:"Noto Sans SC";src:url(fonts/NotoSansSC.ttf);font-weight:100 900}
@font-face{font-family:"Noto Sans JP";src:url(fonts/NotoSansJP.ttf);font-weight:100 900}
@font-face{font-family:"JetBrains Mono";src:url(fonts/JetBrainsMono.ttf);font-weight:100 800}
:root{
  --bg:#F6F7F9; --grid:#ECEEF2; --card:#FFFFFF; --hair:#DADDE3;
  --ink:#111318; --ink2:#4A505B; --mute:#8B919C;
  --red:#E5233B; --red-soft:#FDE8EB; --navy:#1D2B73; --navy-soft:#E6E9F5;
  --note:#FFF3BF;
  /* 地铁线语义色：全课程固定，同一概念永远同一颜色 */
  --l-main:#1D2B73; --l-app:#E5233B; --l-infer:#E8890C; --l-align:#0F9D8A; --l-arch:#6B4FD8; --l-train:#9AA0AA;
  --sans:"Inter","Noto Sans SC",sans-serif; --mono:"JetBrains Mono",ui-monospace,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
:lang(ja){--sans:"Inter","Noto Sans JP",sans-serif}
/* 一页课件 = .canvas（1920×1080）。单页样张给 body 加 class="canvas"，播放器里每个 .slide 都是 .canvas */
.canvas{width:1920px;height:1080px;overflow:hidden;position:relative;font-family:var(--sans);color:var(--ink);background:var(--bg);
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:48px 48px;background-position:-1px -1px}
.abs{position:absolute}
.mono{font-family:var(--mono)}
em{font-style:normal;color:var(--red)}

/* 套准标记：内容框四角 */
.reg{position:absolute;width:20px;height:20px;border-color:var(--mute);opacity:.55}
.reg.tl{left:96px;top:128px;border-left:1.5px solid;border-top:1.5px solid}
.reg.tr{right:96px;top:128px;border-right:1.5px solid;border-top:1.5px solid}
.reg.bl{left:96px;top:852px;border-left:1.5px solid;border-bottom:1.5px solid}
.reg.br{right:96px;top:852px;border-right:1.5px solid;border-bottom:1.5px solid}

/* 顶栏：左课程/课号，右章节导航（常驻，学 IBM 的左侧议程） */
.top{position:absolute;left:96px;right:96px;top:44px;height:44px;display:flex;align-items:center;justify-content:space-between}
.top .course{font-size:21px;color:var(--ink2);letter-spacing:.2px}
.top .course b{color:var(--ink);font-weight:700;margin-right:14px}
.rail{display:flex;gap:28px;font-size:18px;color:var(--mute)}
.rail span{position:relative;padding-top:12px}
.rail span::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;border-radius:2px;background:var(--hair)}
.rail .done{color:var(--ink2)} .rail .done::before{background:var(--ink)}
.rail .now{color:var(--red);font-weight:700} .rail .now::before{background:var(--red)}

/* 正文层级 */
.eyebrow{font-family:var(--mono);font-size:19px;letter-spacing:.14em;color:var(--mute)}
.eyebrow b{color:var(--red);font-weight:500}
.title{font-size:68px;line-height:1.16;font-weight:800;letter-spacing:-.5px}
.lede{font-size:30px;line-height:1.6;color:var(--ink2)}

/* 图卡 */
.card{position:absolute;background:var(--card);border:1px solid var(--hair);border-radius:4px;box-shadow:0 1px 0 rgba(17,19,24,.03),0 24px 48px -32px rgba(17,19,24,.28)}
.card .fighead{display:flex;justify-content:space-between;font-family:var(--mono);font-size:17px;letter-spacing:.12em;color:var(--mute);padding:22px 32px;border-bottom:1px solid var(--hair)}

/* 老师插一句：借 C 的便签，做得克制 */
.note{position:absolute;background:var(--note);padding:20px 26px 22px;font-size:26px;line-height:1.5;transform:rotate(-1.2deg);box-shadow:0 10px 24px -14px rgba(17,19,24,.35)}
.note small{display:block;font-family:var(--mono);font-size:15px;letter-spacing:.14em;color:#9A6B00;margin-bottom:6px}
.mark{background:linear-gradient(transparent 62%,var(--note) 62%,var(--note) 94%,transparent 94%)}

/* 页脚：来源 + 脚注 + logo（学 3B1B 的小字脚注写限定条件） */
.foot{position:absolute;left:96px;right:96px;top:1020px;display:flex;justify-content:space-between;align-items:center;font-size:17px;color:var(--mute)}
.foot .src b{font-family:var(--mono);font-weight:500;letter-spacing:.12em;color:var(--ink2);margin-right:10px}
.foot img{height:28px}
.footnote{position:absolute;left:120px;top:806px;font-size:17px;color:var(--mute)}
