/* ================= DECK SHELL ================= */
html,body{margin:0;height:100%;background:#0B0D11;}
*{box-sizing:border-box;}
#deck{position:relative;width:100%;min-height:100vh;}

#deck.present .wrap{position:fixed;inset:0;display:none;align-items:center;justify-content:center;}
#deck.present .wrap.cur{display:flex;}
#deck.overview{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:16px;padding:58px 18px 24px;background:#0B0D11;}
#deck.overview .wrap{position:relative;aspect-ratio:16/9;overflow:hidden;cursor:pointer;
  outline:2px solid transparent;border-radius:3px;}
#deck.overview .wrap:hover{outline-color:#5A7BE8;}
#deck.overview .wrap.cur{outline-color:#F0A020;}
#deck.overview .wrap::after{content:attr(data-n);position:absolute;left:7px;bottom:6px;
  font:600 11px "IBM Plex Mono",monospace;color:#fff;background:rgba(17,21,28,.82);
  padding:2px 7px;border-radius:2px;letter-spacing:.06em;}
.slide{width:1280px;height:720px;transform-origin:top left;position:absolute;top:0;left:0;}
#deck.present .slide{position:relative;}

#hud{position:fixed;left:0;right:0;bottom:0;height:34px;display:flex;align-items:center;
  gap:16px;padding:0 16px;background:rgba(11,13,17,.92);z-index:40;
  font:500 11.5px/1 "IBM Plex Mono",monospace;letter-spacing:.09em;color:#7E8899;}
#hud b{color:#EDEFF2;font-weight:600;}
#hud .spacer{flex:1;}
#hud button{background:none;border:1px solid #2A3140;color:#9AA4B4;border-radius:3px;
  padding:5px 10px;font:500 11px "IBM Plex Mono",monospace;letter-spacing:.09em;cursor:pointer;}
#hud button:hover{border-color:#5A7BE8;color:#EDEFF2;}
#hud button:focus-visible{outline:2px solid #F0A020;outline-offset:2px;}
#bar{position:fixed;left:0;bottom:34px;height:3px;background:#1F3FBF;z-index:41;transition:width .18s ease;}
#deck.overview ~ #bar{display:none;}

@media print{
  html,body{background:#fff;}
  #hud,#bar{display:none;}
  #deck,#deck.present,#deck.overview{display:block;padding:0;background:#fff;}
  #deck .wrap{position:relative!important;display:block!important;inset:auto!important;
    width:100%;aspect-ratio:16/9;overflow:hidden;page-break-after:always;break-after:page;}
  #deck .slide{position:absolute!important;}
  @page{size:1280px 720px;margin:0;}
}

/* ================= HOUSE STYLE ================= */
.slide{
  display:flex;flex-direction:column;padding:56px 68px 44px;
  background:var(--s-bg);color:var(--s-ink);
  --s-bg:#EDEFF2; --s-panel:#FFFFFF; --s-ink:#11151C; --s-ink-2:#4C5665; --s-ink-3:#77808E;
  --s-cobalt:#1F3FBF; --s-amber:#C06E00; --s-rule:#C6CCD6; --s-grid:#DDE1E8;
  --s-foot:#5F6875;   /* 4.9:1 on #EDEFF2 — the old --s-ink-3 measured 2.6:1 */
  --s-green:#1B7F63; --s-rose:#C33A52;
  --s-display:"Archivo",sans-serif; --s-body:"IBM Plex Sans",sans-serif;
  --s-mono:"IBM Plex Mono",monospace; --s-hand:"Caveat",cursive;
}
.s-eyebrow{font-family:var(--s-mono);font-size:14px;letter-spacing:.17em;text-transform:uppercase;
  color:var(--s-cobalt);font-weight:500;margin:0 0 16px;}
.s-eyebrow.warm{color:var(--s-amber);}
.s-title{font-family:var(--s-display);font-weight:700;font-size:62px;line-height:1.03;
  letter-spacing:-.024em;margin:0 0 16px;}
.s-h{font-family:var(--s-display);font-weight:700;font-size:38px;line-height:1.08;
  letter-spacing:-.022em;margin:0 0 20px;}
.s-sub{font-family:var(--s-body);font-size:23px;line-height:1.42;color:var(--s-ink-2);margin:0;max-width:25ch;}
.s-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:baseline;
  font-family:var(--s-mono);font-size:13.5px;font-weight:500;letter-spacing:.09em;
  text-transform:uppercase;color:var(--s-foot);padding-top:15px;margin-top:auto;
  border-top:1px solid var(--s-rule);}
.rule-c{height:4px;background:var(--s-cobalt);width:100px;margin:0 0 26px;}
.railed{display:grid;grid-template-columns:1fr 340px;gap:44px;flex:1;align-items:start;min-height:0;}
.mnote{border-left:3px solid var(--s-cobalt);padding-left:16px;margin-bottom:21px;
  font-family:var(--s-body);font-size:19px;line-height:1.45;color:var(--s-ink-2);}
.mnote:last-child{margin-bottom:0;}
.mnote b{color:var(--s-ink);font-weight:600;}
.mnote i{font-style:italic;}
.mnote .mtag{display:block;font-family:var(--s-mono);font-size:12px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--s-cobalt);margin-bottom:6px;font-weight:600;}
.mnote.warn{border-left-color:var(--s-amber);} .mnote.warn .mtag{color:var(--s-amber);}
.mnote.hand{border-left-color:var(--s-green);} .mnote.hand .mtag{color:var(--s-green);}
.panel{background:var(--s-panel);border:1px solid var(--s-rule);border-radius:3px;padding:22px 26px;}
.chartwrap{width:100%;}
.chartwrap svg{width:100%;height:auto;display:block;overflow:visible;}

/* definition block — used whenever a Key Term is introduced */
.defbox{background:var(--s-panel);border-left:4px solid var(--s-cobalt);padding:16px 22px;margin-bottom:16px;}
.defbox .term{font-family:var(--s-display);font-weight:700;font-size:23px;color:var(--s-ink);
  letter-spacing:-.018em;margin-bottom:5px;}
.defbox .body{font-family:var(--s-body);font-size:19px;line-height:1.4;color:var(--s-ink-2);}
.defbox .body b{color:var(--s-ink);font-weight:600;}
.defbox.amber{border-left-color:var(--s-amber);}

.qlist{counter-reset:q;}
.qitem{display:grid;grid-template-columns:34px 1fr 150px;gap:14px;align-items:baseline;
  padding:13px 0;border-bottom:1px solid var(--s-rule);}
.qitem:last-child{border-bottom:none;}
.qitem .qn{font-family:var(--s-mono);font-size:15px;color:var(--s-cobalt);font-weight:600;}
.qitem .qt{font-family:var(--s-body);font-size:19px;line-height:1.38;color:var(--s-ink-2);}
.qitem .qt b{color:var(--s-ink);font-weight:600;}
.qitem .qa{font-family:var(--s-mono);font-size:16px;font-weight:600;color:var(--s-amber);text-align:right;}
.frag{opacity:0;transition:opacity .22s ease;}
.frag.on{opacity:1;}
@media (prefers-reduced-motion:reduce){ .frag{transition:none;} }