/*
 * The base for every page: reset, accessibility helpers and Lenis's rules.
 * style.css and the component stylesheets layer the site's look on top.
 */

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

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  overflow-x: clip;
}

body {
  margin: 0;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

img, svg, video, canvas { display: block; max-width: 100%; }
img, video { height: auto; }
button, input, select, textarea { font: inherit; color: inherit; letter-spacing: inherit; }
button { cursor: pointer; }
a { color: inherit; }
h1, h2, h3, h4, h5, p, figure, blockquote, ul, ol, dl, dd { margin: 0; }
ul[role="list"], ol[role="list"] { list-style: none; padding: 0; }
:where(h1, h2, h3, h4) { text-wrap: balance; }
:where(p) { text-wrap: pretty; }
[hidden] { display: none !important; }

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

.skip-link {
  position: fixed;
  left: 1rem; top: 1rem;
  z-index: 1000;
  padding: 0.75rem 1rem;
  background: #fff; color: #000;
  font: 600 0.9rem/1 system-ui, sans-serif;
  text-decoration: none;
  transform: translateY(-300%);
}
.skip-link:focus { transform: none; }

:focus-visible {
  outline: 2px solid var(--focus, currentColor);
  outline-offset: 3px;
}

/* No-JS: things that only make sense with scripts stay hidden */
.no-js .js-only { display: none !important; }

/* Lenis (smooth scrolling) */
html.lenis, html.lenis body { height: auto; }
.lenis:not(.lenis-autoToggle).lenis-stopped { overflow: clip; }
.lenis [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-smooth iframe { pointer-events: none; }

/* Seamless ticker (assets/ticker.js fills two identical halves) */
.ticker { overflow: hidden; white-space: nowrap; }
@keyframes ticker { to { transform: translateX(-50%); } }
