/* Outlay's palette and type for the web deck runtime, as on the Outlay card on libraeurope.com.
   Every colour in the runtime comes from these tokens. */
:root {
  --ns-primary: #052438; --ns-primary-2: #0b3349; --ns-primary-3: #03182a; --ns-primary-rgb: 5,36,56; --ns-primary-3-rgb: 3,24,42;
  --ns-accent: #62cf59; --ns-accent-2: #6ce484; --ns-accent-deep: #188490; --ns-accent-rgb: 98,207,89;
  --ns-paper: #f2f6f7; --ns-ink: #052438; --ns-muted: #41535d; --ns-line: #d9e6e9;
  --ns-good: #256e3d; --ns-bad: #b4382f;
  --ns-sans: 'Geist', system-ui, sans-serif;
  --ol-grad: linear-gradient(118deg, #6ce484 0%, #2aa3aa 52%, #167f8c 100%);
}

/* Type: Exo 2 for titles and figures, JetBrains Mono for labels */
.slide .ns-title, .slide h1, .slide h2, .slide h3, .slide .ns-stat b, .ns-cover .ns-kpi b, .ns-div .num, .slide .card.num span, .slide .st span {
  font-family: 'Exo 2', system-ui, sans-serif !important; letter-spacing: -.02em; }
.slide .ns-title { font-weight: 700 !important; }
.slide .ns-kicker, .slide .ns-chip, .ns-div .ph, #ns-foot .ph, .slide .option em, .slide .ol-stats span {
  font-family: 'JetBrains Mono', ui-monospace, monospace !important; font-weight: 500; }
.slide .ns-kicker { color: var(--ns-accent-deep); }
.slide .ns-kicker::before { background: var(--ol-grad); }

/* Dark grounds: Outlay ink with its fields, waves and gradient rule instead of the runtime's panels */
.ns-cover, .ns-div { background: #052438; }
.ns-cover .ns-art, .ns-cover .ns-scrim, .ns-div .ns-art, .ns-div .ns-scrim { display: none; }
.ol-texture { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.ol-field { position: absolute; inset: -20%; background:
  radial-gradient(38% 46% at 78% 22%, rgba(42,163,170,.26), transparent 70%),
  radial-gradient(30% 40% at 18% 86%, rgba(108,228,132,.14), transparent 70%),
  radial-gradient(26% 34% at 52% 60%, rgba(22,127,140,.16), transparent 70%);
  animation: olDrift 26s ease-in-out infinite alternate; }
.ol-waves { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .55; }
.ol-waves g { animation: olWaves 40s ease-in-out infinite alternate; }
.ol-rule { position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--ol-grad); }
.slide.ol-light { isolation: isolate; }
.slide.ol-light > .ol-texture { z-index: -1; }
.slide.ol-light > .ol-texture .ol-waves { opacity: .14; -webkit-mask-image: linear-gradient(200deg, #000 0%, transparent 40%); mask-image: linear-gradient(200deg, #000 0%, transparent 40%); }
.slide.ol-light > .ol-texture .ol-rule { top: 0; bottom: auto; height: 6px; }
@keyframes olDrift { 0% { transform: translate3d(0,0,0) scale(1); } 50% { transform: translate3d(-4%,3%,0) scale(1.06); } 100% { transform: translate3d(3%,-2%,0) scale(1.02); } }
@keyframes olWaves { from { transform: translateX(0); } to { transform: translateX(-3%); } }
@media (prefers-reduced-motion: reduce) { .ol-field, .ol-waves g { animation: none; } }

/* Cover and openers: OUTLAY by Libra Europe */
.ol-brandrow { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 64px; }
.ol-lockup { display: flex; flex-direction: column; gap: 12px; }
.ol-lockup .wm { height: 72px; width: auto; }
.ol-by { display: flex; align-items: center; gap: 12px; font-family: 'JetBrains Mono', monospace !important; font-size: 18px; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.7); }
.ol-by img { height: 34px; }
.ol-brandrow .ps { height: 96px; }
.ns-div .ol-mini { position: absolute; right: calc(var(--ox, 0px) + 120px); top: 96px; height: 40px; opacity: .9; }
.ns-cover h1 span { color: var(--ns-accent-2); }
.ns-cover .ns-kpi.accent b { color: var(--ns-accent-2); }
.ns-start { background: var(--ol-grad) !important; color: #052438 !important; }

/* Footer logo: keep the Libra Europe logo's own colours (the runtime would flatten it to one colour); the white version on dark slides */
#stage.ns-dark #ns-foot .logo-img { filter: none; }
#ns-foot .logo { -webkit-mask: none !important; mask: none !important; background: var(--ns-logo) right center / contain no-repeat !important; }
#stage.ns-dark #ns-foot .logo { background-image: var(--logo-light) !important; }
