/* ============================================================
   Many Designs Carbon — WCERE 2026 deck theme  (v2: tighter)
   smaller headers · more room for text & figures · in-slide footer
   ============================================================ */

/* ---------- fonts: Montserrat (matches manydesignscarbon.online) ---------- */
@font-face{font-family:'Montserrat';font-weight:300;font-display:swap;src:url('../fonts/montserrat-300.woff2') format('woff2');}
@font-face{font-family:'Montserrat';font-weight:400;font-display:swap;src:url('../fonts/montserrat-400.woff2') format('woff2');}
@font-face{font-family:'Montserrat';font-weight:500;font-display:swap;src:url('../fonts/montserrat-500.woff2') format('woff2');}
@font-face{font-family:'Montserrat';font-weight:600;font-display:swap;src:url('../fonts/montserrat-600.woff2') format('woff2');}
@font-face{font-family:'Montserrat';font-weight:700;font-display:swap;src:url('../fonts/montserrat-700.woff2') format('woff2');}
@font-face{font-family:'Montserrat';font-weight:800;font-display:swap;src:url('../fonts/montserrat-800.woff2') format('woff2');}

/* ---------- palette ---------- */
:root{
  --green:#1B5E3A; --green-2:#2E7D52; --green-deep:#0E3D24; --green-light:#8DBF6F;
  --amber:#D98A2B; --amber-soft:#E9B872; --rust:#C8654B;
  --blue:#5A9BD4; --blue-soft:#9CC3E0; --teal:#6FB39A; --purple:#8E7CC3; --red:#B23B3B;
  --ink:#1A1A1A; --ink-2:#3A4038; --muted:#6B7268;
  --line:#D8D2C4; --line-2:#C4BDA8; --bg:#FAF8F3; --bg-2:#F2EEE3; --card:#FFFFFF; --gold:#C9A24B;
  --c-info:#9CC3E0; --c-beh:#6FB39A; --c-strat:#C8654B; --c-ai:#8E7CC3;
}

/* ---------- root sizing (full-viewport so captures are clean) ---------- */
html,body{width:100%;height:100%;margin:0;overflow:hidden;background:var(--bg);}

/* ---------- base ---------- */
.reveal-viewport{background:var(--bg);}
.reveal{font-family:'Montserrat',system-ui,sans-serif;font-size:30px;color:var(--ink);font-weight:400;-webkit-font-smoothing:antialiased;}
.reveal .slides{text-align:left;}
.reveal .slides section{height:100%;padding:0;top:0!important;}
.reveal h1,.reveal h2,.reveal h3{font-family:'Montserrat',sans-serif;color:var(--green-deep);font-weight:700;letter-spacing:-0.01em;line-height:1.08;margin:0 0 .24em 0;text-transform:none;}
.reveal h1{font-size:1.7em;}
.reveal h2{font-size:1.3em;}
.reveal h3{font-size:.92em;color:var(--green);margin-bottom:.3em;}
.reveal p{line-height:1.36;margin:.4em 0;}
.reveal strong{font-weight:700;color:var(--green-deep);}
.reveal em{font-style:italic;color:var(--ink-2);}
.reveal a{color:var(--green-2);text-decoration:none;}
.reveal ::selection{background:var(--green-light);color:#fff;}

/* slide inner padding wrapper — tighter, leaves room for in-slide footer */
.slidepad{position:absolute;inset:0;padding:40px 70px 62px 70px;display:flex;flex-direction:column;box-sizing:border-box;}
.slidepad.center{justify-content:center;}
/* near full-bleed for the dense forest plot: compact title, more figure height (still clears the fixed footer) */
.slidepad.fig-full{padding:20px 34px 46px 34px;}
.slidepad.fig-full h2{font-size:1.18em;margin:.06em 0 .2em 0;}
.slidepad.fig-full .kicker{margin-bottom:4px;}

/* ---------- eyebrow / kicker ---------- */
.kicker{display:inline-flex;align-items:center;gap:.5em;font-size:.46em;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--amber);margin-bottom:.35em;}
.kicker::before{content:"";width:24px;height:3px;border-radius:2px;background:var(--amber);}
.kicker .num{color:var(--muted);font-weight:600;}

/* ---------- footer: ONE bar pinned to the viewport bottom (no letterbox gap below it in
   fullscreen). Height/padding are set in JS from the reveal scale so it stays the right size
   and lines up with the slide's content padding at any screen aspect ratio. ---------- */
.deck-footer{position:fixed;left:0;right:0;bottom:0;height:34px;display:none;align-items:center;
  border-top:1px solid var(--line);box-sizing:border-box;
  background:linear-gradient(0deg,var(--bg-2),var(--bg));
  font-size:15px;color:var(--muted);z-index:40;white-space:nowrap;}
.deck-footer.show{display:flex;}
.deck-footer .ft-title{font-weight:600;color:var(--ink-2);}
.deck-footer .ft-page{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--muted);}

/* ---------- layout helpers ---------- */
.cols{display:grid;grid-template-columns:1fr 1fr;gap:34px;flex:1;min-height:0;}
.cols.c-58{grid-template-columns:1.1fr .9fr;}
.cols.c-64{grid-template-columns:1.35fr .65fr;}
.cols.c-37{grid-template-columns:.7fr 1.3fr;}
/* solo = one full-width column (bullets span the whole page) */
.cols.solo{display:flex;flex-direction:column;}
.col{min-width:0;display:flex;flex-direction:column;justify-content:flex-start;}
.col.vc{justify-content:center;}
.fill{flex:1;min-height:0;display:flex;flex-direction:column;}
.lead{font-size:.82em;color:var(--ink-2);max-width:none;margin:.1em 0 .5em;text-align:justify;text-justify:inter-word;}

/* bullet list — justified (blocksatz) body text, full available width */
.blist{list-style:none;margin:.2em 0;padding:0;}
.blist li{position:relative;padding-left:1.25em;margin:.44em 0;font-size:.72em;line-height:1.36;color:var(--ink-2);text-align:justify;text-justify:inter-word;}
.blist li::before{content:"";position:absolute;left:0;top:.46em;width:9px;height:9px;border-radius:2px;background:var(--green);transform:rotate(45deg);}
.blist li.alt::before{background:var(--amber);}
.blist li b{color:var(--green-deep);}
.blist.tight li{margin:.34em 0;}
/* the last (often short) line of a justified bullet shouldn't stretch */
.blist li{text-align-last:left;}

/* dense variant for content-heavy full-width slides so nothing clips */
.slidepad.dense .lead{font-size:.74em;margin:.03em 0 .26em;}
.slidepad.dense .blist li{font-size:.645em;line-height:1.28;margin:.26em 0;}
.slidepad.dense h3{font-size:.8em;margin:.16em 0 .08em;}
.slidepad.dense .bandcard{padding:9px 18px;}
.slidepad.dense .statrow .val{font-size:1.4em;}
.slidepad.dense .statrow .lab{font-size:.4em;}
.slidepad.dense .taskcard{padding:11px 20px;}
.slidepad.dense .taskcard .tc-body{font-size:.66em;line-height:1.34;}
.slidepad.dense .taskcard .tc-tags{margin-top:9px;}
.slidepad.dense .taskcard .tc-head{margin-bottom:.35em;}

/* full-width band that holds relocated side content (card / stats) below bullets */
.bandcard{display:flex;align-items:center;gap:34px;width:100%;box-sizing:border-box;
  background:var(--card);border:1px solid var(--line);border-radius:13px;padding:14px 22px;
  box-shadow:0 6px 24px rgba(20,40,25,.06);}
.bandcard .bc-main{flex:1;min-width:0;}
.bandcard .bc-aside{flex:0 0 auto;}
.vsep{width:1px;align-self:stretch;background:var(--line);}

/* citations */
.cite{font-size:.66em;color:var(--muted);font-weight:600;white-space:nowrap;}
.cite::before{content:"";}
sup.cite{font-size:.5em;vertical-align:super;margin-left:.15em;}

/* ---------- stat chips / count-up ---------- */
.statrow{display:flex;gap:26px;flex-wrap:wrap;margin:.15em 0;}
.stat{display:flex;flex-direction:column;gap:1px;}
.stat .val{font-family:'Montserrat';font-weight:800;font-size:1.85em;line-height:1;color:var(--green-deep);font-variant-numeric:tabular-nums;letter-spacing:-.01em;}
.stat .val.amber{color:var(--amber);}
.stat .lab{font-size:.42em;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);}

/* pill / tag */
.pill{display:inline-flex;align-items:center;gap:.45em;padding:.25em .65em;border-radius:999px;font-size:.46em;font-weight:700;letter-spacing:.02em;background:var(--bg-2);color:var(--ink-2);border:1px solid var(--line-2);}
.pill .dot{width:.7em;height:.7em;border-radius:50%;}
.dot.info{background:var(--c-info);} .dot.beh{background:var(--c-beh);} .dot.strat{background:var(--c-strat);} .dot.ai{background:var(--c-ai);}
.dot.green{background:var(--green);} .dot.amber{background:var(--amber);}

/* card / callout */
.card{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:18px 22px;box-shadow:0 6px 24px rgba(20,40,25,.06);}
.callout{border-left:5px solid var(--amber);background:var(--bg-2);padding:12px 18px;border-radius:0 11px 11px 0;font-size:.74em;color:var(--ink-2);text-align:justify;text-justify:inter-word;}
.callout b{color:var(--green-deep);}
/* a richer, full-width version of the callout (slide 3 "Each team's task") */
.taskcard{width:100%;box-sizing:border-box;background:linear-gradient(180deg,#FFFFFF,#FBF8F0);
  border:1px solid var(--line);border-left:5px solid var(--amber);border-radius:0 13px 13px 0;
  padding:16px 24px;box-shadow:0 6px 22px rgba(20,40,25,.06);}
.taskcard .tc-head{font-size:.5em;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--amber);margin-bottom:.5em;}
.taskcard .tc-body{font-size:.74em;color:var(--ink-2);line-height:1.4;text-align:justify;text-justify:inter-word;}
.taskcard .tc-body b{color:var(--green-deep);}
.taskcard .tc-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.taskcard .tc-tag{display:inline-flex;align-items:center;gap:.4em;font-size:.5em;font-weight:700;
  padding:.32em .7em;border-radius:999px;background:var(--bg-2);border:1px solid var(--line-2);color:var(--ink-2);}
.taskcard .tc-tag .d{width:.62em;height:.62em;border-radius:50%;background:var(--green);}

/* figure mount — fills available space */
.figwrap{flex:1;min-height:0;display:flex;flex-direction:column;}
.figmount{flex:1;min-height:0;position:relative;}
.figmount svg{width:100%;height:100%;display:block;transform:translateZ(0);}
/* declare the webfont on figure text so SVG <text> never falls back to a wider system font */
.figmount svg text{font-family:'Montserrat',sans-serif;}
/* reveal puts a 3D perspective on the slides; combined with its translate3d scaling this
   rasterises figure-SVG webfont text with a horizontal shift / dropped glyphs (a Chrome bug).
   The deck only uses 2D 'slide' transitions, so flattening the perspective is safe. */
.reveal .slides{perspective:none!important;}
.reveal .slides section{transform-style:flat!important;}
.figcap{font-size:.42em;color:var(--muted);margin-top:4px;line-height:1.28;}

/* legend */
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.46em;color:var(--ink-2);align-items:center;}
.legend .lg{display:inline-flex;align-items:center;gap:.4em;}
.legend .sw{width:13px;height:13px;border-radius:3px;}

/* ---------- title slide ---------- */
.title-slide{position:absolute;inset:0;display:flex;flex-direction:column;padding:0;
  background:radial-gradient(120% 90% at 85% -10%, rgba(141,191,111,.20), transparent 55%),
   radial-gradient(90% 70% at -5% 110%, rgba(217,138,43,.16), transparent 55%), var(--bg);}
.title-grid{position:absolute;inset:0;opacity:.5;pointer-events:none;}
.title-body{position:relative;flex:1;padding:60px 78px 44px;display:flex;flex-direction:column;}
.title-top{display:flex;align-items:center;gap:16px;}
.title-top img{height:40px;width:auto;}
.title-top .uibk-txt{font-weight:700;color:var(--green-deep);font-size:19px;line-height:1.1;}
.t-hashtag{margin-left:auto;font-weight:800;color:var(--amber);font-size:18px;}
.title-main{margin-top:auto;}
.title-main .ey{font-size:16px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--amber);margin-bottom:14px;}
.title-main h1{font-family:'Montserrat',sans-serif;font-weight:800;font-size:54px;line-height:1.05;color:var(--green-deep);letter-spacing:-.01em;max-width:20em;margin:0;}
.title-main h1 .hl{color:var(--amber);}
.title-sub{margin-top:16px;font-size:20px;color:var(--ink-2);font-weight:500;max-width:32em;line-height:1.3;}
.title-authors{margin-top:18px;font-size:17px;color:var(--ink-2);line-height:1.5;max-width:none;}
.title-authors .coords{white-space:nowrap;}
.title-authors b{color:var(--green-deep);font-weight:700;}
.title-meta{display:flex;align-items:flex-end;gap:26px;margin-top:22px;flex-wrap:wrap;}
.title-meta .mblock{display:flex;flex-direction:column;}
.title-meta .mk{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
.title-meta .mv{font-size:18px;font-weight:700;color:var(--green-deep);}
.title-logos{margin-left:auto;display:flex;align-items:center;gap:22px;}
.title-logos img{height:46px;width:auto;}
.title-logos .fund{display:flex;flex-direction:column;gap:3px;}
.title-logos .fund .fk{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700;}

/* divider / section slide */
.section-slide{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:0 84px;
  background:linear-gradient(135deg,var(--green-deep),var(--green) 60%,var(--green-2));color:#fff;}
.section-slide h2{color:#fff;font-family:'Montserrat',sans-serif;font-weight:800;font-size:2.4em;max-width:16em;letter-spacing:-.01em;}
.section-slide .kicker{color:var(--amber-soft);} .section-slide .kicker::before{background:var(--amber-soft);}
.section-slide p{color:rgba(255,255,255,.86);font-size:.85em;max-width:25em;}

/* takeaway slide */
.tk-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:42px;align-items:center;flex:1;}
.tk-msg{font-family:'Montserrat',sans-serif;font-weight:600;font-size:1.4em;line-height:1.2;color:#FFFFFF;}
.tk-msg .hl{color:var(--amber-soft);font-weight:900;}
.qr-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px;text-align:center;box-shadow:0 10px 34px rgba(20,40,25,.08);}
.qr-card .qlab{font-size:.46em;font-weight:700;color:var(--green-2);margin-top:9px;}

/* thank-you closing slide: huge thank-you + co-author wall + QR */
.thanks-slide{position:absolute;inset:0;display:flex;flex-direction:column;padding:38px 60px 34px;color:#fff;box-sizing:border-box;}
.thanks-head{text-align:center;margin-bottom:10px;flex:0 0 auto;}
.thanks-big{font-family:'Montserrat',sans-serif;font-weight:900;font-size:62px;line-height:1;color:#fff;letter-spacing:-.02em;}
.thanks-sub{margin-top:9px;font-size:18px;font-weight:500;color:rgba(255,255,255,.85);}
.thanks-sub b{color:var(--amber-soft);font-weight:700;}
.coauthor-wall{flex:1;min-height:0;column-count:6;column-gap:20px;margin:4px 0 2px;overflow:hidden;}
.coauthor-wall .ca{break-inside:avoid;font-size:12.5px;line-height:1.42;color:rgba(255,255,255,.72);
  font-weight:400;letter-spacing:.1px;padding:.5px 0;}
.thanks-foot{display:flex;align-items:center;gap:26px;border-top:1px solid rgba(255,255,255,.18);
  padding-top:12px;margin-top:6px;flex:0 0 auto;}
.thanks-foot .thanks-msg{flex:1;font-size:15px;line-height:1.36;color:rgba(255,255,255,.9);text-align:left;}
.thanks-foot .thanks-msg b{color:#fff;font-weight:800;}
.thanks-foot .thanks-msg .hl{color:var(--amber-soft);font-weight:800;}
.thanks-foot .qr-card{flex:0 0 auto;padding:11px;}

/* references slide */
.refs-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 38px;flex:1;min-height:0;align-content:start;overflow:hidden;}
.refs-grid.three{grid-template-columns:1fr 1fr 1fr;}
.ref{font-size:.42em;line-height:1.28;color:var(--ink-2);display:flex;gap:.5em;break-inside:avoid;}
.ref .rn{color:var(--amber);font-weight:800;min-width:1.4em;text-align:right;}
.ref b{color:var(--green-deep);font-weight:700;}

/* ---------- fragment animation defaults ---------- */
.reveal .slides section .fragment.fade-up{transform:translateY(18px);opacity:0;transition:all .45s cubic-bezier(.22,.61,.36,1);}
.reveal .slides section .fragment.fade-up.visible{transform:none;opacity:1;}
.reveal .slides section .fragment.scale-in{transform:scale(.92);opacity:0;transition:all .4s cubic-bezier(.22,.61,.36,1);}
.reveal .slides section .fragment.scale-in.visible{transform:none;opacity:1;}

/* progress + controls tint */
.reveal .progress{color:var(--green);height:4px;}
.reveal .controls{color:var(--green-2);}
.reveal .slide-number{background:transparent;color:var(--muted);font-weight:600;}

/* QA static-capture mode: kill transitions/animations so screenshots are deterministic */
html.qa-static *{transition:none!important;animation:none!important;}

/* utility */
.muted{color:var(--muted);} .nowrap{white-space:nowrap;}
.small{font-size:.7em;} .xs{font-size:.52em;}
.mt0{margin-top:0;} .mt{margin-top:.5em;} .mt2{margin-top:1em;}
.center-x{align-items:center;text-align:center;}
.hl-green{color:var(--green-deep);font-weight:800;} .hl-amber{color:var(--amber);font-weight:800;} .hl-red{color:var(--red);font-weight:800;}
.divline{height:1px;background:var(--line);margin:.55em 0;}
