*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--k-header-h) + 16px); }
body { -webkit-font-smoothing: antialiased; }
img, svg, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: none; }

/* Page content wrapper — semantic <main> without altering page layouts */
.page-main { display: contents; }

/* Brand gradient rule (crimson → blush → steel) */
.brand-rule {
  height: 3px;
  background: linear-gradient(90deg, var(--k-maroon) 0%, var(--k-blush) 50%, var(--k-steel) 100%);
}

/* Accessibility */
.skip-link {
  position: absolute; left: 16px; top: -100px; z-index: 1000;
  padding: 10px 18px; background: var(--k-ink); color: var(--k-white);
  font: 400 12px/1 var(--k-sans); letter-spacing: .08em; text-transform: uppercase;
}
.skip-link:focus { top: 16px; }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

:focus-visible { outline: 2px solid var(--k-crimson); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* Lenis smooth scrolling (see scripts/modules/smooth-scroll.js) */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

/* Word spans created by split-text.js for scroll-scrubbed heading reveals */
.section-title .split-word, .section-hl .split-word { display: inline-block; will-change: transform, opacity; }

/* Maroon is reserved for button hovers (plus the top header line and the footer). */
a[class*="btn"]:hover, button[class*="btn"]:hover,
a[class*="cta"]:hover, button[class*="cta"]:hover,
.site-header__cta:hover, .sidebar__cta:hover {
  background: var(--k-maroon) !important; border-color: var(--k-maroon) !important; color: #fff !important;
}

/* Images and video never have sharp corners: 5px site-wide */
:root { --k-radius-img: 5px; }
img, video, picture { border-radius: var(--k-radius-img); }
.photo, .stack-card, .stack-card__media, .sp__media .frame, .founder__visual, .vshow__video, .svc__media, .svc__figure {
  border-radius: var(--k-radius-img);
  overflow: hidden;
}
