@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(media/ibm-plex-mono-0.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(media/ibm-plex-mono-1.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root { --paper:#f2efe9; --ink:#17141c; --accent:#7653ba; --muted:#59545d; }
* { box-sizing:border-box; }
body { margin:0; background:#d6d3db; color:var(--ink); font-family:var(--deck-font,'IBM Plex Mono'),monospace; }
.app { display:flex; height:calc(100dvh - 56px); }
.stage { position:relative; overflow:hidden; flex:1; min-width:0; }
#deck { position:absolute; width:1280px; height:720px; left:50%; top:50%; transform:translate(-50%,-50%) scale(var(--scale,1)); }
.slide { display:none; position:absolute; inset:0; width:1280px; height:720px; background:var(--paper); overflow:hidden; }
.slide.active { display:block; }
.slide.hero-background .block:not(.hero-layer) { z-index:4; }
.slide.dark { background:var(--ink); color:var(--paper); --muted:#beb5cc; }
.block { position:absolute; }
.heading { left:72px; top:53px; width:1136px; font-size:48px; line-height:1.13; font-weight:700; margin:0; }
.subtitle { left:74px; top:185px; width:1132px; font-size:25px; line-height:1.22; color:var(--muted); }
.paragraphs p { margin:0 0 27px; font-size:31px; line-height:1.28; }
.paragraphs p:last-child { margin-bottom:0; }
.foot { left:74px; top:645px; width:1066px; font-size:19px; line-height:1.18; color:var(--muted); }
.folio { left:1160px; top:654px; font-size:18px; color:var(--muted); }
.photo { object-fit:contain; }



.caption { font-size:18px; line-height:1.25; color:var(--muted); }
.big { font-weight:700; color:var(--accent); line-height:1.05; }
.dark .big { color:#c4acec; }
.big-label { font-size:30px; line-height:1.28; }
.column-title { font-size:32px; line-height:1.2; font-weight:700; color:var(--accent); }
.dark .column-title { color:#c4acec; }
.columns { display:grid; grid-template-columns:524px 524px; gap:84px; }
.columns p { margin:0 0 30px; font-size:31px; line-height:1.28; }
.columns.compact p { font-size:28px; margin-bottom:20px; }
.step-number { font-size:61px; font-weight:700; color:var(--accent); line-height:1; }
.step-title { font-size:34px; font-weight:700; line-height:1.25; }
.step-text { font-size:30px; line-height:1.28; }
.data-table { border-collapse:collapse; table-layout:fixed; width:1136px; height:var(--table-height); font-size:25px; line-height:1.18; }
.data-table th,.data-table td { border:1px solid #d4cfd7; padding:8px 13px; vertical-align:middle; overflow-wrap:normal; }
.data-table th { background:var(--ink); color:white; text-align:left; font-weight:700; }
.data-table.compact { font-size:24px; }
.data-table.compact th,.data-table.compact td { padding:5px 13px; }
.chart { display:grid; grid-template-columns:52px 1fr; height:350px; padding:22px 16px 0 8px; }
.y-labels { position:relative; height:264px; color:var(--muted); font-size:20px; }
.y-labels span { position:absolute; right:8px; transform:translateY(50%); }
.plot { display:flex; align-items:stretch; position:relative; border-bottom:1px solid #c8c3cd; height:264px; background:repeating-linear-gradient(to top,#d4cfd7 0,#d4cfd7 1px,transparent 1px,transparent var(--grid-step)); }
.bar-slot { position:relative; flex:1; height:100%; }
.bar { position:absolute; width:56%; left:22%; bottom:0; height:var(--bar-height); background:var(--accent); }
.bar-value { position:absolute; bottom:calc(var(--bar-height) + 9px); left:0; width:100%; text-align:center; font-size:27px; font-weight:700; }
.bar-label { position:absolute; top:calc(100% + 16px); left:0; width:100%; text-align:center; font-size:23px; line-height:1.15; white-space:pre-line; }
.talk-title { font-size:98px; line-height:1.05; font-weight:700; }
.talk-subtitle { font-size:50px; line-height:1.16; }
.talk-meta { color:var(--muted); font-size:27px; line-height:1.4; }
.bio-label { font-size:25px; line-height:1.2; }
.bio-logo { object-fit:contain; object-position:left center; }
.channel-image { object-fit:contain; }
.channel-link { color:inherit; text-decoration:none; }
.index-grid { left:72px; top:155px; width:1136px; height:500px; display:grid; grid-auto-flow:column; grid-template-rows:repeat(var(--index-rows),1fr); grid-template-columns:repeat(var(--index-columns),minmax(0,1fr)); column-gap:30px; }
.index-link { display:flex; align-items:flex-start; gap:12px; padding:5px 0; color:inherit; text-decoration:none; font-size:22px; line-height:1.14; }
.index-page { flex:0 0 26px; color:var(--accent); font-size:18px; line-height:1.4; font-weight:700; }
.index-link:hover,.index-link:focus-visible { color:var(--accent); text-decoration:underline; text-underline-offset:4px; }
.index-link:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
.index-grid.short { top:180px; height:440px; }
.index-grid.short .index-link { font-size:36px; gap:30px; }
.index-grid.short .index-page { flex-basis:48px; font-size:26px; }
.toolbar { height:56px; background:#17141c; color:#f2efe9; display:flex; align-items:center; justify-content:center; gap:10px; padding:8px 16px; }
.toolbar button,.toolbar select { font:inherit; font-size:14px; border:1px solid #655c70; border-radius:3px; background:#26212d; color:#f2efe9; padding:7px 10px; }
.toolbar button { cursor:pointer; }
.toolbar button:disabled { opacity:.35; cursor:default; }
.toolbar button:focus-visible,.toolbar select:focus-visible { outline:2px solid #c4acec; outline-offset:2px; }
.toolbar select { max-width:430px; }
.toolbar input[type="color"] { width:34px; height:31px; padding:2px; border:1px solid #655c70; border-radius:3px; background:#26212d; cursor:pointer; }
.draw-controls { display:flex; align-items:center; gap:6px; }
.draw-controls[hidden] { display:none; }
.draw-controls label { display:flex; align-items:center; gap:5px; font-size:13px; }
.draw-controls select { width:66px; }
.toolbar button[aria-pressed="true"] { border-color:#c4acec; background:#51397a; }
body.draw-mode .key-help { display:none; }
#ink-layer { position:absolute; inset:0; width:1280px; height:720px; z-index:20; pointer-events:none; }
body.draw-mode:not(.grid-mode) #ink-layer { pointer-events:auto; cursor:crosshair; touch-action:none; }
body.draw-mode.eraser-mode #ink-layer { cursor:cell; }
body.hide-controls .toolbar,body.hide-controls .progress { display:none; }
body.hide-controls .app { height:100dvh; }
#counter { font-size:14px; min-width:54px; text-align:center; }
.key-help { margin-left:12px; font-size:12px; color:#c6bece; }
#notes { width:420px; flex-shrink:0; overflow:auto; background:#fcfaf5; padding:25px; border-left:1px solid #c8c3cd; }
#notes[hidden] { display:none; }
#notes h2 { font-size:20px; margin:0 0 12px; }
.note { display:none; font-size:15px; line-height:1.6; }
.note.active { display:block; }
.note h3 { font-size:16px; line-height:1.3; margin-top:23px; }
.note p { white-space:pre-line; }
.note a { color:#5c398e; word-break:break-word; }
.source { margin-top:18px; border-top:1px solid #ddd7e3; padding-top:12px; }
.source p { margin:8px 0 0; font-size:13px; color:var(--muted); }
.note-image { font-size:13px; color:var(--muted); }
.progress { height:3px; position:fixed; bottom:56px; left:0; background:#7653ba; transition:width .15s; z-index:10; }
.overview { position:absolute; inset:0; overflow:auto; padding:24px; background:#000; }
.overview[hidden],.grid-options[hidden] { display:none; }
.slide-grid { display:grid; grid-template-columns:repeat(var(--grid-columns,3),minmax(0,1fr)); gap:24px; align-items:start; }
.thumbnail { display:block; width:100%; border:0; padding:0; background:transparent; color:var(--ink); font:inherit; text-align:left; cursor:pointer; }
.thumbnail-frame { position:relative; width:100%; aspect-ratio:16/9; overflow:hidden; background:var(--paper); box-shadow:0 1px 7px #17141c20; }
.thumbnail .thumbnail-slide { display:block; position:absolute; inset:0; transform:scale(var(--thumb-scale,0.3)); transform-origin:top left; pointer-events:none; }
.thumbnail:hover .thumbnail-frame,.thumbnail:focus-visible .thumbnail-frame { outline:3px solid var(--accent); outline-offset:3px; }
.thumbnail:focus-visible { outline:none; }
.grid-options { display:flex; align-items:center; gap:7px; font-size:14px; }
.grid-options select { width:74px; }
.grid-mode #deck,.grid-mode #notes,.grid-mode .progress,.grid-mode [data-presentation] { display:none !important; }
.grid-mode #counter { min-width:80px; }
@media(max-width:1150px) { .toolbar { justify-content:flex-start; overflow-x:auto; } }
@media(max-width:900px) { .key-help { display:none; } .toolbar select { max-width:300px; } #notes { width:340px; } }
@media(max-width:600px) { .toolbar { gap:5px; padding:7px; } .toolbar select { max-width:150px; } .toolbar button { padding:7px 6px; } #notes { position:absolute; top:0; right:0; bottom:56px; width:min(100%,420px); z-index:30; } }
@media print { @page { size:1280px 720px; margin:0; } body { background:var(--paper); } .app,.stage,#deck,.grid-mode #deck { display:block !important; position:static; height:auto; width:1280px; transform:none; overflow:visible; } .slide { display:block; position:relative; page-break-after:always; break-after:page; print-color-adjust:exact; -webkit-print-color-adjust:exact; } .slide:last-child { page-break-after:auto; } #notes,.toolbar,.progress,.overview,#ink-layer { display:none !important; } }

.app{height:calc(100dvh - 164px)}
.public-header{height:44px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;background:#17141c;color:#c4acec;font-size:12px;gap:16px}
.public-header a{color:inherit;text-decoration:none}.public-header a:hover{text-decoration:underline}
.public-context{height:64px;background:#f2efe9;border-top:1px solid #c8c3cd;padding:10px 22px;font-size:12px;line-height:1.4;overflow:auto}
.public-context p{margin:0 0 4px}.public-context a{color:#5c398e;margin-right:14px}.public-context ul{display:flex;gap:12px;flex-wrap:wrap;list-style:none;padding:0;margin:0}
.watch-label{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#17141cee;color:#f2efe9;padding:12px 18px;border:1px solid #c4acec;border-radius:4px;font-size:18px;line-height:1.2}
.public-video{display:block}.public-video:focus-visible{outline:5px solid #7653ba;outline-offset:3px}
.toolbar a{color:#c4acec;font-size:13px;margin-left:8px}.overview{padding:24px}.thumb-title{display:block;color:#f2efe9;font-size:12px;margin-top:8px}
@media(max-width:600px){.app{height:calc(100dvh - 206px)}.public-header{padding:0 12px;font-size:10px}.public-context{height:106px;padding:10px 12px}.toolbar{overflow-x:auto;flex-wrap:nowrap}.toolbar select{max-width:145px}.slide-grid{--grid-columns:2;gap:14px}.watch-label{font-size:20px}}
@media print{.public-header,.public-context{display:none}.app{height:auto}.slide{height:720px;width:1280px}.watch-label{font-size:16px}}
