/* ============================================================
   ATS 제안서 — 덱 전용 스타일 (tokens.css, slide.css 위에 얹음)
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Sora:wght@700;800&display=swap');

deck-stage:not(:defined) { visibility: hidden; }

/* 모든 글자 Pretendard Variable 통일 — 숫자·라벨의 모노스페이스도 교체 (tnum으로 숫자 정렬 유지) */
body { --font-mono: var(--font-body); }

/* REF01 라이트 미니멀 + REF03 엔터프라이즈 데이터 리스타일:
   더 희어진 지면, 테두리 제거 + 부드러운 부유 그림자, 다이어그램은 틴트 채움 */
body {
  --paper: oklch(0.995 0.001 250);
  --shadow: 0 1px 2px oklch(0.2 0.02 255 / 0.05), 0 18px 44px oklch(0.2 0.02 255 / 0.09);
}

/* slide.css의 .slide를 deck-stage 슬롯 배치에 맞게 보정 */
deck-stage > .slide { position: absolute; inset: 0; width: auto; height: auto; }

/* 로고 — flex 컸럼 안에서 가로로 늘어나지 않도록 고정 */
.logo { height: 30px; width: auto; display: block; align-self: flex-start; object-fit: contain; }
.logo--lg { height: 58px; }
.slide--dark .logo { filter: invert(1); }

/* 제목 블록 */
.s-title { margin: 0; }
.s-sub { margin: 18px 0 0; }

/* ---------- Before / After 2단 ---------- */
.vs { display: grid; grid-template-columns: 0.82fr 1.18fr; gap: 44px; flex: 1; min-height: 0; align-items: stretch; margin-top: 24px; }
.panel { border-radius: var(--radius); padding: 36px 48px; box-sizing: border-box; }
.panel--before { background: var(--surface); border: none; }
.panel--after { background: var(--card); border: none; box-shadow: var(--shadow); }
.panel .plist .item { padding: 18px 0; font-size: 26px; }
.ptitle { font-family: var(--font-mono); font-size: 24px; font-weight: 500; letter-spacing: 0.12em; color: var(--ink-3); margin: 0 0 12px; }
.panel--after .ptitle { color: var(--accent); }

.plist { display: flex; flex-direction: column; }
.plist .item { display: flex; gap: 24px; padding: 28px 0; border-bottom: 1px solid var(--line); font-size: 27px; line-height: 1.55; color: var(--ink-2); align-items: baseline; }
.plist .item:last-child { border-bottom: none; }
.plist .item b { color: var(--ink); }
.plist .n { font-family: var(--font-mono); font-weight: 600; font-size: 24px; color: var(--accent); flex: none; }
.plist .x { font-family: var(--font-mono); font-weight: 600; font-size: 24px; color: var(--neg); flex: none; }

/* ---------- 다이어그램 공용 ---------- */
.dg-box { background: var(--accent-tint); border: none; border-radius: var(--radius); padding: 24px 30px; font-size: 26px; font-weight: 600; color: var(--ink); }
.dg-box small { display: block; font-family: var(--font-mono); font-size: 24px; font-weight: 500; color: var(--ink-3); margin-top: 6px; letter-spacing: 0.04em; }
.dg-box--muted { background: var(--surface); color: var(--ink-2); }
.dg-box--dark { background: var(--accent-deep); border: none; color: var(--on-dark); }
.dg-arrow { font-family: var(--font-mono); font-size: 34px; color: var(--ink-3); text-align: center; align-self: center; }

/* ---------- 카드 그리드 (3분할) ---------- */
.cards3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; flex: 1; min-height: 0; align-items: stretch; margin-top: 64px; }
.card { background: var(--card); border: none; border-radius: var(--radius); box-shadow: var(--shadow); padding: 44px 46px; display: flex; flex-direction: column; }
.card .c-num { font-family: var(--font-mono); font-weight: 600; font-size: 26px; color: var(--accent); margin-bottom: 24px; }
.card h3 { margin: 0 0 18px; font-size: 33px; font-weight: 700; line-height: 1.35; }
.card p { margin: 0; font-size: 26px; line-height: 1.6; color: var(--ink-2); text-wrap: pretty; }
.card p b { color: var(--ink); }
.card .c-foot { margin-top: auto; padding-top: 28px; }

/* 배지 */
.badge { font-family: var(--font-mono); font-size: 24px; font-weight: 500; letter-spacing: 0.06em; padding: 8px 18px; border-radius: 2px; display: inline-block; }
.badge--solid { background: var(--accent); color: white; }
.badge--line { border: 1px solid var(--line-strong); color: var(--ink-2); }

/* 콜아웃 */
.callout { background: var(--accent-tint); border-top: 3px solid var(--accent); padding: 30px 40px; font-size: 28px; line-height: 1.6; color: var(--ink-2); }
.callout b { color: var(--ink); }

/* ---------- 폰 프레임 (스크린샷 슬롯) ---------- */
.phones { display: flex; gap: 56px; justify-content: center; align-items: flex-start; flex: 1; min-height: 0; margin-top: 32px; }
.phone-wrap { display: flex; flex-direction: column; align-items: center; gap: 22px; }
.phone { width: 260px; height: 540px; border-radius: 40px; padding: 10px; position: relative; background: linear-gradient(170deg, #323d4c 0%, #1b2531 34%, #111a25 100%); box-shadow: inset 0 1px 1px oklch(1 0 0 / 0.22), inset 0 -1px 1px oklch(0 0 0 / 0.45), 0 0 0 1px oklch(0.16 0.02 255 / 0.55), var(--shadow); box-sizing: border-box; }
.phone::before { content: ""; position: absolute; right: -3px; top: 128px; width: 3px; height: 72px; border-radius: 0 3px 3px 0; background: #131c27; }
.phone::after { content: ""; position: absolute; left: -3px; top: 112px; width: 3px; height: 100px; border-radius: 3px 0 0 3px; background: #131c27; }
.phone video, .phone image-slot { width: 100%; height: 100%; display: block; object-fit: cover; border-radius: 30px; }
.phone-lbl { font-family: var(--font-mono); font-size: 24px; font-weight: 500; letter-spacing: 0.1em; color: var(--ink-2); }

/* ---------- 본사 대시보드 목업 ---------- */
.dash { background: var(--card); border-radius: 10px; box-shadow: var(--shadow); overflow: hidden; display: flex; flex-direction: column; }
.dash-bar { display: flex; align-items: center; gap: 9px; padding: 18px 26px; background: var(--surface); border-bottom: 1px solid var(--line); }
.dash-bar i { width: 14px; height: 14px; border-radius: 50%; background: var(--line-strong); display: block; }
.dash-bar span { font-size: 24px; color: var(--ink-3); margin-left: 12px; letter-spacing: 0.04em; }
.dash table { width: 100%; border-collapse: collapse; font-size: 25px; }
.dash th { text-align: left; font-size: 24px; font-weight: 600; letter-spacing: 0.05em; color: var(--ink-3); padding: 16px 26px; border-bottom: 1px solid var(--line-strong); }
.dash td { padding: 19px 26px; border-bottom: 1px solid var(--line); color: var(--ink-2); }
.dash tr:last-child td { border-bottom: none; }
.dash td.num { text-align: right; color: var(--ink); font-weight: 600; font-feature-settings: "tnum"; }
.dash th.num { text-align: right; }
.pill { display: inline-block; font-size: 24px; font-weight: 700; padding: 5px 16px; border-radius: 999px; white-space: nowrap; }
.pill--over { background: oklch(0.93 0.03 25); color: var(--neg); }
.pill--ok { background: var(--surface-2); color: var(--ink-2); }
.pill--under { background: oklch(0.94 0.045 80); color: oklch(0.48 0.10 70); }

/* 시그널 카드 (대시보드 우측 해석) */
.sig { background: var(--card); box-shadow: var(--shadow); border-radius: var(--radius); padding: 34px 40px; }
.sig .s-tag { font-size: 26px; font-weight: 800; display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.sig p { margin: 0; font-size: 25px; line-height: 1.6; color: var(--ink-2); }
.sig p b { color: var(--ink); }

/* 품질 카드뉴스 목업 */
.qcard { background: var(--card); box-shadow: var(--shadow); border-radius: 14px; padding: 38px 44px; display: flex; flex-direction: column; gap: 22px; }
.qcard .q-head { display: flex; justify-content: space-between; align-items: baseline; }
.qcard .q-head b { font-size: 29px; }
.qcard .q-head span { font-size: 24px; color: var(--ink-3); }
.qcard .q-row { display: flex; gap: 10px; flex-wrap: wrap; }
.qchip { font-size: 24px; font-weight: 600; padding: 9px 18px; border-radius: 6px; }
.qchip--good { background: oklch(0.94 0.03 165); color: var(--pos); }
.qchip--bad { background: oklch(0.93 0.03 25); color: var(--neg); }
.qcard .q-sum { font-size: 25px; line-height: 1.6; color: var(--ink-2); border-top: 1px solid var(--line); padding-top: 20px; margin: 0; }

/* 전 점포 히트 그리드 */
.heat { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; padding: 26px; }
.heat .t { border-radius: 6px; background: var(--accent-tint); padding: 16px 18px; box-sizing: border-box; display: flex; flex-direction: column; gap: 6px; }
.heat .t b { font-size: 24px; font-weight: 700; color: var(--ink); }
.heat .t span { font-size: 24px; color: var(--ink-3); font-feature-settings: "tnum"; }
.heat .t--warn { background: oklch(0.94 0.045 80); outline: 2px solid oklch(0.70 0.11 70); outline-offset: -2px; }
.heat .t--risk { background: oklch(0.93 0.03 25); outline: 2px solid oklch(0.62 0.13 25); outline-offset: -2px; }
.kpi-strip { display: flex; gap: 0; padding: 24px 26px; border-bottom: 1px solid var(--line); }
.kpi-strip .k { flex: 1; display: flex; flex-direction: column; gap: 6px; padding: 0 26px; border-left: 1px solid var(--line); }
.kpi-strip .k:first-child { border-left: none; padding-left: 0; }
.kpi-strip .k .kl { font-size: 24px; color: var(--ink-3); letter-spacing: 0.05em; }
.kpi-strip .k .kv { font-size: 40px; font-weight: 800; letter-spacing: -0.02em; font-feature-settings: "tnum"; }

/* ---------- 타사 앱 로고 (박스 없이 로고만) ---------- */
.app-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 56px; align-items: center; justify-items: center; }
.app-tile { display: flex; }
.app-tile image-slot { width: 216px; height: 69px; display: block; --slot-bg: transparent; }
.app-tile span { display: none; }

/* ---------- 폰 컬럼 (Before/After 옆) — 우측 강조, 화면 전체 보임 ---------- */
.vs--phone { grid-template-columns: 0.95fr 1.15fr 340px; gap: 40px; }
.phone-col { position: absolute; right: 100px; bottom: 92px; width: 336px; height: 700px; display: flex; flex-direction: column; gap: 14px; z-index: 2; }
.phone-col .phone-lbl { display: none; }
.vs--phone .phone { width: 100%; height: auto; flex: 1; min-height: 0; border-radius: 54px; padding: 12px; box-shadow: 0 24px 56px oklch(0.2 0.02 255 / 0.18); }
.vs--phone .phone video { border-radius: 42px; }

/* ---------- 모바일 미니 목업 (발주 카드) ---------- */
.mini-mock { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 20px 26px; margin-top: 16px; }
.mini-mock .mm-head { font-family: var(--font-mono); font-size: 24px; color: var(--ink-3); letter-spacing: 0.08em; margin-bottom: 10px; }
.mini-mock .mm-row { display: flex; justify-content: space-between; font-size: 24px; padding: 7px 0; border-bottom: 1px solid var(--line); color: var(--ink-2); }
.mini-mock .mm-row:last-of-type { border-bottom: none; }
.mini-mock .mm-row .v { font-family: var(--font-mono); color: var(--ink); }
.mini-mock .mm-btn { margin-top: 12px; background: var(--accent); color: white; text-align: center; font-size: 24px; font-weight: 700; padding: 10px; border-radius: 6px; }

/* ---------- 흐름 (스텝) ---------- */
.flow { display: grid; grid-template-columns: 1fr 56px 1fr 56px 1fr 56px 1fr; gap: 0; align-items: stretch; margin-top: 72px; }
.flow .f-step { background: var(--card); border: none; border-radius: var(--radius); box-shadow: var(--shadow); padding: 40px 38px; }
.flow .f-step .fn { font-family: var(--font-mono); font-weight: 600; font-size: 24px; color: var(--accent); margin-bottom: 18px; }
.flow .f-step h3 { margin: 0 0 14px; font-size: 30px; font-weight: 700; line-height: 1.35; }
.flow .f-step p { margin: 0; font-size: 24px; line-height: 1.55; color: var(--ink-2); }

/* 영상 카드 (본사 현황 슬라이드) — 영상 비율을 박스에 정확히 맞춰 레터박스 제거 */
.vidcard { height: 100%; min-height: 0; display: flex; flex-direction: column; gap: 16px; align-items: center; justify-content: center; flex: none; }
.vidcard video { height: 520px; flex: none; width: auto; background: var(--card); border-radius: 10px; box-shadow: 0 0 0 1px oklch(0.3 0.02 255 / 0.12), var(--shadow); display: block; object-fit: cover; }
.vid-lbl { font-family: var(--font-mono); font-size: 24px; font-weight: 500; letter-spacing: 0.1em; color: var(--ink-2); }

/* ---------- AUTOLINK 확정 로고 락업 (AUTOLINK Logo.html과 동일 스펙) ----------
   Sora 800 · 자간 -0.01em · 사슬 width = 1.39em · margin 0.07em · -8° */
.al-lockup { display: inline-flex; align-items: center; font-family: 'Sora', sans-serif; font-weight: 800; letter-spacing: -0.01em; line-height: 1; color: var(--ink); }
.al-lockup > span { font: inherit; color: inherit; }
.al-lockup svg { width: 1.39em; aspect-ratio: 2 / 1; overflow: visible; transform: rotate(-8deg); margin: 0 0.07em; flex: none; }

/* 축약 표 (도구 표 등 행 높이 압축) */
.tbl-tight th { padding: 12px 26px !important; }
.tbl-tight td { padding: 12px 26px !important; font-size: 24px !important; }

/* ---------- 허브 & 스포크 아키텍처 (7장) ---------- */
.arch2 { position: relative; height: 690px; flex: none; margin-top: 36px; }
.arch2 .spokes { position: absolute; inset: 0; width: 100%; height: 100%; }
.spoke { stroke: oklch(from var(--accent) calc(l + 0.25) calc(c * 0.5) h); stroke-width: 4; fill: none; stroke-dasharray: 10 26; }
@media (prefers-reduced-motion: no-preference) {
  @keyframes spokemove { to { stroke-dashoffset: -36; } }
  .slide[data-deck-active] .spoke { animation: spokemove 1.1s linear infinite; }
}
.n2 { position: absolute; width: 310px; box-sizing: border-box; background: var(--card); border-radius: 14px; padding: 16px 22px; display: flex; flex-direction: column; align-items: center; gap: 3px; box-shadow: var(--shadow); }
.n2 b { font-size: 25px; color: var(--ink); line-height: 1.25; white-space: nowrap; }
.n2 img { height: 26px; max-width: 85%; object-fit: contain; display: block; margin: 4px 0 2px; }
.n2 small { font-size: 24px; color: var(--ink-3); white-space: nowrap; }
.n2-grp { position: absolute; font-size: 24px; font-weight: 600; letter-spacing: 0.06em; color: var(--ink-3); }
.hub2 { position: absolute; width: 240px; height: 240px; border-radius: 50%; background: var(--accent); color: white; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; box-shadow: var(--shadow); text-align: center; }
.hub2 b { font-weight: 800; font-size: 46px; line-height: 1.25; }
.hub2 small { font-size: 24px; color: rgb(255 255 255 / 0.88); line-height: 1.4; }
.out2 { position: absolute; width: 350px; box-sizing: border-box; background: var(--surface); border-radius: 16px; padding: 24px 28px; }
.out2 > b { font-size: 29px; color: var(--ink); display: block; text-align: center; }
.out2 > small { display: block; font-size: 24px; color: var(--ink-3); text-align: center; margin-top: 4px; }
.out2 .feat { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); display: flex; flex-direction: column; gap: 9px; }
.out2 .feat .fhead { font-size: 24px; font-weight: 700; color: var(--accent); }
.out2 .feat span { display: flex; align-items: center; gap: 10px; font-size: 24px; color: var(--ink-2); }
.out2 .feat img { height: 20px; }

/* 표지 · 디바이더 */
.sec-num { font-family: var(--font-mono); font-weight: 600; font-size: 340px; line-height: 1; color: oklch(from var(--accent-deep) calc(l + 0.07) c h); letter-spacing: -0.04em; position: absolute; right: 100px; bottom: 20px; user-select: none; }

/* 두 기둥 (기대 슬라이드) */
.pillars { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; flex: 1; min-height: 0; margin-top: 64px; align-items: stretch; }
.pillar { background: var(--card); border: none; border-radius: var(--radius); box-shadow: var(--shadow); padding: 56px 60px; display: flex; flex-direction: column; }
.pillar .who { font-family: var(--font-mono); font-size: 24px; font-weight: 500; letter-spacing: 0.12em; color: var(--accent); margin-bottom: 32px; }
.pillar blockquote { margin: 0; font-family: var(--font-display); font-weight: 600; font-size: 44px; line-height: 1.5; color: var(--ink); text-wrap: pretty; }
.pillar p { margin: 28px 0 0; font-size: 26px; line-height: 1.65; color: var(--ink-2); text-wrap: pretty; }

/* 입력 → 엔진 → 출력 아키텍처 */
.arch { display: grid; grid-template-columns: 1fr 70px 1.05fr 70px 1fr; gap: 0; align-items: center; flex: 1; min-height: 0; margin-top: 56px; }
.arch .stack { display: flex; flex-direction: column; gap: 18px; }
.arch .stack .grp { font-family: var(--font-mono); font-size: 24px; letter-spacing: 0.1em; color: var(--ink-3); margin: 14px 0 2px; }
.arch .stack .grp:first-child { margin-top: 0; }
.engine { background: var(--accent); border-radius: var(--radius); color: white; padding: 56px 48px; text-align: center; box-shadow: var(--shadow); }
.engine .e-name { font-family: var(--font-mono); font-weight: 700; font-size: 56px; letter-spacing: 0.08em; }
.engine .e-desc { font-size: 25px; color: oklch(0.93 0.02 255); margin-top: 14px; line-height: 1.55; }
.engine .e-keys { display: flex; gap: 14px; justify-content: center; margin-top: 36px; }
.engine .e-keys span { font-size: 26px; font-weight: 700; padding: 14px 30px; border: 1px solid rgb(255 255 255 / 0.4); border-radius: 2px; color: white; }

/* ============================================================
   슬라이드 진입 애니메이션 — 페이지 넘길 때마다 항목별 스태거
   data-deck-active 게이트: 인쇄/PDF/리듀스드모션에선 항상 완성 상태
   ============================================================ */
@media (prefers-reduced-motion: no-preference) {
  @keyframes al-up { from { opacity: 0; transform: translateY(28px); } }
  @keyframes al-fade { from { opacity: 0; } }

  /* 1) 머리: 러닝헤드 → 제목 → 키라인/리드 */
  .slide[data-deck-active] .slide-head { animation: al-fade 0.4s both; }
  .slide[data-deck-active] .s-title,
  .slide[data-deck-active] .ag-display,
  .slide[data-deck-active] .ag-h1 { animation: al-up 0.55s 0.05s cubic-bezier(0.22, 0.8, 0.3, 1) both; }
  .slide[data-deck-active] .keyline,
  .slide[data-deck-active] .s-sub,
  .slide[data-deck-active] .ag-lead { animation: al-up 0.55s 0.16s cubic-bezier(0.22, 0.8, 0.3, 1) both; }

  /* 2) 본문 블록 그리드 — 형제 순서대로 스태거 */
  .slide[data-deck-active] :is(.pillars, .cards3, .flow, .phones, .arch, .app-tiles, .vs) > * {
    animation: al-up 0.5s cubic-bezier(0.22, 0.8, 0.3, 1) both;
  }
  .slide[data-deck-active] :is(.pillars, .cards3, .flow, .phones, .arch, .app-tiles, .vs) > :nth-child(1) { animation-delay: 0.2s; }
  .slide[data-deck-active] :is(.pillars, .cards3, .flow, .phones, .arch, .app-tiles, .vs) > :nth-child(2) { animation-delay: 0.3s; }
  .slide[data-deck-active] :is(.pillars, .cards3, .flow, .phones, .arch, .app-tiles, .vs) > :nth-child(3) { animation-delay: 0.4s; }
  .slide[data-deck-active] :is(.pillars, .cards3, .flow, .phones, .arch, .app-tiles, .vs) > :nth-child(4) { animation-delay: 0.5s; }
  .slide[data-deck-active] :is(.pillars, .cards3, .flow, .phones, .arch, .app-tiles, .vs) > :nth-child(5) { animation-delay: 0.6s; }
  .slide[data-deck-active] :is(.pillars, .cards3, .flow, .phones, .arch, .app-tiles, .vs) > :nth-child(6) { animation-delay: 0.7s; }
  .slide[data-deck-active] :is(.pillars, .cards3, .flow, .phones, .arch, .app-tiles, .vs) > :nth-child(7) { animation-delay: 0.8s; }

  /* 3) 리스트 항목 — 블록 도착 후 한 줄씩 */
  .slide[data-deck-active] .plist .item { animation: al-up 0.45s cubic-bezier(0.22, 0.8, 0.3, 1) both; }
  .slide[data-deck-active] .plist .item:nth-child(1) { animation-delay: 0.4s; }
  .slide[data-deck-active] .plist .item:nth-child(2) { animation-delay: 0.5s; }
  .slide[data-deck-active] .plist .item:nth-child(3) { animation-delay: 0.6s; }
  .slide[data-deck-active] .plist .item:nth-child(4) { animation-delay: 0.7s; }

  /* 4) 단독 블록 */
  .slide[data-deck-active] :is(.dash, .qcard, .callout, .mini-mock) { animation: al-up 0.5s 0.45s cubic-bezier(0.22, 0.8, 0.3, 1) both; }
  .slide[data-deck-active] .phone-col { animation: al-up 0.6s 0.55s cubic-bezier(0.22, 0.8, 0.3, 1) both; }
  .slide[data-deck-active] .vidcard { animation: al-up 0.5s cubic-bezier(0.22, 0.8, 0.3, 1) both; }
  .slide[data-deck-active] .vidcard:nth-child(1) { animation-delay: 0.25s; }
  .slide[data-deck-active] .vidcard:nth-child(2) { animation-delay: 0.35s; }
  .slide[data-deck-active] .vidcard:nth-child(3) { animation-delay: 0.45s; }
  .slide[data-deck-active] .sig { animation: al-up 0.5s cubic-bezier(0.22, 0.8, 0.3, 1) both; }
  .slide[data-deck-active] .sig:nth-child(1) { animation-delay: 0.45s; }
  .slide[data-deck-active] .sig:nth-child(2) { animation-delay: 0.58s; }

  /* 5) 히트맵 타일 — 잘게 차오르기 */
  .slide[data-deck-active] .heat .t { animation: al-fade 0.35s both; }
  .slide[data-deck-active] .heat .t:nth-child(1) { animation-delay: 0.45s; }
  .slide[data-deck-active] .heat .t:nth-child(2) { animation-delay: 0.49s; }
  .slide[data-deck-active] .heat .t:nth-child(3) { animation-delay: 0.53s; }
  .slide[data-deck-active] .heat .t:nth-child(4) { animation-delay: 0.57s; }
  .slide[data-deck-active] .heat .t:nth-child(5) { animation-delay: 0.61s; }
  .slide[data-deck-active] .heat .t:nth-child(6) { animation-delay: 0.65s; }
  .slide[data-deck-active] .heat .t:nth-child(7) { animation-delay: 0.69s; }
  .slide[data-deck-active] .heat .t:nth-child(8) { animation-delay: 0.73s; }
  .slide[data-deck-active] .heat .t:nth-child(9) { animation-delay: 0.77s; }
  .slide[data-deck-active] .heat .t:nth-child(10) { animation-delay: 0.81s; }
  .slide[data-deck-active] .heat .t:nth-child(11) { animation-delay: 0.85s; }
  .slide[data-deck-active] .heat .t:nth-child(12) { animation-delay: 0.89s; }

  /* 6) 디바이더 대형 번호 + 푸터 */
  .slide[data-deck-active] .sec-num { animation: al-fade 0.8s 0.3s both; }
  .slide[data-deck-active] .slide-foot { animation: al-fade 0.5s 0.5s both; }

  /* 중첩 과다 방지 — 블록 안의 plist는 블록 애니메이션에 맡기고 개별은 끔 */
  .slide[data-deck-active] :is(.pillar, .card, .f-step) .plist .item { animation: none; }
}

/* ---------- 다크 테크 테마 (Tweaks) ---------- */
.theme-dark {
  --paper: oklch(0.165 0.015 255);
  --surface: oklch(0.215 0.02 255);
  --surface-2: oklch(0.25 0.02 255);
  --card: oklch(0.205 0.02 255);
  --ink: oklch(0.95 0.005 250);
  --ink-2: oklch(0.76 0.01 255);
  --ink-3: oklch(0.60 0.015 255);
  --line: oklch(0.30 0.02 255);
  --line-strong: oklch(0.40 0.025 255);
  --on-dark-line: oklch(0.42 0.04 255);
  --shadow: 0 1px 2px rgb(0 0 0 / 0.45), 0 8px 28px rgb(0 0 0 / 0.4);
}
.theme-dark .logo { filter: invert(1); }
.theme-dark .slide--dark { background: oklch(0.12 0.015 255); }
.theme-dark .mini-mock .mm-btn, .theme-dark .badge--solid { color: oklch(0.97 0.005 250); }
