/* ============================================================
   东南大学 · 集成电路学院 品牌主题 —— deck-seu.css
   叠加在 deck.css 之上（HTML 中先 link deck.css，再 link 本文件）
   配色取自校院标识：东大绿 #4D7C2B / 深绿 #2F5D1E / 金 #FDD100
   ============================================================ */

/* ---------- 调色板覆盖（大多数组件经由 CSS 变量自动换肤） ---------- */
:root{
  --brand:#4d7c2b;          /* 东大绿（主色） */
  --brand-dark:#2f5d1e;     /* 深绿（标题/顶栏） */
  --accent:#c8961a;         /* 深金（强调/进度条尾） */
  --soft:#eef4e6;           /* 浅绿底 */
  --good:#2f7d4f;
  --warn:#b4762a;
}

/* ---------- 暗场背景换成深绿调 ---------- */
body{background:#14241a;}

/* ---------- 顶栏：深绿渐变 + 金色底边 + 校院 LOGO ---------- */
.deck-top{
  background:linear-gradient(100deg,#21471a 0%,#3f6f28 60%,#4d7c2b 100%);
  border-bottom:3px solid #fdd100;
}
.deck-top .brand-logo{
  height:34px;width:auto;display:block;
  background:#fff;padding:3px 8px;border-radius:7px;
  box-shadow:0 2px 8px rgba(0,0,0,.18);
}
.deck-top .brand{font-size:15px;letter-spacing:.3px}
.series-nav a{color:#e7f0dd;font-size:13.5px}
.series-nav a:hover{background:rgba(255,255,255,.16)}
.series-nav a.active{background:#fdd100;color:#2f5d1e}
.deck-tools button{background:rgba(255,255,255,.12);color:#f2f8ec;border-color:rgba(255,255,255,.22);font-size:14px}
.deck-tools button:hover{background:rgba(255,255,255,.26)}
.deck-tools button.narr-btn.on{background:#fdd100;color:#2f5d1e;border-color:#fdd100;font-weight:700}

/* ---------- 组件细节回正（原硬编码偏蓝处改绿/金） ---------- */
.note.info{border-left-color:var(--brand);background:#f1f6ea;color:#2c3a22}
.pill{border-color:#d8e6c5}
.kicker{background:var(--brand);color:#fff}
.deck-bottom button.nav{color:var(--brand-dark)}
.deck-bottom .counter{font-size:14px}

/* 底栏品牌署名 */
.deck-bottom .hint-keys::after{
  content:"  ·  东南大学 集成电路学院";
  color:#5f7a4c;font-weight:700;
}

/* ============================================================
   品牌封面：仿《时序分析》母版
   白色上区(居中 LOGO) + 中部绿色斜带(左校园照·灰斜板·金三角·白标题)
   + 白色下区(绿色主讲信息)
   ============================================================ */
.cover-slide{padding:0}
.cover-slide .slide-inner{max-width:none;width:100%;height:100%;margin:0}

.seu-cover{
  position:relative;
  height:100%;width:100%;display:flex;flex-direction:column;
  background:#fff;color:#2f5d1e;
}

/* 上区：左对齐校院 LOGO（对齐《时序分析》母版） */
.sc-top{flex:0 0 18%;display:flex;align-items:center;justify-content:flex-start;padding:16px 0 4px 3.4%}
.sc-logo{position:absolute;left:38%;right:6%;top:7%;bottom:17%;display:flex;flex-direction:column;align-items:center;justify-content:center;height:auto;width:min(400px,31%);max-height:none;object-fit:contain}

/* 中部斜带画布 */
.sc-band{position:relative;flex:1 1 auto;overflow:hidden}

/* 左侧校园实景矩形（独立不与斜带重叠，竖直边缘） */
.sc-photo{
  position:absolute;left:0%;top:3%;bottom:17%;width:33.5%;z-index:3;
  background:url('brand/seu-campus.jpg') center 30%/cover no-repeat;
  clip-path:polygon(0% 0, 100% 0, 74.3% 100%, 0% 100%);
  box-shadow:0 6px 18px rgba(0,0,0,.20);
}
/* 顶部灰色斜板（“/”前倾平行四边形，位于照片右侧，与照片/绿板均不重叠） */
.sc-gray{
  position:absolute;top:3%;left:32.3%;right:10%;height:22%;
  background:linear-gradient(180deg,#9a9a9a,#828282);
  clip-path:polygon(4% 0, 100% 0, 96% 100%, 0% 100%);
}
/* 主体绿色斜板（承载标题，位于灰板下方，留白分隔） */
.sc-green{
  position:absolute;top:28%;left:26%;right:0;bottom:17%;
  background:linear-gradient(120deg,#5a8a36 0%,#4d7c2b 60%,#3f6f24 100%);
  clip-path:polygon(8% 0, 100% 0, 100% 100%, 0% 100%);
  box-shadow:0 10px 26px rgba(0,0,0,.16);
}
/* 金绿双色斜条（绿板底缘下方：左绿条 + 右金条，仿《封面.png》母版） */
.sc-tri{
  position:absolute;right:0%;bottom:9.5%;z-index:0;
  width:31%;height:2.6vh;
  background:#fdd100;transform:skewX(-24deg);
  box-shadow:0 2px 6px rgba(0,0,0,.12);
}
.sc-tri::before{
  content:"";position:absolute;top:0;bottom:0;right:102%;
  transform:skewX(24deg);
  clip-path:polygon(0% 0, 100% 0%, 98.8% 100%, 0% 100%);
  width:222%;background:#4d7c2b;
}
/* 标题文字层（叠在绿板上居中） */
.sc-title{
  position:absolute;left:31%;right:6%;top:28%;bottom:17%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;color:#fff;z-index:4;
}
.sc-title h1{
  margin:0;color:#fff;line-height:1.22;
  font-size:clamp(64px,8vw,120px);font-weight:800;
  text-shadow:0 3px 14px rgba(0,0,0,.30);
}
.sc-title .sc-sub{
  margin:22px 0 0;color:#f3f8ec;font-weight:700;
  font-size:clamp(30px,3.2vw,48px);
  text-shadow:0 2px 8px rgba(0,0,0,.25);
}

/* 下区：绿色主讲信息（居中） */
.sc-bottom{
  flex:0 0 20%;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:7px;text-align:center;
}
.sc-bottom p{margin:0;font-weight:800;color:#3f6f28;font-size:clamp(30px,1.8vw,22px)}
.sc-bottom .sc-name{font-size:clamp(50px,2.7vw,32px);font-weight:800;color:#241e5d}

@media (max-width:820px){
  .sc-logo{width:46%}
  .sc-title{left:24%}
}

/* 版本标记徽标（封面右上角，低调可见） */
.sc-ver{
  position:absolute;right:16px;top:12px;z-index:5;
  font-size:12.5px;font-weight:700;letter-spacing:.4px;
  color:#6b8a52;background:rgba(77,124,43,.10);
  border:1px solid rgba(77,124,43,.28);border-radius:999px;
  padding:2px 10px;
}

/* ============================================================
   内容页：紧凑排版，尽量在 16:9 单屏显示全部信息（v3.0 整体要求）
   （封面 .cover-slide 不受影响）
   ============================================================ */
/* v4.2：文字也左右分栏（用于"图在下方左右分布"的页面，避免文字拉得过长） */
.txt2col{column-count:2;column-gap:clamp(16px,2.2vw,38px)}
.txt2col>*{break-inside:avoid}
.txt2col>*:first-child{margin-top:0}
.txt2col .table-wrap,.txt2col .concept-grid,.txt2col .method-flow,.txt2col .kpi-grid,.txt2col .codeblock{column-span:all}
.txt2col h3{column-span:all}

/* v4.2：字号/间距改为视口自适应(vw/vh clamp)，内容随屏幕大小等比缩放 */
.slide-inner{max-width:min(94vw,2200px);font-size:clamp(13px,1.32vw,24px)}
.slide:not(.cover-slide){padding:clamp(10px,1.5vh,24px) clamp(18px,2.4vw,52px) clamp(14px,1.8vh,28px)}

/* v4.3：单屏自适应缩放——deck.js 测得溢出页时整体等比缩小 .slide-inner，
   确保任何一页所有内容都在一屏内完整显示，无需上下滚动 */
.slide:not(.cover-slide){overflow:hidden}
.slide-inner{transform-origin:top center;will-change:transform}

/* v5.x：统一所有 SVG 图内文字字体为微软雅黑——SVG <text> 默认使用浏览器衬线字体，
   与正文（微软雅黑）不一致，导致"图中文字字体不规范"。此规则强制图内文字与正文一致。 */
.slide svg text, .slide svg tspan{ font-family:"Microsoft YaHei","Noto Sans SC",Arial,sans-serif; }

/* 公式 / KaTeX 渲染尺寸 */
.katex{font-size:1.03em}
.formula .katex-display{margin:.3em 0}
.formula .katex-display>.katex{font-size:1.12em}

/* v4.4：公式排版修复——杜绝行内长公式难看换行、公式溢出文本栏压住相邻内容
   ① 展示型公式($$)独占一行、居中；过宽时仅在本栏内横向滚动，绝不溢出压字
   ② 行内公式($)限制在容器内，超长自动转为可滚动，不破坏中英文段落基线
   ③ 栏/卡片允许收缩并隐藏横向溢出，彻底避免越栏重叠 */
/* 展示型公式($$)：独占一行、居中；过宽仅在本栏内横向滚动，不溢出压字 */
.katex-display{margin:.4em 0;overflow-x:auto;overflow-y:hidden;padding:2px 0;max-width:100%}
/* 行内公式($)：保持自然基线对齐；用 nowrap 禁止 KaTeX 在 = + × 等处把单个公式
   拆成多行（窄栏内最常见的"公式难看换行"根因）。整条公式放不下时作为一个整体换到下一行。 */
.slide-inner .katex{font-size:1.02em;white-space:nowrap}
/* 栏/卡片允许收缩，杜绝越栏重叠 */
.cols>*,.grid-2>*,.grid-3>*,.concept-grid>*,.method-flow>*{min-width:0}
.formula{overflow-x:auto}

.slide h1{font-size:clamp(26px,3.2vw,46px)}
.slide:not(.cover-slide) h2{font-size:clamp(21px,2.5vw,38px);margin:0 0 .35em}
.slide h3{font-size:clamp(15px,1.45vw,25px);margin:.6em 0 .35em}
.slide h4{font-size:clamp(13px,1.2vw,21px)}
.slide p{margin:.4em 0}
.lead{font-size:clamp(15px,1.5vw,25px);line-height:1.42;margin:.35em 0}

.cols{gap:clamp(14px,1.6vw,30px)}
.grid-2,.grid-3{gap:clamp(10px,1.1vw,20px)}

.concept-grid{gap:clamp(7px,.8vw,15px);margin:.6em 0;grid-template-columns:repeat(auto-fit,minmax(min(205px,42%),1fr))}
.concept-grid>div{padding:clamp(8px,.9vw,16px)}
.concept-grid h4{font-size:clamp(13px,1.2vw,21px);margin-bottom:.3em}

.method-flow{gap:clamp(7px,.8vw,14px);margin:.6em 0;grid-template-columns:repeat(auto-fit,minmax(min(175px,40%),1fr))}
.method-flow>div{padding:clamp(8px,.9vw,16px)}
.method-flow strong{font-size:clamp(13px,1.2vw,21px);margin-bottom:.3em}
.method-flow span{font-size:clamp(17.5px,1.05vw,24px)}

.card{padding:clamp(8px,1vw,16px)}
.note{padding:clamp(8px,.9vw,15px);margin:.6em 0;font-size:clamp(12.5px,1.18vw,20px);border-left-width:4px}
.formula{padding:clamp(8px,1vw,16px);margin:.6em 0;font-size:clamp(13.5px,1.32vw,23px)}
.formula strong{font-size:clamp(14px,1.36vw,24px)}
.formula p{margin:.32em 0}
.formula code{font-size:clamp(13px,1.28vw,22px)}

.pill-row{gap:8px;margin:.5em 0}
.pill{font-size:clamp(11.5px,1.05vw,18px);padding:4px 11px}

.kpi-grid{gap:clamp(8px,1vw,18px);margin:.6em 0;grid-template-columns:repeat(auto-fit,minmax(min(148px,30%),1fr))}
.kpi{padding:clamp(9px,1.1vw,18px)}
.kpi strong{font-size:clamp(20px,2.1vw,36px)}
.kpi span{font-size:clamp(11.5px,1.05vw,18px)}

.table-wrap{margin:.6em 0}
table{font-size:clamp(11.5px,1.12vw,19px)}
th,td{padding:clamp(5px,.55vw,11px) clamp(7px,.75vw,15px)}

.codeblock{padding:clamp(8px,1vw,16px);margin:.6em 0}
.codeblock pre{font-size:clamp(11px,1.05vw,18px);line-height:1.5}

.self-check{padding:clamp(8px,1vw,16px);margin:.7em 0;font-size:clamp(12.5px,1.18vw,20px)}
.self-check ol{padding-left:19px}
.self-check li{margin:.3em 0}

.src{font-size:clamp(10.5px,.95vw,16px)}

figure.fig{margin:.5em 0;padding:clamp(5px,.6vw,11px)}
figure.fig figcaption{font-size:clamp(11px,1.02vw,17px);margin-top:.3em}
figure.fig img{max-height:34vh}
figure.fig.sm img{max-height:24vh}
figure.fig.lg img{max-height:46vh}

/* 演示控件紧凑化，便于单屏显示 */
.demo{margin:7px 0}
.demo-stage{max-height:40vh}
.demo-stage svg{max-height:40vh}
