/* Gradient Rising Foundation — CSS Framer's runtime used to inject, which the server render
 * does not carry. Everything else is in each page's own <style>. */

/* The pointer-following butterfly (grf.js · cursor). Framer: position fixed, z-index 13, no
 * pointer events; the component root blends with mix-blend-mode: luminosity. */
.grf-cursor {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 13;
  pointer-events: none;
  opacity: 0;
  will-change: transform, opacity;
}
.grf-cursor[hidden] { display: none; }
.grf-cursor-box {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 100px;
  mix-blend-mode: luminosity;
  overflow: visible;
}
.grf-cursor-box canvas { flex: none; display: block; }
.grf-cursor-box canvas[hidden] { display: none; }

/* /changelog — the gradient hairlines Framer drew with styled-components overrides
 * (captured from the live site's stylesheet): the card, the button, the image. */
.ikloWz::before,
.lmOKFC::before,
.KcGos::before {
  content: "";
  position: absolute;
  inset: 0px;
  padding: 1px;
  pointer-events: none;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#fff 0 0) content-box exclude, linear-gradient(#fff 0 0);
}
.ikloWz::before {
  border-radius: 10px;
  background: linear-gradient(35deg, rgba(255, 255, 255, 0) 33.33%, rgb(255, 255, 255) 95%), rgba(255, 255, 255, 0.1);
}
.lmOKFC::before,
.KcGos::before {
  border-radius: 8px;
  background: linear-gradient(10deg, rgba(255, 255, 255, 0) 33.33%, rgb(255, 255, 255) 95%), rgba(255, 255, 255, 0.1);
}
@media (prefers-color-scheme: dark) {
  .ikloWz::before,
  .lmOKFC::before,
  .KcGos::before {
    background: linear-gradient(253deg, rgba(60, 60, 120, 0.1) 0%, rgba(60, 60, 120, 0) 100%);
  }
}

/* Lenis, as Framer's Smooth Scroll injected it (the server render carries the first three). */
.lenis.lenis-stopped { overflow: hidden; }
.lenis.lenis-scrolling iframe { pointer-events: none; }
