:root {
  --sc-canvas: #08090b;
  --sc-surface: #101217;
  --sc-ink: #f4f2ef;
  --sc-ink-soft: #9a9ba1;
  --sc-accent: #d8ff3e;
  --sc-accent-ink: #08090b;
  --sc-hairline: color-mix(in oklab, var(--sc-ink) 12%, transparent);
  --sc-hairline-strong: color-mix(in oklab, var(--sc-ink) 22%, transparent);
  --sc-font-display:
    "Instrument Sans",
    "Geist",
    system-ui,
    sans-serif;
  --sc-font-text:
    "Geist",
    system-ui,
    sans-serif;
  --sc-font-mono:
    "Geist Mono",
    ui-monospace,
    monospace;
  --sc-t-xs: clamp(0.75rem, 0.72rem + 0.15vw, 0.82rem);
  --sc-t-sm: clamp(0.875rem, 0.84rem + 0.18vw, 0.95rem);
  --sc-t-base: clamp(1rem, 0.96rem + 0.22vw, 1.125rem);
  --sc-t-lg: clamp(1.2rem, 1.1rem + 0.5vw, 1.5rem);
  --sc-t-xl: clamp(1.6rem, 1.35rem + 1.2vw, 2.25rem);
  --sc-t-2xl: clamp(2.1rem, 1.6rem + 2.4vw, 3.4rem);
  --sc-t-3xl: clamp(2.8rem, 1.9rem + 4.2vw, 5rem);
  --sc-t-4xl: clamp(3.4rem, 1.9rem + 6.6vw, 7.5rem);
  --sc-track-tight: -0.035em;
  --sc-track-snug: -0.02em;
  --sc-track-normal: -0.005em;
  --sc-track-wide: 0.08em;
  --sc-leading-none: 0.94;
  --sc-leading-tight: 1.06;
  --sc-leading-body: 1.62;
  --sc-measure: 62ch;
  --sc-1: 0.25rem;
  --sc-2: 0.5rem;
  --sc-3: 0.75rem;
  --sc-4: 1rem;
  --sc-5: 1.5rem;
  --sc-6: 2rem;
  --sc-7: 3rem;
  --sc-8: 4rem;
  --sc-9: 6rem;
  --sc-10: 8rem;
  --sc-11: 12rem;
  --sc-section: clamp(4.5rem, 9vw, 11rem);
  --sc-gutter: clamp(1.25rem, 5vw, 5.5rem);
  --sc-maxw: 82rem;
  --sc-r-sm: 6px;
  --sc-r-md: 12px;
  --sc-r-lg: 20px;
  --sc-r-pill: 999px;
  --sc-shadow-color: 220 40% 2%;
  --sc-e1: 0 1px 2px hsl(var(--sc-shadow-color) / 0.28), 0 2px 6px -1px hsl(var(--sc-shadow-color) / 0.20);
  --sc-e2: 0 2px 4px hsl(var(--sc-shadow-color) / 0.24), 0 8px 18px -4px hsl(var(--sc-shadow-color) / 0.30);
  --sc-e3:
    0 4px 8px hsl(var(--sc-shadow-color) / 0.22),
    0 18px 40px -8px hsl(var(--sc-shadow-color) / 0.38),
    0 48px 90px -24px hsl(var(--sc-shadow-color) / 0.30);
  --sc-edge: inset 0 1px 0 color-mix(in oklab, var(--sc-ink) 10%, transparent);
  --sc-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --sc-ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
  --sc-ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);
  --sc-d-fast: 160ms;
  --sc-d-base: 240ms;
  --sc-d-slow: 420ms;
  --sc-z-stage: 1;
  --sc-z-copy: 20;
  --sc-z-chrome: 60;
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}
body {
  margin: 0;
  background: var(--sc-canvas);
  color: var(--sc-ink);
  font-family: var(--sc-font-text);
  font-size: var(--sc-t-base);
  line-height: var(--sc-leading-body);
  letter-spacing: var(--sc-track-normal);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-synthesis-weight: none;
  overflow-x: clip;
}
img,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}
button,
input,
select,
textarea {
  font: inherit;
  color: inherit;
}
::selection {
  background: var(--sc-accent);
  color: var(--sc-accent-ink);
}
:root {
  caret-color: var(--sc-accent);
  accent-color: var(--sc-accent);
}
:focus-visible {
  outline: 2px solid var(--sc-accent);
  outline-offset: 3px;
  border-radius: var(--sc-r-sm);
}
:where(a) {
  color: inherit;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.22em;
}
@supports (scrollbar-color: auto) {
  html {
    scrollbar-color: color-mix(in oklab, var(--sc-ink) 26%, transparent) transparent;
    scrollbar-width: thin;
  }
}
:where(table, .sc-nums, [data-sc-count]) {
  font-variant-numeric: tabular-nums;
}
.sc-display {
  font-family: var(--sc-font-display);
  font-weight: 500;
  line-height: var(--sc-leading-none);
  letter-spacing: var(--sc-track-tight);
  text-wrap: balance;
  margin: 0;
}
.sc-display--xl {
  font-size: var(--sc-t-4xl);
}
.sc-display--lg {
  font-size: var(--sc-t-3xl);
}
.sc-display--md {
  font-size: var(--sc-t-2xl);
  letter-spacing: var(--sc-track-snug);
}
.sc-lede {
  font-size: var(--sc-t-lg);
  line-height: 1.44;
  letter-spacing: var(--sc-track-snug);
  color: var(--sc-ink);
  max-width: 46ch;
  text-wrap: pretty;
  margin: 0;
}
.sc-body {
  max-width: var(--sc-measure);
  color: var(--sc-ink-soft);
  text-wrap: pretty;
  margin: 0;
}
.sc-label {
  font-family: var(--sc-font-mono);
  font-size: var(--sc-t-xs);
  letter-spacing: var(--sc-track-wide);
  text-transform: uppercase;
  color: var(--sc-ink-soft);
}
.sc-wrap {
  width: 100%;
  max-width: var(--sc-maxw);
  margin-inline: auto;
  padding-inline: var(--sc-gutter);
}
.sc-section {
  padding-block: var(--sc-section);
}
.sc-stack > * + * {
  margin-top: var(--sc-4);
}
.sc-stack > :is(h1, h2, h3) {
  margin-top: var(--sc-7);
}
.sc-stack > :is(h1, h2, h3):first-child {
  margin-top: 0;
}
.sc-rule {
  height: 1px;
  border: 0;
  background: var(--sc-hairline);
  margin: 0;
}
.sc-act--pinned {
  position: relative;
}
.sc-stage {
  position: sticky;
  top: 0;
  height: 100vh;
  height: 100svh;
  overflow: clip;
  z-index: var(--sc-z-stage);
}
.sc-stage :is(video[data-sc-scrub], canvas[data-sc-sequence], .sc-stage__poster) {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
video[data-sc-scrub] {
  opacity: 0;
  transition: opacity 380ms var(--sc-ease-out);
}
.sc-has-clip video[data-sc-scrub] {
  opacity: 1;
}
.sc-stage__poster {
  z-index: 0;
  transition: opacity 380ms var(--sc-ease-out);
}
.sc-has-clip .sc-stage__poster {
  opacity: 0;
}
.sc-scrim {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  background:
    linear-gradient(
      var(--sc-scrim-angle, 180deg),
      color-mix(in oklab, var(--sc-canvas) var(--sc-scrim-a, 78%), transparent) 0%,
      color-mix(in oklab, var(--sc-canvas) 30%, transparent) 42%,
      transparent 68%);
}
.sc-scrim--bottom {
  --sc-scrim-angle: 0deg;
}
.sc-scrim--left {
  --sc-scrim-angle: 90deg;
}
.sc-scrim--right {
  --sc-scrim-angle: 270deg;
}
.sc-scrim--lead {
  background:
    linear-gradient(
      to top right,
      color-mix(in oklab, var(--sc-canvas) 94%, transparent) 0%,
      color-mix(in oklab, var(--sc-canvas) 72%, transparent) 30%,
      color-mix(in oklab, var(--sc-canvas) 30%, transparent) 52%,
      transparent 72%);
}
.sc-scrim--trail {
  background:
    linear-gradient(
      to top left,
      color-mix(in oklab, var(--sc-canvas) 94%, transparent) 0%,
      color-mix(in oklab, var(--sc-canvas) 72%, transparent) 30%,
      color-mix(in oklab, var(--sc-canvas) 30%, transparent) 52%,
      transparent 72%);
}
.sc-scrim--band {
  background:
    linear-gradient(
      to top,
      color-mix(in oklab, var(--sc-canvas) 94%, transparent) 0%,
      color-mix(in oklab, var(--sc-canvas) 74%, transparent) 22%,
      color-mix(in oklab, var(--sc-canvas) 30%, transparent) 42%,
      transparent 58%);
}
.sc-scrim--vignette {
  background:
    radial-gradient(
      120% 90% at 50% 45%,
      transparent 40%,
      color-mix(in oklab, var(--sc-canvas) 70%, transparent) 100%);
}
.sc-copy {
  position: absolute;
  z-index: var(--sc-z-copy);
  inset-inline: var(--sc-gutter);
  max-width: min(46rem, 76vw);
  will-change: opacity, transform;
}
.sc-copy--lead {
  left: var(--sc-gutter);
  bottom: clamp(3rem, 12vh, 9rem);
}
.sc-copy--center {
  inset-inline: auto;
  left: 50%;
  top: 50%;
  translate: -50% -50%;
  text-align: center;
}
.sc-copy--trail {
  inset-inline: auto;
  right: var(--sc-gutter);
  bottom: clamp(3rem, 12vh, 9rem);
  text-align: right;
}
[data-sc-cue] {
  opacity: 0;
  will-change: opacity, transform;
}
.sc-ready [data-sc-cue] {
  transition: none;
}
.sc-split {
  display: inline-block;
  overflow: hidden;
  vertical-align: top;
}
.sc-split--line {
  display: block;
  padding-bottom: 0.14em;
  margin-bottom: -0.14em;
}
.sc-split__i {
  display: inline-block;
  will-change: transform, opacity;
}
.sc-is-split {
  opacity: 1 !important;
}
[data-sc-pan] {
  display: flex;
  will-change: transform;
}
[data-sc-reveal] {
  will-change: clip-path;
}
[data-sc-parallax] {
  will-change: transform;
}
[data-sc-in],
[data-sc-stagger] > * {
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition: opacity 620ms var(--sc-ease-out), transform 620ms var(--sc-ease-out);
}
[data-sc-in].sc-in,
[data-sc-stagger] > .sc-in {
  opacity: 1;
  transform: none;
}
[data-sc-tilt] {
  transform-style: preserve-3d;
  will-change: transform;
}
[data-sc-magnet] {
  will-change: transform;
}
[data-sc-spotlight] {
  isolation: isolate;
}
:where([data-sc-spotlight]) {
  position: relative;
}
[data-sc-spotlight]::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;
  background:
    radial-gradient(
      28rem 28rem at calc(var(--sc-mx, 0.5) * 100%) calc(var(--sc-my, 0.5) * 100%),
      color-mix(in oklab, var(--sc-accent) 16%, transparent),
      transparent 70%);
  opacity: 0;
  transition: opacity var(--sc-d-slow) var(--sc-ease-out);
}
[data-sc-spotlight]:hover::after {
  opacity: 1;
}
[data-sc-mode=worldflight] {
  position: relative;
}
.sc-world {
  position: fixed;
  inset: 0;
  overflow: clip;
  z-index: var(--sc-z-stage);
  background: var(--sc-canvas);
}
.sc-world__seg {
  position: absolute;
  inset: 0;
  opacity: 0;
  will-change: opacity;
}
.sc-world__seg > :is(video, img, canvas) {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.sc-world__poster {
  z-index: 0;
  transform-origin: 50% 50%;
  transition: opacity 420ms var(--sc-ease-out);
}
.sc-world__seg > video {
  z-index: 1;
}
.sc-world__seg.sc-has-clip .sc-world__poster {
  opacity: 0;
}
video[data-sc-scrub].sc-has-clip {
  opacity: 1;
}
.sc-world__copy {
  position: fixed;
  inset: 0;
  z-index: var(--sc-z-copy);
  pointer-events: none;
}
.sc-world__scrim {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}
[data-sc-copy] {
  opacity: 0;
  pointer-events: none;
  will-change: opacity, transform;
}
.sc-ready [data-sc-copy] {
  transition: none;
}
.sc-world__spacer {
  pointer-events: none;
}
[data-sc-progress] {
  position: fixed;
  inset: 0 0 auto 0;
  height: 2px;
  z-index: var(--sc-z-chrome);
  background: var(--sc-accent);
  transform-origin: 0 50%;
  transform: scaleX(0);
  will-change: transform;
}
.sc-grain {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 3;
  opacity: 0.045;
}
.sc-grain::before {
  content: "";
  position: absolute;
  inset: -50%;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/></filter><rect width='140' height='140' filter='url(%23n)'/></svg>");
}
@media (prefers-reduced-motion: reduce) {
  [data-sc-in],
  [data-sc-stagger] > * {
    transform: none;
    transition-duration: 220ms;
  }
  [data-sc-parallax],
  [data-sc-pan],
  .sc-split__i {
    transform: none !important;
  }
  [data-sc-reveal] {
    clip-path: none !important;
  }
  [data-sc-act=pan] .sc-stage,
  [data-sc-act=pan] [data-sc-stage] {
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
  }
  [data-sc-pan] > * {
    scroll-snap-align: center;
  }
  [data-sc-spotlight]::after {
    display: none;
  }
  .sc-world__poster,
  [data-sc-copy] {
    transform: none !important;
  }
}
@media (max-width: 860px) {
  .sc-copy {
    inset-inline: var(--sc-gutter);
    max-width: none;
  }
  .sc-copy--trail {
    text-align: left;
  }
  .sc-stage {
    height: 100svh;
  }
  .sc-scrim--trail {
    background:
      linear-gradient(
        to top,
        color-mix(in oklab, var(--sc-canvas) 94%, transparent) 0%,
        color-mix(in oklab, var(--sc-canvas) 74%, transparent) 22%,
        color-mix(in oklab, var(--sc-canvas) 30%, transparent) 42%,
        transparent 58%);
  }
}
