/* Palantir-style theme for the html-ppt engine (base.css + runtime.js, vendored MIT).
   Aesthetic studied from palantir.com/chain-reaction + /shipos:
   warm-cream / near-black / cornflower-blue canvases, refined grotesque type,
   split-color headlines, mono bracketed labels, geometric square+dot motifs.
   Link order: base.css -> palantir.css -> animations.css. NOT a Beam theme. */

:root{
  /* canvases */
  --cream:    oklch(0.945 0.022 78);
  --cream-2:  oklch(0.968 0.014 78);
  --ink:      oklch(0.175 0.006 60);
  --ink-2:    oklch(0.235 0.007 60);
  --blue:     oklch(0.66 0.135 248);
  --blue-deep:oklch(0.55 0.15 250);
  --blue-soft:oklch(0.86 0.06 240);

  /* text */
  --paper-1: oklch(0.235 0.012 60);
  --paper-2: oklch(0.44 0.012 60);
  --paper-3: oklch(0.58 0.010 60);
  --ink-1:   oklch(0.945 0.016 80);
  --ink-2t:  oklch(0.74 0.020 80);
  --ink-3t:  oklch(0.58 0.018 80);

  /* engine token remap (default canvas = cream) */
  --bg: var(--cream);
  --bg-soft: var(--cream-2);
  --surface: var(--cream-2);
  --surface-2: oklch(0.915 0.026 78);
  --border: color-mix(in oklch, var(--paper-1) 14%, transparent);
  --border-strong: color-mix(in oklch, var(--paper-1) 30%, transparent);
  --text-1: var(--paper-1);
  --text-2: var(--paper-2);
  --text-3: var(--paper-3);
  --accent: var(--blue-deep);
  --accent-2: var(--paper-1);
  --accent-3: var(--blue);

  --radius: 2px; --radius-sm: 2px; --radius-lg: 3px;
  --shadow: none; --shadow-lg: none;

  --font-sans:"Helvetica Neue",Helvetica,"Inter","PingFang SC","Noto Sans SC",system-ui,Arial,sans-serif;
  --font-display:"Helvetica Neue",Helvetica,"Inter","PingFang SC","Noto Sans SC",system-ui,sans-serif;
  --font-mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,monospace;
  --font-serif:var(--font-sans);
  --letter-tight:-.022em;
}

html,body{background:var(--cream);color:var(--paper-1);font-weight:400}
.deck{background:var(--cream)}
.slide{padding:84px 104px}

/* ---- canvases ---- */
.slide.ink{background:var(--ink);color:var(--ink-1)}
.slide.ink h1,.slide.ink h2,.slide.ink h3,.slide.ink .h1,.slide.ink .h2,.slide.ink .h3{color:var(--ink-1)}
.slide.ink .lede,.slide.ink .dim{color:var(--ink-2t)}
.slide.ink .dim2,.slide.ink .dim3{color:var(--ink-3t)}
.slide.ink .kicker{color:var(--ink-2t)}
.slide.blue{background:linear-gradient(105deg,var(--blue) 0%,var(--blue-soft) 48%,var(--cream) 100%);color:var(--paper-1)}
.slide.blue .kicker{color:var(--paper-1)}

/* ---- typography ---- */
h1.title,.h1{font-family:var(--font-display);font-weight:600;font-size:128px;line-height:.98;
  letter-spacing:-.03em;margin:0 0 22px;text-wrap:balance}
h2.title,.h2{font-family:var(--font-display);font-weight:600;font-size:76px;line-height:1.04;
  letter-spacing:var(--letter-tight);margin:0 0 20px;text-wrap:balance}
h3,.h3{font-weight:600;font-size:34px;line-height:1.15;letter-spacing:-.015em;margin:0 0 12px}
h4,.h4{font-weight:600;font-size:20px;line-height:1.25;margin:0 0 8px;letter-spacing:-.01em}
.lede{font-size:25px;line-height:1.5;color:var(--paper-2);font-weight:400;max-width:60ch}
.hl{color:var(--blue)}              /* split-color headline phrase */
.slide.ink .hl{color:var(--blue)}
.huge{font-size:200px;font-weight:600;line-height:.9;letter-spacing:-.04em}

/* kicker = mono uppercase with a small square bullet */
.kicker{font-family:var(--font-mono);font-size:13px;font-weight:500;letter-spacing:.22em;
  text-transform:uppercase;color:var(--paper-2);display:inline-flex;align-items:center;gap:11px}
.kicker::before{content:"";width:9px;height:9px;background:var(--blue);display:inline-block;flex:none}
.kicker.bare::before{display:none}

/* bracketed label boxes:  DATA [INFORMATION] */
.tagrow{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.tag{font-family:var(--font-mono);font-size:14px;letter-spacing:.1em;text-transform:uppercase;
  border:1.5px solid var(--blue);padding:12px 18px;white-space:nowrap;color:var(--paper-1)}
.slide.ink .tag{color:var(--ink-1);border-color:var(--blue)}
.tag b{font-weight:700}.tag .br{color:var(--blue)}
.plus{width:34px;height:34px;border:1.4px dashed var(--border-strong);border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);color:var(--paper-2);flex:none}

/* flat cards, sharp corners */
.card{background:transparent;border:1.5px solid var(--border-strong);border-radius:2px;
  padding:30px 30px;box-shadow:none}
.slide.ink .card{border-color:color-mix(in oklch,var(--ink-1) 18%,transparent)}
.card.fillc{background:var(--cream-2)}
.divider-accent{height:3px;width:64px;background:var(--blue)}
.pill{font-family:var(--font-mono);border-radius:2px;text-transform:uppercase;letter-spacing:.12em;
  font-size:11px;background:transparent;border:1px solid var(--border-strong);color:var(--paper-2)}
.slide.ink .pill{color:var(--ink-2t);border-color:color-mix(in oklch,var(--ink-1) 22%,transparent)}

/* mono caption / leader labels */
.mlabel{font-family:var(--font-mono);font-size:13px;letter-spacing:.06em;color:var(--paper-2)}
.mlabel .v{color:var(--blue);font-weight:700}
.stat-big{font-family:var(--font-display);font-weight:600;letter-spacing:-.04em;line-height:.9}
.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}

/* chrome */
.deck-header,.deck-footer{font-family:var(--font-mono);letter-spacing:.16em;color:var(--paper-3)}
.slide.ink ~ .deck-header{color:var(--ink-3t)}
.progress-bar>span{background:var(--blue)}
.overview .thumb .t{font-weight:600}

/* state badges used in pillar / abstention visuals */
.state{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:4px 9px;border:1px solid var(--border-strong)}
.state.solved{color:var(--paper-2)}
.state.frontier{color:var(--blue);border-color:var(--blue)}
.geo-cap{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;color:var(--paper-3)}

/* ---- citation language: the deck embodies its own thesis ---- */
/* inline source chip placed next to every claim / datum */
.src{font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:var(--blue-deep);
  border:1px solid color-mix(in oklch,var(--blue) 42%,transparent);border-radius:2px;
  padding:1px 7px;white-space:nowrap;display:inline-block;vertical-align:middle;line-height:1.7}
.src::before{content:"⌖ ";opacity:.7}
.slide.ink .src{color:var(--blue);border-color:color-mix(in oklch,var(--blue) 55%,transparent)}
/* verified vs directional grade */
.src.dir{color:var(--paper-3);border-color:var(--border-strong)}
.slide.ink .src.dir{color:var(--ink-3t);border-color:color-mix(in oklch,var(--ink-1) 22%,transparent)}

/* corner badge: is this slide answering the case, or my extension? */
.badge{position:absolute;top:84px;right:104px;font-family:var(--font-mono);font-size:12px;
  letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--border-strong);
  padding:6px 13px;color:var(--paper-2)}
.badge.ext{color:var(--blue-deep);border-color:var(--blue)}
.slide.ink .badge{color:var(--ink-2t);border-color:color-mix(in oklch,var(--ink-1) 24%,transparent)}
.slide.ink .badge.ext{color:var(--blue);border-color:color-mix(in oklch,var(--blue) 60%,transparent)}

/* sources rail pinned to slide foot */
.srcrail{position:absolute;left:104px;right:104px;bottom:50px;display:flex;gap:10px 16px;flex-wrap:wrap;
  align-items:center;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:var(--paper-3);
  border-top:1px solid var(--border);padding-top:13px}
.srcrail .lab{color:var(--paper-2);letter-spacing:.16em}

/* labelled tier row (priority / cost ladders on deliverable slides) */
.tier{display:flex;align-items:baseline;gap:20px;padding:13px 0;border-bottom:1px solid var(--border)}
.tier .k{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  min-width:128px;color:var(--blue-deep);flex:none}
.tier .k.mute{color:var(--paper-3)}
.tier .v{font-size:17px;color:var(--paper-2)}
.toc{display:flex;flex-direction:column;gap:11px;font-family:var(--font-mono);font-size:15px;letter-spacing:.02em}
.toc .n{color:var(--blue-deep);font-weight:700;margin-right:12px}
.toc .now{color:var(--paper-1)}
