/* 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: #062e28; --ns-primary-2: #0a3a33; --ns-primary-3: #032b26; --ns-primary-rgb: 6,46,40; --ns-primary-3-rgb: 3,43,38;
  --ns-accent: #1db596; --ns-accent-2: #3fd3b2; --ns-accent-deep: #0b7462; --ns-accent-rgb: 29,181,150;
  --ns-paper: #f5f8f7; --ns-ink: #062e28; --ns-muted: #4f5f5b; --ns-line: #dfe7e5;
  --ns-good: #256e3d; --ns-bad: #b4382f;
  --ns-sans: 'Onest', system-ui, sans-serif;
  --ol-grad: linear-gradient(118deg, #3fd3b2 0%, #12977f 52%, #0a5c50 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: 'Sora', 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: 'IBM Plex 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: #062e28; }
.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(18,151,127,.26), transparent 70%),
  radial-gradient(30% 40% at 18% 86%, rgba(63,211,178,.14), transparent 70%),
  radial-gradient(26% 34% at 52% 60%, rgba(10,92,80,.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: 'IBM Plex 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: #062e28 !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; }

/* Qualanta: the wordmark is ink on light; on dark grounds it is drawn white */


.ol-dwm { filter: none; }
html, body, * { scrollbar-width: thin; scrollbar-color: rgba(18,151,127,.32) transparent; }
::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-thumb { background: rgba(18,151,127,.32); border-radius: 8px; } ::-webkit-scrollbar-track { background: transparent; }
/* The motif sits still; only the lit rhomb breathes */
.q-motif, .q-motif g { animation: none !important; }
.slide.ol-light > .ol-texture .q-motif { opacity: .5; }
.q-lit { animation: qLit 4s ease-in-out infinite; } @keyframes qLit { 50% { opacity: .35; } }
