/* src/styles/styles.scss */
*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  min-height: 100%;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body {
  margin: 0;
  min-width: 0;
}
template,
[hidden] {
  display: none !important;
}
:root {
  --font-family-body:
    "Avenir Next",
    "Aptos",
    "Segoe UI",
    "Helvetica Neue",
    Arial,
    sans-serif;
  --font-family-heading: var(--font-family-body);
  --font-family-monospace: var(--font-family-body);
  color-scheme: light;
  --color-brand-50: #effaf1;
  --color-brand-100: #dcf5df;
  --color-brand-200: #bceac2;
  --color-brand-300: #8ddc98;
  --color-brand-400: #62c970;
  --color-brand-500: #53c638;
  --color-brand-600: #36a92d;
  --color-brand-700: #247b34;
  --color-brand-800: #1f612c;
  --color-brand-900: #1b4f27;
  --color-brand-950: #0d2a17;
  --color-navy-50: #eef4ff;
  --color-navy-100: #dae7ff;
  --color-navy-200: #b9d0ff;
  --color-navy-300: #8fb0ff;
  --color-navy-400: #6789f2;
  --color-navy-500: #4b67d6;
  --color-navy-600: #384db0;
  --color-navy-700: #2b3a88;
  --color-navy-800: #202c66;
  --color-navy-900: #141f45;
  --color-navy-950: #0a1028;
  --color-neutral-0: #ffffff;
  --color-neutral-50: #f7f9fb;
  --color-neutral-100: #eef3f7;
  --color-neutral-200: #dde6ee;
  --color-neutral-300: #c6d3df;
  --color-neutral-400: #9fb0bf;
  --color-neutral-500: #73879a;
  --color-neutral-600: #56697a;
  --color-neutral-700: #405161;
  --color-neutral-800: #293743;
  --color-neutral-900: #162331;
  --color-neutral-950: #0a111c;
  --color-accent-blue: #2563eb;
  --color-accent-cyan: #06b6d4;
  --color-accent-violet: #7c3aed;
  --color-accent-coral: #f9735b;
  --color-success: #2f855a;
  --color-success-surface: #eef8f3;
  --color-warning: #b86e00;
  --color-warning-surface: #fff4dd;
  --color-danger: #c0392b;
  --color-danger-surface: #fdeeee;
  --color-info: #2b6cb0;
  --color-info-surface: #eaf3ff;
  --color-page-background: #ffffff;
  --color-page-gradient-primary: #e4f4ff;
  --color-page-gradient-secondary: #e3f8e8;
  --color-page-gradient-accent: #eef3f7;
  --color-ambient-blue: #dff0ff;
  --color-ambient-green: #dff8e5;
  --color-ambient-violet: #eef3f7;
  --color-surface: #ffffff;
  --color-surface-subtle: #f5f8fa;
  --color-surface-raised: #ffffff;
  --color-surface-elevated: #ffffff;
  --color-surface-blue-subtle: #edf6ff;
  --color-surface-green-subtle: #eefaf1;
  --color-surface-violet-subtle: #f4f7f9;
  --color-surface-inverse: #0a1028;
  --color-surface-dark-navy: #0a1028;
  --color-hero-ambient-blue: #dff0ff;
  --color-hero-ambient-green: #dff8e5;
  --color-glass-surface: rgba(255, 255, 255, 0.88);
  --color-glass-surface-strong: rgba(255, 255, 255, 0.96);
  --color-glass-border: rgba(191, 208, 223, 0.68);
  --color-header-surface: #263956;
  --color-card-surface: rgba(255, 255, 255, 0.96);
  --color-dropdown-surface: rgba(255, 255, 255, 0.98);
  --color-footer-surface: #263956;
  --color-footer-link: rgba(255, 255, 255, 0.74);
  --color-border: #dbe5ee;
  --color-border-strong: #bfd0df;
  --color-section-border: #dce8f1;
  --color-card-border: #dbe7ef;
  --color-card-border-hover: #8edb98;
  --color-text-primary: #0b1739;
  --color-text-secondary: #465570;
  --color-text-muted: #6d7990;
  --color-text-inverse: #ffffff;
  --color-link: #2563eb;
  --color-link-hover: #202c66;
  --color-focus: #53c638;
  --color-action-primary: #263956;
  --color-action-primary-hover: #314865;
  --color-action-secondary: #141f45;
  --space-0: 0;
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-7: 1.75rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-28: 7rem;
  --space-32: 8rem;
  --space-40: 10rem;
  --section-space-sm: clamp(2.5rem, 2.2rem + 1.2vw, 3.25rem);
  --section-space-md: clamp(3.5rem, 3rem + 2vw, 5rem);
  --section-space-lg: clamp(4.25rem, 3.6rem + 2.5vw, 6rem);
  --section-space-xl: clamp(4.75rem, 4rem + 3vw, 7rem);
  --page-section-space: clamp(3.5rem, 3rem + 2vw, 5rem);
  --page-hero-space: clamp(4.25rem, 3.6rem + 2.5vw, 6rem);
  --page-section-gap: clamp(1.5rem, 2.2vw, 2.5rem);
  --header-height: clamp(4.25rem, 4rem + 0.75vw, 4.75rem);
  --font-size-xs: 0.75rem;
  --font-size-sm: 0.875rem;
  --font-size-base: 1rem;
  --font-size-lg: 1.125rem;
  --font-size-xl: 1.25rem;
  --font-size-2xl: 1.5rem;
  --font-size-3xl: 1.875rem;
  --font-size-4xl: 2.25rem;
  --font-size-5xl: 3rem;
  --font-size-6xl: 3.75rem;
  --font-size-display-xl: clamp(3.25rem, 5vw, 4.75rem);
  --font-size-display-lg: clamp(2.75rem, 4.35vw, 4rem);
  --font-size-h1: clamp(2.65rem, 4.5vw, 4rem);
  --font-size-h2: clamp(2rem, 3vw, 3rem);
  --font-size-h3: clamp(1.4rem, 1.9vw, 1.8rem);
  --font-size-h4: clamp(1.2rem, 1.25vw, 1.45rem);
  --font-size-body-lg: 1.125rem;
  --font-size-body: 1rem;
  --font-size-body-sm: 0.9375rem;
  --font-size-caption: 0.8125rem;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --line-height-tight: 1.08;
  --line-height-heading: 1.22;
  --line-height-body: 1.6;
  --line-height-relaxed: 1.68;
  --letter-spacing-tight: 0;
  --letter-spacing-normal: 0;
  --letter-spacing-wide: 0.08em;
  --radius-none: 0;
  --radius-sm: 0.25rem;
  --radius-md: 0.375rem;
  --radius-lg: 0.5rem;
  --radius-xl: 0.75rem;
  --radius-2xl: 0.875rem;
  --radius-3xl: 1rem;
  --radius-header: 0;
  --radius-section: 1rem;
  --radius-pill: 9999px;
  --shadow-xs: 0 1px 2px rgba(10, 23, 57, 0.04);
  --shadow-sm: 0 3px 10px rgba(10, 23, 57, 0.06);
  --shadow-md: 0 10px 24px rgba(10, 23, 57, 0.08);
  --shadow-lg: 0 18px 40px rgba(10, 23, 57, 0.1);
  --shadow-overlay: 0 24px 64px rgba(10, 23, 57, 0.14);
  --shadow-glass: 0 14px 40px rgba(10, 23, 57, 0.08), 0 1px 0 rgba(255, 255, 255, 0.9) inset;
  --shadow-card: 0 10px 28px rgba(10, 23, 57, 0.07);
  --shadow-card-hover: 0 16px 36px rgba(10, 23, 57, 0.11);
  --shadow-dropdown: 0 24px 56px rgba(10, 23, 57, 0.15), 0 8px 20px rgba(10, 23, 57, 0.08);
  --shadow-header: 0 12px 32px rgba(10, 23, 57, 0.14);
  --duration-fast: 120ms;
  --duration-normal: 180ms;
  --duration-slow: 260ms;
  --easing-standard: cubic-bezier(0.2, 0, 0, 1);
  --easing-emphasized: cubic-bezier(0.16, 1, 0.3, 1);
  --z-base: 0;
  --z-sticky: 100;
  --z-dropdown: 200;
  --z-overlay: 800;
  --z-modal: 900;
  --z-toast: 950;
  --z-consent: 1000;
  --breakpoint-xs: 0;
  --breakpoint-sm: 576px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 992px;
  --breakpoint-xl: 1200px;
  --breakpoint-xxl: 1400px;
  --container-sm: 33.75rem;
  --container-md: 45rem;
  --container-lg: 60rem;
  --container-xl: 75rem;
  --container-2xl: 75rem;
  --container-gutter: clamp(1rem, 0.5rem + 2.2vw, 2.5rem);
  --content-width-reading: 74ch;
  --content-width-wide: 100rem;
}
html {
  background-color: var(--color-navy-950);
  overscroll-behavior-y: none;
  scroll-behavior: smooth;
  scroll-padding-block-start: calc(var(--header-height) + var(--space-4));
  scrollbar-gutter: stable;
}
:where(main [id]) {
  scroll-margin-block-start: calc(var(--header-height) + var(--space-4));
}
body {
  background:
    radial-gradient(
      circle at 12% 0%,
      color-mix(in srgb, var(--color-page-gradient-secondary) 24%, transparent),
      transparent 28rem),
    radial-gradient(
      circle at 88% 4rem,
      color-mix(in srgb, var(--color-page-gradient-primary) 22%, transparent),
      transparent 34rem),
    var(--color-page-background);
  color: var(--color-text-primary);
  font-family: var(--font-family-body);
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
  min-width: 0;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
:focus-visible {
  outline: 0.1875rem solid var(--color-focus);
  outline-offset: 0.125rem;
}
:focus:not(:focus-visible) {
  outline: none;
}
::selection {
  background-color: var(--color-brand-200);
  color: var(--color-text-primary);
}
hr {
  border: 0;
  border-top: 1px solid var(--color-border);
  margin-block: var(--space-8);
}
body {
  overflow-wrap: break-word;
}
:where(h1, h2, h3, h4, h5, h6) {
  margin: 0 0 var(--space-4);
  color: var(--color-text-primary);
  font-family: var(--font-family-heading);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-heading);
  text-wrap: balance;
}
h1 {
  font-size: var(--font-size-h1);
  letter-spacing: var(--letter-spacing-tight);
}
h2 {
  font-size: var(--font-size-h2);
  letter-spacing: var(--letter-spacing-tight);
}
h3 {
  font-size: var(--font-size-h3);
}
h4 {
  font-size: var(--font-size-h4);
}
h5 {
  font-size: var(--font-size-lg);
}
h6 {
  font-size: var(--font-size-base);
  letter-spacing: var(--letter-spacing-wide);
}
p,
ul,
ol,
dl,
blockquote,
pre,
table {
  margin: 0 0 var(--space-4);
}
p {
  color: inherit;
  max-inline-size: var(--content-width-reading);
}
small {
  font-size: var(--font-size-body-sm);
}
strong {
  font-weight: var(--font-weight-semibold);
}
a {
  color: var(--color-link);
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.16em;
  transition: color var(--duration-fast) var(--easing-standard);
}
a:hover {
  color: var(--color-link-hover);
}
a:focus-visible {
  color: var(--color-link-hover);
}
:where(ul, ol) {
  padding-inline-start: var(--space-6);
}
table {
  border-collapse: collapse;
  inline-size: 100%;
}
th,
td {
  border-bottom: 1px solid var(--color-border);
  padding: var(--space-3) var(--space-4);
  text-align: left;
  vertical-align: top;
}
thead th {
  color: var(--color-text-secondary);
  font-weight: var(--font-weight-semibold);
}
code,
kbd,
samp,
pre {
  font-family: var(--font-family-monospace);
}
code {
  background-color: var(--color-surface-subtle);
  border-radius: var(--radius-sm);
  color: var(--color-text-primary);
  font-size: 0.95em;
  padding: 0.1em 0.35em;
}
pre {
  background-color: var(--color-surface-subtle);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  line-height: var(--line-height-relaxed);
  overflow: auto;
  padding: var(--space-4);
}
kbd {
  background-color: var(--color-surface-inverse);
  border-radius: var(--radius-sm);
  color: var(--color-text-inverse);
  padding: 0.1em 0.35em;
}
img,
picture,
video,
canvas,
svg,
iframe {
  display: block;
  max-width: 100%;
}
img,
video {
  height: auto;
}
img {
  -webkit-user-drag: none;
  -webkit-user-select: none;
  user-select: none;
}
svg {
  fill: currentColor;
}
iframe {
  border: 0;
}
figure {
  margin: 0;
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
button,
input,
select,
textarea {
  color: inherit;
  font: inherit;
  font-family: var(--font-family-body);
  line-height: inherit;
}
button,
[type=button],
[type=reset],
[type=submit] {
  appearance: none;
}
button:not(:disabled),
[type=button]:not(:disabled),
[type=reset]:not(:disabled),
[type=submit]:not(:disabled) {
  cursor: pointer;
}
:where(button, input, select, textarea):disabled {
  cursor: not-allowed;
}
::placeholder {
  color: var(--color-text-muted);
  opacity: 1;
}
fieldset {
  border: 0;
  margin: 0;
  min-inline-size: 0;
  padding: 0;
}
legend {
  color: inherit;
  font: inherit;
  padding: 0;
}
textarea {
  resize: vertical;
}
option {
  color: inherit;
}
.visually-hidden:not(:focus):not(:active) {
  border: 0;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}
.skip-link {
  background-color: var(--color-surface-raised);
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
  color: var(--color-text-primary);
  display: inline-block;
  left: var(--space-4);
  padding: var(--space-3) var(--space-4);
  position: fixed;
  top: var(--space-4);
  transform: translateY(calc(-100% - var(--space-4) - 1.5rem));
  transition: transform var(--duration-fast) var(--easing-standard), box-shadow var(--duration-fast) var(--easing-standard);
  z-index: var(--z-consent);
}
.skip-link:focus {
  transform: translateY(0);
}
.focus-ring,
.focus-ring:focus-visible {
  outline: 0.1875rem solid var(--color-focus);
  outline-offset: 0.125rem;
}
.stack {
  display: flex;
  flex-direction: column;
  gap: var(--stack-gap, var(--space-6));
}
.cluster {
  align-items: var(--cluster-align, center);
  display: flex;
  flex-wrap: wrap;
  gap: var(--cluster-gap, var(--space-4));
  justify-content: var(--cluster-justify, flex-start);
}
.grid {
  align-items: start;
  display: grid;
  gap: var(--grid-gap, var(--space-6));
  grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--grid-min-col, 16rem)), 1fr));
}
.flow > * + * {
  margin-block-start: var(--flow-space, var(--space-4));
}
.center {
  margin-inline: auto;
  max-width: var(--center-max-width, var(--content-width-wide));
  padding-inline: var(--container-gutter);
  width: 100%;
}
.full-width {
  inline-size: 100%;
  max-inline-size: none;
}
.touch-target {
  min-block-size: 2.75rem;
  min-inline-size: 2.75rem;
}
.container {
  margin-inline: auto;
  max-width: var(--container-2xl);
  padding-inline: var(--container-gutter);
  width: 100%;
}
.container-wide {
  margin-inline: auto;
  max-width: var(--content-width-wide);
  padding-inline: var(--container-gutter);
  width: 100%;
}
.container-narrow {
  margin-inline: auto;
  max-width: var(--container-md);
  padding-inline: var(--container-gutter);
  width: 100%;
}
.content-reading {
  margin-inline: auto;
  max-width: var(--content-width-reading);
  padding-inline: var(--container-gutter);
  width: 100%;
}
.section {
  padding-block: var(--section-space-md);
}
.section-sm {
  padding-block: var(--section-space-sm);
}
.section-lg {
  padding-block: var(--section-space-lg);
}
.space-stack-sm {
  --stack-gap: var(--space-4);
}
.space-stack-md {
  --stack-gap: var(--space-6);
}
.space-stack-lg {
  --stack-gap: var(--space-8);
}
.space-flow-sm {
  --flow-space: var(--space-3);
}
.space-flow-md {
  --flow-space: var(--space-4);
}
.space-flow-lg {
  --flow-space: var(--space-6);
}
.space-grid-sm {
  --grid-gap: var(--space-4);
}
.space-grid-md {
  --grid-gap: var(--space-6);
}
.space-grid-lg {
  --grid-gap: var(--space-8);
}
.text-display-xl {
  font-family: var(--font-family-heading);
  font-size: var(--font-size-display-xl);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-tight);
  letter-spacing: var(--letter-spacing-tight);
}
.text-display-lg {
  font-family: var(--font-family-heading);
  font-size: var(--font-size-display-lg);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-tight);
  letter-spacing: var(--letter-spacing-tight);
}
.text-h1 {
  font-family: var(--font-family-heading);
  font-size: var(--font-size-h1);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-heading);
  letter-spacing: var(--letter-spacing-tight);
}
.text-h2 {
  font-family: var(--font-family-heading);
  font-size: var(--font-size-h2);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-heading);
  letter-spacing: var(--letter-spacing-tight);
}
.text-h3 {
  font-family: var(--font-family-heading);
  font-size: var(--font-size-h3);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-heading);
}
.text-h4 {
  font-family: var(--font-family-heading);
  font-size: var(--font-size-h4);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-heading);
}
.text-body-lg {
  font-size: var(--font-size-body-lg);
  line-height: var(--line-height-body);
}
.text-body {
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
}
.text-body-sm {
  font-size: var(--font-size-body-sm);
  line-height: var(--line-height-body);
}
.text-caption {
  font-size: var(--font-size-caption);
  line-height: var(--line-height-relaxed);
  letter-spacing: var(--letter-spacing-wide);
  text-transform: uppercase;
}
.text-muted {
  color: var(--color-text-muted);
}
.text-center {
  text-align: center;
}
.text-balance {
  text-wrap: balance;
}
:root {
  --public-dark-hero-heading-color: #f8fbff;
  --public-dark-hero-heading-accent-color: #9de678;
  --public-hero-copy-width: 48rem;
  --public-hero-lead-width: 39rem;
  --public-hero-summary-width: 34rem;
  --public-hero-summary-size: clamp(1.1rem, 0.98rem + 0.25vw, 1.25rem);
  --public-hero-copy-gap: var(--space-5);
  --public-hero-title-letter-spacing: -0.035em;
  --public-hero-title-line-height: var(--line-height-tight);
  --public-hero-lead-size: clamp(1.05rem, 1.5vw, 1.23rem);
  --public-hero-lead-line-height: 1.62;
  --public-hero-min-block-size: min(46rem, 100dvh);
  --public-feature-hero-min-block-size: var(--public-hero-min-block-size);
  --public-hero-padding-start: calc(var(--header-height) + var(--space-10));
  --public-hero-padding-end: var(--section-space-lg);
  --public-section-rule: var(--color-section-border);
  --public-panel-radius: var(--radius-section);
  --public-panel-shadow: var(--shadow-card);
  --public-brand-gradient:
    linear-gradient(
      135deg,
      color-mix(in srgb, var(--color-brand-400) 84%, white) 0%,
      var(--color-brand-500) 52%,
      color-mix(in srgb, var(--color-brand-600) 88%, var(--color-navy-950)) 100%);
  --public-card-gradient:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.99) 0%,
      color-mix(in srgb, var(--color-surface-subtle) 52%, white) 100%);
  --public-card-shadow: 0 1px 1px rgba(10, 23, 57, 0.035), 0 12px 34px rgba(10, 23, 57, 0.075);
  --public-card-shadow-hover: 0 2px 2px rgba(10, 23, 57, 0.04), 0 18px 42px rgba(10, 23, 57, 0.11);
}
.public-hero {
  margin-block-start: 0;
  min-block-size: var(--public-hero-min-block-size);
  padding-block: var(--public-hero-padding-start) var(--public-hero-padding-end);
}
.public-hero__copy {
  display: grid;
  gap: var(--public-hero-copy-gap);
  max-inline-size: var(--public-hero-copy-width);
  min-inline-size: 0;
}
.public-hero__eyebrow {
  font-family: var(--font-family-body);
  font-size: var(--font-size-caption);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.12em;
  line-height: var(--line-height-body);
  margin: 0;
  text-transform: uppercase;
}
.public-hero__title {
  font-family: var(--font-family-heading);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--public-hero-title-letter-spacing);
  line-height: var(--public-hero-title-line-height);
  margin: 0;
  text-wrap: balance;
}
.public-hero__lead {
  font-size: var(--public-hero-lead-size);
  line-height: var(--public-hero-lead-line-height);
  margin: 0;
  max-inline-size: var(--public-hero-lead-width);
  text-wrap: pretty;
}
.public-hero__actions {
  margin-block: 0;
  padding-block-start: 0;
}
.public-hero--parallax {
  --public-hero-copy-travel: 5rem;
  --public-hero-visual-travel: 7.5rem;
  --public-hero-mid-start: 10rem;
  --public-hero-mid-end: -10rem;
  isolation: isolate;
  overflow: clip;
  position: relative;
}
.public-hero--parallax.public-hero > app-container {
  position: relative;
  z-index: auto;
}
.public-hero--parallax.public-hero .public-hero__copy {
  position: relative;
  z-index: 4;
}
.public-hero--parallax.public-hero .public-hero__visual {
  position: relative;
  z-index: 2;
}
@supports (animation-timeline: view()) {
  .public-hero--parallax {
    view-timeline-axis: block;
    view-timeline-name: --public-hero-parallax;
  }
  @media (prefers-reduced-motion: no-preference) {
    .public-hero--parallax.public-hero .public-hero__copy,
    .public-hero--parallax.public-hero .public-hero__visual,
    .public-hero--parallax.public-hero .public-hero__mid-art {
      animation-duration: 1ms;
      animation-fill-mode: both;
      animation-range: exit-crossing 0% exit-crossing 100%;
      animation-timing-function: linear;
      animation-timeline: --public-hero-parallax;
      will-change: transform;
    }
    .public-hero--parallax.public-hero .public-hero__copy {
      animation-name: public-hero-copy-parallax;
    }
    .public-hero--parallax.public-hero .public-hero__visual {
      animation-name: public-hero-visual-parallax;
    }
    .public-hero--parallax.public-hero .public-hero__mid-art {
      animation-name: public-hero-mid-parallax;
      inset-block: min(var(--public-hero-mid-start), var(--public-hero-mid-end));
    }
  }
}
@media (prefers-reduced-motion: no-preference) {
  .public-hero--parallax.hero-parallax--fallback .public-hero__copy {
    animation: none;
    translate: 0 calc(var(--public-hero-copy-travel) * var(--hero-parallax-progress));
    will-change: transform;
  }
  .public-hero--parallax.hero-parallax--fallback .public-hero__visual {
    animation: none;
    translate: 0 calc(var(--public-hero-visual-travel) * var(--hero-parallax-progress));
    will-change: transform;
  }
  .public-hero--parallax.hero-parallax--fallback .public-hero__mid-art {
    animation: none;
    inset-block: min(var(--public-hero-mid-start), var(--public-hero-mid-end));
    translate: 0 calc(var(--public-hero-mid-start) + (var(--public-hero-mid-end) - var(--public-hero-mid-start)) * var(--hero-parallax-progress));
    will-change: transform;
  }
}
@media (max-width: 48rem) {
  .public-hero--parallax {
    --public-hero-copy-travel: 3rem;
    --public-hero-visual-travel: 4.5rem;
    --public-hero-mid-start: 6rem;
    --public-hero-mid-end: -6rem;
    min-block-size: auto;
  }
}
@keyframes public-hero-copy-parallax {
  0%, 12% {
    translate: 0 0;
  }
  to {
    translate: 0 var(--public-hero-copy-travel);
  }
}
@keyframes public-hero-visual-parallax {
  0%, 12% {
    translate: 0 0;
  }
  to {
    translate: 0 var(--public-hero-visual-travel);
  }
}
@keyframes public-hero-mid-parallax {
  0%, 12% {
    translate: 0 var(--public-hero-mid-start);
  }
  to {
    translate: 0 var(--public-hero-mid-end);
  }
}
@media (max-width: 64rem) {
  :root {
    --public-hero-padding-start: calc(var(--header-height) + var(--space-5));
    --public-feature-hero-min-block-size: auto;
  }
}
@media (max-width: 48rem) {
  :root {
    --public-hero-lead-width: 38rem;
    --public-hero-lead-size: clamp(1rem, 2.8vw, 1.125rem);
    --public-hero-lead-line-height: 1.65;
  }
}
@media (max-width: 40rem) {
  :root {
    --public-hero-padding-start: calc(var(--header-height) + var(--space-8));
  }
}
.public-shell__main {
  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0) 0%,
      color-mix(in srgb, var(--color-neutral-50) 42%, transparent) 100%);
}
.public-shell__main app-card .app-card {
  background: var(--public-card-gradient);
  border-color: color-mix(in srgb, var(--color-card-border) 82%, white);
  box-shadow: var(--public-card-shadow);
}
.public-shell__main app-card .app-card--variant-interactive:hover,
.public-shell__main app-card .app-card--variant-interactive:focus-within {
  border-color: color-mix(in srgb, var(--color-brand-400) 54%, var(--color-card-border));
  box-shadow: var(--public-card-shadow-hover);
}
.public-shell__main app-feature-card .feature-card__icon,
.public-shell__main app-service-card .service-card__icon,
.public-shell__main app-industry-card .industry-card__icon {
  background:
    linear-gradient(
      145deg,
      color-mix(in srgb, var(--color-brand-50) 86%, white),
      color-mix(in srgb, var(--color-brand-100) 68%, white));
  border-color: color-mix(in srgb, var(--color-brand-300) 52%, white);
  box-shadow: 0 8px 18px color-mix(in srgb, var(--color-brand-700) 8%, transparent), inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
.public-page-heading,
:where(.page-hero__title, .industries h1, .about-page__hero-title, .contact-page__intro h1) {
  font-family: var(--font-family-heading);
  font-size: var(--font-size-display-lg);
  font-weight: var(--font-weight-semibold);
  letter-spacing: -0.035em;
  line-height: var(--line-height-tight);
  max-inline-size: 100%;
}
:where(.public-page-kicker, .public-page-eyebrow) {
  font-family: var(--font-family-body);
  font-size: var(--font-size-caption);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.12em;
  line-height: var(--line-height-body);
  max-inline-size: 100%;
}
.public-page-heading {
  color: var(--public-heading-color, #0b1f38);
  font-family: var(--font-family-heading);
  margin: 0;
  text-wrap: balance;
}
.public-page-kicker {
  color: var(--public-kicker-color, var(--color-brand-600));
  font-family: var(--font-family-body);
  font-size: var(--font-size-caption);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.12em;
  line-height: var(--line-height-body);
  margin: 0;
  max-inline-size: 100%;
  text-transform: uppercase;
}
.public-page-eyebrow {
  align-items: center;
  color: var(--public-eyebrow-color, var(--color-brand-600));
  display: flex;
  gap: 0.65rem;
}
.public-page-eyebrow::before {
  background: var(--public-accent-color, var(--color-brand-600));
  border-radius: 50%;
  box-shadow: 0 0 0 0.25rem color-mix(in srgb, var(--public-accent-color, var(--color-brand-600)) 12%, transparent);
  content: "";
  flex: 0 0 auto;
  height: 0.45rem;
  width: 0.45rem;
}
.public-page-action {
  align-items: center;
  border-radius: var(--radius-pill);
  display: inline-flex;
  font-weight: 700;
  gap: 0.8rem;
  justify-content: center;
  min-height: 3.125rem;
  padding: 0.72rem 1.35rem;
  text-decoration: none;
  transition:
    background-color var(--duration-fast) var(--easing-standard),
    border-color var(--duration-fast) var(--easing-standard),
    box-shadow var(--duration-fast) var(--easing-standard),
    transform var(--duration-fast) var(--easing-standard);
}
.public-page-action:hover,
.public-page-action:focus-visible {
  transform: translateY(-2px);
}
.public-page-action--brand {
  background: var(--public-brand-gradient);
  border: 1px solid color-mix(in srgb, var(--color-brand-300) 72%, white);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.28) inset, 0 10px 24px color-mix(in srgb, var(--color-brand-800) 22%, transparent);
  color: #071d19;
}
.public-page-action--brand:hover,
.public-page-action--brand:focus-visible {
  border-color: color-mix(in srgb, var(--color-brand-200) 76%, white);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.34) inset, 0 14px 30px color-mix(in srgb, var(--color-brand-800) 28%, transparent);
}
.public-page-action--dark {
  background:
    linear-gradient(
      135deg,
      var(--public-dark-color, #07172e),
      color-mix(in srgb, var(--public-dark-color, #07172e) 78%, var(--color-navy-700)));
  border: 1px solid color-mix(in srgb, var(--color-navy-300) 24%, transparent);
  box-shadow: 0 10px 26px rgba(7, 23, 46, 0.2);
  color: #fff;
}
.public-page-action--dark:hover {
  color: #fff;
}
app-public-shell,
.cdk-overlay-container {
  --public-primary-action-background: #74c947;
  --public-primary-action-border: color-mix(in srgb, #74c947 72%, white);
  --public-primary-action-color: #071d19;
  --public-primary-action-shadow: 0 18px 35px color-mix(in srgb, #74c947 28%, transparent);
}
app-public-shell :is(.public-header__contact, .public-page-action--brand, .public-page-action--dark, .about-page__button--primary, .about-page__mini-link, .cta-panel__button--primary, .legal-page__button, .thank-you__link, .not-found__link, .public-footer__cta-button, .newsletter__button, .contact-page__form-footer .p-button, .page-hero__actions .app-button--variant-primary),
.cdk-overlay-container .mobile-nav__cta {
  background: var(--public-primary-action-background) !important;
  border-color: var(--public-primary-action-border) !important;
  box-shadow: var(--public-primary-action-shadow) !important;
  color: var(--public-primary-action-color) !important;
}
.public-page-inline-link {
  align-items: center;
  color: var(--public-link-color, #f8fbff);
  display: inline-flex;
  font-weight: 650;
  gap: 0.55rem;
  text-decoration: none;
  width: max-content;
}
.public-page-action--outline {
  background: color-mix(in srgb, var(--color-surface) 5%, transparent);
  border: 1px solid var(--public-action-border, #8dd86a);
  border-radius: var(--radius-pill);
  color: var(--public-action-outline-color, #eaf8df);
}
.public-page-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--public-actions-gap, 1rem);
}
.public-service-page {
  display: grid;
  gap: var(--public-service-section-gap, var(--section-space-md));
  padding-block-end: var(--public-service-section-gap, var(--section-space-md));
}
.public-service-block {
  display: block;
  margin: 0;
  padding: 0;
}
.public-service-block + .public-service-block {
  border-block-start: 1px solid var(--color-section-border);
  padding-block-start: var(--section-space-md);
}
.public-service-section {
  display: grid;
  gap: var(--page-section-gap);
}
.public-service-introduction {
  display: grid;
  gap: var(--page-section-gap);
}
.public-service-copy {
  border-inline-start: 2px solid color-mix(in srgb, var(--color-brand-500) 82%, white);
  display: grid;
  gap: var(--space-5);
  padding-inline-start: clamp(var(--space-5), 3vw, var(--space-8));
}
.public-service-copy p {
  color: var(--color-text-secondary);
  font-size: var(--font-size-body-lg);
  line-height: var(--line-height-relaxed);
  margin: 0;
  max-inline-size: 68ch;
}
.public-service-grid {
  display: grid;
  gap: clamp(var(--space-5), 2vw, var(--space-8));
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
}
.public-service-visual {
  aspect-ratio: 4/3;
  inline-size: min(100%, 42rem);
  margin-block: 0;
  margin-inline: auto;
}
.public-service-visual img {
  aspect-ratio: 4/3;
  display: block;
  height: auto;
  object-fit: contain;
  width: 100%;
}
@media (max-width: 63.999rem) {
  .public-service-visual {
    inline-size: min(82vw, 38rem);
  }
}
@media (max-width: 40rem) {
  .public-service-visual {
    inline-size: min(100%, 32rem);
  }
}
.public-page-cta-panel {
  align-items: start;
  background:
    radial-gradient(
      circle at 92% 12%,
      rgba(83, 198, 56, 0.12),
      transparent 18rem),
    linear-gradient(
      145deg,
      color-mix(in srgb, var(--color-surface-green-subtle) 78%, white),
      color-mix(in srgb, var(--color-surface-blue-subtle) 40%, white));
  border: 1px solid color-mix(in srgb, var(--color-brand-300) 38%, var(--color-border));
  border-radius: var(--radius-section);
  display: grid;
  gap: clamp(var(--space-6), 3vw, var(--space-10));
  grid-template-columns: 1fr;
  overflow: hidden;
  padding: clamp(var(--space-8), 4vw, var(--space-16));
  position: relative;
  box-shadow: var(--public-card-shadow);
}
.public-page-cta-panel::after {
  content: none;
}
.public-page-cta-panel > * {
  position: relative;
  z-index: 1;
}
@media (min-width: 45.001rem) {
  .public-page-cta-panel {
    align-items: center;
    grid-template-columns: 1fr auto;
  }
}
@media (min-width: 64rem) {
  .public-service-introduction {
    align-items: start;
    grid-template-columns: minmax(18rem, 0.8fr) minmax(0, 1.2fr);
  }
}
@media (min-width: 75rem) {
  .public-service-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (prefers-reduced-motion: reduce) {
  .public-page-action {
    transition: none;
  }
}
@keyframes home-page-services-terminal-shake {
  0%, 100% {
    transform: translate3d(0, 0, 0);
  }
  15% {
    transform: translate3d(-0.4rem, 0, 0);
  }
  30% {
    transform: translate3d(0.35rem, 0, 0);
  }
  45% {
    transform: translate3d(-0.28rem, 0, 0);
  }
  60% {
    transform: translate3d(0.22rem, 0, 0);
  }
  75% {
    transform: translate3d(-0.12rem, 0, 0);
  }
}
@keyframes about-image-satellite-float {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-0.4rem);
  }
}
@keyframes about-tech-node-pulse {
  0%, 100% {
    opacity: 0.2;
    transform: scale(0.82);
  }
  50% {
    opacity: 0.62;
    transform: scale(1.12);
  }
}
@keyframes about-data-flow {
  0%, 100% {
    offset-distance: 0%;
    opacity: 0;
  }
  12%, 82% {
    opacity: 0.72;
  }
  94% {
    offset-distance: 100%;
    opacity: 0;
  }
}
@keyframes about-hero-ambient-glow {
  from {
    opacity: 0.55;
    transform: translate3d(-1.5%, 1%, 0) scale(0.96);
  }
  to {
    opacity: 0.9;
    transform: translate3d(2%, -1%, 0) scale(1.04);
  }
}
@keyframes about-hero-tech-drift {
  from {
    background-position:
      0 0,
      0 0,
      0 0,
      0 0,
      0 0;
    opacity: 0.38;
  }
  to {
    background-position:
      1.4rem -1rem,
      -1rem 1.2rem,
      0.8rem 0.9rem,
      1.8rem 0,
      -1.2rem 1.6rem;
    opacity: 0.58;
  }
}
@keyframes about-hero-grid-glow {
  0%, 100% {
    background-position:
      0 0,
      0 0,
      0 0;
    opacity: 0.18;
  }
  50% {
    background-position:
      0.85rem 0.45rem,
      0.85rem 0.45rem,
      1.2rem -0.7rem;
    opacity: 0.28;
  }
}
@media (prefers-reduced-motion: reduce) {
  .home-hero__tech-network::before,
  .home-hero__tech-nodes circle,
  .home-hero__data-pulse,
  .home-hero-visual::before,
  .home-hero-visual__server-glow,
  .home-hero-visual__pulse-nodes circle,
  .home-hero-visual__data-particles circle {
    animation: none;
  }
  .home-hero-visual__data-particles,
  .home-hero__data-pulse {
    display: none;
  }
}
@media (max-width: 64rem) {
  .home-hero__tech-network {
    opacity: 0.38;
  }
  .home-hero__tech-paths path:nth-child(n+4),
  .home-hero__tech-nodes circle:nth-child(n+5),
  .home-hero__data-pulse--four {
    display: none;
  }
  .home-hero__grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .home-hero__copy {
    max-width: 52rem;
  }
  .home-hero-visual {
    min-height: clamp(23rem, 54vw, 31rem);
  }
  .home-hero-visual img,
  .home-hero-visual__activity {
    inline-size: min(86vw, 42rem);
  }
}
@media (max-width: 61.999rem) {
  .home-hero {
    padding-block-start: calc(var(--header-height) + var(--space-5));
  }
}
@media (max-width: 48rem) {
  .home-hero__tech-network {
    opacity: 0.25;
  }
  .home-hero__tech-paths path:nth-child(n+3),
  .home-hero__tech-nodes circle:nth-child(n+4),
  .home-hero__data-pulse--three,
  .home-hero-visual__particle--desktop {
    display: none;
  }
  .home-hero-visual {
    min-height: clamp(18rem, 62vw, 25rem);
  }
  .home-hero-visual img,
  .home-hero-visual__activity {
    inline-size: min(90vw, 35rem);
  }
}
@media (max-width: 40rem) {
  .home-hero-visual {
    min-height: clamp(16rem, 62vw, 22rem);
  }
  .home-hero-visual img,
  .home-hero-visual__activity {
    inline-size: min(90vw, 31rem);
  }
}
@keyframes home-hero-server-pulse {
  0% {
    opacity: 0.34;
    transform: translate3d(0, 8%, 0) scale(0.92);
  }
  100% {
    opacity: 0.8;
    transform: translate3d(0, 8%, 0) scale(1.08);
  }
}
@keyframes home-hero-node-pulse {
  0%, 100% {
    opacity: 0.45;
    transform: scale(0.92);
  }
  50% {
    opacity: 0.78;
    transform: scale(1.08);
  }
}
@keyframes home-hero-particle-fade {
  0%, 100% {
    opacity: 0;
  }
  20%, 75% {
    opacity: 0.8;
  }
}
@keyframes home-hero-tech-node-pulse {
  0%, 100% {
    opacity: 0.18;
    transform: scale(0.82);
  }
  50% {
    opacity: 0.58;
    transform: scale(1.12);
  }
}
@keyframes home-hero-data-flow {
  0%, 100% {
    offset-distance: 0%;
    opacity: 0;
  }
  12%, 82% {
    opacity: 0.68;
  }
  94% {
    offset-distance: 100%;
    opacity: 0;
  }
}
@keyframes home-hero-grid-glow {
  0%, 100% {
    background-position:
      0 0,
      0 0,
      0 0;
    opacity: 0.16;
  }
  50% {
    background-position:
      0.85rem 0.45rem,
      0.85rem 0.45rem,
      1.2rem -0.7rem;
    opacity: 0.24;
  }
}
@keyframes services-technology-grid-reveal {
  0%, 100% {
    opacity: 0.46;
    transform: perspective(52rem) rotateX(55deg) scale(1.18) translateY(0);
  }
  50% {
    opacity: 0.58;
    transform: perspective(52rem) rotateX(54deg) scale(1.2) translateY(1%);
  }
}
@keyframes services-technology-network-reveal {
  0%, 100% {
    opacity: 0.86;
    transform: scale(1);
  }
  50% {
    opacity: 0.98;
    transform: scale(1.006);
  }
}
@keyframes services-technology-signal-flow {
  0%, 100% {
    opacity: 0.68;
    stroke-dashoffset: 0;
  }
  50% {
    opacity: 0.94;
    stroke-dashoffset: 87;
  }
}
@keyframes services-technology-core-resolve {
  0%, 100% {
    opacity: 0.58;
    transform: rotate(0) scale(1);
  }
  50% {
    opacity: 0.86;
    transform: rotate(4deg) scale(1.035);
  }
}
@keyframes services-technology-node-resolve {
  0%, 100% {
    opacity: 0.82;
  }
  50% {
    opacity: 1;
  }
}
@keyframes services-technology-scan {
  0%, 8% {
    opacity: 0;
    transform: translate3d(0, 0, 0);
  }
  28% {
    opacity: 0.78;
  }
  86% {
    opacity: 0.24;
  }
  100% {
    opacity: 0;
    transform: translate3d(0, calc(100% + 86rem), 0);
  }
}
.cdk-overlay-backdrop.app-mobile-nav-backdrop {
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  background: rgba(2, 10, 24, 0.68);
}
@media (prefers-reduced-motion: no-preference) {
  .app-mobile-nav-backdrop {
    animation: mobile-nav-backdrop-in 280ms var(--easing-emphasized) both;
  }
  .app-mobile-nav-backdrop.app-mobile-nav-backdrop--closing {
    animation: mobile-nav-backdrop-out 280ms var(--easing-standard) forwards;
  }
}
@keyframes mobile-nav-backdrop-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes mobile-nav-backdrop-out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@media (prefers-reduced-motion: no-preference) {
  ::view-transition-old(root),
  ::view-transition-new(root),
  ::view-transition-old(public-navigation),
  ::view-transition-new(public-navigation) {
    animation: none;
  }
  ::view-transition-old(public-page) {
    animation: public-page-fade-out 180ms ease-in both;
  }
  ::view-transition-new(public-page) {
    animation: public-page-fade-in 300ms ease-out both;
  }
}
@keyframes public-page-fade-out {
  to {
    opacity: 0;
  }
}
@keyframes public-page-fade-in {
  from {
    opacity: 0;
  }
}
@media (prefers-reduced-motion: no-preference) {
  .public-card--pending {
    opacity: 0;
    translate: 0 1rem;
  }
  .public-card--entered {
    animation: public-card-enter 420ms var(--easing-standard) var(--public-card-enter-delay, 0ms) both;
  }
  .public-section--pending {
    opacity: 0;
    translate: 0 0.75rem;
  }
  .public-section--entered {
    animation: public-section-enter 460ms var(--easing-emphasized) var(--public-section-enter-delay, 0ms) both;
  }
  .public-motion--paused,
  .public-motion--paused *,
  .public-motion--paused::before,
  .public-motion--paused::after {
    animation-play-state: paused !important;
  }
}
@keyframes public-card-enter {
  from {
    opacity: 0;
    translate: 0 1rem;
  }
  to {
    opacity: 1;
    translate: 0 0;
  }
}
@keyframes public-section-enter {
  from {
    opacity: 0;
    translate: 0 0.75rem;
  }
  to {
    opacity: 1;
    translate: 0 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(root),
  ::view-transition-new(root),
  ::view-transition-old(public-navigation),
  ::view-transition-new(public-navigation),
  ::view-transition-old(public-page),
  ::view-transition-new(public-page) {
    animation: none;
  }
  .public-card--pending,
  .public-card--entered,
  .public-section--pending,
  .public-section--entered {
    animation: none;
    opacity: 1;
    translate: none;
  }
}

/* angular:styles/global:styles */
