/* =====================================================================
   Proxeno deck theme — components translated from theme.brochure.css.
   The slide is a card floating on a dark letterbox. Every slide:
   eyebrow, heading, gradient rule, content. Named components only.
   ===================================================================== */

/* ------------------------- Letterbox frame --------------------------- */
.reveal-viewport{ background: var(--px-letterbox); }
.reveal .slides{ box-shadow: var(--px-slide-shadow); border-radius: var(--slide-radius); }
.reveal{ font-family: var(--font-sans); font-size: var(--step-0); font-weight: 400; color: #333333; }
.reveal .slides{ text-align: left; }

.reveal .slides section{
  box-sizing: border-box;
  width: 1280px; height: 720px;
  padding: var(--slide-pad-top) var(--slide-pad-x) var(--slide-pad-bottom);
  display: flex; flex-direction: column; justify-content: center;
  overflow: hidden; background: var(--px-paper);
}
.reveal .slides section > *{ flex: 0 0 auto; position: relative; z-index: 2; }

/* slide grounds carry the atmosphere texture */
.reveal .backgrounds .slide-background{ background-color: var(--px-paper); background-image: var(--atmosphere-light); }
.reveal .backgrounds .slide-background.paper{ background-color: var(--px-paper); }
.reveal .backgrounds .slide-background.dark{ background-color: var(--px-dark); background-image: none; }
.reveal .slides section.dark{ background: var(--px-dark); color: var(--px-parchment); }
.reveal .slides section.paper{ background: var(--px-paper); }
.reveal .slides section{ background-color: var(--px-paper); background-image: var(--atmosphere-light); }
.reveal .slides section.dark{ background-image: none; }

/* masked brandmark watermark, top-right bleed (their technique) */
.reveal .slides section::before{
  content: ""; position: absolute; top: -140px; right: -120px;
  width: 440px; height: 440px; z-index: 0; pointer-events: none;
  -webkit-mask: url('seal.svg') center/contain no-repeat;
          mask: url('seal.svg') center/contain no-repeat;
  background: var(--px-teal-mid); opacity: .14;
}
section.dark::before{ background: #FFFFFF; opacity: .10; }

/* ------------------------- The frame --------------------------------- */
/* eyebrow: proxeno.io's italic serif section label, not letterspaced caps */
.eyebrow{
  font-family: var(--font-serif); font-style: italic; font-size: var(--step-0);
  text-transform: none; letter-spacing: 0;
  color: var(--px-bronze-text); font-weight: 400; margin-bottom: var(--space-xs);
}
section.dark .eyebrow{ color: var(--px-bronze-light, #E2C48C); }
.reveal h1,.reveal h2,.reveal h3{
  font-family: var(--font-serif); text-transform: none; color: var(--px-ink);
  letter-spacing: -0.5px; line-height: 1.1;
}
.reveal h1{ font-size: var(--step-5); line-height: 1.04; margin: 0 0 var(--space-s); font-weight: 500; }
.reveal h2{ font-size: var(--step-4); margin: 0 0 var(--space-s); font-weight: 500; }
.reveal h3{ font-size: var(--step-1); margin: 0 0 var(--space-2xs); font-weight: 600; }
section.dark h1, section.dark h2, section.dark h3{ color: var(--px-parchment); }

.rule{ width: var(--rule-w); height: var(--rule-h); border-radius: 3px; background: var(--grad-rule); margin: 0 0 var(--space-m); }

.reveal p{ margin: 0 0 var(--space-s); line-height: 1.45; }
.lede{ font-size: var(--step-1); line-height: 1.45; max-width: 1050px; }
.body-t{ font-size: var(--step-0); max-width: 1050px; line-height: 1.45; }
.reveal strong{ color: var(--px-teal-deep); font-weight: 700; }
section.dark .lede, section.dark .body-t{ color: var(--px-parchment); }
section.dark strong{ color: var(--px-bronze); }

/* type utilities (their t-* ladder) */
.t-fine{ font-size: var(--step--3); }
.t-small{ font-size: var(--step--1); }
.t-body{ font-size: var(--step-0); }
.t-lead{ font-size: var(--step-1); }

/* =========================== COMPONENTS ============================== */

/* card */
.cards{ display: grid; grid-template-columns: repeat(auto-fit,minmax(300px,1fr)); gap: var(--space-s); margin: var(--space-s) 0; }
.cards.c3{ grid-template-columns: repeat(3,1fr); }
.cards.c2{ grid-template-columns: repeat(2,1fr); }
.card{
  background: var(--px-white); border: 1px solid var(--px-border);
  border-radius: var(--card-radius); padding: var(--space-m) var(--space-m);
  box-shadow: var(--sh-md);
}
.card h3{ font-size: var(--step-1); letter-spacing: -.01em; }
.card p{ font-size: var(--step-0); line-height: 1.45; margin-bottom: var(--space-2xs); }
.card p:last-child{ margin-bottom: 0; }
section.dark .card{ background: var(--px-dark-surface); border-color: var(--px-dark-edge); color: var(--px-parchment); box-shadow: var(--sh-dark); }

/* icon chip */
.chip{
  flex: 0 0 auto; width: var(--chip-size); height: var(--chip-size);
  border-radius: var(--chip-radius); background: var(--grad-chip);
  border: 1px solid rgba(30,111,106,.16); box-shadow: var(--sh-sm);
  display: flex; align-items: center; justify-content: center;
}
.chip svg{ width: 28px; height: 28px; color: var(--px-teal); }
.chip.solid{ background: var(--grad-teal); border: none; box-shadow: 0 8px 18px rgba(21,81,77,.3); }
.chip.solid svg{ color: #fff; }
section.dark .chip{ background: var(--grad-chip-dark); border-color: rgba(176,141,87,.28); }
section.dark .chip svg{ color: var(--px-bronze); }

.card-head{ display: flex; align-items: center; gap: var(--space-s); margin-bottom: var(--space-2xs); }
.card-head h3{ margin: 0; }

/* stat block */
.stats{ display: flex; flex-wrap: wrap; gap: var(--space-l); margin: var(--space-m) 0; }
.stat .num{ font-family: var(--font-serif); font-size: var(--step-4); line-height: 1; color: var(--px-teal); font-weight: 700; letter-spacing: -1px; }
.stat .lbl{ font-size: var(--step-0); max-width: 240px; margin-top: var(--space-2xs); line-height: 1.35; }
section.dark .stat .num{ color: var(--px-bronze); }

/* stat callout (their gradient panel with a big light number) */
.stat-callout{
  background: var(--grad-stat); color: #fff; border-radius: 20px;
  padding: var(--space-m) var(--space-l); display: flex; align-items: center; gap: var(--space-m);
  box-shadow: var(--sh-lg);
}
.stat-callout .big{ font-size: 2.3em; font-weight: 700; letter-spacing: -1px; color: var(--px-bronze); line-height: 1; }
.stat-callout p{ margin: 0; font-size: var(--step-0); color: rgba(255,255,255,.92); }

/* tick list */
.ticks{ list-style: none; margin: var(--space-s) 0; padding: 0; }
.ticks li{ display: flex; gap: var(--space-s); align-items: flex-start; font-size: var(--step-0); line-height: 1.45; margin-bottom: var(--space-s); max-width: 1050px; }
.tickdot{
  flex: 0 0 34px; width: 34px; height: 34px; border-radius: 50%;
  background: var(--grad-tick); color: #fff; font-size: 16px; font-weight: 800;
  display: flex; align-items: center; justify-content: center; margin-top: 2px;
  box-shadow: 0 6px 14px rgba(30,111,106,.35);
}
section.dark .tickdot{ background: var(--grad-bronze); color: var(--px-ink); box-shadow: 0 6px 14px rgba(176,141,87,.35); }

/* callout strip */
.landing{
  background: var(--grad-callout); border-left: 5px solid var(--px-bronze);
  color: var(--px-ink); font-family: var(--font-serif); font-size: var(--step-1);
  line-height: 1.35; padding: var(--space-s) var(--space-m);
  border-radius: 0 16px 16px 0; margin-top: var(--space-m); box-shadow: var(--sh-sm);
}
section.dark .landing{ background: var(--grad-callout-dark); color: var(--px-parchment); }

/* cascade tier */
.cascade{ display: grid; grid-template-columns: repeat(3,1fr); gap: var(--space-s); margin: var(--space-s) 0; }
.cascade .tier{
  background: var(--px-white); border: 1px solid var(--px-border); border-left: 6px solid var(--px-teal);
  border-radius: 16px; padding: var(--space-s) var(--space-s); box-shadow: var(--sh-md);
}
.cascade .tier:last-child{ border-left-color: var(--px-bronze); }
.cascade .t{ font-family: var(--font-serif); font-size: var(--step-1); font-weight: 700; }
.cascade .v{ font-family: var(--font-serif); font-size: var(--step-2); color: var(--px-teal); font-weight: 700; letter-spacing: -.5px; }
.cascade .tier:last-child .v{ color: var(--px-bronze); }
.cascade p{ font-size: var(--step--1); margin: var(--space-3xs) 0 0; }

/* table */
.tbl{
  width: 100%; border-collapse: collapse; background: var(--px-white);
  border-radius: 12px; overflow: hidden; box-shadow: var(--sh-md);
  font-size: var(--step-0); line-height: 1.35;
}
.tbl th{
  background: var(--px-ink); color: var(--px-parchment); text-align: left;
  padding: var(--space-2xs) var(--space-xs); font-size: 13px;
  letter-spacing: .08em; text-transform: uppercase; font-family: var(--font-sans); font-weight: 700;
}
.tbl td{ padding: var(--space-2xs) var(--space-xs); border-bottom: 1px solid var(--px-border); vertical-align: top; }
.tbl td:first-child{ font-family: var(--font-serif); font-weight: 700; }
.tbl.sm{ font-size: var(--step--1); line-height: 1.25; }
.tbl.sm th,.tbl.sm td{ padding: var(--space-3xs) var(--space-2xs); }
.tick{ color: var(--px-teal); font-weight: 700; }
.cross{ color: var(--px-danger); font-weight: 700; }
.tbl .sub{ display: block; font-size: .82em; color: #555; }

/* versus panels */
.versus{ display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-s); margin: var(--space-s) 0; max-width: 1000px; }
.versus .side{ border-radius: var(--card-radius); padding: var(--space-m); text-align: center; box-shadow: var(--sh-md); }
.versus .side.broker{ background: var(--px-white); border: 1px solid var(--px-border); color: var(--px-ink); }
section.dark .versus .side.broker .who{ color: var(--px-ink-soft); }
section.dark .versus .side.broker .amt{ color: var(--px-ink); }
.versus .side.prox{ background: var(--grad-teal); color: #fff; border: none; box-shadow: var(--sh-lg); }
.versus .who{ font-family: var(--font-serif); font-size: var(--step-1); margin-bottom: var(--space-2xs); }
.versus .amt{ font-family: var(--font-serif); font-size: var(--step-4); line-height: 1; font-weight: 700; letter-spacing: -1px; }
.versus .side.prox .amt{ color: #F3E3C9; }
.versus .how{ font-size: var(--step--1); margin-top: var(--space-2xs); opacity: .85; line-height: 1.35; }

/* pillar */
.pillars{ display: grid; grid-template-columns: repeat(3,1fr); gap: var(--space-s); margin: var(--space-s) 0; }
.pillar{
  border-top: 4px solid var(--px-bronze); background: var(--px-white);
  border: 1px solid var(--px-border); border-radius: 0 0 var(--card-radius) var(--card-radius);
  padding: var(--space-s) var(--space-s); box-shadow: var(--sh-md);
}
.pillar h3{ font-size: var(--step-1); }
.pillar p{ font-size: var(--step--1); line-height: 1.45; }
section.dark .pillar{ background: var(--px-dark-surface); border-color: var(--px-dark-edge); color: var(--px-parchment); box-shadow: var(--sh-dark); }

/* flow step */
.flow{ display: flex; gap: var(--space-2xs); align-items: stretch; margin: var(--space-2xs) 0; }
.fstep{
  flex: 1; background: var(--px-white); border: 1px solid var(--px-border);
  border-radius: 12px; padding: var(--space-2xs) var(--space-xs);
  font-size: var(--step--2); line-height: 1.35; box-shadow: var(--sh-sm);
}
.fstep .fs-t{ font-family: var(--font-serif); font-weight: 700; font-size: var(--step--1); margin-bottom: var(--space-3xs); }
.fstep.ai{ border-left: 5px solid var(--px-teal); }
.flane{ font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--px-bronze); font-weight: 700; margin: var(--space-xs) 0 var(--space-3xs); }

/* status column */
.status-cols{ display: grid; grid-template-columns: repeat(3,1fr); gap: var(--space-s); margin: var(--space-s) 0; }
.status-col h3{ font-size: var(--step-1); border-bottom: 3px solid var(--px-teal); padding-bottom: var(--space-2xs); margin-bottom: var(--space-2xs); }
.status-col ul{ list-style: none; margin: 0; }
.status-col li{ padding: var(--space-2xs) 0; border-bottom: 1px solid var(--px-border); font-size: var(--step-0); line-height: 1.3; }
.status-col li b{ font-family: var(--font-serif); }
.status-col li span{ display: block; font-size: var(--step--1); color: #555; }

/* team member */
.team{ display: grid; grid-template-columns: repeat(3,1fr); gap: var(--space-s); margin: var(--space-s) 0; }
.member{ background: var(--px-white); border: 1px solid var(--px-border); border-radius: var(--card-radius); padding: var(--space-s); box-shadow: var(--sh-md); }
.member h3{ font-size: var(--step-1); }
.member p{ font-size: var(--step--1); line-height: 1.4; }

/* ask card */
.ask-grid{ display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-s); margin: var(--space-s) 0; }
.ask-card{ background: var(--px-white); border: 1px solid var(--px-border); border-radius: var(--card-radius); padding: var(--space-s) var(--space-m); color: var(--px-ink); box-shadow: var(--sh-md); }
.ask-card .amt{ font-family: var(--font-serif); font-size: var(--step-3); color: var(--px-teal); font-weight: 700; letter-spacing: -1px; }
.ask-card h3{ font-size: var(--step-1); margin: var(--space-3xs) 0 var(--space-2xs); }
.ask-card p{ font-size: var(--step--1); margin-bottom: var(--space-2xs); }
.ask-card ul{ margin: 0 0 0 var(--space-s); font-size: var(--step--1); line-height: 1.4; }
section.dark .ask-card{ background: var(--px-dark-surface); border-color: var(--px-dark-edge); color: var(--px-parchment); box-shadow: var(--sh-dark); }
section.dark .ask-card h3{ color: var(--px-parchment); }
section.dark .ask-card .amt{ color: var(--px-bronze); }

/* notice */
.notice{ font-size: var(--step--1); color: #555; line-height: 1.45; max-width: 1050px; }
section.dark .notice{ color: var(--px-ink-faint); }

/* two-column split */
.cols2{ display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-l); align-items: start; margin-top: var(--space-2xs); }

/* title slide */
.brief{ font-family: var(--font-serif); font-style: italic; font-size: var(--step-0); letter-spacing: 0; text-transform: none; color: var(--px-bronze-text); font-weight: 400; margin-bottom: var(--space-m); }
.tagline{ font-family: var(--font-serif); font-size: var(--step-2); line-height: 1.25; max-width: 900px; margin-bottom: var(--space-l); }
.round{ display: inline-block; background: var(--grad-teal); color: #fff; padding: var(--space-2xs) var(--space-m); border-radius: 22px; font-weight: 700; font-size: var(--step-0); box-shadow: var(--sh-md); }
.who{ margin-top: var(--space-l); font-size: var(--step-0); color: #555; }
section.dark .who{ color: var(--px-ink-faint); }
.close-quote{ font-family: var(--font-serif); font-size: var(--step-2); line-height: 1.3; max-width: 980px; margin-bottom: var(--space-l); }

/* footer band */
.deck-footer{
  position: absolute; left: 0; right: 0; bottom: 0; height: var(--footer-h);
  background: var(--px-ink); color: var(--px-parchment);
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 28px; font-size: 13px; z-index: 30; font-family: var(--font-sans);
  box-shadow: 0 -1px 0 rgba(255,255,255,.06) inset;
}
.deck-footer .foot-mark{ font-family: var(--font-serif); font-size: 19px; font-weight: 700; letter-spacing: .01em; }
.deck-footer .foot-right{ display: flex; align-items: center; gap: var(--space-s); margin-right: 96px; }
.deck-footer a.foot-dl{
  display: inline-flex; align-items: center; gap: 7px;
  color: var(--px-parchment); text-decoration: none;
  background: rgba(255,255,255,.10); border: 1px solid rgba(246,241,231,.28);
  border-radius: 20px; padding: 5px 14px; font-weight: 700; font-size: 12px;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.deck-footer a.foot-dl:hover{ background: var(--px-bronze); border-color: var(--px-bronze); color: var(--px-ink); }
.deck-footer .foot-label{ color: var(--px-ink-faint); }
.deck-footer .foot-num{ color: var(--px-parchment); background: rgba(255,255,255,.10); border-radius: 20px; padding: 4px 13px; font-weight: 700; font-variant-numeric: tabular-nums; }

/* controls: SVG chevrons in the footer band */
.reveal .controls{ color: var(--px-parchment); right: 10px; bottom: 11px; z-index: 31; }
.reveal .controls button{ color: var(--px-parchment); }
.reveal .controls .controls-arrow{ display: none; }
.reveal .controls button{ width: 30px; height: 36px; background-repeat: no-repeat; background-position: center; background-size: 14px 14px; }
.reveal .controls .navigate-left{ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F6F1E7' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 18l-6-6 6-6'/%3E%3C/svg%3E"); }
.reveal .controls .navigate-right{ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F6F1E7' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E"); }
.reveal .controls button[disabled]{ opacity: .25; }
.reveal .progress{ color: var(--px-bronze); height: 4px; background: rgba(255,255,255,.12); }
.reveal .slide-number{ display: none; }

/* density: heavy slides step down one rung, never re-invent the frame */
.dense h2{ font-size: calc(var(--step-4) * .9); }
.dense .card h3, .dense .pillar h3, .dense .member h3, .dense .status-col h3, .dense .ask-card h3{ font-size: var(--step-0); }
.dense .card p, .dense .pillar p, .dense .member p{ font-size: var(--step--1); }
.dense .body-t, .dense .lede{ font-size: var(--step--1); }
.dense .tbl.sm{ font-size: var(--step--2); }
.dense .cascade .t{ font-size: var(--step-0); }
.dense .cascade .v{ font-size: var(--step-1); }
.dense .stat .num{ font-size: var(--step-3); }
.dense .chip{ width: 44px; height: 44px; }
.dense .chip svg{ width: 24px; height: 24px; }
.dense .close-quote{ font-size: var(--step-1); }
.dense .fstep{ font-size: 11px; }
.dense .status-col li{ font-size: var(--step--1); }
.dense .status-col li span{ font-size: var(--step--2); }
.dense .landing{ font-size: var(--step-0); margin-top: var(--space-xs); }
.dense .status-cols{ margin: var(--space-2xs) 0; }
.dense .status-col li{ padding: 7px 0; }

/* entrance animation (their staggered tile reveal, print-safe) */
@keyframes discIn{ from{ opacity: 0; transform: translateY(12px) scale(.97); } to{ opacity: 1; transform: none; } }
.reveal .slides section.present .cards .card,
.reveal .slides section.present .pillars .pillar,
.reveal .slides section.present .team .member,
.reveal .slides section.present .status-cols .status-col{
  animation-name: discIn; animation-duration: .45s;
  animation-timing-function: var(--ease); animation-fill-mode: both;
}
.reveal .slides section.present .cards .card:nth-child(1),
.reveal .slides section.present .pillars .pillar:nth-child(1),
.reveal .slides section.present .team .member:nth-child(1),
.reveal .slides section.present .status-cols .status-col:nth-child(1){ animation-delay: 550ms; }
.reveal .slides section.present .cards .card:nth-child(2),
.reveal .slides section.present .pillars .pillar:nth-child(2),
.reveal .slides section.present .team .member:nth-child(2),
.reveal .slides section.present .status-cols .status-col:nth-child(2){ animation-delay: 615ms; }
.reveal .slides section.present .cards .card:nth-child(3),
.reveal .slides section.present .pillars .pillar:nth-child(3),
.reveal .slides section.present .team .member:nth-child(3),
.reveal .slides section.present .status-cols .status-col:nth-child(3){ animation-delay: 680ms; }
.reveal .slides section.present .cards .card:nth-child(4),
.reveal .slides section.present .team .member:nth-child(4){ animation-delay: 745ms; }
.reveal .slides section.present .cards .card:nth-child(5),
.reveal .slides section.present .team .member:nth-child(5){ animation-delay: 810ms; }
.reveal .slides section.present .cards .card:nth-child(6),
.reveal .slides section.present .team .member:nth-child(6){ animation-delay: 875ms; }

/* print */
@media print{
  .deck-footer{ display: none; }
  .reveal-viewport{ background: #fff; }
  .reveal .slides{ box-shadow: none; }
  .reveal .slides section{ border-radius: 0; }
  .reveal .slides section::before{ display: none; }
  .reveal .slides section > *{ position: static; }
  .card,.pillar,.member,.status-col{ animation: none !important; opacity: 1 !important; transform: none !important; }
}
