@import url('https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

/* ── Global CSS (global-export.css) ── */
html {
    scroll-behavior: smooth;
}

* {
    box-sizing: border-box;
    text-decoration: none;
    font-size: inherit;
    margin: 0;
}

body {
    margin: 0;
    padding: 0;
}

[data-f0-id] {
  position: relative;
  min-width: 0;
}

input,
button {
    border-width: 0px;
    outline: none;
    background: transparent;
    color: inherit;
}

button {
    cursor: pointer;
}

select {
    border: 0;
    background: transparent;
    -webkit-appearance: none;
}

textarea {
    outline: none;
    border: 0px;
    resize: none;
    background: transparent;
}

img,video {
    max-width: unset;
    object-fit: cover;
    object-position: center;
}

/* Fade-stack: stacks children in a single grid cell so the container sizes
   to the tallest panel and the carousel/tabs runtime can cross-fade with
   pure opacity. Works without runtime — design-time falls back to the first
   child being visible until .f0-active is assigned. */
.f0-carousel-fade {
  display: grid !important;
  grid-template-columns: 100% 1fr !important;
  grid-template-rows: 100% 1fr !important;
  align-items: start !important;
  justify-items: start !important;
  position: relative;
}
.f0-carousel-fade > * {
  grid-area: 1 / 1;
}
.f0-carousel-fade > :not(.f0-active) {
  opacity: 0;
  pointer-events: none;
}
.f0-carousel-fade > .f0-active {
  opacity: 1;
  pointer-events: auto;
}
.f0-carousel-fade:not(:has(> .f0-active)) > :first-child {
  opacity: 1;
  pointer-events: auto;
}

.page, .f0-page {
    display: grid;
    // grid-template-columns: 100% 1fr;
    // grid-template-rows: 100% 1fr;
    min-height: 900px;
    width: 100vw !important;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
    background: #fff;
}
.free-mode {
    display: grid !important;
    grid-template-columns: 100% 1fr !important;
    grid-template-rows: 100% 1fr !important;
    /* grid-area: 1 / 1 / 2 / 2 !important; */
    align-items: start !important;
    justify-items: start !important;
}

.free-mode>.fmod {
    grid-area: 1 / 1 / 2 / 2 !important;
}

[data-f0-role="mask"] {
    opacity: 0!important;
}
    .glowing-border,
.glowing-border-assistant,
.glowing-border-assistant-button {
  border: 2px solid rgba(255, 255, 255, 0.2) !important;
}

[data-f0-role="mask"] {
  opacity: 0 !important;
}

.f0-auto-bar-scroll::-webkit-scrollbar {
  display: none;
}

/* ═══════════════════════════════════════════════════════════════════════ */

.f0-effect-overlay {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  pointer-events: none !important;
  z-index: 999;
}

.effect-film-grain {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23grain)' opacity='0.3'/%3E%3C/svg%3E") !important;
  background-size: cover !important;
  mix-blend-mode: overlay !important;
  opacity: var(--effect-opacity, 0.4) !important;
  animation: f0-grain-flicker calc(var(--effect-speed, 0.15) * 1s) steps(4, jump-none) infinite;
}

@keyframes f0-grain-flicker {
  0% {
    transform: translate(0, 0);
  }

  25% {
    transform: translate(-1px, 1px);
  }

  50% {
    transform: translate(1px, -1px);
  }

  75% {
    transform: translate(-1px, -1px);
  }

  100% {
    transform: translate(0, 0);
  }
}

.effect-vignette {
  background: radial-gradient(ellipse at center,
      transparent calc(var(--effect-spread, 40) * 1%),
      rgb(0 0 0 / var(--effect-opacity, 0.7)) 100%) !important;
}

.effect-cinematic-bars {
  background: linear-gradient(to bottom,
      black calc(var(--effect-bar-size, 12) * 1%),
      transparent calc(var(--effect-bar-size, 12) * 1%),
      transparent calc(100% - var(--effect-bar-size, 12) * 1%),
      black calc(100% - var(--effect-bar-size, 12) * 1%)) !important;
}

.effect-scanlines {
  background-image: repeating-linear-gradient(0deg,
      transparent 0px,
      transparent calc(var(--effect-line-gap, 4) * 1px),
      rgb(0 0 0 / var(--effect-opacity, 0.15)) calc(var(--effect-line-gap, 4) * 1px),
      rgb(0 0 0 / var(--effect-opacity, 0.15)) calc(var(--effect-line-gap, 4) * 2px)) !important;
  background-size: 100% calc(var(--effect-line-gap, 4) * 2px) !important;
  animation: f0-scanlines-roll 2s linear infinite;
}

@keyframes f0-scanlines-roll {
  0% {
    background-position: 0 0;
  }

  100% {
    background-position: 0 calc(var(--effect-line-gap, 4) * 2px);
  }
}

.effect-light-leak {
  background:
    radial-gradient(ellipse at 20% 50%, rgb(255 180 50 / var(--effect-opacity, 0.25)) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 30%, rgb(255 100 50 / var(--effect-opacity, 0.25)) 0%, transparent 50%) !important;
  mix-blend-mode: screen !important;
  opacity: var(--effect-intensity, 1) !important;
  animation: f0-light-leak-drift calc(var(--effect-duration, 8) * 1s) ease-in-out infinite alternate;
}

@keyframes f0-light-leak-drift {
  0% {
    background-position: 0% 0%, 0% 0%;
  }

  100% {
    background-position: 10% 5%, -10% -5%;
  }
}

.effect-bokeh {
  background:
    radial-gradient(circle 80px at 15% 25%, rgb(255 255 255 / var(--effect-opacity, 0.1)) 0%, transparent 100%),
    radial-gradient(circle 50px at 75% 15%, rgb(255 255 255 / var(--effect-opacity, 0.1)) 0%, transparent 100%),
    radial-gradient(circle 65px at 60% 70%, rgb(255 255 255 / var(--effect-opacity, 0.1)) 0%, transparent 100%),
    radial-gradient(circle 40px at 30% 80%, rgb(255 255 255 / var(--effect-opacity, 0.1)) 0%, transparent 100%),
    radial-gradient(circle 55px at 85% 55%, rgb(255 255 255 / var(--effect-opacity, 0.1)) 0%, transparent 100%) !important;
  mix-blend-mode: screen !important;
  transform: scale(var(--effect-scale, 1));
  animation: f0-bokeh-drift calc(var(--effect-duration, 12) * 1s) ease-in-out infinite alternate;
}

@keyframes f0-bokeh-drift {
  0% {
    background-position: 0 0, 0 0, 0 0, 0 0, 0 0;
  }

  100% {
    background-position: 6% 4%, -4% 6%, 4% -4%, -6% -3%, 3% 5%;
  }
}

.effect-glow {
  background: radial-gradient(circle at center,
      rgb(79 143 255 / var(--effect-opacity, 0.2)) 0%,
      transparent 60%) !important;
  mix-blend-mode: screen !important;
  filter: hue-rotate(calc(var(--effect-color, 0) * 1deg)) !important;
  animation: f0-glow-pulse calc(var(--effect-duration, 4) * 1s) ease-in-out infinite alternate;
}

@keyframes f0-glow-pulse {
  0% {
    opacity: 0.6;
  }

  100% {
    opacity: 1;
  }
}

.effect-shine-sweep {
  background: linear-gradient(105deg,
      transparent 40%,
      rgb(255 255 255 / var(--effect-opacity, 0.25)) 50%,
      transparent 60%) !important;
  background-size: 200% 100% !important;
  animation: f0-shine-sweep calc(var(--effect-duration, 4) * 1s) linear infinite;
}

@keyframes f0-shine-sweep {
  0% {
    background-position: -100% 0;
  }

  100% {
    background-position: 200% 0;
  }
}

/* ─── Whoosh effects (animated overlays) ─── */

   preset, written into a real timeline layer at addEffectLayer time. The
   classes below paint the LOOK; transform/opacity over the layer body is
   the runtime's job. */

.effect-whoosh-right,
.effect-whoosh-left {
  background: linear-gradient(105deg,
      transparent 35%,
      rgb(255 255 255 / var(--effect-opacity, 0.7)) 50%,
      transparent 65%) !important;
  background-size: 250% 100% !important;
  filter: blur(6px);
  /* Confine the gradient to a vertical band so translateX actually moves a
     visible "streak" across the parent rather than tiling a full sheet. */
  width: 60% !important;
  inset: 0 auto 0 20% !important;
  opacity: 0;
  will-change: transform, opacity;
}

.effect-flash {
  background: white !important;
  opacity: 0;
  will-change: opacity;
}

.effect-speed-lines {
  background-image: repeating-linear-gradient(90deg,
      transparent 0px,
      transparent 40px,
      rgb(255 255 255 / var(--effect-opacity, 0.5)) 40px,
      rgb(255 255 255 / var(--effect-opacity, 0.5)) 42px,
      transparent 42px,
      transparent 80px) !important;
  background-size: 200% 100% !important;
  filter: blur(2px);
  opacity: 0;
  will-change: transform, opacity;
}

.effect-shock-ring {
  background: transparent !important;
  /* The element itself is the ring — no pseudo. width/height set so
     transform-origin: center works under scale. */
  width: 20px !important;
  height: 20px !important;
  inset: 50% auto auto 50% !important;
  margin: -10px 0 0 -10px !important;
  border-radius: 50% !important;
  border: 4px solid rgb(255 255 255 / var(--effect-opacity, 0.8)) !important;
  transform-origin: center;
  will-change: transform, opacity;
}

.effect-light-streak {
  background: radial-gradient(ellipse 60% 8% at 50% 50%,
      rgb(255 240 200 / var(--effect-opacity, 0.9)) 0%,
      transparent 80%) !important;
  mix-blend-mode: screen !important;
  filter: blur(2px);
  transform: rotate(-12deg);
  opacity: 0;
  will-change: transform, opacity;
}
/* ═══════════════════════════════════════════════════════════════════════ */

/* ── Mask runtime hide ── */

[data-f0-role="mask"] { opacity: 0; pointer-events: none; }

.f0-id-el_page_1[data-f0-id="el_page_1"] {
  width: 1440px;
  height: max-content;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  overflow: clip;
  background-color: var(--color-background);
  gap: 0;
  min-height: 100%;
  background: var(--color-background);
  overflow-x: hidden;
}

.f0-id-el_page_1[data-f0-id="el_page_1"] {
  left: 0px;
  top: 0px;
}

:root {
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: var(--text-size-body);
  line-height: var(--line-height-default);
  --color-primary: #2563eb;
  --color-primary-hover: #1d4ed8;
  --color-primary-subtle: #eff6ff;
  --color-secondary: #64748b;
  --color-secondary-hover: #475569;
  --color-accent: #f59e0b;
  --color-accent-subtle: #fffbeb;
  --color-text: #111827;
  --color-text-muted: #6b7280;
  --color-text-inverse: #ffffff;
  --color-background: #ffffff;
  --color-surface: #f9fafb;
  --color-surface-alt: #f3f4f6;
  --color-border: #e5e7eb;
  --color-border-subtle: #f3f4f6;
  --color-success: #10b981;
  --color-warning: #f59e0b;
  --color-error: #ef4444;
  --spacing-2xs: 2px;
  --spacing-xs: 4px;
  --spacing-sm: 8px;
  --spacing-md: 16px;
  --spacing-lg: 24px;
  --spacing-xl: 48px;
  --spacing-2xl: 64px;
  --spacing-3xl: 96px;
  --spacing-section-vertical: 80px;
  --spacing-section-horizontal: 32px;
  --spacing-gap-tight: 8px;
  --spacing-gap-default: 16px;
  --spacing-gap-spacious: 24px;
  --font-heading: Inter, system-ui, sans-serif;
  --font-body: Inter, system-ui, sans-serif;
  --font-mono: JetBrains Mono, monospace;
  --text-size-h1: clamp(2.25rem, 5vw, 3.5rem);
  --text-size-h2: clamp(1.875rem, 4vw, 2.5rem);
  --text-size-h3: clamp(1.5rem, 3vw, 1.875rem);
  --text-size-h4: clamp(1.25rem, 2vw, 1.5rem);
  --text-size-h5: 1.125rem;
  --text-size-h6: 1rem;
  --text-size-body: 1rem;
  --text-size-small: 0.875rem;
  --text-size-caption: 0.75rem;
  --line-height-tight: 1.25;
  --line-height-default: 1.5;
  --line-height-relaxed: 1.75;
  --letter-spacing-tight: -0.02em;
  --letter-spacing-default: 0;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --size-button-height-small: 32px;
  --size-button-height-medium: 44px;
  --size-button-height-large: 52px;
  --size-button-padding-x-small: 12px;
  --size-button-padding-x-medium: 20px;
  --size-button-padding-x-large: 28px;
  --size-icon-small: 16px;
  --size-icon-medium: 24px;
  --size-icon-large: 32px;
  --size-input-height-small: 32px;
  --size-input-height-medium: 40px;
  --size-input-height-large: 48px;
  --container-max-width-narrow: 960px;
  --container-max-width-default: 1200px;
  --container-max-width-wide: 1440px;
  --card-padding-small: 16px;
  --card-padding-medium: 24px;
  --card-padding-large: 32px;
  --radius-none: 0;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-full: 9999px;
  --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -1px rgb(0 0 0 / 0.06);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -2px rgb(0 0 0 / 0.05);
  --shadow-xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --transition-fast: 150ms ease;
  --transition-normal: 300ms ease;
  --transition-slow: 500ms ease;
  --bp-mobile: 767px;
  --bp-tablet: 1023px;
  --bp-desktop: 1280px;
  --z-dropdown: 1000;
  --z-sticky: 1020;
  --z-modal: 1050;
  --z-tooltip: 1100;
}

body {
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: var(--text-size-body);
  line-height: var(--line-height-default);
}

h1 {
  font-family: var(--font-heading);
  font-size: var(--text-size-h1);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tight);
  letter-spacing: var(--letter-spacing-tight);
  color: inherit;
}

h2 {
  font-family: var(--font-heading);
  font-size: var(--text-size-h2);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tight);
  letter-spacing: var(--letter-spacing-tight);
  color: inherit;
}

h3 {
  font-family: var(--font-heading);
  font-size: var(--text-size-h3);
  font-weight: var(--font-weight-semibold);
  line-height: 1.3;
  color: inherit;
}

h4 {
  font-family: var(--font-heading);
  font-size: var(--text-size-h4);
  font-weight: var(--font-weight-semibold);
  line-height: 1.3;
  color: inherit;
}

h5 {
  font-family: var(--font-heading);
  font-size: var(--text-size-h5);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-default);
  color: inherit;
}

h6 {
  font-family: var(--font-heading);
  font-size: var(--text-size-h6);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-default);
  color: inherit;
}

p {
  font-family: var(--font-body);
  font-size: var(--text-size-body);
  line-height: var(--line-height-relaxed);
  color: inherit;
}

p:last-child {
  margin-bottom: 0;
}

a {
  color: var(--color-primary);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color var(--transition-fast);
}

a:hover {
  color: var(--color-primary-hover);
}

.ds-flex {
  display: flex;
}

.ds-flex-column {
  display: flex;
  flex-direction: column;
}

.ds-flex-center {
  display: flex;
  align-items: center;
  justify-content: center;
}

.ds-flex-between {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ds-flex-wrap {
  flex-wrap: wrap;
}

.ds-hidden {
  display: none;
}

.ds-block {
  display: block;
}

.ds-inline-block {
  display: inline-block;
}

.ds-inline-flex {
  display: inline-flex;
}

.ds-gap-tight {
  gap: var(--spacing-gap-tight);
}

.ds-gap-default {
  gap: var(--spacing-gap-default);
}

.ds-gap-spacious {
  gap: var(--spacing-gap-spacious);
}

.ds-w-full {
  width: 100%;
}

.ds-h-full {
  height: 100%;
}

.ds-mx-auto {
  margin-left: auto;
  margin-right: auto;
}

.ds-text-center {
  text-align: center;
}

.ds-text-left {
  text-align: left;
}

.ds-text-right {
  text-align: right;
}

.ds-relative {
  position: relative;
}

.ds-absolute {
  position: absolute;
}

.ds-sticky {
  position: sticky;
}

.ds-overflow-hidden {
  overflow: hidden;
}

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

.ds-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

.ds-overlay {
  position: absolute;
  inset: 0;
}

.ds-backdrop {
  position: absolute;
  inset: 0;
  z-index: -1;
}

.ds-divider {
  border: none;
  border-top: 1px solid var(--color-border);
  margin: var(--spacing-lg) 0;
}

.ds-container {
  width: 100%;
  max-width: var(--container-max-width-default);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--spacing-section-horizontal);
  padding-right: var(--spacing-section-horizontal);
  box-sizing: border-box;
}

.ds-container-narrow {
  max-width: var(--container-max-width-narrow);
}

.ds-container-wide {
  max-width: var(--container-max-width-wide);
}

.ds-section {
  width: 100%;
  box-sizing: border-box;
}

.ds-section-padding-tight {
  padding-top: var(--spacing-xl);
  padding-bottom: var(--spacing-xl);
}

.ds-section-padding-default {
  padding-top: var(--spacing-section-vertical);
  padding-bottom: var(--spacing-section-vertical);
}

.ds-section-padding-spacious {
  padding-top: var(--spacing-3xl);
  padding-bottom: var(--spacing-3xl);
}

.ds-section-dark {
  background-color: #111827;
  color: var(--color-text-inverse);
}

.ds-bg-surface {
  background-color: var(--color-surface);
}

.ds-bg-surface-alt {
  background-color: var(--color-surface-alt);
}

.ds-grid {
  display: grid;
}

.ds-grid-2-column {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}

.ds-grid-3-column {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.ds-grid-4-column {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 1023px) {
  .ds-grid-3-column {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 1023px) {
  .ds-grid-4-column {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 767px) {
  .ds-grid-2-column {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .ds-grid-3-column {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .ds-grid-4-column {
    grid-template-columns: 1fr;
  }
}

.ds-card {
  padding: var(--card-padding-medium);
  border-radius: var(--radius-md);
  background: var(--color-background);
}

.ds-card-elevated {
  padding: var(--card-padding-medium);
  border-radius: var(--radius-md);
  background: var(--color-background);
  box-shadow: var(--shadow-md);
}

.ds-card-outlined {
  padding: var(--card-padding-medium);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
}

.ds-card-small {
  padding: var(--card-padding-small);
}

.ds-card-medium {
  padding: var(--card-padding-medium);
}

.ds-card-large {
  padding: var(--card-padding-large);
}

.ds-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-sm);
  font-family: var(--font-body);
  font-weight: var(--font-weight-medium);
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: all var(--transition-normal);
  border-radius: var(--radius-md);
}

.ds-button-primary {
  background: var(--color-primary);
  color: var(--color-text-inverse);
}

.ds-button-primary:hover {
  background: var(--color-primary-hover);
}

.ds-button-secondary {
  background: var(--color-secondary);
  color: var(--color-text-inverse);
}

.ds-button-secondary:hover {
  background: var(--color-secondary-hover);
}

.ds-button-small {
  height: var(--size-button-height-small);
  padding: 0 var(--size-button-padding-x-small);
  font-size: var(--text-size-small);
}

.ds-button-medium {
  height: var(--size-button-height-medium);
  padding: 0 var(--size-button-padding-x-medium);
  font-size: var(--text-size-body);
}

.ds-button-large {
  height: var(--size-button-height-large);
  padding: 0 var(--size-button-padding-x-large);
  font-size: var(--text-size-body);
}

.ds-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: var(--text-size-small);
  font-weight: 600;
}

.ds-badge-primary {
  background: var(--color-primary-subtle);
  color: var(--color-primary);
}

.ds-badge-secondary {
  background: var(--color-surface-alt);
  color: var(--color-secondary);
}

.ds-badge-muted {
  background: var(--color-surface);
  color: var(--color-text-muted);
}

.ds-badge-small {
  font-size: var(--text-size-caption);
  padding: 2px 8px;
}

.ds-badge-medium {
  font-size: var(--text-size-small);
  padding: 4px 12px;
}

.ds-icon {
  display: inline-block;
  flex-shrink: 0;
}

.ds-icon-small {
  width: var(--size-icon-small);
  height: var(--size-icon-small);
}

.ds-icon-medium {
  width: var(--size-icon-medium);
  height: var(--size-icon-medium);
}

.ds-icon-large {
  width: var(--size-icon-large);
  height: var(--size-icon-large);
}

.ds-input {
  font-family: var(--font-body);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-background);
  color: var(--color-text);
  transition: border-color var(--transition-fast);
  width: 100%;
}

.ds-input:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px var(--color-primary-subtle);
}

.ds-input-small {
  height: var(--size-input-height-small);
  padding: 0 var(--spacing-sm);
  font-size: var(--text-size-small);
}

.ds-input-medium {
  height: var(--size-input-height-medium);
  padding: 0 var(--spacing-md);
  font-size: var(--text-size-body);
}

.ds-input-large {
  height: var(--size-input-height-large);
  padding: 0 var(--spacing-md);
  font-size: var(--text-size-body);
}

.ds-input-error {
  border-color: var(--color-error);
}

.ds-nav {
  width: 100%;
}

.ds-heading-1 {
  font-family: var(--font-heading);
  font-size: var(--text-size-h1);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tight);
  letter-spacing: var(--letter-spacing-tight);
}

.ds-heading-2 {
  font-family: var(--font-heading);
  font-size: var(--text-size-h2);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tight);
  letter-spacing: var(--letter-spacing-tight);
}

.ds-heading-3 {
  font-family: var(--font-heading);
  font-size: var(--text-size-h3);
  font-weight: var(--font-weight-semibold);
  line-height: 1.3;
}

.ds-heading-4 {
  font-family: var(--font-heading);
  font-size: var(--text-size-h4);
  font-weight: var(--font-weight-semibold);
  line-height: 1.3;
}

.ds-heading-5 {
  font-family: var(--font-heading);
  font-size: var(--text-size-h5);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-default);
}

.ds-heading-6 {
  font-family: var(--font-heading);
  font-size: var(--text-size-h6);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-default);
}

.ds-text-body {
  font-family: var(--font-body);
  font-size: var(--text-size-body);
  line-height: 1.6;
  color: var(--color-text-muted);
}

.ds-text-small {
  font-size: var(--text-size-small);
  line-height: var(--line-height-default);
}

.ds-text-caption {
  font-size: var(--text-size-caption);
  line-height: var(--line-height-default);
}

.ds-text-sm {
  font-size: var(--text-size-small);
  line-height: var(--line-height-default);
}

.ds-text-lg {
  font-size: var(--text-size-h4);
  line-height: var(--line-height-default);
}

.ds-text-muted {
  color: var(--color-text-muted);
}

.ds-text-primary {
  color: var(--color-primary);
}

.ds-font-bold {
  font-weight: var(--font-weight-bold);
}

.ds-font-semibold {
  font-weight: var(--font-weight-semibold);
}

.ds-font-medium {
  font-weight: var(--font-weight-medium);
}

.ds-list-item {
  display: flex;
  align-items: center;
  gap: var(--spacing-gap-tight);
  font-family: var(--font-body);
  font-size: var(--text-size-body);
  line-height: var(--line-height-default);
  color: var(--color-text);
}

.ds-feature-card {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-gap-default);
  padding: var(--card-padding-medium);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
  background: var(--color-background);
  transition: transform var(--transition-normal), border-color var(--transition-normal);
}

.ds-pricing-card {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-gap-default);
  padding: var(--card-padding-medium);
  border-radius: var(--radius-md);
  background: var(--color-background);
  box-shadow: var(--shadow-md);
}

.ds-section-header {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-gap-tight);
  text-align: center;
  max-width: 42rem;
  margin-inline: auto;
}

.ds-nav-link {
  display: inline-flex;
  align-items: center;
  padding: var(--spacing-xs) var(--spacing-sm);
  font-size: var(--text-size-body);
  color: var(--color-text);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.ds-nav-link:hover {
  color: var(--color-primary);
}

.ds-card-title {
  font-size: var(--text-size-h5);
  font-weight: var(--font-weight-semibold);
  line-height: 1.3;
  color: var(--color-text);
}

.ds-card-description {
  font-size: var(--text-size-small);
  line-height: 1.5;
  color: var(--color-text-muted);
}

.ds-glass {
  background: rgba(255,255,255,0.6);
  backdrop-filter: blur(16px) saturate(180%);
  backdrop-filter: blur(16px) saturate(180%);
  border: 1px solid rgba(255,255,255,0.3);
}

.ds-text-gradient {
  background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent) 100%);
  background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: inline-block;
}

.ds-gradient-orb {
  position: absolute;
  width: 50vw;
  height: 50vw;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.15;
  pointer-events: none;
  z-index: -1;
}

.ds-image-frame {
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.ds-button-hover {
  transition: transform 0.2s cubic-bezier(0.34,1.56,0.64,1), box-shadow 0.2s ease, filter 0.2s ease;
}

.ds-button-hover:hover {
  transform: translateY(-2px) scale(1.02);
  filter: brightness(1.1);
}

.ds-button-hover:active {
  transform: translateY(0) scale(0.98);
}

.ds-button-outline {
  background: transparent;
  border: 1px solid var(--color-border);
  color: var(--color-text);
}

.ds-button-outline:hover {
  background: rgba(0,0,0,0.03);
  border-color: var(--color-primary);
}

.ds-section-dark .ds-text-body {
  color: rgba(255,255,255,0.7);
}

.ds-section-dark h1 {
  color: var(--color-text-inverse);
}

.ds-section-dark h2 {
  color: var(--color-text-inverse);
}

.ds-section-dark h3 {
  color: var(--color-text-inverse);
}

.ds-section-dark h4 {
  color: var(--color-text-inverse);
}

.ds-section-dark .ds-card-title {
  color: var(--color-text-inverse);
}

.ds-section-dark .ds-card-description {
  color: rgba(255,255,255,0.6);
}

.ds-section-dark .ds-text-gradient {
  background: linear-gradient(135deg, #fff 0%, rgba(255,255,255,0.6) 100%);
  background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.ds-section-dark .ds-glass {
  background: rgba(255,255,255,0.03);
  border-color: rgba(255,255,255,0.1);
}

.ds-section-dark .ds-button-outline {
  border-color: rgba(255,255,255,0.2);
  color: #fff;
}

.ds-section-dark .ds-button-outline:hover {
  background: rgba(255,255,255,0.1);
  border-color: #fff;
}

.ds-section-dark .ds-badge-primary {
  background: rgba(37,99,235,0.15);
  border: 1px solid rgba(37,99,235,0.3);
  color: #fff;
}

.ds-section-dark .ds-divider {
  border-color: rgba(255,255,255,0.1);
}

.ds-section-dark .ds-nav-link {
  color: rgba(255,255,255,0.7);
}

.ds-section-dark .ds-nav-link:hover {
  color: #fff;
}

.ds-section-dark a:not(.ds-button) {
  color: rgba(255,255,255,0.8);
}

.ds-section-dark a:not(.ds-button):hover {
  color: #fff;
}

.ds-animate-float {
  animation: ds-animate-float-kf 6s ease-in-out infinite;
}

.ds-desktop-hide {
  display: none !important;
}

@media (max-width: 1023px) {
  .ds-tablet-hide {
    display: none !important;
  }
}

@media (max-width: 1023px) {
  .ds-desktop-hide {
    display: revert !important;
  }
}

@media (max-width: 767px) {
  .ds-mobile-hide {
    display: none !important;
  }
}

.apex-clip {
  clip-path: polygon(0 0, 100% 0, 100% 90%, 0% 100%);
}

.apex-btn-skew {
  border-radius: 0;
  transform: skewX(-10deg);
  transition: all var(--transition-fast) ease;
}

.apex-btn-skew > span {
  display: inline-block;
  transform: skewX(10deg);
}

.apex-btn-skew:hover {
  transform: skewX(-10deg) scale(1.05);
  box-shadow: var(--shadow-md);
}

.bento-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--spacing-md);
  width: 100%;
}

@media (max-width: 767px) {
  .bento-grid {
    grid-template-columns: 1fr;
  }
}

.f0-id-el_7rV3C5hy[data-f0-id="el_7rV3C5hy"] {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: fixed;
  top: 0;
  z-index: 999;
  padding: var(--spacing-md) 0;
  border-bottom: 1px solid var(--color-border);
}

.f0-id-el_tm3cnHzi[data-f0-id="el_tm3cnHzi"] {
  width: 100%;
  gap: var(--spacing-md, 16px);
}

.f0-id-el_Mgp1yRS1[data-f0-id="el_Mgp1yRS1"] {
  letter-spacing: var(--letter-spacing-tight);
  text-transform: uppercase;
}

.f0-id-el_4YVmcM7D[data-f0-id="el_4YVmcM7D"] {
  color: var(--color-text);
}

.f0-id-el_UmD8w5Hc[data-f0-id="el_UmD8w5Hc"] {
  text-transform: uppercase;
  font-weight: var(--font-weight-semibold);
  font-size: var(--text-size-small);
}

.f0-id-el_fFBDsZQe[data-f0-id="el_fFBDsZQe"] {
  text-transform: uppercase;
  font-weight: var(--font-weight-semibold);
  font-size: var(--text-size-small);
}

.f0-id-el_0p9DR06q[data-f0-id="el_0p9DR06q"] {
  text-transform: uppercase;
  font-weight: var(--font-weight-semibold);
  font-size: var(--text-size-small);
}

.f0-id-el_gAUYnxLT[data-f0-id="el_gAUYnxLT"] {
  text-transform: uppercase;
  letter-spacing: 1px;
  font-weight: var(--font-weight-bold);
}

.f0-id-el_1aFsGDRy[data-f0-id="el_1aFsGDRy"] {
  width: 100%;
  position: relative;
  overflow: hidden;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: #050505;
  gap: var(--spacing-md, 16px);
  padding: var(--spacing-md, 16px);
}

.f0-id-el_sU9oqzD2[data-f0-id="el_sU9oqzD2"] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.f0-id-el_eRlS16nZ[data-f0-id="el_eRlS16nZ"] {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(5,5,5,0.95) 0%, rgba(5,5,5,0.6) 50%, rgba(5,5,5,0.1) 100%);
  z-index: 1;
  padding: var(--spacing-md, 16px);
}

.f0-id-el_vyt9lMFp[data-f0-id="el_vyt9lMFp"] {
  width: 100%;
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--spacing-lg);
  padding-top: var(--spacing-3xl);
}

.f0-id-el_Evp0JOaV[data-f0-id="el_Evp0JOaV"] {
  text-transform: uppercase;
  letter-spacing: 2px;
  background: transparent;
  border: 1px solid var(--color-primary);
  border-radius: 0;
}

.f0-id-el_ubZ7UtDS[data-f0-id="el_ubZ7UtDS"] {
  max-width: 800px;
  text-transform: uppercase;
  line-height: 0.9;
  font-style: italic;
  height: 101px;
}

.f0-id-el_Vn6RvmJE[data-f0-id="el_Vn6RvmJE"] {
  display: block;
  color: var(--color-text-inverse);
}

.f0-id-el_k7wPGXiS[data-f0-id="el_k7wPGXiS"] {
  display: block;
}

.f0-id-el_ZbnNdh86[data-f0-id="el_ZbnNdh86"] {
  max-width: 500px;
  font-size: var(--text-size-h6);
  color: rgba(255,255,255,0.8);
}

.f0-id-el_INYDN9Yz[data-f0-id="el_INYDN9Yz"] {
  margin-top: var(--spacing-md);
}

.f0-id-el_HsTs5dqf[data-f0-id="el_HsTs5dqf"] {
  text-transform: uppercase;
  letter-spacing: 1px;
  font-weight: var(--font-weight-bold);
}

.f0-id-el_T39YT-c8[data-f0-id="el_T39YT-c8"] {
  text-transform: uppercase;
  letter-spacing: 1px;
  font-weight: var(--font-weight-bold);
  border-color: var(--color-border);
  color: var(--color-text-inverse);
}

.f0-id-el_sGjQIz1O[data-f0-id="el_sGjQIz1O"] {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: calc(var(--spacing-3xl) * -1);
  padding-top: var(--spacing-3xl);
  position: relative;
  z-index: 2;
  background-color: #0f13a3;
  background-image: linear-gradient(#132d9e 0%, #ffffff 100%), linear-gradient(#234ef1 0%, #ffffff 100%);
  background-position: center, center;
  background-size: cover, cover;
  background-repeat: no-repeat, no-repeat;
  border: 1px solid #de2b2b;
}

.f0-id-el_APryw67d[data-f0-id="el_APryw67d"] {
  width: 100%;
  gap: var(--spacing-3xl);
}

.f0-id-el_Vf40SiIB[data-f0-id="el_Vf40SiIB"] {
  align-items: flex-start;
  text-align: left;
  max-width: 100%;
}

.f0-id-el_xaSjpfow[data-f0-id="el_xaSjpfow"] {
  text-transform: uppercase;
  font-style: italic;
}

.f0-id-el_f-Bi1juh[data-f0-id="el_f-Bi1juh"] {
  gap: var(--spacing-lg);
  width: 100%;
}

.f0-id-el_V-BfKgS6[data-f0-id="el_V-BfKgS6"] {
  border-radius: 0;
  border-top: 3px solid var(--color-primary);
  background: var(--color-surface);
  position: relative;
  overflow: hidden;
  box-shadow: none;
}

.f0-id-el_2Gk8aGzo[data-f0-id="el_2Gk8aGzo"] {
  margin-bottom: var(--spacing-sm);
}

.f0-id-el_PpFTwL2_[data-f0-id="el_PpFTwL2_"] {
  text-transform: uppercase;
  font-weight: var(--font-weight-bold);
  font-style: italic;
}

.f0-id-el_N_S3ncNz[data-f0-id="el_N_S3ncNz"] {
  border-radius: 0;
  border-top: 3px solid var(--color-border);
  background: var(--color-surface);
  position: relative;
  overflow: hidden;
  box-shadow: none;
}

.f0-id-el_IN8S5U2f[data-f0-id="el_IN8S5U2f"] {
  margin-bottom: var(--spacing-sm);
}

.f0-id-el_MSXXeVw3[data-f0-id="el_MSXXeVw3"] {
  text-transform: uppercase;
  font-weight: var(--font-weight-bold);
  font-style: italic;
}

.f0-id-el_hC8bVoBH[data-f0-id="el_hC8bVoBH"] {
  border-radius: 0;
  border-top: 3px solid var(--color-border);
  background: var(--color-surface);
  position: relative;
  overflow: hidden;
  box-shadow: none;
}

.f0-id-el_2QQhDGsa[data-f0-id="el_2QQhDGsa"] {
  margin-bottom: var(--spacing-sm);
}

.f0-id-el_5qVOVRhH[data-f0-id="el_5qVOVRhH"] {
  text-transform: uppercase;
  font-weight: var(--font-weight-bold);
  font-style: italic;
}

.f0-id-el_0UiVkCdT[data-f0-id="el_0UiVkCdT"] {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  background: #050505;
}

.f0-id-el_u5dvt-Om[data-f0-id="el_u5dvt-Om"] {
  width: 100%;
  gap: var(--spacing-2xl);
}

.f0-id-el_mojVzk2H[data-f0-id="el_mojVzk2H"] {
  text-align: center;
}

.f0-id-el_IvV23PJf[data-f0-id="el_IvV23PJf"] {
  text-transform: uppercase;
  font-style: italic;
}

.f0-id-el_9tyQaOkU[data-f0-id="el_9tyQaOkU"] {
  position: relative;
  width: 100%;
  aspect-ratio: 1/1;
  overflow: hidden;
  border-radius: 0;
}

.f0-id-el_er_FBRGy[data-f0-id="el_er_FBRGy"] {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.f0-id-el_e4eOQZj5[data-f0-id="el_e4eOQZj5"] {
  position: relative;
  width: 100%;
  aspect-ratio: 1/1;
  overflow: hidden;
  border-radius: 0;
}

.f0-id-el_86UPCtNi[data-f0-id="el_86UPCtNi"] {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.f0-id-el_YPPz7Ws4[data-f0-id="el_YPPz7Ws4"] {
  position: relative;
  width: 100%;
  aspect-ratio: 1/1;
  overflow: hidden;
  border-radius: 0;
}

.f0-id-el_4_tp6MsB[data-f0-id="el_4_tp6MsB"] {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.f0-id-el_o3WbdidK[data-f0-id="el_o3WbdidK"] {
  position: relative;
  width: 100%;
  aspect-ratio: 1/1;
  overflow: hidden;
  border-radius: 0;
}

.f0-id-el_KuaGwpBh[data-f0-id="el_KuaGwpBh"] {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.f0-id-el_W4HNyEVs[data-f0-id="el_W4HNyEVs"] {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  overflow: hidden;
  background: var(--color-primary);
  gap: var(--spacing-md, 16px);
}

.f0-id-el_Ru_WX5eO[data-f0-id="el_Ru_WX5eO"] {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 100% 50%, rgba(255,255,255,0.15) 0%, transparent 60%);
  z-index: 0;
  padding: var(--spacing-md, 16px);
}

.f0-id-el_B7lXDb0a[data-f0-id="el_B7lXDb0a"] {
  width: 100%;
  align-items: center;
  text-align: center;
  position: relative;
  z-index: 1;
  gap: var(--spacing-lg);
}

.f0-id-el_BwB9C8yq[data-f0-id="el_BwB9C8yq"] {
  text-transform: uppercase;
  font-style: italic;
}

.f0-id-el_QYHMayml[data-f0-id="el_QYHMayml"] {
  max-width: 600px;
}

.f0-id-el_WUCzoZRL[data-f0-id="el_WUCzoZRL"] {
  background: #050505;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-weight: var(--font-weight-bold);
  margin-top: var(--spacing-md);
  border: none;
}

.f0-id-el_mXcZCW6Q[data-f0-id="el_mXcZCW6Q"] {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: var(--spacing-xl) 0;
  background: #050505;
  border-top: 1px solid rgba(255,255,255,0.05);
}

.f0-id-el_koik6zz6[data-f0-id="el_koik6zz6"] {
  width: 100%;
  gap: var(--spacing-xl);
}

.f0-id-el_phUukOjG[data-f0-id="el_phUukOjG"] {
  gap: var(--spacing-lg);
}

.f0-id-el_YIYxP0-R[data-f0-id="el_YIYxP0-R"] {
  letter-spacing: var(--letter-spacing-tight);
  text-transform: uppercase;
}

.f0-id-el_BPHcFpIr[data-f0-id="el_BPHcFpIr"] {
  color: var(--color-text-inverse);
}

.f0-id-el_T0Kb0-mI[data-f0-id="el_T0Kb0-mI"] {
  text-decoration: none;
  text-transform: uppercase;
  font-size: var(--text-size-small);
  letter-spacing: 1px;
}

.f0-id-el_YcjDVwES[data-f0-id="el_YcjDVwES"] {
  text-decoration: none;
  text-transform: uppercase;
  font-size: var(--text-size-small);
  letter-spacing: 1px;
}

.f0-id-el_es_PKJRw[data-f0-id="el_es_PKJRw"] {
  text-decoration: none;
  text-transform: uppercase;
  font-size: var(--text-size-small);
  letter-spacing: 1px;
}

.f0-id-el_cccH6FE5[data-f0-id="el_cccH6FE5"] {
  margin: 0;
  border-color: rgba(255,255,255,0.05);
  padding: var(--spacing-md, 16px);
}

.f0-id-el_E53GqwKB[data-f0-id="el_E53GqwKB"] {
  color: inherit;
  text-decoration: none;
}

.f0-id-el_wVMYGWSe[data-f0-id="el_wVMYGWSe"] {
  color: inherit;
  text-decoration: none;
}

.imp-f0-id-el_page_1[data-f0-id="el_page_1"] {
  background: var(--color-background);
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  min-height: 100vh;
}

.f0-id-el_lWkuyjJv[data-f0-id="el_lWkuyjJv"] {
  gap: var(--spacing-md, 16px);
}

.bento-grid > div {
  overflow: hidden;
}

.bento-grid > div img {
  transition: transform var(--transition-slow);
}

.bento-grid > div:hover img {
  transform: scale(1.08);
}

.ds-feature-card:hover {
  transform: translateY(-8px);
  border-color: var(--color-primary);
}