/* HARPS slide font loading aliases. Uses installed SF Pro without changing selected slide fonts. */
@font-face {
  font-family: "SF Pro Display";
  src: local("SF Pro Display Regular"), local("SFProDisplay-Regular");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "SF Pro Display";
  src: local("SF Pro Display Medium"), local("SFProDisplay-Medium");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "SF Pro Display";
  src: local("SF Pro Display Semibold"), local("SFProDisplay-Semibold");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "SF Pro Display";
  src: local("SF Pro Display Bold"), local("SFProDisplay-Bold");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "SF Pro Display";
  src: local("SF Pro Display Heavy"), local("SFProDisplay-Heavy");
  font-weight: 800 899;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "SF Pro Display";
  src: local("SF Pro Display Black"), local("SFProDisplay-Black");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "SF Pro Text";
  src: local("SF Pro Text Regular"), local("SFProText-Regular");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "SF Pro Text";
  src: local("SF Pro Text Medium"), local("SFProText-Medium");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "SF Pro Text";
  src: local("SF Pro Text Semibold"), local("SFProText-Semibold");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "SF Pro Text";
  src: local("SF Pro Text Bold"), local("SFProText-Bold");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "SF Pro Text";
  src: local("SF Pro Text Heavy"), local("SFProText-Heavy");
  font-weight: 800 899;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "SF Pro Text";
  src: local("SF Pro Text Black"), local("SFProText-Black");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

/* HARPS intro slides: Apple-style editorial theme conversion.
   Theme-only overrides; preserves slide DOM, positioning, routing, and interactions. */
:root {
  --font-family: "SF Pro Display", "SF Pro Text", -apple-system, BlinkMacSystemFont, sans-serif;
  --font-display: "SF Pro Display", "SF Pro Text", -apple-system, BlinkMacSystemFont, sans-serif;
  --font-text: "SF Pro Text", -apple-system, BlinkMacSystemFont, sans-serif;
  --harps-pres-font-stack: var(--font-family);
  --harps-pres-bg: #F5F6F8;
  --harps-pres-bg-soft: #FFFFFF;
  --harps-pres-graphite: #171C20;
  --harps-pres-body: #171C20;
  --harps-pres-muted: #526374;
  --harps-pres-surface: rgba(255, 255, 255, 0.78);
  --harps-pres-surface-strong: rgba(255, 255, 255, 0.92);
  --harps-pres-border: rgba(217, 222, 231, 0.82);
  --harps-pres-shadow: 0 24px 70px rgba(15, 23, 42, 0.06), 0 2px 10px rgba(15, 23, 42, 0.05);
  --harps-pres-indigo: #3611C8;
  --harps-pres-blue: #3611C8;
  --harps-pres-green: #178C68;
  --harps-pres-warn: #B86B26;
}

html,
body {
  background: #E7EAEE;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body,
.slide,
.slide :where(a, button, div, span, p, h1, h2, h3, h4, h5, h6, ul, ol, li, label, table, thead, tbody, tfoot, tr, th, td),
.edl-modal,
.edl-modal :where(button, div, span, p, h1, h2, h3, h4, h5, h6, ul, ol, li, label) {
  font-family: var(--harps-pres-font-stack) !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-synthesis: none;
}

.slide :where(.title, .title .main, .thank-you, .ufs-title, .bottom-statement, h1, h2, h3) {
  font-family: var(--font-display) !important;
}

.slide :where(.subtitle, .description, .bullet-list, .col-bullets, .numbered-list, .validated-data, .bottom-text, .footer, .footer-text, .jarvis-label, .caption, p, li, small) {
  font-family: var(--font-text) !important;
}

.slide,
a.slide {
  color: var(--harps-pres-graphite);
}

.slide {
  background:
    radial-gradient(circle at 78% 16%, rgba(255, 255, 255, 0.96), rgba(255, 255, 255, 0) 34%),
    radial-gradient(circle at 16% 86%, rgba(226, 232, 240, 0.86), rgba(226, 232, 240, 0) 40%),
    linear-gradient(135deg, var(--harps-pres-bg-soft) 0%, var(--harps-pres-bg) 100%);
  box-shadow: 0 34px 110px rgba(15, 23, 42, 0.06);
}

.title,
.title .main,
.thank-you,
.ufs-title,
.bottom-statement,
.delivery-amount,
.invoice-amount-left,
.invoice-amount-right,
.pipeline-text,
.pill-text,
.flow-label-text {
  color: var(--harps-pres-graphite);
  letter-spacing: -0.035em;
}

.subtitle,
.arrow-label,
.step-label,
.section-label,
.col-title,
.edl-modal-title,
.edl-modal-section-title,
.edl-modal-section-body {
  color: var(--harps-pres-body);
}

.subtitle,
.description,
.validated-data,
.bottom-text,
.arrow-label,
.section-label,
.col-title,
.edl-modal-section-title {
  color: var(--harps-pres-muted);
}

.bullet-list,
.col-bullets,
.numbered-list {
  color: var(--harps-pres-graphite);
}

.footer,
.footer-text,
.jarvis-label {
  color: var(--harps-pres-muted);
}

.slide :where(.footer, .footer-text) {
  position: absolute !important;
  left: 3.125% !important;
  top: 93.519% !important;
  z-index: 30 !important;
  font-family: var(--font-text) !important;
  font-weight: 590 !important;
  font-size: calc(var(--sw) * 19 / 1920) !important;
  line-height: 1.25 !important;
  letter-spacing: -0.01em !important;
  color: rgba(82, 99, 116, 0.86) !important;
  opacity: 1 !important;
  white-space: nowrap !important;
}

.slide .footer-bar {
  position: static !important;
  display: block !important;
  padding: 0 !important;
}

.slide :where(.logo, .corner-logo, .footer-logo) {
  position: absolute !important;
  left: auto !important;
  right: 3.02% !important;
  top: 92.315% !important;
  width: 1.875% !important;
  height: auto !important;
  z-index: 30 !important;
  opacity: 0.62 !important;
  filter: none !important;
}

.slide :where(.logo, .corner-logo) img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
}

.slide img.footer-logo {
  width: 1.875% !important;
  height: auto !important;
  display: block !important;
  filter: none !important;
}

.dept-logo img {
  filter: invert(1) brightness(0.28) saturate(0.8);
  opacity: 0.74;
}

.corner-logo,
.logo {
  opacity: 0.62;
}

.title .sub,
.step-label .highlight,
.section-label .blue,
.section-header,
.pipeline-label,
.revenue-label {
  color: var(--harps-pres-indigo);
}

.invoice-label-left,
.invoice-label-right,
.blue-pill-text {
  color: var(--harps-pres-blue);
}

.title .sub {
  text-decoration-color: rgba(54, 17, 200, 0.36);
}

.title .sub:hover {
  text-decoration-color: rgba(54, 17, 200, 0.78);
}

.title .sub:focus-visible {
  outline-color: rgba(54, 17, 200, 0.62);
}

.sox-label {
  color: var(--harps-pres-warn);
}

.system-box,
.intel-box,
.pipeline-box,
.pill,
.flow-label,
.delivery-box,
.invoice-box-left,
.invoice-box-right {
  background: var(--harps-pres-surface);
  border-color: var(--harps-pres-border);
  color: var(--harps-pres-graphite);
  box-shadow: var(--harps-pres-shadow);
}

.box-finance,
.pipeline-box,
.pill {
  background: rgba(255, 255, 255, 0.84);
}

.box-mission-control,
.flow-label {
  background: rgba(255, 255, 255, 0.44);
  border-color: rgba(82, 99, 116, 0.26);
}

.green-pill {
  background: rgba(23, 140, 104, 0.13);
  border: 1px solid rgba(23, 140, 104, 0.28);
}

.green-pill-text,
.delivery-label {
  color: var(--harps-pres-green);
}

.blue-pill {
  background: rgba(54, 17, 200, 0.14);
  border: 1px solid rgba(54, 17, 200, 0.30);
}

.delivery-box {
  border-color: rgba(23, 140, 104, 0.36);
}

.invoice-box-left,
.invoice-box-right {
  border-color: rgba(54, 17, 200, 0.36);
}

.arrow-h,
.arrow-v,
.flow-arrow,
.long-arrow,
.down-arrow img,
.bracket img,
.bracket-main,
.bracket-left,
.bracket-right {
  filter: brightness(0) saturate(100%) invert(37%) sepia(18%) saturate(766%) hue-rotate(169deg) brightness(92%) contrast(86%);
  opacity: 0.52;
}

.flow-arrow,
.long-arrow,
.down-arrow img {
  filter: none;
  opacity: 0.68;
}

.person-icon svg path {
  fill: var(--harps-pres-graphite);
}

.faded {
  opacity: 0.34;
}

.edl-modal-overlay {
  background: rgba(15, 23, 42, 0.16);
  backdrop-filter: blur(8px);
}

.edl-modal {
  box-shadow: 0 28px 80px rgba(15, 23, 42, 0.08), 0 2px 10px rgba(15, 23, 42, 0.06);
}

/* Final deck polish: Apple/WWDC-style restrained enterprise system. */
:root {
  --harps-pres-gray-95: #171C20;
  --harps-pres-gray-70: #526374;
  --harps-pres-gray-60: #6A8095;
  --harps-pres-gray-40: #A6B4C3;
  --harps-pres-indigo-70: #3611C8;
  --harps-pres-shadow-soft: 0 1px 2px rgba(15, 23, 42, 0.03), 0 10px 30px rgba(15, 23, 42, 0.04);
  --harps-pres-surface-final: rgba(255, 255, 255, 0.72);
  --harps-pres-surface-border-final: rgba(255, 255, 255, 0.65);
}

.slide {
  box-shadow: 0 30px 90px rgba(15, 23, 42, 0.055) !important;
}

.slide :where(.title, .title .main, .thank-you) {
  color: var(--harps-pres-gray-95) !important;
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  letter-spacing: -0.034em !important;
}

.slide :where(.subtitle, .description, .header > .subtitle) {
  color: var(--harps-pres-gray-70) !important;
  font-family: var(--font-text) !important;
  font-weight: 500 !important;
  font-size: calc(var(--sw) * 24 / 1920) !important;
  line-height: 1.25 !important;
  letter-spacing: -0.01em !important;
}

.slide :where(.bullet-list, .col-bullets, .numbered-list, .logic-list) {
  color: var(--harps-pres-gray-95) !important;
  font-family: var(--font-text) !important;
}

.slide :where(.bottom-text, .validated-data, .arrow-label, .story-detail, .ufs-support, .pipeline-label) {
  color: var(--harps-pres-gray-70) !important;
  font-family: var(--font-text) !important;
}

.slide :where(.step-label .highlight, .section-label .blue, .section-header, .story-eyebrow, .invoice-period, .title .sub) {
  color: var(--harps-pres-indigo-70) !important;
}

.slide :where(.system-box, .intel-box, .pipeline-box, .state-zone, .story-card, .invoice-story-card, .step-icon, .outcome-icon, .delivery-box, .invoice-box-left, .invoice-box-right) {
  box-shadow: var(--harps-pres-shadow-soft) !important;
}

.slide :where(.step-icon, .outcome-icon, .section-icon, .endpoint-icon, .col-icon) {
  border-color: rgba(214, 220, 230, 0.28) !important;
  box-shadow: var(--harps-pres-shadow-soft) !important;
}

.slide :where(.footer, .footer-text) {
  color: rgba(82, 99, 116, 0.78) !important;
}

.slide :where(.logo, .corner-logo, .footer-logo) {
  position: absolute !important;
  left: auto !important;
  right: 3.02% !important;
  top: 92.315% !important;
  width: 1.875% !important;
  height: auto !important;
  opacity: 1 !important;
  filter: none !important;
  color: var(--harps-pres-indigo-70) !important;
}

.slide :where(.logo, .corner-logo, .footer-logo, .logo img, .corner-logo img, img.footer-logo) {
  opacity: 1 !important;
  filter: none !important;
}

.slide :where(.logo img, .corner-logo img, img.footer-logo) {
  width: 100% !important;
  height: auto !important;
  display: block !important;
}
