/* ===== 《人在环上》 deck design system — base 1600x900, back-row legible ===== */
:root{
  --ttl:#2C5F7C;       /* title deep blue */
  --teal:#0D9488;      /* title deep teal */
  --pos:#059669;       /* positive emerald */
  --warn:#E11D48;      /* warning rose */
  --proc:#D97706;      /* process amber */
  --ink:#1f2933;       /* body ink */
  --sub:#52606d;       /* secondary */
  --line:#cbd5e1;      /* hairline */
  --bg:#FFFFFF;
  --soft:#f1f5f9;      /* soft panel */
  --softer:#f8fafc;
  --blue-bg:#eaf2f7; --teal-bg:#e6f5f3; --pos-bg:#e7f6ef; --warn-bg:#fdeaef; --proc-bg:#fdf2e3;
}
.reveal{ font-family:"Source Han Sans SC","Noto Sans CJK SC","PingFang SC","Microsoft YaHei",-apple-system,sans-serif; color:var(--ink); }
.reveal .slides{ text-align:left; }
.reveal .slides section{ background:var(--bg); }

/* slide shell: 5% margin, column */
.slide{ box-sizing:border-box; width:1600px; height:900px; padding:64px 80px; display:flex; flex-direction:column; }
.slide.center{ justify-content:center; align-items:center; text-align:center; }

/* chapter kicker */
.kicker{ font-size:26px; font-weight:700; letter-spacing:.06em; color:var(--teal); margin:0 0 10px; display:flex; align-items:center; gap:14px; }
.kicker::before{ content:""; width:46px; height:6px; border-radius:3px; background:var(--teal); }

/* titles */
.reveal .slide h1{ font-size:64px; line-height:1.18; font-weight:800; color:var(--ttl); margin:0 0 12px; }
.reveal .slide h2{ font-size:56px; line-height:1.2; font-weight:800; color:var(--ttl); margin:0 0 24px; }
.reveal .slide h3{ font-size:38px; font-weight:700; color:var(--ttl); margin:0 0 10px; }
.lead{ font-size:34px; line-height:1.5; color:var(--sub); margin:0 0 26px; max-width:1360px; }
.lead strong{ color:var(--ink); font-weight:800; }
.fill{ flex:1; }

/* generic emphasis text */
.big{ font-size:40px; line-height:1.45; font-weight:700; }
.note{ font-size:28px; color:var(--sub); line-height:1.5; }
.src{ font-size:24px; color:#8896a5; margin-top:auto; padding-top:14px; }
em.k{ font-style:normal; font-weight:800; color:var(--warn); }
em.kp{ font-style:normal; font-weight:800; color:var(--pos); }
em.kt{ font-style:normal; font-weight:800; color:var(--teal); }

/* grids */
.grid{ display:grid; gap:26px; }
.grid.g2{ grid-template-columns:1fr 1fr; }
.grid.g3{ grid-template-columns:1fr 1fr 1fr; }
.grid.g4{ grid-template-columns:repeat(4,1fr); }

/* cards */
.card{ background:var(--softer); border:2px solid var(--line); border-radius:20px; padding:30px 32px; }
.card .h{ font-size:32px; font-weight:800; color:var(--ttl); margin:0 0 12px; display:flex; align-items:center; gap:12px; }
.card .t{ font-size:30px; line-height:1.5; color:var(--ink); }
.card .n{ font-size:26px; color:var(--sub); line-height:1.45; }
.card.tealtop{ border-top:10px solid var(--teal); }
.card.bluetop{ border-top:10px solid var(--ttl); }
.card.postop{ border-top:10px solid var(--pos); background:var(--pos-bg); }
.card.warntop{ border-top:10px solid var(--warn); background:var(--warn-bg); }
.card.proctop{ border-top:10px solid var(--proc); background:var(--proc-bg); }
.card .idx{ width:54px;height:54px;border-radius:50%;background:var(--teal);color:#fff;font-size:30px;font-weight:800;display:flex;align-items:center;justify-content:center; }

/* two-side comparison */
.vs{ display:grid; grid-template-columns:1fr 92px 1fr; align-items:stretch; gap:0; }
.vs .side{ border-radius:20px; padding:30px 32px; }
.vs .side.l{ background:var(--soft); border:2px solid var(--line); }
.vs .side.r{ background:var(--teal-bg); border:2px solid #99d6cf; }
.vs .side .h{ font-size:32px; font-weight:800; margin:0 0 14px; }
.vs .side.l .h{ color:var(--sub); }
.vs .side.r .h{ color:var(--teal); }
.vs .side li{ font-size:29px; line-height:1.5; margin:0 0 10px; list-style:none; }
.vs .mid{ display:flex; align-items:center; justify-content:center; font-size:46px; color:var(--proc); font-weight:800; }

/* pipeline / flow */
.flow{ display:flex; align-items:stretch; gap:0; }
.flow .step{ flex:1; background:var(--softer); border:2px solid var(--line); border-radius:18px; padding:24px 22px; text-align:center; }
.flow .step .h{ font-size:30px; font-weight:800; color:var(--ttl); }
.flow .step .t{ font-size:25px; color:var(--sub); line-height:1.4; margin-top:8px; }
.flow .arrow{ display:flex; align-items:center; justify-content:center; width:60px; font-size:40px; color:var(--proc); font-weight:800; }
.flow.proc .step{ border-top:8px solid var(--proc); }

/* big numbers */
.bignums{ display:flex; gap:50px; justify-content:center; align-items:stretch; flex:1; }
.bignum{ flex:1; background:var(--softer); border-radius:24px; border:2px solid var(--line); padding:40px; text-align:center; display:flex; flex-direction:column; justify-content:center; }
.bignum .v{ font-size:120px; font-weight:900; line-height:1; color:var(--teal); }
.bignum .v.blue{ color:var(--ttl); }
.bignum .cap{ font-size:32px; color:var(--ink); margin-top:18px; font-weight:600; line-height:1.4; }
.bignum .who{ font-size:25px; color:var(--sub); margin-top:8px; }

/* traffic light */
.tl{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; flex:1; }
.tl .lane{ border-radius:20px; padding:28px 30px; display:flex; flex-direction:column; }
.tl .lane .dot{ width:46px;height:46px;border-radius:50%; margin-bottom:14px; }
.tl .green{ background:var(--pos-bg); border:2px solid #8fd6b6; }
.tl .green .dot{ background:var(--pos); }
.tl .green .h{ color:var(--pos); }
.tl .yellow{ background:var(--proc-bg); border:2px solid #f0c987; }
.tl .yellow .dot{ background:var(--proc); }
.tl .yellow .h{ color:var(--proc); }
.tl .red{ background:var(--warn-bg); border:2px solid #f0a0b4; }
.tl .red .dot{ background:var(--warn); }
.tl .red .h{ color:var(--warn); }
.tl .lane .h{ font-size:34px; font-weight:800; margin:0 0 10px; }
.tl .lane li{ font-size:27px; line-height:1.45; list-style:none; margin-bottom:8px; }

/* study / evidence card */
.study{ display:flex; gap:36px; align-items:center; flex:1; }
.study .figure{ flex:0 0 460px; background:var(--blue-bg); border-radius:24px; height:100%; display:flex; align-items:center; justify-content:center; }
.study .body{ flex:1; }
.study .stat{ font-size:88px; font-weight:900; color:var(--teal); line-height:1; }
.study .body li{ font-size:30px; line-height:1.55; list-style:none; margin-bottom:12px; padding-left:34px; position:relative; }
.study .body li::before{ content:"›"; position:absolute; left:0; color:var(--proc); font-weight:800; font-size:30px; }

/* chat bubbles */
.chat{ display:flex; flex-direction:column; gap:24px; flex:1; justify-content:center; }
.bubble{ max-width:1050px; padding:26px 32px; border-radius:22px; font-size:31px; line-height:1.5; }
.bubble .who{ font-size:25px; font-weight:800; margin-bottom:8px; opacity:.85; }
.bubble.a{ align-self:flex-start; background:var(--blue-bg); border:2px solid #a9cbdc; border-bottom-left-radius:6px; }
.bubble.b{ align-self:flex-end; background:var(--teal-bg); border:2px solid #99d6cf; border-bottom-right-radius:6px; }

/* layer stack */
.layers{ display:flex; flex-direction:column; gap:16px; flex:1; justify-content:center; }
.layer{ display:flex; align-items:center; gap:24px; background:var(--softer); border:2px solid var(--line); border-left:12px solid var(--teal); border-radius:16px; padding:22px 30px; }
.layer .no{ font-size:34px; font-weight:900; color:var(--teal); flex:0 0 56px; }
.layer .h{ font-size:32px; font-weight:800; color:var(--ttl); flex:0 0 360px; }
.layer .t{ font-size:27px; color:var(--sub); line-height:1.4; }

/* tension triangle / three forces */
.forces{ display:flex; gap:26px; flex:1; align-items:stretch; }
.force{ flex:1; border-radius:20px; padding:30px; display:flex; flex-direction:column; justify-content:center; text-align:center; }
.force .h{ font-size:34px; font-weight:800; margin-bottom:12px; }
.force .t{ font-size:28px; line-height:1.45; }
.force.a{ background:var(--teal-bg); border:2px solid #99d6cf; } .force.a .h{ color:var(--teal); }
.force.b{ background:var(--warn-bg); border:2px solid #f0a0b4; } .force.b .h{ color:var(--warn); }
.force.c{ background:var(--proc-bg); border:2px solid #f0c987; } .force.c .h{ color:var(--proc); }

/* hub / four element */
.tags{ display:flex; gap:18px; flex-wrap:wrap; }
.tag{ font-size:27px; font-weight:700; padding:12px 22px; border-radius:999px; background:var(--blue-bg); color:var(--ttl); border:2px solid #a9cbdc; }
.tag.t2{ background:var(--teal-bg); color:var(--teal); border-color:#99d6cf; }

/* question slide (visual silence) */
.qmark{ font-size:160px; font-weight:900; color:var(--soft); line-height:.8; margin-bottom:10px; }
.qtext{ font-size:62px; font-weight:800; color:var(--ttl); line-height:1.3; max-width:1280px; }
.qhint{ font-size:30px; color:var(--sub); margin-top:30px; }

/* cover */
.cover{ background:linear-gradient(135deg,#0D9488 0%,#2C5F7C 100%); color:#fff; }
.cover h1{ color:#fff !important; font-size:84px; line-height:1.15; }
.cover .sub{ font-size:38px; opacity:.95; margin-top:24px; }
.cover .forum{ font-size:30px; opacity:.85; letter-spacing:.1em; margin-bottom:30px; }
.cover .by{ font-size:32px; opacity:.95; margin-top:auto; }

/* closing statement */
.closing{ background:linear-gradient(135deg,#2C5F7C 0%,#0D9488 100%); color:#fff; }
.closing .big-statement{ font-size:80px; font-weight:900; line-height:1.25; }
.closing .tail{ font-size:36px; opacity:.92; margin-top:36px; line-height:1.5; max-width:1300px; }

/* statement (light) */
.statement h2{ font-size:62px; }
.statement .lead{ font-size:38px; }

/* fragment helper colors already via reveal */
.pill{ display:inline-block; font-size:24px; font-weight:700; padding:6px 16px; border-radius:8px; background:var(--teal-bg); color:var(--teal); }

/* dynamic stage canvas */
.stage{ position:relative; flex:1; }
.legend{ font-size:26px; color:var(--sub); margin-top:14px; }

/* ===== dynamic scene components (stepped reveals) ===== */
.dyn-note{ font-size:30px; color:var(--ink); font-weight:700; margin-top:18px; text-align:center; }
.dyn-note em{ font-style:normal; color:var(--teal); }
.aside{ font-size:25px; color:var(--sub); margin-top:10px; text-align:center; }

/* two-track comparison (chatbot line vs agent loop / gate vs accumulate) */
.tracks{ display:grid; grid-template-columns:1fr 1fr; gap:40px; flex:1; }
.track{ background:var(--softer); border:2px solid var(--line); border-radius:20px; padding:26px 28px; display:flex; flex-direction:column; }
.track .th{ font-size:32px; font-weight:800; margin:0 0 18px; }
.track.line .th{ color:var(--sub); }
.track.loop .th{ color:var(--teal); }
.node{ font-size:27px; line-height:1.35; padding:12px 18px; border-radius:14px; margin-bottom:12px; background:#fff; border:2px solid var(--line); }
.node.t{ border-color:#99d6cf; background:var(--teal-bg); }
.node.w{ border-color:#f0a0b4; background:var(--warn-bg); color:#9f1239; }
.node.p{ border-color:#8fd6b6; background:var(--pos-bg); }
.stamp{ align-self:center; margin-top:auto; font-size:34px; font-weight:900; color:var(--pos); border:4px solid var(--pos); border-radius:16px; padding:8px 26px; transform:rotate(-6deg); }
.loopback{ text-align:center; font-size:26px; color:var(--proc); font-weight:800; margin-top:6px; }

/* horizontal step flow with loopback (autoresearch) */
.ring{ display:flex; align-items:center; justify-content:center; gap:0; flex:1; }
.rnode{ width:180px; height:180px; border-radius:50%; background:var(--softer); border:3px solid var(--teal); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:12px; }
.rnode .rn{ font-size:26px; font-weight:800; color:var(--ttl); } .rnode .rt{ font-size:22px; color:var(--sub); margin-top:4px; }
.ring .arrow{ width:64px; text-align:center; font-size:40px; color:var(--proc); font-weight:800; }

/* layered stack reveal (multi-agent debate / four element) */
.dlayers{ display:flex; flex-direction:column; gap:20px; flex:1; justify-content:center; }
.dlayer{ display:flex; align-items:center; gap:24px; border-radius:18px; padding:24px 30px; background:var(--softer); border:2px solid var(--line); }
.dlayer .tag2{ flex:0 0 250px; font-size:30px; font-weight:800; color:var(--teal); }
.dlayer .agents{ display:flex; gap:16px; flex-wrap:wrap; }
.dlayer .ag{ font-size:25px; font-weight:700; padding:10px 18px; border-radius:12px; background:var(--blue-bg); border:2px solid #a9cbdc; color:var(--ttl); }

/* four-element svg scene sizing */
.scene{ flex:1; display:flex; align-items:center; justify-content:center; }
.scene svg{ width:100%; height:100%; max-height:560px; }

/* ===== specificity overrides so cover/closing gradients beat base section bg ===== */
.reveal .slides section.cover{ background:linear-gradient(135deg,#0D9488 0%,#2C5F7C 100%) !important; color:#fff; }
.reveal .slides section.cover .sub,.reveal .slides section.cover .by,.reveal .slides section.cover .forum{ color:#fff; }
.reveal .slides section.closing{ background:linear-gradient(135deg,#2C5F7C 0%,#0D9488 100%) !important; color:#fff; }
.reveal .slides section.closing .tail{ color:#fff; }

/* preserve proper-noun casing in titles (white theme forces uppercase) */
.reveal .slide h1, .reveal .slide h2, .reveal .slide h3, .reveal h1, .reveal h2{ text-transform:none !important; letter-spacing:normal; }
