/* Brand layer shared by every page: one type family (General Sans) and one
   multicolour gradient. Loaded after each page's own <style>, so it wins ties. */

:root {
  --font: "General Sans", system-ui, -apple-system, sans-serif;
  /* palette from the avatar: navy shirt, amber pattern, yellow backdrop */
  --grad: linear-gradient(100deg, #F2A01F 0%, #FFC93C 45%, #FFE14D 75%, #FFF08A 100%);
  /* text version stops at amber so the last letters stay readable on cream */
  /* text version: still mostly warm yellow-amber, deep enough to read on cream */
  --grad-text: linear-gradient(100deg, #E8932A 0%, #F2A900 30%, #FFC107 55%, #F5B000 80%, #E8932A 100%);
  --grad-soft: radial-gradient(42% 52% at 26% 30%, #FFE14D77, transparent 70%),
               radial-gradient(40% 48% at 72% 26%, #FFC93C55, transparent 70%),
               radial-gradient(42% 50% at 58% 78%, #F2A01F33, transparent 70%);
}

/* Type: one family, full weight range */
body, button, input, select, textarea { font-family: var(--font); }
body { font-weight: 400; letter-spacing: -.005em; }
b, strong { font-weight: 600; }
h1 { font-family: var(--font); font-weight: 300; letter-spacing: -.045em; line-height: .98; }
h2 { font-family: var(--font); font-weight: 400; letter-spacing: -.035em; }
h3, h4 { font-family: var(--font); font-weight: 500; letter-spacing: -.02em; }
.num b, .metric b, .chip b, .big, .kpi b { font-family: var(--font); font-weight: 400; letter-spacing: -.04em; }
.eyebrow { font-weight: 500; }
.btn { font-weight: 500; }

/* Accent words: General Sans italic filled with the gradient */
.serif {
  font-family: var(--font) !important;
  font-style: italic; font-weight: 400; letter-spacing: -.04em;
  background: var(--grad-text); background-size: 200% 100%; -webkit-background-clip: text; background-clip: text;
  animation: gradflow 7s ease-in-out infinite alternate;
  color: transparent !important; -webkit-text-fill-color: transparent;
  /* room for descenders (g, y) and the italic overhang inside the clipped gradient */
  padding: .04em .12em .2em .02em; margin: 0 -.06em -.2em -.02em;
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
}
.mark::after { display: none !important; }

/* Gradient touches */
.eyebrow::before { background: var(--grad) !important; }
.hero::before { background: var(--grad-soft) !important; filter: blur(30px); }
.num.y { background: var(--grad) !important; color: #121212 !important; }
.num.y p { color: #121212b3 !important; }
.cta .tx::before { background: radial-gradient(closest-side, #FFE14D55, #E8932A33 45%, transparent) !important; }
.car-dots i.on { background: var(--grad) !important; }
::selection { background: #FFE14D88; }

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) { --grad-soft: radial-gradient(40% 50% at 24% 30%, #3446B833, transparent 70%), radial-gradient(40% 48% at 70% 26%, #FFE14D33, transparent 70%); --grad-text: linear-gradient(100deg, #8EA0FF 0%, #B9C3FF 30%, #F2A01F 70%, #FFE14D 100%); }
}
.cta .btn.pri { background: var(--grad) !important; color: #121212 !important; }
/* dark panels: light-to-yellow text gradient so it reads on near-black */
.cta .serif, .next .serif { background-image: linear-gradient(100deg, #FFE14D 0%, #FFC93C 30%, #F2A01F 55%, #FFE14D 80%, #FFF3A6 100%) !important; }

/* the gradient slowly flows across accent words */
.word.serif { animation: word .9s cubic-bezier(.2,.8,.2,1) forwards, gradflow 7s ease-in-out infinite alternate; }
@keyframes gradflow { from { background-position: 0% 50%; } to { background-position: 100% 50%; } }
/* "grow." ticker: +0% → +100% → $$$$ → grow. (see hero script) */
.word.serif { font-variant-numeric: tabular-nums; }
@media (prefers-reduced-motion: reduce) { .serif { animation: none !important; } }

/* Polish flag in the footer */
.flag { display: inline-block; vertical-align: -1px; margin: 0 2px; border-radius: 2px; }
.heart .flag { transition: transform .3s; } .heart:hover .flag { transform: rotate(-8deg) scale(1.15); }

/* scroll progress */
.sprog { position: fixed; left: 0; top: 0; right: 0; height: 3px; z-index: 70; background: var(--grad); transform-origin: 0 50%; transform: scaleX(0); pointer-events: none; }

/* section headings rise word by word */
h2.rv.words { opacity: 1 !important; transform: none !important; filter: none !important; }
h2.words .wd { display: inline-block; opacity: 0; transform: translateY(.45em) rotate(2deg); filter: blur(6px);
  transition: opacity .7s cubic-bezier(.2,.8,.2,1), transform .9s cubic-bezier(.2,.8,.2,1), filter .7s; transition-delay: calc(var(--i) * 55ms); }
h2.words.in .wd { opacity: 1; transform: none; filter: none; }
h2.words .wd.serif { padding-bottom: .2em; }

@media (prefers-reduced-motion: reduce) { .sprog { display: none; } }
