/* ============================================================
   DOCS HEALTH × AAFES — Business Review Deck
   Fixed 16:9 (1920×1080) slide system · Apple system fonts
   ============================================================ */

:root {
  /* Brand */
  --navy-950:#060E24; --navy-900:#0A1430; --navy-850:#0C1838; --navy-800:#0E1E45;
  --navy-700:#14254F; --navy:#16285C; --navy-600:#1E3A77; --navy-500:#2B4D94;
  --orange:#EE5A24; --orange-600:#D94A18; --orange-300:#F4A07E; --orange-tint:#FCEDE6;
  --blue:#2E5BD8; --blue-300:#7FA6FF; --green:#16A34A; --green-300:#7BD9A0;

  --paper:#F5F4EF; --paper-2:#FBFAF7; --card:#FFFFFF;
  --ink:#0A1430; --ink-2:#2B3247; --muted:#5C6677; --muted-2:#8B94A4;
  --line:#E4E2DA; --line-dk:rgba(255,255,255,.12);

  /* Apple system fonts */
  --font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --mono:"SF Mono", ui-monospace, "SFMono-Regular", Menlo, Monaco, Consolas, monospace;

  /* Safe-area gutters on the 1920×1080 canvas */
  --pad-x:120px; --pad-y:88px;

  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}

* { box-sizing:border-box; margin:0; padding:0; }
html,body { height:100%; }
body { background:#000; font-family:var(--font); color:var(--ink); -webkit-font-smoothing:antialiased; overflow:hidden; }
img { max-width:100%; display:block; }
::selection { background:var(--orange); color:#fff; }
deck-stage:not(:defined){ visibility:hidden; }
deck-stage { display:block; }

/* ---------------- Slide base ---------------- */
.slide {
  font-size:16px; /* base for rems-ish; we mostly use px */
  color:var(--ink);
  overflow:hidden;
  position:relative;
}
.slide__bg { position:absolute; inset:0; overflow:hidden; }
.slide__inner {
  position:absolute; inset:0;
  padding:var(--pad-y) var(--pad-x);
  display:flex; flex-direction:column;
}
.slide--dark  { background:var(--navy-950); color:#fff; }
.slide--navy  { background:var(--navy-900); color:#fff; }
.slide--light { background:var(--paper); color:var(--ink); }
.slide--paper { background:var(--paper-2); color:var(--ink); }
.slide--white { background:#fff; color:var(--ink); }

/* ---------------- Header / footer chrome (inside canvas) ---------------- */
.shead {
  display:flex; align-items:center; justify-content:space-between;
  position:absolute; top:54px; left:var(--pad-x); right:var(--pad-x);
  z-index:5;
}
.brand { display:flex; align-items:center; gap:16px; }
.brand .logo { font-weight:800; letter-spacing:-.01em; font-size:24px; }
.brand .logo b { color:var(--orange); }
.brand .x { color:var(--muted-2); font-size:18px; font-weight:500; }
.slide--light .brand .logo, .slide--paper .brand .logo, .slide--white .brand .logo { color:var(--navy); }
.slide--light .brand .logo b, .slide--paper .brand .logo b, .slide--white .brand .logo b { color:var(--orange); }
.shead .meta { font-family:var(--mono); font-size:15px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted-2); }
.slide--dark .shead .meta, .slide--navy .shead .meta { color:rgba(255,255,255,.45); }

.sfoot {
  position:absolute; left:var(--pad-x); right:var(--pad-x); bottom:50px; z-index:5;
  display:flex; align-items:center; justify-content:space-between;
  font-family:var(--mono); font-size:14px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted-2);
}
.slide--dark .sfoot, .slide--navy .sfoot { color:rgba(255,255,255,.4); }
.sfoot .chapref { color:var(--orange); }

.slide__body { position:relative; z-index:4; flex:1; display:flex; flex-direction:column; justify-content:center; min-height:0; }

/* ---------------- Type ---------------- */
.kicker {
  font-family:var(--mono); font-size:19px; letter-spacing:.16em; text-transform:uppercase; font-weight:700;
  color:var(--orange); display:inline-flex; align-items:center; gap:16px;
}
.kicker::before { content:""; width:46px; height:2px; background:var(--orange); display:inline-block; }
.kicker--ghost { color:var(--orange-300); }
.kicker--navy { color:var(--navy-600); }
.kicker--navy::before { background:var(--navy-600); }
.kicker.nolead::before { display:none; }

.eyebrow { font-family:var(--mono); font-size:18px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-2); font-weight:700; }
.slide--dark .eyebrow, .slide--navy .eyebrow { color:rgba(255,255,255,.5); }
.eyebrow--navy { color:var(--navy-600); }
.eyebrow--orange { color:var(--orange); }

h1,h2,h3 { font-weight:800; line-height:1.0; letter-spacing:-.025em; }
.h-hero { font-size:172px; font-weight:800; line-height:.94; letter-spacing:-.04em; }
.h-sec  { font-size:104px; font-weight:800; letter-spacing:-.035em; line-height:.98; }
.h-sub  { font-size:62px; font-weight:800; letter-spacing:-.03em; line-height:1.02; }
.h-card { font-size:34px; font-weight:700; letter-spacing:-.02em; }
.lead   { font-size:30px; line-height:1.45; color:var(--muted); font-weight:400; max-width:60ch; }
.slide--dark .lead, .slide--navy .lead { color:rgba(255,255,255,.66); }
.lead b, .lead strong { color:inherit; font-weight:700; }
.slide--dark .lead b { color:#fff; }

.tnum { font-variant-numeric:tabular-nums; font-feature-settings:"tnum" 1; }
.txt-orange{color:var(--orange);} .txt-navy{color:var(--navy);} .txt-green{color:var(--green);} .txt-blue{color:var(--blue);}
.txt-white{color:#fff;} .txt-muted{color:var(--muted);}

/* ---------------- Section head block ---------------- */
.sec-head { margin-bottom:24px; }
.sec-head .h-sub { margin-top:22px; }

/* ---------------- Cards / grids ---------------- */
.grid { display:grid; gap:28px; }
.g2{grid-template-columns:repeat(2,1fr);} .g3{grid-template-columns:repeat(3,1fr);} .g4{grid-template-columns:repeat(4,1fr);}
.g5{grid-template-columns:repeat(5,1fr);}
.stretch { align-items:stretch; }

.card {
  background:var(--card); border:1px solid var(--line); border-radius:24px;
  padding:38px; position:relative; overflow:hidden;
  display:flex; flex-direction:column;
}
.slide--dark .card, .slide--navy .card { background:rgba(255,255,255,.045); border-color:var(--line-dk); color:#fff; }
.card--navy { background:var(--navy)!important; border:none!important; color:#fff!important; }
.card--orange { background:var(--orange)!important; border:none!important; color:#fff!important; }
.card--tint { background:var(--orange-tint); border-color:#F3D9CC; }
.card--feature { background:linear-gradient(155deg,var(--navy) 0%,var(--navy-900) 100%)!important; border:none!important; color:#fff!important; }
.card--glass { background:rgba(255,255,255,.05); border:1px solid var(--line-dk); }

/* stat lockup */
.stat { display:flex; flex-direction:column; gap:10px; }
.stat .num { font-weight:800; font-size:78px; letter-spacing:-.035em; line-height:.92; }
.stat .lbl { font-family:var(--mono); font-size:18px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.slide--dark .stat .lbl, .card--navy .stat .lbl, .card--feature .stat .lbl, .card--orange .stat .lbl { color:rgba(255,255,255,.6); }
.stat .sub { font-size:18px; color:var(--muted); }

.delta { display:inline-flex; align-items:center; gap:8px; font-weight:700; font-family:var(--mono); font-size:19px; }
.delta.up { color:var(--green); }

.pill { display:inline-flex; align-items:center; gap:9px; padding:9px 18px; border-radius:999px; font-family:var(--mono); font-size:15px; letter-spacing:.08em; text-transform:uppercase; font-weight:600; }
.pill--orange { background:var(--orange-tint); color:var(--orange-600); }
.pill--navy { background:rgba(22,40,92,.08); color:var(--navy); }
.pill--ghost { background:rgba(255,255,255,.08); color:#fff; border:1px solid var(--line-dk); }
.pill--green { background:rgba(22,163,74,.13); color:var(--green); }
.pill--prop { background:rgba(46,91,216,.13); color:var(--blue); }

/* icon chip */
.ic {
  width:74px; height:74px; border-radius:20px; flex:none;
  display:flex; align-items:center; justify-content:center;
  background:var(--orange-tint); color:var(--orange);
}
.slide--dark .ic, .slide--navy .ic { background:rgba(238,90,36,.16); }
.ic svg { width:40px; height:40px; }
.ic--navy { background:rgba(22,40,92,.08); color:var(--navy); }
.slide--dark .ic--navy, .slide--navy .ic--navy { background:rgba(127,166,255,.14); color:var(--blue-300); }
.ic--sm { width:54px; height:54px; border-radius:15px; }
.ic--sm svg { width:28px; height:28px; }

/* checks */
.checks { list-style:none; display:flex; flex-direction:column; gap:26px; }
.checks li { display:flex; gap:20px; align-items:flex-start; }
.checks .ck { flex:none; width:34px; height:34px; border-radius:50%; border:2px solid var(--orange); color:var(--orange); display:flex; align-items:center; justify-content:center; margin-top:2px; }
.checks .ck svg { width:17px; height:17px; }
.checks .ct strong { display:block; font-weight:700; font-size:23px; margin-bottom:6px; letter-spacing:-.01em; }
.checks .ct span { color:var(--muted); font-size:20px; line-height:1.42; display:block; }
.slide--dark .checks .ct span, .slide--navy .checks .ct span { color:rgba(255,255,255,.62); }

/* service tags */
.tag-svc { display:inline-block; padding:5px 13px; border-radius:8px; background:rgba(22,40,92,.07); color:var(--navy); font-family:var(--mono); font-size:15px; font-weight:600; }

/* ---------------- Table ---------------- */
.dtable { width:100%; border-collapse:collapse; font-size:21px; }
.dtable th { background:var(--navy); color:#fff; text-align:left; padding:18px 26px; font-family:var(--mono); font-size:15px; letter-spacing:.1em; text-transform:uppercase; font-weight:600; }
.dtable th.r, .dtable td.r { text-align:right; }
.dtable td { padding:14px 26px; border-bottom:1px solid var(--line); color:var(--ink-2); }
.dtable tr:nth-child(even) td { background:#FBFAF6; }
.dtable .nm { font-weight:600; color:var(--ink); }
.dtable .chair { font-weight:800; color:var(--navy); }

/* ---------------- Scorecard mini ---------------- */
.score { display:grid; grid-template-columns:1fr 1fr; gap:0 40px; }
.score .row { display:flex; justify-content:space-between; align-items:baseline; padding:15px 0; border-bottom:1px dashed var(--line); }
.score .row .k { font-size:19px; color:var(--muted); }
.score .row .v { font-weight:800; font-variant-numeric:tabular-nums; font-size:24px; }

/* ---------------- Charts ---------------- */
.bars { display:flex; align-items:flex-end; gap:42px; flex:1; min-height:0; }
.bar { flex:1; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; gap:18px; height:100%; }
.bar .col { width:100%; max-width:150px; border-radius:16px 16px 0 0; height:0; align-self:center; transition:height 1.2s var(--ease-out); }
.bar .vlabel { font-weight:800; font-size:34px; opacity:0; transform:translateY(8px); transition:opacity .5s ease, transform .5s ease; }
.bar .xlabel { font-family:var(--mono); font-size:19px; font-weight:700; color:var(--ink-2); letter-spacing:.04em; text-align:center; line-height:1.4; }
.slide--dark .bar .xlabel, .slide--navy .bar .xlabel { color:rgba(255,255,255,.55); }

.linechart { width:100%; height:100%; overflow:visible; }
.linechart .gline { stroke:var(--line); stroke-width:1.2; stroke-dasharray:3 6; opacity:.7; }
.slide--dark .linechart .gline { stroke:rgba(255,255,255,.1); }
.draw { stroke-dasharray:var(--len); stroke-dashoffset:var(--len); }
.is-live .draw { transition:stroke-dashoffset 1.7s var(--ease-out); stroke-dashoffset:0; }
.area { opacity:0; }
.is-live .area { transition:opacity 1.1s ease .5s; opacity:1; }
.dotc { opacity:0; }
.is-live .dotc { transition:opacity .4s ease 1.4s; opacity:1; }
.endpulse { opacity:0; transform-box:fill-box; transform-origin:center; }
.is-live .endpulse { animation:endPulse 2.2s ease-out 1.7s infinite; }
@keyframes endPulse { 0%{ transform:scale(1); opacity:.6; } 70%{ opacity:0; } 100%{ transform:scale(3.6); opacity:0; } }
.is-static .endpulse { display:none!important; }

.donut { transform:rotate(-90deg); }
.donut .track { stroke:var(--line); }
.slide--dark .donut .track { stroke:rgba(255,255,255,.13); }
.donut .val { stroke:var(--orange); stroke-linecap:round; stroke-dasharray:var(--circ); stroke-dashoffset:var(--circ); }
.is-live .donut .val { transition:stroke-dashoffset 1.5s var(--ease-out) .2s; stroke-dashoffset:var(--target); }

.meter { height:14px; border-radius:999px; background:var(--line); overflow:hidden; }
.slide--dark .meter { background:rgba(255,255,255,.1); }
.meter > span { display:block; height:100%; width:0; border-radius:999px; background:linear-gradient(90deg,var(--orange),#ff8a5b); transition:width 1.3s var(--ease-out); }

/* ---------------- Process flow ---------------- */
.flow { display:grid; grid-template-columns:repeat(5,1fr); gap:22px; }
.flow .step { position:relative; }
.flow .step .stepnum { width:46px; height:46px; border-radius:50%; background:#fff; border:2px solid var(--orange); color:var(--orange); display:flex; align-items:center; justify-content:center; font-weight:800; font-size:22px; margin-bottom:18px; }
.flow .step .chev { background:var(--orange); color:#fff; font-weight:800; font-size:21px; padding:16px 20px; border-radius:12px; letter-spacing:-.01em; }
.flow .step:nth-child(even) .chev { background:var(--navy); }
.flow .step ul { list-style:none; margin-top:18px; display:flex; flex-direction:column; gap:12px; }
.flow .step li { font-size:18px; color:var(--muted); padding-left:18px; position:relative; line-height:1.35; }
.flow .step li::before { content:""; position:absolute; left:0; top:9px; width:7px; height:7px; border-radius:50%; background:var(--orange); }

/* ---------------- Chapter divider ---------------- */
.chapter .slide__body { justify-content:center; }
.chap-num {
  position:absolute; right:var(--pad-x); top:50%; transform:translateY(-50%);
  font-weight:800; font-size:560px; line-height:.8; letter-spacing:-.05em;
  color:transparent; -webkit-text-stroke:2px rgba(255,255,255,.13); z-index:2; pointer-events:none;
  white-space:nowrap;
}
.chapter .chap-content { max-width:1180px; position:relative; z-index:3; }
.chapter .chap-content .h-sec { margin:26px 0 30px; }

/* big number lockup */
.bignum { font-weight:800; font-size:150px; letter-spacing:-.045em; line-height:.86; }

/* divider rule */
.rule { height:1px; background:var(--line); border:none; }
.slide--dark .rule, .slide--navy .rule { background:rgba(255,255,255,.1); }

.note { font-family:var(--mono); font-size:16px; font-weight:600; letter-spacing:.03em; color:var(--muted); }
.metarow { display:flex; gap:64px; }
.metarow .n { font-weight:800; font-size:48px; letter-spacing:-.02em; }
.metarow .l { font-family:var(--mono); font-size:20px; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.58); margin-top:8px; font-weight:600; }

/* helpers */
.flex{display:flex;} .col{flex-direction:column;} .between{justify-content:space-between;} .center{align-items:center;}
.wrap{flex-wrap:wrap;} .gap-s{gap:14px;} .gap-m{gap:28px;} .gap-l{gap:56px;} .grow{flex:1;}
.mt-s{margin-top:14px;} .mt-m{margin-top:28px;} .mt-l{margin-top:48px;}
.mb-s{margin-bottom:14px;} .mb-m{margin-bottom:28px;} .mb-l{margin-bottom:48px;}

/* =========================================================
   ENTRANCE ANIMATIONS — replay on each slide entry
   Elements start hidden; ancestor .is-live plays them in.
   ========================================================= */
.an { opacity:0; transform:translateY(40px); }
.an-l { opacity:0; transform:translateX(-50px); }
.an-r { opacity:0; transform:translateX(50px); }
.an-s { opacity:0; transform:scale(.92); }
.an-up { opacity:0; transform:translateY(70px); }
.is-live .an, .is-live .an-l, .is-live .an-r, .is-live .an-s, .is-live .an-up {
  opacity:1; transform:none;
  transition:opacity .85s var(--ease-out), transform .85s var(--ease-out);
}
/* stagger via inline --d delay set in markup or by JS */
.is-live [style*="--d"] { transition-delay:var(--d); }

@media (prefers-reduced-motion:reduce){
  .an,.an-l,.an-r,.an-s,.an-up{opacity:1!important;transform:none!important;}
  .bar .col,.draw,.area,.dotc,.donut .val,.meter>span{transition:none!important;}
}

/* static mode — render final state when page is hidden / exported / printed */
.is-static .an, .is-static .an-l, .is-static .an-r, .is-static .an-s, .is-static .an-up { opacity:1!important; transform:none!important; transition:none!important; }
.is-static .draw { stroke-dashoffset:0!important; transition:none!important; }
.is-static .area, .is-static .dotc { opacity:1!important; transition:none!important; }
.is-static .donut .val { stroke-dashoffset:var(--target)!important; transition:none!important; }
.is-static .bar .vlabel { opacity:1!important; transform:none!important; transition:none!important; }
.is-static .usmap .mappin { opacity:1!important; transition:none!important; }
.is-static .usmap .mappin .pdot { transform:scale(1)!important; transition:none!important; }

/* =========================================================
   FIXED PRESENTATION CHROME (outside the scaled canvas)
   ========================================================= */
.pchrome { position:fixed; z-index:10000; font-family:var(--mono); color:#fff; }
.pbar { top:0; left:0; right:0; height:4px; background:rgba(255,255,255,.08); }
.pbar > span { display:block; height:100%; width:0; background:linear-gradient(90deg,var(--orange),#ff8a5b); transition:width .4s var(--ease); }
.pcount { left:26px; bottom:22px; font-size:14px; letter-spacing:.18em; color:rgba(255,255,255,.7); display:flex; align-items:center; gap:10px; }
.pcount b { color:#fff; font-weight:700; }
.pctrl { right:24px; bottom:18px; display:flex; gap:10px; align-items:center; }
.pctrl button {
  width:42px; height:42px; border-radius:11px; border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.06); color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:background .2s, transform .2s; backdrop-filter:blur(8px);
}
.pctrl button:hover { background:rgba(255,255,255,.14); transform:translateY(-1px); }
.pctrl button svg { width:18px; height:18px; }
.pcount, .pctrl { opacity:.85; transition:opacity .4s; }
.idle .pcount, .idle .pctrl { opacity:0; }

/* =========================================================
   ROUND 2 — life, transitions, new components
   ========================================================= */

/* slide intro crossfade (replays each entry) + ambient bg drift */
.slide.is-live .slide__inner { animation: slideIntro .55s var(--ease-out) both; }
@keyframes slideIntro { from { opacity:0; } to { opacity:1; } }
/* Overscan the full-bleed gradient past the slide edges (slide clips with
   overflow:hidden) so the GPU-composited bg layer never leaves a sub-pixel
   seam against the darker base color at fractional canvas scale / Retina. */
.slide--dark .slide__bg, .slide--navy .slide__bg { transform-origin:center; inset:-3px; backface-visibility:hidden; }
.slide.is-live.slide--dark .slide__bg, .slide.is-live.slide--navy .slide__bg { animation: bgDrift 18s ease-in-out infinite alternate; }
/* keep ≥1.03 so the layer is always overscanned, even at the start frame */
@keyframes bgDrift { from { transform:scale(1.03) translate(0,0); } to { transform:scale(1.08) translate(-1.2%,1%); } }
.chapter.is-live .chap-num { animation: numDrift 20s ease-in-out infinite alternate; }
@keyframes numDrift { from { transform:translateY(-50%) translateX(0); } to { transform:translateY(-50%) translateX(-2.2%); } }
.is-static .slide__inner, .is-static .slide__bg, .is-static .chap-num { animation:none!important; }

/* extra entrance variants */
.an-blur { opacity:0; filter:blur(8px); transform:translateY(24px); }
.is-live .an-blur { opacity:1; filter:blur(0); transform:none; transition:opacity .8s var(--ease-out), filter .8s var(--ease-out), transform .8s var(--ease-out); }
.is-static .an-blur { opacity:1!important; filter:none!important; transform:none!important; transition:none!important; }

/* map frame (cream slide) */
.mapframe { position:relative; flex:1; min-height:0; border-radius:26px; overflow:hidden; border:1px solid var(--line); background:#FBFAF7; }

/* lift-bars: before→after evidence */
.lift { display:flex; flex-direction:column; gap:18px; }
.lift .lrow { display:flex; align-items:center; gap:20px; }
.lift .lrow .yr { font-family:var(--mono); font-weight:700; font-size:18px; color:var(--muted); width:84px; }
.lift .lrow .ltrack { flex:1; height:30px; border-radius:999px; background:rgba(22,40,92,.07); overflow:hidden; }
.slide--dark .lift .lrow .ltrack, .slide--navy .lift .lrow .ltrack { background:rgba(255,255,255,.08); }
.lift .lrow .lfill { height:100%; width:0; border-radius:999px; transition:width 1.3s var(--ease-out); }
.is-static .lift .lrow .lfill { transition:none!important; }
.lift .lrow .lval { font-weight:800; font-size:30px; width:190px; text-align:right; letter-spacing:-.02em; }

/* trend connector for ascending bars */
.bars.trend { position:relative; }

/* AI technology visual */
.aiframe { position:relative; border-radius:20px; overflow:hidden; border:1px solid rgba(127,166,255,.25); box-shadow:0 24px 60px rgba(0,0,0,.45), 0 0 0 1px rgba(127,166,255,.12); }
.aiframe img { display:block; width:100%; height:100%; object-fit:cover; }
.aiframe .scan { position:absolute; left:0; right:0; top:-160px; height:160px; background:linear-gradient(180deg,transparent,rgba(127,166,255,.30),transparent); pointer-events:none; }
.is-live .aiframe .scan { animation:scanMove 3.6s linear infinite; }
.is-static .aiframe .scan { display:none; }
@keyframes scanMove { 0%{top:-160px} 100%{top:100%} }
.aiframe .glow { position:absolute; inset:0; box-shadow:inset 0 0 120px rgba(46,91,216,.18); pointer-events:none; }
.aiframe .tag { position:absolute; top:16px; left:16px; font-family:var(--mono); font-size:14px; font-weight:700; letter-spacing:.14em; color:#7FA6FF; background:rgba(8,16,40,.6); padding:6px 12px; border-radius:8px; backdrop-filter:blur(6px); }

/* scorecard — even distribution + polish */
.scard { display:flex; flex-direction:column; justify-content:space-between; }
.srows { display:flex; flex-direction:column; gap:0; margin:6px 0; }
.srow { display:flex; align-items:baseline; justify-content:space-between; padding:14px 0; border-bottom:1px solid var(--line); }
.srow:last-child { border-bottom:none; }
.srow .k { font-family:var(--font); font-size:20px; color:var(--muted); }
.srow .v { font-weight:800; font-size:26px; font-variant-numeric:tabular-nums; letter-spacing:-.01em; }
.scard .prod { background:var(--orange-tint); border-radius:16px; padding:18px 22px; display:flex; align-items:center; justify-content:space-between; }
.scard .prod .pl { font-family:var(--mono); font-weight:700; font-size:15px; letter-spacing:.1em; text-transform:uppercase; color:var(--orange-600); }
.scard .prod .pv { font-weight:800; font-size:40px; color:var(--orange); letter-spacing:-.03em; }

/* flow connector + bigger steps */
.flow { position:relative; }
.flow::before { content:""; position:absolute; top:23px; left:8%; right:8%; height:2px; background:repeating-linear-gradient(90deg,var(--orange) 0 8px,transparent 8px 16px); opacity:.5; z-index:0; }
.flow .step { position:relative; z-index:1; }
.flow .step .stepnum { background:var(--paper-2); }

/* callout (asks / emphasis) */
.callout { border-left:4px solid var(--orange); background:rgba(238,90,36,.07); border-radius:0 16px 16px 0; padding:22px 28px; }
.slide--dark .callout, .slide--navy .callout { background:rgba(238,90,36,.12); }
.callout .cl-l { font-family:var(--mono); font-weight:700; font-size:15px; letter-spacing:.1em; text-transform:uppercase; color:var(--orange); margin-bottom:8px; }

/* big demand number (expansion) */
.demand { font-weight:800; font-size:300px; line-height:.8; letter-spacing:-.05em; color:var(--orange); }

/* next-step detail hero number */
.ns-num { font-weight:800; font-size:200px; line-height:.82; letter-spacing:-.05em; -webkit-text-stroke:2px var(--orange); color:transparent; }
.slide--dark .ns-num { -webkit-text-stroke:2px rgba(238,90,36,.6); }

/* pop-in for key numbers */
.pop { opacity:0; transform:scale(.6); }
.is-live .pop { opacity:1; transform:none; transition:opacity .5s var(--ease-out), transform .55s cubic-bezier(.34,1.56,.64,1); }
.is-static .pop { opacity:1!important; transform:none!important; transition:none!important; }

/* tidy two-col detail list */
.kv { display:flex; flex-direction:column; gap:14px; }
.kv .kvi { display:flex; gap:16px; align-items:flex-start; }
.kv .kvi .ck { flex:none; }

/* ============================================================
   PRECISION v2 — elevated material, life, editorial system
   ============================================================ */
:root{ --shadow-sm:0 1px 2px rgba(12,24,56,.05); --shadow-md:0 2px 6px rgba(12,24,56,.06),0 18px 40px -22px rgba(12,24,56,.28); --shadow-lg:0 30px 70px -30px rgba(12,24,56,.4); }

/* material cards on light grounds */
.slide--light .card, .slide--paper .card, .slide--white .card{
  background:linear-gradient(180deg,#FFFFFF 0%,#FCFBF7 100%);
  box-shadow:var(--shadow-md);
  transition:transform .55s var(--ease-out), box-shadow .55s var(--ease-out);
}
.slide--light .card::after, .slide--paper .card::after, .slide--white .card::after{
  content:""; position:absolute; left:0; right:0; top:0; height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.9),transparent);
}
.card--feature{ box-shadow:var(--shadow-lg)!important; }

/* dark/navy cards: refined glass */
.slide--dark .card, .slide--navy .card{
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.03));
  box-shadow:0 2px 6px rgba(0,0,0,.2),0 24px 50px -28px rgba(0,0,0,.6);
}

/* signature corner index */
.card .cidx{ position:absolute; top:24px; right:26px; font-family:var(--mono); font-size:15px; font-weight:700; letter-spacing:.14em; color:var(--muted-2); opacity:.7; }
.card--navy .cidx, .card--feature .cidx, .slide--dark .card .cidx, .slide--navy .card .cidx{ color:rgba(255,255,255,.4); }

/* icon chip — refined: soft gradient + ring */
.ic{ background:linear-gradient(180deg,#FFEDE4,#FCDDCD); box-shadow:inset 0 0 0 1px rgba(238,90,36,.14), 0 6px 14px -8px rgba(238,90,36,.5); }
.ic--navy{ background:linear-gradient(180deg,#EAEFF9,#DCE4F5)!important; box-shadow:inset 0 0 0 1px rgba(22,40,92,.12),0 6px 14px -8px rgba(22,40,92,.4)!important; }

/* ---- editorial numbered rows (Services etc.) ---- */
.elist{ display:grid; gap:0; }
.erow{ display:flex; align-items:center; gap:28px; padding:21px 4px; border-bottom:1px solid var(--line); position:relative; }
.erow:last-child{ border-bottom:none; }
.erow .en{ font-family:var(--mono); font-size:21px; font-weight:700; color:var(--orange); letter-spacing:.04em; width:46px; flex:none; }
.erow .ebody{ flex:1; min-width:0; }
.erow .etitle{ font-size:30px; font-weight:700; letter-spacing:-.02em; line-height:1.05; }
.erow .edesc{ font-size:19px; color:var(--muted); margin-top:3px; }
.erow .etick{ width:34px; height:34px; border-radius:50%; flex:none; display:flex; align-items:center; justify-content:center; background:var(--orange-tint); color:var(--orange); box-shadow:inset 0 0 0 1px rgba(238,90,36,.18); }
.erow .etick svg{ width:17px; height:17px; }
.is-live .erow{ animation:erowIn .6s var(--ease-out) both; animation-delay:var(--ed,0ms); }
.is-static .erow{ animation:none!important; }
@keyframes erowIn{ from{opacity:0; transform:translateX(-14px);} to{opacity:1; transform:none;} }

/* refined stat lockup with accent baseline */
.statc{ display:flex; flex-direction:column; justify-content:space-between; }
.statc .sv{ font-weight:800; letter-spacing:-.04em; line-height:.9; font-variant-numeric:tabular-nums; }
.statc .skicker{ font-family:var(--mono); font-size:16px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--muted-2); }
.statc .baseaccent{ height:5px; border-radius:3px; background:linear-gradient(90deg,var(--orange),#ffb38f); margin-top:18px; }
.card--navy .statc .skicker, .card--feature .statc .skicker{ color:rgba(255,255,255,.55); }

/* animated mix / proportion bar */
.mixbar{ display:flex; width:100%; height:84px; border-radius:16px; overflow:hidden; background:#EEEBE3; box-shadow:inset 0 0 0 1px var(--line); }
.mixbar .lfill{ height:100%; width:0; display:flex; align-items:center; gap:12px; padding:0 24px; color:#fff; white-space:nowrap; overflow:hidden; transition:width 1.1s var(--ease-out); }
.mixbar .lfill .ml{ font-family:var(--mono); font-size:15px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; opacity:.92; }
.mixbar .lfill .mv{ font-weight:800; font-size:24px; letter-spacing:-.02em; }

/* ============================================================
   KPI CARDS — reference-grade (icon chip · number · delta pill · sparkline)
   ============================================================ */
.kpi{ background:#fff; border:1px solid var(--line); border-radius:22px; padding:30px 32px; display:flex; flex-direction:column; box-shadow:var(--shadow-md); position:relative; overflow:hidden; }
.kpi .kicon{ width:52px; height:52px; border-radius:14px; display:flex; align-items:center; justify-content:center; background:linear-gradient(180deg,#FFEDE4,#FCDDCD); color:var(--orange); box-shadow:inset 0 0 0 1px rgba(238,90,36,.14); margin-bottom:22px; }
.kpi .kicon.navy{ background:linear-gradient(180deg,#EAEFF9,#DCE4F5); color:var(--navy); box-shadow:inset 0 0 0 1px rgba(22,40,92,.12); }
.kpi .kicon svg{ width:27px; height:27px; }
.kpi .klabel{ font-size:23px; font-weight:600; color:var(--ink-2); letter-spacing:-.01em; }
.kpi .kval{ font-size:58px; font-weight:800; letter-spacing:-.035em; line-height:.95; margin-top:10px; color:var(--ink); font-variant-numeric:tabular-nums; }
.kpi .kfoot{ display:flex; align-items:center; gap:14px; margin-top:auto; padding-top:20px; }
.kpi .kmeta{ font-size:18px; color:var(--muted-2); font-weight:500; }
.kpi .spark{ width:100%; height:54px; display:block; margin-top:18px; overflow:visible; }

.pillbadge{ display:inline-flex; align-items:center; gap:7px; padding:7px 15px; border-radius:999px; font-weight:800; font-size:18px; font-variant-numeric:tabular-nums; letter-spacing:-.01em; }
.pillbadge.up{ background:rgba(22,163,74,.12); color:var(--green); }
.pillbadge.down{ background:rgba(229,72,77,.13); color:#E5484D; }
.pillbadge .ar{ font-size:15px; }

/* ============================================================
   DASHBOARD LANGUAGE — warm off-white canvas, white panels
   ============================================================ */
:root{ --dash:#F4F2EC; --dash-line:#ECE9E0; }
.slide--dash{ background:var(--dash); color:var(--ink); }
.slide--dash .card, .slide--dash .kpi{ background:#fff; border:1px solid var(--dash-line); }

/* panel header (title + control chip) */
.phead{ display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; flex:none; }
.phead h4{ font-size:27px; font-weight:700; letter-spacing:-.02em; color:var(--ink); }
.ctrlchip{ font-family:var(--font); font-size:17px; font-weight:600; color:var(--ink-2); background:var(--paper-2); border:1px solid var(--line); border-radius:12px; padding:9px 15px; display:inline-flex; gap:10px; align-items:center; }
.ctrlchip svg{ width:15px; height:15px; opacity:.6; }

/* clean dashboard table */
.dtbl{ width:100%; border-collapse:collapse; }
.dtbl th{ text-align:left; font-family:var(--font); font-size:17px; font-weight:600; color:var(--muted-2); padding:0 8px 16px; border-bottom:1px solid var(--line); }
.dtbl th.r, .dtbl td.r{ text-align:right; }
.dtbl td{ padding:17px 8px; border-bottom:1px solid var(--line); font-size:21px; color:var(--ink); font-weight:500; }
.dtbl tr:last-child td{ border-bottom:none; }
.dtbl .nm{ font-weight:700; }
.st-active{ color:var(--green); font-weight:700; }
.st-pending{ color:var(--blue); font-weight:700; }
.st-expired{ color:#E5484D; font-weight:700; }
.vpill{ display:inline-block; background:rgba(22,40,92,.06); color:var(--navy); border-radius:999px; padding:7px 18px; font-size:16px; font-weight:600; }

/* legend dots */
.leg{ display:flex; gap:22px; align-items:center; flex-wrap:wrap; }
.leg span{ display:inline-flex; align-items:center; gap:9px; font-size:18px; font-weight:600; color:var(--ink-2); }
.leg span i{ width:13px; height:13px; border-radius:4px; display:inline-block; }

/* dashboard bar chart (highlight + tooltip, Panze-style) */
.dbars{ display:flex; align-items:flex-end; justify-content:space-between; gap:26px; flex:1; min-height:0; position:relative; }
.dbar{ flex:1; display:flex; flex-direction:column; align-items:center; gap:16px; height:100%; justify-content:flex-end; position:relative; }
.dbar .dcol{ width:100%; max-width:104px; border-radius:16px; height:0; background:rgba(238,90,36,.12); transition:height 1.1s var(--ease-out); align-self:center; }
.dbar.active .dcol{ background:linear-gradient(180deg,#ff8a5d,#EE5A24); box-shadow:0 14px 30px -10px rgba(238,90,36,.5); }
.dbar .dx{ font-family:var(--font); font-size:20px; font-weight:600; color:var(--muted); }
.dbar.active .dx{ color:var(--ink); font-weight:700; }
.dtip{ position:absolute; top:-6px; left:50%; transform:translate(-50%,-100%); background:#0E1E45; color:#fff; border-radius:14px; padding:13px 18px; white-space:nowrap; box-shadow:0 16px 36px -14px rgba(0,0,0,.5); opacity:0; transition:opacity .4s ease .9s; }
.is-live .dbar.active .dtip{ opacity:1; }
.is-static .dbar.active .dtip{ opacity:1; transition:none; }
.dtip .t1{ font-size:18px; font-weight:600; color:rgba(255,255,255,.8); }
.dtip .t2{ font-size:18px; font-weight:700; margin-top:3px; }
.dtip .t2 b{ color:var(--green-300); }
.dtip::after{ content:""; position:absolute; left:50%; bottom:-7px; transform:translateX(-50%) rotate(45deg); width:14px; height:14px; background:#0E1E45; border-radius:3px; }
