/* ═══════════════════════════════════════════════════════════════
   CMDSPACE Deck Core · deck-core.css  (R1 · 2026-09-09)
   엔진 공용 스타일. 테마는 이 파일 뒤에 로드되어 슬라이드 내부와
   패널 변수(--dk-*)만 덮어쓴다. 슬라이드 내부 레이아웃은 테마 책임.
   ═══════════════════════════════════════════════════════════════ */
:root{
  --cmds-green:#001A44; --cmds-green-bright:#007F86; --cmds-pink:#00B5AD;
  --font-sans:"SF Pro Display","SF Pro Text","Pretendard Variable",system-ui,-apple-system,sans-serif;
  --font-display:"SF Pro Display","Pretendard Variable",sans-serif;
  --font-mono:"SF Mono","JetBrains Mono",ui-monospace,Menlo,monospace;
  /* 테마가 덮어쓰는 기본 팔레트 */
  --bg:#F6F5F0; --fg:#1B1B1B; --muted:#5F655F; --line:rgba(27,27,27,.14);
  --accent:var(--cmds-green); --accent-on:#FFFFFF;
  /* 패널(크롬) 변수 — 테마가 덮어쓸 수 있음 */
  --dk-panel-bg:rgba(246,245,240,.92); --dk-panel-fg:#1B1B1B; --dk-panel-line:rgba(27,27,27,.12);
  --dk-panel-h:44px; --dk-notes-w:440px; --dk-font:var(--font-mono); --dk-accent:var(--accent);
  /* 무대 */
  --stage-w:1920px; --stage-h:1080px; --dk-scale:1;
  --dk-top:0px; --dk-bottom:0px; --dk-right:0px;
  --dk-w:1920px; --dk-h:1080px;
  color-scheme:light;
}
html[data-theme="dark"]{
  --bg:#111311; --fg:#F2F1EC; --muted:#A7ADA7; --line:rgba(242,241,236,.16);
  --accent:var(--cmds-pink); --accent-on:#1B1B1B;
  --dk-panel-bg:rgba(17,19,17,.92); --dk-panel-fg:#F2F1EC; --dk-panel-line:rgba(242,241,236,.14);
  color-scheme:dark;
}
@media (prefers-color-scheme: dark){
  html:not([data-theme="light"]){
    --bg:#111311; --fg:#F2F1EC; --muted:#A7ADA7; --line:rgba(242,241,236,.16);
    --accent:var(--cmds-pink); --accent-on:#1B1B1B;
    --dk-panel-bg:rgba(17,19,17,.92); --dk-panel-fg:#F2F1EC; --dk-panel-line:rgba(242,241,236,.14);
    color-scheme:dark;
  }
}
html[data-aspect="16x10"]{ --stage-h:1200px; }

*,*::before,*::after{ box-sizing:border-box; }
html,body{ margin:0; height:100%; }
body{ background:var(--bg); color:var(--fg); font-family:var(--font-sans); overflow:hidden; -webkit-font-smoothing:antialiased; word-break:keep-all; overflow-wrap:break-word; }
html.dk-noscript body{ overflow:auto; }

/* ───────── 뷰 영역 ───────── */
#dk-area{ position:fixed; left:0; top:var(--dk-top); right:var(--dk-right); bottom:var(--dk-bottom); overflow:hidden; }
#deck{ position:absolute; }

/* 고정 캔버스 엔진 */
html[data-engine="stage"] #deck{
  width:var(--stage-w); height:var(--stage-h); left:50%; top:50%;
  transform:translate(-50%,-50%) scale(var(--dk-scale)); transform-origin:center;
  background:var(--bg);
}
html[data-engine="stage"] .slide{ position:absolute; inset:0; width:var(--stage-w); height:var(--stage-h); display:none; overflow:hidden; }
html[data-engine="stage"] .slide[data-active]{ display:flex; flex-direction:column; }

/* 유동 스크롤 엔진 */
html[data-engine="scroll"] #deck{
  width:var(--dk-w); height:var(--dk-h); left:50%; top:50%; transform:translate(-50%,-50%);
  overflow-y:auto; overflow-x:hidden; scroll-snap-type:y mandatory; scroll-behavior:smooth;
  background:var(--bg); scrollbar-width:none;
}
html[data-engine="scroll"] #deck::-webkit-scrollbar{ display:none; }
html[data-engine="scroll"] .slide{ position:relative; width:100%; min-height:100%; height:var(--dk-h); scroll-snap-align:start; scroll-snap-stop:always; display:flex; flex-direction:column; overflow:hidden; }
@media (prefers-reduced-motion: reduce){ html[data-engine="scroll"] #deck{ scroll-behavior:auto; } }

/* ───────── 순차 공개 기본값 (테마가 모션을 정의; 여기선 상태만) ───────── */
html.js [data-step]{ opacity:0; transform:translateY(12px); transition:opacity .45s ease, transform .45s ease; }
html.js [data-step].in{ opacity:1; transform:none; }
html.js svg [data-step]{ transform:none; }
@media (prefers-reduced-motion: reduce){ html.js [data-step]{ opacity:1 !important; transform:none !important; transition:none !important; } }
html:not(.js) [data-step]{ opacity:1; transform:none; }

/* ───────── 패널(크롬) ───────── */
.dk-panel{
  position:fixed; left:0; right:var(--dk-right); height:var(--dk-panel-h); z-index:40;
  display:flex; align-items:center; gap:14px; padding:0 14px;
  background:var(--dk-panel-bg); color:var(--dk-panel-fg); font:500 12px/1 var(--dk-font);
  letter-spacing:.04em; backdrop-filter:saturate(1.2) blur(8px); -webkit-backdrop-filter:saturate(1.2) blur(8px);
  transition:transform .25s ease, opacity .25s ease; user-select:none;
}
.dk-top{ top:0; border-bottom:1px solid var(--dk-panel-line); }
.dk-bottom{ bottom:0; border-top:1px solid var(--dk-panel-line); }
.dk-brand{ font-weight:700; letter-spacing:.14em; display:flex; align-items:center; gap:8px; }
.dk-brand i{ width:10px; height:10px; border-radius:50%; background:var(--dk-accent); display:inline-block; }
.dk-title{ opacity:.75; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:1 1 auto; min-width:0; }
.dk-title b{ font-weight:600; opacity:1; }
.dk-ctl{ display:flex; gap:6px; margin-left:auto; }
.dk-btn{
  appearance:none; border:1px solid var(--dk-panel-line); background:transparent; color:inherit;
  font:inherit; padding:6px 9px; border-radius:4px; cursor:pointer; white-space:nowrap;
}
.dk-btn:hover{ border-color:var(--dk-accent); }
.dk-btn[aria-pressed="true"]{ background:var(--dk-accent); color:var(--accent-on); border-color:var(--dk-accent); }
.dk-btn kbd{ font:inherit; opacity:.6; margin-left:5px; }
.dk-progress{ position:relative; flex:1 1 auto; height:4px; background:var(--dk-panel-line); border-radius:2px; cursor:pointer; overflow:hidden; }
.dk-progress i{ position:absolute; left:0; top:0; bottom:0; width:100%; background:var(--dk-accent); transform-origin:left; transform:scaleX(0); transition:transform .3s ease; }
.dk-idx{ font-variant-numeric:tabular-nums; min-width:70px; text-align:center; }
.dk-sec{ opacity:.7; max-width:260px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dk-timer,.dk-clock{ font-variant-numeric:tabular-nums; opacity:.85; cursor:pointer; }
.dk-timer::before{ content:"TIMER "; opacity:.55; } .dk-clock::before{ content:"CLK "; opacity:.55; }
.dk-mode{ opacity:.6; }

/* 모드별 패널 노출 */
html[data-mode="stage"] .dk-top{ transform:translateY(-100%); opacity:0; pointer-events:none; }
html[data-mode="stage"] .dk-bottom{ transform:translateY(100%); opacity:0; pointer-events:none; }
html[data-mode="stage"][data-peek="top"] .dk-top,
html[data-mode="stage"][data-peek="bottom"] .dk-bottom{ transform:none; opacity:1; pointer-events:auto; }
html[data-mode="stage"] body{ cursor:none; }
html[data-mode="stage"][data-peek] body{ cursor:auto; }

/* ───────── 인라인 노트 컬럼 (mode=notes) ───────── */
#dk-notes{
  position:fixed; top:0; right:0; bottom:0; width:var(--dk-notes-w); z-index:39;
  background:var(--dk-panel-bg); color:var(--dk-panel-fg); border-left:1px solid var(--dk-panel-line);
  padding:var(--dk-panel-h) 22px; overflow:auto; display:none; font-family:var(--font-sans);
}
html[data-mode="notes"] #dk-notes{ display:block; }
#dk-notes .nw-no{ font:600 12px/1 var(--dk-font); letter-spacing:.1em; opacity:.6; margin:16px 0 8px; }
#dk-notes .nw-title{ font:700 20px/1.3 var(--font-display); margin:0 0 14px; }
#dk-notes .nw-body{ font:400 17px/1.65 var(--font-sans); white-space:pre-wrap; }
#dk-notes .nw-next{ margin-top:26px; padding-top:14px; border-top:1px solid var(--dk-panel-line); font-size:13px; opacity:.7; }
#dk-notes .nw-next b{ display:block; font:600 11px/1 var(--dk-font); letter-spacing:.1em; margin-bottom:6px; opacity:.7; }

/* ───────── 도움말 · 토스트 ───────── */
#dk-help{ position:fixed; inset:0; z-index:60; display:none; align-items:center; justify-content:center; background:rgba(0,0,0,.55); }
#dk-help.on{ display:flex; }
#dk-help .card{ background:var(--dk-panel-bg); color:var(--dk-panel-fg); border:1px solid var(--dk-panel-line); border-radius:8px; padding:26px 30px; width:min(760px,92vw); font:400 14px/1.6 var(--font-sans); }
#dk-help h3{ margin:0 0 12px; font:700 16px/1 var(--font-display); }
#dk-help table{ width:100%; border-collapse:collapse; }
#dk-help td{ padding:5px 8px; border-top:1px solid var(--dk-panel-line); vertical-align:top; }
#dk-help td:first-child{ font-family:var(--dk-font); font-size:12px; white-space:nowrap; width:170px; }
#dk-toast{ position:fixed; left:50%; bottom:calc(var(--dk-bottom) + 18px); transform:translateX(-50%); z-index:61; background:var(--dk-panel-bg); color:var(--dk-panel-fg); border:1px solid var(--dk-panel-line); border-radius:4px; padding:8px 12px; font:500 12px/1 var(--dk-font); letter-spacing:.06em; opacity:0; transition:opacity .2s; pointer-events:none; }
#dk-toast.on{ opacity:1; }

/* ───────── 노트 창 (?view=notes) ───────── */
html[data-view="notes"] #dk-area, html[data-view="notes"] .dk-panel, html[data-view="notes"] #dk-notes{ display:none !important; }
html[data-view="notes"] body{ overflow:auto; background:#141614; color:#F2F1EC; }
.dk-nw{ min-height:100vh; display:grid; grid-template-columns:minmax(0,1fr) 300px; grid-template-rows:auto 1fr auto; font-family:var(--font-sans); }
.dk-nw header{ grid-column:1/-1; display:flex; align-items:center; gap:16px; padding:14px 22px; border-bottom:1px solid rgba(255,255,255,.12); font:600 12px/1 var(--font-mono); letter-spacing:.1em; }
.dk-nw header .st{ margin-left:auto; opacity:.6; }
.dk-nw header .st.live{ color:var(--cmds-pink); opacity:1; }
.dk-nw main{ padding:26px 30px; }
.dk-nw .nw-no{ font:600 13px/1 var(--font-mono); letter-spacing:.12em; opacity:.55; }
.dk-nw .nw-title{ font:700 clamp(24px,3.4vw,40px)/1.25 var(--font-display); margin:10px 0 22px; }
.dk-nw .nw-body{ font:400 clamp(18px,2.2vw,26px)/1.6 var(--font-sans); white-space:pre-wrap; }
.dk-nw .nw-next{ margin-top:34px; padding-top:16px; border-top:1px solid rgba(255,255,255,.12); font-size:15px; opacity:.7; }
.dk-nw .nw-next b{ display:block; font:600 11px/1 var(--font-mono); letter-spacing:.12em; margin-bottom:8px; }
.dk-nw aside{ border-left:1px solid rgba(255,255,255,.12); padding:26px 22px; display:flex; flex-direction:column; gap:22px; }
.dk-nw .big{ font:700 56px/1 var(--font-mono); font-variant-numeric:tabular-nums; letter-spacing:-.02em; }
.dk-nw .lbl{ font:600 11px/1 var(--font-mono); letter-spacing:.14em; opacity:.55; margin-bottom:8px; }
.dk-nw .ctl{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.dk-nw .ctl button{ appearance:none; border:1px solid rgba(255,255,255,.2); background:transparent; color:inherit; font:600 14px/1 var(--font-mono); padding:14px; border-radius:6px; cursor:pointer; }
.dk-nw .ctl button:hover{ border-color:var(--cmds-pink); }
.dk-nw .ctl button.wide{ grid-column:1/-1; }
.dk-nw .keys{ font:400 12px/1.7 var(--font-mono); opacity:.5; margin-top:auto; }
.dk-nw footer{ grid-column:1/-1; padding:10px 22px; border-top:1px solid rgba(255,255,255,.12); font:400 11px/1 var(--font-mono); opacity:.5; letter-spacing:.06em; }

/* ───────── 인쇄 ───────── */
@media print{
  @page{ size:1920px 1080px; margin:0; }
  html[data-aspect="16x10"] @page{ size:1920px 1200px; }
  html,body{ height:auto; overflow:visible; background:#FFFFFF; }
  #dk-area{ position:static; overflow:visible; }
  #deck{ position:static !important; transform:none !important; width:var(--stage-w) !important; height:auto !important; overflow:visible !important; }
  .slide{ position:relative !important; display:flex !important; flex-direction:column; width:var(--stage-w) !important; height:var(--stage-h) !important; min-height:0 !important; page-break-after:always; break-after:page; overflow:hidden; }
  .dk-panel, #dk-notes, #dk-help, #dk-toast{ display:none !important; }
  [data-step]{ opacity:1 !important; transform:none !important; transition:none !important; }
}
@media screen{html:not([data-viewmode="present"]) .slide{ padding:96px 120px; gap:24px; }
html:not([data-viewmode="present"]) .kicker{ font:600 22px/1 var(--font-mono); letter-spacing:.12em; color:var(--accent); margin:0; text-transform:uppercase; }
html:not([data-viewmode="present"]) .headline{ font:700 clamp(56px,6vw,92px)/1.12 var(--font-display); letter-spacing:-.02em; margin:0; }
html:not([data-viewmode="present"]) .headline .sub{ display:block; font-size:.5em; font-weight:500; color:var(--muted); margin-top:.3em; }
html:not([data-viewmode="present"]) .lead{ font:400 32px/1.5 var(--font-sans); color:var(--muted); margin:0; max-width:1400px; }
html:not([data-viewmode="present"]) .foot{ margin-top:auto; display:flex; justify-content:space-between; gap:40px; font:400 20px/1.4 var(--font-sans); color:var(--muted); border-top:1px solid var(--line); padding-top:18px; }
html:not([data-viewmode="present"]) .foot-src{ font-family:var(--font-mono); font-size:16px; white-space:nowrap; }
html:not([data-viewmode="present"]) .grid{ display:grid; gap:24px; } html:not([data-viewmode="present"]) .cols-3{ grid-template-columns:repeat(3,1fr);} html:not([data-viewmode="present"]) .cols-4{ grid-template-columns:repeat(4,1fr);}
html:not([data-viewmode="present"]) .cell{ border:1px solid var(--line); padding:26px; display:flex; flex-direction:column; gap:10px; }
html:not([data-viewmode="present"]) .cell-no{ font:600 18px var(--font-mono); color:var(--accent); } html:not([data-viewmode="present"]) .cell-title{ font:700 30px/1.2 var(--font-display);} html:not([data-viewmode="present"]) .cell-text{ font:400 22px/1.45 var(--font-sans); color:var(--muted);}
html:not([data-viewmode="present"]) .steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; } html:not([data-viewmode="present"]) .steps.ladder{ grid-template-columns:1fr; gap:14px; }
html:not([data-viewmode="present"]) .step{ border-top:3px solid var(--line); padding-top:16px; display:grid; gap:8px; } html:not([data-viewmode="present"]) .step.hi{ border-color:var(--accent); }
html:not([data-viewmode="present"]) .step-no{ font:600 20px var(--font-mono); color:var(--accent);} html:not([data-viewmode="present"]) .step-title{ font:700 32px/1.2 var(--font-display);} html:not([data-viewmode="present"]) .step-text{ font:400 22px/1.45; color:var(--muted);}
html:not([data-viewmode="present"]) .stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
html:not([data-viewmode="present"]) .stat{ display:grid; } html:not([data-viewmode="present"]) .num{ font:700 120px/1 var(--font-display); letter-spacing:-.04em; color:var(--accent);} html:not([data-viewmode="present"]) .unit{ font:700 40px; } html:not([data-viewmode="present"]) .label{ font:400 24px; color:var(--muted); }
html:not([data-viewmode="present"]) .tbl{ border-collapse:collapse; width:100%; font:400 26px/1.4 var(--font-sans); } html:not([data-viewmode="present"]) .tbl th,html:not([data-viewmode="present"]) .tbl td{ text-align:left; padding:12px 16px; border-bottom:1px solid var(--line);} html:not([data-viewmode="present"]) .tbl th{ font-weight:600; color:var(--muted); } html:not([data-viewmode="present"]) .tbl .hi{ color:var(--accent); font-weight:600; }
html:not([data-viewmode="present"]) .quote{ margin:0; } html:not([data-viewmode="present"]) .quote p{ font:700 64px/1.3 var(--font-display); margin:0 0 20px; } html:not([data-viewmode="present"]) .quote cite{ font:400 24px var(--font-mono); color:var(--muted); font-style:normal; }
html:not([data-viewmode="present"]) .diagram{ width:100%; max-height:560px; } html:not([data-viewmode="present"]) .diagram rect{ fill:none; stroke:currentColor; stroke-width:3; } html:not([data-viewmode="present"]) .diagram path{ stroke:var(--accent); stroke-width:3; fill:none; } html:not([data-viewmode="present"]) .dg-t{ font:700 38px var(--font-display); fill:currentColor; } html:not([data-viewmode="present"]) .dg-s{ font:400 22px var(--font-sans); fill:var(--muted); } html:not([data-viewmode="present"]) .dg-v{ font:600 22px var(--font-mono); fill:var(--accent); }
html:not([data-viewmode="present"]) .compare{ display:grid; grid-template-columns:1fr 1fr; gap:40px; } html:not([data-viewmode="present"]) .compare h3{ font:700 36px var(--font-display); margin:0 0 16px; } html:not([data-viewmode="present"]) .compare ul{ margin:0; padding-left:1.2em; font:400 28px/1.6; } html:not([data-viewmode="present"]) .compare .b h3{ color:var(--accent); }
html:not([data-viewmode="present"]) .terminal{ margin:0; background:#0F110F; color:#E7E9E4; font:400 26px/1.6 var(--font-mono); padding:32px; border-radius:6px; overflow:hidden; } html:not([data-viewmode="present"]) .terminal .prompt{ color:var(--cmds-pink);} html:not([data-viewmode="present"]) .terminal .dim{ opacity:.55;} html:not([data-viewmode="present"]) .terminal .ok{ color:#4D9ED1;}
html:not([data-viewmode="present"]) .body-list{ margin:0; padding-left:1.2em; font:400 30px/1.6; }
html:not([data-viewmode="present"]) .timeline{ display:grid; grid-template-columns:repeat(5,1fr); gap:20px; } html:not([data-viewmode="present"]) .tick{ border-left:3px solid var(--line); padding-left:18px; display:grid; gap:8px; } html:not([data-viewmode="present"]) .tick-when{ font:700 28px var(--font-mono); color:var(--accent);} html:not([data-viewmode="present"]) .tick-lv{ font:600 20px var(--font-mono); color:var(--muted);} html:not([data-viewmode="present"]) .tick-what{ font:400 22px/1.45; }
html:not([data-viewmode="present"]) .bars{ display:grid; gap:16px; } html:not([data-viewmode="present"]) .bar{ display:grid; grid-template-columns:1fr 600px 90px; align-items:center; gap:20px; font:400 26px; } html:not([data-viewmode="present"]) .bar-track{ height:22px; background:var(--line); } html:not([data-viewmode="present"]) .bar-track i{ display:block; height:100%; width:var(--w,0%); background:var(--accent); } html:not([data-viewmode="present"]) .bar-val{ font:600 26px var(--font-mono); text-align:right; }
html:not([data-viewmode="present"]) .toggle-ctl{ display:flex; gap:12px; margin-bottom:24px; } html:not([data-viewmode="present"]) .toggle-ctl button{ font:600 24px var(--font-sans); padding:14px 22px; border:1px solid var(--line); background:transparent; color:inherit; cursor:pointer; } html:not([data-viewmode="present"]) .toggle-ctl button[aria-pressed="true"]{ background:var(--accent); color:var(--accent-on); }
html:not([data-viewmode="present"]) .toggle-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; } html:not([data-viewmode="present"]) .tg{ border:1px solid var(--line); padding:24px; display:grid; gap:8px; } html:not([data-viewmode="present"]) .tg-a,html:not([data-viewmode="present"]) .tg-b{ font:700 38px var(--font-display); } html:not([data-viewmode="present"]) .toggle[data-view="note"] .tg-b,html:not([data-viewmode="present"]) .toggle[data-view="harness"] .tg-a{ display:none; } html:not([data-viewmode="present"]) .tg-desc{ font:400 20px; color:var(--muted);} html:not([data-viewmode="present"]) .toggle-verdict{ font:400 30px/1.5; margin:24px 0 0; color:var(--accent); }
}/* ═══════════════════════════════════════════════════════════════
   Typographic Poster · theme.css   (port of v14 · 2026-09-09)
   스위스 포스터 격자 — 여백 110 · 측정폭 1700 · 12열 123.33 · 거터 20
   헤드라인 800 / 1.02 / -.045em, 측정폭에 잠김(theme.js 가 넘침만 줄인다)
   색 면 4장 = k-section (03 09 14 20) · 탤리 틱 + 시트 번호는 theme.js 주입
   ═══════════════════════════════════════════════════════════════ */

/* ───────── 팔레트 (v14 그대로 · 코어 --bg/--fg/--line/--accent 덮어쓰기) ───────── */
html[data-viewmode="present"]{
  --bg:#E8EEF5; --fg:#12110F; --dim:#485565; --faint:#66758A; --line:#99B0CE; --hair:#CBD3DD;
  --muted:var(--dim);
  --accent:var(--cmds-green); --accent-on:#FFFFFF; --em:var(--accent);
  --ease:cubic-bezier(.2,.7,.2,1);
  --m:110px; --measure:1700px; --col:123.33px; --gut:20px;
  --mast-gap:48px; --block-gap:36px;
  --dk-panel-bg:rgba(232,238,245,.94); --dk-panel-fg:#12110F; --dk-panel-line:#99B0CE;
  --dk-panel-h:44px; --dk-notes-w:440px; --dk-font:var(--font-mono); --dk-accent:var(--accent);
}
html[data-viewmode="present"][data-theme="dark"]{
  --bg:#0F0F0E; --fg:#E8EEF5; --dim:#99B0CE; --faint:#485565; --line:#33322E; --hair:#242320;
  --muted:var(--dim); --accent:var(--cmds-pink); --accent-on:#1B1B1B;
  --dk-panel-bg:rgba(15,15,14,.94); --dk-panel-fg:#E8EEF5; --dk-panel-line:#33322E;
}
@media (prefers-color-scheme: dark){
  html[data-viewmode="present"]:not([data-theme="light"]){
    --bg:#0F0F0E; --fg:#E8EEF5; --dim:#99B0CE; --faint:#485565; --line:#33322E; --hair:#242320;
    --muted:var(--dim); --accent:var(--cmds-pink); --accent-on:#1B1B1B;
    --dk-panel-bg:rgba(15,15,14,.94); --dk-panel-fg:#E8EEF5; --dk-panel-line:#33322E;
  }
}
html[data-viewmode="present"][data-aspect="16x10"]{ --mast-gap:64px; --block-gap:48px; }

html[data-viewmode="present"] body{ font-size:24px; line-height:1.4; letter-spacing:-.012em; text-rendering:optimizeLegibility; }
html[data-viewmode="present"] b,html[data-viewmode="present"] strong{ font-weight:800; color:var(--em); }
html[data-viewmode="present"] code{ font-family:var(--font-mono); font-size:.86em; letter-spacing:0; font-weight:500; }

/* ───────── 시트 ───────── */
html[data-viewmode="present"] .slide{
  padding:72px var(--m) 40px; background:var(--bg); color:var(--fg);
  --em:var(--accent);
}
html[data-viewmode="present"].js .slide[data-active]{ animation:tpSheet .45s var(--ease) both; }
@keyframes tpSheet{ from{opacity:0} to{opacity:1} }

/* 색 면 — 네 섹션 디바이더 */
html[data-viewmode="present"] .k-section{
  background:var(--accent); color:var(--accent-on);
  --fg:var(--accent-on);
  --dim:color-mix(in srgb,var(--accent-on) 78%,transparent);
  --faint:color-mix(in srgb,var(--accent-on) 60%,transparent);
  --line:color-mix(in srgb,var(--accent-on) 42%,transparent);
  --hair:color-mix(in srgb,var(--accent-on) 24%,transparent);
  --em:var(--accent-on); --bg:var(--accent);
}

/* ───────── 머리 괘선 (kicker = 마스트: 왼쪽 아이브로우 · 오른쪽 섹션 라벨 ::after) ───────── */
html[data-viewmode="present"] .kicker{
  margin:0 0 var(--mast-gap); padding-bottom:14px; border-bottom:2px solid var(--fg);
  display:flex; justify-content:space-between; align-items:flex-end; gap:40px;
  font:400 21px/1 var(--font-mono); letter-spacing:.14em; color:var(--fg); white-space:nowrap;
}
html[data-viewmode="present"] .kicker::after{ content:attr(data-tp-right); color:var(--dim); }

/* ───────── 바닥 괘선 (theme.js 주입) ───────── */
html[data-viewmode="present"] .tp-base{
  margin-top:26px; padding-top:12px; border-top:1px solid var(--line);
  display:flex; align-items:center; justify-content:space-between;
}
html[data-viewmode="present"] .tp-ticks{ display:flex; gap:6px; }
html[data-viewmode="present"] .tp-ticks i{ display:block; width:34px; height:8px; background:var(--hair); }
html[data-viewmode="present"] .tp-ticks i.on{ background:var(--fg); }
html[data-viewmode="present"] .tp-no{ font:400 19px/1 var(--font-mono); letter-spacing:.16em; color:var(--fg); font-variant-numeric:tabular-nums; }

/* ───────── 활자 ───────── */
html[data-viewmode="present"] .headline{
  margin:0; font-family:var(--font-display); font-weight:800; line-height:1.02; letter-spacing:-.045em;
  color:var(--fg); white-space:nowrap; word-break:keep-all; font-size:104px;
}
html[data-viewmode="present"] .headline em{ font-style:normal; color:var(--em); }
html[data-viewmode="present"] .k-section .headline em,html[data-viewmode="present"] .k-section .headline b{ color:var(--accent-on); text-decoration:underline; text-decoration-thickness:.055em; text-underline-offset:.1em; text-decoration-skip-ink:none; }
html[data-viewmode="present"] .headline .sub{ display:block; font-size:64px; font-weight:500; letter-spacing:-.02em; line-height:1.15; margin-top:.22em; color:var(--dim); white-space:normal; }
html[data-viewmode="present"] .lead{ margin:28px 0 0; font:400 32px/1.42 var(--font-sans); letter-spacing:-.016em; max-width:1270px; color:var(--fg); }
html[data-viewmode="present"] .lead b{ color:var(--em); }
html[data-viewmode="present"] .foot{
  margin-top:auto; padding-top:14px; border-top:1px solid var(--line);
  display:flex; justify-content:space-between; align-items:baseline; gap:60px;
  font:400 22px/1.45 var(--font-sans); color:var(--dim);
}
html[data-viewmode="present"] .foot-note{ max-width:1270px; }
html[data-viewmode="present"] .foot-note b{ color:var(--fg); font-weight:700; }
html[data-viewmode="present"] .foot-src{ font:400 19px/1 var(--font-mono); letter-spacing:.12em; white-space:nowrap; color:var(--dim); flex:0 0 auto; }
html[data-viewmode="present"] .k-cover .foot-src::before,html[data-viewmode="present"] .k-outro .foot-src::before{ content:""; display:inline-block; width:18px; height:18px; border-radius:50%; background:var(--accent); margin-right:14px; vertical-align:-2px; }

/* ───────── 활자 리스트 공통 (표·카드의 해체) ───────── */
html[data-viewmode="present"] .tp-rows,html[data-viewmode="present"] .tbl{ border-top:1px solid var(--fg); }

/* ───────── 01 표지 ───────── */
html[data-viewmode="present"] .k-cover .headline{ font-size:230px; margin-top:24px; }
html[data-viewmode="present"] .k-cover .lead{ margin-top:56px; font-size:36px; max-width:1420px; }
html[data-viewmode="present"] .k-cover .foot{ margin-top:auto; }

/* ───────── 03 09 14 20 색 면 섹션 ───────── */
html[data-viewmode="present"] .k-section .headline{ font-size:380px; margin-top:60px; }
html[data-viewmode="present"] .k-section .tp-base{ margin-top:auto; }
html[data-viewmode="present"] .k-section .headline .sub{ font-size:64px; margin-top:32px; }
html[data-viewmode="present"] .k-section .lead{ margin-top:64px; font:400 28px/1 var(--font-mono); letter-spacing:.1em; max-width:none; color:var(--dim); }

/* ───────── 04 17 선언 ───────── */
html[data-viewmode="present"] .k-statement .headline{ font-size:140px; }
html[data-viewmode="present"] .variant-emphatic-statement .headline{ font-size:200px; }
html[data-viewmode="present"] .k-statement .lead{ margin-top:36px; max-width:1700px; }
html[data-viewmode="present"] .body-list{ list-style:none; margin:var(--block-gap) 0 0; padding:0; border-top:1px solid var(--fg); max-width:1700px; }
html[data-viewmode="present"] .body-list li{ padding:22px 0; border-bottom:1px solid var(--line); font-size:34px; line-height:1.35; color:var(--fg); }
html[data-viewmode="present"] .body-list li b{ color:var(--fg); font-weight:800; display:inline-block; min-width:266px; }

/* ───────── 05 4단 (가로) ───────── */
html[data-viewmode="present"] .k-steps .headline{ font-size:150px; }
html[data-viewmode="present"] .steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:0 var(--gut); margin-top:var(--block-gap); }
html[data-viewmode="present"] .step{ padding-top:16px; border-top:1px solid var(--fg); display:grid; gap:0; align-content:start; }
html[data-viewmode="present"] .step.hi{ border-top:3px solid var(--em); padding-top:14px; }
html[data-viewmode="present"] .step-no{ font:400 20px/1 var(--font-mono); letter-spacing:.14em; color:var(--dim); }
html[data-viewmode="present"] .step-title{ display:block; font-family:var(--font-display); font-size:52px; font-weight:800; letter-spacing:-.04em; line-height:1.05; margin-top:14px; color:var(--fg); }
html[data-viewmode="present"] .step.hi .step-no,html[data-viewmode="present"] .step.hi .step-title{ color:var(--em); }
html[data-viewmode="present"] .step-text{ display:block; font-size:24px; line-height:1.4; color:var(--dim); margin-top:16px; }

/* ───────── 15 사다리 (세로 4단 · 강조 행은 액센트 스트립) ───────── */
html[data-viewmode="present"] .k-ladder .headline{ font-size:130px; }
html[data-viewmode="present"] .steps.ladder{ grid-template-columns:1fr; gap:0; border-top:1px solid var(--fg); }
html[data-viewmode="present"] .ladder .step{ grid-template-columns:266px 410px 1fr; gap:0 var(--gut); align-items:baseline; padding:26px 0; border-top:0; border-bottom:1px solid var(--line); }
html[data-viewmode="present"] .ladder .step-no{ font-size:22px; letter-spacing:.1em; }
html[data-viewmode="present"] .ladder .step-title{ margin-top:0; font-size:56px; }
html[data-viewmode="present"] .ladder .step-text{ margin-top:0; font-size:28px; line-height:1.4; }
html[data-viewmode="present"] .ladder .step.hi{
  background:var(--accent); color:var(--accent-on); --em:var(--accent-on);
  margin:0 calc(-1 * var(--m)); padding:30px var(--m) 32px; border-bottom:0; border-top:0;
}
html[data-viewmode="present"] .ladder .step.hi .step-no,html[data-viewmode="present"] .ladder .step.hi .step-title,html[data-viewmode="present"] .ladder .step.hi .step-text{ color:var(--accent-on); }
html[data-viewmode="present"] .ladder .step.hi + .step{ border-top:0; }

/* ───────── 02 06 22 격자 · 21 카드 · 24 링크 ───────── */
html[data-viewmode="present"] .k-grid .headline,html[data-viewmode="present"] .k-cards .headline{ font-size:150px; }
html[data-viewmode="present"] .kind-grid .headline{ font-size:200px; }
html[data-viewmode="present"] .variant-long-statement .headline{ font-size:102px; }
html[data-viewmode="present"] .grid{ display:grid; gap:40px var(--gut); margin-top:var(--block-gap); }
html[data-viewmode="present"] .cols-3{ grid-template-columns:repeat(3,1fr); } html[data-viewmode="present"] .cols-4{ grid-template-columns:repeat(4,1fr); }
html[data-viewmode="present"] .cell{ padding-top:16px; border-top:1px solid var(--fg); display:grid; gap:0; align-content:start; }
html[data-viewmode="present"] .cell-no{ font:400 20px/1 var(--font-mono); letter-spacing:.14em; color:var(--dim); }
html[data-viewmode="present"] .cell-title{ display:block; font-family:var(--font-display); font-size:52px; font-weight:800; letter-spacing:-.035em; line-height:1.08; margin-top:14px; color:var(--fg); }
html[data-viewmode="present"] .cell-text{ display:block; font-size:24px; line-height:1.4; color:var(--dim); margin-top:14px; }
html[data-viewmode="present"] .cols-4 .cell-title{ font-size:46px; }
html[data-viewmode="present"] .grid.nine{ gap:34px var(--gut); }
html[data-viewmode="present"] .grid.nine .cell{ padding-top:14px; }
html[data-viewmode="present"] .grid.nine .cell-title{ font-size:50px; margin-top:12px; }
html[data-viewmode="present"] .grid.nine .cell-text{ margin-top:8px; }
html[data-viewmode="present"] .constellation .cell-title{ font-family:var(--font-mono); font-weight:600; letter-spacing:-.02em; font-size:42px; }
html[data-viewmode="present"] .grid.cards .cell-no{ color:var(--em); }
html[data-viewmode="present"] .grid.links .cell-title{ font-family:var(--font-mono); font-weight:600; letter-spacing:-.01em; font-size:38px; color:var(--em); }
html[data-viewmode="present"] .k-outro .headline{ font-size:180px; }
html[data-viewmode="present"] .k-outro .lead{ margin-top:var(--block-gap); font-size:30px; max-width:1700px; }

/* ───────── 07 거대 숫자 ───────── */
html[data-viewmode="present"] .k-stats .headline{ font-size:140px; }
html[data-viewmode="present"] .stats{ display:grid; grid-template-columns:983px 1fr; gap:0 var(--gut); align-items:end; margin-top:30px; }
html[data-viewmode="present"] .stat{ display:grid; grid-template-columns:auto auto; grid-template-rows:auto auto; align-items:baseline; justify-content:start; column-gap:14px; }
html[data-viewmode="present"] .stat .num{ font-family:var(--font-display); font-weight:800; letter-spacing:-.06em; line-height:1; font-variant-numeric:tabular-nums; white-space:nowrap; color:var(--fg); }
html[data-viewmode="present"] .stat .unit{ font-family:var(--font-display); font-weight:700; color:var(--dim); }
html[data-viewmode="present"] .stat .label{ grid-column:1 / -1; font:400 20px/1.4 var(--font-mono); letter-spacing:.06em; color:var(--dim); margin-top:14px; }
html[data-viewmode="present"] .stat:first-child{ grid-row:1 / span 3; align-self:end; }
html[data-viewmode="present"] .stat:first-child .num{ font-size:250px; letter-spacing:-.075em; color:var(--em); line-height:.9; }
html[data-viewmode="present"] .stat:first-child .unit{ font-size:72px; color:var(--fg); }
html[data-viewmode="present"] .stat:first-child .label{ margin-top:22px; }
html[data-viewmode="present"] .stat:not(:first-child){ padding:16px 0 18px; border-top:1px solid var(--line); }
html[data-viewmode="present"] .stat:nth-child(2){ border-top:0; padding-top:0; }
html[data-viewmode="present"] .stat:not(:first-child) .num{ font-size:100px; }
html[data-viewmode="present"] .stat:not(:first-child) .unit{ font-size:30px; }
html[data-viewmode="present"] .stat:not(:first-child) .label{ margin-top:8px; }
html[data-viewmode="present"] .k-stats .lead{ margin-top:var(--block-gap); font-size:28px; max-width:1700px; }

/* ───────── 08 16 표 → 활자 행 ───────── */
html[data-viewmode="present"] .k-table .headline{ font-size:110px; }
html[data-viewmode="present"] .variant-compact-section .headline{ font-size:92px; }
html[data-viewmode="present"] .tbl{ width:100%; border-collapse:collapse; margin-top:var(--block-gap); font-size:30px; line-height:1.3; color:var(--fg); }
html[data-viewmode="present"] .tbl th{ text-align:left; padding:0 var(--gut) 14px 0; font:400 20px/1 var(--font-mono); letter-spacing:.14em; color:var(--dim); border-bottom:1px solid var(--line); }
html[data-viewmode="present"] .tbl td{ padding:19px var(--gut) 19px 0; border-bottom:1px solid var(--line); vertical-align:baseline; }
html[data-viewmode="present"] .tbl td:first-child{ font-family:var(--font-mono); font-size:22px; letter-spacing:.06em; color:var(--dim); }
html[data-viewmode="present"] .tbl th.hi,html[data-viewmode="present"] .tbl td.hi{ color:var(--em); font-weight:800; }
html[data-viewmode="present"] .tbl th.hi{ font-weight:600; }
html[data-viewmode="present"] .compare-tbl td.hi{ border-bottom-color:var(--em); }

/* ───────── 10 인용 ───────── */
html[data-viewmode="present"] .k-quote .quote{ margin:20px 0 0; }
html[data-viewmode="present"] .k-quote .quote p{ margin:0; font-family:var(--font-display); font-size:140px; font-weight:800; line-height:1.02; letter-spacing:-.045em; white-space:nowrap; color:var(--fg); }
html[data-viewmode="present"] .k-quote .quote cite{ display:block; margin-top:30px; font:400 22px/1 var(--font-mono); font-style:normal; letter-spacing:.14em; color:var(--dim); }
html[data-viewmode="present"] .k-quote .lead{ margin-top:var(--block-gap); font-size:32px; }

/* ───────── 11 도해 ───────── */
html[data-viewmode="present"] .k-diagram .headline{ font-size:160px; }
html[data-viewmode="present"] .diagram{ width:100%; height:auto; display:block; margin-top:var(--block-gap); overflow:visible; color:var(--fg); }
html[data-viewmode="present"] .diagram .dg-layer rect{ fill:none; stroke:var(--fg); stroke-width:1.5; }
html[data-viewmode="present"] .diagram .dg-layer:nth-of-type(3) rect{ fill:var(--accent); stroke:var(--accent); }
html[data-viewmode="present"] .dg-t{ font-family:var(--font-display); font-size:38px; font-weight:800; letter-spacing:-.03em; fill:var(--fg); }
html[data-viewmode="present"] .dg-s{ font-family:var(--font-sans); font-size:16px; letter-spacing:-.01em; fill:var(--dim); }
html[data-viewmode="present"] .diagram .dg-layer:nth-of-type(3) .dg-t{ fill:var(--accent-on); }
html[data-viewmode="present"] .diagram .dg-layer:nth-of-type(3) .dg-s{ fill:var(--accent-on); opacity:.86; }
html[data-viewmode="present"] .diagram .dg-arrow path{ stroke:var(--accent); stroke-width:3; fill:none; stroke-linecap:square; }
html[data-viewmode="present"] .dg-v{ font-family:var(--font-mono); font-size:14px; letter-spacing:.02em; fill:var(--accent); }
html[data-viewmode="present"] .diagram .dg-loop path{ stroke:var(--line); stroke-width:1.5; fill:none; }
html[data-viewmode="present"] .diagram .dg-loop .dg-v{ fill:var(--dim); font-size:17px; letter-spacing:.14em; }

/* ───────── 12 대비 ───────── */
html[data-viewmode="present"] .k-compare .headline{ font-size:140px; }
html[data-viewmode="present"] .compare{ display:grid; grid-template-columns:1fr 1fr; gap:0 60px; margin-top:var(--block-gap); }
html[data-viewmode="present"] .compare h3{ margin:0; padding-bottom:18px; border-bottom:1px solid var(--fg); font-family:var(--font-display); font-size:52px; font-weight:800; letter-spacing:-.04em; line-height:1; color:var(--fg); }
html[data-viewmode="present"] .compare .b h3{ color:var(--em); }
html[data-viewmode="present"] .compare ul{ list-style:none; margin:0; padding:0; }
html[data-viewmode="present"] .compare li{ padding:22px 0; border-bottom:1px solid var(--line); font-size:34px; line-height:1.35; color:var(--fg); }
html[data-viewmode="present"] .compare .a li{ color:var(--dim); }

/* ───────── 13 터미널 ───────── */
html[data-viewmode="present"] .k-terminal .headline{ font-size:150px; }
html[data-viewmode="present"] .terminal{ margin:var(--block-gap) 0 0; background:#0B0B0B; color:#F2F0EB; padding:40px 44px; font:400 26px/1.75 var(--font-mono); letter-spacing:0; white-space:pre; overflow:hidden; border-radius:0; }
html[data-viewmode="present"] .terminal .prompt{ color:var(--cmds-pink); }
html[data-viewmode="present"] .terminal .dim{ color:#66758A; }
html[data-viewmode="present"] .terminal .ok{ color:#F2F0EB; font-weight:600; }

/* ───────── 18 시각표 ───────── */
html[data-viewmode="present"] .k-timeline .headline{ font-size:120px; }
html[data-viewmode="present"] .timeline{ display:grid; grid-template-columns:repeat(5,1fr); gap:0 var(--gut); margin-top:var(--block-gap); }
html[data-viewmode="present"] .tick{ padding-top:16px; border-top:1px solid var(--fg); display:grid; gap:0; align-content:start; }
html[data-viewmode="present"] .tick-when{ font-family:var(--font-mono); font-size:56px; letter-spacing:.02em; line-height:1; font-variant-numeric:tabular-nums; color:var(--fg); }
html[data-viewmode="present"] .tick-lv{ font:400 20px/1 var(--font-mono); letter-spacing:.14em; color:var(--em); margin-top:14px; }
html[data-viewmode="present"] .tick-what{ font-size:24px; line-height:1.4; color:var(--dim); margin-top:16px; }

/* ───────── 19 막대 → 활자 행 ───────── */
html[data-viewmode="present"] .k-bars .headline{ font-size:110px; }
html[data-viewmode="present"] .bars{ margin-top:var(--block-gap); border-top:1px solid var(--fg); }
html[data-viewmode="present"] .bar{ display:grid; grid-template-columns:1fr 600px 120px; gap:0 var(--gut); align-items:center; padding:24px 0; border-bottom:1px solid var(--line); }
html[data-viewmode="present"] .bar-label{ font-size:30px; line-height:1.3; color:var(--fg); }
html[data-viewmode="present"] .bar-label b{ font-family:var(--font-mono); font-weight:700; color:var(--em); display:inline-block; min-width:52px; letter-spacing:.06em; }
html[data-viewmode="present"] .bar-track{ display:block; height:14px; background:var(--hair); }
html[data-viewmode="present"] .bar-track i{ display:block; height:100%; width:var(--w,0%); background:var(--fg); }
html[data-viewmode="present"] .bar-val{ font:400 30px/1 var(--font-mono); letter-spacing:.04em; text-align:right; color:var(--fg); font-variant-numeric:tabular-nums; }
html[data-viewmode="present"] .bar.hi .bar-label{ color:var(--em); font-weight:700; }
html[data-viewmode="present"] .bar.hi .bar-track i,html[data-viewmode="present"] .bar.hi .bar-val{ background:var(--em); color:var(--em); }
html[data-viewmode="present"] .bar.hi .bar-val{ background:none; }
html[data-viewmode="present"] .k-bars .lead{ margin-top:var(--block-gap); font-size:28px; max-width:1700px; }

/* ───────── 23 관점 토글 ───────── */
html[data-viewmode="present"] .k-toggle .headline{ font-size:170px; }
html[data-viewmode="present"] .toggle{ margin-top:var(--block-gap); }
html[data-viewmode="present"] .toggle-ctl{ display:flex; gap:12px; }
html[data-viewmode="present"] .toggle-ctl button{ font:600 22px/1 var(--font-sans); letter-spacing:-.01em; padding:16px 26px; border:1.5px solid var(--line); background:transparent; color:var(--fg); cursor:pointer; border-radius:0; transition:background .25s, color .25s, border-color .25s; }
html[data-viewmode="present"] .toggle-ctl button[aria-pressed="true"]{ background:var(--fg); color:var(--bg); border-color:var(--fg); }
html[data-viewmode="present"] .toggle-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:0 var(--gut); margin-top:36px; }
html[data-viewmode="present"] .tg{ padding-top:16px; border-top:1px solid var(--fg); display:grid; align-content:start; }
html[data-viewmode="present"] .tg-a,html[data-viewmode="present"] .tg-b{ display:block; font-family:var(--font-display); font-size:72px; font-weight:800; letter-spacing:-.04em; line-height:1; color:var(--fg); }
html[data-viewmode="present"] .tg-b{ color:var(--em); }
html[data-viewmode="present"] .toggle[data-view="note"] .tg-b,html[data-viewmode="present"] .toggle[data-view="harness"] .tg-a{ display:none; }
html[data-viewmode="present"] .tg-desc{ display:block; font-size:24px; line-height:1.4; color:var(--dim); margin-top:18px; }
html[data-viewmode="present"] .toggle-verdict{ margin:48px 0 0; font-size:34px; line-height:1.35; color:var(--fg); max-width:1700px; }
html[data-viewmode="present"] .toggle[data-view="harness"] .toggle-verdict{ color:var(--em); }

/* ───────── 모션 (라이즈 스태거 · v14 .rise) ───────── */
html[data-viewmode="present"].js .slide[data-active] > :not(.tp-base){ animation:tpRise .6s var(--ease) both; }
html[data-viewmode="present"].js .slide[data-active] > :nth-child(1){ animation-delay:0ms; }
html[data-viewmode="present"].js .slide[data-active] > :nth-child(2){ animation-delay:80ms; }
html[data-viewmode="present"].js .slide[data-active] > :nth-child(3){ animation-delay:160ms; }
html[data-viewmode="present"].js .slide[data-active] > :nth-child(4){ animation-delay:240ms; }
html[data-viewmode="present"].js .slide[data-active] > :nth-child(5){ animation-delay:320ms; }
html[data-viewmode="present"].js .slide[data-active] > :nth-child(6){ animation-delay:400ms; }
@keyframes tpRise{ from{opacity:0; transform:translateY(22px)} to{opacity:1; transform:none} }
html[data-viewmode="present"].js [data-step]{ opacity:0; transform:translateY(18px); transition:opacity .5s var(--ease), transform .5s var(--ease); }
html[data-viewmode="present"].js [data-step].in{ opacity:1; transform:none; }
html[data-viewmode="present"].js svg [data-step]{ transform:none; }
@media (prefers-reduced-motion: reduce){
  html[data-viewmode="present"].js .slide[data-active],html[data-viewmode="present"].js .slide[data-active] > :not(.tp-base){ animation:none; }
  html[data-viewmode="present"] .toggle-ctl button{ transition:none; }
}

/* ───────── 인쇄 ───────── */


@media print{/* ═══════════════════════════════════════════════════════════════
   Typographic Poster · theme.css   (port of v14 · 2026-09-09)
   스위스 포스터 격자 — 여백 110 · 측정폭 1700 · 12열 123.33 · 거터 20
   헤드라인 800 / 1.02 / -.045em, 측정폭에 잠김(theme.js 가 넘침만 줄인다)
   색 면 4장 = k-section (03 09 14 20) · 탤리 틱 + 시트 번호는 theme.js 주입
   ═══════════════════════════════════════════════════════════════ */

/* ───────── 팔레트 (v14 그대로 · 코어 --bg/--fg/--line/--accent 덮어쓰기) ───────── */
:root{
  --bg:#E8EEF5; --fg:#12110F; --dim:#485565; --faint:#66758A; --line:#99B0CE; --hair:#CBD3DD;
  --muted:var(--dim);
  --accent:var(--cmds-green); --accent-on:#FFFFFF; --em:var(--accent);
  --ease:cubic-bezier(.2,.7,.2,1);
  --m:110px; --measure:1700px; --col:123.33px; --gut:20px;
  --mast-gap:48px; --block-gap:36px;
  --dk-panel-bg:rgba(232,238,245,.94); --dk-panel-fg:#12110F; --dk-panel-line:#99B0CE;
  --dk-panel-h:44px; --dk-notes-w:440px; --dk-font:var(--font-mono); --dk-accent:var(--accent);
}
html[data-theme="dark"]{
  --bg:#0F0F0E; --fg:#E8EEF5; --dim:#99B0CE; --faint:#485565; --line:#33322E; --hair:#242320;
  --muted:var(--dim); --accent:var(--cmds-pink); --accent-on:#1B1B1B;
  --dk-panel-bg:rgba(15,15,14,.94); --dk-panel-fg:#E8EEF5; --dk-panel-line:#33322E;
}
@media (prefers-color-scheme: dark){
  html:not([data-theme="light"]){
    --bg:#0F0F0E; --fg:#E8EEF5; --dim:#99B0CE; --faint:#485565; --line:#33322E; --hair:#242320;
    --muted:var(--dim); --accent:var(--cmds-pink); --accent-on:#1B1B1B;
    --dk-panel-bg:rgba(15,15,14,.94); --dk-panel-fg:#E8EEF5; --dk-panel-line:#33322E;
  }
}
html[data-aspect="16x10"]{ --mast-gap:64px; --block-gap:48px; }

body{ font-size:24px; line-height:1.4; letter-spacing:-.012em; text-rendering:optimizeLegibility; }
b,strong{ font-weight:800; color:var(--em); }
code{ font-family:var(--font-mono); font-size:.86em; letter-spacing:0; font-weight:500; }

/* ───────── 시트 ───────── */
.slide{
  padding:72px var(--m) 40px; background:var(--bg); color:var(--fg);
  --em:var(--accent);
}
html.js .slide[data-active]{ animation:tpSheet .45s var(--ease) both; }
@keyframes tpSheet{ from{opacity:0} to{opacity:1} }

/* 색 면 — 네 섹션 디바이더 */
.k-section{
  background:var(--accent); color:var(--accent-on);
  --fg:var(--accent-on);
  --dim:color-mix(in srgb,var(--accent-on) 78%,transparent);
  --faint:color-mix(in srgb,var(--accent-on) 60%,transparent);
  --line:color-mix(in srgb,var(--accent-on) 42%,transparent);
  --hair:color-mix(in srgb,var(--accent-on) 24%,transparent);
  --em:var(--accent-on); --bg:var(--accent);
}

/* ───────── 머리 괘선 (kicker = 마스트: 왼쪽 아이브로우 · 오른쪽 섹션 라벨 ::after) ───────── */
.kicker{
  margin:0 0 var(--mast-gap); padding-bottom:14px; border-bottom:2px solid var(--fg);
  display:flex; justify-content:space-between; align-items:flex-end; gap:40px;
  font:400 21px/1 var(--font-mono); letter-spacing:.14em; color:var(--fg); white-space:nowrap;
}
.kicker::after{ content:attr(data-tp-right); color:var(--dim); }

/* ───────── 바닥 괘선 (theme.js 주입) ───────── */
.tp-base{
  margin-top:26px; padding-top:12px; border-top:1px solid var(--line);
  display:flex; align-items:center; justify-content:space-between;
}
.tp-ticks{ display:flex; gap:6px; }
.tp-ticks i{ display:block; width:34px; height:8px; background:var(--hair); }
.tp-ticks i.on{ background:var(--fg); }
.tp-no{ font:400 19px/1 var(--font-mono); letter-spacing:.16em; color:var(--fg); font-variant-numeric:tabular-nums; }

/* ───────── 활자 ───────── */
.headline{
  margin:0; font-family:var(--font-display); font-weight:800; line-height:1.02; letter-spacing:-.045em;
  color:var(--fg); white-space:nowrap; word-break:keep-all; font-size:104px;
}
.headline em{ font-style:normal; color:var(--em); }
.k-section .headline em,.k-section .headline b{ color:var(--accent-on); text-decoration:underline; text-decoration-thickness:.055em; text-underline-offset:.1em; text-decoration-skip-ink:none; }
.headline .sub{ display:block; font-size:64px; font-weight:500; letter-spacing:-.02em; line-height:1.15; margin-top:.22em; color:var(--dim); white-space:normal; }
.lead{ margin:28px 0 0; font:400 32px/1.42 var(--font-sans); letter-spacing:-.016em; max-width:1270px; color:var(--fg); }
.lead b{ color:var(--em); }
.foot{
  margin-top:auto; padding-top:14px; border-top:1px solid var(--line);
  display:flex; justify-content:space-between; align-items:baseline; gap:60px;
  font:400 22px/1.45 var(--font-sans); color:var(--dim);
}
.foot-note{ max-width:1270px; }
.foot-note b{ color:var(--fg); font-weight:700; }
.foot-src{ font:400 19px/1 var(--font-mono); letter-spacing:.12em; white-space:nowrap; color:var(--dim); flex:0 0 auto; }
.k-cover .foot-src::before,.k-outro .foot-src::before{ content:""; display:inline-block; width:18px; height:18px; border-radius:50%; background:var(--accent); margin-right:14px; vertical-align:-2px; }

/* ───────── 활자 리스트 공통 (표·카드의 해체) ───────── */
.tp-rows,.tbl{ border-top:1px solid var(--fg); }

/* ───────── 01 표지 ───────── */
.k-cover .headline{ font-size:230px; margin-top:24px; }
.k-cover .lead{ margin-top:56px; font-size:36px; max-width:1420px; }
.k-cover .foot{ margin-top:auto; }

/* ───────── 03 09 14 20 색 면 섹션 ───────── */
.k-section .headline{ font-size:380px; margin-top:60px; }
.k-section .tp-base{ margin-top:auto; }
.k-section .headline .sub{ font-size:64px; margin-top:32px; }
.k-section .lead{ margin-top:64px; font:400 28px/1 var(--font-mono); letter-spacing:.1em; max-width:none; color:var(--dim); }

/* ───────── 04 17 선언 ───────── */
.k-statement .headline{ font-size:140px; }
.variant-emphatic-statement .headline{ font-size:200px; }
.k-statement .lead{ margin-top:36px; max-width:1700px; }
.body-list{ list-style:none; margin:var(--block-gap) 0 0; padding:0; border-top:1px solid var(--fg); max-width:1700px; }
.body-list li{ padding:22px 0; border-bottom:1px solid var(--line); font-size:34px; line-height:1.35; color:var(--fg); }
.body-list li b{ color:var(--fg); font-weight:800; display:inline-block; min-width:266px; }

/* ───────── 05 4단 (가로) ───────── */
.k-steps .headline{ font-size:150px; }
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:0 var(--gut); margin-top:var(--block-gap); }
.step{ padding-top:16px; border-top:1px solid var(--fg); display:grid; gap:0; align-content:start; }
.step.hi{ border-top:3px solid var(--em); padding-top:14px; }
.step-no{ font:400 20px/1 var(--font-mono); letter-spacing:.14em; color:var(--dim); }
.step-title{ display:block; font-family:var(--font-display); font-size:52px; font-weight:800; letter-spacing:-.04em; line-height:1.05; margin-top:14px; color:var(--fg); }
.step.hi .step-no,.step.hi .step-title{ color:var(--em); }
.step-text{ display:block; font-size:24px; line-height:1.4; color:var(--dim); margin-top:16px; }

/* ───────── 15 사다리 (세로 4단 · 강조 행은 액센트 스트립) ───────── */
.k-ladder .headline{ font-size:130px; }
.steps.ladder{ grid-template-columns:1fr; gap:0; border-top:1px solid var(--fg); }
.ladder .step{ grid-template-columns:266px 410px 1fr; gap:0 var(--gut); align-items:baseline; padding:26px 0; border-top:0; border-bottom:1px solid var(--line); }
.ladder .step-no{ font-size:22px; letter-spacing:.1em; }
.ladder .step-title{ margin-top:0; font-size:56px; }
.ladder .step-text{ margin-top:0; font-size:28px; line-height:1.4; }
.ladder .step.hi{
  background:var(--accent); color:var(--accent-on); --em:var(--accent-on);
  margin:0 calc(-1 * var(--m)); padding:30px var(--m) 32px; border-bottom:0; border-top:0;
}
.ladder .step.hi .step-no,.ladder .step.hi .step-title,.ladder .step.hi .step-text{ color:var(--accent-on); }
.ladder .step.hi + .step{ border-top:0; }

/* ───────── 02 06 22 격자 · 21 카드 · 24 링크 ───────── */
.k-grid .headline,.k-cards .headline{ font-size:150px; }
.kind-grid .headline{ font-size:200px; }
.variant-long-statement .headline{ font-size:102px; }
.grid{ display:grid; gap:40px var(--gut); margin-top:var(--block-gap); }
.cols-3{ grid-template-columns:repeat(3,1fr); } .cols-4{ grid-template-columns:repeat(4,1fr); }
.cell{ padding-top:16px; border-top:1px solid var(--fg); display:grid; gap:0; align-content:start; }
.cell-no{ font:400 20px/1 var(--font-mono); letter-spacing:.14em; color:var(--dim); }
.cell-title{ display:block; font-family:var(--font-display); font-size:52px; font-weight:800; letter-spacing:-.035em; line-height:1.08; margin-top:14px; color:var(--fg); }
.cell-text{ display:block; font-size:24px; line-height:1.4; color:var(--dim); margin-top:14px; }
.cols-4 .cell-title{ font-size:46px; }
.grid.nine{ gap:34px var(--gut); }
.grid.nine .cell{ padding-top:14px; }
.grid.nine .cell-title{ font-size:50px; margin-top:12px; }
.grid.nine .cell-text{ margin-top:8px; }
.constellation .cell-title{ font-family:var(--font-mono); font-weight:600; letter-spacing:-.02em; font-size:42px; }
.grid.cards .cell-no{ color:var(--em); }
.grid.links .cell-title{ font-family:var(--font-mono); font-weight:600; letter-spacing:-.01em; font-size:38px; color:var(--em); }
.k-outro .headline{ font-size:180px; }
.k-outro .lead{ margin-top:var(--block-gap); font-size:30px; max-width:1700px; }

/* ───────── 07 거대 숫자 ───────── */
.k-stats .headline{ font-size:140px; }
.stats{ display:grid; grid-template-columns:983px 1fr; gap:0 var(--gut); align-items:end; margin-top:30px; }
.stat{ display:grid; grid-template-columns:auto auto; grid-template-rows:auto auto; align-items:baseline; justify-content:start; column-gap:14px; }
.stat .num{ font-family:var(--font-display); font-weight:800; letter-spacing:-.06em; line-height:1; font-variant-numeric:tabular-nums; white-space:nowrap; color:var(--fg); }
.stat .unit{ font-family:var(--font-display); font-weight:700; color:var(--dim); }
.stat .label{ grid-column:1 / -1; font:400 20px/1.4 var(--font-mono); letter-spacing:.06em; color:var(--dim); margin-top:14px; }
.stat:first-child{ grid-row:1 / span 3; align-self:end; }
.stat:first-child .num{ font-size:250px; letter-spacing:-.075em; color:var(--em); line-height:.9; }
.stat:first-child .unit{ font-size:72px; color:var(--fg); }
.stat:first-child .label{ margin-top:22px; }
.stat:not(:first-child){ padding:16px 0 18px; border-top:1px solid var(--line); }
.stat:nth-child(2){ border-top:0; padding-top:0; }
.stat:not(:first-child) .num{ font-size:100px; }
.stat:not(:first-child) .unit{ font-size:30px; }
.stat:not(:first-child) .label{ margin-top:8px; }
.k-stats .lead{ margin-top:var(--block-gap); font-size:28px; max-width:1700px; }

/* ───────── 08 16 표 → 활자 행 ───────── */
.k-table .headline{ font-size:110px; }
.variant-compact-section .headline{ font-size:92px; }
.tbl{ width:100%; border-collapse:collapse; margin-top:var(--block-gap); font-size:30px; line-height:1.3; color:var(--fg); }
.tbl th{ text-align:left; padding:0 var(--gut) 14px 0; font:400 20px/1 var(--font-mono); letter-spacing:.14em; color:var(--dim); border-bottom:1px solid var(--line); }
.tbl td{ padding:19px var(--gut) 19px 0; border-bottom:1px solid var(--line); vertical-align:baseline; }
.tbl td:first-child{ font-family:var(--font-mono); font-size:22px; letter-spacing:.06em; color:var(--dim); }
.tbl th.hi,.tbl td.hi{ color:var(--em); font-weight:800; }
.tbl th.hi{ font-weight:600; }
.compare-tbl td.hi{ border-bottom-color:var(--em); }

/* ───────── 10 인용 ───────── */
.k-quote .quote{ margin:20px 0 0; }
.k-quote .quote p{ margin:0; font-family:var(--font-display); font-size:140px; font-weight:800; line-height:1.02; letter-spacing:-.045em; white-space:nowrap; color:var(--fg); }
.k-quote .quote cite{ display:block; margin-top:30px; font:400 22px/1 var(--font-mono); font-style:normal; letter-spacing:.14em; color:var(--dim); }
.k-quote .lead{ margin-top:var(--block-gap); font-size:32px; }

/* ───────── 11 도해 ───────── */
.k-diagram .headline{ font-size:160px; }
.diagram{ width:100%; height:auto; display:block; margin-top:var(--block-gap); overflow:visible; color:var(--fg); }
.diagram .dg-layer rect{ fill:none; stroke:var(--fg); stroke-width:1.5; }
.diagram .dg-layer:nth-of-type(3) rect{ fill:var(--accent); stroke:var(--accent); }
.dg-t{ font-family:var(--font-display); font-size:38px; font-weight:800; letter-spacing:-.03em; fill:var(--fg); }
.dg-s{ font-family:var(--font-sans); font-size:16px; letter-spacing:-.01em; fill:var(--dim); }
.diagram .dg-layer:nth-of-type(3) .dg-t{ fill:var(--accent-on); }
.diagram .dg-layer:nth-of-type(3) .dg-s{ fill:var(--accent-on); opacity:.86; }
.diagram .dg-arrow path{ stroke:var(--accent); stroke-width:3; fill:none; stroke-linecap:square; }
.dg-v{ font-family:var(--font-mono); font-size:14px; letter-spacing:.02em; fill:var(--accent); }
.diagram .dg-loop path{ stroke:var(--line); stroke-width:1.5; fill:none; }
.diagram .dg-loop .dg-v{ fill:var(--dim); font-size:17px; letter-spacing:.14em; }

/* ───────── 12 대비 ───────── */
.k-compare .headline{ font-size:140px; }
.compare{ display:grid; grid-template-columns:1fr 1fr; gap:0 60px; margin-top:var(--block-gap); }
.compare h3{ margin:0; padding-bottom:18px; border-bottom:1px solid var(--fg); font-family:var(--font-display); font-size:52px; font-weight:800; letter-spacing:-.04em; line-height:1; color:var(--fg); }
.compare .b h3{ color:var(--em); }
.compare ul{ list-style:none; margin:0; padding:0; }
.compare li{ padding:22px 0; border-bottom:1px solid var(--line); font-size:34px; line-height:1.35; color:var(--fg); }
.compare .a li{ color:var(--dim); }

/* ───────── 13 터미널 ───────── */
.k-terminal .headline{ font-size:150px; }
.terminal{ margin:var(--block-gap) 0 0; background:#0B0B0B; color:#F2F0EB; padding:40px 44px; font:400 26px/1.75 var(--font-mono); letter-spacing:0; white-space:pre; overflow:hidden; border-radius:0; }
.terminal .prompt{ color:var(--cmds-pink); }
.terminal .dim{ color:#66758A; }
.terminal .ok{ color:#F2F0EB; font-weight:600; }

/* ───────── 18 시각표 ───────── */
.k-timeline .headline{ font-size:120px; }
.timeline{ display:grid; grid-template-columns:repeat(5,1fr); gap:0 var(--gut); margin-top:var(--block-gap); }
.tick{ padding-top:16px; border-top:1px solid var(--fg); display:grid; gap:0; align-content:start; }
.tick-when{ font-family:var(--font-mono); font-size:56px; letter-spacing:.02em; line-height:1; font-variant-numeric:tabular-nums; color:var(--fg); }
.tick-lv{ font:400 20px/1 var(--font-mono); letter-spacing:.14em; color:var(--em); margin-top:14px; }
.tick-what{ font-size:24px; line-height:1.4; color:var(--dim); margin-top:16px; }

/* ───────── 19 막대 → 활자 행 ───────── */
.k-bars .headline{ font-size:110px; }
.bars{ margin-top:var(--block-gap); border-top:1px solid var(--fg); }
.bar{ display:grid; grid-template-columns:1fr 600px 120px; gap:0 var(--gut); align-items:center; padding:24px 0; border-bottom:1px solid var(--line); }
.bar-label{ font-size:30px; line-height:1.3; color:var(--fg); }
.bar-label b{ font-family:var(--font-mono); font-weight:700; color:var(--em); display:inline-block; min-width:52px; letter-spacing:.06em; }
.bar-track{ display:block; height:14px; background:var(--hair); }
.bar-track i{ display:block; height:100%; width:var(--w,0%); background:var(--fg); }
.bar-val{ font:400 30px/1 var(--font-mono); letter-spacing:.04em; text-align:right; color:var(--fg); font-variant-numeric:tabular-nums; }
.bar.hi .bar-label{ color:var(--em); font-weight:700; }
.bar.hi .bar-track i,.bar.hi .bar-val{ background:var(--em); color:var(--em); }
.bar.hi .bar-val{ background:none; }
.k-bars .lead{ margin-top:var(--block-gap); font-size:28px; max-width:1700px; }

/* ───────── 23 관점 토글 ───────── */
.k-toggle .headline{ font-size:170px; }
.toggle{ margin-top:var(--block-gap); }
.toggle-ctl{ display:flex; gap:12px; }
.toggle-ctl button{ font:600 22px/1 var(--font-sans); letter-spacing:-.01em; padding:16px 26px; border:1.5px solid var(--line); background:transparent; color:var(--fg); cursor:pointer; border-radius:0; transition:background .25s, color .25s, border-color .25s; }
.toggle-ctl button[aria-pressed="true"]{ background:var(--fg); color:var(--bg); border-color:var(--fg); }
.toggle-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:0 var(--gut); margin-top:36px; }
.tg{ padding-top:16px; border-top:1px solid var(--fg); display:grid; align-content:start; }
.tg-a,.tg-b{ display:block; font-family:var(--font-display); font-size:72px; font-weight:800; letter-spacing:-.04em; line-height:1; color:var(--fg); }
.tg-b{ color:var(--em); }
.toggle[data-view="note"] .tg-b,.toggle[data-view="harness"] .tg-a{ display:none; }
.tg-desc{ display:block; font-size:24px; line-height:1.4; color:var(--dim); margin-top:18px; }
.toggle-verdict{ margin:48px 0 0; font-size:34px; line-height:1.35; color:var(--fg); max-width:1700px; }
.toggle[data-view="harness"] .toggle-verdict{ color:var(--em); }

/* ───────── 모션 (라이즈 스태거 · v14 .rise) ───────── */
html.js .slide[data-active] > :not(.tp-base){ animation:tpRise .6s var(--ease) both; }
html.js .slide[data-active] > :nth-child(1){ animation-delay:0ms; }
html.js .slide[data-active] > :nth-child(2){ animation-delay:80ms; }
html.js .slide[data-active] > :nth-child(3){ animation-delay:160ms; }
html.js .slide[data-active] > :nth-child(4){ animation-delay:240ms; }
html.js .slide[data-active] > :nth-child(5){ animation-delay:320ms; }
html.js .slide[data-active] > :nth-child(6){ animation-delay:400ms; }
@keyframes tpRise{ from{opacity:0; transform:translateY(22px)} to{opacity:1; transform:none} }
html.js [data-step]{ opacity:0; transform:translateY(18px); transition:opacity .5s var(--ease), transform .5s var(--ease); }
html.js [data-step].in{ opacity:1; transform:none; }
html.js svg [data-step]{ transform:none; }
@media (prefers-reduced-motion: reduce){
  html.js .slide[data-active],html.js .slide[data-active] > :not(.tp-base){ animation:none; }
  .toggle-ctl button{ transition:none; }
}

/* ───────── 인쇄 ───────── */
@media print{
  .slide{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  html.js .slide[data-active],html.js .slide[data-active] > :not(.tp-base){ animation:none !important; }
}
}
/* Achmage CMDS integration. Layout and typography remain theme-owned. */
html[data-theme=light]{--cmds-green:#0066B3;--cmds-green-bright:#007F86;--cmds-pink:#00B5AD;--bg:#fff;--fg:#111827;--dim:#485565;--muted:#485565;--faint:#66758A;--line:#CBD3DD;--hair:#E8EEF5;--accent:#0066B3;--accent-on:#fff;--em:#0066B3;--paper:#fff;--desk:#E8EEF5;--ink:#111827;--surface:#fff;--primary:#002E6E;--secondary:#0066B3;--teal:#007F86;--dk-panel-bg:#fff;--dk-panel-fg:#111827;--dk-panel-line:#CBD3DD;--dk-accent:#0066B3}
html[data-theme=dark]{--cmds-green:#4D9ED1;--cmds-green-bright:#00B5AD;--cmds-pink:#00B5AD;--bg:#001A44;--fg:#fff;--dim:#BDCEE3;--muted:#BDCEE3;--faint:#99B0CE;--line:#49617F;--hair:#15355C;--accent:#4D9ED1;--accent-on:#001A44;--em:#4D9ED1;--paper:#001A44;--desk:#001332;--ink:#fff;--surface:#001A44;--primary:#fff;--secondary:#4D9ED1;--teal:#00B5AD;--dk-panel-bg:#001A44;--dk-panel-fg:#fff;--dk-panel-line:#49617F;--dk-accent:#4D9ED1}
html{--font-sans:"Pretendard Variable",sans-serif;--font-display:"Pretendard Variable",sans-serif;--font-mono:"JetBrains Mono",monospace;--emphasis-surface:#002E6E;--emphasis-ink:#fff;--emphasis-border:#4D9ED1}
.sheet-body,.sheet-evidence{display:contents}.sheet-footer{display:flex;justify-content:space-between;gap:24px;margin-top:auto;padding-top:18px;font:18px/1.3 var(--font-mono);color:var(--dim)}
html.js[data-viewmode=present] .slide:has(.theme-decoration) .sheet-footer{display:none}
.cr-static{position:absolute;top:30px;left:70px;right:70px;display:flex;justify-content:space-between;border-bottom:2px solid var(--accent);padding:15px;font:20px var(--font-mono)}
.cr-static-track{position:absolute;bottom:22px;left:70px;right:70px;display:flex;gap:6px}.cr-static-segment{flex:1;border-top:4px solid var(--line);font:14px var(--font-mono)}.cr-static-segment.cur{border-color:var(--teal)}
@media screen{html.js[data-viewmode=present] .cr-static,html.js[data-viewmode=present] .cr-static-track{display:none}}
.sheet-body>*{min-width:0}.sheet-evidence .foot{white-space:normal}.foot-src{white-space:normal;overflow-wrap:anywhere;max-width:100%}
html .sheet-evidence .foot-src,html .sheet-evidence .foot-src a{white-space:normal;overflow-wrap:anywhere}
/* Long decks retain every decorative tick within the stage. Interactive block
   navigation is provided by the global progress control. */
html[data-viewmode=present] .dd-rail{gap:2px}
@media print{.dd-rail{gap:2px}}
/* A closing resource grid carries links and QR sources rather than hero cards. */
html[data-viewmode=present]{--ach-u:calc(var(--dk-w,1920px) / 1920px)}
html[data-viewmode=present] .kind-outro:has(.qr) .headline{font-size:calc(88px * var(--ach-u));line-height:1.08;margin-top:0}
html[data-viewmode=present] .kind-outro:has(.qr) .grid{margin-top:calc(24px * var(--ach-u));gap:calc(28px * var(--ach-u));width:100%;grid-template-columns:repeat(3,minmax(0,1fr))}
html[data-viewmode=present] .kind-outro:has(.qr) .cell{min-height:0;min-width:0;padding:calc(12px * var(--ach-u));gap:calc(12px * var(--ach-u))}
html[data-viewmode=present] .kind-outro:has(.qr) .qr{width:calc(130px * var(--ach-u));height:calc(130px * var(--ach-u));margin:calc(12px * var(--ach-u)) 0}
html[data-viewmode=present] .kind-outro:has(.qr) .cell-title{font-size:calc(32px * var(--ach-u));line-height:1.2;overflow-wrap:anywhere}
html[data-viewmode=present] .kind-outro:has(.qr) .cell-text,html[data-viewmode=present] .kind-outro:has(.qr) .web{font-size:calc(24px * var(--ach-u));line-height:1.3;overflow-wrap:anywhere}
html[data-viewmode=present] .kind-outro:has(.qr) .word-url{white-space:normal;overflow-wrap:anywhere}
html[data-viewmode=present] .kind-outro:has(.qr) .lead{font-size:calc(28px * var(--ach-u));line-height:1.4;margin-top:calc(24px * var(--ach-u))}
@media screen{
 html[data-deck=typographic-poster][data-viewmode=present][data-aspect="16x9"] :is(.k-compare,.k-ladder,.k-diagram,.k-table){padding-bottom:24px}
 html[data-deck=typographic-poster][data-viewmode=present][data-aspect="16x9"] :is(.k-compare,.k-ladder,.k-diagram,.k-table) .tp-base{margin-top:16px}
 html[data-deck=typographic-poster][data-viewmode=present][data-aspect="16x9"] :is(.k-compare,.k-table) .kicker{margin-bottom:32px}
 html[data-deck=datadriven][data-viewmode=present][data-aspect="16x9"] .k-statement .body-list{margin-top:16px;margin-bottom:16px}
 html[data-deck=datadriven][data-viewmode=present][data-aspect="16x9"] .k-statement .body-list li{padding:16px 24px}
 html[data-deck=intertitle][data-viewmode=present] .kind-outro:has(.qr){gap:20px;padding-top:calc(var(--bar) + 24px);padding-bottom:calc(var(--bar) + 24px)}
}
.image img{max-width:100%;max-height:550px;object-fit:contain}.image figcaption{font-size:24px}
.diagram-fit,.diagram-reading,.diagram-zoom,.static-only,.chart-data{display:none}
.toggle-verdict{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.toggle-static-labels{display:none;font-size:16px;line-height:1.3;margin:12px 0 0;color:var(--teal)}
html:not(.js) .toggle-static-labels,html[data-viewmode=read] .toggle-static-labels,body[data-mode=fit] .toggle-static-labels{display:block}
@media print{.toggle-static-labels{display:block;font-size:24px}}
html.js[data-viewmode=present] .toggle[data-view=note] :is(.tg-b,.tg-desc-b,[data-verdict=keep]),html.js[data-viewmode=present] .toggle[data-view=harness] :is(.tg-a,.tg-desc-a,[data-verdict=delegate]){display:none}
.bar-track i{width:var(--w,0%)}.r-bar{--bar-value:var(--w)}
.r-evidence{font-size:28px;line-height:1.4}.skip{position:fixed;top:-100px;z-index:1000}.skip:focus{top:0;background:var(--bg);color:var(--fg)}
button,select,input{font-family:var(--font-sans)}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.dk-nw input,.note-unlock input{width:100%;font-size:18px;min-height:44px;padding:8px;color:var(--fg);background:var(--bg);border:1px solid var(--line)}
.note-unlock button,.timer-controls button{min-height:44px;padding:8px 12px;border:1px solid var(--line);background:var(--bg);color:var(--fg);cursor:pointer}
.note-unlock{display:grid;gap:8px;margin:12px 0}.note-error{font-size:14px;color:var(--teal)}
.note-unlock [hidden]{display:none}.nw-body{white-space:pre-wrap}
#dk-notes{overflow:auto;background:var(--bg);color:var(--fg);padding:18px}
#dk-view{height:36px;min-height:36px;max-width:140px;padding:4px;font-size:13px;background:var(--bg);color:var(--fg)}
#dk-help{overflow:auto}#dk-help .card{max-height:90dvh;overflow:auto}#dk-help-close{min-height:44px}
.dk-top{height:auto;min-height:44px}.dk-top .dk-title{min-width:0;overflow:hidden}.dk-ctl{flex-wrap:wrap}
#dk-tools{display:none}
@media(max-width:850px){#dk-tools{display:block}body:not([data-tools=open]) .dk-ctl button:not(#dk-tools){display:none}}
#dk-nav-prev,#dk-nav-next{min-width:44px;min-height:40px}
#dk-area{overscroll-behavior:contain}
body[data-mode=fit] #deck{left:0;top:0;width:100%;height:100%;transform:none;overflow:hidden}
body[data-mode=fit] .slide{right:auto!important;bottom:auto!important;border-radius:0;box-shadow:none}
body[data-mode=fit] .slide[data-active]{display:block}
body[data-mode=fit] .sheet-evidence{display:block}
body[data-mode=fit] .sheet-footer{display:flex}
body[data-mode=fit] .theme-decoration{display:none}
body[data-mode=fit] #deck>:not(.slide){display:none}
body[data-mode=fit] :is(.fn-tabs,.es-dots){display:none}
body[data-mode=fit] .r-timeline{display:grid;grid-template-columns:1fr;gap:12px;margin-top:16px}
body[data-mode=fit] .r-timeline *{font-size:16px;line-height:1.4}
body[data-mode=fit] .r-evidence{font-size:16px;line-height:1.4;margin:14px 0}
body[data-mode=fit] :is(.r-step-title,.r-cell-title){display:block}
body[data-mode=fit] .r-tg-a{grid-area:a}body[data-mode=fit] .r-tg-b{grid-area:b}
body[data-mode=fit] .r-tg-desc-a{grid-area:da}body[data-mode=fit] .r-tg-desc-b{grid-area:db}
body[data-mode=fit] .toggle-ctl{display:none}
body[data-mode=fit] .r-bar-track i{width:var(--w,0%)}
body[data-mode=fit] .r-diagram{max-width:100%;height:auto}
body[data-mode=fit] .headline{margin-top:0!important}
body[data-mode=fit] [data-step]{opacity:1!important;visibility:visible!important;transform:none!important}
body[data-mode=fit] .toggle :is(.tg-a,.tg-b,.tg-desc,[data-verdict]),html:not(.js) .toggle :is(.tg-a,.tg-b,.tg-desc,[data-verdict]),html.js[data-viewmode=read] .toggle :is(.tg-a,.tg-b,.tg-desc,[data-verdict]){display:block!important}
body[data-mode=fit] .kicker{white-space:normal}
body[data-mode=fit] .kicker::after{display:none}
body[data-mode=fit] .r-tbl :is(td,th){white-space:normal}
@media screen{
html.js[data-viewmode=read] #deck{position:relative;inset:auto;width:100%;height:100%;transform:none;overflow:auto;scroll-snap-type:none}
html.js[data-viewmode=read] .slide,html:not(.js) .slide{display:block;position:relative;inset:auto;transform:none;width:min(100%,1100px);height:auto;min-height:0;overflow:visible;margin:0 auto 28px;padding:32px 24px}
html.js[data-viewmode=read] .sheet-body,html:not(.js) .sheet-body{display:block}
html.js[data-viewmode=read] .sheet-evidence,html:not(.js) .sheet-evidence{display:block;margin-top:28px}
html.js[data-viewmode=read] :is(.headline,.quote p),html:not(.js) :is(.headline,.quote p){font-size:clamp(30px,5vw,64px)!important;white-space:normal;line-height:1.12;letter-spacing:-.035em;margin-top:0}
html.js[data-viewmode=read] .headline .sub,html:not(.js) .headline .sub{font-size:25px}
html.js[data-viewmode=read] :is(.lead,.step-text,.cell-text,.compare li,.body-list li,.tg-desc,.toggle-verdict,.evidence),html:not(.js) :is(.lead,.step-text,.cell-text,.compare li,.body-list li,.tg-desc,.toggle-verdict,.evidence){font-size:18px;line-height:1.6;margin-top:14px}
html.js[data-viewmode=read] :is(.step-title,.cell-title,.compare h3,.tg-a,.tg-b),html:not(.js) :is(.step-title,.cell-title,.compare h3,.tg-a,.tg-b){font-size:26px;line-height:1.3;display:block}
html.js[data-viewmode=read] :is(.kicker,.foot,.foot-src,.label,.sheet-footer,.step-no,.cell-no),html:not(.js) :is(.kicker,.foot,.foot-src,.label,.sheet-footer,.step-no,.cell-no){font-size:14px;line-height:1.5;white-space:normal}
html.js[data-viewmode=read] :is(.grid,.steps,.stats,.compare,.toggle-grid),html:not(.js) :is(.grid,.steps,.stats,.compare,.toggle-grid){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:24px}
html.js[data-viewmode=read] .step,html:not(.js) .step{display:block;padding:14px 0}
html.js[data-viewmode=read] .num,html:not(.js) .num{font-size:64px!important}
html.js[data-viewmode=read] .unit,html:not(.js) .unit{font-size:24px}
html.js[data-viewmode=read] .tbl,html:not(.js) .tbl{font-size:16px;min-width:0;line-height:1.4}
html.js[data-viewmode=read] .tbl :is(th,td),html:not(.js) .tbl :is(th,td){font-size:16px;padding:12px 8px;white-space:normal}
html.js[data-viewmode=read] .terminal,html:not(.js) .terminal{font-size:16px;white-space:pre-wrap}
html.js[data-viewmode=read] :is(.word-url,.web,.cell-text,.tbl th,.tbl td),html:not(.js) :is(.word-url,.web,.cell-text,.tbl th,.tbl td){overflow-wrap:anywhere;white-space:normal}
html.js[data-viewmode=read] :is(.terminal,.terminal *),html:not(.js) :is(.terminal,.terminal *){overflow-wrap:anywhere;white-space:pre-wrap}
html.js[data-viewmode=read] .bar,html:not(.js) .bar{font-size:18px;grid-template-columns:140px 1fr 100px}
html.js[data-viewmode=read] :is(.bar-label,.bar-val),html:not(.js) :is(.bar-label,.bar-val){font-size:18px}
html.js[data-viewmode=read] :is(.diagram,.image img),html:not(.js) :is(.diagram,.image img){max-width:100%;height:auto}
html.js[data-viewmode=read] .diagram-zoom,html:not(.js) .diagram-zoom{display:block;font-size:16px}
.diagram-pan{overflow:auto;max-width:100%}.diagram-pan svg{min-width:1000px}
html.js[data-viewmode=read] .theme-decoration,html:not(.js) .theme-decoration{display:none}
html.js[data-viewmode=read] #deck>:not(.slide){display:none}
html.js[data-viewmode=read] .slide [data-step],html:not(.js) [data-step]{opacity:1;transform:none;visibility:visible}
html:not(.js),html:not(.js) body{height:auto;overflow:auto}
html:not(.js) #deck{position:static;transform:none;width:100%;height:auto;overflow:visible}
html:not(.js) .runtime-only{display:none}html:not(.js) .static-only{display:inline}
}
@media(max-width:850px){.dk-brand,.dk-title,.dk-sec,.dk-mode,.dk-clock{display:none!important}.dk-top{padding:4px 8px}.dk-ctl{gap:4px}.dk-ctl button{min-height:36px;font-size:12px;padding:5px 8px}.dk-ctl kbd{display:none}.dk-bottom{padding:2px 8px;gap:8px}.dk-progress{min-width:30px}html.js[data-viewmode=read] :is(.grid,.steps,.stats,.compare,.toggle-grid){grid-template-columns:1fr}#dk-notes{width:min(440px,100%);z-index:100;box-shadow:0 0 0 100vmax #0008}html.js[data-mode=notes] #dk-area{right:0}.dk-nw{display:block!important}.dk-nw main,.dk-nw aside{padding:20px!important}body[data-mode=fit] .sheet-footer{font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}html.js[data-viewmode=present] [data-step]:not(.in){opacity:0!important}}
@media print{
html[data-view=notes] body>*{display:none!important}
html[data-view=notes] body::before{content:"발표자 노트는 인쇄하지 않습니다.";display:block;font-size:20px}
html,body{margin:0!important;width:1920px!important;height:auto!important;overflow:visible!important;background:var(--bg)!important}
#dk-area,#deck{position:static!important;transform:none!important;width:1920px!important;height:auto!important;overflow:visible!important}
.slide,html[data-engine] .slide,body[data-mode] .slide{display:flex!important;position:relative!important;inset:auto!important;transform:none!important;width:1920px!important;height:1080px!important;min-height:1080px!important;margin:0!important;overflow:visible!important;break-after:page;page-break-after:always;animation:none!important}
html[data-aspect="16x10"] .slide{height:1200px!important;min-height:1200px!important}
html[data-deck=field-notebook] .slide{display:grid!important}
.slide:last-child{break-after:auto;page-break-after:auto}
.sheet-body,.sheet-evidence{display:contents!important}.sheet-footer{display:flex!important}
.slide [data-step]{opacity:1!important;visibility:visible!important;transform:none!important;animation:none!important}
.dk-panel,#dk-notes,#dk-help,#dk-toast,.skip,noscript,.diagram-zoom,.diagram-reading,.diagram-fit,.toggle-ctl,.runtime-only,#deck>:not(.slide){display:none!important}
.static-only{display:inline!important}
.toggle .tg-a,.toggle .tg-b,.toggle .tg-desc,.toggle [data-verdict]{display:block!important}
.toggle-grid{display:grid!important}.toggle-verdict{display:grid!important}
html.js .slide>*{animation:none!important}
*{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

html[data-motion=reduce] *,html[data-motion=reduce] *::before,html[data-motion=reduce] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}

html[data-motion=reduce] *,html[data-motion=reduce] *::before,html[data-motion=reduce] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}

@media screen{
html.js[data-viewmode=present][data-engine=scroll] #deck{width:var(--stage-w);height:var(--stage-h);left:50%;top:50%;transform:translate(-50%,-50%) scale(var(--dk-scale));transform-origin:center;overflow:visible;scroll-snap-type:none}
html.js[data-viewmode=present][data-engine=scroll] .slide{position:absolute!important;inset:0;width:var(--stage-w);height:var(--stage-h);min-height:0}
html.js[data-viewmode=present][data-engine=scroll] .slide:not([data-active]){display:none!important}
}
/* Long translated titles retain the theme's hierarchy with a language-specific
   type ramp. Content and intended line breaks are never shortened. */
@media screen{
html[lang=en][data-deck=datadriven][data-viewmode=present]{--t-h1:88px;--lh-h1:1.12}
html[lang=en][data-deck=datadriven][data-viewmode=present] .compare li{font-size:32px;line-height:1.4}
html[lang=en][data-deck=datadriven][data-viewmode=present] .k-cover .headline{font-size:120px;line-height:1.1}
html[lang=en][data-deck=datadriven][data-viewmode=present] .k-cover .lead{font-size:36px;margin-top:32px}
html[lang=en][data-deck=datadriven][data-viewmode=present] [data-layout~=denseBody] .lead{font-size:32px;line-height:1.4}
html[lang=en][data-deck=datadriven][data-viewmode=present] [data-layout~=denseBody] .body-list{margin-top:16px;margin-bottom:16px}
html[lang=en][data-deck=datadriven][data-viewmode=present] [data-layout~=denseBody] .body-list li{padding:12px 24px;line-height:1.4}
html[lang=en][data-deck=broadsheet][data-viewmode=present] .k-cover .headline{font-size:124px;line-height:1.04}
html[lang=en][data-deck=broadsheet][data-viewmode=present] .k-diagram .diagram{max-height:400px;margin-top:20px}
html[lang=en][data-deck=control-room][data-viewmode=present] .k-diagram .diagram{max-height:390px}
html[lang=en][data-deck=section-drawing][data-viewmode=present] .k-cover .headline{font-size:112px;line-height:1.04}
html[lang=en][data-deck=intertitle][data-viewmode=present] .k-cover .headline{font-size:124px;line-height:1.04}
html[lang=en][data-deck=intertitle][data-viewmode=present] .k-diagram .diagram{max-height:400px}
html[lang=en][data-deck=typographic-poster][data-viewmode=present] [data-layout~=compactCompare] .compare li{padding:16px 0;font-size:30px}
html[lang=en][data-deck=typographic-poster][data-viewmode=present] [data-layout~=wideLadderLabel] .headline{font-size:106px;line-height:1.04}
html[lang=en][data-deck=typographic-poster][data-viewmode=present] [data-layout~=wideLadderLabel] .step{grid-template-columns:310px 400px 1fr;padding:18px 0}
html[lang=en][data-deck=typographic-poster][data-viewmode=present] [data-layout~=wideLadderLabel] .step-title{font-size:44px;line-height:1.1}
html[lang=en][data-deck=typographic-poster][data-viewmode=present] [data-layout~=denseBars] .bar{padding:18px 0}
html.js[data-viewmode=read] :is(.cell,.cell-title,.cell-text),html:not(.js) :is(.cell,.cell-title,.cell-text){min-width:0;max-width:100%;overflow-wrap:anywhere;white-space:normal}
html.js[data-viewmode=read] .qr,html:not(.js) .qr{width:104px;height:104px;max-width:100%;margin-top:16px}
@media(max-width:850px){html.js[data-viewmode=read] :is(.grid,.steps,.stats,.compare,.toggle-grid),html:not(.js) :is(.grid,.steps,.stats,.compare,.toggle-grid){grid-template-columns:minmax(0,1fr)}}
}
/* One-page responsive projection. This stylesheet never changes the print projection. */
@media screen{
body[data-mode=fit] [class*="r-"]{min-height:0!important;max-height:none;float:none;column-count:auto;column-width:auto}
body[data-mode=fit] :is(.r-cell,.r-step,.r-tg,.r-col,.r-stat){height:auto;padding:12px 0 0;gap:0}
body[data-mode=fit] :is(.r-grid,.r-steps,.r-toggle,.r-stats,.r-compare){height:auto}
body[data-mode=fit] .r-toggle{gap:0}
body[data-mode=fit] .r-toggle-grid{gap:12px 16px}
body[data-mode=fit] .r-headline{width:auto;max-width:100%;line-height:1.08}
body[data-mode=fit] .r-cell-title{margin-bottom:0}
body[data-mode=fit] :is(.r-tg-a,.r-tg-b){font-size:21px;line-height:1.15}
body[data-mode=fit] .r-tg-desc{font-size:16px;line-height:1.3}
body[data-mode=fit] .r-foot::before{display:none}
body[data-mode=fit] .r-body-list{gap:0}
body[data-mode=fit] .r-bar-track{padding:0;min-height:12px!important}
}
/* Theme-independent geometry for a readable single-sheet projection. */
@media screen{
body[data-mode=fit] .slide{display:none!important;animation:none!important;max-width:none!important;grid-template-columns:none!important}
body[data-mode=fit] .slide[data-active]{display:block!important}
body[data-mode=fit] .slide *{animation:none!important;min-width:0;box-sizing:border-box}
body[data-mode=fit] .slide::before,body[data-mode=fit] .slide::after{display:none}
body[data-mode=fit] :is(.r-kicker,.r-foot,.r-foot-note,.r-foot-src){position:static!important;inset:auto!important;width:auto!important;height:auto!important;max-width:100%;letter-spacing:normal;padding-left:0;padding-right:0}
body[data-mode=fit] :is(.r-grid,.r-steps,.r-stats,.r-toggle-grid){display:grid}
body[data-mode=fit] :is(.r-cell,.r-step,.r-tg,.r-col){padding-left:0;padding-right:0}
body[data-mode=fit] .r-toggle-verdict{column-count:unset;padding:0}
body[data-mode=fit] :is(.r-foot-note,.r-foot-src){border:0;background:none;padding-top:0;padding-bottom:0}
body[data-mode=fit] .r-tbl{display:table}
body[data-mode=fit] :is(.r-body-list,.r-grid,.r-steps,.r-compare,.r-bars,.r-toggle,.r-stats){width:100%;max-width:100%}
body[data-mode=fit] .r-toggle-grid{gap:12px 16px}
body[data-mode=fit] :is(.r-tg-a,.r-tg-b){font-size:21px}
body[data-mode=fit] .r-tg-desc{line-height:1.3}
body[data-mode=fit] .r-toggle-verdict{line-height:1.3}
html.js[data-viewmode=read] .slide,html:not(.js) .slide{display:block!important;animation:none!important;grid-template-columns:none}
html.js[data-viewmode=read] :is(.kicker,.foot),html:not(.js) :is(.kicker,.foot){position:static;height:auto}
}
.diagram-fit,#tools-toggle{display:none}
@media screen{
body[data-mode=fit] .diagram-fit-node :is(.r-dg-t,.r-dg-s){min-width:0;overflow-wrap:anywhere}
}
@media screen{
select{font:inherit;min-height:44px;padding:8px 10px;color:var(--ink);background:var(--surface);border:1px solid var(--line);max-width:100%}
.toolbar{padding-top:max(8px,env(safe-area-inset-top));padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
.controls{bottom:calc(var(--view-bottom,0px) + max(6px,env(safe-area-inset-bottom)));max-width:calc(100% - 16px)}
body:is([data-mode=fit],[data-mode=present]){overflow:hidden}
body:is([data-mode=fit],[data-mode=present]) .toolbar{position:fixed;top:var(--view-top,0px);left:var(--view-left,0px);width:var(--view-width,100%);box-sizing:border-box}
body:is([data-mode=fit],[data-mode=present]) #slides{position:fixed;inset:auto!important;left:var(--stage-left,0px)!important;top:var(--stage-top,64px)!important;width:var(--stage-width,100%);height:var(--stage-height,calc(100dvh - 128px));max-width:none;margin:0;padding:0}
body[data-mode=fit] .slide{display:none;position:absolute;left:50%;top:50%;width:var(--fit-width,360px);height:auto;min-height:0;margin:0;border:0;padding:16px 18px 14px;transform:translate(-50%,-50%) scale(var(--fit-scale,1));transform-origin:center;overflow:visible}
body[data-mode=fit] .slide.active{display:block}
body[data-mode=fit] .sheet-body{display:flex;flex-direction:column;min-height:0}
body[data-mode=fit] .sheet-evidence{margin-top:20px}
body[data-mode=fit] .sheet-footer{margin-top:16px;padding-top:10px;gap:16px}
body[data-mode=fit] .sheet-number{font-size:13px}
body[data-mode=fit] .progress-ticks{gap:3px}
body[data-mode=fit] .progress-ticks i{height:5px}
body[data-mode=fit] .r-kicker{font-size:11px;line-height:1.3;margin:0 0 20px;padding-bottom:10px;letter-spacing:.03em}
body[data-mode=fit] .r-headline,body[data-mode=fit] .r-quote p{font-size:36px!important;line-height:1.08;white-space:normal;overflow-wrap:anywhere;word-break:keep-all;letter-spacing:-.035em}
body[data-mode=fit] .kind-cover .r-headline{font-size:48px!important}
body[data-mode=fit] :is(.kind-section,.kind-divider) .r-headline{font-size:60px!important}
body[data-mode=fit] .r-headline .r-sub{font-size:20px;line-height:1.3;margin-top:16px}
body[data-mode=fit] .r-lead{font-size:18px;line-height:1.45;margin-top:18px}
body[data-mode=fit] .r-foot{display:block;padding-top:10px}
body[data-mode=fit] .r-foot-note,body[data-mode=fit] .r-foot-src{display:block;font-size:12px;line-height:1.4;max-width:100%;margin:0}
body[data-mode=fit] .r-foot-src{margin-top:8px;font-family:"Pretendard Variable",sans-serif}
body[data-mode=fit] .r-body-list{margin-top:20px}
body[data-mode=fit] .r-body-list li{font-size:17px;line-height:1.4;padding:14px 0}
body[data-mode=fit] .r-body-list b{display:block;min-width:0;margin-bottom:6px}
body[data-mode=fit] :is(.r-grid,.r-steps){grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px;margin-top:22px}
body[data-mode=fit] :is(.r-step,.r-cell){padding-top:12px}
body[data-mode=fit] :is(.r-step-title,.r-cell-title){font-size:25px;line-height:1.15;margin-top:8px}
body[data-mode=fit] :is(.r-step-text,.r-cell-text){font-size:16px;line-height:1.4;margin-top:10px}
body[data-mode=fit] :is(.r-step-no,.r-cell-no){font-size:12px}
body[data-mode=fit] .r-steps.r-ladder{grid-template-columns:1fr;gap:0}
body[data-mode=fit] .r-ladder .r-step{grid-template-columns:54px 1fr;gap:6px 14px;padding:14px 0}
body[data-mode=fit] .r-ladder .r-step-title{font-size:25px;margin:0}
body[data-mode=fit] .r-ladder .r-step-text{grid-column:2;font-size:16px;margin:0}
body[data-mode=fit] .r-ladder .r-hi{margin:0 -18px;padding:14px 18px}
body[data-mode=fit] .r-compare{grid-template-columns:1fr;gap:20px;margin-top:22px}
body[data-mode=fit] .r-compare h3{font-size:25px;padding-bottom:10px}
body[data-mode=fit] .r-compare li{font-size:17px;line-height:1.4;padding:10px 0}
body[data-mode=fit] .r-tbl{font-size:14px;line-height:1.4;margin-top:22px;min-width:0}
body[data-mode=fit] .r-tbl th,body[data-mode=fit] .r-tbl td:first-child{font-size:12px;font-family:"Pretendard Variable",sans-serif}
body[data-mode=fit] .r-tbl th,body[data-mode=fit] .r-tbl td{padding:10px 6px 10px 0;word-break:normal;overflow-wrap:anywhere}
body[data-mode=fit] .r-stats{grid-template-columns:1fr 1fr;gap:12px 20px;margin-top:22px}
body[data-mode=fit] .r-stat:first-child{grid-column:1/-1;grid-row:auto}
body[data-mode=fit] .r-stat:first-child .r-num{font-size:110px}
body[data-mode=fit] .r-stat:first-child .r-unit{font-size:32px}
body[data-mode=fit] .r-stat:not(:first-child){padding:12px 0}
body[data-mode=fit] .r-num{font-size:48px}
body[data-mode=fit] .r-unit{font-size:24px}
body[data-mode=fit] .r-label{font-size:13px;line-height:1.4;margin-top:8px}
body[data-mode=fit] .r-terminal{font-size:15px;line-height:1.5;padding:18px;margin-top:22px}
body[data-mode=fit] .r-bars{margin-top:22px}
body[data-mode=fit] .r-bar{grid-template-columns:1fr 80px;gap:8px;padding:14px 0}
body[data-mode=fit] .r-bar-track{grid-column:1/-1;grid-row:2;height:12px}
body[data-mode=fit] .r-bar-label,body[data-mode=fit] .r-bar-val{font-size:17px}
body[data-mode=fit] .r-toggle{margin-top:22px}
body[data-mode=fit] .r-toggle-grid{grid-template-columns:1fr 1fr;gap:20px 16px;margin-top:0}
body[data-mode=fit] .r-tg{display:grid;grid-template-areas:"a" "da" "b" "db";grid-template-columns:1fr;padding-top:12px}
body[data-mode=fit] :is(.r-tg-a,.r-tg-b){font-size:23px;line-height:1.1}
body[data-mode=fit] .r-tg-b{margin-top:16px}
body[data-mode=fit] .r-tg-desc{font-size:14px;line-height:1.35;margin-top:8px;margin-bottom:0}
body[data-mode=fit] .r-toggle-verdict{grid-template-columns:1fr;font-size:16px;line-height:1.4;gap:12px;margin-top:20px}
body[data-mode=fit] .r-quote{margin-top:8px}
body[data-mode=fit] .r-quote cite{font-size:14px;margin-top:20px}
body[data-mode=fit] .r-diagram[data-fit-projection=linear]{display:none}
body[data-mode=fit] .diagram-fit{display:block;list-style:none;margin:22px 0 0;padding:0}
body[data-mode=fit] .diagram-fit-node{border:1px solid var(--line);padding:12px 16px}
body[data-mode=fit] .diagram-fit-node span{display:block;fill:currentColor}
body[data-mode=fit] .diagram-fit-node .r-dg-t{font:800 24px/1.15 "Pretendard Variable",sans-serif;color:var(--ink)}
body[data-mode=fit] .diagram-fit-node .r-dg-s{font:400 15px/1.4 "Pretendard Variable",sans-serif;color:var(--muted);margin-top:5px}
body[data-mode=fit] .diagram-fit-link{padding:6px 16px;color:var(--secondary);font-size:13px}
body[data-mode=fit] .diagram-fit-link::before{content:"↓ ";font-weight:800}
body[data-mode=fit] .diagram-fit-loop{padding:12px 16px;margin-top:12px;border-left:3px solid var(--secondary);background:var(--hair);font-size:14px;line-height:1.4}
body[data-mode=fit] .diagram-fit-loop::before{content:"↶ "}
body[data-mode=fit] .r-qr{width:84px;height:84px}
body[data-mode=fit] .r-image img{max-height:260px}
body[data-mode=fit] .r-image figcaption{font-size:14px}
body[data-mode=fit] .r-chart-data{font-size:14px}
body[data-mode=fit] .r-chart-data caption{font-size:12px}
body[data-mode=fit] .word-url{overflow-wrap:anywhere;word-break:break-all}
body[data-mode=fit][data-fit-density=compact] .r-kicker{margin-bottom:14px;padding-bottom:8px}
body[data-mode=fit][data-fit-density=compact] .slide{padding:12px}
body[data-mode=fit][data-fit-density=compact] .r-terminal{padding:12px}
body[data-mode=fit][data-fit-density=compact] .sheet-evidence{margin-top:12px}
body[data-mode=fit][data-fit-density=compact] .r-headline{font-size:32px!important}
body[data-mode=fit][data-fit-density=compact] .r-lead{font-size:17px;margin-top:14px}
body[data-mode=fit][data-fit-density=compact] :is(.r-grid,.r-steps,.r-compare,.r-tbl,.r-stats,.r-terminal,.r-bars,.r-toggle,.diagram-fit){margin-top:16px}
body[data-mode=fit][data-fit-density=compact] :is(.r-ladder .r-step,.r-compare li,.r-body-list li){padding-top:10px;padding-bottom:10px}
body[data-mode=fit][data-fit-density=compact] .sheet-evidence{margin-top:16px}
body[data-mode=fit][data-fit-density=compact] .sheet-footer{margin-top:12px}
}
@media screen and (max-width:850px){
#tools-toggle{display:block;min-width:44px}
.toolbar{flex-direction:row;flex-wrap:wrap;gap:8px;align-items:center}
.deck-title{flex:1;min-width:0;max-width:none}
.toolbar nav{display:contents}
.toolbar select{font-size:13px;width:128px}
body:not([data-tools=open]) .toolbar nav button{display:none}
body[data-tools=open] .toolbar nav button{display:block}
body[data-tools=open] .toolbar nav{display:flex;flex-wrap:wrap;width:100%}
#notes-panel{bottom:calc(var(--view-bottom,0px) + var(--controls-height,60px) + 16px);max-height:45dvh}
}
@media print{.diagram-fit,#tools-toggle{display:none!important}}


@media screen{body[data-mode=fit] .diagram-fit-node.fit-emphasis{background:var(--emphasis-surface);border-color:var(--emphasis-border)}body[data-mode=fit] .diagram-fit-node.fit-emphasis :is(.r-dg-t,.r-dg-s){color:var(--emphasis-ink)}}

@media screen{
body[data-mode=fit] .r-compare{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
body[data-mode=fit] .r-compare h3{font-size:23px}
body[data-mode=fit] .r-compare li{font-size:16px;line-height:1.35}
body[data-mode=fit] .r-tbl th,body[data-mode=fit] .r-tbl td:first-child{font-size:14px}
body[data-mode=fit] .r-tg-desc{font-size:16px}
body[data-mode=fit] .r-terminal{font-size:16px;line-height:1.4}
body[data-mode=fit] .r-terminal,body[data-mode=fit] .r-terminal *{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}
body[data-mode=fit] .r-stat:first-child .r-num{font-size:78px}
body[data-mode=fit] .diagram-fit-node{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px;align-items:center;padding:10px 12px}
body[data-mode=fit] .diagram-fit-node .r-dg-t{font-size:24px}
body[data-mode=fit] .diagram-fit-node .r-dg-s{font-size:16px;margin:0}
body[data-mode=fit] .diagram-fit-link{padding:4px 12px;font-size:14px}
body[data-mode=fit] .diagram-fit-loop{padding:10px 12px;font-size:16px}
body[data-mode=fit] .r-links:has(.r-qr){grid-template-columns:1fr;gap:12px}
body[data-mode=fit] .r-links .r-cell:has(.r-qr){display:grid;grid-template-columns:minmax(0,1fr) 72px;grid-template-areas:"title qr" "text qr";gap:8px 14px}
body[data-mode=fit] .r-cell:has(.r-qr) .r-cell-title{grid-area:title;font-size:18px;line-height:1.2;margin:0}
body[data-mode=fit] .r-cell:has(.r-qr) .r-cell-text{grid-area:text;font-size:16px;line-height:1.3;margin:0}
body[data-mode=fit] .r-cell:has(.r-qr) .r-qr{grid-area:qr;width:72px;height:72px;margin:0;align-self:center}
body[data-mode=fit] .r-cell:has(.r-qr) .r-web{font-size:14px}
}


@media screen{
 body[data-mode=fit] .diagram-fit :is(.r-dg-v,.diagram-fit-loop span){font-size:16px}
 body[data-ready=true][data-mode=read]{overflow:hidden}
 body[data-ready=true][data-mode=read] .toolbar{position:fixed;top:var(--view-top,0px);left:var(--view-left,0px);width:var(--view-width,100%)}
 body[data-ready=true][data-mode=read] #slides{position:fixed;inset:auto;top:var(--stage-top,64px);left:var(--stage-left,0px);width:var(--stage-width,100%);height:var(--stage-height,calc(100dvh - 128px));max-width:none;margin:0;overflow:auto;overscroll-behavior:contain;scroll-padding-top:12px}
 body[data-ready=true][data-mode=read] .slide{max-width:1232px;margin-left:auto;margin-right:auto;scroll-margin-top:12px}
}

@media screen{body[data-mode=fit] .diagram-fit-rel{font-size:16px;line-height:1.35;padding:8px 12px;border-left:3px solid var(--secondary);color:var(--secondary)}}
@media screen{body[data-mode=fit] .diagram-fit-link[data-direction=none]::before{content:"│"}}
@media screen{
body[data-mode=fit] .diagram-fit-loop::before{content:""}
body[data-mode=fit][data-fit-density=compact] :is(.r-grid,.r-toggle-grid){row-gap:12px}
body[data-mode=fit][data-fit-density=compact] :is(.r-step-text,.r-cell-text){margin-top:8px}
body[data-mode=fit][data-fit-density=compact] .r-tg-b{margin-top:12px}
body[data-mode=fit][data-fit-density=compact] .r-toggle-verdict{gap:8px;margin-top:16px}
body[data-mode=fit] :is(.r-label,.r-step-no,.r-cell-no){font-size:16px}
}
/* English uses longer phrases; preserve every paired statement while reducing empty space. */
@media screen{
html[lang=en] body[data-mode=fit][data-fit-density=compact] .r-headline{font-size:30px;line-height:1.06}
html[lang=en] body[data-mode=fit][data-fit-density=compact] .r-kicker{margin-bottom:10px}
html[lang=en] body[data-mode=fit][data-fit-density=compact] .r-lead{margin-top:10px;line-height:1.3}
html[lang=en] body[data-mode=fit][data-fit-density=compact] :is(.r-cell,.r-step){padding-top:8px}
html[lang=en] body[data-mode=fit][data-fit-density=compact] :is(.r-cell-title,.r-step-title){font-size:23px;margin-top:6px}
html[lang=en] body[data-mode=fit][data-fit-density=compact] :is(.r-cell-text,.r-step-text){line-height:1.3;margin-top:6px}
html[lang=en] body[data-mode=fit][data-fit-density=compact] :is(.r-tbl th,.r-tbl td){padding-top:8px;padding-bottom:8px}
html[lang=en] body[data-mode=fit][data-fit-density=compact] .diagram-fit-node{padding-top:8px;padding-bottom:8px}
html[lang=en] body[data-mode=fit][data-fit-density=compact] .diagram-fit-loop{padding-top:8px;padding-bottom:8px;margin-top:8px}
html[lang=en] body[data-mode=fit] .r-toggle-grid{grid-template-columns:1fr;row-gap:10px}
html[lang=en] body[data-mode=fit] .r-tg{grid-template-columns:1fr 1fr;grid-template-areas:"a b" "da db";column-gap:16px;padding-top:8px}
html[lang=en] body[data-mode=fit] .r-tg-b{margin-top:0}
html[lang=en] body[data-mode=fit] :is(.r-tg-a,.r-tg-b){font-size:21px}
html[lang=en] body[data-mode=fit] .r-tg-desc{margin-top:6px;line-height:1.3}
html[lang=en] body[data-mode=fit] .r-toggle-verdict{grid-template-columns:1fr 1fr;column-gap:16px}
html[lang=en] body[data-mode=fit][data-fit-density=compact] .kind-toggle .r-headline{font-size:26px}
html[lang=en] body[data-mode=fit][data-fit-density=compact] .r-toggle-grid{row-gap:6px}
html[lang=en] body[data-mode=fit][data-fit-density=compact] .r-tg{padding-top:6px}
html[lang=en] body[data-mode=fit][data-fit-density=compact] :is(.r-tg-a,.r-tg-b){font-size:19px}
html[lang=en] body[data-mode=fit][data-fit-density=compact] .r-tg-desc{margin-top:4px;line-height:1.2}
html[lang=en] body[data-mode=fit][data-fit-density=compact] .r-toggle-verdict{line-height:1.2;margin-top:12px}
html[lang=en] body[data-mode=fit][data-fit-density=compact] .sheet-evidence{margin-top:12px}
html[lang=en] body[data-mode=fit][data-fit-density=compact] .sheet-footer{margin-top:8px}
html[lang=en] body[data-mode=fit][data-fit-density=compact] .r-cell:has(.r-qr) .r-cell-title{font-size:18px;margin-top:0}
html[lang=en] body[data-mode=fit] .diagram-fit-node .r-dg-t{font-size:20px}
}
@media screen{
body[data-mode=fit] .r-stat{display:block}
body[data-mode=fit] .r-label{display:block}
body[data-mode=fit][data-fit-density=compact] .r-grid .r-cell{padding-top:6px;border-left:0;border-right:0;border-bottom:0}
body[data-mode=fit][data-fit-density=compact] .r-grid{row-gap:6px}
body[data-mode=fit][data-fit-density=compact] .r-ladder .r-hi{margin-left:-12px;margin-right:-12px;padding-left:12px;padding-right:12px}
body[data-mode=fit][data-fit-density=compact] .r-grid .r-cell-title{font-size:21px;line-height:1.15;margin-top:6px}
body[data-mode=fit][data-fit-density=compact] .r-grid .r-cell-text{line-height:1.3;margin-top:6px}
body[data-mode=fit][data-fit-density=compact] .r-grid .r-cell-no{font-size:16px;line-height:1.2}
/* Content captions, table headings and diagram relationships share the body floor.
   Source citations and furniture are measured separately from teaching content. */
body[data-mode=fit] :is(.r-foot-note,.r-tbl th,.r-tbl td,.r-label,.r-terminal,.r-tg-desc,.r-quote cite,.diagram-fit-node .r-dg-s,.diagram-fit-link,.diagram-fit-loop,.r-image figcaption,.r-chart-data,.r-chart-data caption,.r-bar-val){font-size:16px!important;line-height:1.3!important}
body[data-mode=fit][data-fit-density=compact] .r-stat:first-child .r-num{font-size:68px}
}
/* Citation labels remain legible when a dense fit sheet uses its allowed scale. */
body[data-mode=fit] .foot-src{font-size:16px!important;line-height:1.35!important}
@media screen{
body[data-mode=fit][data-fit-density=compact] .r-bar{padding:6px 0;gap:6px}
body[data-mode=fit][data-fit-density=compact] .r-toggle-grid{row-gap:10px}
body[data-mode=fit][data-fit-density=compact] .r-toggle-verdict{margin-top:12px}
body[data-mode=fit] .r-cell:has(.r-qr) .r-web{font-size:16px!important}
body[data-mode=fit][data-fit-density=compact] .toggle-static-labels{margin:6px 0 0;line-height:1.2}
body[data-mode=fit][data-fit-density=compact] .kind-toggle .r-headline{font-size:26px!important;line-height:1.06!important}
body[data-mode=fit][data-fit-density=compact] .r-toggle-verdict{margin-top:8px}
}
/* Static projection for CSS paged-media engines: no interactive state mutation. */
@media print{
 html[data-engine] .slide{display:block!important;padding:72px 110px 210px!important;box-sizing:border-box;break-inside:avoid}
 .sheet-body{width:1700px!important}
 .sheet-evidence{display:block!important}
 .slide .headline{font-size:104px!important;line-height:1.06!important;white-space:normal!important}
 .k-cover .headline{font-size:132px!important}.k-section .headline{font-size:160px!important}
 .sheet-evidence .foot{position:static!important;width:100%!important;max-width:100%!important;height:auto!important;align-items:baseline!important}
 .sheet-evidence .foot-note{font-size:24px!important;line-height:1.4!important;width:auto!important;flex:1;min-width:0}
 .sheet-evidence .foot-src{font-size:19px!important;line-height:1.4!important;max-width:650px!important;flex:1;white-space:normal!important}
 .sheet-evidence .foot-note,.sheet-evidence .foot-src{padding:0!important;border:0!important;background:none!important}
 .tp-base,.it-bottom{position:absolute!important;left:110px!important;right:110px!important;bottom:36px!important;margin:0!important}
 .slide:has(.theme-decoration) .sheet-footer{display:none!important}
 .sheet-body .cell,.sheet-body .step,.sheet-body .tg{min-height:0!important}
 .sheet-body .cell{padding:16px!important}
 .sheet-body .cell-title,.sheet-body .step-title{font-size:42px!important;line-height:1.15!important}
 .sheet-body .cell-text,.sheet-body .step-text{font-size:27px!important;line-height:1.4!important}
 .sheet-body .toggle{gap:0!important}.sheet-body .tg{padding:16px!important}
 .sheet-body .tg-desc{font-size:23px!important;line-height:1.4!important}
 .sheet-body .toggle-verdict{font-size:25px!important;line-height:1.4!important}
 .sheet-body .headline .sub{font-size:52px!important}
 .slide,body[data-mode=present] .slide{display:block!important;position:relative!important}
 .sheet-body{display:block!important;position:relative!important;min-height:0!important;height:auto!important}
 .sheet-evidence{position:absolute!important;left:110px!important;right:110px!important;bottom:94px!important;margin:0!important}
 .sheet-footer{position:absolute!important;left:110px!important;right:110px!important;bottom:40px!important;margin:0!important}
 .progress-ticks{gap:6px!important}
 .r-foot{display:flex!important;gap:32px!important}
 .r-kicker{line-height:1.2!important}
 .word{white-space:nowrap!important}
 .r-links .word-url{white-space:normal!important;overflow-wrap:anywhere}
 .r-headline{line-height:1.02!important}
 .r-steps,.r-grid,.r-compare,.r-stats,.r-bars,.r-tbl,.r-diagram,.r-terminal,.r-toggle{flex:none!important}
 .r-tbl th{padding:0 20px 14px 0!important}
 .r-tbl td{padding:10px 20px 10px 0!important}
 .r-ladder .r-step{padding:20px 0!important;gap:20px!important;grid-template-columns:266px 410px 1fr!important}
 .r-ladder .r-step-title{font-size:48px!important;line-height:1.08!important}
 .r-ladder .r-step-text{font-size:26px!important;line-height:1.35!important}
 .r-ladder .r-hi{padding:20px 28px!important;margin:0 -28px!important}
 .r-grid{row-gap:28px!important}
 .r-grid .r-cell-text{line-height:1.35!important}
 .r-stats{display:block!important;position:relative!important;height:390px!important;margin-top:30px!important;border:0!important}
 .r-stat{display:block!important;position:absolute!important;width:690px!important;left:1000px!important;padding:0!important;margin:0!important;border:0!important;background:transparent!important;font-size:0!important;line-height:1!important}
 .r-stat:first-child{left:0!important;bottom:0!important;width:970px!important;border:0!important}
 .r-stat:nth-child(2){top:0!important}.r-stat:nth-child(3){top:120px!important}.r-stat:nth-child(4){top:240px!important}
 .r-stat .r-num,.r-stat .r-unit{display:inline!important}.r-stat .r-label{display:block!important;margin-top:10px!important;white-space:normal!important;max-width:100%!important}
 .r-stat .r-label{font-size:26px!important;line-height:1.3!important}
 .r-stat .r-num{font-size:60px!important;line-height:1.1!important}.r-stat .r-unit{font-size:28px!important;line-height:1.1!important}.r-stat:first-child .r-num{font-size:250px!important}.r-stat:first-child .r-unit{font-size:72px!important}
 .r-dg-layer rect{fill:none!important;stroke:#111827!important;stroke-width:1.5!important}
 .r-dg-t{fill:#111827!important}.r-dg-s{fill:#485565!important}.r-dg-v{fill:#0066b3!important}
 .r-dg-arrow path{stroke:#0066b3!important;fill:none!important}.r-dg-loop path{stroke:#cbd3dd!important;fill:none!important}.r-dg-loop .r-dg-v{fill:#485565!important}
 .r-dg-layer:nth-of-type(3) rect{fill:#002e6e!important;stroke:#002e6e!important}
 .r-dg-layer:nth-of-type(3) .r-dg-t,.r-dg-layer:nth-of-type(3) .r-dg-s{fill:#fff!important}
 body[data-theme=dark] .r-dg-layer rect{stroke:#fff!important}
 body[data-theme=dark] .r-dg-t{fill:#fff!important}body[data-theme=dark] .r-dg-s{fill:#bccbdf!important}body[data-theme=dark] .r-dg-v{fill:#4d9ed1!important}
 body[data-theme=dark] .r-dg-arrow path{stroke:#4d9ed1!important}body[data-theme=dark] .r-dg-loop path{stroke:#4a6283!important}body[data-theme=dark] .r-dg-loop .r-dg-v{fill:#bccbdf!important}
 body[data-theme=dark] .r-dg-layer:nth-of-type(3) rect{fill:#002e6e!important;stroke:#4d9ed1!important}
 body[data-theme=dark] .r-dg-layer:nth-of-type(3) .r-dg-t,body[data-theme=dark] .r-dg-layer:nth-of-type(3) .r-dg-s{fill:#fff!important}
 .kind-outro .r-grid{margin-top:28px!important}.kind-outro .r-lead:last-child{margin-top:28px!important;font-size:28px!important}
 /* Paged-media flex fragmentation differs from screen layout. Keep these
    semantic groups in normal flow without dropping either comparison side. */
 .sheet-body .bars,.sheet-body .toggle{display:block!important;height:auto!important;min-height:0!important}
 .sheet-body .bar{min-height:0!important;height:auto!important;margin:0!important;padding:12px 0!important}
 .sheet-body .tg{display:block!important;height:auto!important}
 .sheet-body .tg-a,.sheet-body .tg-b{font-size:36px!important;line-height:1.2!important;margin:0 0 10px!important}
 .sheet-body .tg-desc{margin:0 0 12px!important}
 .sheet-body .toggle-verdict{margin-top:18px!important}
 .kind-outro:has(.qr) .headline{font-size:88px!important;margin:0!important}
 .kind-outro:has(.qr) .cell{display:block!important;min-height:0!important;padding:12px!important}
 .kind-outro:has(.qr) .cell-title{font-size:32px!important;line-height:1.2!important;overflow-wrap:anywhere}
 .kind-outro:has(.qr) .cell-text,.kind-outro:has(.qr) .web{font-size:24px!important;line-height:1.3!important}
 .kind-outro:has(.qr) .qr{width:130px!important;height:130px!important;margin-top:16px!important}
 .kind-outro:has(.qr) .lead{font-size:28px!important;line-height:1.4!important;margin-top:20px!important}
 html[data-deck=broadsheet] .sheet-body>*+*{margin-top:20px!important}
 html[data-deck=broadsheet] .bs-mast{display:block!important;position:relative!important;width:1700px!important;height:100px!important;margin:0 0 24px!important}
 html[data-deck=broadsheet] .bs-mast .ear{position:absolute;top:0;font-size:17px;max-width:380px}
 html[data-deck=broadsheet] .bs-mast .ear.l{left:0}html[data-deck=broadsheet] .bs-mast .ear.r{right:0}
 html[data-deck=broadsheet] .bs-mast .name{text-align:center;width:100%;font-size:34px}
 html[data-deck=broadsheet] .bs-mast .folio{display:block;width:100%;white-space:nowrap;text-align:center}
 html[data-deck=broadsheet] .bs-mast .rules{display:block;width:100%}
 html[data-deck=broadsheet] .slide .headline{font-size:88px!important}
 html[data-deck=broadsheet] .k-cover .headline{font-size:150px!important}
 html[data-deck=broadsheet] .r-stats{height:270px!important}
 html[data-deck=broadsheet] .r-stat:first-child .r-num{font-size:170px!important}
 html[data-deck=broadsheet] .r-stat:not(:first-child) .r-num{font-size:44px!important}
 html[data-deck=broadsheet] .r-stat:not(:first-child) .r-label{font-size:24px!important;line-height:1.25!important;margin-top:6px!important}
 html[data-deck=broadsheet] .r-stat:nth-child(3){top:90px!important}html[data-deck=broadsheet] .r-stat:nth-child(4){top:180px!important}
 /* Fixed paper geometry: no display:contents, viewport arithmetic or absolute
    kicker coordinates inherited from the screen's display:contents wrapper. */
 .sheet-body .kicker{position:relative!important;inset:auto!important;transform:none!important;height:auto!important;min-height:0!important;margin:0 0 24px!important;font:500 19px/1.25 var(--font-mono)!important;white-space:normal!important}
 .sheet-body>.headline{margin-top:0!important;margin-bottom:28px!important}
 .sheet-body .steps.ladder{display:block!important;max-width:100%!important;margin-top:28px!important}
 .sheet-body .steps.ladder .step{display:grid!important;grid-template-columns:160px 360px 1fr!important;gap:24px!important;padding:20px 16px!important;margin:0!important;width:100%!important;box-sizing:border-box;min-height:0!important;border-left:0!important}
 .sheet-body .steps.ladder .step>*{grid-column:auto!important;grid-row:auto!important;padding:0!important;margin:0!important;align-self:center!important;border:0!important}
 .sheet-body .steps.ladder .step-no{font:500 24px/1.3 var(--font-mono)!important}
 .sheet-body .steps.ladder .step-title{font-size:42px!important;line-height:1.2!important}
 .sheet-body .steps.ladder .step-text{font-size:27px!important;line-height:1.4!important}
 .sheet-body .steps.ladder .step::before,.sheet-body .steps.ladder .step::after{display:none!important}
 html[data-deck=control-room] .slide{padding-top:132px!important}
 html[data-deck=intertitle] .slide{padding-top:120px!important}
 html[data-deck=intertitle] .it-top{height:72px!important}
 html[data-deck=intertitle] .sheet-evidence{bottom:140px!important}
 html[data-deck=intertitle] .sheet-body .kicker{text-align:center;justify-content:center}
 html[data-deck=field-notebook] .sheet-evidence .foot{display:flex!important;gap:32px!important}
 html[data-deck=field-notebook] .sheet-evidence .foot-note::before{position:static!important;margin-right:12px!important}
 html[data-deck=field-notebook] .sheet-evidence .foot-src::before{display:none!important}
 html[data-deck=field-notebook] .fn-ear .cut{fill:var(--bg)}
 html[data-deck=field-notebook] .fn-ear .flap{fill:var(--hair)}
 html[data-deck=blueprint] .bp-tb{position:absolute!important;right:36px!important;bottom:24px!important;left:auto!important;top:auto!important;width:640px!important;max-width:640px!important;display:grid!important;grid-template-columns:1fr 1fr!important;font:500 14px/1.3 var(--font-mono)!important}
 html[data-deck=blueprint] .bp-tb .row{display:flex!important;min-width:0!important}
 html[data-deck=blueprint] .bp-tb span,html[data-deck=blueprint] .bp-tb b{display:block!important;font-size:14px!important;padding:6px!important;min-width:0!important;max-width:240px!important;white-space:nowrap;overflow:hidden}
 html[data-deck=blueprint] .bp-tb span{width:76px!important;flex:none}
 html[data-deck=blueprint] .bp-folio{position:absolute!important;left:36px!important;bottom:30px!important;font:500 16px/1.3 var(--font-mono)!important}
 html[data-deck=blueprint] .sheet-evidence{bottom:150px!important}
 html[data-deck=blueprint] .sheet-body>.lead{margin-top:24px!important}
 html[data-deck=blueprint] .sheet-body .bar{grid-template-columns:1fr 560px 84px!important;gap:22px!important}
 html[data-deck=blueprint] .sheet-body .bar-track{height:16px!important}
}
/* Achmage brand roles applied after theme CSS. Root-only !important prevents
   theme specificity/media rules from restoring CMDS's original palette.
   Descendant inverse palettes remain theme-owned (e.g. Poster section sheets).
   CMDS accent discipline: blue in light, teal in dark; neutral body copy. */
html[data-theme]{
 --brand-navy:#002E6E;--brand-blue:#0066B3;--brand-teal:#007F86;
 --brand-blue-bright:#4D9ED1;--brand-teal-bright:#00B5AD;
 --cmds-green:var(--brand-blue)!important;--cmds-green-bright:var(--brand-blue-bright)!important;--cmds-pink:var(--brand-teal-bright)!important;
 --ink:var(--fg)!important;--paper:var(--bg)!important;--muted:var(--dim)!important;
 --fg-2:var(--dim)!important;--fg-3:var(--faint)!important;
 --acc:var(--accent)!important;--em:var(--accent)!important;--on-acc:var(--accent-on)!important;
 --hairline:var(--hair)!important;--rule:var(--line)!important;--rule2:var(--hair)!important;--line2:var(--hair)!important;
 --panel:var(--surface)!important;--panel2:var(--surface-2)!important;--dkpanel:var(--surface)!important;
 --tint:var(--tint-2)!important;--tint2:var(--tint-3)!important;
 --dk-panel-bg:var(--bg)!important;--dk-panel-fg:var(--fg)!important;--dk-panel-line:var(--hair)!important;--dk-accent:var(--accent)!important;
 --ed-paper:var(--bg)!important;--ed-card:var(--surface)!important;--ed-soft:var(--surface-2)!important;
 --ed-ink:var(--fg)!important;--ed-muted:var(--dim)!important;--ed-faint:var(--faint)!important;
 --ed-line:var(--hair)!important;--ed-rule:var(--line)!important;
 --ed-acc:var(--accent)!important;--ed-acc-bg:var(--tint-2)!important;--ed-acc-line:var(--line)!important;--ed-on-acc:var(--accent-on)!important;
 --fn-desk:var(--desk)!important;--fn-paper:var(--bg)!important;--fn-strip:var(--surface-2)!important;--fn-fold:var(--hair)!important;
 --fn-ink:var(--fg)!important;--fn-dim:var(--dim)!important;--fn-faint:var(--faint)!important;
 --fn-rule:var(--line)!important;--fn-rule2:var(--hair)!important;--fn-tint:var(--tint-3)!important;
 --fn-mrule:color-mix(in srgb,var(--accent) 34%,transparent)!important;
 --bp-paper:var(--bg)!important;--bp-ink:var(--fg)!important;--bp-dim:var(--dim)!important;
 --bp-rule:var(--line)!important;--bp-rule2:var(--hair)!important;--bp-acc:var(--accent)!important;--bp-on:var(--accent-on)!important;
 --term-bg:#001332!important;--term-fg:#F4F7FC!important;--term-dim:#BDCEE3!important;--term-line:#49617F!important;
 --term-acc:var(--brand-blue-bright)!important;--term-ok:var(--brand-teal-bright)!important;
 --ed-term-bg:var(--term-bg)!important;--ed-term-fg:var(--term-fg)!important;--ed-term-ok:var(--term-ok)!important;
 --bp-term-bg:var(--term-bg)!important;--bp-term-fg:var(--term-fg)!important;--bp-term-dim:var(--term-dim)!important;--bp-term-acc:var(--term-acc)!important;
}
html[data-theme=light]{
 --bg:#FFFFFF!important;--fg:#171A20!important;--dim:#485565!important;--faint:#66758A!important;
 --surface:#F5F8FC!important;--surface-2:#E8EEF5!important;--desk:#E0E7F0!important;
 --line:#93A5BA!important;--hair:#D4DFEB!important;--bars:#E0E7F0!important;
 --accent:var(--brand-blue)!important;--accent-on:#FFFFFF!important;
 --primary:var(--brand-navy)!important;--secondary:var(--brand-blue)!important;--teal:var(--brand-teal)!important;
 --tint-1:#F4F8FC!important;--tint-2:#E8F1F8!important;--tint-3:#DCEAF5!important;
 --bp-dot:rgba(0,46,110,.08)!important;
 --fn-grid:url("https://pub-acf6ad93f2ec4a5e8fa12e94d0c9b151.r2.dev/1791893666102-5d190204-b809-4bf8-9d78-3e19a6f2cbd1.svg")!important;
}
html[data-theme=dark]{
 --cmds-green:var(--brand-blue-bright)!important;--cmds-green-bright:var(--brand-teal-bright)!important;
 --bg:#001A44!important;--fg:#F4F7FC!important;--dim:#BDCEE3!important;--faint:#99B0CE!important;
 --surface:#0B2850!important;--surface-2:#15355C!important;--desk:#001332!important;
 --line:#607A9A!important;--hair:#294769!important;--bars:#00102C!important;
 --accent:var(--brand-teal-bright)!important;--accent-on:#001A44!important;
 --primary:#F4F7FC!important;--secondary:var(--brand-blue-bright)!important;--teal:var(--brand-teal-bright)!important;
 --tint-1:#052843!important;--tint-2:#0B354D!important;--tint-3:#104556!important;
 --bp-dot:rgba(77,158,209,.13)!important;
 --fn-grid:url("https://pub-acf6ad93f2ec4a5e8fa12e94d0c9b151.r2.dev/1791893669506-34e49156-c5fb-4f41-b6ce-9e5b5b885f08.svg")!important;
}
/* The data theme's terminal is a light inset, unlike cinematic terminals. */
html[data-deck=datadriven]{--term-bg:var(--tint-2)!important;--term-fg:var(--fg)!important;--term-dim:var(--dim)!important;--term-acc:var(--accent)!important;--term-ok:var(--accent)!important}
html[data-deck=datadriven][data-theme=light]{--rule:#66758A!important}
html[data-deck=datadriven][data-theme=dark]{--rule:#99B0CE!important}
html[data-theme] .terminal{background:var(--term-bg);color:var(--term-fg)}
html[data-theme] .terminal .dim{color:var(--term-dim)}
/* Grouped progress keeps block widths proportional to their slide counts. */
.deck-block-strip{display:flex;gap:5px;align-items:center;min-width:70px;width:100%;height:8px}
.deck-block-strip .deck-block{position:relative;display:block;height:100%;min-width:0;background:var(--hair);overflow:hidden}
.deck-block-strip .deck-block b{display:block;height:100%;background:var(--accent)}
.deck-block-strip .deck-block.past b{opacity:.45}
.deck-block-strip .deck-block.cur{outline:1px solid var(--accent);outline-offset:2px}
.deck-block-strip .deck-block.qa{border-radius:8px}
.deck-block-strip .deck-block.break{border:1px solid var(--line);background:transparent;box-sizing:border-box}
.deck-block-strip .deck-block.break b{background:var(--dim)}
.k-section .deck-block-strip{--accent:var(--fg)}
.tp-base>.deck-block-strip{max-width:680px;flex:1}.tp-base{gap:40px}
.sheet-footer>.deck-block-strip{max-width:320px;flex:1;align-self:center}
html[data-viewmode=present] .dd-progress.logical{width:100%;height:6px;background:transparent}
.dd-progress.logical::after{display:none}.dd-progress.logical .deck-block-strip{height:6px}
#dk-progress{height:8px;background:transparent;overflow:visible}
#dk-progress>.deck-block-strip{height:6px}
#dk-progress .deck-block{transform:none;transition:none}
#dk-progress .deck-block b{position:static;transform:none;transform-origin:left;transition:width .18s}
@media(max-width:850px){.sheet-footer>.deck-block-strip{min-width:50px;height:4px;gap:3px}.sheet-footer .deck-block.cur{outline-offset:1px}}
/* Ink stays neutral; emphasis, quantitative anchors and progress carry CI. */
html[data-theme] .slide:not(.k-section) .num{color:var(--accent)}
html[data-theme] .slide:not(.k-section) .tp-ticks i.on{background:var(--accent)}
html[data-theme] .sheet-number{color:var(--accent)}
/* Citations stay distinguishable after visiting, including on dark slides. */
html[data-theme] .slide a,html[data-theme] .slide a:visited{color:var(--accent);text-decoration:underline;text-underline-offset:.14em}
@media print{
 .dd-progress.logical{display:block!important;width:100%;height:6px;background:transparent}
 /* These three CMDS themes deliberately use light paper for print. */
 html[data-theme]:is([data-deck=section-drawing],[data-deck=broadsheet],[data-deck=editorial-scroll]){
  --bg:#FFFFFF!important;--fg:#171A20!important;--dim:#485565!important;--faint:#66758A!important;
  --surface:#F5F8FC!important;--surface-2:#E8EEF5!important;--desk:#E0E7F0!important;
  --line:#93A5BA!important;--hair:#D4DFEB!important;--bars:#E0E7F0!important;
  --accent:var(--brand-blue)!important;--accent-on:#FFFFFF!important;
  --primary:var(--brand-navy)!important;--secondary:var(--brand-blue)!important;--teal:var(--brand-teal)!important;
  --cmds-green:var(--brand-blue)!important;
  --tint-1:#F4F8FC!important;--tint-2:#E8F1F8!important;--tint-3:#DCEAF5!important;
 }
 html[data-theme] body .r-dg-layer rect{stroke:var(--fg)!important}
 html[data-theme] body .r-dg-t{fill:var(--fg)!important}
 html[data-theme] body .r-dg-s,html[data-theme] body .r-dg-loop .r-dg-v{fill:var(--dim)!important}
 html[data-theme] body .r-dg-v{fill:var(--accent)!important}
 html[data-theme] body .r-dg-arrow path{stroke:var(--accent)!important}
 html[data-theme] body .r-dg-loop path{stroke:var(--line)!important}
 html[data-theme] body .r-dg-layer:nth-of-type(3) rect{fill:var(--brand-navy)!important;stroke:var(--accent)!important}
 html[data-theme] body .r-dg-layer:nth-of-type(3) .r-dg-t,html[data-theme] body .r-dg-layer:nth-of-type(3) .r-dg-s{fill:#FFF!important}
}
/* Raw5 material surface. Parent CMDS theme owns content hierarchy and placement. */
.raw5-material{margin:24px 0 0;min-width:0;width:100%;max-width:calc(var(--raw5-aspect)*420px);--raw5-aspect:1.78}
.raw5-canvas{position:relative;width:100%;aspect-ratio:var(--raw5-aspect);overflow:hidden;isolation:isolate}
.raw5-canvas>span{position:absolute;inset:0;display:block}
.raw5-photo{background-image:var(--raw5-source);background-size:cover;background-position:var(--raw5-x) var(--raw5-y);filter:saturate(var(--raw5-saturation)) contrast(var(--raw5-contrast)) brightness(var(--raw5-brightness)) blur(var(--raw5-blur))}
.raw5-color{background:var(--raw5-color);opacity:var(--raw5-scrim)}
.recipe-selective-accent .raw5-color{clip-path:inset(0 0 0 50%)}
.recipe-natural .raw5-color,.recipe-luma .raw5-color,.recipe-circle .raw5-color,.recipe-arch .raw5-color,.recipe-slant .raw5-color,.recipe-material-window .raw5-color{display:none}
.recipe-blend-left .raw5-canvas{mask-image:linear-gradient(to right,transparent,#000 62.5%)}
.recipe-blend-right .raw5-canvas{mask-image:linear-gradient(to left,transparent,#000 62.5%)}
.recipe-circle .raw5-canvas{border-radius:50%}
.recipe-arch .raw5-canvas{border-radius:50% 50% 0 0}
.recipe-slant .raw5-canvas{clip-path:polygon(0 0,88% 0,100% 100%,12% 100%)}
.recipe-grain .raw5-texture{background-image:radial-gradient(#001A4428 1px,transparent 1px);background-size:12px 12px}
.recipe-halftone .raw5-texture{background-image:radial-gradient(#001A4428 1px,transparent 1px);background-size:18px 18px}
.raw5-material figcaption{margin-top:10px;font-size:24px;line-height:1.4;color:var(--dim)}
.raw5-print{display:none}
html:not([data-viewmode=present]) .raw5-material figcaption{font-size:16px}
body[data-mode=fit] .raw5-material{margin-top:14px}
@media print{.raw5-canvas{display:none!important}.raw5-print{display:block;width:100%;height:auto}.raw5-material{break-inside:avoid}}

@page{size:20in 11.25in;margin:0}html[data-theme]{--brand-navy:#1658c7!important}html[data-theme]{--brand-blue:#087f83!important}html[data-theme]{--fg:#14243b!important}