/**
 * Layout slide deck Elnusa — dipakai template + deck/sesi-*.html
 * Token: tokens.css
 */
* { box-sizing: border-box; }
  html, body {
    margin: 0;
    height: 100%;
    background: var(--stage-bg);
    color: var(--ink);
    font-family: var(--font-sans);
  }

  /* Bingkai PowerPoint 16:9 — 1920 × 1080 */
  .stage {
    width: 1920px;
    height: 1080px;
    position: fixed;
    left: 50%;
    top: 50%;
    transform-origin: center center;
  }
  .slide {
    display: none;
    position: relative;
    width: 1920px;
    height: 1080px;
    overflow: hidden;
    padding: var(--slide-pad-top) var(--slide-pad-x) 0;
    grid-template-rows: minmax(0, 1fr) auto;
    row-gap: 0;
  }
  /* Slide isi (02–05 + kerangka sesi): celah konten–footer & header–body seragam */
  .slide.layout-lineart,
  .slide.layout-bisnis,
  .slide.layout-isi,
  .slide.layout-md-embed,
  .slide.layout-discovery,
  .slide.layout-industri-adopsi,
  .slide.layout-kesiapan,
  .slide.layout-evolusi-ai,
  .slide.layout-template,
  .slide.layout-sesi,
  .slide.layout-bg,
  .slide.layout-judul-sesi,
  .slide.layout-workflow,
  .slide.layout-dev-pipeline,
  .slide.layout-agentic-hub {
    row-gap: var(--slide-main-foot-gap);
  }
  .slide.active { display: grid; }
  .slide::before {
    content: "";
    position: absolute;
    z-index: 4;
    top: 0;
    left: 0;
    right: 0;
    height: 10px;
    background: linear-gradient(
      90deg,
      var(--epn-blue) 0 46%,
      var(--epn-red) 46% 74%,
      var(--epn-green) 74% 100%
    );
  }

  .slide-main {
    min-height: 0;
    overflow: hidden;
  }
  /* Isi & template: header kunci + body isi di tengah */
  .layout-lineart .slide-main,
  .layout-bisnis .slide-main,
  .layout-isi .slide-main,
  .layout-md-embed .slide-main,
  .layout-discovery .slide-main,
  .layout-workflow .slide-main,
  .layout-dev-pipeline .slide-main,
  .layout-agentic-hub .slide-main,
  .layout-industri-adopsi .slide-main,
  .layout-kesiapan .slide-main,
  .layout-evolusi-ai .slide-main,
  .layout-template .slide-main,
  .layout-sesi .slide-main,
  .layout-bg .slide-main {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    gap: var(--slide-header-body-gap);
  }
  .layout-evolusi-ai .slide-sub {
    max-width: 100%;
  }
  .layout-lineart .slide-body,
  .layout-bisnis .slide-body,
  .layout-isi .slide-body,
  .layout-md-embed .slide-body,
  .layout-discovery .slide-body,
  .layout-workflow .slide-body,
  .layout-dev-pipeline .slide-body,
  .layout-agentic-hub .slide-body,
  .layout-industri-adopsi .slide-body,
  .layout-kesiapan .slide-body,
  .layout-evolusi-ai .slide-body,
  .layout-template .slide-body,
  .layout-sesi .slide-body,
  .layout-bg .slide-body {
    padding-bottom: var(--slide-body-pad-bottom);
  }
  /* Depan & akhir: main bebas, blok konten vertikal di tengah */
  .slide-main--free {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: stretch;
    position: relative;
  }
  .slide-stack-center {
    display: flex;
    flex-direction: column;
    gap: var(--stack-gap-free);
    width: 100%;
    min-height: 0;
  }
  .slide-header--free {
    height: auto;
    max-height: none;
    overflow: visible;
  }

  /* Judul & sub — posisi sama di semua slide */
  .slide-header {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    margin: 0;
    padding: 0;
  }
  .slide-main > .slide-header:not(.slide-header--free) {
    height: auto;
    max-height: none;
    overflow: visible;
  }
  .slide-header .eyebrow {
    margin: 0 0 var(--hdr-gap-eyebrow);
    font-size: var(--text-eyebrow-light);
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
  }
  .slide-header--light .eyebrow { color: var(--teal-deep); }
  .slide-header--dark .eyebrow {
    color: var(--lime);
    letter-spacing: .16em;
    font-size: var(--text-eyebrow-dark);
  }
  .slide-header .slide-title {
    margin: 0 0 var(--hdr-gap-title);
    font-size: var(--text-slide-title);
    line-height: 1.06;
    letter-spacing: -.03em;
    font-weight: 740;
    max-width: var(--content-max-wide);
  }
  .slide-header--light .slide-title { color: var(--epn-blue-deep); }
  .slide-header--dark .slide-title { color: var(--white); }
  .slide-header .slide-title--cover {
    font-size: var(--text-cover-title);
    line-height: 1.02;
    letter-spacing: -.04em;
    max-width: var(--content-max-cover-title);
  }
  .slide-header .slide-title--cover span {
    display: block;
    color: var(--epn-green);
  }
  .slide-header .slide-sub {
    margin: 0;
    font-size: var(--text-slide-sub);
    line-height: 1.35;
    max-width: var(--content-max-sub);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .slide-header--light .slide-sub { color: var(--muted); }
  .slide-header--dark .slide-sub { color: var(--on-dark-secondary); }

  .slide-body {
    min-height: 0;
    overflow: hidden;
  }

  /* Footer — band min 92px, 36px dari bawah; jarak ke konten = --slide-main-foot-gap di slide isi */
  .slide-foot {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 24px;
    min-height: var(--slide-foot-h);
    padding-top: var(--slide-foot-pad-top);
    padding-bottom: var(--slide-foot-bottom);
    font-size: var(--text-foot);
    line-height: 1.35;
  }
  .slide-foot .kiri {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
    max-width: var(--content-max-wide);
  }
  .slide-foot .footer-lineart {
    width: 154px;
    height: 66px;
    margin-left: auto;
    object-fit: contain;
    opacity: .72;
  }
  .slide-foot--dark .footer-lineart {
    opacity: .9;
    filter: drop-shadow(0 2px 3px rgba(0, 0, 0, .12));
  }
  .slide-foot .nomor {
    flex-shrink: 0;
    font-variant-numeric: tabular-nums;
    min-width: 2.5ch;
    text-align: right;
  }
  .slide-foot--dark {
    color: var(--on-dark-foot);
    border-top: 1px solid var(--foot-border-dark);
  }
  .slide-foot--light {
    color: var(--muted);
    border-top: 2px solid var(--epn-blue);
  }
  .slide-foot--light strong { color: var(--ink); font-weight: 680; }
  .copy {
    font-size: var(--text-foot-copy);
    letter-spacing: .02em;
    color: var(--muted);
  }
  .slide-foot--dark .copy { color: var(--on-dark-foot-copy); }
  .slide-foot--light .copy { color: var(--muted); font-weight: 500; }

  /* Catatan history (posisi bebas — biasanya di slide-body) */
  .slide-history-note {
    margin: 0;
    font-size: var(--text-slide-history-note);
    line-height: 1.42;
    font-weight: 500;
    color: var(--muted);
  }
  .slide-history-note--center { text-align: center; }

  /* Quote — slot tetap langsung di atas footer (sibling slide-main, bukan di dalam body) */
  .slide-quote {
    margin: var(--slide-quote-main-gap) 0 var(--slide-quote-foot-gap);
    padding: var(--slide-quote-pad-y) var(--slide-quote-pad-x);
    background: var(--epn-blue-deep);
    color: var(--white);
    border: none;
    border-radius: 15px;
    font-size: var(--text-slide-quote);
    font-weight: 700;
    line-height: 1.45;
    text-align: center;
    width: 100%;
  }
  .slide-quote p {
    margin: 0;
  }
  .slide:has(> .slide-quote) {
    grid-template-rows: minmax(0, 1fr) auto auto;
    row-gap: 0;
  }

  .nav {
    position: fixed;
    z-index: 5;
    right: 28px;
    bottom: 22px;
    display: flex;
    gap: 8px;
    align-items: center;
    color: var(--white);
    font-size: 13px;
    letter-spacing: .04em;
  }
  .nav button {
    width: 36px;
    height: 36px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.25);
    background: transparent;
    color: white;
    cursor: pointer;
    font-size: 16px;
  }
  .nav button.nav-btn--wide {
    width: auto;
    min-width: 36px;
    padding: 0 14px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  .nav button:disabled {
    opacity: .45;
    cursor: wait;
  }
  .export-overlay {
    display: none;
    position: fixed;
    z-index: 10000;
    inset: 0;
    align-items: center;
    justify-content: center;
    background: rgba(7, 16, 24, .72);
    color: var(--white);
    font-size: 18px;
    letter-spacing: .04em;
  }
  body.is-pdf-export .export-overlay {
    display: flex;
  }
  body.is-pdf-export .nav {
    pointer-events: none;
    opacity: .35;
  }
  body.is-pdf-export .stage {
    transform: none !important;
    left: 0 !important;
    top: 0 !important;
  }
  body.is-pdf-export .slide {
    display: none !important;
  }
  body.is-pdf-export .slide.active {
    display: grid !important;
  }

  /* ——— 1. Halaman depan ——— */
  .layout-depan {
    background: var(--gradient-depan);
    color: var(--white);
  }
  .depan-grid {
    display: grid;
    grid-template-columns: 1fr 0.88fr;
    gap: var(--gap-depan-cols);
    align-items: start;
  }
  .depan-meta-wrap {
    display: flex;
    align-items: flex-end;
    min-height: 0;
  }
  .meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap-meta);
  }
  .meta i {
    font-style: normal;
    padding: 10px 16px;
    border-radius: var(--radius-pill);
    border: 1px solid var(--glass-border-strong);
    background: var(--glass-fill);
    font-size: var(--text-meta-pill);
    font-weight: 650;
  }
  .tangga {
    display: flex;
    flex-direction: column;
    gap: var(--gap-tangga);
    margin-bottom: 8px;
  }
  .tangga article {
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: 18px;
    align-items: center;
    padding: 18px 22px;
    border-radius: var(--radius-card-md);
    background: var(--glass-fill);
    border: 1px solid var(--glass-border);
  }
  .tangga b {
    font-size: var(--text-tangga-num);
    color: var(--lime);
  }
  .tangga strong {
    display: block;
    font-size: var(--text-tangga-title);
    font-weight: 720;
  }
  .tangga span {
    display: block;
    margin-top: 4px;
    font-size: var(--text-tangga-sub);
    color: var(--on-dark-muted);
  }

  /* ——— 2. Line-art konteks bisnis ——— */
  .layout-lineart {
    background: var(--paper);
    color: var(--ink);
  }
  .lineart-grid {
    height: 100%;
    min-height: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
  }
  .lineart-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
    border-radius: var(--radius-card-md);
    background: var(--card);
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
  }
  .lineart-card::before {
    content: "";
    height: 6px;
    flex-shrink: 0;
    background: var(--tone, var(--epn-blue));
  }
  .lineart-card img {
    display: block;
    width: 100%;
    height: 70%;
    padding: 34px 26px 16px;
    object-fit: contain;
  }
  .lineart-card__label {
    flex: 1;
    padding: 20px 24px 24px;
    border-top: 1px solid var(--line);
  }
  .lineart-card__label b {
    display: block;
    margin-bottom: 7px;
    color: var(--epn-blue-deep);
    font-size: 24px;
    line-height: 1.15;
  }
  .lineart-card__label span {
    display: block;
    color: var(--muted);
    font-size: 17px;
    line-height: 1.4;
  }

  /* ——— 3. Konteks bisnis Elnusa Petrofin ——— */
  .layout-bisnis {
    background: var(--paper);
    color: var(--ink);
  }
  .business-grid {
    height: 100%;
    min-height: 0;
    display: grid;
    grid-template-columns: 1.08fr 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 16px;
  }
  .business-card {
    position: relative;
    min-height: 0;
    overflow: hidden;
    border-radius: var(--radius-card-md);
    background: var(--ink);
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
  }
  .business-card--hero {
    grid-row: 1 / span 2;
  }
  .business-card img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .business-card::after {
    content: "";
    position: absolute;
    inset: 45% 0 0;
    background: linear-gradient(transparent, rgba(0, 86, 143, .94));
    pointer-events: none;
  }
  .business-card__label {
    position: absolute;
    z-index: 1;
    left: 20px;
    right: 20px;
    bottom: 17px;
    color: white;
  }
  .business-card__label b {
    display: block;
    margin-bottom: 4px;
    font-size: 20px;
    line-height: 1.15;
    color: white;
  }
  .business-card--hero .business-card__label b {
    font-size: 28px;
  }
  .business-card__label span {
    display: block;
    font-size: 14px;
    line-height: 1.3;
    color: rgba(255, 255, 255, .86);
  }
  .business-card__tone {
    position: absolute;
    z-index: 2;
    top: 0;
    left: 0;
    width: 100%;
    height: 6px;
    background: var(--tone, var(--epn-blue));
  }
  .cover-logo {
    position: absolute;
    top: 0;
    right: 0;
    width: 330px;
    height: 78px;
    object-fit: contain;
    padding: 14px 18px;
    border-radius: 14px;
    background: rgba(255, 255, 255, .96);
  }

  /* ——— 2. Halaman isi ——— */
  .layout-isi {
    background: var(--paper);
    color: var(--ink);
  }
  .isi-body {
    height: 100%;
    align-content: center;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--gap-isi-cards);
  }
  .layout-isi--2 .isi-body {
    grid-template-columns: repeat(2, 1fr);
  }
  .layout-isi--3 .isi-body {
    grid-template-columns: repeat(3, 1fr);
  }
  .layout-isi--2 .isi-body article,
  .layout-isi--3 .isi-body article {
    min-height: 380px;
  }
  /* Sesi 2 slide 04 · tentukan aplikasi | buka Cursor (foto EPN + panel) */
  .layout-isi--app-cursor .slide-header--compact {
    margin-bottom: 2px;
  }
  .layout-isi--app-cursor .slide-header--compact .slide-title {
    margin-bottom: 4px;
    font-size: clamp(28px, 2.6vw, 36px);
  }
  .layout-isi--app-cursor .slide-header--compact .slide-sub {
    max-width: 920px;
  }
  .layout-isi--app-cursor .slide-body {
    min-height: 0;
    display: flex;
  }
  .layout-isi--app-cursor .isi-app-cursor-split {
    grid-template-columns: 1fr 1fr;
    align-content: stretch;
    align-items: stretch;
    height: 100%;
    gap: 28px;
  }
  .layout-isi--app-cursor .app-cursor-col {
    display: flex;
    flex-direction: column;
    min-height: 0;
    min-width: 0;
  }
  .layout-isi--app-cursor .app-cursor-col__label {
    margin: 0 0 10px 4px;
    font-size: var(--text-card-kicker);
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--teal-deep);
  }
  .layout-isi--app-cursor .app-cursor-hero {
    position: relative;
    flex: 1;
    min-height: 520px;
    margin: 0;
    border-radius: var(--radius-card-lg);
    overflow: hidden;
    box-shadow: var(--shadow);
    border: 1px solid var(--line);
    background: var(--ink);
  }
  .layout-isi--app-cursor .app-cursor-hero::before {
    content: "";
    position: absolute;
    z-index: 2;
    top: 0;
    left: 0;
    right: 0;
    height: 8px;
    background: linear-gradient(
      90deg,
      var(--epn-blue) 0 46%,
      var(--epn-red) 46% 74%,
      var(--epn-green) 74% 100%
    );
  }
  .layout-isi--app-cursor .app-cursor-hero > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 32%;
  }
  .layout-isi--app-cursor .app-cursor-hero--cursor-brand {
    background: #0a0a0a;
  }
  .layout-isi--app-cursor .app-cursor-hero--cursor-brand > img {
    object-fit: contain;
    object-position: center;
    padding: 10% 12%;
    box-sizing: border-box;
  }
  .layout-isi--app-cursor .app-cursor-hero--cursor-brand::after {
    display: none;
  }
  .layout-isi--app-cursor .app-cursor-hero::after {
    content: "";
    position: absolute;
    z-index: 1;
    inset: 38% 0 0;
    background: linear-gradient(transparent, rgba(0, 86, 143, .94));
    pointer-events: none;
  }
  .layout-isi--app-cursor .app-cursor-hero__cap {
    position: absolute;
    z-index: 3;
    left: 22px;
    right: 22px;
    bottom: 22px;
    margin: 0;
    color: #fff;
    text-shadow: 0 1px 12px rgba(0, 0, 0, .35);
  }
  .layout-isi--app-cursor .app-cursor-hero__cap b {
    display: block;
    margin-bottom: 6px;
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.15;
  }
  .layout-isi--app-cursor .app-cursor-hero__cap span {
    display: block;
    font-size: 15px;
    line-height: 1.35;
    color: rgba(255, 255, 255, .92);
  }
  /* Sesi 2 slide 05 · embed markdown ide aplikasi (scroll) */
  .layout-md-embed .slide-header--compact .slide-title {
    font-size: clamp(28px, 2.6vw, 36px);
  }
  .layout-md-embed .slide-body {
    min-height: 0;
    display: flex;
  }
  .layout-md-embed .md-embed-scroll {
    flex: 1;
    min-height: 0;
    max-height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 20px 26px 24px;
    border: 1px solid var(--line);
    border-radius: var(--radius-card-lg);
    background: var(--card);
    box-shadow: var(--shadow);
    font-size: 17px;
    line-height: 1.48;
    color: var(--ink-soft);
    -webkit-overflow-scrolling: touch;
  }
  .layout-md-embed .md-embed-scroll:focus {
    outline: 2px solid var(--epn-blue);
    outline-offset: 2px;
  }
  .layout-md-embed .md-embed-scroll:focus:not(:focus-visible) {
    outline: none;
  }
  .layout-md-embed .md-embed-loading {
    margin: 0;
    color: var(--muted);
    font-style: italic;
  }
  .layout-md-embed .markdown-body > :first-child {
    margin-top: 0;
  }
  .layout-md-embed .markdown-body h1 {
    display: none;
  }
  .layout-md-embed .markdown-body h2 {
    margin: 1.25em 0 0.4em;
    font-size: 22px;
    font-weight: 800;
    color: var(--epn-blue-deep);
    letter-spacing: -.02em;
  }
  .layout-md-embed .markdown-body h2:first-of-type {
    margin-top: 0;
  }
  .layout-md-embed .markdown-body h3 {
    margin: 1em 0 0.35em;
    font-size: 19px;
    font-weight: 800;
    color: var(--teal-deep);
  }
  .layout-md-embed .markdown-body h4 {
    margin: 0.85em 0 0.3em;
    font-size: 17px;
    font-weight: 700;
    color: var(--ink);
  }
  .layout-md-embed .markdown-body p,
  .layout-md-embed .markdown-body li {
    font-size: 16px;
    line-height: 1.45;
  }
  .layout-md-embed .markdown-body ul {
    margin: 0.35em 0 0.65em;
    padding-left: 1.2em;
  }
  .layout-md-embed .markdown-body hr {
    margin: 1em 0;
    border: none;
    border-top: 1px solid var(--line);
  }
  .layout-md-embed .markdown-body table {
    width: 100%;
    margin: 0.5em 0 1em;
    border-collapse: collapse;
    font-size: 15px;
    line-height: 1.4;
  }
  .layout-md-embed .markdown-body th,
  .layout-md-embed .markdown-body td {
    border: 1px solid var(--line);
    padding: 9px 11px;
    vertical-align: top;
    text-align: left;
  }
  .layout-md-embed .markdown-body th {
    background: var(--epn-blue-soft-bg, #e8f2fa);
    font-weight: 700;
    color: var(--ink);
  }
  .layout-md-embed .markdown-body code {
    font-family: var(--font-mono);
    font-size: 0.9em;
    padding: 1px 5px;
    border-radius: 4px;
    background: rgba(0, 112, 187, 0.08);
  }
  .layout-md-embed .markdown-body pre {
    margin: 0.5em 0;
    padding: 10px 12px;
    border-radius: var(--radius-code);
    background: var(--code-md-bg);
    border: 1px solid var(--line);
    overflow-x: auto;
    font-size: 14px;
  }
  .layout-md-embed .markdown-body pre code {
    padding: 0;
    background: none;
  }
  .layout-md-embed .markdown-body strong {
    color: var(--ink);
    font-weight: 700;
  }

  /* Sesi 2 · business scope brief — kiri atas/bawah + kanan template */
  .layout-isi--scope-brief .isi-scope-split {
    grid-template-columns: 1fr 1fr;
    align-content: stretch;
    align-items: stretch;
    height: 100%;
  }
  .layout-isi--scope-brief .isi-scope-left {
    display: grid;
    grid-template-rows: 1fr 1fr;
    gap: var(--gap-isi-cards);
    min-height: 0;
  }
  .layout-isi--scope-brief .isi-scope-left article {
    min-height: 0;
    display: flex;
    flex-direction: column;
  }
  .layout-isi--scope-brief .isi-scope-split > .template-panel.isi-scope-template {
    min-height: 0;
    height: 100%;
  }
  .layout-isi--scope-brief .isi-scope-template .template-panel__path {
    max-width: 68%;
    white-space: normal;
    word-break: break-all;
    line-height: 1.22;
    font-size: 10px;
  }
  .layout-isi--scope-brief .isi-scope-template .template-panel__body {
    flex: 1;
    min-height: 0;
    display: flex;
  }
  .layout-isi--scope-brief .isi-scope-template .code-block--md {
    flex: 1;
    min-height: 0;
    font-size: var(--text-code-sm);
    line-height: 1.36;
    overflow: hidden;
  }
  .layout-isi--scope-brief .code-block--scope-tmpl {
    font-size: 11.5px;
    line-height: 1.3;
  }
  /* Slide 05 — outline Business Requirement (§1–§14) */
  .layout-isi--scope-brief[data-layout="scope-brief"] .code-block--scope-tmpl,
  .layout-isi--scope-brief[data-layout="scope-brief-arch"] .code-block--scope-tmpl {
    font-size: 14px;
    line-height: 1.34;
    letter-spacing: 0.01em;
  }
  .layout-isi--scope-brief[data-layout="scope-brief"] .isi-scope-template .code-block--md,
  .layout-isi--scope-brief[data-layout="scope-brief-arch"] .isi-scope-template .code-block--md {
    overflow-y: auto;
    overflow-x: hidden;
  }
  .layout-isi--scope-brief .scope-tmpl-list {
    margin: 0;
    padding-left: 1.1em;
    font-size: var(--text-body-sm, 0.92rem);
    line-height: 1.35;
  }
  .layout-isi--scope-brief .scope-tmpl-list li + li {
    margin-top: 0.35em;
  }
  .layout-isi--scope-brief .isi-scope-left article .scope-tmpl-list {
    flex: 1;
    min-height: 0;
    overflow: hidden;
  }
  .layout-isi--scope-brief .isi-arch-kenapa {
    font-size: 11px;
    line-height: 1.36;
  }
  /* Sesi 2 · business requirement bagian 1–11 cards */
  .layout-isi--br-sections .slide-main {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }
  .layout-isi--br-sections .slide-header--compact {
    margin-bottom: 4px;
  }
  .layout-isi--br-sections .slide-header--compact .eyebrow {
    margin-bottom: 2px;
  }
  .layout-isi--br-sections .slide-header--compact .slide-title {
    margin-bottom: 0;
    font-size: clamp(28px, 2.6vw, 36px);
  }
  .layout-isi--br-sections .slide-body {
    flex: 1;
    min-height: 0;
    display: flex;
  }
  .layout-isi--br-sections .isi-body {
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: 1fr;
    align-content: stretch;
    gap: 8px;
    width: 100%;
    height: 100%;
    align-items: stretch;
  }
  .layout-isi--br-sections .isi-body article {
    min-height: 0 !important;
    padding: 12px 14px 14px 18px;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .layout-isi--br-sections .isi-body article::before {
    top: 10px;
    bottom: 10px;
    width: 5px;
  }
  .layout-isi--br-sections .isi-body h3 {
    font-size: 22px;
    font-weight: 800;
    margin: 0 0 6px;
    line-height: 1.18;
    letter-spacing: -0.02em;
    color: var(--epn-blue-deep);
  }
  .layout-isi--br-sections .isi-body p {
    font-size: 18px;
    line-height: 1.36;
    margin: 0;
    color: var(--ink-soft);
  }
  .layout-isi--br-sections .isi-body p + p {
    margin-top: 6px;
  }
  .layout-isi--br-sections .isi-body code {
    font-size: 0.92em;
  }
  .layout-isi--br-sections[data-layout="arch-sections"] .isi-body,
  .layout-isi--br-sections[data-layout="stack-sections"] .isi-body {
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
  }
  .layout-isi--scope-brief .isi-arch-kenapa li + li {
    margin-top: 0.28em;
  }
  /* ——— Discovery slides (builderstory4 · #7–#9) ——— */
  .layout-discovery {
    background: var(--paper);
    color: var(--ink);
  }
  .layout-discovery .slide-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-height: 0;
  }
  .discovery-grid {
    display: grid;
    gap: 12px;
    min-height: 0;
  }
  .discovery-grid--2 {
    grid-template-columns: repeat(2, 1fr);
    flex: 1;
    align-items: stretch;
  }
  .discovery-grid--3 {
    grid-template-columns: repeat(3, 1fr);
    align-items: stretch;
  }
  .discovery-grid--3x2 {
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(2, 1fr);
    flex: 1;
    align-items: stretch;
  }
  .discovery-panel {
    background: var(--card);
    border: 1px solid var(--line);
    border-top: 6px solid var(--panel-accent, var(--epn-blue));
    border-radius: 14px;
    padding: 16px 18px;
    min-height: 0;
    height: 100%;
    box-shadow: var(--shadow);
  }
  .discovery-panel--alert {
    background: #fdecec;
    border-color: #f5c6c6;
    border-top-color: var(--epn-red);
  }
  .discovery-panel--soft {
    background: rgba(0, 112, 187, 0.06);
  }
  .discovery-panel--soft-green {
    background: rgba(44, 162, 95, 0.1);
  }
  .discovery-panel__num {
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.1em;
    color: var(--panel-accent, var(--epn-blue));
    margin-bottom: 8px;
  }
  .discovery-panel h3 {
    margin: 0 0 10px;
    font-size: 21px;
    line-height: 1.2;
    letter-spacing: -0.02em;
  }
  .discovery-panel ul {
    margin: 0;
    padding-left: 20px;
    font-size: 16px;
    line-height: 1.38;
    color: var(--ink-soft);
  }
  .discovery-panel li + li { margin-top: 5px; }
  .layout-discovery--tantangan .discovery-panel {
    display: flex;
    flex-direction: column;
  }
  .layout-discovery--tantangan .discovery-panel ul {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-evenly;
  }
  .layout-discovery--tantangan .discovery-panel li + li { margin-top: 0; }
  .discovery-panel p {
    margin: 0;
    font-size: 16px;
    line-height: 1.38;
    color: var(--muted);
  }
  .discovery-evidence {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    flex-shrink: 0;
  }
  .discovery-evidence--5 {
    grid-template-columns: repeat(5, 1fr);
  }
  .discovery-evidence div {
    background: var(--epn-blue-deep);
    border-radius: 12px;
    padding: 11px 10px;
    text-align: center;
    color: var(--white);
  }
  .discovery-evidence strong {
    display: block;
    font-size: 24px;
    font-weight: 800;
    color: var(--epn-green);
    line-height: 1.1;
    margin-bottom: 4px;
  }
  .discovery-evidence span {
    display: block;
    font-size: 13px;
    line-height: 1.32;
    color: rgba(255, 255, 255, 0.88);
  }
  .discovery-flow {
    display: flex;
    align-items: stretch;
    gap: 20px;
    flex-shrink: 0;
  }
  .discovery-flow__node {
    flex: 1;
    min-width: 0;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--card);
    padding: 14px 10px;
    text-align: center;
    position: relative;
    box-shadow: var(--shadow);
  }
  .discovery-flow__node:not(:last-child)::after {
    content: "→";
    position: absolute;
    right: -16px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--epn-blue);
    font-weight: 900;
    font-size: 18px;
    z-index: 1;
  }
  .discovery-flow__node b {
    display: block;
    font-size: 16px;
    color: var(--ink);
    margin-bottom: 4px;
  }
  .discovery-flow__node span {
    display: block;
    font-size: 14px;
    color: var(--muted);
  }
  .layout-discovery .slide-history-note {
    flex-shrink: 0;
    font-size: 13px;
    line-height: 1.38;
    text-align: left;
  }
  .layout-discovery .slide-history-note a {
    color: var(--epn-blue);
    font-weight: 650;
  }
  .slide-quote .quote-accent {
    color: var(--epn-green);
  }

  /* ——— Zona chart bersama: .chart-row / .stat-bars / .stat-cards ———
     Dipakai slide 06 (risiko agentic) dan 07 (mengapa memilih agent).
     Lebar kolom diatur per slide lewat inline --chart-cols. */
  .layout-discovery--mengapa .discovery-grid--3x2 {
    flex: 0 0 auto;
    grid-template-rows: auto auto;
    gap: 10px;
  }
  .layout-discovery--mengapa .discovery-panel {
    height: auto;
    padding: 11px 15px;
  }
  .layout-discovery--mengapa .discovery-panel__num {
    font-size: 12px;
    margin-bottom: 5px;
  }
  .layout-discovery--mengapa .discovery-panel h3 {
    margin-bottom: 5px;
    font-size: 19px;
  }
  .layout-discovery--mengapa .discovery-panel p {
    font-size: 14.5px;
    line-height: 1.32;
  }
  .chart-row {
    flex: 1;
    min-height: 0;
    display: grid;
    grid-template-columns: var(--chart-cols, 1fr 1fr);
    gap: 18px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
  }
  .chart-col {
    min-width: 0;
    display: flex;
    flex-direction: column;
  }
  .chart-col + .chart-col {
    padding-left: 18px;
    border-left: 1px solid var(--line);
  }
  .chart-cap {
    margin: 0 0 8px;
    min-height: 2.56em;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.28;
    color: var(--ink-soft);
  }
  .chart-cap span {
    font-weight: 500;
    color: var(--muted);
  }
  .stat-bars {
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    gap: 4px;
  }
  .stat-bars li {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: baseline;
    column-gap: 10px;
    row-gap: 3px;
  }
  .stat-bars b {
    font-size: 15.5px;
    font-weight: 650;
    line-height: 1.2;
    color: var(--ink);
  }
  .stat-bars strong {
    font-size: 21px;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1;
    color: var(--bar-accent, var(--epn-blue-deep));
  }
  .stat-bars i {
    grid-column: 1 / -1;
    display: block;
    height: 16px;
    border-radius: 999px;
    background: rgba(0, 112, 187, 0.12);
  }
  .stat-bars i::before {
    content: "";
    display: block;
    height: 100%;
    width: var(--bar-w, 0);
    min-width: 5px;
    border-radius: 999px;
    background: var(--bar-accent, var(--epn-blue));
  }
  .stat-cards {
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .stat-cards li {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 8px 14px;
    background: var(--card);
    border: 1px solid var(--line);
    border-left: 5px solid var(--fx-accent, var(--epn-operational-green));
    border-radius: 11px;
    box-shadow: var(--shadow);
  }
  .stat-cards strong {
    font-size: 26px;
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.02em;
    color: var(--fx-accent, var(--epn-operational-green));
  }
  .stat-cards span {
    margin-top: 2px;
    font-size: 13.5px;
    line-height: 1.26;
    color: var(--ink-soft);
  }
  .stat-cards--2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  .stat-cards--2col strong {
    font-size: 23px;
  }
  .stat-cards--2col span {
    font-size: 12.5px;
  }
  /* Catatan kecil di bawah chart — mis. batas uji NIST */
  .chart-note {
    margin: 8px 0 0;
    padding: 6px 11px;
    font-size: 12.5px;
    line-height: 1.3;
    color: var(--ink-soft);
    background: rgba(224, 62, 62, 0.07);
    border-left: 4px solid var(--epn-red);
    border-radius: 0 8px 8px 0;
  }
  .chart-note--info {
    background: rgba(0, 112, 187, 0.08);
    border-left-color: var(--epn-blue);
  }

  /* Bar berpasangan — membandingkan dua kelompok pada skala 0–100% */
  .gap-legend {
    display: flex;
    gap: 18px;
    margin: 0 0 9px;
    font-size: 13px;
    font-weight: 650;
    color: var(--ink-soft);
  }
  .gap-legend span {
    display: flex;
    align-items: center;
    gap: 6px;
  }
  .gap-legend span::before {
    content: "";
    width: 13px;
    height: 13px;
    border-radius: 4px;
    background: var(--c);
  }
  .gap-bars {
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    gap: 4px;
  }
  /* Label di kolom kiri, dua bar bertumpuk di kanan — satu indikator = satu blok */
  .gap-bars li {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.3fr);
    align-items: center;
    column-gap: 14px;
    row-gap: 3px;
  }
  .gap-bars b {
    grid-row: span 2;
    font-size: 14.5px;
    font-weight: 650;
    line-height: 1.2;
    color: var(--ink);
  }
  .gap-bar {
    display: grid;
    grid-template-columns: 1fr 42px;
    align-items: center;
    column-gap: 8px;
    line-height: 1;
  }
  .gap-bar i {
    display: block;
    height: 12px;
    border-radius: 999px;
    background: rgba(0, 112, 187, 0.1);
  }
  .gap-bar i::before {
    content: "";
    display: block;
    height: 100%;
    width: var(--bar-w, 0);
    border-radius: 999px;
    background: var(--bar-accent);
  }
  .gap-bar em {
    font-style: normal;
    text-align: right;
    font-size: 13px;
    font-weight: 750;
    line-height: 1;
    color: var(--bar-accent);
  }

  /* ——— Masa depan workforce (#9) — panel ringkas + zona chart ——— */
  .layout-discovery--workforce .discovery-grid,
  .layout-discovery--workforce .discovery-flow {
    flex: 0 0 auto;
  }
  .layout-discovery--workforce .discovery-panel {
    height: auto;
    padding: 10px 15px;
  }
  .layout-discovery--workforce .discovery-panel h3 {
    margin-bottom: 4px;
  }
  .layout-discovery--workforce .discovery-panel ul {
    flex: 0 0 auto;
    justify-content: flex-start;
    gap: 3px;
  }
  .layout-discovery--workforce .discovery-panel li {
    font-size: 13.5px;
    line-height: 1.25;
  }
  .layout-discovery--workforce .discovery-flow__node {
    padding: 7px 12px;
  }
  .layout-discovery--workforce .chart-row {
    padding-top: 8px;
  }
  /* Kedua caption di slide ini muat satu baris — tak perlu cadangan dua baris */
  .layout-discovery--workforce .chart-cap {
    min-height: 0;
  }
  .layout-discovery--workforce .gap-bars {
    gap: 14px;
  }
  .layout-discovery--workforce .chart-note {
    margin-top: 7px;
    padding: 5px 10px;
    font-size: 12px;
  }

  /* ——— Anatomi agent (#10) — figur manusia + 6 bagian + strip harness ———
     Nomor badge di SVG harus sama dengan urutan .anatomi-parts. */
  .anatomi-row {
    flex: 1;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.42fr);
    gap: 18px;
  }
  .anatomi-figure {
    margin: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 12px 14px 10px;
    box-shadow: var(--shadow);
  }
  .anatomi-figure svg {
    flex: 1;
    min-height: 0;
    width: 100%;
    font-family: var(--font-sans);
  }
  .anatomi-parts {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 12px;
    min-height: 0;
  }
  .anatomi-parts li {
    min-height: 0;
    background: var(--card);
    border: 1px solid var(--line);
    border-left: 6px solid var(--part-accent);
    border-radius: 14px;
    padding: 16px 18px;
    box-shadow: var(--shadow);
  }
  .anatomi-parts__tag {
    margin: 0 0 8px;
    font-size: 13.5px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--part-accent);
  }
  .anatomi-parts h3 {
    margin: 0 0 8px;
    font-size: 23px;
    line-height: 1.2;
    letter-spacing: -0.02em;
  }
  .anatomi-parts li > p:last-child {
    margin: 0;
    font-size: 17px;
    line-height: 1.4;
    color: var(--ink-soft);
  }
  .anatomi-harness {
    flex-shrink: 0;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) repeat(3, minmax(0, 1fr));
    gap: 12px;
    align-items: stretch;
    background: var(--epn-blue-deep);
    border-radius: 14px;
    padding: 12px 14px;
    color: var(--white);
  }
  .anatomi-harness__head h3 {
    margin: 0 0 3px;
    font-size: 19px;
    color: var(--white);
  }
  .anatomi-harness__head p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.32;
    color: rgba(255, 255, 255, 0.85);
  }
  .anatomi-harness__col {
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 10px;
    padding: 9px 12px;
    background: rgba(255, 255, 255, 0.06);
  }
  .anatomi-harness__col b {
    display: block;
    margin-bottom: 3px;
    font-size: 13px;
    letter-spacing: 0.04em;
    color: var(--epn-green-bright);
  }
  .anatomi-harness__col span {
    font-size: 14.5px;
    line-height: 1.3;
  }
  .anatomi-harness__col--otak {
    border-style: dashed;
  }
  .anatomi-harness__col--otak b {
    color: #9fd3ff;
  }

  /* ——— Flow agentic 5 tahap (#11) ——— */
  .layout-discovery--agentic-loop .slide-body {
    gap: 8px;
  }
  .agentic-loop-flow {
    flex-shrink: 0;
    display: flex;
    align-items: stretch;
    gap: 14px;
  }
  .agentic-loop-flow__node {
    flex: 1;
    min-width: 0;
    border: 1px solid var(--line);
    border-top: 5px solid var(--node-accent, var(--epn-blue));
    border-radius: 12px;
    background: var(--card);
    padding: 12px 10px;
    text-align: center;
    position: relative;
    box-shadow: var(--shadow);
  }
  .agentic-loop-flow__node:not(:last-child)::after {
    content: "→";
    position: absolute;
    right: -13px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--epn-blue);
    font-weight: 900;
    font-size: 18px;
    z-index: 1;
  }
  .agentic-loop-flow__node b {
    display: block;
    font-size: 28px;
    font-weight: 800;
    color: var(--node-accent);
    line-height: 1;
    margin-bottom: 6px;
  }
  .agentic-loop-flow__node span {
    display: block;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.28;
    color: var(--ink);
  }
  .agentic-loop-steps {
    flex: 1;
    min-height: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
  }
  .agentic-loop-steps li {
    min-height: 0;
    background: var(--card);
    border: 1px solid var(--line);
    border-left: 5px solid var(--step-accent);
    border-radius: 12px;
    padding: 11px 13px;
    box-shadow: var(--shadow);
    display: flex;
    flex-direction: column;
  }
  .agentic-loop-steps__tag {
    margin: 0 0 5px;
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--step-accent);
  }
  .agentic-loop-steps h3 {
    margin: 0 0 8px;
    font-size: 21px;
    line-height: 1.22;
    letter-spacing: -0.02em;
  }
  .agentic-loop-steps ul {
    margin: 0;
    padding-left: 18px;
    font-size: 15.5px;
    line-height: 1.38;
    color: var(--ink-soft);
    flex: 1;
  }
  .agentic-loop-steps > li > ul > li + li {
    margin-top: 5px;
  }
  .agentic-loop-groups {
    flex-shrink: 0;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
  }
  .agentic-loop-groups__band {
    margin: 0;
    padding: 9px 14px;
    border-radius: 10px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
    color: var(--ink);
  }
  .agentic-loop-groups__band span {
    display: block;
    margin-bottom: 2px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--muted);
  }
  .agentic-loop-groups__band--goals {
    grid-column: 1 / 3;
    background: rgba(0, 86, 143, 0.08);
    border: 1px solid rgba(0, 112, 187, 0.22);
    border-left: 5px solid var(--epn-blue-deep);
  }
  .agentic-loop-groups__band--react {
    grid-column: 3 / 6;
    background: rgba(44, 162, 95, 0.1);
    border: 1px solid rgba(44, 162, 95, 0.28);
    border-left: 5px solid var(--epn-operational-green);
  }
  .agentic-loop-banner {
    flex-shrink: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px 14px;
    background: var(--epn-blue-deep);
    border-radius: 12px;
    padding: 10px 14px;
    color: var(--white);
  }
  .agentic-loop-banner b {
    font-size: 15px;
    color: var(--epn-green-bright);
  }
  .agentic-loop-banner span {
    font-size: 13.5px;
    line-height: 1.35;
    color: rgba(255, 255, 255, 0.9);
    flex: 1;
    min-width: 12rem;
  }
  .layout-discovery--agentic-loop .slide-history-note {
    font-size: 12.5px;
    line-height: 1.34;
  }

  /* ——— Pola koordinasi manusia & agent (#12) — ikon berpasangan ——— */
  .layout-discovery--koordinasi .slide-body {
    gap: 10px;
  }
  .layout-discovery--koordinasi .slide-history-note {
    font-size: 12px;
    line-height: 1.32;
  }
  .koordinasi-pairs {
    flex: 1;
    min-height: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
  }
  .koordinasi-pair {
    min-height: 0;
    display: flex;
    flex-direction: column;
    background: var(--card);
    border: 1px solid var(--line);
    border-top: 6px solid var(--pair-accent);
    border-radius: 14px;
    padding: 12px 16px 14px;
    box-shadow: var(--shadow);
  }
  .koordinasi-pair__tag {
    margin: 0 0 8px;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--pair-accent);
    text-align: center;
  }
  .koordinasi-pair__stage {
    flex: 1;
    min-height: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
  }
  .koordinasi-icon {
    flex: 0 0 auto;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    display: grid;
    place-items: center;
  }
  .koordinasi-icon svg {
    width: 98px;
    height: 98px;
    fill: currentColor;
    stroke: currentColor;
  }
  .koordinasi-icon--human {
    background: rgba(224, 62, 62, 0.1);
    color: var(--epn-red-deep);
  }
  .koordinasi-icon--agent {
    background: rgba(0, 112, 187, 0.1);
    color: var(--epn-blue-deep);
  }
  .koordinasi-arrow {
    flex: 1 0 158px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1px;
  }
  .koordinasi-arrow b {
    font-size: 46px;
    line-height: 1;
    color: var(--pair-accent);
  }
  .koordinasi-arrow em {
    font-style: normal;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    color: var(--muted);
  }
  .koordinasi-pair__note {
    flex-shrink: 0;
    margin: 10px 0 0;
    font-size: 16px;
    line-height: 1.34;
    color: var(--ink-soft);
  }
  .koordinasi-pilar {
    flex-shrink: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
  }
  .koordinasi-pilar__card {
    border: 1px solid var(--line);
    border-left: 5px solid var(--epn-blue);
    border-radius: 12px;
    background: var(--card);
    padding: 9px 14px;
    box-shadow: var(--shadow);
  }
  .koordinasi-pilar__tag {
    margin: 0 0 4px;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--epn-blue-deep);
  }
  .koordinasi-pilar__human,
  .koordinasi-pilar__ai {
    margin: 0;
    font-size: 14px;
    line-height: 1.3;
  }
  .koordinasi-pilar__human {
    color: var(--ink-soft);
  }
  .koordinasi-pilar__ai {
    margin-top: 3px;
    padding-top: 3px;
    border-top: 1px dashed var(--line);
    color: var(--epn-green-deep);
    font-weight: 650;
  }
  .koordinasi-trigger {
    flex-shrink: 0;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    background: var(--epn-blue-deep);
    border-radius: 12px;
    padding: 10px 16px;
    color: var(--white);
  }
  .koordinasi-trigger__head {
    margin: 0;
    max-width: 15rem;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.28;
    color: var(--epn-green-bright);
  }
  .koordinasi-trigger__item b {
    display: block;
    font-size: 15px;
    margin-bottom: 1px;
  }
  .koordinasi-trigger__item span {
    display: block;
    font-size: 13.5px;
    line-height: 1.3;
    color: rgba(255, 255, 255, 0.88);
  }

  /* ——— Tantangan & risiko agentic (#7) — panel ringkas + zona chart ——— */
  .layout-discovery--tantangan .discovery-grid {
    flex: 0 0 auto;
  }
  .layout-discovery--tantangan .discovery-panel {
    height: auto;
    padding: 12px 16px;
  }
  .layout-discovery--tantangan .discovery-panel ul {
    flex: 0 0 auto;
    justify-content: flex-start;
    gap: 6px;
  }
  .layout-discovery--tantangan .discovery-panel li {
    font-size: 14.5px;
    line-height: 1.3;
  }

  /* ——— Adopsi ≠ kesiapan (Capgemini Mei–Jun 2025) ——— */
  .layout-kesiapan {
    background: var(--paper);
    color: var(--ink);
  }
  .layout-kesiapan .slide-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-height: 0;
  }
  .layout-kesiapan .slide-history-note {
    flex-shrink: 0;
    font-size: 13px;
    line-height: 1.38;
  }
  .layout-kesiapan .adopsi-cap {
    margin-bottom: 12px;
    min-height: 0;
    font-size: 19px;
    line-height: 1.32;
  }
  .layout-kesiapan .adopsi-cap span {
    font-size: 17px;
    white-space: normal;
  }
  .layout-kesiapan .adopsi-bar__track {
    height: 22px;
  }
  .layout-kesiapan .adopsi-bar__val {
    flex: 0 0 58px;
    font-size: 22px;
  }
  .layout-kesiapan .adopsi-bars--wide .adopsi-bar__label {
    flex: 1 1 auto;
    min-width: 0;
  }
  .layout-kesiapan .adopsi-bars--wide .adopsi-bar__label b {
    font-size: 18.5px;
    font-weight: 650;
    line-height: 1.3;
  }
  .layout-kesiapan .adopsi-bars {
    gap: 8px;
  }
  .kesiapan-split {
    display: grid;
    grid-template-columns: 2fr 3fr;
    gap: 22px;
    flex: 1;
    min-height: 0;
  }
  .kesiapan-col {
    display: flex;
    flex-direction: column;
    min-width: 0;
  }
  .kesiapan-stats {
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .kesiapan-stats li {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 11px 16px;
    background: var(--card);
    border: 1px solid var(--line);
    border-left: 6px solid var(--stat-accent, var(--epn-blue));
    border-radius: 12px;
    box-shadow: var(--shadow);
  }
  .kesiapan-stats strong {
    flex: 0 0 84px;
    font-size: 44px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.03em;
    color: var(--stat-accent, var(--epn-blue));
  }
  .kesiapan-stats span {
    font-size: 17px;
    line-height: 1.32;
    color: var(--ink-soft);
  }
  .kesiapan-gap {
    margin-top: 10px;
    flex-shrink: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .kesiapan-gap div {
    border-radius: 12px;
    padding: 12px 14px;
    color: var(--white);
    background: var(--epn-blue-deep);
    font-size: 16px;
    font-weight: 650;
    line-height: 1.32;
  }
  .kesiapan-gap div:last-child {
    background: var(--epn-red-deep);
  }
  .kesiapan-gap strong {
    display: block;
    font-size: 30px;
    font-weight: 800;
    line-height: 1.05;
    color: var(--epn-green);
    margin-bottom: 4px;
  }
  .kesiapan-gap span {
    display: block;
    color: rgba(255, 255, 255, 0.9);
  }
  .adopsi-bars--wide .adopsi-bar__label {
    flex: 0 0 330px;
  }
  .adopsi-bars--wide .adopsi-bar__label b {
    font-weight: 600;
    font-size: 15.5px;
  }

  /* ——— Tangga otonomi Level 0–5 (Capgemini) ——— */
  .layout-isi--tangga .slide-body {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-height: 0;
  }
  .layout-isi--tangga .isi-body {
    height: auto;
    flex-shrink: 0;
  }
  .layout-isi--tangga .isi-body article {
    min-height: 0;
    padding: 14px 20px;
  }
  .layout-isi--tangga .isi-body .no { margin-bottom: 7px; }
  .layout-isi--tangga .isi-body h3 { margin-bottom: 6px; }
  .otonomi {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .otonomi-steps {
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 1;
    min-height: 0;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    align-items: stretch;
    gap: 10px;
  }
  .otonomi-steps li {
    min-height: 0;
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto auto;
    row-gap: 5px;
    text-align: center;
  }
  .otonomi-steps b {
    font-size: 17px;
    font-weight: 800;
    color: var(--step-accent, var(--muted));
  }
  .otonomi-steps span {
    font-size: 13.5px;
    line-height: 1.26;
    color: var(--ink-soft);
    min-height: 34px;
  }
  .otonomi-steps i {
    align-self: end;
    border-radius: 8px 8px 0 0;
    background: var(--step-accent, #cfd8e0);
    height: var(--step-h, 20px);
  }
  .otonomi-map {
    flex-shrink: 0;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 10px;
  }
  .otonomi-map div:nth-child(3),
  .otonomi-map div:nth-child(4) {
    grid-column: span 2;
  }
  .otonomi-map div {
    border-radius: 10px;
    padding: 13px 14px;
    font-size: 15.5px;
    font-weight: 700;
    color: var(--white);
    text-align: center;
    background: var(--map-accent, var(--muted));
  }
  .otonomi-map div span {
    display: block;
    margin-top: 2px;
    font-weight: 500;
    font-size: 13.5px;
    color: rgba(255, 255, 255, 0.88);
  }

  /* ——— Adopsi industri (builderstory4 · slide #6) ——— */
  .layout-industri-adopsi {
    background: var(--paper);
    color: var(--ink);
  }
  .layout-industri-adopsi .slide-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-height: 0;
  }
  .layout-industri-adopsi .adopsi-cap {
    margin-bottom: 12px;
    min-height: 0;
    font-size: 19px;
    line-height: 1.32;
  }
  .layout-industri-adopsi .adopsi-cap span {
    font-size: 17px;
    white-space: normal;
  }
  .layout-industri-adopsi .adopsi-bar {
    gap: 12px;
    padding: 5px 10px 5px 5px;
  }
  .layout-industri-adopsi .adopsi-bar__icon {
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
  }
  .layout-industri-adopsi .adopsi-bar__icon svg {
    width: 22px;
    height: 22px;
  }
  .layout-industri-adopsi .adopsi-bar__label {
    flex: 0 0 292px;
  }
  .layout-industri-adopsi .adopsi-bar__label b {
    font-size: 19px;
  }
  .layout-industri-adopsi .adopsi-bar__label span {
    font-size: 14.5px;
    margin-top: 2px;
  }
  .layout-industri-adopsi .adopsi-bar__track {
    height: 21px;
  }
  .layout-industri-adopsi .adopsi-bar__val {
    flex: 0 0 58px;
    font-size: 22px;
  }
  .layout-industri-adopsi .adopsi-bars {
    gap: 7px;
  }
  .layout-industri-adopsi .adopsi-donut-wrap {
    justify-content: flex-start;
    gap: 0;
    padding: 10px 12px 10px 16px;
  }
  .layout-industri-adopsi .adopsi-donut {
    flex: 0 0 320px;
    width: 320px;
    height: 320px;
  }
  .layout-industri-adopsi .adopsi-donut__center strong {
    font-size: 62px;
  }
  .layout-industri-adopsi .adopsi-donut__center span {
    font-size: 18px;
  }
  .layout-industri-adopsi .adopsi-legend {
    flex: 0 0 auto;
    margin-left: auto;
    padding-left: 28px;
    padding-right: 4px;
    gap: 10px;
  }
  .layout-industri-adopsi .adopsi-legend li {
    font-size: 17.5px;
  }
  .layout-industri-adopsi .adopsi-legend i {
    flex: 0 0 13px;
    width: 13px;
    height: 13px;
  }
  .layout-industri-adopsi .adopsi-legend b {
    flex: 0 0 40px;
    font-size: 18.5px;
  }
  .layout-industri-adopsi .adopsi-callout div {
    font-size: 15.5px;
    padding: 13px 14px;
  }
  .layout-industri-adopsi .adopsi-callout strong {
    font-size: 28px;
  }
  .adopsi-split {
    display: flex;
    gap: 26px;
    flex: 1;
    min-height: 0;
  }
  .adopsi-cap {
    margin: 0 0 10px;
    min-height: 40px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--ink-soft);
  }
  .adopsi-cap span {
    font-weight: 500;
    color: var(--muted);
    white-space: nowrap;
  }

  /* Bar chart peringkat sektor */
  .adopsi-chart {
    flex: 1.32;
    min-width: 0;
    display: flex;
    flex-direction: column;
  }
  .adopsi-bars {
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 5px;
  }
  .adopsi-bar {
    display: flex;
    align-items: center;
    gap: 11px;
    min-height: 0;
    padding: 3px 8px 3px 4px;
    border-radius: 9px;
  }
  .adopsi-bar__icon {
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: rgba(0, 112, 187, 0.1);
  }
  .adopsi-bar__icon svg {
    display: block;
    width: 20px;
    height: 20px;
  }
  .adopsi-bar__label {
    flex: 0 0 272px;
    min-width: 0;
  }
  .adopsi-bar__label b {
    display: block;
    font-size: 16.5px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--ink);
  }
  .adopsi-bar__label span {
    display: block;
    font-size: 12px;
    line-height: 1.25;
    color: var(--muted);
  }
  .adopsi-bar__track {
    flex: 1;
    min-width: 0;
    height: 17px;
    border-radius: 999px;
    background: rgba(0, 112, 187, 0.12);
    overflow: hidden;
  }
  .adopsi-bar__fill {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: var(--epn-blue);
  }
  .adopsi-bar__val {
    flex: 0 0 52px;
    text-align: right;
    font-size: 19px;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--epn-blue-deep);
  }
  .adopsi-bar--highlight {
    background: rgba(224, 62, 62, 0.08);
  }
  .adopsi-bar--highlight .adopsi-bar__icon { background: rgba(224, 62, 62, 0.12); }
  .adopsi-bar--highlight .adopsi-bar__label b { font-weight: 800; color: var(--epn-red-deep); }
  .adopsi-bar--highlight .adopsi-bar__track { background: rgba(224, 62, 62, 0.14); }
  .adopsi-bar--highlight .adopsi-bar__fill { background: var(--epn-red); }
  .adopsi-bar--highlight .adopsi-bar__val { color: var(--epn-red-deep); }

  /* Donut status adopsi + legenda */
  .adopsi-aside {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
  }
  .adopsi-donut-wrap {
    flex: 1;
    min-height: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    padding: 18px 22px;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 14px;
    box-shadow: var(--shadow);
  }
  .adopsi-donut {
    position: relative;
    flex: 0 0 212px;
    width: 212px;
    height: 212px;
  }
  .adopsi-donut svg {
    display: block;
    width: 100%;
    height: 100%;
  }
  .adopsi-donut__center {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
  }
  .adopsi-donut__center strong {
    font-size: 46px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.03em;
    color: var(--epn-blue-deep);
  }
  .adopsi-donut__center span {
    margin-top: 5px;
    font-size: 14px;
    line-height: 1.25;
    font-weight: 650;
    color: var(--muted);
  }
  .adopsi-legend {
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 7px;
  }
  .adopsi-legend li {
    display: flex;
    align-items: baseline;
    gap: 9px;
    font-size: 15px;
    line-height: 1.3;
    color: var(--ink-soft);
  }
  .adopsi-legend i {
    flex: 0 0 11px;
    width: 11px;
    height: 11px;
    border-radius: 3px;
    transform: translateY(1px);
  }
  .adopsi-legend b {
    flex: 0 0 36px;
    font-size: 16px;
    font-weight: 800;
    color: var(--ink);
  }
  .adopsi-callout {
    margin-top: 12px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .adopsi-callout div {
    border-radius: 12px;
    padding: 12px 14px;
    color: var(--white);
    font-size: 14px;
    font-weight: 650;
    line-height: 1.32;
  }
  .adopsi-callout div:nth-child(1) { background: var(--epn-blue-deep); }
  .adopsi-callout div:nth-child(2) { background: var(--epn-red-deep); }
  .adopsi-callout strong {
    display: block;
    margin-bottom: 3px;
    font-size: 25px;
    font-weight: 800;
    line-height: 1;
    color: var(--epn-green);
  }
  .adopsi-callout div:nth-child(2) strong { color: var(--white); }
  .layout-industri-adopsi .slide-history-note {
    flex-shrink: 0;
    font-size: 13px;
    line-height: 1.38;
    text-align: left;
  }
  .layout-industri-adopsi .slide-history-note a {
    color: var(--epn-blue);
    font-weight: 650;
  }

  /* ——— Evolusi AI (salinan slide #3 deck 0010) ——— */
  .layout-evolusi-ai {
    background: var(--paper);
    color: var(--ink);
    --ev-blue: var(--epn-blue);
    --ev-teal: var(--epn-blue-soft);
    --ev-amber: #f59e0b;
    --ev-green: var(--epn-operational-green);
    --ev-navy: var(--epn-blue-deep);
    --ev-blue-soft-bg: #eaf2ff;
  }
  .layout-evolusi-ai .slide-body {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }
  .evolusi-timeline {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: 1fr 1fr;
    gap: 12px;
    flex: 1;
    min-height: 0;
    align-items: stretch;
  }
  .evolusi-era {
    background: var(--card);
    border: 1px solid var(--line);
    border-top: 6px solid var(--tone, var(--teal));
    border-radius: 14px;
    padding: 14px 13px;
    min-height: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
  }
  .evolusi-era--stacked {
    gap: 0;
  }
  .evolusi-era--stacked .evolusi-stack {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
  }
  .evolusi-stack + .evolusi-stack {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
  }
  .evolusi-stack .evolusi-year { margin-bottom: 6px; }
  .evolusi-stack b { margin-bottom: 4px; }
  .evolusi-year {
    font-size: 15px;
    font-weight: 800;
    color: var(--tone, var(--teal));
    letter-spacing: 0.06em;
    margin-bottom: 10px;
  }
  .evolusi-era b {
    display: block;
    color: var(--ink);
    font-size: 19px;
    line-height: 1.22;
    margin-bottom: 8px;
  }
  .evolusi-era span {
    display: block;
    color: var(--muted);
    font-size: 16px;
    line-height: 1.38;
  }
  .evolusi-era--now {
    background: var(--ev-navy);
    border-color: var(--ev-navy);
    border-top-color: var(--epn-green);
  }
  .evolusi-era--now .evolusi-year { color: var(--epn-green); }
  .evolusi-era--now b { color: var(--white); }
  .evolusi-era--now span { color: rgba(255, 255, 255, 0.88); }
  .evolusi-era--future {
    background: var(--ev-blue-soft-bg);
    border-top-color: var(--ev-blue);
  }
  .layout-evolusi-ai .slide-history-note {
    margin-top: 12px;
  }
  .isi-body article {
    min-height: 420px;
    display: flex;
    flex-direction: column;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius-card-lg);
    padding: 28px 26px 28px;
    box-shadow: var(--shadow);
    position: relative;
  }
  .isi-body article::before {
    content: "";
    position: absolute;
    left: 0;
    top: 28px;
    bottom: 28px;
    width: 6px;
    border-radius: 0 6px 6px 0;
    background: var(--teal);
  }
  .isi-body article:nth-child(2)::before { background: var(--epn-red); }
  .isi-body article:nth-child(3)::before { background: var(--epn-green); }
  .isi-body article:nth-child(4)::before { background: var(--epn-blue); }
  .isi-body .no {
    margin: 0 0 18px;
    font-size: var(--text-card-kicker);
    font-weight: 800;
    letter-spacing: .12em;
    color: var(--teal-deep);
  }
  .isi-body h3 {
    margin: 0 0 14px;
    font-size: var(--text-card-title);
    line-height: 1.15;
    letter-spacing: -.02em;
  }
  .isi-body p {
    margin: 0;
    font-size: var(--text-card-body);
    line-height: 1.4;
    color: var(--muted);
  }
  .isi-body ul {
    margin: 0;
    padding-left: 20px;
    font-size: 19px;
    line-height: 1.38;
    color: var(--ink-soft);
  }
  .isi-body li + li { margin-top: 6px; }
  .isi-body .selesai {
    margin-top: auto;
    padding-top: 28px;
    font-size: var(--text-card-kicker);
    font-weight: 750;
    color: var(--ink);
  }
  /* ——— 3. Halaman akhir ——— */
  .layout-akhir {
    background: var(--gradient-akhir);
    color: var(--white);
  }
  .rekap {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--gap-rekap);
    margin-bottom: 0;
  }
  .rekap div {
    padding: 22px 22px 26px;
    border-top: 4px solid var(--pertamina-red);
    background: var(--glass-fill);
  }
  .rekap b {
    display: block;
    margin-bottom: 8px;
    font-size: var(--text-rekap-label);
    letter-spacing: .14em;
    color: var(--lime);
  }
  .rekap span {
    display: block;
    font-size: var(--text-rekap-body);
    line-height: 1.25;
    font-weight: 680;
  }
  .tutup {
    display: flex;
    justify-content: space-between;
    align-items: end;
    margin-bottom: 0;
  }
  .tutup p {
    margin: 0;
    max-width: var(--content-max-tutup);
    font-size: var(--text-tutup);
    line-height: 1.35;
    color: var(--on-dark-secondary);
  }
  .tutup em {
    font-style: normal;
    font-size: var(--text-tutup-brand);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--lime);
  }

  /* ——— 4. Halaman template (prompt · skill · doc) ——— */
  .layout-template {
    background: var(--paper);
    color: var(--ink);
  }
  .template-grid {
    height: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: var(--gap-template-grid);
    min-height: 0;
  }
  .template-panel {
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius-card-md);
    overflow: hidden;
    box-shadow: var(--shadow);
  }
  .template-panel::before {
    content: "";
    height: 5px;
    background: var(--panel-accent, var(--teal));
  }
  .template-panel--prompt { --panel-accent: var(--accent-prompt); }
  .template-panel--skill { --panel-accent: var(--accent-skill); }
  .template-panel--prd { --panel-accent: var(--accent-prd); }
  .template-panel--docs { --panel-accent: var(--accent-docs); }

  /* Unduh kit template — dipakai di dalam .template-panel__body (Sesi 2 slide 05) */
  .kit-unduh {
    display: flex;
    flex-direction: column;
    gap: 10px;
    height: 100%;
    min-height: 0;
  }
  .kit-unduh ul {
    margin: 0;
    padding-left: 18px;
    font-size: var(--text-doc-body);
    line-height: 1.5;
    color: var(--ink-soft);
  }
  .kit-unduh li + li { margin-top: 4px; }
  .kit-unduh code {
    font-family: var(--font-mono);
    font-size: var(--text-code-sm);
  }
  a.kit-unduh__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    padding: 10px 20px;
    border-radius: var(--radius-pill);
    background: var(--epn-blue-deep);
    color: var(--card);
    font-size: var(--text-card-kicker);
    font-weight: 800;
    letter-spacing: .02em;
    text-decoration: none;
  }
  a.kit-unduh__btn:hover { background: var(--epn-blue); }
  a.kit-unduh__btn:focus-visible {
    outline: 3px solid var(--epn-green);
    outline-offset: 2px;
  }
  .kit-unduh__note {
    margin: 0;
    font-size: var(--text-slide-history-note);
    color: var(--muted);
  }
  .template-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 18px 12px;
    border-bottom: 1px solid var(--line);
    background: var(--panel-head-bg);
  }
  .template-panel__title {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
  }
  .template-panel__title strong {
    font-size: var(--text-panel-title);
    letter-spacing: -.02em;
  }
  .tag {
    flex-shrink: 0;
    padding: 4px 10px;
    border-radius: var(--radius-pill);
    font-size: var(--text-tag);
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  .tag--prompt { background: var(--tag-prompt-bg); color: var(--tag-prompt-fg); }
  .tag--skill { background: var(--tag-skill-bg); color: var(--tag-skill-fg); }
  .tag--prd { background: var(--tag-prd-bg); color: var(--tag-prd-fg); }
  .tag--docs { background: var(--tag-docs-bg); color: var(--tag-docs-fg); }
  .template-panel__path {
    font-family: var(--font-mono);
    font-size: var(--text-code-sm);
    color: var(--muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 42%;
    text-align: right;
  }
  .template-panel__body {
    flex: 1;
    min-height: 0;
    overflow: hidden;
    padding: 14px 16px 16px;
  }
  .code-block {
    margin: 0;
    height: 100%;
    padding: 14px 16px;
    border-radius: var(--radius-code);
    font-family: var(--font-mono);
    font-size: var(--text-code);
    line-height: 1.46;
    white-space: pre-wrap;
    word-break: break-word;
  }
  .code-block--dark {
    background: var(--code-dark-bg);
    color: var(--code-dark-fg);
    border: 1px solid var(--code-dark-border);
  }
  .code-block--md {
    background: var(--code-md-bg);
    color: var(--ink-soft);
    border: 1px solid var(--line);
  }
  .code-block .k { color: var(--epn-blue); }
  .code-block .v { color: var(--lime); filter: saturate(.85); }
  .code-block .c { color: var(--muted); }
  .code-block .h { color: var(--teal-deep); font-weight: 650; }
  .code-block--dark .v { color: var(--epn-green); }
  .code-block--dark .k { color: #ffffff; }
  /* --muted terlalu gelap di atas --code-dark-bg; mint tetap terbaca dari kursi belakang */
  .code-block--dark .c { color: var(--epn-green-mint); }
  .doc-prd {
    height: 100%;
    overflow: hidden;
    padding: 2px 4px 0;
  }
  .doc-prd__title {
    margin: 0 0 6px;
    font-size: 17px;
    font-weight: 750;
    letter-spacing: -.02em;
    color: var(--ink);
  }
  .doc-prd__meta {
    margin: 0 0 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--line);
    font-family: ui-monospace, Consolas, monospace;
    font-size: 12px;
    color: var(--muted);
  }
  .doc-prd section + section {
    margin-top: 10px;
  }
  .doc-prd h4 {
    margin: 0 0 5px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
    color: var(--epn-blue-deep);
  }
  .doc-prd p {
    margin: 0 0 6px;
    font-size: 13.5px;
    line-height: 1.4;
    color: var(--ink-soft);
  }
  .doc-prd ul {
    margin: 0;
    padding-left: 18px;
    font-size: 13.5px;
    line-height: 1.38;
    color: var(--ink-soft);
  }
  .doc-prd ul.ac {
    list-style: none;
    padding-left: 0;
  }
  .doc-prd ul.ac li {
    position: relative;
    padding: 3px 0 3px 24px;
    font-size: 13px;
  }
  .doc-prd ul.ac li::before {
    content: "☐";
    position: absolute;
    left: 2px;
    color: var(--teal-deep);
    font-weight: 700;
  }
  .doc-prd .open {
    margin-top: 10px;
    padding: 8px 10px;
    border-radius: 8px;
    background: var(--tag-prompt-bg);
    border-left: 3px solid var(--epn-red);
    font-size: 12.5px;
    line-height: 1.35;
    color: var(--epn-red-deep);
  }
  .doc-prd .open strong {
    display: block;
    margin-bottom: 4px;
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  .doc-prd .anti {
    margin-top: 8px;
    font-size: 12px;
    color: var(--muted);
  }
  .doc-prd .anti s {
    color: var(--line);
  }
  .doc-tree {
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 14px;
    line-height: 1.42;
  }
  .doc-tree > li {
    margin: 0 0 12px;
  }
  .doc-tree .folder {
    font-family: ui-monospace, Consolas, monospace;
    font-size: 13px;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: 6px;
  }
  .doc-tree ul {
    margin: 0 0 10px;
    padding-left: 16px;
    list-style: none;
    border-left: 2px solid var(--line);
  }
  .doc-tree ul li {
    position: relative;
    margin: 0 0 5px;
    padding-left: 11px;
    color: var(--muted);
    font-size: 13px;
  }
  .doc-tree ul li::before {
    content: "▸";
    position: absolute;
    left: 0;
    color: var(--epn-green-deep);
    font-size: 10px;
    top: 2px;
  }
  .doc-tree ul li strong {
    color: var(--ink);
    font-weight: 650;
  }
  .doc-tree .req {
    display: block;
    margin-top: 10px;
    padding: 8px 10px;
    border-radius: 8px;
    background: var(--tag-docs-bg);
    color: var(--epn-green-deep);
    font-size: 12px;
    font-weight: 650;
    line-height: 1.35;
  }
  .doc-tree .papan {
    margin-top: 8px;
    font-family: ui-monospace, Consolas, monospace;
    font-size: 12px;
    color: var(--teal-deep);
  }

  /* ——— 5. Layout sesi (kerangka 180 menit) ——— */
  .layout-sesi {
    background: var(--paper);
    color: var(--ink);
  }
  .layout-sesi .placeholder {
    color: var(--muted);
    font-style: italic;
  }
  .layout-sesi .slide-title.placeholder,
  .layout-sesi .slide-header .eyebrow.placeholder {
    font-style: normal;
    opacity: .72;
  }
  .sesi-body {
    height: 100%;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 400px;
    gap: 18px;
    align-content: stretch;
  }
  .sesi-body--goals-top {
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 12px;
  }
  .sesi-goals-bar {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 16px 20px;
    align-items: center;
    padding: 14px 18px;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius-card-md);
    box-shadow: var(--shadow);
    border-top: 3px solid var(--epn-blue);
  }
  .sesi-goals-bar__label {
    margin: 0;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--teal-deep);
    white-space: nowrap;
  }
  .sesi-goals-bar__items {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px 14px;
  }
  .sesi-goals-bar__items p {
    margin: 0;
    font-size: 15px;
    font-weight: 650;
    line-height: 1.32;
    color: var(--ink);
  }
  .sesi-timeline {
    display: grid;
    grid-template-rows: repeat(4, minmax(0, 1fr));
    gap: 10px;
    min-height: 0;
  }
  .sesi-block {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 14px;
    align-items: stretch;
    min-height: 0;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius-card-md);
    padding: 12px 16px 12px 14px;
    box-shadow: var(--shadow);
    position: relative;
    overflow: hidden;
  }
  .sesi-block::before {
    content: "";
    position: absolute;
    left: 0;
    top: 10px;
    bottom: 10px;
    width: 5px;
    border-radius: 0 5px 5px 0;
    background: var(--block-accent, var(--epn-blue));
  }
  .sesi-block:nth-child(1) { --block-accent: var(--epn-blue); }
  .sesi-block:nth-child(2) { --block-accent: var(--epn-red); }
  .sesi-block:nth-child(3) { --block-accent: var(--epn-green-deep); }
  .sesi-block:nth-child(4) { --block-accent: var(--epn-blue-deep); }
  .sesi-block__time {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
    padding-left: 6px;
  }
  .sesi-block__time b {
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -.02em;
    color: var(--epn-blue-deep);
    line-height: 1.1;
  }
  .sesi-block__time span {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--muted);
  }
  .sesi-block__content {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .sesi-block__content h3 {
    margin: 0 0 6px;
    font-size: 20px;
    font-weight: 750;
    letter-spacing: -.02em;
    line-height: 1.2;
    color: var(--ink);
  }
  .sesi-block__content ul {
    margin: 0;
    padding-left: 18px;
    font-size: 18px;
    line-height: 1.32;
    color: var(--ink-soft);
  }
  .sesi-block__content li + li { margin-top: 2px; }
  .sesi-block__content code {
    font-family: var(--font-mono);
    font-size: 0.92em;
    color: var(--epn-blue-deep);
  }
  .sesi-block__lead {
    margin: 0;
    font-size: 18px;
    line-height: 1.38;
    color: var(--ink-soft);
  }
  .sesi-panel--goals {
    flex: 1;
    display: flex;
    flex-direction: column;
  }
  .sesi-goals {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 14px;
    padding: 20px 22px 24px;
  }
  .sesi-goals p {
    margin: 0;
    font-size: 20px;
    font-weight: 650;
    line-height: 1.35;
    color: var(--ink);
  }
  .sesi-side {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-height: 0;
  }
  .sesi-panel {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius-card-md);
    box-shadow: var(--shadow);
    overflow: hidden;
    min-height: 0;
  }
  .sesi-panel--gate { flex: 1; display: flex; flex-direction: column; }
  .sesi-panel__head {
    padding: 12px 16px 10px;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--line);
    background: var(--panel-head-bg);
    color: var(--teal-deep);
  }
  .sesi-gate-grid {
    display: grid;
    grid-template-rows: 1fr 1fr;
    flex: 1;
    min-height: 0;
  }
  .sesi-gate-half {
    padding: 12px 16px 14px;
    min-height: 0;
  }
  .sesi-gate-half + .sesi-gate-half {
    border-top: 1px solid var(--line);
  }
  .sesi-gate-half h4 {
    margin: 0 0 8px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
  }
  .sesi-gate-half--lulus h4 { color: var(--epn-operational-green); }
  .sesi-gate-half--jangan h4 { color: var(--epn-red-deep); }
  .sesi-gate-half ul {
    margin: 0;
    padding-left: 18px;
    font-size: 16px;
    line-height: 1.35;
    color: var(--ink-soft);
  }
  .sesi-gate-half--jangan {
    background: var(--tag-prompt-bg);
  }
  .sesi-meta {
    padding: 12px 16px 14px;
  }
  .sesi-meta dt {
    margin: 0 0 4px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--teal-deep);
  }
  .sesi-meta dd {
    margin: 0 0 10px;
    font-size: 16px;
    line-height: 1.35;
    color: var(--ink-soft);
  }
  .sesi-meta dd:last-child { margin-bottom: 0; }
  .sesi-meta dd strong {
    color: var(--ink);
    font-weight: 700;
  }

  /* ——— 6. Judul pembuka sesi (foto bisnis EPN) ——— */
  .layout-judul-sesi {
    background: var(--paper);
    color: var(--ink);
  }
  .judul-sesi-wrap {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 680px;
    gap: 44px;
    align-items: center;
    width: 100%;
    min-height: 0;
    height: 100%;
  }
  .judul-sesi-copy {
    display: flex;
    flex-direction: column;
    gap: 22px;
    min-width: 0;
    padding-right: 8px;
  }
  .judul-sesi-copy .slide-header {
    height: auto;
    max-height: none;
    overflow: visible;
  }
  .judul-sesi-num {
    margin: 0;
    font-size: 88px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.04em;
    color: var(--epn-green);
    font-variant-numeric: tabular-nums;
  }
  .judul-sesi-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap-meta);
  }
  .judul-sesi-meta i {
    font-style: normal;
    padding: 9px 15px;
    border-radius: var(--radius-pill);
    border: 1px solid var(--line);
    background: var(--card);
    font-size: 17px;
    font-weight: 650;
    color: var(--ink-soft);
  }
  .judul-sesi-meta i strong {
    color: var(--epn-blue-deep);
    font-weight: 800;
  }
  .judul-sesi-lineart {
    width: 120px;
    height: 52px;
    object-fit: contain;
    opacity: .85;
  }
  .judul-sesi-visual {
    position: relative;
    height: min(640px, 100%);
    min-height: 480px;
    border-radius: var(--radius-card-lg);
    overflow: hidden;
    box-shadow: var(--shadow);
    border: 1px solid var(--line);
    background: var(--ink);
  }
  .judul-sesi-visual::before {
    content: "";
    position: absolute;
    z-index: 2;
    top: 0;
    left: 0;
    right: 0;
    height: 8px;
    background: linear-gradient(
      90deg,
      var(--epn-blue) 0 46%,
      var(--epn-red) 46% 74%,
      var(--epn-green) 74% 100%
    );
  }
  .judul-sesi-visual img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .judul-sesi-visual::after {
    content: "";
    position: absolute;
    inset: 40% 0 0;
    background: linear-gradient(transparent, rgba(0, 86, 143, .92));
    pointer-events: none;
  }
  .judul-sesi-visual__cap {
    position: absolute;
    z-index: 1;
    left: 22px;
    right: 22px;
    bottom: 20px;
    color: var(--white);
  }
  .judul-sesi-visual__cap b {
    display: block;
    margin-bottom: 5px;
    font-size: 22px;
    line-height: 1.2;
    font-weight: 720;
  }
  .judul-sesi-visual__cap span {
    display: block;
    font-size: 15px;
    line-height: 1.35;
    color: rgba(255, 255, 255, .88);
  }

  /* ——— 7. Model latar (katalog template) ——— */
  .slide.bg-paper { background: var(--bg-paper); color: var(--ink); }
  .slide.bg-wash { background: var(--bg-wash); color: var(--ink); }
  .slide.bg-highlight { background: var(--bg-highlight); color: var(--ink); }
  .slide.bg-alert { background: var(--bg-alert); color: var(--ink); }
  .slide.bg-mesh { background: var(--bg-mesh); color: var(--ink); }
  .slide.bg-band { background: var(--bg-band); color: var(--ink); }
  .slide.bg-grid {
    background-color: var(--paper);
    background-image: var(--bg-grid);
    background-size: 72px 72px, 72px 72px;
    color: var(--ink);
  }
  .slide.bg-depan {
    background: var(--gradient-depan);
    color: var(--white);
  }
  .slide.bg-akhir {
    background: var(--gradient-akhir);
    color: var(--white);
  }
  .slide.bg-field {
    background: var(--bg-field);
    color: var(--white);
  }
  .slide.bg-ink {
    background: var(--bg-ink);
    color: var(--white);
  }
  .layout-bg .slide-body {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
  }
  .bg-specimen {
    max-width: 760px;
    margin-top: auto;
    padding: 26px 32px 28px;
    border-radius: var(--radius-card-md);
    background: color-mix(in srgb, var(--card) 94%, transparent);
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
  }
  .bg-specimen p { margin: 0; }
  .bg-specimen__class {
    margin-bottom: 8px;
    font-family: var(--font-mono);
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -.02em;
    color: var(--epn-blue-deep);
  }
  .bg-specimen__note {
    max-width: 640px;
    font-size: 20px;
    line-height: 1.4;
    color: var(--ink-soft);
  }
  .slide.bg-field .bg-specimen,
  .slide.bg-ink .bg-specimen,
  .slide.bg-depan .bg-specimen,
  .slide.bg-akhir .bg-specimen {
    background: var(--glass-fill);
    border-color: var(--glass-border-strong);
    box-shadow: none;
  }
  .slide.bg-field .bg-specimen__class,
  .slide.bg-ink .bg-specimen__class,
  .slide.bg-depan .bg-specimen__class,
  .slide.bg-akhir .bg-specimen__class {
    color: var(--lime);
  }
  .slide.bg-field .bg-specimen__note,
  .slide.bg-ink .bg-specimen__note,
  .slide.bg-depan .bg-specimen__note,
  .slide.bg-akhir .bg-specimen__note {
    color: var(--on-dark-secondary);
  }
  /* ——— Evolusi software development (#13) ——— */
  .discovery-grid--4 {
    grid-template-columns: repeat(4, 1fr);
    flex: 1;
    align-items: stretch;
  }
  .layout-discovery--evolusi-sd .discovery-panel {
    display: flex;
    flex-direction: column;
  }
  .layout-discovery--evolusi-sd .discovery-panel h3 {
    font-size: 23px;
    margin-bottom: 14px;
  }
  .layout-discovery--evolusi-sd .slide-body { gap: 14px; }
  .layout-discovery--evolusi-sd .discovery-panel { padding: 20px 22px 22px; }
  .layout-discovery--evolusi-sd .discovery-panel ul {
    font-size: 20px;
    line-height: 1.38;
  }
  .layout-discovery--evolusi-sd .discovery-panel li + li { margin-top: 16px; }
  .discovery-panel p.discovery-panel__foot {
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px dashed var(--line);
    font-size: 15px;
    line-height: 1.34;
    color: var(--muted);
  }
  .layout-discovery--evolusi-sd .discovery-panel li b { color: var(--panel-accent); }
  /* ——— Inventaris workforce (#14) ——— */
  .layout-discovery--wf-inv .slide-body {
    gap: 12px;
    justify-content: space-between;
  }
  .wf-inv {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
    flex: 0 0 auto;
    align-items: stretch;
    min-height: 0;
  }
  .wf-inv__card {
    display: flex;
    flex-direction: column;
    background: var(--card);
    border: 1px solid var(--line);
    border-top: 6px solid var(--inv-accent, var(--epn-blue));
    border-radius: 14px;
    padding: 14px 16px 16px;
    box-shadow: var(--shadow);
  }
  .wf-inv__status {
    margin: 0;
    font-size: 12.5px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--inv-accent, var(--epn-blue));
  }
  .wf-inv__card strong {
    font-size: 46px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.03em;
    color: var(--inv-accent, var(--epn-blue));
    margin: 4px 0 2px;
  }
  .wf-inv__card h3 {
    margin: 0 0 8px;
    font-size: 21px;
    line-height: 1.15;
    letter-spacing: -0.02em;
  }
  .wf-inv__card p {
    margin: 0;
    font-size: 16px;
    line-height: 1.38;
    color: var(--ink-soft);
  }
  .wf-inv__card p.wf-inv__cov {
    margin-top: auto;
    padding-top: 12px;
    border-top: 1px dashed var(--line);
    font-size: 14.5px;
    line-height: 1.34;
    color: var(--muted);
  }
  .wf-inv__banner {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 20px;
    flex-shrink: 0;
    background: var(--epn-blue-deep);
    border-radius: 14px;
    padding: 13px 22px;
  }
  .wf-inv__banner b {
    font-size: 17px;
    font-weight: 800;
    letter-spacing: 0.04em;
    color: var(--epn-green);
    white-space: nowrap;
  }
  .wf-inv__banner span {
    font-size: 15px;
    line-height: 1.38;
    color: rgba(255, 255, 255, 0.9);
  }
  .wf-inv__banner strong { color: var(--white); }
  /* ——— Workflow manusia–agent (#15–#18) ——— */
  .layout-workflow {
    background: var(--paper);
    color: var(--ink);
  }
  .layout-workflow .slide-body {
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-height: 0;
  }
  .wf-seq {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 22px;
    margin: 0;
    padding: 0;
    list-style: none;
    flex-shrink: 0;
  }
  .wf-stage {
    position: relative;
    background: var(--card);
    border: 1px solid var(--line);
    border-top: 6px solid var(--stage-accent);
    border-radius: 14px;
    padding: 13px 14px 15px;
    box-shadow: var(--shadow);
  }
  .wf-stage:not(:last-child)::after {
    content: "→";
    position: absolute;
    right: -17px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 19px;
    font-weight: 900;
    color: var(--epn-blue-soft);
    z-index: 1;
  }
  .wf-stage--human { --stage-accent: var(--epn-blue-deep); background: rgba(0, 112, 187, 0.07); }
  .wf-stage--agent { --stage-accent: var(--epn-operational-green); background: rgba(44, 162, 95, 0.09); }
  .wf-stage--shared { --stage-accent: var(--epn-green-deep); background: rgba(184, 202, 17, 0.16); }
  .wf-stage > span {
    display: block;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--stage-accent);
    margin-bottom: 6px;
  }
  .wf-stage > b {
    display: block;
    font-size: 20px;
    line-height: 1.15;
    letter-spacing: -0.02em;
    margin-bottom: 6px;
  }
  .wf-stage > small {
    display: block;
    font-size: 14.5px;
    line-height: 1.32;
    color: var(--muted);
  }
  .wf-roles {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    flex: 1;
    min-height: 0;
  }
  .wf-role {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--line);
    border-left: 7px solid var(--role-accent);
    border-radius: 14px;
    padding: 16px 22px 18px;
    background: var(--card);
    box-shadow: var(--shadow);
  }
  .wf-role--human { --role-accent: var(--epn-blue-deep); }
  .wf-role--agent { --role-accent: var(--epn-operational-green); }
  .wf-role h3 {
    margin: 0 0 10px;
    font-size: 22px;
    letter-spacing: -0.02em;
    color: var(--role-accent);
  }
  .wf-role ul {
    flex: 1;
    margin: 0;
    padding-left: 22px;
    font-size: 19px;
    line-height: 1.35;
    color: var(--ink-soft);
    display: flex;
    flex-direction: column;
    justify-content: space-evenly;
  }
  .wf-role li::marker { color: var(--role-accent); }
  .layout-workflow .slide-history-note {
    flex-shrink: 0;
    font-size: 13px;
    line-height: 1.38;
    text-align: left;
  }
  .layout-workflow code {
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 0.92em;
    background: rgba(0, 112, 187, 0.1);
    border-radius: 5px;
    padding: 1px 5px;
  }
  /* ——— Isi workspace agentic + tahapan (#20) ——— */
  .layout-discovery--workspace .slide-body { gap: 16px; }
  .ws-parts {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    flex: 1;
    align-items: stretch;
    min-height: 0;
  }
  .ws-part {
    display: flex;
    flex-direction: column;
    background: var(--card);
    border: 1px solid var(--line);
    border-top: 6px solid var(--ws-accent, var(--epn-blue));
    border-radius: 14px;
    padding: 16px 20px 18px;
    box-shadow: var(--shadow);
  }
  .ws-part__path {
    margin: 0 0 8px;
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 18px;
    font-weight: 700;
    color: var(--ws-accent, var(--epn-blue));
    word-break: break-all;
  }
  .ws-part h3 {
    margin: 0 0 12px;
    font-size: 24px;
    line-height: 1.15;
    letter-spacing: -0.02em;
  }
  .ws-part p {
    margin: 0;
    font-size: 19px;
    line-height: 1.42;
    color: var(--ink-soft);
  }
  .ws-part strong { color: var(--ws-accent, var(--epn-blue)); }
  .ws-part p.ws-part__files {
    margin-top: auto;
    padding-top: 12px;
    border-top: 1px dashed var(--line);
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 15px;
    line-height: 1.5;
    color: var(--muted);
    word-break: break-word;
  }
  .ws-tahap {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 24px;
    margin: 0;
    padding: 0;
    list-style: none;
    flex-shrink: 0;
  }
  .ws-tahap--2 {
    grid-template-columns: repeat(2, 1fr);
    flex: 1;
    align-items: stretch;
    gap: 28px;
  }
  .ws-step {
    position: relative;
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto auto;
    column-gap: 12px;
    align-items: start;
    background: var(--epn-blue-deep);
    border-radius: 14px;
    padding: 14px 16px 15px;
    color: var(--white);
  }
  .ws-step--wide {
    grid-template-rows: auto auto auto auto auto auto;
    padding: 22px 24px 20px;
    column-gap: 16px;
  }
  .ws-step--wide .ws-step__no {
    grid-row: 1 / 4;
    width: 48px;
    height: 48px;
    font-size: 26px;
  }
  .ws-step--wide > b,
  .ws-step--wide > small {
    grid-column: 2;
  }
  .ws-step__kicker {
    grid-column: 2;
    margin: 0 0 6px;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--epn-green);
  }
  .ws-step--wide b {
    font-size: 24px;
    line-height: 1.12;
  }
  .ws-step--wide small {
    font-size: 17px;
    line-height: 1.38;
    margin-top: 6px;
  }
  .ws-step__tags {
    grid-column: 1 / 3;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 16px 0 0;
    padding: 0;
    list-style: none;
  }
  .ws-step__tags li {
    padding: 8px 16px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    font-size: 17px;
    font-weight: 700;
    color: var(--white);
  }
  .ws-step__path {
    grid-column: 1 / 3;
    margin: 14px 0 0;
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 14.5px;
    line-height: 1.45;
    color: rgba(255, 255, 255, 0.78);
    word-break: break-word;
  }
  .ws-step--wide em {
    margin-top: 14px;
    font-size: 15px;
  }
  .ws-lanjut {
    flex-shrink: 0;
  }
  .ws-lanjut article {
    border: 1px solid var(--line);
    border-left: 6px solid var(--epn-operational-green);
    border-radius: 14px;
    padding: 14px 20px 16px;
    background: var(--card);
    box-shadow: var(--shadow);
  }
  .ws-lanjut__label {
    margin: 0 0 6px;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--epn-operational-green);
  }
  .ws-lanjut p {
    margin: 0;
    font-size: 18px;
    line-height: 1.4;
    color: var(--ink-soft);
  }
  .ws-step:not(:last-child)::after {
    content: "→";
    position: absolute;
    right: -18px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 20px;
    font-weight: 900;
    color: var(--epn-blue);
  }
  .ws-step__no {
    grid-row: 1 / 3;
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--epn-green);
    color: var(--epn-blue-deep);
    font-size: 21px;
    font-weight: 800;
  }
  .ws-step b {
    font-size: 19px;
    line-height: 1.15;
    letter-spacing: -0.01em;
  }
  .ws-step small {
    font-size: 15px;
    line-height: 1.32;
    color: rgba(255, 255, 255, 0.86);
    margin-top: 3px;
  }
  .ws-step em {
    grid-column: 1 / 3;
    justify-self: start;
    margin-top: 10px;
    padding: 3px 11px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    font-size: 14px;
    font-style: normal;
    font-weight: 750;
    letter-spacing: 0.04em;
    color: var(--epn-green);
  }
  .layout-discovery--workspace code {
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 0.94em;
    background: rgba(0, 112, 187, 0.1);
    border-radius: 5px;
    padding: 1px 5px;
  }
  /* ——— Portfolio evidence & apps (#15–#16) ——— */
  .layout-discovery--portfolio-evidence .slide-body { gap: 12px; }
  .layout-discovery--portfolio-evidence .discovery-grid--3 {
    flex: 1;
    align-items: stretch;
  }
  .layout-discovery--portfolio-evidence .discovery-panel {
    display: flex;
    flex-direction: column;
    padding: 18px 20px;
  }
  .layout-discovery--portfolio-evidence .discovery-panel__num {
    font-size: 15px;
    margin-bottom: 10px;
  }
  .layout-discovery--portfolio-evidence .discovery-panel ul {
    flex: 1;
    font-size: 17px;
    line-height: 1.4;
  }
  .layout-discovery--portfolio-evidence .discovery-panel li + li {
    margin-top: 6px;
  }
  .layout-discovery--portfolio-evidence .discovery-panel h3 {
    font-size: 23px;
    margin-bottom: 8px;
  }
  .layout-discovery--portfolio-evidence .discovery-evidence strong {
    font-size: 28px;
  }
  .layout-discovery--portfolio-evidence .discovery-evidence span {
    font-size: 15px;
    line-height: 1.35;
  }
  .layout-discovery--portfolio-evidence .discovery-evidence div {
    padding: 13px 10px;
  }
  .layout-discovery--portfolio-evidence .slide-history-note {
    font-size: 14px;
    line-height: 1.4;
  }
  .portfolio-mm {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 12px;
    padding: 12px 16px;
    border-radius: 10px;
    background: var(--epn-blue-deep);
    color: var(--white);
  }
  .layout-discovery--portfolio-evidence .portfolio-mm strong {
    font-size: 26px;
  }
  .portfolio-mm strong {
    color: var(--epn-green);
    font-size: 22px;
    font-weight: 800;
    line-height: 1;
  }
  .portfolio-mm--dual strong + strong { margin-left: 8px; }
  .layout-discovery--portfolio-evidence .portfolio-mm span {
    font-size: 13px;
  }
  .portfolio-mm span {
    margin-left: auto;
    font-size: 11px;
    font-weight: 750;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.82);
  }
  .portfolio-benefit {
    flex-shrink: 0;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px 16px;
    align-items: start;
    background: var(--epn-blue-deep);
    border-radius: 14px;
    padding: 12px 20px;
    color: var(--white);
  }
  .portfolio-benefit b {
    font-size: 15px;
    color: var(--epn-green);
    white-space: nowrap;
  }
  .portfolio-benefit span {
    font-size: 15px;
    line-height: 1.38;
  }
  .layout-discovery--portfolio-apps .slide-body { gap: 14px; }
  .portfolio-apps.discovery-grid--3 {
    flex: 1;
    align-items: stretch;
  }
  .layout-discovery--portfolio-apps .discovery-panel {
    padding: 18px 20px;
  }
  .layout-discovery--portfolio-apps .discovery-panel__num {
    font-size: 15px;
    margin-bottom: 10px;
  }
  .layout-discovery--portfolio-apps .slide-history-note {
    font-size: 14px;
    line-height: 1.4;
  }
  .portfolio-app {
    display: flex;
    flex-direction: column;
  }
  .layout-discovery--portfolio-apps .portfolio-app h3 {
    font-size: 24px;
    line-height: 1.2;
    min-height: 58px;
    margin-bottom: 10px;
  }
  .portfolio-app h3 {
    font-size: 21px;
    line-height: 1.18;
    min-height: 50px;
    margin-bottom: 8px;
  }
  .layout-discovery--portfolio-apps .portfolio-app p {
    font-size: 17px;
    line-height: 1.42;
  }
  .portfolio-app p {
    margin: 0;
    font-size: 15.5px;
    line-height: 1.4;
    color: var(--ink-soft);
  }
  .layout-discovery--portfolio-apps .portfolio-app p + p {
    margin-top: 12px;
  }
  .portfolio-app p + p { margin-top: 10px; }
  .portfolio-app p b { color: var(--epn-blue-deep); }
  .portfolio-app--amber {
    background: rgba(184, 202, 17, 0.12);
  }
  /* ——— Agentic Hub (#22) ——— */
  .layout-agentic-hub {
    background: var(--paper);
    color: var(--ink);
  }
  .layout-agentic-hub .slide-body {
    display: flex;
    flex-direction: column;
    gap: 18px;
    min-height: 0;
  }
  .hub-diagram {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 240px 1fr;
    gap: 26px;
    align-items: center;
    flex: 1;
    min-height: 0;
  }
  .hub-diagram::before {
    content: "";
    position: absolute;
    left: 14%;
    right: 14%;
    top: 50%;
    height: 4px;
    border-radius: 2px;
    transform: translateY(-50%);
    background: linear-gradient(
      90deg,
      var(--epn-blue) 0%,
      rgba(124, 58, 237, 0.55) 35%,
      var(--epn-operational-green) 70%,
      var(--epn-green-deep) 100%
    );
  }
  .hub-col {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 20px;
  }
  .hub-node {
    background: var(--card);
    border: 1px solid var(--line);
    border-left: 6px solid var(--hub-accent, var(--epn-blue));
    border-radius: 14px;
    padding: 14px 18px 16px;
    box-shadow: var(--shadow);
  }
  .hub-node__tag {
    margin: 0 0 5px;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--hub-accent, var(--epn-blue));
  }
  .hub-node h3 {
    margin: 0 0 5px;
    font-size: 23px;
    line-height: 1.15;
    letter-spacing: -0.02em;
  }
  .hub-node p {
    margin: 0;
    font-size: 17px;
    line-height: 1.36;
    color: var(--ink-soft);
  }
  .hub-core {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
  }
  .hub-core__ring {
    width: 196px;
    height: 196px;
    border-radius: 50%;
    display: grid;
    place-content: center;
    text-align: center;
    background: var(--epn-blue-deep);
    border: 6px solid var(--card);
    box-shadow: var(--shadow);
  }
  .hub-core__ring strong {
    display: block;
    font-size: 24px;
    font-weight: 800;
    letter-spacing: 0.06em;
    color: var(--epn-green);
    line-height: 1.1;
  }
  .hub-core__ring span {
    display: block;
    font-size: 32px;
    font-weight: 800;
    letter-spacing: 0.1em;
    color: var(--white);
    line-height: 1.1;
  }
  .hub-core__cap {
    margin: 0;
    font-size: 15px;
    font-weight: 750;
    letter-spacing: 0.04em;
    color: var(--muted);
    text-align: center;
  }
  .hub-notes {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    flex: none;
    align-items: stretch;
  }
  .hub-note {
    background: var(--card);
    border: 1px solid var(--line);
    border-top: 5px solid var(--hub-accent, var(--epn-blue));
    border-radius: 14px;
    padding: 14px 18px 16px;
    box-shadow: var(--shadow);
  }
  .hub-note h3 {
    margin: 0 0 10px;
    font-size: 22px;
    line-height: 1.15;
    letter-spacing: -0.02em;
  }
  .hub-note p {
    margin: 0 0 10px;
    font-size: 17px;
    line-height: 1.4;
    color: var(--ink-soft);
  }
  .hub-note ul {
    margin: 0;
    padding-left: 20px;
  }
  .hub-note li {
    font-size: 16px;
    line-height: 1.38;
    color: var(--ink-soft);
    margin-bottom: 6px;
  }
  .hub-note li::marker {
    color: var(--hub-accent, var(--epn-blue));
  }
  /* ——— Development pipeline overview (#17) ——— */
  .layout-dev-pipeline {
    background: var(--paper);
    color: var(--ink);
  }
  .layout-dev-pipeline .slide-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-height: 0;
  }
  .layout-dev-pipeline .slide-sub code {
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 0.92em;
    background: rgba(0, 112, 187, 0.1);
    border-radius: 5px;
    padding: 1px 5px;
  }
  .dp-rail {
    position: relative;
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    flex-shrink: 0;
  }
  .dp-rail--4 {
    grid-template-columns: repeat(4, 1fr);
  }
  .dp-rail--4::before {
    left: 12.5%;
    right: 12.5%;
  }
  .dp-rail--5 {
    grid-template-columns: repeat(5, 1fr);
  }
  .dp-rail--5::before {
    left: 10%;
    right: 10%;
  }
  .dp-rail--6 {
    grid-template-columns: repeat(6, 1fr);
  }
  .dp-rail--6::before {
    left: 8.333%;
    right: 8.333%;
  }
  .dp-rail::before {
    content: "";
    position: absolute;
    left: 6.25%;
    right: 6.25%;
    top: 52px;
    height: 4px;
    border-radius: 2px;
    background: linear-gradient(
      90deg,
      var(--epn-blue-soft) 0%,
      rgba(124, 58, 237, 0.45) 45%,
      rgba(184, 202, 17, 0.55) 70%,
      var(--epn-operational-green) 100%
    );
  }
  .dp-st {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 0 4px;
  }
  .dp-tag {
    display: inline-flex;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    white-space: nowrap;
  }
  .dp-tag--human { background: rgba(0, 112, 187, 0.12); color: var(--epn-blue-deep); }
  .dp-tag--agent { background: rgba(124, 58, 237, 0.12); color: #5b21b6; }
  .dp-tag--gate { background: rgba(184, 202, 17, 0.25); color: var(--epn-green-deep); }
  .dp-tag--release { background: rgba(44, 162, 95, 0.15); color: var(--epn-operational-green); }
  .dp-bub {
    width: 76px;
    height: 76px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--card);
    border: 4px solid var(--card);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: -0.02em;
    text-align: center;
    line-height: 1.15;
    padding: 6px;
    color: var(--ink);
    box-shadow: var(--shadow);
  }
  .dp-bub--human { box-shadow: 0 0 0 3px rgba(0, 112, 187, 0.35), var(--shadow); }
  .dp-bub--agent { box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.35), var(--shadow); }
  .dp-bub--gate { box-shadow: 0 0 0 3px rgba(184, 202, 17, 0.45), var(--shadow); }
  .dp-bub--release { box-shadow: 0 0 0 3px rgba(44, 162, 95, 0.4), var(--shadow); }
  .dp-nm {
    font-size: 16px;
    font-weight: 800;
    letter-spacing: -0.02em;
    text-align: center;
    line-height: 1.15;
  }
  .dp-doc {
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 11px;
    color: var(--muted);
    background: rgba(0, 112, 187, 0.08);
    padding: 3px 7px;
    border-radius: 6px;
    text-align: center;
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .dp-brks {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    flex-shrink: 0;
  }
  .dp-brks--4 {
    grid-template-columns: repeat(4, 1fr);
  }
  .dp-brks--4 .dp-brk--3 {
    grid-column: span 3;
  }
  .dp-brks--5 {
    grid-template-columns: repeat(5, 1fr);
  }
  .dp-brks--5 .dp-brk--4 {
    grid-column: span 4;
  }
  .dp-brks--6 {
    grid-template-columns: repeat(6, 1fr);
  }
  .dp-brks--6 .dp-brk--2 {
    grid-column: span 2;
  }
  .dp-brks--6 .dp-brk--3 {
    grid-column: span 3;
  }
  .dp-stats--3 {
    grid-template-columns: repeat(3, 1fr);
  }
  .layout-dev-pipeline--kelas .ws-parts--pipeline {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    flex: 1;
    min-height: 0;
    align-items: stretch;
  }
  .layout-dev-pipeline--kelas .ws-parts--pipeline .ws-part {
    display: flex;
    flex-direction: column;
    padding: 14px 16px 16px;
    border-top-width: 5px;
    border-radius: 14px;
    height: 100%;
    min-height: 0;
  }
  .layout-dev-pipeline--kelas .ws-parts--pipeline .ws-part h3 {
    font-size: 20px;
    margin-bottom: 10px;
    line-height: 1.15;
  }
  .layout-dev-pipeline--kelas .ws-parts--pipeline .ws-part__list {
    flex: 1;
    margin: 0;
    padding-left: 18px;
  }
  .layout-dev-pipeline--kelas .ws-parts--pipeline .ws-part__list li {
    font-size: 15.5px;
    line-height: 1.4;
    color: var(--ink-soft);
    margin-bottom: 6px;
  }
  .layout-dev-pipeline--kelas .ws-parts--pipeline .ws-part__list li::marker {
    color: var(--ws-accent, var(--epn-blue));
  }
  .layout-dev-pipeline--maintenance .dp-st {
    gap: 6px;
  }
  .layout-dev-pipeline--maintenance .dp-bub {
    width: 72px;
    height: 72px;
    font-size: 14px;
  }
  .layout-dev-pipeline--maintenance .dp-rail::before {
    top: 50px;
  }
  .layout-dev-pipeline--maintenance .dp-nm {
    font-size: 15px;
  }
  .layout-dev-pipeline--maintenance .dp-doc {
    font-size: 11px;
  }
  .layout-dev-pipeline--maintenance .ws-parts--pipeline .ws-part {
    padding: 16px 18px 18px;
  }
  .layout-dev-pipeline--maintenance .ws-parts--pipeline .ws-part h3 {
    font-size: 22px;
    margin-bottom: 12px;
  }
  .layout-dev-pipeline--maintenance .ws-parts--pipeline .ws-part__list li {
    font-size: 17px;
    line-height: 1.42;
    margin-bottom: 8px;
  }
  .layout-dev-pipeline--release .dp-st {
    gap: 6px;
  }
  .layout-dev-pipeline--release .dp-bub {
    width: 72px;
    height: 72px;
    font-size: 14px;
  }
  .layout-dev-pipeline--release .dp-rail::before {
    top: 50px;
  }
  .layout-dev-pipeline--release .dp-nm {
    font-size: 14px;
  }
  .layout-dev-pipeline--release .dp-doc {
    font-size: 10px;
  }
  .layout-dev-pipeline--release .ws-parts--pipeline .ws-part {
    padding: 16px 18px 18px;
  }
  .layout-dev-pipeline--release .ws-parts--pipeline .ws-part h3 {
    font-size: 22px;
    margin-bottom: 12px;
  }
  .layout-dev-pipeline--release .ws-parts--pipeline .ws-part__list li {
    font-size: 17px;
    line-height: 1.42;
    margin-bottom: 8px;
  }
  .layout-dev-pipeline--kelas .ws-parts--pipeline code {
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 0.9em;
    background: rgba(0, 112, 187, 0.08);
    border-radius: 4px;
    padding: 0 4px;
  }
  .layout-dev-pipeline--prepare .slide-body {
    gap: 10px;
  }
  .layout-dev-pipeline--prepare .dp-st {
    gap: 8px;
  }
  .layout-dev-pipeline--prepare .dp-tag {
    font-size: 14px;
    padding: 4px 12px;
  }
  .layout-dev-pipeline--prepare .dp-bub {
    width: 96px;
    height: 96px;
    font-size: 18px;
    border-width: 5px;
  }
  .layout-dev-pipeline--prepare .dp-rail::before {
    top: 58px;
    height: 5px;
  }
  .layout-dev-pipeline--prepare .dp-nm {
    font-size: 20px;
  }
  .layout-dev-pipeline--prepare .dp-doc {
    font-size: 13px;
    padding: 4px 9px;
  }
  .layout-dev-pipeline--prepare .dp-brk__lb {
    font-size: 15px;
  }
  .layout-dev-pipeline--prepare .dp-brk__lb b {
    font-size: 17px;
  }
  /* Workspace platform on prepare slide (#17) */
  .layout-prepare-platform-ws .slide-body {
    gap: 8px;
  }
  .layout-prepare-platform-ws .ws-parts--prepare {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    flex: none;
    align-items: stretch;
  }
  .layout-prepare-platform-ws .ws-parts--prepare .ws-part {
    display: flex;
    flex-direction: column;
    padding: 14px 16px 16px;
    border-top-width: 5px;
    border-radius: 14px;
    height: 100%;
    min-height: 0;
  }
  .layout-prepare-platform-ws .ws-part h3 {
    font-size: 19px;
    margin-bottom: 10px;
    line-height: 1.15;
  }
  .layout-prepare-platform-ws .ws-part__list {
    margin: 0;
    padding-left: 18px;
  }
  .layout-prepare-platform-ws .ws-part__list li {
    font-size: 15px;
    line-height: 1.38;
    color: var(--ink-soft);
    margin-bottom: 5px;
  }
  .layout-prepare-platform-ws .ws-part__list li::marker {
    color: var(--ws-accent, var(--epn-blue));
  }
  .dp-ol {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    flex: 1;
    min-height: 0;
    align-items: stretch;
  }
  .dp-ol--4 {
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
  }
  .layout-dev-pipeline--prepare .dp-ol__col {
    padding: 14px 16px;
    border-radius: 14px;
  }
  .layout-dev-pipeline--prepare .dp-ol__head {
    font-size: 17px;
    margin-bottom: 6px;
  }
  .layout-dev-pipeline--prepare .dp-ol__goal {
    font-size: 14px;
    margin-bottom: 8px;
  }
  .layout-dev-pipeline--prepare .dp-ol__col li {
    font-size: 15px;
    line-height: 1.38;
    margin-bottom: 4px;
  }
  .dp-ol__col {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 10px 12px;
    min-height: 0;
    overflow: hidden;
  }
  .dp-ol__col--blue {
    border-top: 3px solid var(--epn-blue);
  }
  .dp-ol__col--violet {
    border-top: 3px solid #7c3aed;
  }
  .dp-ol__col--amber {
    border-top: 3px solid var(--epn-green-deep);
  }
  .dp-ol__col--green {
    border-top: 3px solid var(--epn-operational-green);
  }
  .layout-dev-pipeline--prepare .dp-ol__col {
    border-top-width: 4px;
  }
  .dp-ol__head {
    margin: 0 0 4px;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--ink);
  }
  .dp-ol__goal {
    margin: 0 0 6px;
    font-size: 11px;
    line-height: 1.35;
    color: var(--muted);
  }
  .dp-ol__goal b {
    color: var(--ink-soft);
  }
  .dp-ol__col ul {
    margin: 0;
    padding-left: 16px;
  }
  .dp-ol__col li {
    font-size: 11.5px;
    line-height: 1.32;
    color: var(--ink-soft);
    margin-bottom: 2px;
  }
  .dp-ol__col li::marker {
    color: var(--epn-blue);
  }
  .dp-brk { padding: 0 6px; }
  .dp-brk--2 { grid-column: span 2; }
  .dp-brk--3 { grid-column: span 3; }
  .dp-brk--4 { grid-column: span 4; }
  .dp-brk__bar {
    height: 12px;
    border: 2px solid var(--line);
    border-bottom: none;
    border-radius: 10px 10px 0 0;
  }
  .dp-brk__lb {
    text-align: center;
    margin-top: 6px;
    font-size: 14px;
    color: var(--ink-soft);
    line-height: 1.28;
  }
  .dp-brk__lb b {
    display: block;
    font-size: 15px;
    font-weight: 800;
    color: var(--ink);
    margin-bottom: 2px;
  }
  .dp-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    flex: 1;
    min-height: 0;
    align-items: stretch;
  }
  .dp-sx {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 14px 16px;
    box-shadow: var(--shadow);
  }
  .dp-sx__no {
    font-size: 28px;
    font-weight: 800;
    line-height: 1;
    flex: none;
    min-width: 40px;
  }
  .dp-sx__no--blue { color: var(--epn-blue); }
  .dp-sx__no--violet { color: #7c3aed; }
  .dp-sx__no--amber { color: var(--epn-green-deep); }
  .dp-sx__no--green { color: var(--epn-operational-green); }
  .dp-sx__tx {
    font-size: 15px;
    line-height: 1.35;
    color: var(--ink-soft);
  }
  .dp-sx__tx b {
    display: block;
    font-size: 16px;
    font-weight: 800;
    color: var(--ink);
    margin-bottom: 3px;
  }
  .layout-dev-pipeline .slide-history-note {
    flex-shrink: 0;
    font-size: 13px;
  }
  .layout-dev-pipeline .slide-history-note code {
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 0.92em;
  }

  /* Profil fasilitator (acuan 0010 discovery · slide Profil) */
  .layout-profile .slide-body {
    min-height: 0;
    display: flex;
    align-items: stretch;
  }
  .layout-profile .profile-slide {
    display: grid;
    grid-template-columns: 1fr min(320px, 28vw);
    gap: 28px;
    align-items: start;
    width: 100%;
  }
  .layout-profile .profile-head h2 {
    margin: 0 0 6px;
    font-size: clamp(36px, 3.2vw, 48px);
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--ink);
  }
  .layout-profile .profile-role {
    margin: 0 0 10px;
    font-size: clamp(18px, 1.55vw, 23px);
    font-weight: 800;
    color: var(--epn-blue-deep);
  }
  .layout-profile .profile-tag {
    display: inline-block;
    margin: 0 0 14px;
    padding: 7px 16px;
    border-radius: 999px;
    background: var(--epn-blue-deep);
    color: var(--epn-lime, #b8ca11);
    font-size: clamp(14px, 1.1vw, 16px);
    font-weight: 800;
    letter-spacing: 0.04em;
  }
  .layout-profile .profile-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }
  .layout-profile .profile-col {
    background: var(--card, #fff);
    border: 1px solid rgba(0, 86, 143, 0.12);
    border-radius: 14px;
    padding: 16px 18px;
    min-height: 0;
  }
  .layout-profile .profile-col h3 {
    margin: 0 0 12px;
    font-size: clamp(13px, 1.05vw, 15px);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--epn-operational-green, #2ca25f);
  }
  .layout-profile .profile-col ul {
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .layout-profile .profile-col li {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    font-size: clamp(15px, 1.35vw, 18px);
    line-height: 1.42;
    color: var(--muted);
    margin: 0 0 10px;
  }
  .layout-profile .profile-col li:last-child { margin: 0; }
  .layout-profile .profile-ico {
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: rgba(0, 112, 187, 0.1);
    font-size: 19px;
    line-height: 1;
  }
  .layout-profile .profile-item b {
    display: block;
    color: var(--ink);
    font-size: clamp(16px, 1.45vw, 19px);
    margin-bottom: 3px;
  }
  .layout-profile .profile-photo {
    width: 100%;
    max-height: min(520px, 52vh);
    object-fit: contain;
    object-position: right top;
    justify-self: end;
    align-self: start;
  }
