/* ============================================================
   DTxPlus / Carrie — Design tokens
   Adapted from the canonical token sheet in the
   "Carrie / DTxPlus Design System" (colors_and_type.css).
   Token values are unchanged; @font-face declarations point at
   the self-hosted woff2 set shipped with this site.
   ============================================================ */

/* ---- Inter · body / UI (self-hosted, Inter v4.1) ---- */
@font-face { font-family: "Inter"; src: url("../fonts/Inter-Medium.woff2") format("woff2");         font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter"; src: url("../fonts/Inter-SemiBold.woff2") format("woff2");       font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter"; src: url("../fonts/Inter-SemiBoldItalic.woff2") format("woff2"); font-weight: 600; font-style: italic; font-display: swap; }
@font-face { font-family: "Inter"; src: url("../fonts/Inter-Bold.woff2") format("woff2");           font-weight: 700; font-style: normal; font-display: swap; }

/* ---- Inter Display · headlines (self-hosted, Inter v4.1 display optical size) ---- */
@font-face { font-family: "Inter Display"; src: url("../fonts/InterDisplay-Bold.woff2") format("woff2");      font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter Display"; src: url("../fonts/InterDisplay-ExtraBold.woff2") format("woff2"); font-weight: 800; font-style: normal; font-display: swap; }

/* ---- JetBrains Mono · metric callouts, step numbers ---- */
@font-face { font-family: "JetBrains Mono"; src: url("../fonts/jetbrains-mono-500.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "JetBrains Mono"; src: url("../fonts/jetbrains-mono-600.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "JetBrains Mono"; src: url("../fonts/jetbrains-mono-700.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }

/* ---- Poppins · wordmark companion typeface (text beside the Carrie wordmark) ---- */
@font-face { font-family: "Poppins"; src: url("../fonts/poppins-600.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }

/* ---- Metric-matched fallback (Arial adjusted to Inter's metrics) ----
   Keeps text box heights identical through the webfont swap, so the
   centered hero doesn't shift (CLS). */
@font-face {
  font-family: "Inter Fallback";
  src: local("Arial");
  size-adjust: 107.64%;
  ascent-override: 90.2%;
  descent-override: 22.48%;
  line-gap-override: 0%;
}

:root {
  /* ---------- COLOR · BRAND ---------- */
  --color-brand-magenta:     #CD08D1;   /* signature accent */
  --color-brand-magenta-ink: #A00DA3;   /* AA-contrast magenta for body text on white */
  --color-brand-violet-900:  #3B1678;
  --color-brand-violet-700:  #7530B6;
  --color-brand-violet-500:  #9730F7;
  --color-brand-violet-300:  #C9A8F5;
  --color-brand-violet-100:  #EDE3FB;
  --color-brand-black:       #0A0A0A;
  --color-brand-ink-700:     #2A2A2A;
  --color-brand-ink-500:     #5A5A64;
  --color-brand-ink-300:     #9A9AA3;

  /* ---------- COLOR · BACKGROUND / SURFACE ---------- */
  --color-surface-0:         #FFFFFF;
  --color-surface-1:         #F8F6FA;
  --color-surface-2:         #F1ECF5;
  --color-surface-inset:     #EDE7F2;
  --color-surface-dark:      #3B1678;

  /* ---------- BORDER ---------- */
  --color-border-subtle:     #E3DAEB;
  --color-border-strong:     #C9A8F5;
  --color-border-magenta:    #CD08D1;

  /* ---------- SEVERITY ---------- */
  --color-severity-critical-bg:  #FAE6E6;
  --color-severity-critical-ink: #C02626;
  --color-severity-elevated-bg:  #FFF5E1;
  --color-severity-elevated-ink: #B57A00;
  --color-severity-stable-bg:    #F0F4EC;
  --color-severity-stable-ink:   #3F7A3F;

  /* ---------- GRADIENTS ---------- */
  --gradient-canvas:
    linear-gradient(135deg, #FFFFFF 0%, #F5F2F8 35%, #EDE7F2 70%, #E3DAEB 100%);
  --gradient-carrie-node:
    radial-gradient(circle at 30% 30%, #CD08D1 0%, #9730F7 55%, #3B1678 100%);

  /* ---------- TYPOGRAPHY ---------- */
  --font-family-display: "Inter Display", "Inter", "Inter Fallback", -apple-system, "Helvetica Neue", sans-serif;
  --font-family-body:    "Inter", "Inter Fallback", -apple-system, "Helvetica Neue", sans-serif;
  --font-family-mono:    "JetBrains Mono", "SF Mono", monospace;
  --font-family-wordmark:"Poppins", "Inter", -apple-system, sans-serif;

  /* ---------- RADIUS ---------- */
  --radius-sm:   8px;
  --radius-md:   12px;
  --radius-lg:   16px;
  --radius-xl:   24px;
  --radius-pill: 999px;

  /* ---------- SPACING (8pt base, 4pt half) ---------- */
  --space-1:  4px;
  --space-2:  8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;

  /* ---------- ELEVATION ---------- */
  --shadow-card:  0 2px 8px rgba(59, 22, 120, 0.06);
  --shadow-float: 0 12px 32px rgba(59, 22, 120, 0.10);
  --elevation-card:  drop-shadow(0 2px 8px rgba(59, 22, 120, 0.06));
  --elevation-float: drop-shadow(0 12px 32px rgba(59, 22, 120, 0.10));

  /* ---------- MOTION ---------- */
  --motion-fast: 200ms;
  --motion-slow: 400ms;
  --easing-standard:   cubic-bezier(0.2, 0, 0.2, 1);
  --easing-emphasized: cubic-bezier(0.4, 0, 0.2, 1);
}

/* ============================================================
   CARRIE WORDMARK · inline (canonical)
   The word "Carrie" shown in brand magenta is always the
   canonical wordmark artwork, painted via CSS mask over the
   literal text: <span class="carrie">Carrie</span>.
   The text stays selectable, searchable, and readable by
   screen readers. Never recolor the magenta form.
   ============================================================ */
:root {
  --asset-carrie-wordmark: url("data:image/svg+xml,%3Csvg width='262' height='67' viewBox='0 0 262 67' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M240.037 66.4101C235.259 66.4101 230.995 65.4423 227.245 63.5069C223.555 61.511 220.652 58.759 218.535 55.251C216.418 51.743 215.36 47.7814 215.36 43.3662C215.36 38.9509 216.388 35.0196 218.444 31.572C220.561 28.064 223.404 25.3121 226.973 23.3162C230.541 21.3202 234.563 20.3223 239.039 20.3223C243.394 20.3223 247.234 21.2597 250.561 23.1347C253.887 25.0097 256.488 27.6104 258.363 30.937C260.298 34.2635 261.266 38.0739 261.266 42.3682C261.266 43.1545 261.206 44.0012 261.085 44.9085C261.024 45.7552 260.873 46.7532 260.631 47.9024L222.618 47.9931V38.4671L254.734 38.3763L248.746 42.3682C248.686 39.8279 248.293 37.7413 247.567 36.1082C246.841 34.4147 245.752 33.1446 244.301 32.2978C242.91 31.3906 241.186 30.937 239.13 30.937C236.952 30.937 235.047 31.4511 233.414 32.4793C231.841 33.447 230.601 34.8381 229.694 36.6526C228.848 38.4671 228.424 40.6747 228.424 43.2754C228.424 45.8762 228.878 48.1141 229.785 49.989C230.753 51.8035 232.083 53.2248 233.777 54.253C235.531 55.2208 237.587 55.7046 239.946 55.7046C242.123 55.7046 244.089 55.3417 245.843 54.6159C247.597 53.8297 249.139 52.6805 250.47 51.1684L258.091 58.7892C255.914 61.3295 253.283 63.2347 250.198 64.5049C247.113 65.775 243.726 66.4101 240.037 66.4101Z' fill='%23CD08D1'%3E%3C/path%3E %3Cpath d='M194.607 65.412V21.3201H208.488V65.412H194.607ZM201.593 15.2416C199.416 15.2416 197.601 14.5158 196.15 13.0643C194.759 11.5522 194.063 9.73771 194.063 7.62082C194.063 5.44344 194.759 3.62896 196.15 2.17738C197.601 0.725793 199.416 0 201.593 0C203.77 0 205.555 0.725793 206.946 2.17738C208.337 3.62896 209.032 5.44344 209.032 7.62082C209.032 9.73771 208.337 11.5522 206.946 13.0643C205.555 14.5158 203.77 15.2416 201.593 15.2416Z' fill='%23CD08D1'%3E%3C/path%3E %3Cpath d='M155.89 65.412V21.3201H169.771V65.412H155.89ZM169.771 41.1886L163.965 36.6524C165.114 31.5114 167.049 27.5196 169.771 24.6769C172.493 21.8342 176.273 20.4128 181.111 20.4128C183.228 20.4128 185.073 20.7455 186.646 21.4108C188.279 22.0156 189.7 22.9834 190.91 24.314L182.654 34.7472C182.049 34.0819 181.293 33.5678 180.386 33.2049C179.478 32.842 178.45 32.6606 177.301 32.6606C175.003 32.6606 173.158 33.3864 171.767 34.838C170.436 36.2291 169.771 38.346 169.771 41.1886Z' fill='%23CD08D1'%3E%3C/path%3E %3Cpath d='M117.438 65.412V21.3201H131.319V65.412H117.438ZM131.319 41.1886L125.513 36.6524C126.662 31.5114 128.598 27.5196 131.319 24.6769C134.041 21.8342 137.821 20.4128 142.66 20.4128C144.777 20.4128 146.621 20.7455 148.194 21.4108C149.827 22.0156 151.248 22.9834 152.458 24.314L144.202 34.7472C143.597 34.0819 142.841 33.5678 141.934 33.2049C141.027 32.842 139.999 32.6606 138.849 32.6606C136.551 32.6606 134.706 33.3864 133.315 34.838C131.985 36.2291 131.319 38.346 131.319 41.1886Z' fill='%23CD08D1'%3E%3C/path%3E %3Cpath d='M81.8999 66.3192C77.8476 66.3192 74.2186 65.3212 71.013 63.3253C67.8679 61.3294 65.3579 58.6077 63.483 55.1601C61.6685 51.7126 60.7612 47.7813 60.7612 43.366C60.7612 38.9508 61.6685 35.0194 63.483 31.5719C65.3579 28.1244 67.8679 25.4027 71.013 23.4067C74.2186 21.4108 77.8476 20.4128 81.8999 20.4128C84.8636 20.4128 87.5248 20.9874 89.8836 22.1366C92.3029 23.2858 94.2686 24.8886 95.7807 26.945C97.2928 28.9409 98.1395 31.2392 98.321 33.84V52.892C98.1395 55.4928 97.2928 57.8214 95.7807 59.8778C94.3291 61.8737 92.3937 63.4463 89.9744 64.5954C87.5551 65.7446 84.8636 66.3192 81.8999 66.3192ZM84.7124 53.7993C87.676 53.7993 90.0651 52.8316 91.8796 50.8961C93.694 48.9002 94.6013 46.3902 94.6013 43.366C94.6013 41.3096 94.1779 39.4951 93.3312 37.9226C92.5449 36.35 91.3957 35.1404 89.8836 34.2936C88.4321 33.3864 86.7385 32.9328 84.8031 32.9328C82.8676 32.9328 81.1439 33.3864 79.6318 34.2936C78.1802 35.1404 77.0008 36.35 76.0936 37.9226C75.2468 39.4951 74.8235 41.3096 74.8235 43.366C74.8235 45.3619 75.2468 47.1462 76.0936 48.7187C76.9403 50.2913 78.1198 51.5312 79.6318 52.4384C81.1439 53.3457 82.8374 53.7993 84.7124 53.7993ZM94.0569 65.412V53.5271L96.1436 42.8217L94.0569 32.1162V21.3201H107.666V65.412H94.0569Z' fill='%23CD08D1'%3E%3C/path%3E %3Cpath d='M33.6586 66.4099C28.8805 66.4099 24.435 65.5934 20.3222 63.9603C16.2698 62.2668 12.7014 59.908 9.61674 56.8838C6.59261 53.8597 4.23379 50.3517 2.54027 46.3599C0.846758 42.3075 0 37.9528 0 33.2956C0 28.6384 0.846758 24.3139 2.54027 20.3221C4.23379 16.2697 6.59261 12.7617 9.61674 9.79809C12.6409 6.83444 16.1791 4.5361 20.2315 2.90307C24.3443 1.20955 28.7898 0.362793 33.5679 0.362793C38.6484 0.362793 43.1544 1.17931 47.0858 2.81234C51.0776 4.44537 54.5554 6.68323 57.519 9.52592L47.993 19.1427C46.2995 17.3282 44.2431 15.9068 41.8238 14.8786C39.4649 13.8504 36.713 13.3363 33.5679 13.3363C30.7857 13.3363 28.2152 13.8202 25.8563 14.7879C23.558 15.6951 21.5621 17.0258 19.8686 18.7798C18.2355 20.5338 16.9351 22.6507 15.9674 25.1304C15.0602 27.6102 14.6066 30.332 14.6066 33.2956C14.6066 36.3197 15.0602 39.0717 15.9674 41.5515C16.9351 44.0313 18.2355 46.1482 19.8686 47.9022C21.5621 49.6562 23.558 51.017 25.8563 51.9848C28.2152 52.9525 30.7857 53.4363 33.5679 53.4363C36.834 53.4363 39.6766 52.9222 42.0959 51.894C44.5153 50.8658 46.6019 49.4445 48.3559 47.63L57.9726 57.2467C54.888 60.0894 51.3498 62.3273 47.3579 63.9603C43.4266 65.5934 38.8601 66.4099 33.6586 66.4099Z' fill='%23CD08D1'%3E%3C/path%3E %3C/svg%3E");
}

.carrie { color: var(--color-brand-magenta); } /* fallback: magenta text */

@supports ((-webkit-mask: url("#")) or (mask: url("#"))) {
  .carrie {
    display: inline-block;
    vertical-align: -0.02em;
    height: 0.75em;
    width: 2.933em;
    background-color: var(--color-brand-magenta);
    -webkit-mask: var(--asset-carrie-wordmark) no-repeat left center / 100% 100%;
            mask: var(--asset-carrie-wordmark) no-repeat left center / 100% 100%;
    color: transparent;
    overflow: hidden;
    white-space: nowrap;
  }
}

/* White wordmark for dark canvases (the circular Carrie hub). */
.carrie-white { color: #fff; }
@supports ((-webkit-mask: url("#")) or (mask: url("#"))) {
  .carrie-white {
    display: inline-block;
    vertical-align: -0.02em;
    height: 0.75em;
    width: 2.933em;
    background-color: #fff;
    -webkit-mask: var(--asset-carrie-wordmark) no-repeat left center / 100% 100%;
            mask: var(--asset-carrie-wordmark) no-repeat left center / 100% 100%;
    color: transparent;
    overflow: hidden;
    white-space: nowrap;
  }
}

/* Canvas helper — hero / landing surfaces */
.canvas-bg { background: var(--gradient-canvas); }
