
@font-face {
  font-family: "IBM Plex Mono";
  src: url("./fonts/ibm-plex-mono-500.woff2") format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("./fonts/ibm-plex-mono-600.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("./fonts/ibm-plex-mono-700.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

    /* === THEME === */
    :root {
      --stage-bg: #080808;
      --slide-bg: #11110f;
      --ink: #f1eee8;
      --muted: #a8a39a;
      --line: #373630;
      --orange: #ee5f27;
      --paper: #e9e3d8;
      --dark: #11110f;
      --ease: cubic-bezier(.16,1,.3,1);
    }
    * { margin: 0; padding: 0; box-sizing: border-box; }

    /* === FIXED 16:9 STAGE: MANDATORY BASE STYLES === */
    html, body { width:100%; height:100%; margin:0; overflow:hidden; background:var(--stage-bg,#000); }
    .deck-viewport { position:fixed; inset:0; overflow:hidden; background:var(--stage-bg,#000); }
    .deck-stage { position:absolute; left:0; top:0; width:1920px; height:1080px; overflow:hidden; transform-origin:0 0; background:var(--slide-bg,#fff); }
    .slide { position:absolute; inset:0; width:1920px; height:1080px; overflow:hidden; display:block; visibility:hidden; opacity:0; pointer-events:none; background:var(--slide-bg,#fff); }
    .slide.active,.slide.visible { visibility:visible; opacity:1; pointer-events:auto; z-index:1; }
    img,video,canvas,svg { max-width:100%; max-height:100%; }
    .deck-controls { position:fixed; left:50%; bottom:22px; transform:translateX(-50%); z-index:1000; }
    @media print {
      html,body{width:1920px;height:auto;overflow:visible;background:#fff}.deck-viewport{position:static;overflow:visible;background:#fff}.deck-stage{position:static;width:auto;height:auto;transform:none!important;background:none}.slide{position:relative;display:block!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important;width:1920px;height:1080px;break-after:page;page-break-after:always}.slide:last-child{break-after:auto;page-break-after:auto}.deck-controls{display:none!important}
    }
    @media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.2s!important}}

    /* === BASE TYPOGRAPHY & CHROME === */
    body { font-family:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC","Heiti SC",Arial,sans-serif; color:var(--ink); }
    .mono { font-family:"IBM Plex Mono",monospace; }
    .slide { padding:76px 88px 72px; }
    .slide::after { content:""; position:absolute; right:0; top:0; width:26px; height:100%; background:var(--orange); }
    .mast { display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); padding-bottom:21px; font:600 22px/1 "IBM Plex Mono",monospace; letter-spacing:.1em; color:var(--muted); }
    .mast b { color:var(--orange); }
    .page-no { position:absolute; right:66px; bottom:42px; z-index:2; font:700 20px/1 "IBM Plex Mono",monospace; color:#77746c; }
    .kicker { margin-top:54px; color:var(--orange); font:700 22px/1 "IBM Plex Mono",monospace; letter-spacing:.12em; }
    h2 { margin-top:18px; max-width:1530px; font-size:76px; line-height:1.13; letter-spacing:-.035em; font-weight:900; }
    .lead { margin-top:30px; max-width:1510px; color:#c6c1b8; font-size:30px; line-height:1.62; }
    .accent { color:var(--orange); }
    .rule { height:1px; background:var(--line); }
    .big-number { font:900 182px/.85 "PingFang SC","Microsoft YaHei","Noto Sans CJK SC","Heiti SC",Arial,sans-serif; letter-spacing:-.08em; }
    .small { color:var(--muted); font-size:24px; line-height:1.55; }
    [contenteditable="true"] { outline:2px dashed rgba(238,95,39,.8); outline-offset:7px; cursor:text; }

    /* === ENTRANCE MOTION === */
    .reveal { opacity:0; transform:translateY(34px); transition:opacity .65s var(--ease),transform .65s var(--ease); }
    .reveal-left { opacity:0; transform:translateX(-48px); transition:opacity .72s var(--ease),transform .72s var(--ease); }
    .reveal-scale { opacity:0; transform:scale(.94); transition:opacity .7s var(--ease),transform .7s var(--ease); }
    .visible .reveal,.visible .reveal-left,.visible .reveal-scale { opacity:1; transform:none; }
    .d1{transition-delay:.08s}.d2{transition-delay:.18s}.d3{transition-delay:.28s}.d4{transition-delay:.38s}.d5{transition-delay:.48s}.d6{transition-delay:.58s}
    .orange-wipe { position:absolute; right:0; top:0; width:500px; height:1080px; background:var(--orange); transform:translateX(100%); transition:transform .82s .08s cubic-bezier(.7,0,.2,1); }
    .visible .orange-wipe { transform:translateX(0); }

    /* === SLIDE 01: HEADLINE COVER === */
    .cover { padding:0; }
    .cover::after { display:none; }
    .cover .mast { position:absolute; left:88px; right:88px; top:72px; z-index:3; }
    .cover-num { position:absolute; right:61px; top:132px; z-index:2; color:#15130f; font:900 420px/.78 "PingFang SC","Microsoft YaHei","Noto Sans CJK SC","Heiti SC",Arial,sans-serif; letter-spacing:-.1em; }
    .cover-title { position:absolute; left:82px; top:214px; z-index:3; width:1480px; font-size:128px; line-height:1.05; letter-spacing:-.06em; font-weight:900; }
    .cover-title span { display:block; }
    .cover-sub { position:absolute; left:91px; bottom:154px; z-index:3; width:1210px; border-top:1px solid var(--line); padding-top:25px; font-size:35px; color:#c8c3bb; }
    .cover-by { position:absolute; right:62px; bottom:67px; z-index:3; width:375px; padding-top:16px; border-top:2px solid #12100d; color:#12100d; font:600 23px/1.75 "IBM Plex Mono",monospace; }
    .cover-by b { font:900 32px/1.5 "PingFang SC","Microsoft YaHei","Noto Sans CJK SC","Heiti SC",Arial,sans-serif; }

    /* === SLIDE 02: CORE PREMISE === */
    .split-premise { display:grid; grid-template-columns:1.12fr .88fr; gap:86px; margin-top:70px; align-items:end; }
    .quote-block { border-left:14px solid var(--orange); padding:16px 0 20px 42px; font-size:62px; line-height:1.35; letter-spacing:-.03em; font-weight:900; }
    .language-box { background:var(--paper); color:var(--dark); padding:45px 50px; min-height:430px; }
    .language-box h3 { font-size:28px; letter-spacing:.08em; }
    .language-row { display:grid; grid-template-columns:150px 1fr; gap:26px; border-top:1px solid rgba(17,17,15,.22); margin-top:26px; padding-top:25px; }
    .language-row b { color:var(--orange); font-size:27px; }
    .language-row p { font-size:28px; line-height:1.5; }

    /* === SLIDE 03: CAPITAL TYPES === */
    .capital-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:54px; border:1px solid var(--line); }
    .capital { min-height:560px; padding:38px 32px 34px; border-right:1px solid var(--line); position:relative; }
    .capital:last-child { border-right:0; }
    .capital .index { font:700 20px/1 "IBM Plex Mono",monospace; color:var(--orange); }
    .capital h3 { margin-top:58px; font-size:42px; line-height:1.14; }
    .capital .want { margin-top:18px; color:var(--orange); font-size:25px; font-weight:700; }
    .capital p { margin-top:32px; color:#c7c2b9; font-size:25px; line-height:1.58; }
    .capital .cycle { position:absolute; left:32px; bottom:34px; right:32px; padding-top:18px; border-top:1px solid var(--line); font:600 21px/1.4 "IBM Plex Mono",monospace; color:#8c887f; }

    /* === SLIDE 04: THREE MISMATCHES === */
    .three-bars { margin-top:48px; display:flex; flex-direction:column; gap:16px; }
    .bar { display:grid; grid-template-columns:150px 520px 1fr; min-height:155px; align-items:center; border-top:1px solid var(--line); padding:22px 0; }
    .bar .n { color:var(--orange); font:700 72px/1 "IBM Plex Mono",monospace; }
    .bar h3 { font-size:34px; line-height:1.28; }
    .bar p { color:#aaa69e; font-size:25px; line-height:1.55; padding-left:42px; border-left:1px solid var(--line); }

    /* === SLIDE 05: DECISION PROCESS === */
    .process { margin-top:72px; display:grid; grid-template-columns:repeat(6,1fr); position:relative; }
    .process::before { content:""; position:absolute; left:78px; right:78px; top:55px; height:2px; background:linear-gradient(90deg,var(--orange),#5b5952); }
    .step { position:relative; padding:0 25px; text-align:center; }
    .step .dot { width:34px; height:34px; margin:39px auto 34px; border:8px solid var(--slide-bg); border-radius:50%; background:var(--orange); box-shadow:0 0 0 2px var(--orange); }
    .step h3 { font-size:29px; }
    .step p { margin-top:19px; color:#9f9b93; font-size:23px; line-height:1.5; }
    .process-note { margin-top:72px; padding:28px 34px; border:1px solid var(--line); font-size:28px; color:#c9c4bb; }

    /* === SLIDE 06: FIRST TWO PREP STEPS === */
    .prep-grid { display:grid; grid-template-columns:.84fr 1.16fr; gap:30px; margin-top:50px; }
    .prep-card { min-height:570px; border:1px solid var(--line); padding:40px 42px; }
    .prep-card.orange-card { background:var(--orange); border-color:var(--orange); color:#15110e; }
    .prep-card .tag { font:700 20px/1 "IBM Plex Mono",monospace; letter-spacing:.08em; }
    .prep-card h3 { margin-top:35px; font-size:43px; }
    .question-list { margin-top:30px; display:flex; flex-direction:column; gap:22px; }
    .question-list p { padding-top:20px; border-top:1px solid currentColor; font-size:27px; line-height:1.45; }
    .map-list { margin-top:28px; display:grid; grid-template-columns:1fr 1fr; gap:19px 30px; }
    .map-list p { border-top:1px solid var(--line); padding-top:16px; color:#c2bdb5; font-size:25px; line-height:1.4; }
    .batch { margin-top:38px; display:flex; gap:12px; }
    .batch span { flex:1; padding:19px 16px; background:#24231f; color:#bdb8b0; font-size:22px; text-align:center; }
    .batch span:last-child { background:var(--paper); color:var(--dark); font-weight:700; }

    /* === SLIDE 07: MATERIALS & REFERRAL === */
    .materials { margin-top:54px; display:grid; grid-template-columns:1fr 1fr 1fr; gap:22px; }
    .material { min-height:360px; padding:38px; border-top:8px solid var(--orange); background:#1b1a17; }
    .material h3 { font-size:38px; }
    .material .use { margin-top:16px; color:var(--orange); font-size:22px; font-weight:700; }
    .material p { margin-top:32px; color:#bbb6ad; font-size:25px; line-height:1.5; }
    .referral { margin-top:24px; display:grid; grid-template-columns:470px 1fr; gap:30px; align-items:center; background:var(--paper); color:var(--dark); padding:30px 38px; }
    .referral h3 { font-size:37px; }
    .referral p { font-size:26px; line-height:1.5; }

    /* === SLIDE 08: PITFALLS === */
    .pitfalls { margin-top:56px; border-top:1px solid var(--line); }
    .pit { display:grid; grid-template-columns:135px 610px 1fr; min-height:125px; align-items:center; border-bottom:1px solid var(--line); }
    .pit .x { color:var(--orange); font:700 38px/1 "IBM Plex Mono",monospace; }
    .pit h3 { font-size:30px; }
    .pit p { color:#aaa69d; font-size:24px; line-height:1.45; }

    /* === SLIDE 09: SELF-ASSESSMENT === */
    .score-grid { margin-top:42px; display:grid; grid-template-columns:repeat(5,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
    .score-item { min-height:248px; padding:27px 26px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
    .score-item h3 { font-size:27px; }
    .score-item p { margin-top:18px; color:#aaa69d; font-size:21px; line-height:1.45; }
    .score-item b { display:block; margin-top:22px; color:var(--orange); font:700 19px/1.3 "IBM Plex Mono",monospace; }

    /* === SLIDE 10: SCORE & CLOSE === */
    .close-grid { display:grid; grid-template-columns:570px 1fr; gap:86px; margin-top:65px; }
    .score-bands { display:flex; flex-direction:column; gap:12px; }
    .band { min-height:124px; padding:24px 28px; background:#1c1b18; display:grid; grid-template-columns:125px 1fr; align-items:center; }
    .band strong { color:var(--orange); font:700 31px/1 "IBM Plex Mono",monospace; }
    .band h3 { font-size:27px; }
    .band p { margin-top:5px; color:#9d9990; font-size:20px; }
    .closing-quote { border-left:14px solid var(--orange); padding:22px 0 22px 48px; font-size:58px; line-height:1.35; letter-spacing:-.035em; font-weight:900; }
    .closing-note { margin-top:36px; color:#aaa69e; font-size:27px; line-height:1.6; }

    /* === FULL COURSE SHARED LAYOUTS === */
    .section-cover { padding:0; }
    .section-cover::after { display:none; }
    .section-cover .mast { position:absolute; left:88px; right:88px; top:72px; z-index:3; }
    .section-cover .cover-num { font-size:390px; }
    .section-cover .cover-title { top:230px; width:1450px; font-size:105px; }
    .section-cover .cover-sub { max-width:1240px; }
    .course-title { position:absolute; left:82px; top:208px; z-index:3; width:1410px; font-size:132px; line-height:1.03; letter-spacing:-.065em; font-weight:900; }
    .course-title .line { display:block; }
    .course-meta { position:absolute; left:91px; bottom:148px; z-index:3; width:1100px; border-top:1px solid var(--line); padding-top:28px; color:#c8c3bb; font-size:34px; line-height:1.55; }
    .credential-grid { margin-top:58px; display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); }
    .credential { min-height:410px; padding:38px 34px; border-right:1px solid var(--line); }
    .credential:last-child { border-right:0; }
    .credential .value { color:var(--orange); font:900 72px/1 "IBM Plex Mono",monospace; }
    .credential h3 { margin-top:34px; font-size:34px; }
    .credential p { margin-top:22px; color:#aaa69d; font-size:23px; line-height:1.55; }
    .cards-3,.cards-4,.cards-5 { display:grid; gap:20px; margin-top:48px; }
    .cards-3 { grid-template-columns:repeat(3,1fr); }
    .cards-4 { grid-template-columns:repeat(4,1fr); }
    .cards-5 { grid-template-columns:repeat(5,1fr); }
    .cards-5 .info-card { min-height:430px; padding:30px 26px; }
    .cards-5 .info-card h3 { font-size:30px; }
    .cards-5 .info-card p { font-size:21px; }
    .info-card { min-height:360px; padding:34px 32px; border:1px solid var(--line); background:#171714; }
    .info-card.orange { background:var(--orange); color:#15110e; border-color:var(--orange); }
    .info-card .idx { color:var(--orange); font:700 20px/1 "IBM Plex Mono",monospace; }
    .info-card.orange .idx { color:#15110e; }
    .info-card h3 { margin-top:36px; font-size:35px; line-height:1.25; }
    .info-card p { margin-top:24px; color:#aaa69d; font-size:23px; line-height:1.55; }
    .info-card.orange p { color:#2b211b; }
    .statement { margin-top:64px; border-left:14px solid var(--orange); padding:18px 0 18px 46px; max-width:1510px; font-size:62px; line-height:1.35; font-weight:900; letter-spacing:-.035em; }
    .statement-note { margin-top:34px; max-width:1420px; color:#aaa69d; font-size:27px; line-height:1.6; }
    .flow-steps { margin-top:56px; display:grid; grid-template-columns:repeat(5,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
    .flow-step { min-height:370px; padding:31px 28px; border-right:1px solid var(--line); }
    .flow-step:last-child { border-right:0; }
    .flow-step .n { color:var(--orange); font:700 34px/1 "IBM Plex Mono",monospace; }
    .flow-step h3 { margin-top:70px; font-size:32px; line-height:1.3; }
    .flow-step p { margin-top:20px; color:#aaa69d; font-size:22px; line-height:1.5; }
    .tool-table { width:100%; margin-top:40px; border-collapse:collapse; table-layout:fixed; }
    .tool-table th,.tool-table td { border:1px solid var(--line); padding:20px 22px; text-align:left; font-size:22px; line-height:1.4; vertical-align:top; }
    .tool-table th { background:var(--orange); color:#16110d; font-weight:900; }
    .tool-table td:first-child { color:var(--ink); font-weight:700; }
    .tool-table td { color:#aaa69d; }
    .quote-stack { margin-top:64px; display:flex; flex-direction:column; gap:26px; }
    .quote-line { padding:28px 34px 28px 42px; border-left:9px solid var(--orange); background:#181815; font-size:34px; line-height:1.45; font-weight:700; }
    .chapter-index { margin-top:46px; display:grid; grid-template-columns:repeat(5,1fr); gap:14px; }
    .chapter-index .item { min-height:150px; padding:22px; border:1px solid var(--line); }
    .chapter-index .item b { color:var(--orange); font:700 19px/1 "IBM Plex Mono",monospace; }
    .chapter-index .item p { margin-top:18px; font-size:23px; line-height:1.35; }
    .summary-grid { margin-top:56px; display:grid; grid-template-columns:1fr 1fr; gap:32px; }
    .summary-panel { min-height:470px; padding:42px; border:1px solid var(--line); }
    .summary-panel.orange { background:var(--orange); color:#15110e; border-color:var(--orange); }
    .summary-panel h3 { font-size:38px; }
    .summary-panel ul { margin-top:30px; padding-left:28px; display:flex; flex-direction:column; gap:19px; }
    .summary-panel li { font-size:25px; line-height:1.45; }
    .chapter-menu { position:fixed; inset:0; z-index:5000; display:none; background:rgba(5,5,5,.94); color:#f1eee8; padding:54px; overflow:auto; backdrop-filter:blur(18px); }
    .chapter-menu.open { display:block; }
    .chapter-menu-inner { max-width:1220px; margin:0 auto; }
    .chapter-menu h2 { margin:0 0 34px; font-size:52px; }
    .chapter-links { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
    .chapter-links button { padding:22px 24px; border:1px solid #373630; background:#161613; color:#eee9df; text-align:left; font-size:19px; cursor:pointer; }
    .chapter-links button:hover { background:var(--orange); color:#111; border-color:var(--orange); }
    .menu-close { position:fixed; top:28px; right:30px; width:48px; height:48px; border:1px solid #555; background:#111; color:#fff; border-radius:50%; font-size:24px; cursor:pointer; }

    /* === OUTSIDE-STAGE CONTROLS === */
    .hud { position:fixed; left:50%; bottom:18px; transform:translateX(-50%); z-index:1000; display:flex; align-items:center; gap:12px; padding:9px 13px; border:1px solid rgba(255,255,255,.15); border-radius:16px; background:rgba(8,8,8,.82); color:#d7d2ca; backdrop-filter:blur(16px); box-shadow:0 14px 42px rgba(0,0,0,.38); font:600 13px/1 "IBM Plex Mono",monospace; }
    .hud button { height:34px; min-width:34px; padding:0 11px; border:1px solid rgba(255,255,255,.14); border-radius:10px; background:rgba(255,255,255,.07); color:inherit; cursor:pointer; }
    .hud button:hover { background:var(--orange); color:#111; border-color:var(--orange); }
    .progress { width:140px; height:3px; background:#393832; overflow:hidden; }
    .progress span { display:block; width:10%; height:100%; background:var(--orange); transition:width .3s ease; }
    .edit-hotzone { position:fixed; top:0; left:0; width:80px; height:80px; z-index:10000; cursor:pointer; }
    .edit-toggle { position:fixed; top:14px; left:14px; z-index:10001; width:42px; height:42px; border:1px solid rgba(255,255,255,.18); border-radius:11px; background:rgba(8,8,8,.8); color:#fff; opacity:0; pointer-events:none; transition:opacity .3s ease; cursor:pointer; }
    .edit-toggle.show,.edit-toggle.active { opacity:1; pointer-events:auto; }
  