@font-face{font-family:"Pretendard Variable";font-weight:400;font-display:block;src:url(/fonts/shared/fad853f7f47c6c8b103171e7193fa095708cdcd70850a71d93aa5379e8a61d63.woff2) format("woff2");}@font-face{font-family:"Pretendard Variable";font-weight:500;font-display:block;src:url(/fonts/shared/d03481330eeba0659ab5b87f25ceb504a35de377dd90a0d0aba2982eb2d05e2c.woff2) format("woff2");}@font-face{font-family:"Pretendard Variable";font-weight:600;font-display:block;src:url(/fonts/shared/c863f76a7de5c1ddc1ed8b2fa794964530774592c4f31407a84e2a2ae93f17f0.woff2) format("woff2");}@font-face{font-family:"Pretendard Variable";font-weight:700;font-display:block;src:url(/fonts/shared/4609c3356e536fafe38f4add0daeceb3d8595d3057bce13c428c33ddbd43d362.woff2) format("woff2");}@font-face{font-family:"Pretendard Variable";font-weight:800;font-display:block;src:url(/fonts/shared/dd7c1e156f508eb962acc7a33a7a1896d1e0b71e11156fad96e731689ceb6dc3.woff2) format("woff2");}@font-face{font-family:"JetBrains Mono";font-weight:400;font-display:block;src:url(/fonts/shared/a9cb1cd82332b23a47e3a1239d25d13c86d16c4220695e34b243effa999f45f2.woff2) format("woff2");}/* ═══════════════════════════════════════════════════════════════
   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); }
}/* ═══════════════════════════════════════════════════════════════════════
   DATA-DRIVEN · theme.css  (port of v3-uiux-datadriven → deck-core R1)
   모든 수치는 ui-ux-pro-max 데이터셋 행에서 왔다. 근거는 DESIGN.md §3~§4.
     골격   styles.csv / minimalism-and-swiss-style  (radius 0 · shadow none · gap 2rem · single accent)
     대활자 styles.csv / exaggerated-minimalism      (clamp(3rem,10vw,12rem) 앵커 → 1.333 하향)
     간격   design_system.py DIAL_TIERS density 1-3 "Spacious"  4/8/24/32/48/64/96
     모션   motion.csv Subtle tier  260 / 340 / 180 ms · power1.out / power1.inOut · 12px · 30ms
     규칙   ux-guidelines.csv  Contrast · Color Only · Target Size · Reduced Motion · Long Token
   고정 1920 캔버스이므로 원본의 vw/vh clamp 는 1920×1080 평가값 px 로 확정했다.
   ═══════════════════════════════════════════════════════════════════════ */

/* ─── 토큰 ─────────────────────────────────────────────────────────── */
html[data-viewmode="present"]{
  /* 간격 — DIAL_TIERS Spacious 그대로 */
  --sp-xs:4px; --sp-sm:8px; --sp-md:24px; --sp-lg:32px; --sp-xl:48px; --sp-2xl:64px; --sp-3xl:96px;
  --gap:32px;                 /* swiss / gap:2rem */
  --pad-x:112px;              /* exaggerated-minimalism / padding 8rem+ → clamp(2.5rem,6vw,8rem)@1920 = 115 → 8px 격자 정렬 112 */
  --pad-t:80px;               /* 원본 상단 max(sp-pad*.72, 58) = 83 → 80 (8px 격자) */
  --pad-b:64px;               /* 원본 하단 max(sp-pad*.62, 46) = 71 → 64 (8px 격자) */
  --radius:0px;               /* swiss / --border-radius:0px */
  --bw:1px; --bw-sem:1.5px; --bw-hot:3px; --bw-stat:2px;   /* 장식 1 · 의미 경계 1.5 · 강조 좌측 3 · 스탯 상단 2 */

  /* 타입 램프 — Perfect Fourth(1.333). 원본 clamp 의 1920×1080 평가값(120/80/52/36/28/22/16/17)은
     '읽기 거리' 앵커라 1080 캔버스의 아래 절반이 비었다(1차 스크린샷). 무대 거리용으로 같은 램프를
     정확히 한 단(×1.333) 올려 확정. 비율·단 수·역할은 원본 그대로, 앵커만 한 칸 위. */
  --t-display:160px;          /* 120 × 1.333 */
  --t-h1:107px;               /*  80 × 1.333 */
  --t-h2:69px;                /*  52 × 1.333 */
  --t-h3:48px;                /*  36 × 1.333 */
  --t-lead:37px;              /*  28 × 1.333 */
  --t-body:29px;              /*  22 × 1.333 */
  --t-caption:21px;           /*  16 × 1.333 */
  --t-mono:23px;              /*  17 × 1.333 */
  --lh-display:1.15; --lh-h1:1.2; --lh-h2:1.28; --lh-body:1.65; --lh-caption:1.5;   /* ux-guidelines Line Height 1.5–1.75 */
  --ls-display:-.035em; --ls-h1:-.025em; --ls-h2:-.02em; --ls-body:-.01em;         /* 데이터셋 -.05em 은 한글에 과함 → 완화 */
  --fw-display:800; --fw-h:700; --fw-body:400; --fw-emph:600;                        /* 900 은 한글 속공간 막힘 → 800 */
  --measure-body:62ch;        /* Line Length 65–75ch, 한글 보정 */
  --measure-head:34ch;        /* Heading Line Balance 20ch — 한글 1자≈2ch 실측 재조정 */

  /* 모션 — motion.csv Subtle */
  --dur-in:260ms; --dur-reveal:340ms; --dur-hover:180ms;
  --ease-out:cubic-bezier(.25,.46,.45,.94);   /* power1.out */
  --ease-io:cubic-bezier(.455,.03,.515,.955); /* power1.inOut */
  --reveal-y:12px; --stagger:30ms;

  /* 라이트 — 원본 "Knowledge Base/Documentation" 행의 대비 목표(본문≥13.9 · 보조≥7 · 캡션≥4.5 · 경계≥4.5)를
     CI green 색상으로 재산출. 값별 실측 대비는 DESIGN.md §4 */
  --bg:#F6F8F7; --surface:#FFFFFF; --surface-2:#E7ECEB;
  --fg:#111827; --fg-2:#485565; --fg-3:#66758A;
  --hairline:#DEE5E3; --rule:#66758A;
  --acc:var(--cmds-green); --on-acc:#FFFFFF;
  --tint-1:#F6F8F7; --tint-2:#ECF0EF; --tint-3:#E3E9E7;   /* green @4/8/12% on #FFFFFF */
  --term-bg:var(--tint-2);
  /* 코어 변수 동기 */
  --muted:var(--fg-2); --line:var(--hairline); --accent:var(--acc); --accent-on:var(--on-acc);
  /* 코어 패널 재스킨 — 같은 UI 시스템의 툴바처럼 */
  --dk-panel-bg:var(--surface); --dk-panel-fg:var(--fg-2); --dk-panel-line:var(--hairline);
  --dk-panel-h:44px; --dk-notes-w:440px; --dk-font:var(--font-mono); --dk-accent:var(--acc);
}
html[data-viewmode="present"][data-theme="dark"]{
  /* 다크 — 원본 "Developer Tool / IDE" 행의 대비 목표(본문≥17 · 보조≥12 · 캡션≥6.9 · 경계≥3.75)를 CI 색상으로 재산출 */
  --bg:#0E1512; --surface:#111827; --surface-2:#001A44;
  --fg:#F3F5F3; --fg-2:#CBD3DD; --fg-3:#99B0CE;
  --hairline:#15355C; --rule:#66758A;
  --acc:var(--cmds-pink); --on-acc:#1B1B1B;
  --tint-1:#1B1C1B; --tint-2:#242020; --tint-3:#001A44;   /* pink @6/10/16% on bg */
  --term-bg:var(--tint-1);
  --muted:var(--fg-2); --line:var(--hairline); --accent:var(--acc); --accent-on:var(--on-acc);
  --dk-panel-bg:var(--surface); --dk-panel-fg:var(--fg-2); --dk-panel-line:var(--hairline); --dk-accent:var(--acc);
}
@media (prefers-color-scheme:dark){
  html[data-viewmode="present"]:not([data-theme="light"]){
    --bg:#0E1512; --surface:#111827; --surface-2:#001A44;
    --fg:#F3F5F3; --fg-2:#CBD3DD; --fg-3:#99B0CE;
    --hairline:#15355C; --rule:#66758A;
    --acc:var(--cmds-pink); --on-acc:#1B1B1B;
    --tint-1:#1B1C1B; --tint-2:#242020; --tint-3:#001A44;
    --term-bg:var(--tint-1);
    --muted:var(--fg-2); --line:var(--hairline); --accent:var(--acc); --accent-on:var(--on-acc);
    --dk-panel-bg:var(--surface); --dk-panel-fg:var(--fg-2); --dk-panel-line:var(--hairline); --dk-accent:var(--acc);
  }
}

/* ─── 기반 ─────────────────────────────────────────────────────────── */
html[data-viewmode="present"] body{ font-size:var(--t-body); line-height:var(--lh-body); letter-spacing:var(--ls-body); font-feature-settings:"kern","liga","calt","tnum"; }
html[data-viewmode="present"] ::selection{ background:var(--tint-3); }
html[data-viewmode="present"] :focus-visible{ outline:2px solid var(--acc); outline-offset:3px; }   /* Focus States [High] */
html[data-viewmode="present"] .dk-btn{ border-radius:var(--radius); }
html[data-viewmode="present"] .dk-btn:hover{ color:var(--acc); border-color:var(--acc); }

/* ─── 슬라이드 프레임 ──────────────────────────────────────────────── */
html[data-viewmode="present"] .slide{
  padding:var(--pad-t) var(--pad-x) var(--pad-b);
  gap:0; position:relative;
  background:var(--bg); color:var(--fg);
}
html[data-viewmode="present"].js .slide[data-active]{ animation:dd-in var(--dur-in) var(--ease-io) both; }
@keyframes dd-in{ from{ opacity:0; transform:translate3d(0,var(--reveal-y),0); } to{ opacity:1; transform:none; } }
html[data-viewmode="present"][data-aspect="16x10"] .slide{ --pad-t:96px; --pad-b:80px; }
/* dense 티어 — DIAL_TIERS density 4-7 "Standard": md 24→16, lg 32→24, xl 48→32. 정보 4층 이상인 장(9그리드·표·바·타임라인·사다리·터미널) */
html[data-viewmode="present"] .k-grid:not(.kind-grid),html[data-viewmode="present"] .k-table,html[data-viewmode="present"] .k-bars,html[data-viewmode="present"] .k-timeline,html[data-viewmode="present"] .k-ladder,html[data-viewmode="present"] .k-terminal,html[data-viewmode="present"] .k-toggle,html[data-viewmode="present"] .k-cards{ --sp-md:16px; --sp-lg:24px; --sp-xl:32px; --gap:24px; }     /* 1200 세로: 한 단(16px) 위 티어로 */
@media (prefers-reduced-motion:reduce){ html[data-viewmode="present"].js .slide[data-active]{ animation:none; } }

/* 순차 공개 — Scroll Reveal Subtle 340ms / power1.out / 12px */
html[data-viewmode="present"].js [data-step]{ opacity:0; transform:translate3d(0,var(--reveal-y),0); transition:opacity var(--dur-reveal) var(--ease-out), transform var(--dur-reveal) var(--ease-out); }
html[data-viewmode="present"].js [data-step].in{ opacity:1; transform:none; }
html[data-viewmode="present"].js svg [data-step]{ transform:none; }
/* 슬라이드 진입 시 함께 뜨는 묶음 — Stagger List 30ms (스텝 없는 그리드·스탯·테이블 행) */
html[data-viewmode="present"].js .slide[data-active] .grid > .cell:not([data-step]),html[data-viewmode="present"].js .slide[data-active] .stat,html[data-viewmode="present"].js .slide[data-active] .tbl tbody tr,html[data-viewmode="present"].js .slide[data-active] .compare .col{ animation:dd-stg var(--dur-reveal) var(--ease-out) both; }
@keyframes dd-stg{ from{ opacity:0; transform:translate3d(0,var(--reveal-y),0); } to{ opacity:1; transform:none; } }
html[data-viewmode="present"] .grid > :nth-child(2),html[data-viewmode="present"] .stats > :nth-child(2),html[data-viewmode="present"] .compare > :nth-child(2),html[data-viewmode="present"] .tbl tbody tr:nth-child(2){ animation-delay:calc(var(--stagger)*1); }
html[data-viewmode="present"] .grid > :nth-child(3),html[data-viewmode="present"] .stats > :nth-child(3),html[data-viewmode="present"] .tbl tbody tr:nth-child(3){ animation-delay:calc(var(--stagger)*2); }
html[data-viewmode="present"] .grid > :nth-child(4),html[data-viewmode="present"] .stats > :nth-child(4),html[data-viewmode="present"] .tbl tbody tr:nth-child(4){ animation-delay:calc(var(--stagger)*3); }
html[data-viewmode="present"] .grid > :nth-child(5),html[data-viewmode="present"] .tbl tbody tr:nth-child(5){ animation-delay:calc(var(--stagger)*4); }
html[data-viewmode="present"] .grid > :nth-child(6),html[data-viewmode="present"] .tbl tbody tr:nth-child(6){ animation-delay:calc(var(--stagger)*5); }
html[data-viewmode="present"] .grid > :nth-child(7),html[data-viewmode="present"] .tbl tbody tr:nth-child(7){ animation-delay:calc(var(--stagger)*6); }
html[data-viewmode="present"] .grid > :nth-child(8){ animation-delay:calc(var(--stagger)*7); }
html[data-viewmode="present"] .grid > :nth-child(9){ animation-delay:calc(var(--stagger)*8); }
@media (prefers-reduced-motion:reduce){ html[data-viewmode="present"].js .slide[data-active] :is(.cell,.stat,.tbl tbody tr,.compare .col){ animation:none; } }

/* ─── 타입 ─────────────────────────────────────────────────────────── */
html[data-viewmode="present"] .kicker{   /* 원본 .eyebrow — 액센트 모노 라벨, 흐름 안 */
  font:600 var(--t-caption)/1 var(--font-mono); letter-spacing:.14em; color:var(--acc);
  margin:0 0 var(--sp-md); text-transform:uppercase; align-self:flex-start;   /* 우상단 dd-kicker 와 bbox 분리 */
}
html[data-viewmode="present"] :is(.slide,.sheet-body,.sheet-evidence) > .kicker{ margin-top:auto; }   /* 원본 .inner{margin:auto} — 콘텐츠 블록을 세로 중앙에 (foot 의 margin-top:auto 와 반씩 나눔) */
html[data-viewmode="present"] .headline{
  font-family:var(--font-display); font-size:var(--t-h2); font-weight:var(--fw-h);
  line-height:var(--lh-h2); letter-spacing:var(--ls-h2); margin:0;
  max-inline-size:var(--measure-head); text-wrap:balance; word-break:keep-all; overflow-wrap:break-word;
}
html[data-viewmode="present"] .headline em{ font-style:normal; color:var(--acc); font-weight:var(--fw-h); }
html[data-viewmode="present"] .headline .sub{ display:block; font-size:var(--t-h3); font-weight:var(--fw-emph); color:var(--fg-2); letter-spacing:var(--ls-body); line-height:1.3; margin-top:var(--sp-sm); }
html[data-viewmode="present"] .lead{
  font-size:var(--t-lead); color:var(--fg-2); line-height:1.62; margin:var(--sp-lg) 0 0;
  inline-size:min(100%,var(--measure-body)); max-width:none;
}
html[data-viewmode="present"] .lead b,html[data-viewmode="present"] .lead strong{ color:var(--fg); font-weight:var(--fw-emph); }
html[data-viewmode="present"] .foot{   /* 원본 .note — 캡션 크기, 헤어라인 상단 괘선, 세로 여분 흡수 */
  margin-top:auto; padding-top:var(--sp-md); border-top:var(--bw) solid var(--hairline);
  display:flex; justify-content:space-between; align-items:baseline; gap:var(--sp-xl);
  font-size:var(--t-caption); line-height:var(--lh-caption); color:var(--fg-3);
}
html[data-viewmode="present"] .foot-note{ inline-size:min(100%,var(--measure-body)); min-inline-size:0; }
html[data-viewmode="present"] .foot-src{ font:500 var(--t-caption)/var(--lh-caption) var(--font-mono); letter-spacing:.04em; white-space:nowrap; color:var(--fg-3); }
html[data-viewmode="present"] .headline + .lead{ margin-top:var(--sp-lg); }
html[data-viewmode="present"] .headline + .grid,html[data-viewmode="present"] .headline + .steps,html[data-viewmode="present"] .headline + .stats,html[data-viewmode="present"] .headline + .tbl,html[data-viewmode="present"] .headline + .compare,html[data-viewmode="present"] .headline + .terminal,html[data-viewmode="present"] .headline + .timeline,html[data-viewmode="present"] .headline + .bars,html[data-viewmode="present"] .headline + .toggle,html[data-viewmode="present"] .headline + .diagram,html[data-viewmode="present"] .headline + .body-list,html[data-viewmode="present"] .lead + .body-list{ margin-top:var(--sp-xl); }
html[data-viewmode="present"] .grid + .lead,html[data-viewmode="present"] .stats + .lead,html[data-viewmode="present"] .bars + .lead,html[data-viewmode="present"] .diagram + .lead,html[data-viewmode="present"] .quote + .lead{ margin-top:var(--sp-lg); }
html[data-viewmode="present"] .grid,html[data-viewmode="present"] .steps,html[data-viewmode="present"] .stats,html[data-viewmode="present"] .tbl,html[data-viewmode="present"] .compare,html[data-viewmode="present"] .terminal,html[data-viewmode="present"] .timeline,html[data-viewmode="present"] .bars,html[data-viewmode="present"] .toggle,html[data-viewmode="present"] .diagram,html[data-viewmode="present"] .body-list{ margin-bottom:var(--sp-lg); }

/* ─── k-cover · k-section · k-statement ───────────────────────────── */
html[data-viewmode="present"] .k-cover .headline{ font-size:var(--t-display); font-weight:var(--fw-display); line-height:var(--lh-display); letter-spacing:var(--ls-display); margin-top:var(--sp-xl); }
html[data-viewmode="present"] .k-cover .kicker{ color:var(--fg-3); }
html[data-viewmode="present"] .k-cover .lead{ margin-top:var(--sp-xl); font-size:var(--t-h3); line-height:1.4; }
html[data-viewmode="present"] .k-cover .foot,html[data-viewmode="present"] .k-outro .foot{ font-family:var(--font-mono); letter-spacing:.06em; }
html[data-viewmode="present"] .k-section{ justify-content:flex-start; }
html[data-viewmode="present"] .k-section .headline{ font-size:var(--t-display); font-weight:var(--fw-display); line-height:var(--lh-display); letter-spacing:var(--ls-display); margin-top:var(--sp-xl); }
html[data-viewmode="present"] .k-section .headline .sub{ font-size:var(--t-h2); font-weight:var(--fw-emph); margin-top:var(--sp-md); }
html[data-viewmode="present"] .k-section .lead{ margin-top:var(--sp-2xl); font:500 var(--t-lead)/1.5 var(--font-mono); letter-spacing:.04em; color:var(--fg-3); }
html[data-viewmode="present"] .k-section::after{ content:""; display:block; margin-top:auto; }   /* foot 이 없는 장의 하단 스페이서 (세로 중앙 정렬용) */
html[data-viewmode="present"] .k-section .lead::before{   /* 섹션 표지의 2px 액센트 괘선 — stat 상단 괘선과 같은 굵기 체계 */
  content:""; display:block; height:var(--bw-stat); background:var(--acc); width:var(--sp-3xl); margin-bottom:var(--sp-lg);
}
html[data-viewmode="present"] .k-statement .headline{ font-size:var(--t-h1); font-weight:var(--fw-display); line-height:var(--lh-h1); letter-spacing:var(--ls-h1); max-inline-size:none; }
html[data-viewmode="present"] .body-list{ margin:var(--sp-xl) 0 0; padding:0; list-style:none; display:grid; gap:var(--sp-sm); inline-size:min(100%,1200px); }
html[data-viewmode="present"] .body-list li{ display:grid; grid-template-columns:1fr; padding:var(--sp-md); background:var(--surface); border:var(--bw) solid var(--hairline); border-left:var(--bw-hot) solid var(--hairline); font-size:var(--t-body); line-height:1.55; color:var(--fg-2); }
html[data-viewmode="present"] .body-list li b{ color:var(--fg); font-weight:var(--fw-h); font-family:var(--font-mono); font-size:var(--t-mono); letter-spacing:.06em; margin-right:var(--sp-sm); }
html[data-viewmode="present"] .body-list li:last-child{ background:var(--tint-2); border-left-color:var(--acc); color:var(--fg); }
html[data-viewmode="present"] .body-list li:last-child b{ color:var(--acc); }

/* ─── 패널 컴포넌트 (.cell / .step / .stat / .tg 공통 표면) ─────────── */
html[data-viewmode="present"] .grid{ display:grid; gap:var(--gap); }
html[data-viewmode="present"] .cols-3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
html[data-viewmode="present"] .cols-4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
html[data-viewmode="present"] .cell{
  background:var(--surface); border:var(--bw) solid var(--hairline); border-radius:var(--radius);
  padding:var(--sp-md); min-inline-size:0; display:flex; flex-direction:column; gap:var(--sp-sm);
  transition:border-color var(--dur-hover) var(--ease-out);
}
html[data-viewmode="present"] .cell-no{ font:600 var(--t-mono)/1 var(--font-mono); letter-spacing:.09em; color:var(--fg-3); }
html[data-viewmode="present"] .cell-title{ font:var(--fw-h) var(--t-h3)/1.3 var(--font-display); letter-spacing:var(--ls-body); color:var(--fg); }
html[data-viewmode="present"] .cell-text{ font-size:var(--t-body); line-height:1.55; color:var(--fg-2); }
html[data-viewmode="present"] .grid.nine .cell{ gap:var(--sp-xs); padding:var(--sp-md); }
html[data-viewmode="present"] .grid.nine .cell-title{ font-size:var(--t-h3); }
html[data-viewmode="present"] .grid.nine .cell-text{ font-size:var(--t-body); }
html[data-viewmode="present"] .grid.constellation .cell-title{ font-family:var(--font-mono); font-size:40px; letter-spacing:-.01em; }   /* handle = 코드 식별자 */
html[data-viewmode="present"] .grid.cards .cell{ padding:var(--sp-lg); gap:var(--sp-md); }
html[data-viewmode="present"] .grid.cards .cell-no{ color:var(--acc); }
html[data-viewmode="present"] .grid.links .cell-title{ font-family:var(--font-mono); font-size:34px; overflow-wrap:anywhere; color:var(--acc); text-decoration:underline; text-underline-offset:6px; text-decoration-thickness:1.5px; }
html[data-viewmode="present"] .grid.links .cell-no{ color:var(--fg-3); }

/* steps — 원본 .loop(4열) / .ladder(세로) */
html[data-viewmode="present"] .steps{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--sp-md); position:relative; }
html[data-viewmode="present"] .step{
  background:var(--surface); border:var(--bw) solid var(--hairline); border-left:var(--bw-hot) solid var(--hairline);
  padding:var(--sp-md); min-inline-size:0; display:grid; gap:var(--sp-sm); align-content:start; position:relative;
}
html[data-viewmode="present"] .steps:not(.ladder) .step::after{ content:"→"; position:absolute; right:calc(var(--sp-md) * -.72); top:50%; transform:translateY(-50%); color:var(--rule); font-size:var(--t-lead); line-height:1; }
html[data-viewmode="present"] .steps:not(.ladder) .step:last-child::after{ content:"⟲"; right:auto; left:50%; top:auto; bottom:calc(var(--sp-md) * -1.1); transform:translateX(-50%); }
html[data-viewmode="present"] .step-no{ font:600 var(--t-mono)/1 var(--font-mono); letter-spacing:.08em; color:var(--fg-3); }
html[data-viewmode="present"] .step-title{ font:var(--fw-h) var(--t-h3)/1.3 var(--font-display); color:var(--fg); }
html[data-viewmode="present"] .step-text{ font-size:var(--t-body); line-height:1.5; color:var(--fg-2); }
html[data-viewmode="present"] .step.hi{ background:var(--tint-2); border-left-color:var(--acc); }
html[data-viewmode="present"] .step.hi .step-no,html[data-viewmode="present"] .step.hi .step-title{ color:var(--acc); }
html[data-viewmode="present"] .step.hi .step-text{ color:var(--fg); }
html[data-viewmode="present"] .steps.ladder{ grid-template-columns:1fr; gap:var(--sp-sm); }
html[data-viewmode="present"] .steps.ladder .step{ grid-template-columns:140px 380px 1fr; align-items:baseline; gap:var(--sp-md); padding:var(--sp-md) var(--sp-lg); }
html[data-viewmode="present"] .steps.ladder .step-title{ font-size:var(--t-h3); }
html[data-viewmode="present"] .steps.ladder .step-no{ font-size:var(--t-lead); }

/* ─── k-stats (07) — 대시보드 순간 ───────────────────────────────── */
html[data-viewmode="present"] .stats{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--gap); }
html[data-viewmode="present"] .stat{ border-top:var(--bw-stat) solid var(--acc); padding-top:var(--sp-md); min-inline-size:0; display:grid; grid-template-columns:auto 1fr; grid-template-areas:"num unit" "label label"; align-items:baseline; column-gap:var(--sp-xs); }
html[data-viewmode="present"] .stat .num{
  grid-area:num; font-family:var(--font-display); font-size:var(--t-h1); font-weight:var(--fw-display);
  line-height:1; letter-spacing:-.035em; color:var(--acc); font-variant-numeric:tabular-nums;
}
html[data-viewmode="present"] .stat .unit{ grid-area:unit; font:var(--fw-h) var(--t-h3)/1 var(--font-display); color:var(--acc); align-self:baseline; }
html[data-viewmode="present"] .stat .label{ grid-area:label; display:block; font-size:var(--t-body); color:var(--fg-2); margin-top:var(--sp-sm); line-height:1.5; }

/* ─── k-table (08 · 16) ───────────────────────────────────────────── */
html[data-viewmode="present"] .tbl{ border-collapse:collapse; width:100%; font-size:var(--t-body); line-height:1.45; border-top:var(--bw) solid var(--hairline); }
html[data-viewmode="present"] .tbl th,html[data-viewmode="present"] .tbl td{ text-align:left; padding:12px var(--sp-md); border-bottom:var(--bw) solid var(--hairline); vertical-align:top; min-inline-size:0; }
html[data-viewmode="present"] .tbl th{ font:600 var(--t-mono)/1.4 var(--font-mono); letter-spacing:.08em; color:var(--fg-3); text-transform:uppercase; background:var(--surface); border-bottom-color:var(--rule); }
html[data-viewmode="present"] .tbl td{ color:var(--fg-2); }
html[data-viewmode="present"] .tbl td:first-child{ color:var(--fg); font-weight:var(--fw-emph); }
html[data-viewmode="present"] .tbl th.hi{ color:var(--acc); background:var(--tint-2); }
html[data-viewmode="present"] .tbl td.hi{ background:var(--tint-2); color:var(--fg); font-weight:var(--fw-emph); border-left:var(--bw-hot) solid var(--acc); }
html[data-viewmode="present"] .tbl th.hi{ border-left:var(--bw-hot) solid var(--acc); }
html[data-viewmode="present"] .tbl.compare-tbl td{ font-variant-numeric:tabular-nums; }

/* ─── k-quote (10) ────────────────────────────────────────────────── */
html[data-viewmode="present"] .quote{ margin:var(--sp-xl) 0 0; padding:var(--sp-md) 0 var(--sp-md) var(--sp-lg); border-left:var(--bw-hot) solid var(--acc); }
html[data-viewmode="present"] .quote p{ font-family:var(--font-display); font-size:var(--t-h1); font-weight:var(--fw-display); line-height:var(--lh-h1); letter-spacing:var(--ls-h1); margin:0 0 var(--sp-md); color:var(--fg); }
html[data-viewmode="present"] .quote cite{ font:600 var(--t-mono)/1.4 var(--font-mono); letter-spacing:.06em; color:var(--fg-3); font-style:normal; }

/* ─── k-diagram (11) — 도판을 surface 패널에 담는다 (원본 figure.fig) ─ */
html[data-viewmode="present"] .diagram{ width:100%; max-height:520px; display:block; background:var(--surface); border:var(--bw) solid var(--hairline); padding:var(--sp-md); box-sizing:border-box; }
html[data-viewmode="present"] .diagram rect{ fill:var(--surface-2); stroke:var(--rule); stroke-width:1.4; }
html[data-viewmode="present"] .dg-layer:nth-of-type(2) rect{ fill:var(--tint-2); stroke:var(--acc); stroke-width:1.6; }
html[data-viewmode="present"] .dg-t{ font:700 34px var(--font-display); fill:var(--fg); }
html[data-viewmode="present"] .dg-s{ font:400 15px var(--font-sans); fill:var(--fg-2); }
html[data-viewmode="present"] .dg-v{ font:600 15px var(--font-mono); fill:var(--acc); letter-spacing:.04em; }
html[data-viewmode="present"] .dg-arrow path{ stroke:var(--acc); stroke-width:2; fill:none; stroke-linecap:round; }
html[data-viewmode="present"] .dg-loop path{ stroke:var(--rule); stroke-width:1.4; fill:none; stroke-dasharray:6 6; }
html[data-viewmode="present"] .dg-loop .dg-v{ fill:var(--fg-2); }

/* ─── k-compare (12) ──────────────────────────────────────────────── */
html[data-viewmode="present"] .compare{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--gap); }
html[data-viewmode="present"] .compare .col{ background:var(--surface); border:var(--bw) solid var(--hairline); border-left:var(--bw-hot) solid var(--hairline); padding:var(--sp-lg); min-inline-size:0; }
html[data-viewmode="present"] .compare h3{ font:var(--fw-h) var(--t-h3)/1.3 var(--font-display); margin:0 0 var(--sp-md); padding-bottom:var(--sp-md); border-bottom:var(--bw) solid var(--hairline); color:var(--fg-2); }
html[data-viewmode="present"] .compare ul{ margin:0; padding:0; list-style:none; display:grid; gap:var(--sp-sm); }
html[data-viewmode="present"] .compare li{ font-size:var(--t-lead); line-height:1.5; color:var(--fg-2); padding-left:var(--sp-md); position:relative; }
html[data-viewmode="present"] .compare li::before{ content:""; position:absolute; left:0; top:.72em; width:8px; height:8px; background:var(--rule); }
html[data-viewmode="present"] .compare .b{ background:var(--tint-2); border-left-color:var(--acc); }
html[data-viewmode="present"] .compare .b h3{ color:var(--acc); }
html[data-viewmode="present"] .compare .b li{ color:var(--fg); }
html[data-viewmode="present"] .compare .b li::before{ background:var(--acc); }

/* ─── k-terminal (13) ─────────────────────────────────────────────── */
html[data-viewmode="present"] .terminal{
  margin:var(--sp-xl) 0 0; padding:var(--sp-md); background:var(--term-bg); color:var(--fg);
  border:var(--bw) solid var(--rule); border-radius:var(--radius);
  font:400 var(--t-mono)/1.75 var(--font-mono); white-space:pre; overflow:hidden;
}
html[data-viewmode="present"] .terminal code{ font:inherit; }   /* UA code{font-family:monospace} 가 SF Mono 스택을 덮는 것 방지 */
html[data-viewmode="present"] .terminal .prompt{ color:var(--acc); font-weight:600; }
html[data-viewmode="present"] .terminal .dim{ color:var(--fg-3); }
html[data-viewmode="present"] .terminal .ok{ color:var(--acc); font-weight:600; }

/* ─── k-timeline (18) ─────────────────────────────────────────────── */
html[data-viewmode="present"] .timeline{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:var(--sp-md); }
html[data-viewmode="present"] .tick{ background:var(--surface); border:var(--bw) solid var(--hairline); border-top:var(--bw-stat) solid var(--hairline); padding:var(--sp-md); display:grid; gap:var(--sp-sm); align-content:start; min-inline-size:0; }
html[data-viewmode="present"] .tick-when{ font:700 var(--t-h3)/1 var(--font-display); color:var(--fg); font-variant-numeric:tabular-nums; letter-spacing:-.02em; }
html[data-viewmode="present"] .tick-lv{ font:600 var(--t-mono)/1 var(--font-mono); letter-spacing:.08em; color:var(--fg-3); }
html[data-viewmode="present"] .tick-what{ font-size:var(--t-body); line-height:1.5; color:var(--fg-2); margin-top:var(--sp-xs); }
html[data-viewmode="present"] .tick:nth-child(2),html[data-viewmode="present"] .tick:nth-child(3),html[data-viewmode="present"] .tick:nth-child(4){ border-top-color:var(--acc); }   /* 30·60·90 = 본체 (발표자 노트) */
html[data-viewmode="present"] .tick:nth-child(4){ background:var(--tint-2); }
html[data-viewmode="present"] .tick:nth-child(4) .tick-when,html[data-viewmode="present"] .tick:nth-child(4) .tick-lv{ color:var(--acc); }

/* ─── k-bars (19) — 대시보드 순간 ───────────────────────────────── */
html[data-viewmode="present"] .bars{ display:grid; gap:var(--sp-sm); border-top:var(--bw) solid var(--hairline); }
html[data-viewmode="present"] .bar{
  display:grid; grid-template-columns:minmax(0,1fr) 640px 96px; align-items:center; gap:var(--sp-md);
  padding:14px var(--sp-md); background:var(--surface); border-bottom:var(--bw) solid var(--hairline); border-left:var(--bw-hot) solid transparent;
  font-size:var(--t-body); color:var(--fg-2); min-inline-size:0;
}
html[data-viewmode="present"] .bar-label b{ font:600 var(--t-mono)/1 var(--font-mono); color:var(--fg-3); letter-spacing:.08em; margin-right:var(--sp-sm); }
html[data-viewmode="present"] .bar-track{ display:block; height:12px; background:var(--surface-2); position:relative; overflow:hidden; }
html[data-viewmode="present"] .bar-track i{ display:block; height:100%; width:var(--w,0%); background:var(--rule); transition:width var(--dur-reveal) var(--ease-out); }
html[data-viewmode="present"].js .bar[data-step]:not(.in) .bar-track i{ width:0; }
html[data-viewmode="present"] .bar-val{ font:600 var(--t-lead)/1 var(--font-mono); text-align:right; color:var(--fg); font-variant-numeric:tabular-nums; }
html[data-viewmode="present"] .bar.hi{ background:var(--tint-2); border-left-color:var(--acc); color:var(--fg); }
html[data-viewmode="present"] .bar.hi .bar-label b,html[data-viewmode="present"] .bar.hi .bar-val{ color:var(--acc); }
html[data-viewmode="present"] .bar.hi .bar-track i{ background:var(--acc); }

/* ─── k-toggle (23) — 세그먼트 컨트롤 ───────────────────────────── */
html[data-viewmode="present"] .toggle-ctl{ display:inline-flex; margin:0 0 var(--sp-md); border:var(--bw-sem) solid var(--rule); border-radius:var(--radius); background:var(--surface); }
html[data-viewmode="present"] .toggle-ctl button{
  font:var(--fw-emph) var(--t-body)/1 var(--font-sans); min-height:44px; min-width:44px; padding:0 var(--sp-md);   /* Target Size [High] */
  border:0; background:transparent; color:var(--fg); cursor:pointer; border-radius:var(--radius);
  transition:background var(--dur-hover) var(--ease-out), color var(--dur-hover) var(--ease-out);
}
html[data-viewmode="present"] .toggle-ctl button + button{ border-left:var(--bw-sem) solid var(--rule); }
html[data-viewmode="present"] .toggle-ctl button:hover{ color:var(--acc); }
html[data-viewmode="present"] .toggle-ctl button[aria-pressed="true"]{ background:var(--acc); color:var(--on-acc); }
html[data-viewmode="present"] .toggle-ctl button[aria-pressed="true"]::before{ content:"✓ "; font-weight:700; }   /* Color Only [High] */
html[data-viewmode="present"] .toggle-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--sp-md); }
html[data-viewmode="present"] .tg{ background:var(--surface); border:var(--bw) solid var(--hairline); border-top:var(--bw-stat) solid var(--hairline); padding:var(--sp-md); display:grid; gap:var(--sp-sm); align-content:start; min-inline-size:0; }
html[data-viewmode="present"] .tg-a,html[data-viewmode="present"] .tg-b{ font:var(--fw-display) var(--t-h2)/1.15 var(--font-display); letter-spacing:var(--ls-h2); color:var(--fg); }
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"] .toggle[data-view="harness"] .tg{ border-top-color:var(--acc); background:var(--tint-1); }
html[data-viewmode="present"] .toggle[data-view="harness"] .tg-b{ color:var(--acc); }
html[data-viewmode="present"] .tg-desc{ font-size:var(--t-body); line-height:1.5; color:var(--fg-2); }
html[data-viewmode="present"] .toggle-verdict{ margin:var(--sp-md) 0 0; padding:var(--sp-md); background:var(--tint-2); border-left:var(--bw-hot) solid var(--acc); font-size:var(--t-lead); line-height:1.5; color:var(--fg); inline-size:min(100%,var(--measure-body)); }
html[data-viewmode="present"] .toggle-verdict:empty{ display:none; }

/* ─── k-outro ─────────────────────────────────────────────────────── */
html[data-viewmode="present"] .k-outro .headline{ font-size:var(--t-h1); font-weight:var(--fw-display); line-height:var(--lh-h1); letter-spacing:var(--ls-h1); }
html[data-viewmode="present"] .k-outro .lead{ font-weight:var(--fw-emph); color:var(--fg); }

/* ─── 슬라이드 내부 크롬 (theme.js 주입) — 원본 .kicker / .status / .rail / .progress ─ */
html[data-viewmode="present"] .dd-kicker{ position:absolute; top:var(--pad-t); right:var(--pad-x); margin:0; font:600 var(--t-caption)/1 var(--font-mono); letter-spacing:.1em; color:var(--fg-3); text-transform:uppercase; }
html[data-viewmode="present"] .dd-status{ position:absolute; left:var(--pad-x); bottom:calc(var(--pad-b) / 2 - 8px); font:600 var(--t-caption)/1 var(--font-mono); letter-spacing:.1em; color:var(--fg-2); font-variant-numeric:tabular-nums; }
html[data-viewmode="present"] .dd-status span{ color:var(--fg-3); margin-left:var(--sp-md); letter-spacing:.06em; }
html[data-viewmode="present"] .dd-rail{ position:absolute; right:var(--sp-lg); top:50%; transform:translateY(-50%); display:flex; flex-direction:column; gap:6px; margin:0; padding:0; list-style:none; }
html[data-viewmode="present"] .dd-rail li{ width:24px; height:24px; display:flex; align-items:center; justify-content:center; }   /* Target Size 24×24 */
html[data-viewmode="present"] .dd-rail li i{ display:block; width:8px; height:8px; background:var(--hairline); transition:background var(--dur-hover) var(--ease-out), height var(--dur-hover) var(--ease-out); }
html[data-viewmode="present"] .dd-rail li[data-section-start] i{ background:var(--rule); }
html[data-viewmode="present"] .dd-rail li[aria-current="true"] i{ background:var(--acc); height:18px; }   /* Color Only: 색 + 모양 */
html[data-viewmode="present"] .dd-progress{ position:absolute; left:0; bottom:0; height:2px; width:var(--dd-p,0%); background:var(--acc); transition:width var(--dur-in) var(--ease-io); }
html[data-viewmode="present"][data-aspect="16x10"] .dd-rail{ gap:8px; }

/* ─── 인쇄 — 슬라이드 내부 크롬은 그대로, 모션만 제거 ─────────────── */


@media print{/* ═══════════════════════════════════════════════════════════════════════
   DATA-DRIVEN · theme.css  (port of v3-uiux-datadriven → deck-core R1)
   모든 수치는 ui-ux-pro-max 데이터셋 행에서 왔다. 근거는 DESIGN.md §3~§4.
     골격   styles.csv / minimalism-and-swiss-style  (radius 0 · shadow none · gap 2rem · single accent)
     대활자 styles.csv / exaggerated-minimalism      (clamp(3rem,10vw,12rem) 앵커 → 1.333 하향)
     간격   design_system.py DIAL_TIERS density 1-3 "Spacious"  4/8/24/32/48/64/96
     모션   motion.csv Subtle tier  260 / 340 / 180 ms · power1.out / power1.inOut · 12px · 30ms
     규칙   ux-guidelines.csv  Contrast · Color Only · Target Size · Reduced Motion · Long Token
   고정 1920 캔버스이므로 원본의 vw/vh clamp 는 1920×1080 평가값 px 로 확정했다.
   ═══════════════════════════════════════════════════════════════════════ */

/* ─── 토큰 ─────────────────────────────────────────────────────────── */
:root{
  /* 간격 — DIAL_TIERS Spacious 그대로 */
  --sp-xs:4px; --sp-sm:8px; --sp-md:24px; --sp-lg:32px; --sp-xl:48px; --sp-2xl:64px; --sp-3xl:96px;
  --gap:32px;                 /* swiss / gap:2rem */
  --pad-x:112px;              /* exaggerated-minimalism / padding 8rem+ → clamp(2.5rem,6vw,8rem)@1920 = 115 → 8px 격자 정렬 112 */
  --pad-t:80px;               /* 원본 상단 max(sp-pad*.72, 58) = 83 → 80 (8px 격자) */
  --pad-b:64px;               /* 원본 하단 max(sp-pad*.62, 46) = 71 → 64 (8px 격자) */
  --radius:0px;               /* swiss / --border-radius:0px */
  --bw:1px; --bw-sem:1.5px; --bw-hot:3px; --bw-stat:2px;   /* 장식 1 · 의미 경계 1.5 · 강조 좌측 3 · 스탯 상단 2 */

  /* 타입 램프 — Perfect Fourth(1.333). 원본 clamp 의 1920×1080 평가값(120/80/52/36/28/22/16/17)은
     '읽기 거리' 앵커라 1080 캔버스의 아래 절반이 비었다(1차 스크린샷). 무대 거리용으로 같은 램프를
     정확히 한 단(×1.333) 올려 확정. 비율·단 수·역할은 원본 그대로, 앵커만 한 칸 위. */
  --t-display:160px;          /* 120 × 1.333 */
  --t-h1:107px;               /*  80 × 1.333 */
  --t-h2:69px;                /*  52 × 1.333 */
  --t-h3:48px;                /*  36 × 1.333 */
  --t-lead:37px;              /*  28 × 1.333 */
  --t-body:29px;              /*  22 × 1.333 */
  --t-caption:21px;           /*  16 × 1.333 */
  --t-mono:23px;              /*  17 × 1.333 */
  --lh-display:1.15; --lh-h1:1.2; --lh-h2:1.28; --lh-body:1.65; --lh-caption:1.5;   /* ux-guidelines Line Height 1.5–1.75 */
  --ls-display:-.035em; --ls-h1:-.025em; --ls-h2:-.02em; --ls-body:-.01em;         /* 데이터셋 -.05em 은 한글에 과함 → 완화 */
  --fw-display:800; --fw-h:700; --fw-body:400; --fw-emph:600;                        /* 900 은 한글 속공간 막힘 → 800 */
  --measure-body:62ch;        /* Line Length 65–75ch, 한글 보정 */
  --measure-head:34ch;        /* Heading Line Balance 20ch — 한글 1자≈2ch 실측 재조정 */

  /* 모션 — motion.csv Subtle */
  --dur-in:260ms; --dur-reveal:340ms; --dur-hover:180ms;
  --ease-out:cubic-bezier(.25,.46,.45,.94);   /* power1.out */
  --ease-io:cubic-bezier(.455,.03,.515,.955); /* power1.inOut */
  --reveal-y:12px; --stagger:30ms;

  /* 라이트 — 원본 "Knowledge Base/Documentation" 행의 대비 목표(본문≥13.9 · 보조≥7 · 캡션≥4.5 · 경계≥4.5)를
     CI green 색상으로 재산출. 값별 실측 대비는 DESIGN.md §4 */
  --bg:#F6F8F7; --surface:#FFFFFF; --surface-2:#E7ECEB;
  --fg:#111827; --fg-2:#485565; --fg-3:#66758A;
  --hairline:#DEE5E3; --rule:#66758A;
  --acc:var(--cmds-green); --on-acc:#FFFFFF;
  --tint-1:#F6F8F7; --tint-2:#ECF0EF; --tint-3:#E3E9E7;   /* green @4/8/12% on #FFFFFF */
  --term-bg:var(--tint-2);
  /* 코어 변수 동기 */
  --muted:var(--fg-2); --line:var(--hairline); --accent:var(--acc); --accent-on:var(--on-acc);
  /* 코어 패널 재스킨 — 같은 UI 시스템의 툴바처럼 */
  --dk-panel-bg:var(--surface); --dk-panel-fg:var(--fg-2); --dk-panel-line:var(--hairline);
  --dk-panel-h:44px; --dk-notes-w:440px; --dk-font:var(--font-mono); --dk-accent:var(--acc);
}
html[data-theme="dark"]{
  /* 다크 — 원본 "Developer Tool / IDE" 행의 대비 목표(본문≥17 · 보조≥12 · 캡션≥6.9 · 경계≥3.75)를 CI 색상으로 재산출 */
  --bg:#0E1512; --surface:#111827; --surface-2:#001A44;
  --fg:#F3F5F3; --fg-2:#CBD3DD; --fg-3:#99B0CE;
  --hairline:#15355C; --rule:#66758A;
  --acc:var(--cmds-pink); --on-acc:#1B1B1B;
  --tint-1:#1B1C1B; --tint-2:#242020; --tint-3:#001A44;   /* pink @6/10/16% on bg */
  --term-bg:var(--tint-1);
  --muted:var(--fg-2); --line:var(--hairline); --accent:var(--acc); --accent-on:var(--on-acc);
  --dk-panel-bg:var(--surface); --dk-panel-fg:var(--fg-2); --dk-panel-line:var(--hairline); --dk-accent:var(--acc);
}
@media (prefers-color-scheme:dark){
  html:not([data-theme="light"]){
    --bg:#0E1512; --surface:#111827; --surface-2:#001A44;
    --fg:#F3F5F3; --fg-2:#CBD3DD; --fg-3:#99B0CE;
    --hairline:#15355C; --rule:#66758A;
    --acc:var(--cmds-pink); --on-acc:#1B1B1B;
    --tint-1:#1B1C1B; --tint-2:#242020; --tint-3:#001A44;
    --term-bg:var(--tint-1);
    --muted:var(--fg-2); --line:var(--hairline); --accent:var(--acc); --accent-on:var(--on-acc);
    --dk-panel-bg:var(--surface); --dk-panel-fg:var(--fg-2); --dk-panel-line:var(--hairline); --dk-accent:var(--acc);
  }
}

/* ─── 기반 ─────────────────────────────────────────────────────────── */
body{ font-size:var(--t-body); line-height:var(--lh-body); letter-spacing:var(--ls-body); font-feature-settings:"kern","liga","calt","tnum"; }
::selection{ background:var(--tint-3); }
:focus-visible{ outline:2px solid var(--acc); outline-offset:3px; }   /* Focus States [High] */
.dk-btn{ border-radius:var(--radius); }
.dk-btn:hover{ color:var(--acc); border-color:var(--acc); }

/* ─── 슬라이드 프레임 ──────────────────────────────────────────────── */
.slide{
  padding:var(--pad-t) var(--pad-x) var(--pad-b);
  gap:0; position:relative;
  background:var(--bg); color:var(--fg);
}
html.js .slide[data-active]{ animation:dd-in var(--dur-in) var(--ease-io) both; }
@keyframes dd-in{ from{ opacity:0; transform:translate3d(0,var(--reveal-y),0); } to{ opacity:1; transform:none; } }
html[data-aspect="16x10"] .slide{ --pad-t:96px; --pad-b:80px; }
/* dense 티어 — DIAL_TIERS density 4-7 "Standard": md 24→16, lg 32→24, xl 48→32. 정보 4층 이상인 장(9그리드·표·바·타임라인·사다리·터미널) */
.k-grid:not(.kind-grid),.k-table,.k-bars,.k-timeline,.k-ladder,.k-terminal,.k-toggle,.k-cards{ --sp-md:16px; --sp-lg:24px; --sp-xl:32px; --gap:24px; }     /* 1200 세로: 한 단(16px) 위 티어로 */
@media (prefers-reduced-motion:reduce){ html.js .slide[data-active]{ animation:none; } }

/* 순차 공개 — Scroll Reveal Subtle 340ms / power1.out / 12px */
html.js [data-step]{ opacity:0; transform:translate3d(0,var(--reveal-y),0); transition:opacity var(--dur-reveal) var(--ease-out), transform var(--dur-reveal) var(--ease-out); }
html.js [data-step].in{ opacity:1; transform:none; }
html.js svg [data-step]{ transform:none; }
/* 슬라이드 진입 시 함께 뜨는 묶음 — Stagger List 30ms (스텝 없는 그리드·스탯·테이블 행) */
html.js .slide[data-active] .grid > .cell:not([data-step]),html.js .slide[data-active] .stat,html.js .slide[data-active] .tbl tbody tr,html.js .slide[data-active] .compare .col{ animation:dd-stg var(--dur-reveal) var(--ease-out) both; }
@keyframes dd-stg{ from{ opacity:0; transform:translate3d(0,var(--reveal-y),0); } to{ opacity:1; transform:none; } }
.grid > :nth-child(2),.stats > :nth-child(2),.compare > :nth-child(2),.tbl tbody tr:nth-child(2){ animation-delay:calc(var(--stagger)*1); }
.grid > :nth-child(3),.stats > :nth-child(3),.tbl tbody tr:nth-child(3){ animation-delay:calc(var(--stagger)*2); }
.grid > :nth-child(4),.stats > :nth-child(4),.tbl tbody tr:nth-child(4){ animation-delay:calc(var(--stagger)*3); }
.grid > :nth-child(5),.tbl tbody tr:nth-child(5){ animation-delay:calc(var(--stagger)*4); }
.grid > :nth-child(6),.tbl tbody tr:nth-child(6){ animation-delay:calc(var(--stagger)*5); }
.grid > :nth-child(7),.tbl tbody tr:nth-child(7){ animation-delay:calc(var(--stagger)*6); }
.grid > :nth-child(8){ animation-delay:calc(var(--stagger)*7); }
.grid > :nth-child(9){ animation-delay:calc(var(--stagger)*8); }
@media (prefers-reduced-motion:reduce){ html.js .slide[data-active] :is(.cell,.stat,.tbl tbody tr,.compare .col){ animation:none; } }

/* ─── 타입 ─────────────────────────────────────────────────────────── */
.kicker{   /* 원본 .eyebrow — 액센트 모노 라벨, 흐름 안 */
  font:600 var(--t-caption)/1 var(--font-mono); letter-spacing:.14em; color:var(--acc);
  margin:0 0 var(--sp-md); text-transform:uppercase; align-self:flex-start;   /* 우상단 dd-kicker 와 bbox 분리 */
}
:is(.slide,.sheet-body,.sheet-evidence) > .kicker{ margin-top:auto; }   /* 원본 .inner{margin:auto} — 콘텐츠 블록을 세로 중앙에 (foot 의 margin-top:auto 와 반씩 나눔) */
.headline{
  font-family:var(--font-display); font-size:var(--t-h2); font-weight:var(--fw-h);
  line-height:var(--lh-h2); letter-spacing:var(--ls-h2); margin:0;
  max-inline-size:var(--measure-head); text-wrap:balance; word-break:keep-all; overflow-wrap:break-word;
}
.headline em{ font-style:normal; color:var(--acc); font-weight:var(--fw-h); }
.headline .sub{ display:block; font-size:var(--t-h3); font-weight:var(--fw-emph); color:var(--fg-2); letter-spacing:var(--ls-body); line-height:1.3; margin-top:var(--sp-sm); }
.lead{
  font-size:var(--t-lead); color:var(--fg-2); line-height:1.62; margin:var(--sp-lg) 0 0;
  inline-size:min(100%,var(--measure-body)); max-width:none;
}
.lead b,.lead strong{ color:var(--fg); font-weight:var(--fw-emph); }
.foot{   /* 원본 .note — 캡션 크기, 헤어라인 상단 괘선, 세로 여분 흡수 */
  margin-top:auto; padding-top:var(--sp-md); border-top:var(--bw) solid var(--hairline);
  display:flex; justify-content:space-between; align-items:baseline; gap:var(--sp-xl);
  font-size:var(--t-caption); line-height:var(--lh-caption); color:var(--fg-3);
}
.foot-note{ inline-size:min(100%,var(--measure-body)); min-inline-size:0; }
.foot-src{ font:500 var(--t-caption)/var(--lh-caption) var(--font-mono); letter-spacing:.04em; white-space:nowrap; color:var(--fg-3); }
.headline + .lead{ margin-top:var(--sp-lg); }
.headline + .grid,.headline + .steps,.headline + .stats,.headline + .tbl,.headline + .compare,.headline + .terminal,.headline + .timeline,.headline + .bars,.headline + .toggle,.headline + .diagram,.headline + .body-list,.lead + .body-list{ margin-top:var(--sp-xl); }
.grid + .lead,.stats + .lead,.bars + .lead,.diagram + .lead,.quote + .lead{ margin-top:var(--sp-lg); }
.grid,.steps,.stats,.tbl,.compare,.terminal,.timeline,.bars,.toggle,.diagram,.body-list{ margin-bottom:var(--sp-lg); }

/* ─── k-cover · k-section · k-statement ───────────────────────────── */
.k-cover .headline{ font-size:var(--t-display); font-weight:var(--fw-display); line-height:var(--lh-display); letter-spacing:var(--ls-display); margin-top:var(--sp-xl); }
.k-cover .kicker{ color:var(--fg-3); }
.k-cover .lead{ margin-top:var(--sp-xl); font-size:var(--t-h3); line-height:1.4; }
.k-cover .foot,.k-outro .foot{ font-family:var(--font-mono); letter-spacing:.06em; }
.k-section{ justify-content:flex-start; }
.k-section .headline{ font-size:var(--t-display); font-weight:var(--fw-display); line-height:var(--lh-display); letter-spacing:var(--ls-display); margin-top:var(--sp-xl); }
.k-section .headline .sub{ font-size:var(--t-h2); font-weight:var(--fw-emph); margin-top:var(--sp-md); }
.k-section .lead{ margin-top:var(--sp-2xl); font:500 var(--t-lead)/1.5 var(--font-mono); letter-spacing:.04em; color:var(--fg-3); }
.k-section::after{ content:""; display:block; margin-top:auto; }   /* foot 이 없는 장의 하단 스페이서 (세로 중앙 정렬용) */
.k-section .lead::before{   /* 섹션 표지의 2px 액센트 괘선 — stat 상단 괘선과 같은 굵기 체계 */
  content:""; display:block; height:var(--bw-stat); background:var(--acc); width:var(--sp-3xl); margin-bottom:var(--sp-lg);
}
.k-statement .headline{ font-size:var(--t-h1); font-weight:var(--fw-display); line-height:var(--lh-h1); letter-spacing:var(--ls-h1); max-inline-size:none; }
.body-list{ margin:var(--sp-xl) 0 0; padding:0; list-style:none; display:grid; gap:var(--sp-sm); inline-size:min(100%,1200px); }
.body-list li{ display:grid; grid-template-columns:1fr; padding:var(--sp-md); background:var(--surface); border:var(--bw) solid var(--hairline); border-left:var(--bw-hot) solid var(--hairline); font-size:var(--t-body); line-height:1.55; color:var(--fg-2); }
.body-list li b{ color:var(--fg); font-weight:var(--fw-h); font-family:var(--font-mono); font-size:var(--t-mono); letter-spacing:.06em; margin-right:var(--sp-sm); }
.body-list li:last-child{ background:var(--tint-2); border-left-color:var(--acc); color:var(--fg); }
.body-list li:last-child b{ color:var(--acc); }

/* ─── 패널 컴포넌트 (.cell / .step / .stat / .tg 공통 표면) ─────────── */
.grid{ display:grid; gap:var(--gap); }
.cols-3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.cols-4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.cell{
  background:var(--surface); border:var(--bw) solid var(--hairline); border-radius:var(--radius);
  padding:var(--sp-md); min-inline-size:0; display:flex; flex-direction:column; gap:var(--sp-sm);
  transition:border-color var(--dur-hover) var(--ease-out);
}
.cell-no{ font:600 var(--t-mono)/1 var(--font-mono); letter-spacing:.09em; color:var(--fg-3); }
.cell-title{ font:var(--fw-h) var(--t-h3)/1.3 var(--font-display); letter-spacing:var(--ls-body); color:var(--fg); }
.cell-text{ font-size:var(--t-body); line-height:1.55; color:var(--fg-2); }
.grid.nine .cell{ gap:var(--sp-xs); padding:var(--sp-md); }
.grid.nine .cell-title{ font-size:var(--t-h3); }
.grid.nine .cell-text{ font-size:var(--t-body); }
.grid.constellation .cell-title{ font-family:var(--font-mono); font-size:40px; letter-spacing:-.01em; }   /* handle = 코드 식별자 */
.grid.cards .cell{ padding:var(--sp-lg); gap:var(--sp-md); }
.grid.cards .cell-no{ color:var(--acc); }
.grid.links .cell-title{ font-family:var(--font-mono); font-size:34px; overflow-wrap:anywhere; color:var(--acc); text-decoration:underline; text-underline-offset:6px; text-decoration-thickness:1.5px; }
.grid.links .cell-no{ color:var(--fg-3); }

/* steps — 원본 .loop(4열) / .ladder(세로) */
.steps{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--sp-md); position:relative; }
.step{
  background:var(--surface); border:var(--bw) solid var(--hairline); border-left:var(--bw-hot) solid var(--hairline);
  padding:var(--sp-md); min-inline-size:0; display:grid; gap:var(--sp-sm); align-content:start; position:relative;
}
.steps:not(.ladder) .step::after{ content:"→"; position:absolute; right:calc(var(--sp-md) * -.72); top:50%; transform:translateY(-50%); color:var(--rule); font-size:var(--t-lead); line-height:1; }
.steps:not(.ladder) .step:last-child::after{ content:"⟲"; right:auto; left:50%; top:auto; bottom:calc(var(--sp-md) * -1.1); transform:translateX(-50%); }
.step-no{ font:600 var(--t-mono)/1 var(--font-mono); letter-spacing:.08em; color:var(--fg-3); }
.step-title{ font:var(--fw-h) var(--t-h3)/1.3 var(--font-display); color:var(--fg); }
.step-text{ font-size:var(--t-body); line-height:1.5; color:var(--fg-2); }
.step.hi{ background:var(--tint-2); border-left-color:var(--acc); }
.step.hi .step-no,.step.hi .step-title{ color:var(--acc); }
.step.hi .step-text{ color:var(--fg); }
.steps.ladder{ grid-template-columns:1fr; gap:var(--sp-sm); }
.steps.ladder .step{ grid-template-columns:140px 380px 1fr; align-items:baseline; gap:var(--sp-md); padding:var(--sp-md) var(--sp-lg); }
.steps.ladder .step-title{ font-size:var(--t-h3); }
.steps.ladder .step-no{ font-size:var(--t-lead); }

/* ─── k-stats (07) — 대시보드 순간 ───────────────────────────────── */
.stats{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--gap); }
.stat{ border-top:var(--bw-stat) solid var(--acc); padding-top:var(--sp-md); min-inline-size:0; display:grid; grid-template-columns:auto 1fr; grid-template-areas:"num unit" "label label"; align-items:baseline; column-gap:var(--sp-xs); }
.stat .num{
  grid-area:num; font-family:var(--font-display); font-size:var(--t-h1); font-weight:var(--fw-display);
  line-height:1; letter-spacing:-.035em; color:var(--acc); font-variant-numeric:tabular-nums;
}
.stat .unit{ grid-area:unit; font:var(--fw-h) var(--t-h3)/1 var(--font-display); color:var(--acc); align-self:baseline; }
.stat .label{ grid-area:label; display:block; font-size:var(--t-body); color:var(--fg-2); margin-top:var(--sp-sm); line-height:1.5; }

/* ─── k-table (08 · 16) ───────────────────────────────────────────── */
.tbl{ border-collapse:collapse; width:100%; font-size:var(--t-body); line-height:1.45; border-top:var(--bw) solid var(--hairline); }
.tbl th,.tbl td{ text-align:left; padding:12px var(--sp-md); border-bottom:var(--bw) solid var(--hairline); vertical-align:top; min-inline-size:0; }
.tbl th{ font:600 var(--t-mono)/1.4 var(--font-mono); letter-spacing:.08em; color:var(--fg-3); text-transform:uppercase; background:var(--surface); border-bottom-color:var(--rule); }
.tbl td{ color:var(--fg-2); }
.tbl td:first-child{ color:var(--fg); font-weight:var(--fw-emph); }
.tbl th.hi{ color:var(--acc); background:var(--tint-2); }
.tbl td.hi{ background:var(--tint-2); color:var(--fg); font-weight:var(--fw-emph); border-left:var(--bw-hot) solid var(--acc); }
.tbl th.hi{ border-left:var(--bw-hot) solid var(--acc); }
.tbl.compare-tbl td{ font-variant-numeric:tabular-nums; }

/* ─── k-quote (10) ────────────────────────────────────────────────── */
.quote{ margin:var(--sp-xl) 0 0; padding:var(--sp-md) 0 var(--sp-md) var(--sp-lg); border-left:var(--bw-hot) solid var(--acc); }
.quote p{ font-family:var(--font-display); font-size:var(--t-h1); font-weight:var(--fw-display); line-height:var(--lh-h1); letter-spacing:var(--ls-h1); margin:0 0 var(--sp-md); color:var(--fg); }
.quote cite{ font:600 var(--t-mono)/1.4 var(--font-mono); letter-spacing:.06em; color:var(--fg-3); font-style:normal; }

/* ─── k-diagram (11) — 도판을 surface 패널에 담는다 (원본 figure.fig) ─ */
.diagram{ width:100%; max-height:520px; display:block; background:var(--surface); border:var(--bw) solid var(--hairline); padding:var(--sp-md); box-sizing:border-box; }
.diagram rect{ fill:var(--surface-2); stroke:var(--rule); stroke-width:1.4; }
.dg-layer:nth-of-type(2) rect{ fill:var(--tint-2); stroke:var(--acc); stroke-width:1.6; }
.dg-t{ font:700 34px var(--font-display); fill:var(--fg); }
.dg-s{ font:400 15px var(--font-sans); fill:var(--fg-2); }
.dg-v{ font:600 15px var(--font-mono); fill:var(--acc); letter-spacing:.04em; }
.dg-arrow path{ stroke:var(--acc); stroke-width:2; fill:none; stroke-linecap:round; }
.dg-loop path{ stroke:var(--rule); stroke-width:1.4; fill:none; stroke-dasharray:6 6; }
.dg-loop .dg-v{ fill:var(--fg-2); }

/* ─── k-compare (12) ──────────────────────────────────────────────── */
.compare{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--gap); }
.compare .col{ background:var(--surface); border:var(--bw) solid var(--hairline); border-left:var(--bw-hot) solid var(--hairline); padding:var(--sp-lg); min-inline-size:0; }
.compare h3{ font:var(--fw-h) var(--t-h3)/1.3 var(--font-display); margin:0 0 var(--sp-md); padding-bottom:var(--sp-md); border-bottom:var(--bw) solid var(--hairline); color:var(--fg-2); }
.compare ul{ margin:0; padding:0; list-style:none; display:grid; gap:var(--sp-sm); }
.compare li{ font-size:var(--t-lead); line-height:1.5; color:var(--fg-2); padding-left:var(--sp-md); position:relative; }
.compare li::before{ content:""; position:absolute; left:0; top:.72em; width:8px; height:8px; background:var(--rule); }
.compare .b{ background:var(--tint-2); border-left-color:var(--acc); }
.compare .b h3{ color:var(--acc); }
.compare .b li{ color:var(--fg); }
.compare .b li::before{ background:var(--acc); }

/* ─── k-terminal (13) ─────────────────────────────────────────────── */
.terminal{
  margin:var(--sp-xl) 0 0; padding:var(--sp-md); background:var(--term-bg); color:var(--fg);
  border:var(--bw) solid var(--rule); border-radius:var(--radius);
  font:400 var(--t-mono)/1.75 var(--font-mono); white-space:pre; overflow:hidden;
}
.terminal code{ font:inherit; }   /* UA code{font-family:monospace} 가 SF Mono 스택을 덮는 것 방지 */
.terminal .prompt{ color:var(--acc); font-weight:600; }
.terminal .dim{ color:var(--fg-3); }
.terminal .ok{ color:var(--acc); font-weight:600; }

/* ─── k-timeline (18) ─────────────────────────────────────────────── */
.timeline{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:var(--sp-md); }
.tick{ background:var(--surface); border:var(--bw) solid var(--hairline); border-top:var(--bw-stat) solid var(--hairline); padding:var(--sp-md); display:grid; gap:var(--sp-sm); align-content:start; min-inline-size:0; }
.tick-when{ font:700 var(--t-h3)/1 var(--font-display); color:var(--fg); font-variant-numeric:tabular-nums; letter-spacing:-.02em; }
.tick-lv{ font:600 var(--t-mono)/1 var(--font-mono); letter-spacing:.08em; color:var(--fg-3); }
.tick-what{ font-size:var(--t-body); line-height:1.5; color:var(--fg-2); margin-top:var(--sp-xs); }
.tick:nth-child(2),.tick:nth-child(3),.tick:nth-child(4){ border-top-color:var(--acc); }   /* 30·60·90 = 본체 (발표자 노트) */
.tick:nth-child(4){ background:var(--tint-2); }
.tick:nth-child(4) .tick-when,.tick:nth-child(4) .tick-lv{ color:var(--acc); }

/* ─── k-bars (19) — 대시보드 순간 ───────────────────────────────── */
.bars{ display:grid; gap:var(--sp-sm); border-top:var(--bw) solid var(--hairline); }
.bar{
  display:grid; grid-template-columns:minmax(0,1fr) 640px 96px; align-items:center; gap:var(--sp-md);
  padding:14px var(--sp-md); background:var(--surface); border-bottom:var(--bw) solid var(--hairline); border-left:var(--bw-hot) solid transparent;
  font-size:var(--t-body); color:var(--fg-2); min-inline-size:0;
}
.bar-label b{ font:600 var(--t-mono)/1 var(--font-mono); color:var(--fg-3); letter-spacing:.08em; margin-right:var(--sp-sm); }
.bar-track{ display:block; height:12px; background:var(--surface-2); position:relative; overflow:hidden; }
.bar-track i{ display:block; height:100%; width:var(--w,0%); background:var(--rule); transition:width var(--dur-reveal) var(--ease-out); }
html.js .bar[data-step]:not(.in) .bar-track i{ width:0; }
.bar-val{ font:600 var(--t-lead)/1 var(--font-mono); text-align:right; color:var(--fg); font-variant-numeric:tabular-nums; }
.bar.hi{ background:var(--tint-2); border-left-color:var(--acc); color:var(--fg); }
.bar.hi .bar-label b,.bar.hi .bar-val{ color:var(--acc); }
.bar.hi .bar-track i{ background:var(--acc); }

/* ─── k-toggle (23) — 세그먼트 컨트롤 ───────────────────────────── */
.toggle-ctl{ display:inline-flex; margin:0 0 var(--sp-md); border:var(--bw-sem) solid var(--rule); border-radius:var(--radius); background:var(--surface); }
.toggle-ctl button{
  font:var(--fw-emph) var(--t-body)/1 var(--font-sans); min-height:44px; min-width:44px; padding:0 var(--sp-md);   /* Target Size [High] */
  border:0; background:transparent; color:var(--fg); cursor:pointer; border-radius:var(--radius);
  transition:background var(--dur-hover) var(--ease-out), color var(--dur-hover) var(--ease-out);
}
.toggle-ctl button + button{ border-left:var(--bw-sem) solid var(--rule); }
.toggle-ctl button:hover{ color:var(--acc); }
.toggle-ctl button[aria-pressed="true"]{ background:var(--acc); color:var(--on-acc); }
.toggle-ctl button[aria-pressed="true"]::before{ content:"✓ "; font-weight:700; }   /* Color Only [High] */
.toggle-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--sp-md); }
.tg{ background:var(--surface); border:var(--bw) solid var(--hairline); border-top:var(--bw-stat) solid var(--hairline); padding:var(--sp-md); display:grid; gap:var(--sp-sm); align-content:start; min-inline-size:0; }
.tg-a,.tg-b{ font:var(--fw-display) var(--t-h2)/1.15 var(--font-display); letter-spacing:var(--ls-h2); color:var(--fg); }
.toggle[data-view="note"] .tg-b,.toggle[data-view="harness"] .tg-a{ display:none; }
.toggle[data-view="harness"] .tg{ border-top-color:var(--acc); background:var(--tint-1); }
.toggle[data-view="harness"] .tg-b{ color:var(--acc); }
.tg-desc{ font-size:var(--t-body); line-height:1.5; color:var(--fg-2); }
.toggle-verdict{ margin:var(--sp-md) 0 0; padding:var(--sp-md); background:var(--tint-2); border-left:var(--bw-hot) solid var(--acc); font-size:var(--t-lead); line-height:1.5; color:var(--fg); inline-size:min(100%,var(--measure-body)); }
.toggle-verdict:empty{ display:none; }

/* ─── k-outro ─────────────────────────────────────────────────────── */
.k-outro .headline{ font-size:var(--t-h1); font-weight:var(--fw-display); line-height:var(--lh-h1); letter-spacing:var(--ls-h1); }
.k-outro .lead{ font-weight:var(--fw-emph); color:var(--fg); }

/* ─── 슬라이드 내부 크롬 (theme.js 주입) — 원본 .kicker / .status / .rail / .progress ─ */
.dd-kicker{ position:absolute; top:var(--pad-t); right:var(--pad-x); margin:0; font:600 var(--t-caption)/1 var(--font-mono); letter-spacing:.1em; color:var(--fg-3); text-transform:uppercase; }
.dd-status{ position:absolute; left:var(--pad-x); bottom:calc(var(--pad-b) / 2 - 8px); font:600 var(--t-caption)/1 var(--font-mono); letter-spacing:.1em; color:var(--fg-2); font-variant-numeric:tabular-nums; }
.dd-status span{ color:var(--fg-3); margin-left:var(--sp-md); letter-spacing:.06em; }
.dd-rail{ position:absolute; right:var(--sp-lg); top:50%; transform:translateY(-50%); display:flex; flex-direction:column; gap:6px; margin:0; padding:0; list-style:none; }
.dd-rail li{ width:24px; height:24px; display:flex; align-items:center; justify-content:center; }   /* Target Size 24×24 */
.dd-rail li i{ display:block; width:8px; height:8px; background:var(--hairline); transition:background var(--dur-hover) var(--ease-out), height var(--dur-hover) var(--ease-out); }
.dd-rail li[data-section-start] i{ background:var(--rule); }
.dd-rail li[aria-current="true"] i{ background:var(--acc); height:18px; }   /* Color Only: 색 + 모양 */
.dd-progress{ position:absolute; left:0; bottom:0; height:2px; width:var(--dd-p,0%); background:var(--acc); transition:width var(--dur-in) var(--ease-io); }
html[data-aspect="16x10"] .dd-rail{ gap:8px; }

/* ─── 인쇄 — 슬라이드 내부 크롬은 그대로, 모션만 제거 ─────────────── */
@media print{
  .slide{ animation:none !important; }
  .cell,.stat,.tbl tbody tr,.compare .col{ animation:none !important; opacity:1 !important; transform:none !important; }
  .bar-track i{ width:var(--w,0%) !important; }
  .dd-progress{ display:none; }
}
}
/* 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}}
html{--raw5-source-01:url("https://pub-acf6ad93f2ec4a5e8fa12e94d0c9b151.r2.dev/1791892987381-74724e4c-9148-490b-bc0e-2d3ab9350471.png");--raw5-source-02:url("https://pub-acf6ad93f2ec4a5e8fa12e94d0c9b151.r2.dev/1791893005051-0c91cc7e-bb85-4015-a47c-0d3f9854840c.jpeg");--raw5-source-03:url("https://pub-acf6ad93f2ec4a5e8fa12e94d0c9b151.r2.dev/1791893009594-33179a93-4c26-463f-b301-3ce36e64da73.png");--raw5-source-04:url("https://pub-acf6ad93f2ec4a5e8fa12e94d0c9b151.r2.dev/1791893021091-02a1d937-6d00-466d-9440-7510aa442b58.png");--raw5-source-05:url("https://pub-acf6ad93f2ec4a5e8fa12e94d0c9b151.r2.dev/1791893041212-e8d92e02-39fd-4768-9826-1c2865051c4e.png");--raw5-source-06:url("https://pub-acf6ad93f2ec4a5e8fa12e94d0c9b151.r2.dev/1791893060162-6f48c07c-6a2c-432e-92e9-5295dd77ab9f.png");--raw5-source-07:url("https://pub-acf6ad93f2ec4a5e8fa12e94d0c9b151.r2.dev/1791893063968-968c416b-717f-4686-8ebb-30122918e097.png");--raw5-source-08:url("https://pub-acf6ad93f2ec4a5e8fa12e94d0c9b151.r2.dev/1791893069130-7daeffe9-6ab2-41e1-aee4-d5b1650ec651.png");--raw5-source-09:url("https://pub-acf6ad93f2ec4a5e8fa12e94d0c9b151.r2.dev/1791893073969-b80c617a-87b9-4c53-a52b-4d241dd87baf.png");--raw5-source-10:url("https://pub-acf6ad93f2ec4a5e8fa12e94d0c9b151.r2.dev/1791893078236-60ec786a-4000-467b-aa5c-cdd600e5fe9b.png");--raw5-source-11:url("https://pub-acf6ad93f2ec4a5e8fa12e94d0c9b151.r2.dev/1791893082020-c52f6f8e-5038-44e5-8e97-3210b9493bc1.png");}
@page{size:20in 11.25in;margin:0}