*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 18px); background: var(--surface); }
html[data-motion="off"] { scroll-behavior: auto; }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--step-0);
  line-height: 1.6;
  color: var(--ink-900);
  background: var(--surface-soft);
  overflow-x: clip;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.is-drawer-open { overflow: hidden; }
img, picture, svg { display: block; max-width: 100%; }
img { height: auto; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
address { font-style: normal; }
h1, h2, h3, p, blockquote, figure { margin-top: 0; }
h1, h2, h3 { font-family: var(--font-display); color: var(--navy-900); line-height: 1.08; letter-spacing: -.035em; }
h1 { font-size: var(--step-5); margin-bottom: var(--space-4); }
h2 { font-size: var(--step-4); margin-bottom: var(--space-4); }
h3 { font-size: var(--step-1); margin-bottom: var(--space-2); }
p { color: var(--ink-700); }
:focus-visible { outline: 3px solid rgba(32, 166, 174, .45); outline-offset: 4px; border-radius: .25rem; }
::selection { background: var(--teal-300); color: var(--navy-950); }
.svg-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.skip-link { position: fixed; z-index: 9999; left: 1rem; top: .75rem; padding: .7rem 1rem; background: var(--navy-900); color: #fff; border-radius: var(--radius-pill); transform: translateY(-180%); transition: transform 180ms ease; }
.skip-link:focus { transform: translateY(0); }
.container { width: min(calc(100% - 2rem), var(--container)); margin-inline: auto; }
.section { position: relative; padding-block: var(--space-8); }
.section--white { background: rgba(255,255,255,.88); }
.eyebrow { margin-bottom: .75rem; font-size: .78rem; line-height: 1.2; font-weight: 800; letter-spacing: .16em; color: var(--teal-600); text-transform: uppercase; }
.reveal { opacity: 1; transform: none; filter: none; }
.js .reveal {
  --reveal-x: 0px;
  --reveal-y: 24px;
  --reveal-scale: 1;
  opacity: 0;
  transform: translate3d(var(--reveal-x), var(--reveal-y), 0) scale(var(--reveal-scale));
  filter: blur(2px);
  transition:
    opacity 680ms var(--ease),
    transform 760ms cubic-bezier(.2,.75,.2,1),
    filter 620ms ease;
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}
.js .reveal[data-reveal="left"] { --reveal-x: -34px; --reveal-y: 0px; }
.js .reveal[data-reveal="right"] { --reveal-x: 34px; --reveal-y: 0px; }
.js .reveal[data-reveal="scale"] { --reveal-x: 0px; --reveal-y: 16px; --reveal-scale: .965; }
.js .reveal[data-reveal="fade"] { --reveal-x: 0px; --reveal-y: 0px; --reveal-scale: .99; }
.js .reveal.is-visible { opacity: 1; transform: translate3d(0,0,0) scale(1); filter: blur(0); }
html[data-motion="off"] .reveal, html[data-motion="off"] .js .reveal { opacity: 1; transform: none; filter: none; transition: none; }

.section-polish { isolation: isolate; overflow: clip; }
.section-polish::before {
  content: "";
  position: absolute;
  z-index: -1;
  width: clamp(15rem, 28vw, 32rem);
  aspect-ratio: 1;
  border-radius: 50%;
  right: -12%;
  top: 8%;
  background: radial-gradient(circle, rgba(32,166,174,.075), transparent 68%);
  pointer-events: none;
}
.section-polish:nth-of-type(even)::before { right: auto; left: -14%; top: 18%; background: radial-gradient(circle, rgba(18,50,102,.055), transparent 68%); }
.section-polish > .container { position: relative; z-index: 1; }

.ambient { position: fixed; inset: 0; z-index: -2; pointer-events: none; overflow: hidden; opacity: .52; }
.ambient__orb { position: absolute; border-radius: 50%; filter: blur(2px); background: radial-gradient(circle, rgba(32,166,174,.13), rgba(32,166,174,0) 70%); animation: ambientFloat 16s ease-in-out infinite alternate; }
.ambient__orb--one { width: 36rem; height: 36rem; top: 8%; right: -13rem; }
.ambient__orb--two { width: 30rem; height: 30rem; bottom: 12%; left: -12rem; animation-duration: 20s; }
.ambient__line { position: absolute; width: 30rem; height: 1px; background: linear-gradient(90deg, transparent, rgba(20,140,150,.22), transparent); transform: rotate(-28deg); animation: ambientDrift 18s linear infinite; }
.ambient__line--one { top: 31%; left: -8rem; }
.ambient__line--two { top: 63%; right: -8rem; animation-delay: -8s; }
html[data-motion="off"] .ambient * { animation: none !important; }
@keyframes ambientFloat { to { transform: translate3d(-2rem, 2.4rem, 0) scale(1.05); } }
@keyframes ambientDrift { from { transform: translateX(-3rem) rotate(-28deg); } to { transform: translateX(3rem) rotate(-28deg); } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .js .reveal { opacity: 1; transform: none; }
}

/* Final asset polish: responsive AVIF/WebP pictures retain the exact layout
   behaviour of the approved image components. */
picture.responsive-picture {
  display: block;
  width: 100%;
  height: 100%;
  min-width: 0;
  overflow: hidden;
}
picture.responsive-picture > img {
  display: block;
  width: 100%;
  height: 100%;
  image-rendering: auto;
  backface-visibility: hidden;
  transform: translateZ(0);
}
img[data-asset-origin="generated-illustrative-asset"] {
  filter: saturate(1.025) contrast(1.025);
}

/* Natural intrinsic height is the safe default; component-specific wrappers
   opt into full-height behaviour below. */
picture.responsive-picture { height: auto; }
picture.responsive-picture > img { height: auto; }
