
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/fonts/montserrat-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/fonts/montserrat-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Montserrat Fallback";
  src: local("Arial");
  ascent-override: 85.79%;
  descent-override: 22.25%;
  line-gap-override: 0%;
  size-adjust: 112.83%;
}
:root {
  --font-montserrat: "Montserrat", "Montserrat Fallback";
}


:where(:root) {   
  --cc-ink: #15181b;          
  --cc-accent: #ed2127;       
  --cc-accent-hover: #b21c22;
  --cc-link: #ff9ea2;         
  --cc-font: inherit;
}
.cc-bar, .cc-box, .cc-fab { font-family: var(--cc-font); }

.cc-bar {
  position: fixed;
  left: 20px; right: 20px; bottom: 20px;
  z-index: 300;
  max-width: 520px;
  background: var(--cc-ink);
  color: #c3c8cc;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 3px;
  box-shadow: 0 26px 60px -20px rgba(0, 0, 0, .6);
  padding: 22px 24px;
  font-size: 15px;
  line-height: 1.6;
}
.cc-bar strong { color: #fff; }
.cc-bar a { color: var(--cc-link); text-decoration: underline; }
.cc-bar a:hover { color: #fff; }

.cc-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 16px; }
.cc-btn {
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  border-radius: 2px;
  padding: 11px 18px;
  cursor: pointer;
  border: 1px solid transparent;
  white-space: nowrap;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.cc-btn--solid { background: var(--cc-accent); color: #fff; }
.cc-btn--solid:hover { background: var(--cc-accent-hover); }
.cc-btn--ghost { background: transparent; color: #dfe3e6; border-color: rgba(255, 255, 255, .3); }
.cc-btn--ghost:hover { border-color: #fff; color: #fff; }

.cc-box {
  position: fixed;
  inset: 0;
  z-index: 320;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(10, 12, 14, .72);
  padding: 20px;
}
.cc-card {
  background: #fff;
  color: var(--cc-ink);
  border-radius: 3px;
  max-width: 540px;
  width: 100%;
  padding: 32px 32px 26px;
  position: relative;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 30px 70px -24px rgba(0, 0, 0, .5);
}
.cc-close {
  position: absolute;
  top: 10px; right: 14px;
  background: none;
  border: 0;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
  color: #8a9095;
}
.cc-close:hover { color: var(--cc-ink); }
.cc-card h2 {
  margin: 0 0 8px;
  font-size: 26px;
  line-height: 1.1;
  letter-spacing: -.02em;
  font-weight: 700;
}
.cc-lead { margin: 0 0 14px; font-size: 15px; line-height: 1.6; color: #5a5f63; }

.cc-opt {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 15px 0;
  border-top: 1px solid #e6e6e3;
  font-size: 15px;
  line-height: 1.55;
}
.cc-opt span { color: #5a5f63; }
.cc-opt b { color: var(--cc-ink); }
.cc-opt input {
  width: 21px; height: 21px;
  flex: none;
  margin-top: 2px;
  accent-color: var(--cc-accent);
  cursor: pointer;
}
.cc-opt--fixed input { cursor: not-allowed; opacity: .55; }

.cc-actions--box { margin-top: 22px; }
.cc-actions--box .cc-btn--ghost { color: #5a5f63; border-color: #cfcfcb; }
.cc-actions--box .cc-btn--ghost:hover { border-color: var(--cc-ink); color: var(--cc-ink); }


.cc-fab {
  position: fixed;
  left: 16px; bottom: 16px;
  z-index: 290;
  height: 46px; width: 46px;
  padding: 0;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, .18);
  background: var(--cc-ink);
  color: #dfe3e6;
  display: inline-flex;
  align-items: center;
  gap: 0;
  overflow: hidden;
  cursor: pointer;
  box-shadow: 0 12px 28px -12px rgba(0, 0, 0, .6);
  opacity: .85;
  transition: width .2s ease, opacity .15s ease, background .15s ease;
}
.cc-fab svg { width: 22px; height: 22px; flex: none; margin: 0 11px; }
.cc-fab__label {
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
  opacity: 0;
  transition: opacity .15s ease;
  padding-right: 0;
}
.cc-fab:hover, .cc-fab:focus-visible {
  width: 150px;
  opacity: 1;
  background: var(--cc-accent);
  color: #fff;
  outline: none;
}
.cc-fab:hover .cc-fab__label, .cc-fab:focus-visible .cc-fab__label { opacity: 1; padding-right: 16px; }

.cc-fab:focus-visible { outline: 2px solid var(--cc-ink); outline-offset: 3px; box-shadow: none; }

@media (max-width: 640px) {
  .cc-bar { left: 12px; right: 12px; bottom: 12px; max-width: none; padding: 18px 18px 16px; }
  .cc-actions .cc-btn { flex: 1 1 auto; }
  .cc-card { padding: 26px 20px 22px; }
  .cc-card h2 { font-size: 23px; }

  
  .cc-fab { left: 12px; bottom: 12px; height: 42px; width: 42px; }
  .cc-fab svg { width: 20px; height: 20px; margin: 0 10px; }
  .cc-fab:hover { width: 42px; background: var(--cc-ink); }
  .cc-fab:hover .cc-fab__label { opacity: 0; padding-right: 0; }
}

@media (prefers-reduced-motion: reduce) { .cc-fab, .cc-btn { transition: none; } }




@media (max-height: 860px) {
  .cc-bar {
    left: 12px; right: 12px; bottom: 12px;
    padding: 14px 16px;
    font-size: 13.5px;
    line-height: 1.45;
  }
  .cc-actions {
    
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 12px;
  }
  .cc-actions .cc-btn {
    
    flex: 0 1 auto;
    min-width: 0;
    padding: 10px 4px;
    
    font-size: 11.5px;
    white-space: nowrap;
    letter-spacing: -.01em;
  }
}


.cc-fab { min-width: 44px; min-height: 44px; }


@media (max-height: 700px) {
  .cc-bar { font-size: 12.5px; line-height: 1.38; padding: 12px 14px; }
  .cc-actions { margin-top: 10px; }
}


/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties;
@layer theme, base, components, utilities;
@layer theme {
  :root, :host {
    --font-sans: var(--font-montserrat), "Montserrat", system-ui, sans-serif;
    --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
      "Courier New", monospace;
    --color-green-500: oklch(72.3% 0.219 149.579);
    --spacing: 0.25rem;
    --container-md: 28rem;
    --container-xl: 36rem;
    --container-2xl: 42rem;
    --container-3xl: 48rem;
    --container-4xl: 56rem;
    --container-5xl: 64rem;
    --text-xs: 0.75rem;
    --text-xs--line-height: calc(1 / 0.75);
    --text-sm: 0.875rem;
    --text-sm--line-height: calc(1.25 / 0.875);
    --text-base: 1rem;
    --text-base--line-height: calc(1.5 / 1);
    --text-lg: 1.125rem;
    --text-lg--line-height: calc(1.75 / 1.125);
    --text-xl: 1.25rem;
    --text-xl--line-height: calc(1.75 / 1.25);
    --text-2xl: 1.5rem;
    --text-2xl--line-height: calc(2 / 1.5);
    --text-3xl: 1.875rem;
    --text-3xl--line-height: calc(2.25 / 1.875);
    --text-4xl: 2.25rem;
    --text-4xl--line-height: calc(2.5 / 2.25);
    --text-5xl: 3rem;
    --text-5xl--line-height: 1;
    --text-6xl: 3.75rem;
    --text-6xl--line-height: 1;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --tracking-tight: -0.025em;
    --tracking-wider: 0.05em;
    --leading-relaxed: 1.625;
    --radius-sm: calc(var(--radius) - 4px);
    --radius-md: calc(var(--radius) - 2px);
    --radius-lg: var(--radius);
    --radius-xl: calc(var(--radius) + 4px);
    --radius-2xl: calc(var(--radius) + 8px);
    --radius-3xl: calc(var(--radius) + 12px);
    --radius-4xl: calc(var(--radius) + 16px);
    --ease-out: cubic-bezier(0, 0, 0.2, 1);
    --animate-spin: spin 1s linear infinite;
    --blur-sm: 8px;
    --blur-md: 12px;
    --default-transition-duration: 150ms;
    --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    --default-font-family: var(--font-montserrat), "Montserrat", system-ui, sans-serif;
    --default-mono-font-family: var(--font-mono);
    --color-background: var(--background);
    --color-foreground: var(--foreground);
    --color-sidebar-ring: var(--sidebar-ring);
    --color-sidebar-border: var(--sidebar-border);
    --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
    --color-sidebar-accent: var(--sidebar-accent);
    --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
    --color-sidebar-primary: var(--sidebar-primary);
    --color-sidebar-foreground: var(--sidebar-foreground);
    --color-sidebar: var(--sidebar);
    --color-chart-5: var(--chart-5);
    --color-chart-4: var(--chart-4);
    --color-chart-3: var(--chart-3);
    --color-chart-2: var(--chart-2);
    --color-chart-1: var(--chart-1);
    --color-ring: var(--ring);
    --color-input: var(--input);
    --color-border: var(--border);
    --color-destructive: var(--destructive);
    --color-accent-foreground: var(--accent-foreground);
    --color-accent: var(--accent);
    --color-muted-foreground: var(--muted-foreground);
    --color-muted: var(--muted);
    --color-secondary-foreground: var(--secondary-foreground);
    --color-secondary: var(--secondary);
    --color-primary-foreground: var(--primary-foreground);
    --color-primary: var(--primary);
    --color-popover-foreground: var(--popover-foreground);
    --color-popover: var(--popover);
    --color-card-foreground: var(--card-foreground);
    --color-card: var(--card);
  }
}
@layer base {
  *, ::after, ::before, ::backdrop, ::file-selector-button {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0 solid;
  }
  html, :host {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    font-family: var(--default-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }
  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }
  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }
  h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
  }
  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
  }
  b, strong {
    font-weight: bolder;
  }
  code, kbd, samp, pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }
  small {
    font-size: 80%;
  }
  sub, sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }
  sub {
    bottom: -0.25em;
  }
  sup {
    top: -0.5em;
  }
  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }
  :-moz-focusring:where(:not(iframe)) {
    outline: auto;
  }
  progress {
    vertical-align: baseline;
  }
  summary {
    display: list-item;
  }
  ol, ul, menu {
    list-style: none;
  }
  img, svg, video, canvas, audio, iframe, embed, object {
    display: block;
    vertical-align: middle;
  }
  img, video {
    max-width: 100%;
    height: auto;
  }
  button, input, select, optgroup, textarea, ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    border-radius: 0;
    background-color: transparent;
    opacity: 1;
  }
  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }
  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }
  ::file-selector-button {
    margin-inline-end: 4px;
  }
  ::placeholder {
    opacity: 1;
  }
  @supports (not (-webkit-appearance: -apple-pay-button))  or (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: currentcolor;
      @supports (color: color-mix(in lab, red, red)) {
        color: color-mix(in oklab, currentcolor 50%, transparent);
      }
    }
  }
  textarea {
    resize: vertical;
  }
  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }
  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }
  ::-webkit-datetime-edit {
    display: inline-flex;
  }
  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }
  ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }
  ::-webkit-calendar-picker-indicator {
    line-height: 1;
  }
  :-moz-ui-invalid {
    box-shadow: none;
  }
  button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button {
    appearance: button;
  }
  ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
    height: auto;
  }
  [hidden]:where(:not([hidden="until-found"])) {
    display: none !important;
  }
}
@layer utilities {
  .collapse {
    visibility: collapse;
  }
  .invisible {
    visibility: hidden;
  }
  .visible {
    visibility: visible;
  }
  .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border-width: 0;
  }
  .absolute {
    position: absolute;
  }
  .fixed {
    position: fixed;
  }
  .relative {
    position: relative;
  }
  .static {
    position: static;
  }
  .sticky {
    position: sticky;
  }
  .inset-0 {
    inset: 0px;
  }
  .-top-3 {
    top: calc(var(--spacing) * -3);
  }
  .top-0 {
    top: 0px;
  }
  .top-4 {
    top: calc(var(--spacing) * 4);
  }
  .right-0 {
    right: 0px;
  }
  .right-4 {
    right: calc(var(--spacing) * 4);
  }
  .left-0 {
    left: 0px;
  }
  .left-1\/2 {
    left: calc(1 / 2 * 100%);
  }
  .isolate {
    isolation: isolate;
  }
  .z-50 {
    z-index: 50;
  }
  .container {
    width: 100%;
    @media (width >= 40rem) {
      max-width: 40rem;
    }
    @media (width >= 48rem) {
      max-width: 48rem;
    }
    @media (width >= 64rem) {
      max-width: 64rem;
    }
    @media (width >= 80rem) {
      max-width: 80rem;
    }
    @media (width >= 96rem) {
      max-width: 96rem;
    }
  }
  .mx-auto {
    margin-inline: auto;
  }
  .mt-0\.5 {
    margin-top: calc(var(--spacing) * 0.5);
  }
  .mt-1 {
    margin-top: var(--spacing);
  }
  .mt-4 {
    margin-top: calc(var(--spacing) * 4);
  }
  .mt-6 {
    margin-top: calc(var(--spacing) * 6);
  }
  .mt-12 {
    margin-top: calc(var(--spacing) * 12);
  }
  .mr-2 {
    margin-right: calc(var(--spacing) * 2);
  }
  .mb-1 {
    margin-bottom: var(--spacing);
  }
  .mb-2 {
    margin-bottom: calc(var(--spacing) * 2);
  }
  .mb-4 {
    margin-bottom: calc(var(--spacing) * 4);
  }
  .mb-6 {
    margin-bottom: calc(var(--spacing) * 6);
  }
  .mb-8 {
    margin-bottom: calc(var(--spacing) * 8);
  }
  .mb-20 {
    margin-bottom: calc(var(--spacing) * 20);
  }
  .ml-2 {
    margin-left: calc(var(--spacing) * 2);
  }
  .block {
    display: block;
  }
  .contents {
    display: contents;
  }
  .flex {
    display: flex;
  }
  .grid {
    display: grid;
  }
  .hidden {
    display: none;
  }
  .inline {
    display: inline;
  }
  .inline-block {
    display: inline-block;
  }
  .inline-flex {
    display: inline-flex;
  }
  .table {
    display: table;
  }
  .h-1 {
    height: var(--spacing);
  }
  .h-2 {
    height: calc(var(--spacing) * 2);
  }
  .h-3 {
    height: calc(var(--spacing) * 3);
  }
  .h-4 {
    height: calc(var(--spacing) * 4);
  }
  .h-5 {
    height: calc(var(--spacing) * 5);
  }
  .h-7 {
    height: calc(var(--spacing) * 7);
  }
  .h-8 {
    height: calc(var(--spacing) * 8);
  }
  .h-10 {
    height: calc(var(--spacing) * 10);
  }
  .h-12 {
    height: calc(var(--spacing) * 12);
  }
  .h-14 {
    height: calc(var(--spacing) * 14);
  }
  .h-16 {
    height: calc(var(--spacing) * 16);
  }
  .h-20 {
    height: calc(var(--spacing) * 20);
  }
  .h-full {
    height: 100%;
  }
  .h-px {
    height: 1px;
  }
  .min-h-\[60vh\] {
    min-height: 60vh;
  }
  .min-h-\[85vh\] {
    min-height: 85vh;
  }
  .min-h-screen {
    min-height: 100vh;
  }
  .w-3 {
    width: calc(var(--spacing) * 3);
  }
  .w-4 {
    width: calc(var(--spacing) * 4);
  }
  .w-5 {
    width: calc(var(--spacing) * 5);
  }
  .w-6 {
    width: calc(var(--spacing) * 6);
  }
  .w-7 {
    width: calc(var(--spacing) * 7);
  }
  .w-8 {
    width: calc(var(--spacing) * 8);
  }
  .w-10 {
    width: calc(var(--spacing) * 10);
  }
  .w-14 {
    width: calc(var(--spacing) * 14);
  }
  .w-16 {
    width: calc(var(--spacing) * 16);
  }
  .w-20 {
    width: calc(var(--spacing) * 20);
  }
  .w-auto {
    width: auto;
  }
  .w-full {
    width: 100%;
  }
  .max-w-2xl {
    max-width: var(--container-2xl);
  }
  .max-w-3xl {
    max-width: var(--container-3xl);
  }
  .max-w-4xl {
    max-width: var(--container-4xl);
  }
  .max-w-5xl {
    max-width: var(--container-5xl);
  }
  .max-w-md {
    max-width: var(--container-md);
  }
  .max-w-xl {
    max-width: var(--container-xl);
  }
  .min-w-\[200px\] {
    min-width: 200px;
  }
  .min-w-\[240px\] {
    min-width: 240px;
  }
  .min-w-\[280px\] {
    min-width: 280px;
  }
  .flex-1 {
    flex: 1;
  }
  .flex-shrink {
    flex-shrink: 1;
  }
  .flex-shrink-0 {
    flex-shrink: 0;
  }
  .shrink {
    flex-shrink: 1;
  }
  .shrink-0 {
    flex-shrink: 0;
  }
  .grow {
    flex-grow: 1;
  }
  .-translate-x-1\/2 {
    --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }
  .transform {
    transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
  }
  .animate-spin {
    animation: var(--animate-spin);
  }
  .resize {
    resize: both;
  }
  .grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .flex-col {
    flex-direction: column;
  }
  .flex-row {
    flex-direction: row;
  }
  .flex-wrap {
    flex-wrap: wrap;
  }
  .items-baseline {
    align-items: baseline;
  }
  .items-center {
    align-items: center;
  }
  .items-start {
    align-items: flex-start;
  }
  .justify-between {
    justify-content: space-between;
  }
  .justify-center {
    justify-content: center;
  }
  .gap-2 {
    gap: calc(var(--spacing) * 2);
  }
  .gap-3 {
    gap: calc(var(--spacing) * 3);
  }
  .gap-4 {
    gap: calc(var(--spacing) * 4);
  }
  .gap-6 {
    gap: calc(var(--spacing) * 6);
  }
  .gap-8 {
    gap: calc(var(--spacing) * 8);
  }
  :where(.space-y-2 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));
  }
  :where(.space-y-2\.5 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)));
  }
  :where(.space-y-3 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));
  }
  :where(.space-y-5 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)));
  }
  :where(.space-y-6 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));
  }
  :where(.space-y-8 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)));
  }
  :where(.space-y-10 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 10) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 10) * calc(1 - var(--tw-space-y-reverse)));
  }
  :where(.space-y-12 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 12) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 12) * calc(1 - var(--tw-space-y-reverse)));
  }
  .gap-x-10 {
    column-gap: calc(var(--spacing) * 10);
  }
  .gap-x-12 {
    column-gap: calc(var(--spacing) * 12);
  }
  .gap-y-4 {
    row-gap: calc(var(--spacing) * 4);
  }
  .gap-y-6 {
    row-gap: calc(var(--spacing) * 6);
  }
  :where(.divide-y > :not(:last-child)) {
    --tw-divide-y-reverse: 0;
    border-bottom-style: var(--tw-border-style);
    border-top-style: var(--tw-border-style);
    border-top-width: calc(1px * var(--tw-divide-y-reverse));
    border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
  }
  :where(.divide-border\/50 > :not(:last-child)) {
    border-color: var(--border);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--border) 50%, transparent);
    }
  }
  .overflow-hidden {
    overflow: hidden;
  }
  .rounded {
    border-radius: 0.25rem;
  }
  .rounded-2xl {
    border-radius: calc(var(--radius) + 8px);
  }
  .rounded-full {
    border-radius: calc(infinity * 1px);
  }
  .rounded-lg {
    border-radius: var(--radius);
  }
  .rounded-md {
    border-radius: calc(var(--radius) - 2px);
  }
  .rounded-sm {
    border-radius: calc(var(--radius) - 4px);
  }
  .rounded-xl {
    border-radius: calc(var(--radius) + 4px);
  }
  .border {
    border-style: var(--tw-border-style);
    border-width: 1px;
  }
  .border-2 {
    border-style: var(--tw-border-style);
    border-width: 2px;
  }
  .border-4 {
    border-style: var(--tw-border-style);
    border-width: 4px;
  }
  .border-t {
    border-top-style: var(--tw-border-style);
    border-top-width: 1px;
  }
  .border-b {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 1px;
  }
  .border-l-2 {
    border-left-style: var(--tw-border-style);
    border-left-width: 2px;
  }
  .border-border {
    border-color: var(--border);
  }
  .border-destructive\/20 {
    border-color: var(--destructive);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--destructive) 20%, transparent);
    }
  }
  .border-green-500\/20 {
    border-color: color-mix(in srgb, oklch(72.3% 0.219 149.579) 20%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-green-500) 20%, transparent);
    }
  }
  .border-muted {
    border-color: var(--muted);
  }
  .border-muted-foreground\/30 {
    border-color: var(--muted-foreground);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--muted-foreground) 30%, transparent);
    }
  }
  .border-primary {
    border-color: var(--primary);
  }
  .border-primary\/20 {
    border-color: var(--primary);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--primary) 20%, transparent);
    }
  }
  .border-primary\/30 {
    border-color: var(--primary);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--primary) 30%, transparent);
    }
  }
  .border-primary\/40 {
    border-color: var(--primary);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--primary) 40%, transparent);
    }
  }
  .border-primary\/50 {
    border-color: var(--primary);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--primary) 50%, transparent);
    }
  }
  .border-t-transparent {
    border-top-color: transparent;
  }
  .bg-background {
    background-color: var(--background);
  }
  .bg-background\/80 {
    background-color: var(--background);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--background) 80%, transparent);
    }
  }
  .bg-border {
    background-color: var(--border);
  }
  .bg-card {
    background-color: var(--card);
  }
  .bg-card\/30 {
    background-color: var(--card);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--card) 30%, transparent);
    }
  }
  .bg-card\/50 {
    background-color: var(--card);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--card) 50%, transparent);
    }
  }
  .bg-destructive\/10 {
    background-color: var(--destructive);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--destructive) 10%, transparent);
    }
  }
  .bg-green-500\/10 {
    background-color: color-mix(in srgb, oklch(72.3% 0.219 149.579) 10%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-green-500) 10%, transparent);
    }
  }
  .bg-green-500\/20 {
    background-color: color-mix(in srgb, oklch(72.3% 0.219 149.579) 20%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-green-500) 20%, transparent);
    }
  }
  .bg-muted {
    background-color: var(--muted);
  }
  .bg-muted\/50 {
    background-color: var(--muted);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--muted) 50%, transparent);
    }
  }
  .bg-primary {
    background-color: var(--primary);
  }
  .bg-primary\/5 {
    background-color: var(--primary);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--primary) 5%, transparent);
    }
  }
  .bg-primary\/10 {
    background-color: var(--primary);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--primary) 10%, transparent);
    }
  }
  .bg-gradient-to-r {
    --tw-gradient-position: to right in oklab;
    background-image: linear-gradient(var(--tw-gradient-stops));
  }
  .from-primary {
    --tw-gradient-from: var(--primary);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-primary\/80 {
    --tw-gradient-to: var(--primary);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-to: color-mix(in oklab, var(--primary) 80%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .p-2 {
    padding: calc(var(--spacing) * 2);
  }
  .p-3 {
    padding: calc(var(--spacing) * 3);
  }
  .p-4 {
    padding: calc(var(--spacing) * 4);
  }
  .p-6 {
    padding: calc(var(--spacing) * 6);
  }
  .p-8 {
    padding: calc(var(--spacing) * 8);
  }
  .px-3 {
    padding-inline: calc(var(--spacing) * 3);
  }
  .px-4 {
    padding-inline: calc(var(--spacing) * 4);
  }
  .py-1 {
    padding-block: var(--spacing);
  }
  .py-1\.5 {
    padding-block: calc(var(--spacing) * 1.5);
  }
  .py-2 {
    padding-block: calc(var(--spacing) * 2);
  }
  .py-3 {
    padding-block: calc(var(--spacing) * 3);
  }
  .py-8 {
    padding-block: calc(var(--spacing) * 8);
  }
  .py-16 {
    padding-block: calc(var(--spacing) * 16);
  }
  .py-20 {
    padding-block: calc(var(--spacing) * 20);
  }
  .py-24 {
    padding-block: calc(var(--spacing) * 24);
  }
  .pt-1 {
    padding-top: var(--spacing);
  }
  .pt-2 {
    padding-top: calc(var(--spacing) * 2);
  }
  .pt-4 {
    padding-top: calc(var(--spacing) * 4);
  }
  .pt-6 {
    padding-top: calc(var(--spacing) * 6);
  }
  .pt-8 {
    padding-top: calc(var(--spacing) * 8);
  }
  .pt-16 {
    padding-top: calc(var(--spacing) * 16);
  }
  .pt-24 {
    padding-top: calc(var(--spacing) * 24);
  }
  .pb-20 {
    padding-bottom: calc(var(--spacing) * 20);
  }
  .pl-6 {
    padding-left: calc(var(--spacing) * 6);
  }
  .text-center {
    text-align: center;
  }
  .text-left {
    text-align: left;
  }
  .text-right {
    text-align: right;
  }
  .font-sans {
    font-family: var(--font-montserrat), "Montserrat", system-ui, sans-serif;
  }
  .text-2xl {
    font-size: var(--text-2xl);
    line-height: var(--tw-leading, var(--text-2xl--line-height));
  }
  .text-3xl {
    font-size: var(--text-3xl);
    line-height: var(--tw-leading, var(--text-3xl--line-height));
  }
  .text-4xl {
    font-size: var(--text-4xl);
    line-height: var(--tw-leading, var(--text-4xl--line-height));
  }
  .text-5xl {
    font-size: var(--text-5xl);
    line-height: var(--tw-leading, var(--text-5xl--line-height));
  }
  .text-6xl {
    font-size: var(--text-6xl);
    line-height: var(--tw-leading, var(--text-6xl--line-height));
  }
  .text-base {
    font-size: var(--text-base);
    line-height: var(--tw-leading, var(--text-base--line-height));
  }
  .text-lg {
    font-size: var(--text-lg);
    line-height: var(--tw-leading, var(--text-lg--line-height));
  }
  .text-sm {
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
  }
  .text-xl {
    font-size: var(--text-xl);
    line-height: var(--tw-leading, var(--text-xl--line-height));
  }
  .text-xs {
    font-size: var(--text-xs);
    line-height: var(--tw-leading, var(--text-xs--line-height));
  }
  .leading-none {
    --tw-leading: 1;
    line-height: 1;
  }
  .leading-relaxed {
    --tw-leading: var(--leading-relaxed);
    line-height: var(--leading-relaxed);
  }
  .font-bold {
    --tw-font-weight: var(--font-weight-bold);
    font-weight: var(--font-weight-bold);
  }
  .font-medium {
    --tw-font-weight: var(--font-weight-medium);
    font-weight: var(--font-weight-medium);
  }
  .font-semibold {
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold);
  }
  .tracking-tight {
    --tw-tracking: var(--tracking-tight);
    letter-spacing: var(--tracking-tight);
  }
  .tracking-wider {
    --tw-tracking: var(--tracking-wider);
    letter-spacing: var(--tracking-wider);
  }
  .text-destructive {
    color: var(--destructive);
  }
  .text-destructive\/60 {
    color: var(--destructive);
    @supports (color: color-mix(in lab, red, red)) {
      color: color-mix(in oklab, var(--destructive) 60%, transparent);
    }
  }
  .text-foreground {
    color: var(--foreground);
  }
  .text-green-500 {
    color: var(--color-green-500);
  }
  .text-muted-foreground {
    color: var(--muted-foreground);
  }
  .text-primary {
    color: var(--primary);
  }
  .text-primary-foreground {
    color: var(--primary-foreground);
  }
  .text-primary\/15 {
    color: var(--primary);
    @supports (color: color-mix(in lab, red, red)) {
      color: color-mix(in oklab, var(--primary) 15%, transparent);
    }
  }
  .lowercase {
    text-transform: lowercase;
  }
  .uppercase {
    text-transform: uppercase;
  }
  .italic {
    font-style: italic;
  }
  .overline {
    text-decoration-line: overline;
  }
  .antialiased {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
  .shadow-2xl {
    --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .shadow-sm {
    --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .shadow-xs {
    --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .ring {
    --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .outline {
    outline-style: var(--tw-outline-style);
    outline-width: 1px;
  }
  .blur {
    --tw-blur: blur(8px);
    filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
  }
  .filter {
    filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
  }
  .backdrop-blur {
    --tw-backdrop-blur: blur(8px);
    -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
    backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
  }
  .backdrop-blur-md {
    --tw-backdrop-blur: blur(var(--blur-md));
    -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
    backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
  }
  .backdrop-blur-sm {
    --tw-backdrop-blur: blur(var(--blur-sm));
    -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
    backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
  }
  .transition {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-colors {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-opacity {
    transition-property: opacity;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .duration-200 {
    --tw-duration: 200ms;
    transition-duration: 200ms;
  }
  .select-none {
    -webkit-user-select: none;
    user-select: none;
  }
  .fade-in {
    --tw-enter-opacity: 0;
  }
  .running {
    animation-play-state: running;
  }
  @media (hover: hover) {
    .hover\:scale-105:hover {
      --tw-scale-x: 105%;
      --tw-scale-y: 105%;
      --tw-scale-z: 105%;
      scale: var(--tw-scale-x) var(--tw-scale-y);
    }
    .hover\:border-primary\/50:hover {
      border-color: var(--primary);
    }
    @supports (color: color-mix(in lab, red, red)) {
      .hover\:border-primary\/50:hover {
        border-color: color-mix(in oklab, var(--primary) 50%, transparent);
      }
    }
    .hover\:bg-muted:hover {
      background-color: var(--muted);
    }
    .hover\:bg-primary\/5:hover {
      background-color: var(--primary);
    }
    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-primary\/5:hover {
        background-color: color-mix(in oklab, var(--primary) 5%, transparent);
      }
    }
    .hover\:text-foreground:hover {
      color: var(--foreground);
    }
    .hover\:opacity-90:hover {
      opacity: 90%;
    }
  }
  @media (width >= 48rem) {
    .md\:w-auto {
      width: auto;
    }
    .md\:grid-cols-2 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .md\:grid-cols-3 {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .md\:flex-row {
      flex-direction: row;
    }
    .md\:p-8 {
      padding: calc(var(--spacing) * 8);
    }
    .md\:text-2xl {
      font-size: var(--text-2xl);
      line-height: var(--tw-leading, var(--text-2xl--line-height));
    }
    .md\:text-4xl {
      font-size: var(--text-4xl);
      line-height: var(--tw-leading, var(--text-4xl--line-height));
    }
    .md\:text-5xl {
      font-size: var(--text-5xl);
      line-height: var(--tw-leading, var(--text-5xl--line-height));
    }
    .md\:text-xl {
      font-size: var(--text-xl);
      line-height: var(--tw-leading, var(--text-xl--line-height));
    }
  }
  @media (width >= 64rem) {
    .lg\:text-6xl {
      font-size: var(--text-6xl);
      line-height: var(--tw-leading, var(--text-6xl--line-height));
    }
  }
}
@property --tw-animation-delay {
  syntax: "*";
  inherits: false;
  initial-value: 0s;
}
@property --tw-animation-direction {
  syntax: "*";
  inherits: false;
  initial-value: normal;
}
@property --tw-animation-duration {
  syntax: "*";
  inherits: false;
}
@property --tw-animation-fill-mode {
  syntax: "*";
  inherits: false;
  initial-value: none;
}
@property --tw-animation-iteration-count {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@property --tw-enter-blur {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-enter-opacity {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@property --tw-enter-rotate {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-enter-scale {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@property --tw-enter-translate-x {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-enter-translate-y {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-exit-blur {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-exit-opacity {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@property --tw-exit-rotate {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-exit-scale {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@property --tw-exit-translate-x {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-exit-translate-y {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
:root {
  color-scheme: light dark;
  --radius: 0.75rem;
  --background: var(--bg);
  --foreground: var(--fg);
  --card: var(--bg-card);
  --card-foreground: var(--fg);
  --popover: var(--bg-card);
  --popover-foreground: var(--fg);
  --primary-foreground: var(--fg-on-primary);
  --secondary-foreground: var(--fg-on-primary);
  --muted: var(--bg-muted);
  --muted-foreground: var(--fg-muted);
  --accent: var(--secondary);
  --accent-foreground: var(--fg-on-primary);
  --input: var(--border);
  --ring: var(--primary);
  --chart-1: var(--primary);
  --chart-2: var(--secondary);
  --chart-3: var(--primary-ink);
  --chart-4: var(--primary-on-paper);
  --chart-5: var(--fg-faint);
  --sidebar: var(--bg-card);
  --sidebar-foreground: var(--fg);
  --sidebar-primary: var(--primary);
  --sidebar-primary-foreground: var(--fg-on-primary);
  --sidebar-accent: var(--bg-muted);
  --sidebar-accent-foreground: var(--fg);
  --sidebar-border: var(--border);
  --sidebar-ring: var(--primary);
}
.dark {
  color-scheme: dark;
}
@layer base {
  * {
    border-color: var(--border);
    outline-color: var(--ring);
    @supports (color: color-mix(in lab, red, red)) {
      outline-color: color-mix(in oklab, var(--ring) 50%, transparent);
    }
  }
  body {
    background-color: var(--background);
    color: var(--foreground);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    background-color: #ECE9EA;
    color: #151214;
  }
}
@layer utilities {
  .gradient-primary {
    background-color: var(--primary);
  }
  .gradient-text {
    color: var(--primary);
  }
  .perspective-1000 {
    perspective: 1000px;
  }
  .noise-overlay {
    position: relative;
  }
  .noise-overlay::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
    opacity: 0.03;
    pointer-events: none;
    z-index: 1;
  }
  .shadow-depth-sm {
    box-shadow: 0 2px 8px -2px rgba(0, 0, 0, 0.2);
  }
  .shadow-depth-md {
    box-shadow: 0 8px 24px -8px rgba(0, 0, 0, 0.25);
  }
  .shadow-depth-lg {
    box-shadow: 0 16px 40px -12px rgba(0, 0, 0, 0.3);
  }
}
@media (prefers-color-scheme: dark) {
  body {
    background-color: #121011 !important;
    color: #ECE9EA !important;
  }
}
@property --tw-translate-x {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-translate-y {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-translate-z {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-rotate-x {
  syntax: "*";
  inherits: false;
}
@property --tw-rotate-y {
  syntax: "*";
  inherits: false;
}
@property --tw-rotate-z {
  syntax: "*";
  inherits: false;
}
@property --tw-skew-x {
  syntax: "*";
  inherits: false;
}
@property --tw-skew-y {
  syntax: "*";
  inherits: false;
}
@property --tw-space-y-reverse {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-divide-y-reverse {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-border-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}
@property --tw-gradient-position {
  syntax: "*";
  inherits: false;
}
@property --tw-gradient-from {
  syntax: "<color>";
  inherits: false;
  initial-value: #0000;
}
@property --tw-gradient-via {
  syntax: "<color>";
  inherits: false;
  initial-value: #0000;
}
@property --tw-gradient-to {
  syntax: "<color>";
  inherits: false;
  initial-value: #0000;
}
@property --tw-gradient-stops {
  syntax: "*";
  inherits: false;
}
@property --tw-gradient-via-stops {
  syntax: "*";
  inherits: false;
}
@property --tw-gradient-from-position {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 0%;
}
@property --tw-gradient-via-position {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 50%;
}
@property --tw-gradient-to-position {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-leading {
  syntax: "*";
  inherits: false;
}
@property --tw-font-weight {
  syntax: "*";
  inherits: false;
}
@property --tw-tracking {
  syntax: "*";
  inherits: false;
}
@property --tw-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-inset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-inset-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-inset-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-ring-color {
  syntax: "*";
  inherits: false;
}
@property --tw-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-inset-ring-color {
  syntax: "*";
  inherits: false;
}
@property --tw-inset-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-ring-inset {
  syntax: "*";
  inherits: false;
}
@property --tw-ring-offset-width {
  syntax: "<length>";
  inherits: false;
  initial-value: 0px;
}
@property --tw-ring-offset-color {
  syntax: "*";
  inherits: false;
  initial-value: #fff;
}
@property --tw-ring-offset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-outline-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}
@property --tw-blur {
  syntax: "*";
  inherits: false;
}
@property --tw-brightness {
  syntax: "*";
  inherits: false;
}
@property --tw-contrast {
  syntax: "*";
  inherits: false;
}
@property --tw-grayscale {
  syntax: "*";
  inherits: false;
}
@property --tw-hue-rotate {
  syntax: "*";
  inherits: false;
}
@property --tw-invert {
  syntax: "*";
  inherits: false;
}
@property --tw-opacity {
  syntax: "*";
  inherits: false;
}
@property --tw-saturate {
  syntax: "*";
  inherits: false;
}
@property --tw-sepia {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-drop-shadow-size {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-blur {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-brightness {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-contrast {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-grayscale {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-hue-rotate {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-invert {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-opacity {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-saturate {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-sepia {
  syntax: "*";
  inherits: false;
}
@property --tw-duration {
  syntax: "*";
  inherits: false;
}
@property --tw-scale-x {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@property --tw-scale-y {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@property --tw-scale-z {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
@layer properties {
  @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
    *, ::before, ::after, ::backdrop {
      --tw-translate-x: 0;
      --tw-translate-y: 0;
      --tw-translate-z: 0;
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-space-y-reverse: 0;
      --tw-divide-y-reverse: 0;
      --tw-border-style: solid;
      --tw-gradient-position: initial;
      --tw-gradient-from: #0000;
      --tw-gradient-via: #0000;
      --tw-gradient-to: #0000;
      --tw-gradient-stops: initial;
      --tw-gradient-via-stops: initial;
      --tw-gradient-from-position: 0%;
      --tw-gradient-via-position: 50%;
      --tw-gradient-to-position: 100%;
      --tw-leading: initial;
      --tw-font-weight: initial;
      --tw-tracking: initial;
      --tw-shadow: 0 0 #0000;
      --tw-shadow-color: initial;
      --tw-shadow-alpha: 100%;
      --tw-inset-shadow: 0 0 #0000;
      --tw-inset-shadow-color: initial;
      --tw-inset-shadow-alpha: 100%;
      --tw-ring-color: initial;
      --tw-ring-shadow: 0 0 #0000;
      --tw-inset-ring-color: initial;
      --tw-inset-ring-shadow: 0 0 #0000;
      --tw-ring-inset: initial;
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-color: #fff;
      --tw-ring-offset-shadow: 0 0 #0000;
      --tw-outline-style: solid;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
      --tw-backdrop-blur: initial;
      --tw-backdrop-brightness: initial;
      --tw-backdrop-contrast: initial;
      --tw-backdrop-grayscale: initial;
      --tw-backdrop-hue-rotate: initial;
      --tw-backdrop-invert: initial;
      --tw-backdrop-opacity: initial;
      --tw-backdrop-saturate: initial;
      --tw-backdrop-sepia: initial;
      --tw-duration: initial;
      --tw-scale-x: 1;
      --tw-scale-y: 1;
      --tw-scale-z: 1;
      --tw-animation-delay: 0s;
      --tw-animation-direction: normal;
      --tw-animation-duration: initial;
      --tw-animation-fill-mode: none;
      --tw-animation-iteration-count: 1;
      --tw-enter-blur: 0;
      --tw-enter-opacity: 1;
      --tw-enter-rotate: 0;
      --tw-enter-scale: 1;
      --tw-enter-translate-x: 0;
      --tw-enter-translate-y: 0;
      --tw-exit-blur: 0;
      --tw-exit-opacity: 1;
      --tw-exit-rotate: 0;
      --tw-exit-scale: 1;
      --tw-exit-translate-x: 0;
      --tw-exit-translate-y: 0;
    }
  }
}




:root,
.fmw-landing,
.fmw-course-landing {
  
  --bg:              #0E0C12;
  
  --bg-flat:         #0E0E11;

  
  --bg-elevated:     #16121B;
  --bg-card:         #191520;
  --bg-muted:        #231D2B;
  --border:          #231D2B;
  --border-strong:   #2F273A;

  
  --paper:           #f5f1e8;
  --paper-ink:       #1a1622;
  --paper-ink-rgb:   26 22 34;
  
  --secondary-on-paper: #B34070;

  
  --fg:              #F0EEF4;
  --fg-rgb:          240 238 244;
  --fg-muted:        #B5ABC2;
  --fg-subtle:       #9182A3;
  --fg-faint:        #89799D;
  --fg-on-primary:   #ffffff;

  
  --primary:         #8A4AF3;
  --primary-rgb:     138 74 243;
  --primary-hover:   #7F44E0;
  
  --primary-ink:     #A777F6;
  
  --primary-on-paper: #753FCF;
  --primary-soft:    rgb(138 74 243 / 0.12);
  --primary-border:  rgb(138 74 243 / 0.38);
  --primary-glow:    rgb(138 74 243 / 0.24);

  
  --gradient-warm:     #FF5CA0;
  --gradient-warm-rgb: 255 92 160;
  --gradient:          linear-gradient(135deg, #FF5CA0 0%, #8A4AF3 100%);

  
  --secondary:        #FF5CA0;
  --secondary-soft:   rgb(255 92 160 / 0.12);
  --secondary-border: rgb(255 92 160 / 0.35);

  
  --success:         #22c55e;
  --destructive:     #ef4444;
  
  --destructive-ink: #f87171;
}


.fmw-landing,
.fmw-course-landing {
  
  --muted:           #6C5884;

  
  --font-sans-fallback:    var(--font-dm-sans), "DM Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-display-fallback: var(--font-display), "Space Grotesk", system-ui, sans-serif;
  --font-serif-fallback:   var(--font-serif), Lora, Georgia, "Times New Roman", serif;
  --font-mono-fallback:    var(--font-mono), "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  --radius-sm:   6px;
  --radius-md:   10px;
  --radius-lg:   14px;
  --radius-xl:   18px;
  --radius-2xl:  24px;
  --radius-full: 9999px;

  --ease-smooth: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --ease-expo:   cubic-bezier(0.16, 1, 0.3, 1);
  --dur-quick:   200ms;
  --dur-normal:  340ms;
  --dur-slow:    600ms;
}



.fmw-footer {
  position: relative;
  border-top: 1px solid var(--border, #D3CED1);
  background: var(--bg, #ECE9EA);
  color: var(--text-primary, #151214);
  font-family: var(--font-montserrat), "Montserrat", system-ui, sans-serif;
}
.fmw-footer-inner { max-width: 1200px; margin: 0 auto; padding: 64px 24px 40px; }

.fmw-footer-brand { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 16px 24px; margin-bottom: 40px; }
.fmw-footer-brand .ds-wordmark { font-size: 28px; }
.fmw-footer-brand p { margin: 0; font-size: 15px; line-height: 1.5; color: var(--text-muted, #6C6569); max-width: 380px; }

.fmw-footer-cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 32px; padding-top: 32px; border-top: 1px solid var(--border, #D3CED1); }
.fmw-footer-h { margin: 0 0 16px; font-size: 13px; font-weight: 500; letter-spacing: 0.02em; text-transform: uppercase; color: var(--text-muted, #6C6569); }
.fmw-footer-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.fmw-footer-col a { display: flex; flex-direction: column; gap: 2px; text-decoration: none; color: inherit; }
.fmw-footer-col a .l { font-size: 15px; font-weight: 500; line-height: 1.35; letter-spacing: -0.02em; color: var(--text-primary, #151214); }
.fmw-footer-col a .n { font-size: 13px; line-height: 1.35; color: var(--text-muted, #6C6569); }
.fmw-footer-col a:hover .l { text-decoration: underline; text-underline-offset: 3px; }


.fmw-footer-col a.is-current { cursor: default; }
.fmw-footer-col a.is-current .l { color: var(--text-muted, #6C6569); text-decoration: none; }
.fmw-footer-col a.is-current .l::after {
  content: "you are here";
  margin-left: 8px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  white-space: nowrap;
}

.fmw-footer-legal { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 20px 40px; margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--border, #D3CED1); }
.fmw-footer-legal-nav { display: flex; flex-wrap: wrap; gap: 20px; }
.fmw-footer-legal-nav a { font-size: 14px; font-weight: 500; color: var(--text-secondary, #3B3639); text-decoration: none; }
.fmw-footer-legal-nav a:hover { text-decoration: underline; text-underline-offset: 3px; }
.fmw-footer-legal-nav a[aria-current="page"] { color: var(--text-muted, #6C6569); }

@media (max-width: 940px) {
  .fmw-footer-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .fmw-footer-inner { padding: 48px 20px 32px; }
  
  .fmw-footer-legal { padding-bottom: 56px; }
}



.entity-disclosure {
  margin: 0;
  display: grid;
  gap: 1px;
  
  max-width: 72ch;
  font-family: var(--font-montserrat), "Montserrat", system-ui, sans-serif;
  font-size: 13px;
  line-height: 1.65;
  color: var(--text-muted, #6C6569);
}
.entity-disclosure p { margin: 0; }
.entity-disclosure b { font-weight: 600; color: var(--text-primary, #151214); }
.entity-disclosure a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.entity-disclosure a:hover { color: var(--text-primary, #151214); }



.lv { margin: 0; display: flex; flex-direction: column; gap: 14px; }
.lv-frame { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--ink-800, #231F22); isolation: isolate; }
.lv-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.lv-btn { position: absolute; inset: 0; padding: 0; border: 0; background: none; cursor: pointer; }
.lv-btn img { object-fit: cover; transition: transform 420ms cubic-bezier(0.2, 0.7, 0.2, 1); }
.lv-btn::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  background-size: 220px;
  mix-blend-mode: overlay;
  opacity: 0.18;
  pointer-events: none;
}
.lv-play {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 2;
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  background: #fff;
  color: #151214;
  transition: transform 220ms cubic-bezier(0.2, 0.7, 0.2, 1), background-color 220ms, color 220ms;
}
.lv-play svg { width: 20px; height: 20px; margin-left: 3px; }
@media (hover: hover) and (pointer: fine) {
  .lv-btn:hover img { transform: scale(1.03); }
  .lv-btn:hover .lv-play { background: #151214; color: #fff; }
}
.lv-btn:focus-visible { outline: 2px solid #B125C4; outline-offset: -2px; }
.lv figcaption { font-size: 19px; font-weight: 500; line-height: 1.3; letter-spacing: -0.02em; color: #151214; }

.lv-slider { position: relative; }
.lv-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 48px) / 2.3);
  gap: 24px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding-bottom: 4px;
}
.lv-track::-webkit-scrollbar { display: none; }
.lv-slide { scroll-snap-align: start; min-width: 0; }
@media (max-width: 760px) { .lv-track { grid-auto-columns: 86%; gap: 16px; } }
.lv-slider[data-start="true"][data-end="false"] .lv-track { -webkit-mask-image: linear-gradient(90deg, #000 86%, transparent); mask-image: linear-gradient(90deg, #000 86%, transparent); }
.lv-slider[data-start="false"][data-end="false"] .lv-track { -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.lv-slider[data-start="false"][data-end="true"] .lv-track { -webkit-mask-image: linear-gradient(90deg, transparent, #000 14%); mask-image: linear-gradient(90deg, transparent, #000 14%); }

.lv-arrows { display: flex; justify-content: center; gap: 10px; margin-top: 32px; }
.lv-arrows button {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border: 1px solid #151214;
  background: transparent;
  color: #151214;
  cursor: pointer;
  transition: background-color 220ms, color 220ms, opacity 220ms, transform 120ms;
}
.lv-arrows button:active { transform: scale(0.97); }
.lv-arrows button:disabled { opacity: 0.3; cursor: default; }
@media (hover: hover) and (pointer: fine) {
  .lv-arrows button:not(:disabled):hover { background: #151214; color: #ECE9EA; }
}
.lv-arrows svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: square; }


.lvm-scrim {
  position: fixed;
  inset: 0;
  z-index: 300;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(21, 18, 20, 0.62);
}
.lvm {
  position: relative;
  width: min(960px, 100%);
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  background: #fff;
  color: #151214;
  font-family: var(--font-montserrat), "Montserrat", system-ui, sans-serif;
}
.lvm-body { padding: 28px 32px 32px; display: flex; flex-direction: column; gap: 14px; }
.lvm-body h2 { margin: 0; font-size: clamp(20px, 2.2vw, 28px); font-weight: 600; line-height: 1.2; letter-spacing: -0.035em; }
.lvm-body p { margin: 0; font-size: 17px; line-height: 1.6; color: #6C6569; max-width: 70ch; }
.lvm-links { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 4px; }
.lvm-body a { color: #9E2AA0; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
.lvm-close {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border: 0;
  background: #fff;
  color: #151214;
  cursor: pointer;
}
.lvm-close svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; }
@media (max-width: 600px) {
  .lvm-scrim { padding: 12px; }
  .lvm-body { padding: 20px 20px 24px; }
}




.ds {
  
  --pink-300: #FF9ACF;
  --pink-500: #F057B0;
  --magenta-500: #B125C4;
  --purple-500: #A032D0;

  
  --paper: #ECE9EA;
  --paper-2: #E3DFE1;
  --paper-3: #D3CED1;
  --ink-900: #151214;
  --ink-800: #231F22;
  --ink-700: #3B3639;
  --ink-500: #6C6569;
  --ink-400: #8F888C;
  --ink-300: #B9B2B6;
  --white: #FFFFFF;

  --danger: #C62D45;
  --danger-bg: #F9E0E4;

  --gradient-brand:
    radial-gradient(40% 44% at 14% 18%, #FFD1EA 0%, rgba(255, 209, 234, 0) 100%),
    radial-gradient(38% 42% at 64% 16%, #A635D4 0%, rgba(166, 53, 212, 0) 100%),
    radial-gradient(40% 38% at 88% 50%, #FF8CCB 0%, rgba(255, 140, 203, 0) 100%),
    radial-gradient(38% 44% at 30% 64%, #B840D6 0%, rgba(184, 64, 214, 0) 100%),
    radial-gradient(34% 36% at 60% 60%, #F25DB8 0%, rgba(242, 93, 184, 0) 100%),
    radial-gradient(42% 42% at 84% 94%, #8A26B8 0%, rgba(138, 38, 184, 0) 100%),
    conic-gradient(from 200deg at 50% 50%, #FF7CC4, #B840D6, #9A2EC4, #E040C0, #FFB8DE, #A935CE, #FF7CC4);
  --gradient-linear: linear-gradient(100deg, #FF9FD2 0%, #F25DB8 30%, #DB3FC6 58%, #B83AD6 82%, #A032D0 100%);

  --bg: var(--paper);
  --surface-card: #F6F4F5;
  --surface-muted: var(--paper-2);
  --text-primary: var(--ink-900);
  --text-secondary: var(--ink-700);
  --text-muted: var(--ink-500);
  --border: var(--paper-3);
  --border-strong: var(--ink-900);
  --accent: #C837C4;
  --accent-text: #9E2AA0;
  --accent-soft: #F4E3F4;
  --focus-ring: var(--magenta-500);
  --grid-line: rgba(21, 18, 20, 0.075);

  --grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  --speckle: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='420' height='420'><filter id='s'><feTurbulence type='fractalNoise' baseFrequency='.45' numOctaves='2' seed='11' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.08  0 0 0 0 0.07  0 0 0 0 0.08  90 0 0 0 -70'/></filter><rect width='100%' height='100%' filter='url(%23s)'/></svg>");
  --grid-lines: linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
  --grid-size: 120px;
  --photo-filter: grayscale(1) contrast(1.18) brightness(1.03);

  --ease-out: cubic-bezier(0.2, 0.7, 0.2, 1);
  --dur-fast: 120ms;
  --dur-base: 220ms;
  --dur-slow: 420ms;

  --font-sans: var(--font-montserrat), "Montserrat", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --fs-display: clamp(64px, 9.6vw, 144px);
  --fs-h1: clamp(40px, 5.8vw, 80px);
  --fs-h2: clamp(34px, 4.4vw, 60px);
  --fs-h3: 32px;
  --fs-h4: 22px;
  --fs-lg: 21px;
  --fs-body: 18px;
  --fs-sm: 15px;
  --fs-xs: 13px;
  --tracking-display: -0.04em;
  --tracking-heading: -0.035em;
  --tracking-snug: -0.02em;
  --tracking-body: -0.01em;
  --tracking-caps: 0.02em;

  --section-y: 128px;
  --container: 1200px;
  --container-narrow: 760px;
  --gutter: 24px;

  position: relative;
  isolation: isolate;
  min-height: 100vh;
  background-color: var(--bg);
  background-image: var(--grid-lines);
  background-size: var(--grid-size) var(--grid-size);
  color: var(--text-primary);
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  line-height: 1.6;
  letter-spacing: var(--tracking-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}

.ds::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: var(--speckle);
  background-size: 420px;
  opacity: 0.35;
  pointer-events: none;
}
.ds *,
.ds *::before,
.ds *::after { box-sizing: border-box; }
.ds h1,
.ds h2,
.ds h3,
.ds h4 { margin: 0; font-weight: 500; letter-spacing: var(--tracking-heading); text-wrap: balance; }
.ds p { margin: 0; text-wrap: pretty; }
.ds ::selection { background: var(--accent); color: #fff; }
.ds :focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 3px; }
.ds section[id] { scroll-margin-top: 72px; }

.ds-grain {
  position: fixed;
  inset: 0;
  z-index: 60;
  background-image: var(--grain);
  background-size: 200px;
  mix-blend-mode: multiply;
  opacity: 0.22;
  pointer-events: none;
}

.ds-container { max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); }
.ds-narrow { max-width: var(--container-narrow); }
.ds-section { position: relative; padding: var(--section-y) 0; }
.ds-stack { display: flex; flex-direction: column; gap: 64px; }

.ds-label {
  font-size: var(--fs-xs);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--text-muted);
}

.ds-lede { font-size: var(--fs-lg); line-height: 1.55; color: var(--text-muted); max-width: 600px; }


.ds-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  max-width: 880px;
  margin: 0 auto;
  text-align: center;
}
.ds-head h1,
.ds-head h2 { font-size: var(--fs-h2); font-weight: 700; line-height: 1.08; letter-spacing: var(--tracking-heading); color: inherit; }
.ds-head h1 { font-size: var(--fs-h1); }
.ds-head .ds-lede { max-width: 600px; }


.ds-hl {
  position: relative;
  display: inline-block;
  isolation: isolate;
  padding: 0.05em 0.16em 0.07em;
  color: #fff;
  -webkit-text-fill-color: #fff;
}
.ds-hl-bg {
  position: absolute !important;
  inset: 0;
  display: block !important;
  z-index: -1;
  font-size: 0.8em;
  background: var(--gradient-brand);
}


.ds-marks { position: absolute; inset: 0; pointer-events: none; color: var(--text-primary); }
.ds-marks i { position: absolute; width: 14px; height: 14px; }
.ds-marks i::before,
.ds-marks i::after { content: ""; position: absolute; background: currentColor; }
.ds-marks i::before { left: 6.5px; top: 0; width: 1px; height: 14px; }
.ds-marks i::after { top: 6.5px; left: 0; height: 1px; width: 14px; }
.ds-framed { position: relative; }
.ds-side {
  position: absolute;
  top: 50%;
  font-size: var(--fs-xs);
  font-weight: 500;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--text-muted);
}
.ds-side.left { left: 0; transform: translate(-50%, -50%) rotate(-90deg); }
.ds-side.right { right: 0; transform: translate(50%, -50%) rotate(90deg); }


.ds-paper-card { position: relative; isolation: isolate; color: var(--ink-900); }
.ds-paper-card-bg { position: absolute !important; inset: 0; display: block !important; z-index: -1; background: var(--white); }


.ds-icon-tile { display: inline-grid; place-items: center; flex: none; }
.ds-icon-tile svg { width: 46%; height: 46%; }
.ds-icon-tile.accent { background: var(--gradient-brand); color: #fff; }
.ds-icon-tile.ink { background: var(--ink-900); color: var(--paper); }
.ds-icon-tile.soft { background: var(--accent-soft); color: var(--accent-text); }


.ds-stat { display: flex; flex-direction: column; gap: 10px; }
.ds-stat-v {
  align-self: flex-start;
  font-size: clamp(40px, 4.4vw, 60px);
  font-weight: 500;
  line-height: 0.9;
  letter-spacing: var(--tracking-display);
}
.ds-stat-l { font-size: var(--fs-sm); line-height: 1.45; color: var(--text-muted); max-width: 220px; }


.ds .btn {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 52px;
  padding: 0 20px;
  border: 1px solid transparent;
  border-radius: 0;
  background: var(--ink-900);
  color: var(--paper);
  font: 500 15px/1 var(--font-sans);
  letter-spacing: var(--tracking-snug);
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition:
    color var(--dur-base) var(--ease-out),
    background-color var(--dur-base) var(--ease-out),
    transform var(--dur-fast) var(--ease-out);
}
.ds .btn::before {
  content: "";
  position: absolute;
  inset: -1px;
  z-index: -1;
  background: var(--gradient-brand);
  opacity: 0;
  transition: opacity var(--dur-base) var(--ease-out);
}
.ds .btn.lg { height: 58px; padding: 0 26px; font-size: 17px; }
.ds .btn.sm { height: 40px; padding: 0 16px; font-size: 14px; }
.ds .btn svg { flex: none; }
.ds .btn:active:not(:disabled) { transform: scale(0.97); }
.ds .btn:disabled { opacity: 0.45; cursor: not-allowed; }
.ds .btn-outline { background: transparent; color: var(--text-primary); border-color: var(--border-strong); }
.ds .btn-outline::before { display: none; }
@media (hover: hover) and (pointer: fine) {
  .ds .btn:not(:disabled):hover { color: #fff; }
  .ds .btn:not(:disabled):hover::before { opacity: 1; }
  .ds .btn-outline:not(:disabled):hover { background: var(--ink-900); color: var(--paper); }
}
.ds .btn.block { display: flex; width: 100%; justify-content: space-between; }




.ds-nav {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--bg);
  border-bottom: 1px solid transparent;
  transition: border-color var(--dur-base) var(--ease-out);
}
.ds-nav[data-scrolled="true"] { border-bottom-color: var(--border); }
.ds-nav-inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.ds-wordmark { font-size: 18px; font-weight: 600; line-height: 1; letter-spacing: -0.04em; color: var(--text-primary); }
.ds-wordmark span { color: var(--accent); }
.ds-nav a.ds-brand { text-decoration: none; }
.ds-nav-links { display: flex; align-items: center; gap: 32px; }
.ds-nav-links a {
  font-size: 15px;
  line-height: 1;
  letter-spacing: var(--tracking-snug);
  color: var(--text-muted);
  text-decoration: none;
  transition: color var(--dur-base) var(--ease-out);
}
.ds-nav-links a:hover,
.ds-nav-links a[data-active="true"] { color: var(--text-primary); }
@media (max-width: 900px) {
  .ds-nav-links a { display: none; }
}


.ds-hero { padding: 16px 0 var(--section-y); }
.ds-hero-grid {
  position: relative;
  display: grid;
  
  
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: 56px;
  align-items: start;
  padding: 32px 40px;
}
.ds-hero h1 {
  margin-top: 14px;
  font-size: clamp(30px, 2.9vw, 46px);
  font-weight: 700;
  line-height: 1.02;
  letter-spacing: -0.045em;
  letter-spacing: var(--tracking-display);
}
.ds-hero .ds-lede { margin-top: 18px; max-width: 540px; font-size: 18px; line-height: 1.5; }


@keyframes ds-pulse { 50% { opacity: 0.35; } }
@keyframes ds-typing { 50% { opacity: 0.25; } }

@media (max-width: 980px) {
  .ds-hero-grid { grid-template-columns: minmax(0, 1fr); padding: 32px 20px; gap: 40px; }
}
@media (max-width: 620px) {
  .ds-hero { padding-top: 24px; }
  .ds-hero-grid { padding: 24px 4px; }
}



.ds-glyph {
  position: relative;
  aspect-ratio: 1 / 0.86;
  display: grid;
  place-items: center;
  overflow: hidden;
  background-color: var(--white);
  background-image: linear-gradient(rgba(21, 18, 20, 0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(21, 18, 20, 0.06) 1px, transparent 1px);
  background-size: 40px 40px;
  color: var(--ink-900);
  isolation: isolate;
}
.ds-glyph-n { position: absolute; left: 18px; top: 16px; font-size: 15px; font-weight: 500; letter-spacing: -0.02em; }
.ds-glyph-icon { position: absolute; right: 16px; top: 16px; width: 44px; height: 44px; display: grid; place-items: center; background: var(--gradient-brand); color: #fff; }
.ds-glyph-icon svg { width: 20px; height: 20px; }
.ds-glyph-art { width: 78%; }
.ds-glyph-cap {
  position: absolute;
  left: 18px;
  bottom: 16px;
  font-size: var(--fs-xs);
  font-weight: 500;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--ink-500);
}


@keyframes ds-viz-in { from { opacity: 0; transform: translateX(-6px); } to { opacity: 1; transform: none; } }
@keyframes ds-viz-sweep { from { opacity: 0; transform: scaleX(0); } to { opacity: 1; transform: scaleX(1); } }
@keyframes ds-viz-pop { from { opacity: 0; transform: scale(0.92); } to { opacity: 1; transform: none; } }
@keyframes ds-viz-grow { from { opacity: 0; transform: scaleY(0); } to { opacity: 1; transform: scaleY(1); } }
@media (prefers-reduced-motion: reduce) {
  @keyframes ds-viz-fade { from { opacity: 0; } to { opacity: 1; } }
}



.ds-portrait { position: relative; aspect-ratio: 1 / 1.02; isolation: isolate; max-width: 520px; width: 100%; margin: 0 auto; }
.ds-portrait-block,
.ds-portrait-marks { position: absolute; left: 12%; right: 12%; top: 38%; bottom: 0; }
.ds-portrait-block { z-index: -1; overflow: hidden; background: var(--gradient-brand); }
.ds-portrait-block::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--grain);
  background-size: 220px;
  mix-blend-mode: overlay;
  opacity: 0.35;
}
.ds-portrait-img {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: auto;
  filter: grayscale(1) contrast(1.15);
  z-index: 1;
}
.ds-portrait-marks { z-index: 2; pointer-events: none; }
.ds-portrait .ds-side { z-index: 2; }
.ds-portrait .ds-side.right { right: -18px; }

@media (max-width: 900px) {
  .ds-portrait { max-width: 420px; }
}
@media (max-width: 620px) {
  .ds-stat-v { font-size: 34px; }
  .ds-stat-l { font-size: 13px; }
  .ds-portrait .ds-side { display: none; }
}

.ds-video-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }


.ds-price { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 18px 0; }
.ds-price b { font-size: clamp(40px, 4.4vw, 60px); font-weight: 700; line-height: 1; letter-spacing: var(--tracking-display); }
.ds-price span { font-size: var(--fs-sm); opacity: 0.6; white-space: nowrap; }
.ds-price.ds-hl { display: flex; padding: 18px 20px; }
.ds-price b { white-space: nowrap; }
.ds-price.ds-hl b { font-size: clamp(40px, 4.4vw, 60px); }
.ds-price.ds-hl span { opacity: 0.9; }
.ds-price.ds-hl .ds-hl-bg { font-size: 52px; }





.ds-faq { max-width: var(--container-narrow); width: 100%; margin: 0 auto; border-bottom: 1px solid var(--border); }
.ds-faq-item { border-top: 1px solid var(--border); }
.ds-faq-q {
  width: 100%;
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) 24px;
  align-items: center;
  gap: 12px;
  padding: 24px 0;
  border: 0;
  background: none;
  color: var(--text-primary);
  font: 500 19px/1.35 var(--font-sans);
  letter-spacing: var(--tracking-snug);
  text-align: left;
  cursor: pointer;
}
.ds-faq-q .qn { font-size: var(--fs-xs); font-weight: 500; color: var(--text-muted); }
.ds-faq-q .icon { display: grid; place-items: center; transition: transform var(--dur-base) var(--ease-out); }
.ds-faq-item.open .ds-faq-q .icon { transform: rotate(45deg); }
.ds-faq-a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows var(--dur-slow) var(--ease-out); }
.ds-faq-item.open .ds-faq-a { grid-template-rows: 1fr; }
.ds-faq-a > div { overflow: hidden; }
.ds-faq-a p { padding: 0 36px 26px 48px; font-size: 16.5px; line-height: 1.65; color: var(--text-muted); }
@media (max-width: 620px) {
  .ds-faq-q { grid-template-columns: minmax(0, 1fr) 24px; font-size: 17px; }
  .ds-faq-q .qn { display: none; }
  .ds-faq-a p { padding: 0 24px 22px 0; }
}


.ds-cta { position: relative; max-width: 720px; margin: 0 auto; padding: 64px 32px; display: flex; flex-direction: column; align-items: center; gap: 24px; text-align: center; }
.ds-cta h2 { font-size: var(--fs-h1); font-weight: 700; line-height: 1.04; letter-spacing: var(--tracking-heading); }
.ds-cta > p { color: var(--text-muted); }
.ds-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 28px;
  padding: 0 12px;
  border: 1px solid var(--border-strong);
  font-size: var(--fs-xs);
  font-weight: 500;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  white-space: nowrap;
}
.ds-section.ds-final { padding-bottom: 160px; }
@media (max-width: 620px) {
  .ds-cta { padding: 48px 12px; }
}


.ds-sticky {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 55;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
  background: var(--bg);
  border-top: 1px solid var(--border);
  transform: translateY(110%);
  transition: transform var(--dur-slow) var(--ease-out);
}
.ds-sticky[data-show="true"] { transform: none; }
.ds-sticky .btn { width: 100%; }
@media (min-width: 761px) { .ds-sticky { display: none; } }


.ds .modal {
  position: relative;
  width: min(580px, 100%);
  padding: 40px 36px 32px;
  background: var(--white);
  color: var(--ink-900);
}
.ds .modal h2 { margin-top: 14px; font-size: clamp(26px, 3vw, 34px); font-weight: 700; line-height: 1.1; letter-spacing: var(--tracking-heading); }
.ds .modal .sub { margin: 12px 0 28px; font-size: 15.5px; line-height: 1.55; color: var(--ink-500); }
.ds .field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 20px; }
.ds .field label { font-size: 14px; font-weight: 600; letter-spacing: var(--tracking-snug); }
.ds .field .hint { font-weight: 400; color: var(--ink-500); }
.ds .input {
  width: 100%;
  height: 52px;
  padding: 0 16px;
  border: 1px solid var(--ink-300);
  border-radius: 0;
  background: var(--white);
  color: var(--ink-900);
  font: 400 16px/1.2 var(--font-sans);
  letter-spacing: var(--tracking-body);
  appearance: none;
  transition: border-color var(--dur-base) var(--ease-out);
}
.ds .input::placeholder { color: var(--ink-400); }
.ds .input:hover { border-color: var(--ink-500); }
.ds .input:focus { outline: 2px solid var(--focus-ring); outline-offset: 0; border-color: var(--ink-900); }
.ds .reveal { display: grid; grid-template-rows: 0fr; transition: grid-template-rows var(--dur-slow) var(--ease-out); }
.ds .hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ds .form-error { margin: 0 0 16px; padding: 12px 14px; background: var(--danger-bg); color: var(--danger); font-size: 14.5px; }
.ds .consent { display: flex; gap: 12px; align-items: flex-start; font-size: 14.5px; line-height: 1.5; color: var(--ink-700); cursor: pointer; }
.ds .consent input { width: 18px; height: 18px; margin: 2px 0 0; flex: none; accent-color: var(--ink-900); }
@media (max-width: 560px) {
  .ds .modal { padding: 36px 20px 24px; }
}


.ds-blog-grid { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px 24px; }
.ds-blog-card { display: flex; flex-direction: column; gap: 16px; color: inherit; text-decoration: none; }
.ds-blog-card .lv-frame img { object-fit: cover; transition: transform var(--dur-slow) var(--ease-out); }
@media (hover: hover) and (pointer: fine) {
  .ds-blog-card:hover .lv-frame img { transform: scale(1.03); }
  .ds-blog-card:hover h2 { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1.5px; }
}
.ds-blog-card h2 { font-size: var(--fs-h4); font-weight: 500; line-height: 1.3; letter-spacing: var(--tracking-snug); }
.ds-blog-card p { font-size: 16px; color: var(--text-muted); }
.ds-blog-card .more { font-size: 15px; font-weight: 500; }
@media (max-width: 860px) { .ds-blog-grid { grid-template-columns: minmax(0, 1fr); } }

.ds-article { padding: 64px 0 var(--section-y); }
.ds-article-wrap { max-width: var(--container-narrow); margin: 0 auto; padding: 0 var(--gutter); }
.ds-article-back { display: inline-block; margin-bottom: 36px; font-size: 15px; font-weight: 500; color: var(--text-primary); }
.ds-article h1 { font-size: clamp(34px, 4.6vw, 56px); font-weight: 700; line-height: 1.06; letter-spacing: var(--tracking-heading); }
.ds-article-sub { margin-top: 20px; font-size: var(--fs-lg); line-height: 1.5; color: var(--text-muted); }
.ds-article-meta { margin-top: 16px; }
.ds-article-video { margin: 44px 0 52px; }
.ds .article-body { font-size: 18px; line-height: 1.75; color: var(--ink-800); }
.ds .article-body p { margin: 0 0 22px; }
.ds .article-body h2 { margin: 56px 0 16px; font-size: clamp(24px, 2.6vw, 32px); font-weight: 600; line-height: 1.2; letter-spacing: var(--tracking-heading); color: var(--ink-900); }
.ds .article-body ul,
.ds .article-body ol { margin: 0 0 24px; padding-left: 24px; }
.ds .article-body li { margin: 0 0 8px; padding-left: 4px; }
.ds .article-body li::marker { color: var(--accent); }
.ds .article-body strong { font-weight: 600; color: var(--ink-900); }
.ds .article-body a { color: var(--accent-text); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
.ds-article-cta { margin-top: 72px; }
.ds-article-cta .ds-cta h2 { font-size: clamp(28px, 3.4vw, 44px); }
.ds-article-more { margin-top: 72px; padding-top: 32px; border-top: 1px solid var(--ink-900); }
.ds-article-more ul { list-style: none; margin: 20px 0 0; padding: 0; display: flex; flex-direction: column; }
.ds-article-more li { display: flex; flex-direction: column; gap: 4px; padding: 18px 0; border-bottom: 1px solid var(--border); }
.ds-article-more a { font-size: 18px; font-weight: 500; color: var(--ink-900); text-decoration: none; letter-spacing: var(--tracking-snug); }
.ds-article-more a:hover { text-decoration: underline; text-underline-offset: 3px; }
.ds-article-more span { font-size: 15px; color: var(--text-muted); }



.ds-legal { padding: 64px 0 var(--section-y); }
.ds-legal .legal-head h1 { font-size: clamp(36px, 4.6vw, 56px); font-weight: 700; line-height: 1.06; letter-spacing: var(--tracking-heading); }
.ds-legal .legal-meta { margin-top: 12px; font-size: 14px; color: var(--text-muted); }
.ds-legal .legal-entity-card { margin: 32px 0 40px; padding: 24px 28px; background: var(--white); font-size: 15px; line-height: 1.6; }
.ds-legal h2 { margin: 44px 0 12px; font-size: 24px; font-weight: 600; letter-spacing: var(--tracking-heading); }
.ds-legal h3 { margin: 28px 0 8px; font-size: 18px; font-weight: 600; }
.ds-legal p,
.ds-legal li { font-size: 16.5px; line-height: 1.7; color: var(--ink-800); }
.ds-legal p { margin: 0 0 16px; }
.ds-legal ul,
.ds-legal ol { margin: 0 0 18px; padding-left: 22px; }
.ds-legal a { color: var(--accent-text); text-decoration: underline; text-underline-offset: 3px; }
.ds-legal table { width: 100%; border-collapse: collapse; margin: 0 0 20px; font-size: 15px; }


@media (max-width: 760px) {
  .ds { --section-y: 80px; --gutter: 20px; }
  .ds-stack { gap: 48px; }
  .ds-lede { font-size: 18px; }
  .ds-head { gap: 14px; }
}


:root {
  --cc-ink: #151214;
  --cc-accent: #9E2AA0;
  --cc-accent-hover: #7F2181;
  --cc-link: #F0B4F0;
  --cc-font: var(--font-montserrat), "Montserrat", system-ui, sans-serif;
}


.ds-legal .legal-entity-card p { margin: 0; }
@media (max-width: 980px) {
  .ds-hero-grid .ds-side { display: none; }
}


.ds-portrait-img.colour { opacity: 0; filter: contrast(1.05) saturate(1.05); z-index: 1; }
.ds-portrait-img,
.ds-portrait-block,
.ds-portrait-marks,
.ds-glyph,
.ds-glyph-icon,
.ds-glyph-n,
.ds-stat-v,
.ds-faq-q,
.ds-faq-q .icon {
  transition:
    transform var(--dur-slow) var(--ease-out),
    opacity var(--dur-slow) var(--ease-out),
    background-position 900ms var(--ease-out),
    background-color var(--dur-base) var(--ease-out),
    box-shadow var(--dur-base) var(--ease-out),
    color var(--dur-base) var(--ease-out);
}
.ds-portrait-block { background-size: 170% 170%; background-position: 0% 0%; }
.ds-hl-bg { background-size: 170% 170% !important; background-position: 0% 0%; transition: background-position 900ms var(--ease-out); }

@media (hover: hover) and (pointer: fine) {
  
  .ds-portrait:hover .ds-portrait-img { transform: translateY(-12px) scale(1.025); }
  .ds-portrait:hover .ds-portrait-img.colour { opacity: 1; }
  .ds-portrait:hover .ds-portrait-block { transform: scale(1.05); background-position: 100% 100%; }
  .ds-portrait:hover .ds-portrait-marks { transform: scale(1.1); }

  
  .ds-hl:hover .ds-hl-bg,
  .ds-head:hover .ds-hl-bg,
  .ds-hero h1:hover .ds-hl-bg { background-position: 100% 100%; }

  

  
  .ds-stat:hover .ds-stat-v { transform: translateY(-4px); }

  

  

  
  .ds-faq-q:hover { transform: translateX(6px); }
  .ds-faq-q:hover .icon { color: var(--accent); }

  

  

  
  .ds .btn:not(:disabled):hover svg:last-child { transform: translateX(3px); }
  .ds .btn svg { transition: transform var(--dur-base) var(--ease-out); }

  
}

@media (prefers-reduced-motion: reduce) {
  .ds-portrait:hover .ds-portrait-img,
  .ds-portrait:hover .ds-portrait-block,
  .ds-portrait:hover .ds-portrait-marks,
  .ds-stat:hover .ds-stat-v,
  .ds-faq-q:hover,
  .ds .btn:hover svg { transform: none !important; }
}




.ds-hero-person { align-items: center; }
.ds-hero-person .ds-hero-copy { display: flex; flex-direction: column; align-items: flex-start; }
.ds-hero-person h1 { margin-top: 16px; font-size: clamp(32px, 3.4vw, 52px); }
.ds-hero-photo { min-width: 0; }
.ds-hero-photo .ds-portrait { max-width: 470px; }
@media (max-width: 980px) {
  .ds-hero-photo { order: -1; }
  .ds-hero-photo .ds-portrait { max-width: 300px; }
}






.ds-soon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 52px;
  border: 1px dashed var(--ink-400);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--text-muted);
  cursor: default;
}



.ds-cta > .btn { margin-top: 4px; }


.ds-signup { width: 100%; max-width: 520px; display: flex; flex-direction: column; gap: 4px; }
.ds-signup .btn { align-self: flex-start; margin-top: 14px; }
.ds-signup .consent a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.ds-signup-error { margin-top: 6px; font-size: 14px; color: var(--danger); }
@media (max-width: 900px) {
  .ds-signup .btn { width: 100%; }
}


@media (prefers-color-scheme: dark) {
  .ds {
    --paper: #121011;
    --paper-2: #1B181A;
    --paper-3: #352F33;
    --ink-900: #ECE9EA;
    --ink-800: #DCD6DA;
    --ink-700: #CFC8D1;
    --ink-500: #948C97;
    --ink-400: #7A727C;
    --ink-300: #4A4349;
    --white: #1B181A;
    --surface-card: #1B181A;
    --accent: #E06BE8;
    --accent-text: #EDA0F0;
    --accent-soft: #2F1A33;
    --focus-ring: #FF9ACF;
    --danger: #F2768A;
    --danger-bg: #3A1820;
    --grid-line: rgba(236, 233, 234, 0.06);
    --photo-filter: grayscale(1) contrast(1.1) brightness(0.95);
  }
  .ds::before { opacity: 0.12; }
  .ds-grain { mix-blend-mode: screen; opacity: 0.16; }
  .ds-paper-card {
    --paper: #ECE9EA;
    --paper-2: #E3DFE1;
    --paper-3: #D3CED1;
    --ink-900: #151214;
    --ink-800: #231F22;
    --ink-700: #3B3639;
    --ink-500: #6C6569;
    --ink-400: #8F888C;
    --ink-300: #B9B2B6;
    --white: #FFFFFF;
    --text-primary: #151214;
    --text-secondary: #3B3639;
    --text-muted: #6C6569;
  }
  .ds .consent input { accent-color: #ECE9EA; }
  
  .ds .lv figcaption { color: #ECE9EA; }
  .ds .lv-arrows button { border-color: #ECE9EA; color: #ECE9EA; }
  .ds .lv-play { background: #ECE9EA; color: #121011; }
}
@media (prefers-color-scheme: dark) and (hover: hover) and (pointer: fine) {
  .ds .lv-arrows button:not(:disabled):hover { background: #ECE9EA; color: #121011; }
  .ds .lv-btn:hover .lv-play { background: #121011; color: #ECE9EA; }
}
@media (prefers-color-scheme: dark) {
  .fmw-consent-reopen { background: #121011; color: #ECE9EA; border-color: #ECE9EA; }
  .fmw-consent-reopen:hover { background: #ECE9EA; color: #121011; }
}


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


.ds-hero-person .ds-hero-copy { display: flex; flex-direction: column; gap: 32px; }
.ds-hero-person h1 { font-size: clamp(36px, 4.2vw, 62px); }
.ds-hero-form { max-width: 560px; display: flex; flex-direction: column; gap: 10px; }
.ds-hero-note { font-size: 14px; color: var(--text-muted); }
.ds-hero-photo .ds-portrait { max-width: 440px; }


.ds-signup { width: 100%; display: flex; flex-direction: column; gap: 6px; }
.ds-signup-row { display: flex; gap: 8px; }
.ds-signup-row .input { flex: 1; min-width: 0; height: 58px; }
.ds-signup-row .btn { height: 58px; margin-top: 0; align-self: stretch; }
.ds-signup .consent { margin-top: 8px; font-size: 13px; color: var(--text-muted); }
.ds-signup .consent a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.ds-signup-error a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

.ds-signup-captcha:empty { display: none; }
.ds-signup > .btn { align-self: flex-start; margin-top: 14px; }
.ds-signup-error { font-size: 14px; color: var(--danger); }
@media (max-width: 560px) {
  .ds-signup-row { flex-direction: column; }
  .ds-signup-row .btn,
  .ds-signup > .btn { width: 100%; }
}




.ds-punch { text-align: center; font-size: clamp(26px, 3vw, 40px); font-weight: 700; line-height: 1.15; letter-spacing: var(--tracking-heading); max-width: 820px; margin: 0 auto; }


.ds-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px; }
.ds-card { grid-column: span 2; min-width: 0; }
.ds-card:nth-child(n + 4) { grid-column: span 3; }
.ds-card .ds-paper-card { height: 100%; }
.ds-card-hit {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  padding: 28px 0 8px;
  border: 0;
  border-top: 2px solid var(--ink-900);
  background: none;
  color: var(--text-primary);
  font: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}
.ds-card.is-free .ds-card-hit { padding: 32px 32px 28px; border-top: 0; color: var(--ink-900); }
.ds-card-name { font-size: var(--fs-h4); font-weight: 600; line-height: 1.2; letter-spacing: var(--tracking-snug); }
.ds-card-line { flex: 1; font-size: 16px; line-height: 1.55; color: var(--text-muted); }
.ds-card.is-free .ds-card-line { color: var(--ink-500); }
.ds-card-cta { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; }
.ds-card.is-soon .ds-card-name,
.ds-card.is-soon .ds-card-cta { color: var(--text-muted); }
@media (max-width: 860px) {
  .ds-cards { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .ds-card,
  .ds-card:nth-child(n + 4) { grid-column: auto; }
}


.ds-popup { position: fixed; inset: 0; margin: auto; height: fit-content; width: min(640px, calc(100% - 32px)); max-height: calc(100vh - 48px); padding: 0; border: 0; background: #fff; color: #151214; }
.ds-popup::backdrop { background: rgba(21, 18, 20, 0.55); }
.ds-popup h3 { font-size: var(--fs-h3); font-weight: 600; letter-spacing: var(--tracking-heading); }
.ds-popup .ds-price { padding: 14px 18px; }
.ds-popup .ds-price b { font-size: 44px; }
.ds-popup-refund { font-size: 15px; color: #3B3639; }
.ds-popup .btn { background: #151214; color: #ECE9EA; }
.ds-soon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 52px;
  padding: 0 22px;
  border: 1px dashed #8F888C;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #6C6569;
  cursor: default;
}
@media (max-width: 560px) {
  .ds-popup .btn,
  .ds-popup .ds-soon { width: 100%; }
}


.ds-letter-grid { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr); gap: 72px; align-items: center; }
@media (max-width: 900px) {
  .ds-letter-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
}


.ds-badge-row { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.ds-badge-row .ds-badge svg { color: var(--accent); }


.ds-types { max-width: 820px; width: 100%; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 28px; }
.ds-tabs { display: inline-flex; flex-wrap: wrap; justify-content: center; background: var(--surface-muted); }
.ds-tabs button { height: 44px; padding: 0 20px; border: 0; background: transparent; color: var(--text-muted); font: 500 14px/1 var(--font-sans); letter-spacing: var(--tracking-snug); cursor: pointer; transition: background var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out); }
.ds-tabs button[aria-selected="true"] { background: var(--ink-900); color: var(--paper); }
.ds-type-card { width: 100%; }
.ds-type-text { min-height: 4.2em; padding: 44px 48px; text-align: center; font-size: clamp(20px, 2vw, 26px); line-height: 1.4; letter-spacing: var(--tracking-heading); color: var(--ink-900); }
@media (max-width: 560px) { .ds-type-text { padding: 32px 22px; } }




.ds-help { display: flex; justify-content: center; width: 100%; }
.ds-card .ds-card-hit { padding-top: 0; border-top: 0; }
.ds-card.is-free .ds-card-hit { padding: 0 0 8px; color: var(--text-primary); }
.ds-card.is-free .ds-card-line { color: var(--text-muted); }

.ds-letter-face .ds-portrait { max-width: 420px; }

.ds-process { position: relative; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.ds-process::before { content: ""; position: absolute; left: 0; right: 0; top: 22px; height: 2px; background: var(--ink-900); }
.ds-process li { position: relative; display: flex; flex-direction: column; gap: 8px; }
.ds-process-dot { width: 46px; height: 46px; margin-bottom: 14px; display: grid; place-items: center; background: var(--gradient-brand); color: #fff; font-size: 18px; font-weight: 700; }
.ds-process h3 { font-size: var(--fs-h4); font-weight: 600; letter-spacing: var(--tracking-snug); }
.ds-process p { font-size: 16px; color: var(--text-muted); }
@media (max-width: 860px) {
  .ds-process { grid-template-columns: minmax(0, 1fr); gap: 28px; padding-left: 64px; }
  .ds-process::before { left: 22px; right: auto; top: 0; bottom: 0; width: 2px; height: auto; }
  .ds-process-dot { position: absolute; left: -64px; top: 0; margin: 0; }
}

.ds-hero-person .ds-hero-copy { gap: 24px; }
.ds-hero-sub { margin-top: -6px; font-size: clamp(20px, 1.9vw, 26px); font-weight: 400; color: var(--text-secondary); }
.ds-hero-person h1 { font-size: clamp(40px, 5vw, 72px); }

.ds-lede-strong { color: var(--text-primary); font-size: clamp(20px, 1.9vw, 24px); font-weight: 500; line-height: 1.45; }

.nowrap { white-space: nowrap; }
.ds-punch, .ds-punch > span { text-align: center; }
.ds-punch > span { display: block !important; }


.ds-cut { position: relative; display: flex; align-items: flex-end; justify-content: center; isolation: isolate; }
.ds-cut-block { position: absolute; left: 10%; right: 10%; top: 42%; bottom: 0; z-index: -1; overflow: hidden; background: var(--gradient-brand); background-size: 170% 170%; background-position: 0% 0%; transition: transform var(--dur-slow) var(--ease-out), background-position var(--dur-slow) var(--ease-out); }
.ds-cut-block::after { content: ""; position: absolute; inset: 0; background-image: var(--grain); background-size: 220px; mix-blend-mode: overlay; opacity: 0.35; }
.ds-cut-img { position: relative; display: block; width: auto; max-width: 100%; height: auto; max-height: 100%; filter: grayscale(1) contrast(1.12); transition: filter var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out); }
@media (hover: hover) and (pointer: fine) {
  .ds-cut:hover .ds-cut-img,
  .ds-card-hit:hover .ds-cut-img { filter: none; transform: translateY(-8px); }
  .ds-cut:hover .ds-cut-block,
  .ds-card-hit:hover .ds-cut-block { background-position: 100% 100%; }
}

.ds-tn { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 32px; align-items: center; padding: 8px 0; }
.ds-tn-side { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 22px; text-align: center; }
.ds-tn-when { font-size: 13px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-muted); }
.ds-tn-when.now { color: var(--accent-text); }
.ds-tn .ds-cut { width: 100%; height: 320px; }
.ds-tn .ds-cut.then .ds-cut-img { max-height: 300px; }
.ds-tn .ds-cut.now .ds-cut-block { top: 50%; }
.ds-tn figcaption { max-width: 380px; font-size: clamp(20px, 1.9vw, 26px); font-weight: 500; line-height: 1.3; letter-spacing: var(--tracking-snug); color: var(--text-primary); }
.ds-tn figcaption b { font-weight: 700; }
.ds-tn-arrow { width: 60px; height: 60px; display: grid; place-items: center; background: var(--ink-900); color: var(--paper); }
@media (max-width: 860px) {
  .ds-tn { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .ds-tn .ds-cut { height: 240px; }
  .ds-tn .ds-cut.then .ds-cut-img { max-height: 230px; }
  .ds-tn-arrow { margin: 0 auto; transform: rotate(90deg); }
}
.ds-punch { width: 100%; max-width: 820px; margin-left: auto; margin-right: auto; align-self: center; }


.ds-cards { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; }
.ds-card,
.ds-card:nth-child(n + 4) { grid-column: auto; }
.ds-card .ds-paper-card { height: 100%; }
.ds-card .ds-card-hit,
.ds-card.is-free .ds-card-hit { padding: 24px 22px 22px; border-top: 0; gap: 10px; color: var(--ink-900); }
.ds-card .ds-cut.card { width: 100%; height: 200px; margin-bottom: 10px; }
.ds-card-kind { display: inline-block; padding: 4px 8px; background: var(--ink-900); color: #fff; font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; }
.ds-card.is-free .ds-card-kind { background: var(--gradient-brand); }
.ds-card .ds-card-name { font-size: 22px; font-weight: 700; color: var(--ink-900); }
.ds-card .ds-card-line,
.ds-card.is-free .ds-card-line { font-size: 15px; line-height: 1.5; color: var(--ink-700); }
.ds-card .ds-card-cta { color: var(--ink-900); }
.ds-card.is-soon .ds-card-cta { color: var(--ink-500); }
.ds-popup .ds-card-kind { margin-bottom: -8px; }
@media (max-width: 1180px) { .ds-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 860px) { .ds-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } }
@media (max-width: 560px) { .ds-cards { grid-template-columns: minmax(0, 1fr); } }




.ds-yt { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 48px; align-items: center; max-width: 820px; width: 100%; margin: 0 auto; }
.ds-yt .ds-cut.film { height: 280px; }
.ds-yt-copy { display: flex; flex-direction: column; align-items: flex-start; gap: 22px; }
.ds-yt-line { font-size: clamp(24px, 2.4vw, 32px); font-weight: 500; line-height: 1.2; letter-spacing: var(--tracking-heading); }
.ds-yt-line b { font-weight: 700; }
.ds-yt-links { display: flex; flex-wrap: wrap; gap: 10px; }
@media (max-width: 700px) {
  .ds-yt { grid-template-columns: minmax(0, 1fr); gap: 24px; justify-items: center; text-align: center; }
  .ds-yt .ds-cut.film { width: 220px; height: 240px; }
  .ds-yt-copy { align-items: center; }
  .ds-yt-links { justify-content: center; }
}


.ds-card.is-soon .ds-card-name { color: var(--ink-900); }
.ds-tn { align-items: start; }
.ds-tn-arrow { align-self: start; margin-top: calc(17px + 22px + 160px - 30px); }
.ds-tn .ds-cut.now .ds-cut-block { left: 4%; right: 4%; }
@media (max-width: 860px) { .ds-tn-arrow { align-self: center; margin-top: 0; } }
@media (max-width: 860px) { .ds-tn .ds-cut.now { height: auto; padding-top: 40px; } }
@media (max-width: 860px) { .ds-tn .ds-cut.now { padding-top: 0; } .ds-tn-arrow svg { transform: rotate(90deg); } }


.ds-letter-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; max-width: 1040px; width: 100%; margin: 0 auto; }
.ds-letter-face .ds-portrait { max-width: 460px; }
.ds-mail-wrap { width: 100%; max-width: 480px; justify-self: center; }
.ds-mail { background: #fff; color: #202124; border: 1px solid #dadce0; border-radius: 8px; overflow: hidden; font-family: Arial, Helvetica, sans-serif; text-align: left; }
.ds-mail-bar { display: flex; align-items: center; gap: 22px; padding: 12px 20px; border-bottom: 1px solid #eceff1; color: #5f6368; }
.ds-mail-bar .end { margin-left: auto; }
.ds-mail-subj { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 18px 20px 6px; font: 400 21px/1.3 Arial, Helvetica, sans-serif; color: #1f1f1f; letter-spacing: 0; }
.ds-mail-chip { padding: 1px 6px; border-radius: 4px; background: #dde3ea; color: #444746; font-size: 12px; }
.ds-mail-from { display: flex; align-items: flex-start; gap: 12px; padding: 14px 20px 4px; }
.ds-mail-avatar { flex: none; width: 40px; height: 40px; border-radius: 50%; overflow: hidden; background: #e8eaed; }
.ds-mail-avatar img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 12%; }
.ds-mail-who { flex: 1; min-width: 0; font-size: 14px; line-height: 1.4; }
.ds-mail-who b { font-weight: 700; color: #1f1f1f; }
.ds-mail-to { font-size: 12px; color: #5f6368; }
.ds-mail-meta { display: flex; gap: 14px; padding-top: 2px; color: #5f6368; }
.ds-mail-body { padding: 10px 20px 4px 72px; font-size: 14px; line-height: 1.5; color: #222; }
.ds-mail-body p { margin: 0 0 14px; font: inherit; color: inherit; }
.ds-mail-sign { color: #5f6368 !important; }
.ds-mail-more { display: inline-block; margin: 2px 0 14px; padding: 0 7px; border-radius: 8px; background: #e8eaed; color: #444746; font-size: 11px; letter-spacing: 1px; line-height: 14px; }
.ds-mail-actions { display: flex; gap: 10px; padding: 8px 20px 20px 72px; }
.ds-mail-actions span { display: inline-flex; align-items: center; gap: 8px; padding: 8px 18px; border: 1px solid #747775; border-radius: 18px; font-size: 14px; color: #444746; }
@media (max-width: 900px) {
  .ds-letter-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .ds-letter-face .ds-portrait { max-width: 360px; }
}
@media (max-width: 480px) {
  .ds-mail-body, .ds-mail-actions { padding-left: 20px; }
  .ds-mail-bar { gap: 18px; }
}


.ds-tn { grid-template-columns: minmax(0, 1fr) 48px minmax(0, 1fr); gap: 24px; }
.ds-tn .ds-cut,
.ds-tn .ds-cut.then,
.ds-tn .ds-cut.now { width: 100%; height: auto; aspect-ratio: 16 / 10; padding-top: 0; }
.ds-tn .ds-cut .ds-cut-block,
.ds-tn .ds-cut.now .ds-cut-block { left: 0; right: 0; top: 34%; bottom: 0; }
.ds-tn .ds-cut .ds-cut-img,
.ds-tn .ds-cut.then .ds-cut-img { max-width: 92%; max-height: 96%; margin-bottom: 0; }
.ds-tn-arrow { width: 48px; height: auto; background: none; color: var(--text-primary); margin-top: calc(17px + 22px + 18%); }
.ds-tn-arrow svg { width: 40px; height: 40px; stroke-width: 1.5; }
@media (max-width: 860px) {
  .ds-tn { grid-template-columns: minmax(0, 1fr); }
  .ds-tn-arrow { margin: 0 auto; }
}
.ds-tn .ds-cut { min-height: 0; }
.ds-tn .ds-cut .ds-cut-img,
.ds-tn .ds-cut.then .ds-cut-img { position: absolute; left: 50%; bottom: 0; width: auto; height: auto; max-width: 92%; max-height: 96%; transform: translateX(-50%); }
@media (hover: hover) and (pointer: fine) { .ds-tn .ds-cut:hover .ds-cut-img { transform: translate(-50%, -8px); } }

.ds-mail-body b { font-weight: 700; color: #1f1f1f; }
.ds-mail-body mark { padding: 1px 3px; border-radius: 2px; background: #fde68a; color: #1f1f1f; }

.ds-hero .ds-hero-sub { margin-top: -4px; max-width: 600px; font-size: clamp(22px, 2.2vw, 30px); font-weight: 400; line-height: 1.35; color: var(--text-primary); }


.ds .btn::before { display: none; }
@media (hover: hover) and (pointer: fine) {
  .ds .btn:not(.btn-outline):not(.btn-accent-outline):not(:disabled):hover { background: transparent; color: var(--ink-900); border-color: var(--ink-900); }
}
.ds-portrait-block::after,
.ds-cut-block::after { display: none; }
.ds-process-dot { background: var(--ink-900); color: var(--paper); }
.ds-card.is-free .ds-card-kind { background: var(--ink-900); color: var(--paper); }
.ds-badge-row .ds-badge svg { color: var(--text-primary); }


@media (min-width: 861px) { .ds-nl-more .ds-process { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px) {
  .ds-nl-hero .ds-hero-copy { order: 1; gap: 20px; }
  .ds-nl-hero .ds-hero-photo { order: 2; }
  .ds-nl-hero .ds-hero-photo .ds-portrait { max-width: 260px; }
  .ds-nl-hero.ds-hero { padding-top: 8px; }
  .ds-nl-hero .ds-hero-grid { padding-top: 20px; gap: 32px; }
  .ds-nl-hero h1 { font-size: clamp(32px, 9vw, 44px); }
  .ds-nl-hero .ds-hero-sub { font-size: 20px; }
}

@media (max-width: 560px) { .ds-signup-row .input { flex: none; width: 100%; } }


.ds-hero-person.ds-hero-grid { grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.7fr); }
.ds-hero-person h1 { font-size: clamp(34px, 3.8vw, 56px); line-height: 1.05; }
.ds-hero .ds-hero-sub { font-size: clamp(19px, 1.7vw, 24px); }
@media (max-width: 900px) {
  .ds-hero-person.ds-hero-grid { grid-template-columns: minmax(0, 1fr); }
  .ds-hero-person .ds-hero-copy { order: 1; gap: 20px; }
  .ds-hero-person .ds-hero-photo { order: 2; }
  .ds-hero-person .ds-hero-photo .ds-portrait { max-width: 260px; }
  .ds-hero-person h1 { font-size: clamp(32px, 9vw, 44px); }
  .ds-hero .ds-hero-sub { font-size: 20px; }
}


.ds-hl-bg { background-position: 100% 100% !important; }
@media (hover: hover) and (pointer: fine) {
  .ds-hl:hover .ds-hl-bg,
  .ds-head:hover .ds-hl-bg,
  h1:hover .ds-hl-bg,
  h2:hover .ds-hl-bg,
  .ds-punch:hover .ds-hl-bg { background-position: 0% 0% !important; }
}

.ds-nl-hero.ds-hero h1 { font-size: clamp(30px, 3.1vw, 46px); }
@media (max-width: 900px) { .ds-nl-hero.ds-hero h1 { font-size: clamp(28px, 7.6vw, 36px); } }


@media (min-width: 901px) {
  .ds-hero:has(.ds-hero-person) { min-height: calc(100svh - 73px); display: flex; align-items: center; padding: 24px 0 40px; }
  .ds-hero:has(.ds-hero-person) > .ds-container { width: 100%; }
  .ds-hero-person.ds-hero-grid { padding: 0; align-items: center; gap: clamp(32px, 5vw, 80px); }
  .ds-hero-person > .ds-marks i { margin: -28px; }
  .ds-hero-person .ds-hero-copy { gap: clamp(20px, 3.2vh, 36px); }
  .ds-hero-person h1 { font-size: clamp(34px, min(3.8vw, 7vh), 72px); }
  .ds-nl-hero.ds-hero h1 { font-size: clamp(30px, min(3.1vw, 5.8vh), 60px); }
  .ds-hero .ds-hero-sub { font-size: clamp(19px, min(1.7vw, 3vh), 28px); }
  .ds-hero-person .ds-hero-photo { justify-self: end; width: 100%; display: flex; justify-content: flex-end; }
  .ds-hero-person .ds-hero-photo .ds-portrait { max-width: min(100%, 62vh); margin: 0; }
}

.ds { --container: clamp(1200px, 80vw, 1440px); }
@media (min-width: 901px) {
  .ds-hero-person.ds-hero-grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); }
  .ds-hero-person h1 { font-size: clamp(34px, min(4vw, 7.6vh), 80px); }
  .ds-nl-hero.ds-hero h1 { font-size: clamp(30px, min(3.3vw, 6.2vh), 64px); }
  .ds-hero-person .ds-hero-photo .ds-portrait { max-width: min(100%, 70vh); }
}
.ds { --container: clamp(1200px, 82vw, 1600px); }
@media (max-width: 900px) { .ds-hero-person.ds-hero-grid { padding-left: 0; padding-right: 0; } }


.ds .ds-signup-row { flex-direction: row; flex-wrap: wrap; }
.ds .ds-signup-row .input { flex: 999 1 240px; width: auto; min-width: 0; height: 58px; }
.ds .ds-signup-row .btn { flex: 1 0 auto; width: auto; }




@media (min-width: 640px) and (max-width: 900px) and (orientation: landscape) {
  .ds-hero:has(.ds-hero-person) { min-height: calc(100svh - 73px); display: flex; align-items: center; padding: 16px 0 24px; }
  .ds-hero:has(.ds-hero-person) > .ds-container { width: 100%; }
  .ds-hero-person.ds-hero-grid { grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.6fr); gap: 28px; padding: 0; align-items: center; }
  .ds-hero-person .ds-hero-copy { order: 0; gap: 14px; }
  .ds-hero-person .ds-hero-photo { order: 0; display: flex; justify-content: flex-end; }
  .ds-hero-person .ds-hero-photo .ds-portrait { max-width: min(100%, 64vh); margin: 0; }
  .ds-hero-person h1 { font-size: clamp(26px, min(4.2vw, 9vh), 44px); }
  .ds-nl-hero.ds-hero h1 { font-size: clamp(24px, min(3.6vw, 8vh), 38px); }
  .ds-hero .ds-hero-sub { font-size: clamp(16px, 4.4vh, 20px); }
  .ds-hero-person .ds-hero-photo .ds-side { display: none; }
}


@media (max-height: 500px) and (orientation: landscape) {
  .ds-hero .ds-label { display: none; }
  .ds-hero-person h1 { font-size: clamp(24px, 9vh, 34px); }
  .ds-nl-hero.ds-hero h1 { font-size: clamp(22px, 8vh, 30px); }
  .ds-hero .ds-hero-sub { font-size: 16px; }
  .ds-hero-person .ds-hero-copy { gap: 10px; }
  .ds-hero-person.ds-hero-grid { padding-top: 8px; }
  .ds .ds-signup-row .input,
  .ds .ds-signup-row .btn { height: 48px; }
  
  .fmw-consent-reopen { left: auto; right: 12px; bottom: 12px; height: 28px; padding: 0 10px; }
}


@media (min-width: 600px) and (max-width: 860px) {
  .ds-tn { grid-template-columns: minmax(0, 1fr) 40px minmax(0, 1fr); gap: 16px; align-items: start; }
  .ds-tn .ds-cut, .ds-tn .ds-cut.then, .ds-tn .ds-cut.now { height: auto; aspect-ratio: 16 / 10; padding-top: 0; }
  .ds-tn-arrow { margin: 0; align-self: start; margin-top: calc(17px + 22px + 14%); }
  .ds-tn-arrow svg { transform: none; width: 32px; height: 32px; }
  .ds-tn figcaption { font-size: 18px; }
}


@media (max-width: 360px) {
  .ds-nav-links .btn.sm { height: 36px; padding: 0 10px; font-size: 12.5px; }
}


@media (max-width: 520px) {
  .ds-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  .ds-tabs button { padding: 0 10px; }
}


@media (max-width: 1180px) {
  .ds-cards { display: flex; flex-wrap: wrap; justify-content: center; }
  .ds-card, .ds-card:nth-child(n + 4) { flex: 0 1 calc((100% - 40px) / 3); }
}
@media (max-width: 860px) {
  .ds-card, .ds-card:nth-child(n + 4) { flex: 0 1 calc((100% - 16px) / 2); }
}
@media (max-width: 560px) {
  .ds-card, .ds-card:nth-child(n + 4) { flex: 1 1 100%; }
}


@media (max-height: 500px) and (orientation: landscape) {
  .fmw-consent { padding: 0; }
  .fmw-consent-box { max-width: none; display: flex; align-items: center; gap: 16px; padding: 10px 16px; }
  .fmw-consent-box h3 { display: none; }
  .fmw-consent-box p { flex: 1; margin: 0; font-size: 12.5px; line-height: 1.4; }
  .fmw-consent-actions { flex-wrap: nowrap; gap: 8px; }
  .fmw-consent-btn { height: 34px; padding: 0 14px; font-size: 13px; }
}
@media (max-width: 560px) {
  .fmw-consent { padding: 0; }
  .fmw-consent-box { padding: 14px 16px; }
  .fmw-consent-box h3 { font-size: 15px; margin-bottom: 4px; }
  .fmw-consent-box p { margin-bottom: 10px; font-size: 13px; line-height: 1.45; }
  .fmw-consent-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .fmw-consent-btn { height: 40px; }
}


@media (max-width: 900px) { .ds-hero-person > .ds-marks i { margin: -12px; } }


.ds-tn { container-type: inline-size; }
@media (min-width: 861px) {
  .ds-tn-arrow { margin-top: calc(17px + 22px + (100cqw - 48px - 48px) / 2 * 0.3125 - 20px) !important; }
}
@media (min-width: 600px) and (max-width: 860px) {
  .ds-tn-arrow { margin-top: calc(17px + 22px + (100cqw - 40px - 32px) / 2 * 0.3125 - 16px) !important; }
}


.ds-author-grid { position: relative; display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.ds-author-photo .ds-portrait { max-width: 420px; }
.ds-author-copy { display: flex; flex-direction: column; gap: 18px; max-width: 620px; }
.ds-author-copy h1 { font-size: clamp(36px, 4vw, 60px); font-weight: 700; line-height: 1.05; letter-spacing: var(--tracking-heading); }
.ds-author-copy p { font-size: 18px; line-height: 1.6; color: var(--text-primary); }
.ds-author-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
.ds-author-channels { list-style: none; margin: 0 auto; padding: 0; width: 100%; max-width: 820px; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.ds-author-channels a { display: flex; flex-direction: column; gap: 4px; padding: 18px 20px; border: 1px solid var(--border-strong); color: var(--text-primary); text-decoration: none; transition: background var(--dur-base) var(--ease-out); }
.ds-author-channels a:hover { background: var(--surface-muted); }
.ds-author-channels b { font-size: 17px; }
.ds-author-channels span { font-size: 14px; color: var(--text-muted); }
.ds-author-articles { list-style: none; margin: 0 auto; padding: 0; width: 100%; max-width: 820px; border-top: 1px solid var(--border); }
.ds-author-articles a { display: flex; flex-direction: column; gap: 4px; padding: 18px 0; border-bottom: 1px solid var(--border); color: var(--text-primary); text-decoration: none; }
.ds-author-articles a:hover b { text-decoration: underline; text-underline-offset: 4px; }
.ds-author-articles b { font-size: 18px; font-weight: 600; }
.ds-author-articles span { font-size: 15px; color: var(--text-muted); }
@media (max-width: 860px) {
  .ds-author-grid { grid-template-columns: minmax(0, 1fr); }
  .ds-author-photo .ds-portrait { max-width: 280px; }
}
.ds-byline { color: inherit; text-decoration: underline; text-underline-offset: 3px; }


.fsc-wrap { display: flex; flex-direction: column; gap: 18px; }
.fsc-wrap h1 { font-size: clamp(32px, 4vw, 54px); font-weight: 700; line-height: 1.06; letter-spacing: var(--tracking-heading); }
.ds .fsc-lede { font-size: clamp(19px, 1.8vw, 24px); color: var(--text-primary); }
.ds-article-tool { margin: 8px 0 0; padding: 18px 20px; border: 2px solid var(--ink-900); font-size: 17px; font-weight: 600; }
.ds-article-tool a { color: var(--text-primary); }


.fsq { display: flex; flex-direction: column; gap: 18px; margin-top: 8px; }
.fsq-bar { height: 6px; background: var(--surface-muted); overflow: hidden; }
.fsq-bar-fill { height: 100%; background: var(--ink-900); transition: width 300ms var(--ease-out); }
.fsq-stage { position: relative; overflow: hidden; }
.fsq-card { display: flex; flex-direction: column; gap: 20px; padding: clamp(24px, 4vw, 40px); border: 2px solid var(--ink-900); background: var(--bg); min-height: 360px; }
.fsq-intro p { font-size: 17px; line-height: 1.55; color: var(--text-primary); }
.fsq-intro .btn { align-self: flex-start; }
.fsq-big { font-size: 24px !important; font-weight: 700; letter-spacing: var(--tracking-snug); }
.fsq-parts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.fsq-parts li { display: flex; align-items: center; gap: 10px; font-size: 16px; font-weight: 600; }
.fsq-parts span, .fsq-part b { width: 28px; height: 28px; display: inline-grid; place-items: center; background: var(--ink-900); color: var(--paper); font-size: 14px; }
.fsq-meta { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.fsq-part { display: inline-flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.fsq-count { font-size: 14px; color: var(--text-muted); font-variant-numeric: tabular-nums; }
.fsq-why { margin: 0; font-size: 15.5px; line-height: 1.5; color: var(--text-muted); }
.fsq-q { margin: 0; font-size: clamp(24px, 3vw, 34px); font-weight: 700; line-height: 1.2; letter-spacing: var(--tracking-heading); }
.fsq-answers { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: auto; }
.fsq-a { display: flex; align-items: center; justify-content: center; gap: 10px; height: 72px; border: 2px solid var(--ink-900); background: transparent; color: var(--text-primary); font: 600 20px/1 var(--font-sans); cursor: pointer; transition: background 150ms, color 150ms, transform 100ms; }
.fsq-a kbd { font: 500 12px/1 var(--font-sans); padding: 3px 6px; border: 1px solid currentColor; opacity: 0.5; }
.fsq-a:hover, .fsq-a.on { background: var(--ink-900); color: var(--paper); }
.fsq-a:active { transform: scale(0.98); }
.fsq-back { align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; padding: 6px 0; border: 0; background: none; color: var(--text-muted); font: 500 14px/1 var(--font-sans); cursor: pointer; }
.fsq-back:disabled { visibility: hidden; }
.fsq-back:hover { color: var(--text-primary); }
.fsq-score { display: flex; align-items: center; gap: 20px; }
.fsq-num { font-size: clamp(56px, 8vw, 84px); font-weight: 800; line-height: 1; letter-spacing: -0.04em; }
.fsq-num small { font-size: 0.4em; color: var(--text-muted); letter-spacing: 0; }
.fsq-score p { font-size: 20px; font-weight: 600; line-height: 1.3; }
.fsq-breakdown { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 24px; }
.fsq-breakdown li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--border); font-size: 15.5px; font-weight: 600; }
.fsq-breakdown .dots { display: inline-flex; gap: 5px; }
.fsq-breakdown i { width: 12px; height: 12px; border: 2px solid var(--ink-900); }
.fsq-breakdown i.y { background: var(--ink-900); }
.fsq-fixes { display: flex; flex-direction: column; gap: 10px; }
.fsq-fixes ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.fsq-fixes li { display: flex; flex-direction: column; gap: 6px; padding: 14px 16px; background: var(--surface-muted); }
.fsq-fixes li.first { background: var(--ink-900); color: var(--paper); }
.fsq-fixes li.first p { color: var(--paper); }
.fsq-fixes b { font-size: 16px; }
.fsq-fixes p { margin: 0; font-size: 15.5px; line-height: 1.55; color: var(--text-primary); }
.fsq-first { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; opacity: 0.75; }
.fsq-next { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
@media (max-width: 560px) {
  .fsq-card { min-height: 0; }
  .fsq-a { height: 64px; font-size: 18px; }
  .fsq-a kbd { display: none; }
  .fsq-parts, .fsq-breakdown { grid-template-columns: minmax(0, 1fr); }
  .fsq-score { flex-direction: column; align-items: flex-start; gap: 8px; }
}

.fsq-email { display: flex; flex-direction: column; gap: 10px; padding: clamp(20px, 3vw, 28px); background: var(--ink-900); color: var(--paper); }
.fsq-email h3 { margin: 0; font-size: clamp(22px, 2.4vw, 28px); font-weight: 700; line-height: 1.2; letter-spacing: var(--tracking-heading); color: var(--paper); }
.fsq-email > p { margin: 0 0 6px; font-size: 16px; line-height: 1.5; color: var(--paper); opacity: 0.8; }
.fsq-email .input { background: var(--paper); color: var(--ink-900); border-color: var(--paper); }
.ds .fsq-email .btn { background: var(--accent); border-color: var(--accent); color: #fff; }
.fsq-email .consent { color: var(--paper); opacity: 0.8; }
.fsq-email .consent a { color: var(--paper); }
.fsq-thanks { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 20px; font-weight: 600; color: var(--paper); }
.fsq-next { gap: 20px; }


.ds .input:-webkit-autofill,
.ds .input:-webkit-autofill:hover,
.ds .input:-webkit-autofill:focus {
  -webkit-text-fill-color: currentColor;
  transition: background-color 600000s 0s, color 600000s 0s;
}
.fsq-email .input { border-width: 1px; }


.ds-popup.ds-popup-mail { width: min(720px, calc(100% - 24px)); max-height: calc(100dvh - 32px); height: auto; overflow: hidden; background: transparent; border-radius: 8px; }
.ds-popup-mail .ds-mail { display: flex; flex-direction: column; max-height: calc(100dvh - 32px); border-radius: 8px; }
.ds-popup-mail .ds-mail-bar { flex: none; }
.ds-mail-icon { display: grid; place-items: center; width: 32px; height: 32px; margin: -6px; border: 0; border-radius: 50%; background: none; color: #5f6368; cursor: pointer; }
.ds-mail-icon:hover { background: #f1f3f4; }
.ds-mail-icon.end { margin-left: auto; }
.ds-mail-scroll { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.ds-popup-mail .ds-mail-subj { padding-top: 20px; }
.ds-mail-letter { font-size: 15px; line-height: 1.6; color: #222; }
.ds-mail-letter p { margin: 0 0 14px; }
.ds-mail-letter h4 { margin: 22px 0 8px; font: 700 15px/1.4 Arial, Helvetica, sans-serif; color: #1f1f1f; }
.ds-mail-letter ul, .ds-mail-letter ol { margin: 0 0 14px; padding-left: 22px; }
.ds-mail-letter li { margin: 0 0 6px; padding-left: 2px; }
.ds-mail-letter strong { font-weight: 700; color: #1f1f1f; }
.ds-mail-qa { margin: 0 0 12px; padding: 10px 14px; border-left: 3px solid #dadce0; background: #f8f9fa; }
.ds-mail-qa p { margin: 0; }
.ds-mail-qa .q { margin-bottom: 4px; font-weight: 700; color: #1f1f1f; }
.ds-mail-letter .ds-mail-sign { margin-top: 18px; }
.ds-mail-offer { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; margin: 8px 20px 24px 72px; padding-top: 20px; border-top: 1px solid #e0e0e0; }
.ds-popup-mail .ds-price { padding: 12px 16px; }
.ds-popup-mail .ds-price b { font-size: 40px; }
.ds-popup-mail .ds-popup-refund { margin: 0; font-size: 15px; color: #3c4043; }
.ds-waitlist { width: 100%; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.ds-waitlist-line { margin: 0; font-size: 15px; color: #3c4043; }
.ds-waitlist .ds-signup { max-width: 520px; color: #3c4043; }
.ds-waitlist .input { background: #fff; color: #1f1f1f; border-color: #747775; }
.ds-waitlist .consent { color: #5f6368; }
.ds-waitlist .consent a { color: #3c4043; }
.ds-waitlist-done { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 15px; font-weight: 600; color: #1f1f1f; }
@media (max-width: 560px) {
  .ds-popup.ds-popup-mail { width: calc(100% - 16px); max-height: calc(100dvh - 16px); }
  .ds-popup-mail .ds-mail { max-height: calc(100dvh - 16px); }
  .ds-mail-offer { margin-left: 20px; }
}
.ds-mail-letter ul { list-style: disc outside; }
.ds-mail-letter ol { list-style: decimal outside; }
.ds-mail-letter li::marker { color: #5f6368; }
.ds-mail-letter ol li::marker { font-weight: 700; }
.ds-waitlist .ds-soon { width: auto !important; height: auto; padding: 4px 8px; border: 0; border-radius: 4px; background: #fce8b2; color: #7a5a00; font-size: 12px; font-weight: 700; letter-spacing: 0.04em; }




.tp-hero .ds-cut.tp-fig { width: 100%; max-width: 420px; height: min(62vh, 560px); margin-left: auto; }
.tp-hero .ds-cut.tp-fig .ds-cut-block { left: 6%; right: 6%; top: 30%; }
.tp-hero .ds-cut.tp-fig .ds-cut-img { max-height: 100%; width: auto; }
.tp-signals { position: relative; display: grid; grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr); gap: clamp(28px, 5vw, 72px); align-items: center; max-width: 1000px; width: 100%; margin: 0 auto; }
.tp-signals .ds-cut.tp-signals-fig { height: 380px; }
.tp-signals ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 26px; }
.tp-signals li { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 18px; align-items: start; }
.tp-signals .ds-process-dot { margin: 0; }
.tp-signals h3 { font-size: clamp(20px, 2vw, 26px); font-weight: 700; letter-spacing: var(--tracking-snug); }
.tp-signals p { margin-top: 4px; font-size: 17px; line-height: 1.5; color: var(--text-primary); }
.tp-compare { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 48px minmax(0, 1fr); gap: 24px; align-items: center; }
.tp-hl { margin: 0; display: flex; flex-direction: column; gap: 12px; padding: 28px; height: 100%; }
.tp-hl.bad { border: 2px dashed var(--border-strong); }
.tp-hl.good { border: 2px solid var(--ink-900); }
.tp-hl-tag { font-size: 13px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-muted); }
.tp-hl.good .tp-hl-tag { color: var(--accent-text); }
.tp-hl blockquote { margin: 0; font-size: clamp(20px, 2vw, 26px); font-weight: 700; line-height: 1.25; letter-spacing: var(--tracking-snug); color: var(--text-primary); }
.tp-hl.bad blockquote { color: var(--text-muted); text-decoration: line-through; text-decoration-thickness: 1.5px; }
.tp-hl figcaption { font-size: 16px; color: var(--text-primary); }
.tp-arrow { display: grid; place-items: center; color: var(--text-primary); }
.tp-template { font-size: clamp(20px, 2.2vw, 30px) !important; }
.tp-quiz { position: relative; display: grid; grid-template-columns: minmax(0, 0.6fr) minmax(0, 1.4fr); gap: clamp(24px, 4vw, 56px); align-items: center; max-width: 920px; margin: 0 auto; padding: clamp(24px, 4vw, 48px); border: 2px solid var(--ink-900); }
.tp-quiz .ds-cut.tp-quiz-fig { height: 300px; }
.tp-quiz-copy { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.tp-quiz-copy h2 { font-size: clamp(28px, 3vw, 42px); font-weight: 700; line-height: 1.08; letter-spacing: var(--tracking-heading); }
.tp-quiz-copy p { font-size: 17px; color: var(--text-primary); }
@media (max-width: 860px) {
  .tp-signals, .tp-quiz { grid-template-columns: minmax(0, 1fr); }
  .tp-signals .ds-cut.tp-signals-fig { height: 240px; }
  .tp-quiz .ds-cut.tp-quiz-fig { height: 220px; }
  .tp-compare { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .tp-arrow svg { transform: rotate(90deg); }
  .tp-hero .ds-cut.tp-fig { height: 300px; margin: 0 auto; }
}
.ds-punch.tp-template > span { display: inline-block !important; }
.ds-punch.tp-template { line-height: 1.5; }

.tp-reads { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.tp-read { height: 100%; display: flex; flex-direction: column; gap: 10px; padding-bottom: 6px; color: var(--text-primary); text-decoration: none; }
.tp-read-img { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; background: var(--surface-muted); }
.tp-read-img img { object-fit: cover; transition: transform var(--dur-slow) var(--ease-out); }
.tp-read b { font-size: 19px; line-height: 1.3; letter-spacing: var(--tracking-snug); }
.tp-read-sub { font-size: 15px; line-height: 1.5; color: var(--text-muted); }
.tp-read-more { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; font-size: 14px; font-weight: 600; }
@media (hover: hover) and (pointer: fine) { .tp-read:hover .tp-read-img img { transform: scale(1.03); } .tp-read:hover b { text-decoration: underline; text-underline-offset: 4px; } }
@media (max-width: 860px) { .tp-reads { grid-template-columns: minmax(0, 1fr); gap: 32px; } }
.ds-type-text { display: flex; flex-direction: column; align-items: center; gap: 18px; }
.ds-type-link { display: inline-flex; align-items: center; gap: 6px; font-size: 16px; font-weight: 600; letter-spacing: 0; color: var(--ink-900); text-decoration: underline; text-underline-offset: 4px; }


.nf-grid { position: relative; display: grid; grid-template-columns: minmax(0, 0.6fr) minmax(0, 1.4fr); gap: clamp(28px, 5vw, 80px); align-items: center; max-width: 1000px; }
.nf .ds-cut.nf-fig { height: min(56vh, 460px); }
.nf-copy { display: flex; flex-direction: column; gap: 18px; }
.nf-copy h1 { font-size: clamp(34px, 4vw, 56px); font-weight: 700; line-height: 1.06; letter-spacing: var(--tracking-heading); }
.nf-links { list-style: none; margin: 8px 0 0; padding: 0; border-top: 1px solid var(--border); }
.nf-links a { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "label icon" "note icon"; align-items: center; column-gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--border); color: var(--text-primary); text-decoration: none; }
.nf-links b { grid-area: label; font-size: 18px; }
.nf-links span { grid-area: note; font-size: 15px; color: var(--text-muted); }
.nf-links svg { grid-area: icon; }
@media (hover: hover) and (pointer: fine) { .nf-links a:hover b { text-decoration: underline; text-underline-offset: 4px; } }
@media (max-width: 760px) { .nf-grid { grid-template-columns: minmax(0, 1fr); } .nf .ds-cut.nf-fig { height: 240px; } }


.ds-article-types { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-top: 28px; padding: 18px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.ds-article-types ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ds-article-types a { display: inline-block; padding: 7px 12px; border: 1px solid var(--border-strong); color: var(--text-primary); font-size: 14px; font-weight: 500; text-decoration: none; }
.ds-article-types a:hover { background: var(--ink-900); color: var(--paper); }
.ds-blog-tool { display: flex; flex-direction: column; gap: 6px; padding: 22px 24px; border: 2px solid var(--ink-900); color: var(--text-primary); text-decoration: none; }
.ds-blog-tool b { font-size: clamp(20px, 2vw, 24px); letter-spacing: var(--tracking-snug); }
.ds-blog-tool span { font-size: 15.5px; color: var(--text-muted); }
.ds-blog-tool .go { margin-top: 4px; font-weight: 600; color: var(--text-primary); }
.ds-blog-tool:hover .go { text-decoration: underline; text-underline-offset: 4px; }
.ds-article-types { border-bottom: 0; }


@keyframes ds-load-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.ds-load-in { animation: ds-load-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) both; }
.ds-load-in.late { animation-duration: 0.8s; animation-delay: 0.15s; }
@media (prefers-reduced-motion: reduce) { .ds-load-in { animation: none; } }


.ds-offer-head { max-width: 1120px; }
.ds-offer-head .ds-lede { margin: 0; }


.js [data-reveal] { opacity: 0; transform: translateY(18px); }
.js [data-reveal="faq"] { transform: translateY(12px); }
.js [data-reveal][data-revealed] { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .js [data-reveal] { transform: none; }
}


.fmw-toast {
  position: fixed;
  top: 84px;
  left: 50%;
  z-index: 90;
  display: flex;
  align-items: center;
  gap: 10px;
  width: max-content;
  max-width: calc(100vw - 32px);
  padding: 12px 12px 12px 16px;
  background: #151214;
  color: #ECE9EA;
  box-shadow: 0 18px 40px -16px rgba(0, 0, 0, 0.5);
  font: 500 14.5px/1.45 var(--font-montserrat), "Montserrat", system-ui, sans-serif;
  transform: translate(-50%, 0);
  opacity: 1;
  transition: opacity 0.25s ease, transform 0.25s ease;
}
.fmw-toast[data-state="in"], .fmw-toast[data-state="out"] { opacity: 0; transform: translate(-50%, -8px); }
.fmw-toast svg { flex: none; color: #F0B4F0; }
.fmw-toast button {
  flex: none;
  width: 28px;
  height: 28px;
  margin-left: 4px;
  border: 0;
  background: transparent;
  color: #ECE9EA;
  font: inherit;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  opacity: 0.7;
}
.fmw-toast button:hover { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .fmw-toast { transition: none; } }

.ds-joined { display: none; }
.ds-joined:target {
  display: flex;
  align-items: center;
  gap: 10px;
  scroll-margin-top: 96px;
  padding: 14px 18px;
  background: var(--ink-900, #151214);
  color: var(--paper, #ECE9EA);
  font-size: 15px;
  font-weight: 500;
}
.ds-joined svg { flex: none; color: #F0B4F0; }
