/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
/*!
 * Justified gallery style
 */
@layer properties;
@layer theme, base, components, utilities;
@layer theme {
  :root, :host {
    --font-sans: -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-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
      "Courier New", monospace;
    --color-red-200: oklch(88.5% 0.062 18.334);
    --color-red-500: oklch(63.7% 0.237 25.331);
    --color-yellow-200: oklch(94.5% 0.129 101.54);
    --color-green-200: oklch(92.5% 0.084 155.995);
    --color-blue-200: oklch(88.2% 0.059 254.128);
    --color-pink-200: oklch(89.9% 0.061 343.231);
    --color-gray-200: oklch(92.8% 0.006 264.531);
    --color-black: #000;
    --color-white: #fff;
    --spacing: 0.25rem;
    --container-3xl: 48rem;
    --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: 18px;
    --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);
    --font-weight-normal: 400;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --leading-tight: 1.25;
    --leading-relaxed: 1.625;
    --radius-sm: 0.25rem;
    --radius-lg: 0.5rem;
    --radius-xl: 0.75rem;
    --radius-2xl: 1rem;
    --ease-out: cubic-bezier(0, 0, 0.2, 1);
    --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
    --default-transition-duration: 150ms;
    --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono);
    --color-primary: #4242fa;
    --color-body: #ffffff;
    --color-border: #d9d9e0;
    --color-light: #f9f9fb;
    --color-dark: #0a0c10;
    --color-text: #0a0c10;
    --color-text-dark: #0a0c10;
    --color-text-light: #60646c;
    --color-darkmode-primary: #4242fa;
    --color-darkmode-body: #0d0f12;
    --color-darkmode-border: #363a3f;
    --color-darkmode-light: #18191b;
    --color-darkmode-text: #e3e6e8;
    --color-darkmode-text-dark: #e3e6e8;
    --color-darkmode-text-light: #b0b4ba;
    --font-primary: Figtree, sans-serif;
    --font-secondary: Figtree, sans-serif;
    --text-base-sm: 16px;
    --text-h6: 1.35rem;
    --text-h5: 1.62rem;
    --text-h4: 1.944rem;
    --text-h3: 2.333rem;
    --text-h3-sm: 2.1rem;
    --text-h2: 2.799rem;
    --text-h2-sm: 2.519rem;
    --text-h1: 3.359rem;
    --text-h1-sm: 3.023rem;
  }
}
@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;
  }
  .top-0 {
    top: 0px;
  }
  .top-1\.5 {
    top: calc(var(--spacing) * 1.5);
  }
  .top-1\/2 {
    top: calc(1 / 2 * 100%);
  }
  .top-5 {
    top: calc(var(--spacing) * 5);
  }
  .left-0 {
    left: 0px;
  }
  .left-1\/2 {
    left: calc(1 / 2 * 100%);
  }
  .isolate {
    isolation: isolate;
  }
  .z-10 {
    z-index: 10;
  }
  .z-30 {
    z-index: 30;
  }
  .z-50 {
    z-index: 50;
  }
  .order-0 {
    order: 0;
  }
  .order-1 {
    order: 1;
  }
  .order-3 {
    order: 3;
  }
  .order-first {
    order: -1;
    order: -9999;
  }
  .order-last {
    order: 13;
    order: 9999;
  }
  .col-12 {
    grid-column: 12;
  }
  .col-auto {
    grid-column: auto;
  }
  .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;
    }
  }
  .m-1 {
    margin: var(--spacing);
  }
  .m-3 {
    margin: calc(var(--spacing) * 3);
  }
  .row {
    --bs-gutter-x: 1.5rem;
    --bs-gutter-y: 0;
    display: flex;
    flex-wrap: wrap;
    margin-top: calc(var(--bs-gutter-y) * -1);
    margin-inline: calc(var(--bs-gutter-x) / -2);
     > * {
      box-sizing: border-box;
      flex-shrink: 0;
      width: 100%;
      max-width: 100%;
      padding-inline: calc(var(--bs-gutter-x) / 2);
      margin-top: var(--bs-gutter-y);
    }
  }
  .container {
    max-width: var(--container-max-width);
    width: 100%;
    margin-inline: auto;
    padding-inline: var(--bs-gutter-x, calc(1.5rem / 2));
  }
  .mx-2 {
    margin-inline: calc(var(--spacing) * 2);
  }
  .mx-auto {
    margin-inline: auto;
  }
  .ms-1 {
    margin-inline-start: var(--spacing);
  }
  .prose {
    color: var(--tw-prose-body);
    max-width: 65ch;
    :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 1.25em;
      margin-bottom: 1.25em;
    }
    :where([class~="lead"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-lead);
      font-size: 1.25em;
      line-height: 1.6;
      margin-top: 1.2em;
      margin-bottom: 1.2em;
    }
    :where(a):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-links);
      text-decoration: underline;
      font-weight: 500;
    }
    :where(strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-bold);
      font-weight: 600;
    }
    :where(a strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: inherit;
    }
    :where(blockquote strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: inherit;
    }
    :where(thead th strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: inherit;
    }
    :where(ol):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      list-style-type: decimal;
      margin-top: 1.25em;
      margin-bottom: 1.25em;
      padding-inline-start: 1.625em;
    }
    :where(ol[type="A"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      list-style-type: upper-alpha;
    }
    :where(ol[type="a"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      list-style-type: lower-alpha;
    }
    :where(ol[type="A" s]):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      list-style-type: upper-alpha;
    }
    :where(ol[type="a" s]):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      list-style-type: lower-alpha;
    }
    :where(ol[type="I"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      list-style-type: upper-roman;
    }
    :where(ol[type="i"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      list-style-type: lower-roman;
    }
    :where(ol[type="I" s]):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      list-style-type: upper-roman;
    }
    :where(ol[type="i" s]):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      list-style-type: lower-roman;
    }
    :where(ol[type="1"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      list-style-type: decimal;
    }
    :where(ul):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      list-style-type: disc;
      margin-top: 1.25em;
      margin-bottom: 1.25em;
      padding-inline-start: 1.625em;
    }
    :where(ol > li):not(:where([class~="not-prose"], [class~="not-prose"] *))::marker {
      font-weight: 400;
      color: var(--tw-prose-counters);
    }
    :where(ul > li):not(:where([class~="not-prose"], [class~="not-prose"] *))::marker {
      color: var(--tw-prose-bullets);
    }
    :where(dt):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-headings);
      font-weight: 600;
      margin-top: 1.25em;
    }
    :where(hr):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      border-color: var(--tw-prose-hr);
      border-top-width: 1px;
      margin-top: 3em;
      margin-bottom: 3em;
    }
    :where(blockquote):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      font-weight: 500;
      font-style: italic;
      color: var(--tw-prose-quotes);
      border-inline-start-width: 0.25rem;
      border-inline-start-color: var(--tw-prose-quote-borders);
      quotes: "\201C""\201D""\2018""\2019";
      margin-top: 1.6em;
      margin-bottom: 1.6em;
      padding-inline-start: 1em;
    }
    :where(blockquote p:first-of-type):not(:where([class~="not-prose"], [class~="not-prose"] *))::before {
      content: open-quote;
    }
    :where(blockquote p:last-of-type):not(:where([class~="not-prose"], [class~="not-prose"] *))::after {
      content: close-quote;
    }
    :where(h1):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-headings);
      font-weight: 800;
      font-size: 2.25em;
      margin-top: 0;
      margin-bottom: 0.8888889em;
      line-height: 1.1111111;
    }
    :where(h1 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      font-weight: 900;
      color: inherit;
    }
    :where(h2):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-headings);
      font-weight: 700;
      font-size: 1.5em;
      margin-top: 2em;
      margin-bottom: 1em;
      line-height: 1.3333333;
    }
    :where(h2 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      font-weight: 800;
      color: inherit;
    }
    :where(h3):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-headings);
      font-weight: 600;
      font-size: 1.25em;
      margin-top: 1.6em;
      margin-bottom: 0.6em;
      line-height: 1.6;
    }
    :where(h3 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      font-weight: 700;
      color: inherit;
    }
    :where(h4):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-headings);
      font-weight: 600;
      margin-top: 1.5em;
      margin-bottom: 0.5em;
      line-height: 1.5;
    }
    :where(h4 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      font-weight: 700;
      color: inherit;
    }
    :where(img):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 2em;
      margin-bottom: 2em;
    }
    :where(picture):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      display: block;
      margin-top: 2em;
      margin-bottom: 2em;
    }
    :where(video):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 2em;
      margin-bottom: 2em;
    }
    :where(kbd):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      font-weight: 500;
      font-family: inherit;
      color: var(--tw-prose-kbd);
      box-shadow: 0 0 0 1px var(--tw-prose-kbd-shadows), 0 3px 0 var(--tw-prose-kbd-shadows);
      font-size: 0.875em;
      border-radius: 0.3125rem;
      padding-top: 0.1875em;
      padding-inline-end: 0.375em;
      padding-bottom: 0.1875em;
      padding-inline-start: 0.375em;
    }
    :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-code);
      font-weight: 600;
      font-size: 0.875em;
    }
    :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *))::before {
      content: "`";
    }
    :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *))::after {
      content: "`";
    }
    :where(a code):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: inherit;
    }
    :where(h1 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: inherit;
    }
    :where(h2 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: inherit;
      font-size: 0.875em;
    }
    :where(h3 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: inherit;
      font-size: 0.9em;
    }
    :where(h4 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: inherit;
    }
    :where(blockquote code):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: inherit;
    }
    :where(thead th code):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: inherit;
    }
    :where(pre):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-pre-code);
      background-color: var(--tw-prose-pre-bg);
      overflow-x: auto;
      font-weight: 400;
      font-size: 0.875em;
      line-height: 1.7142857;
      margin-top: 1.7142857em;
      margin-bottom: 1.7142857em;
      border-radius: 0.375rem;
      padding-top: 0.8571429em;
      padding-inline-end: 1.1428571em;
      padding-bottom: 0.8571429em;
      padding-inline-start: 1.1428571em;
    }
    :where(pre code):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      background-color: transparent;
      border-width: 0;
      border-radius: 0;
      padding: 0;
      font-weight: inherit;
      color: inherit;
      font-size: inherit;
      font-family: inherit;
      line-height: inherit;
    }
    :where(pre code):not(:where([class~="not-prose"], [class~="not-prose"] *))::before {
      content: none;
    }
    :where(pre code):not(:where([class~="not-prose"], [class~="not-prose"] *))::after {
      content: none;
    }
    :where(table):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      width: 100%;
      table-layout: auto;
      margin-top: 2em;
      margin-bottom: 2em;
      font-size: 0.875em;
      line-height: 1.7142857;
    }
    :where(thead):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      border-bottom-width: 1px;
      border-bottom-color: var(--tw-prose-th-borders);
    }
    :where(thead th):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-headings);
      font-weight: 600;
      vertical-align: bottom;
      padding-inline-end: 0.5714286em;
      padding-bottom: 0.5714286em;
      padding-inline-start: 0.5714286em;
    }
    :where(tbody tr):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      border-bottom-width: 1px;
      border-bottom-color: var(--tw-prose-td-borders);
    }
    :where(tbody tr:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      border-bottom-width: 0;
    }
    :where(tbody td):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      vertical-align: baseline;
    }
    :where(tfoot):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      border-top-width: 1px;
      border-top-color: var(--tw-prose-th-borders);
    }
    :where(tfoot td):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      vertical-align: top;
    }
    :where(th, td):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      text-align: start;
    }
    :where(figure > *):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 0;
      margin-bottom: 0;
    }
    :where(figcaption):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-captions);
      font-size: 0.875em;
      line-height: 1.4285714;
      margin-top: 0.8571429em;
    }
    --tw-prose-body: oklch(37.3% 0.034 259.733);
    --tw-prose-headings: oklch(21% 0.034 264.665);
    --tw-prose-lead: oklch(44.6% 0.03 256.802);
    --tw-prose-links: oklch(21% 0.034 264.665);
    --tw-prose-bold: oklch(21% 0.034 264.665);
    --tw-prose-counters: oklch(55.1% 0.027 264.364);
    --tw-prose-bullets: oklch(87.2% 0.01 258.338);
    --tw-prose-hr: oklch(92.8% 0.006 264.531);
    --tw-prose-quotes: oklch(21% 0.034 264.665);
    --tw-prose-quote-borders: oklch(92.8% 0.006 264.531);
    --tw-prose-captions: oklch(55.1% 0.027 264.364);
    --tw-prose-kbd: oklch(21% 0.034 264.665);
    --tw-prose-kbd-shadows: color-mix(in oklab, oklch(21% 0.034 264.665) 10%, transparent);
    --tw-prose-code: oklch(21% 0.034 264.665);
    --tw-prose-pre-code: oklch(92.8% 0.006 264.531);
    --tw-prose-pre-bg: oklch(27.8% 0.033 256.848);
    --tw-prose-th-borders: oklch(87.2% 0.01 258.338);
    --tw-prose-td-borders: oklch(92.8% 0.006 264.531);
    --tw-prose-invert-body: oklch(87.2% 0.01 258.338);
    --tw-prose-invert-headings: #fff;
    --tw-prose-invert-lead: oklch(70.7% 0.022 261.325);
    --tw-prose-invert-links: #fff;
    --tw-prose-invert-bold: #fff;
    --tw-prose-invert-counters: oklch(70.7% 0.022 261.325);
    --tw-prose-invert-bullets: oklch(44.6% 0.03 256.802);
    --tw-prose-invert-hr: oklch(37.3% 0.034 259.733);
    --tw-prose-invert-quotes: oklch(96.7% 0.003 264.542);
    --tw-prose-invert-quote-borders: oklch(37.3% 0.034 259.733);
    --tw-prose-invert-captions: oklch(70.7% 0.022 261.325);
    --tw-prose-invert-kbd: #fff;
    --tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%);
    --tw-prose-invert-code: #fff;
    --tw-prose-invert-pre-code: oklch(87.2% 0.01 258.338);
    --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);
    --tw-prose-invert-th-borders: oklch(44.6% 0.03 256.802);
    --tw-prose-invert-td-borders: oklch(37.3% 0.034 259.733);
    font-size: 1rem;
    line-height: 1.75;
    :where(picture > img):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 0;
      margin-bottom: 0;
    }
    :where(li):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 0.5em;
      margin-bottom: 0.5em;
    }
    :where(ol > li):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      padding-inline-start: 0.375em;
    }
    :where(ul > li):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      padding-inline-start: 0.375em;
    }
    :where(.prose > ul > li p):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 0.75em;
      margin-bottom: 0.75em;
    }
    :where(.prose > ul > li > p:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 1.25em;
    }
    :where(.prose > ul > li > p:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-bottom: 1.25em;
    }
    :where(.prose > ol > li > p:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 1.25em;
    }
    :where(.prose > ol > li > p:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-bottom: 1.25em;
    }
    :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 0.75em;
      margin-bottom: 0.75em;
    }
    :where(dl):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 1.25em;
      margin-bottom: 1.25em;
    }
    :where(dd):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 0.5em;
      padding-inline-start: 1.625em;
    }
    :where(hr + *):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 0;
    }
    :where(h2 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 0;
    }
    :where(h3 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 0;
    }
    :where(h4 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 0;
    }
    :where(thead th:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      padding-inline-start: 0;
    }
    :where(thead th:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      padding-inline-end: 0;
    }
    :where(tbody td, tfoot td):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      padding-top: 0.5714286em;
      padding-inline-end: 0.5714286em;
      padding-bottom: 0.5714286em;
      padding-inline-start: 0.5714286em;
    }
    :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      padding-inline-start: 0;
    }
    :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      padding-inline-end: 0;
    }
    :where(figure):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 2em;
      margin-bottom: 2em;
    }
    :where(.prose > :first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 0;
    }
    :where(.prose > :last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-bottom: 0;
    }
  }
  .mt-2 {
    margin-top: calc(var(--spacing) * 2);
  }
  .mt-4 {
    margin-top: calc(var(--spacing) * 4);
  }
  .mt-6 {
    margin-top: calc(var(--spacing) * 6);
  }
  .mt-8 {
    margin-top: calc(var(--spacing) * 8);
  }
  .mt-9 {
    margin-top: calc(var(--spacing) * 9);
  }
  .mt-10 {
    margin-top: calc(var(--spacing) * 10);
  }
  .mt-11 {
    margin-top: calc(var(--spacing) * 11);
  }
  .mt-20 {
    margin-top: calc(var(--spacing) * 20);
  }
  .mr-1 {
    margin-right: var(--spacing);
  }
  .mr-2 {
    margin-right: calc(var(--spacing) * 2);
  }
  .mr-3 {
    margin-right: calc(var(--spacing) * 3);
  }
  .mr-4 {
    margin-right: calc(var(--spacing) * 4);
  }
  .mr-5 {
    margin-right: calc(var(--spacing) * 5);
  }
  .form-label {
    margin-bottom: calc(var(--spacing) * 4);
    display: block;
    font-family: var(--font-secondary);
    font-size: var(--text-xl);
    line-height: var(--tw-leading, var(--text-xl--line-height));
    --tw-font-weight: var(--font-weight-normal);
    font-weight: var(--font-weight-normal);
    color: var(--color-text-dark);
    &:where(.dark, .dark *) {
      color: var(--color-darkmode-text-light);
    }
  }
  .mb-2 {
    margin-bottom: calc(var(--spacing) * 2);
  }
  .mb-3 {
    margin-bottom: calc(var(--spacing) * 3);
  }
  .mb-4 {
    margin-bottom: calc(var(--spacing) * 4);
  }
  .mb-5 {
    margin-bottom: calc(var(--spacing) * 5);
  }
  .mb-6 {
    margin-bottom: calc(var(--spacing) * 6);
  }
  .mb-8 {
    margin-bottom: calc(var(--spacing) * 8);
  }
  .mb-10 {
    margin-bottom: calc(var(--spacing) * 10);
  }
  .mb-12 {
    margin-bottom: calc(var(--spacing) * 12);
  }
  .mb-14 {
    margin-bottom: calc(var(--spacing) * 14);
  }
  .mb-28 {
    margin-bottom: calc(var(--spacing) * 28);
  }
  .ml-2 {
    margin-left: calc(var(--spacing) * 2);
  }
  .ml-4 {
    margin-left: calc(var(--spacing) * 4);
  }
  .ml-auto {
    margin-left: auto;
  }
  .form-input {
    appearance: none;
    background-color: #fff;
    border-color: oklch(55.1% 0.027 264.364);
    border-width: 1px;
    border-radius: 0px;
    padding-top: 0.5rem;
    padding-right: 0.75rem;
    padding-bottom: 0.5rem;
    padding-left: 0.75rem;
    font-size: 1rem;
    line-height: 1.5rem;
    --tw-shadow: 0 0 #0000;
    &:focus {
      outline: 2px solid transparent;
      outline-offset: 2px;
      --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-color: #fff;
      --tw-ring-color: oklch(54.6% 0.245 262.881);
      --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
      --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
      box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
      border-color: oklch(54.6% 0.245 262.881);
    }
    &::placeholder {
      color: oklch(55.1% 0.027 264.364);
      opacity: 1;
    }
    &::-webkit-datetime-edit-fields-wrapper {
      padding: 0;
    }
    &::-webkit-date-and-time-value {
      min-height: 1.5em;
    }
    &::-webkit-date-and-time-value {
      text-align: inherit;
    }
    &::-webkit-datetime-edit {
      display: inline-flex;
    }
    &::-webkit-datetime-edit {
      padding-top: 0;
      padding-bottom: 0;
    }
    &::-webkit-datetime-edit-year-field {
      padding-top: 0;
      padding-bottom: 0;
    }
    &::-webkit-datetime-edit-month-field {
      padding-top: 0;
      padding-bottom: 0;
    }
    &::-webkit-datetime-edit-day-field {
      padding-top: 0;
      padding-bottom: 0;
    }
    &::-webkit-datetime-edit-hour-field {
      padding-top: 0;
      padding-bottom: 0;
    }
    &::-webkit-datetime-edit-minute-field {
      padding-top: 0;
      padding-bottom: 0;
    }
    &::-webkit-datetime-edit-second-field {
      padding-top: 0;
      padding-bottom: 0;
    }
    &::-webkit-datetime-edit-millisecond-field {
      padding-top: 0;
      padding-bottom: 0;
    }
    &::-webkit-datetime-edit-meridiem-field {
      padding-top: 0;
      padding-bottom: 0;
    }
  }
  .col {
    flex: 1 0 0%;
    width: initial;
    display: initial;
  }
  .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-4 {
    height: calc(var(--spacing) * 4);
  }
  .h-6 {
    height: calc(var(--spacing) * 6);
  }
  .h-full {
    height: 100%;
  }
  .col-12 {
    flex: 0 0 auto;
    width: 100%;
  }
  .col-auto {
    flex: 0 0 auto;
    width: auto;
  }
  .row-cols-auto  > * {
    flex: 0 0 auto;
    width: auto;
  }
  .form-input {
    width: 100%;
    border-radius: 0.25rem;
    border-color: transparent;
    background-color: var(--color-light);
    padding-inline: calc(var(--spacing) * 6);
    padding-block: calc(var(--spacing) * 4);
    color: var(--color-text-dark);
    &::placeholder {
      color: var(--color-text-light);
    }
    &:focus {
      border-color: var(--color-primary);
    }
    &:focus {
      --tw-ring-color: transparent;
    }
    &:where(.dark, .dark *) {
      border-color: var(--color-darkmode-border);
    }
    &:where(.dark, .dark *) {
      background-color: var(--color-darkmode-light);
    }
    &:where(.dark, .dark *) {
      color: var(--color-darkmode-text-light);
    }
    &:where(.dark, .dark *) {
      &:focus {
        border-color: var(--color-darkmode-primary);
      }
    }
  }
  .w-4 {
    width: calc(var(--spacing) * 4);
  }
  .w-75 {
    width: calc(var(--spacing) * 75);
  }
  .w-\[30px\] {
    width: 30px;
  }
  .w-full {
    width: 100%;
  }
  .max-w-3xl {
    max-width: var(--container-3xl);
  }
  .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);
  }
  .-translate-y-1\/2 {
    --tw-translate-y: 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,);
  }
  .cursor-pointer {
    cursor: pointer;
  }
  .resize {
    resize: both;
  }
  .flex-wrap {
    flex-wrap: wrap;
  }
  .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);
  }
  :where(.space-y-4 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));
  }
  :where(.space-x-1 > :not(:last-child)) {
    --tw-space-x-reverse: 0;
    margin-inline-start: calc(var(--spacing) * var(--tw-space-x-reverse));
    margin-inline-end: calc(var(--spacing) * calc(1 - var(--tw-space-x-reverse)));
  }
  :where(.space-x-3 > :not(:last-child)) {
    --tw-space-x-reverse: 0;
    margin-inline-start: calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse));
    margin-inline-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse)));
  }
  .truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .rounded {
    border-radius: 0.25rem;
  }
  .rounded-2xl {
    border-radius: var(--radius-2xl);
  }
  .rounded-full {
    border-radius: calc(infinity * 1px);
  }
  .rounded-lg {
    border-radius: var(--radius-lg);
  }
  .rounded-xl {
    border-radius: var(--radius-xl);
  }
  .border {
    border-style: var(--tw-border-style);
    border-width: 1px;
  }
  .border-t {
    border-top-style: var(--tw-border-style);
    border-top-width: 1px;
  }
  .border-r {
    border-right-style: var(--tw-border-style);
    border-right-width: 1px;
  }
  .border-b {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 1px;
  }
  .border-border {
    border-color: var(--color-border);
  }
  .bg-body {
    background-color: var(--color-body);
  }
  .bg-gray-200 {
    background-color: var(--color-gray-200);
  }
  .bg-light {
    background-color: var(--color-light);
  }
  .bg-primary {
    background-color: var(--color-primary);
  }
  .bg-white {
    background-color: var(--color-white);
  }
  .bg-gradient {
    --tw-gradient-position: to bottom;
    @supports (background-image: linear-gradient(in lab, red, red)) {
      --tw-gradient-position: to bottom in oklab;
    }
    background-image: linear-gradient(var(--tw-gradient-stops));
    --tw-gradient-from: rgba(249,249,249,1);
    --tw-gradient-from-position: 0.53%;
    --tw-gradient-to: var(--color-white);
    --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));
    --tw-gradient-to-position: 83.28%;
    &:where(.dark, .dark *) {
      --tw-gradient-from: var(--color-darkmode-light);
      --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));
    }
    &:where(.dark, .dark *) {
      --tw-gradient-to: var(--color-darkmode-body);
      --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));
    }
  }
  .bg-gradient-to-b {
    --tw-gradient-position: to bottom in oklab;
    background-image: linear-gradient(var(--tw-gradient-stops));
  }
  .from-body {
    --tw-gradient-from: var(--color-body);
    --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-light {
    --tw-gradient-to: var(--color-light);
    --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));
  }
  .fill-current {
    fill: currentcolor;
  }
  .p-1 {
    padding: var(--spacing);
  }
  .p-5 {
    padding: calc(var(--spacing) * 5);
  }
  .p-6 {
    padding: calc(var(--spacing) * 6);
  }
  .p-8 {
    padding: calc(var(--spacing) * 8);
  }
  .px-2 {
    padding-inline: calc(var(--spacing) * 2);
  }
  .px-3 {
    padding-inline: calc(var(--spacing) * 3);
  }
  .px-4 {
    padding-inline: calc(var(--spacing) * 4);
  }
  .px-7 {
    padding-inline: calc(var(--spacing) * 7);
  }
  .px-8 {
    padding-inline: calc(var(--spacing) * 8);
  }
  .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-7 {
    padding-block: calc(var(--spacing) * 7);
  }
  .py-10 {
    padding-block: calc(var(--spacing) * 10);
  }
  .py-12 {
    padding-block: calc(var(--spacing) * 12);
  }
  .py-14 {
    padding-block: calc(var(--spacing) * 14);
  }
  .py-16 {
    padding-block: calc(var(--spacing) * 16);
  }
  .py-\[2\.5px\] {
    padding-block: 2.5px;
  }
  .pt-0 {
    padding-top: 0px;
  }
  .pt-7 {
    padding-top: calc(var(--spacing) * 7);
  }
  .pt-14 {
    padding-top: calc(var(--spacing) * 14);
  }
  .pr-5 {
    padding-right: calc(var(--spacing) * 5);
  }
  .pb-0 {
    padding-bottom: 0px;
  }
  .pb-6 {
    padding-bottom: calc(var(--spacing) * 6);
  }
  .pb-14 {
    padding-bottom: calc(var(--spacing) * 14);
  }
  .pb-16 {
    padding-bottom: calc(var(--spacing) * 16);
  }
  .pl-2 {
    padding-left: calc(var(--spacing) * 2);
  }
  .pl-6 {
    padding-left: calc(var(--spacing) * 6);
  }
  .text-center {
    text-align: center;
  }
  .font-primary {
    font-family: var(--font-primary);
  }
  .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));
  }
  .text-\[8rem\] {
    font-size: 8rem;
  }
  .text-\[12px\] {
    font-size: 12px;
  }
  .text-h2 {
    font-size: var(--text-h2);
  }
  .text-h3 {
    font-size: var(--text-h3);
  }
  .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-semibold {
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold);
  }
  .text-black {
    color: var(--color-black);
  }
  .text-dark {
    color: var(--color-dark);
  }
  .text-light {
    color: var(--color-light);
  }
  .text-primary {
    color: var(--color-primary);
  }
  .text-red-500 {
    color: var(--color-red-500);
  }
  .text-text-dark {
    color: var(--color-text-dark);
  }
  .text-text-light {
    color: var(--color-text-light);
  }
  .text-white {
    color: var(--color-white);
  }
  .capitalize {
    text-transform: capitalize;
  }
  .lowercase {
    text-transform: lowercase;
  }
  .uppercase {
    text-transform: uppercase;
  }
  .opacity-0 {
    opacity: 0%;
  }
  .opacity-70 {
    opacity: 70%;
  }
  .opacity-80 {
    opacity: 80%;
  }
  .opacity-100 {
    opacity: 100%;
  }
  .shadow {
    --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);
  }
  .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;
  }
  .invert {
    --tw-invert: invert(100%);
    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,);
  }
  .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-all {
    transition-property: all;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .duration-300 {
    --tw-duration: 300ms;
    transition-duration: 300ms;
  }
  .ease-in-out {
    --tw-ease: var(--ease-in-out);
    transition-timing-function: var(--ease-in-out);
  }
  .ease-out {
    --tw-ease: var(--ease-out);
    transition-timing-function: var(--ease-out);
  }
  .backface-hidden {
    backface-visibility: hidden;
  }
  .peer-checked\:block:is(:where(.peer):checked ~ *) {
    display: block;
  }
  @media (hover: hover) {
    .hover\:bg-light:hover {
      background-color: var(--color-light);
    }
    .hover\:bg-primary:hover {
      background-color: var(--color-primary);
    }
    .hover\:text-primary:hover {
      color: var(--color-primary);
    }
    .hover\:text-white:hover {
      color: var(--color-white);
    }
  }
  @media (width >= 40rem) {
    .sm\:col-10 {
      grid-column: 10;
    }
    .sm\:block {
      display: block;
    }
    .sm\:hidden {
      display: none;
    }
    .sm\:col-10 {
      flex: 0 0 auto;
      width: 83.33333333333334%;
    }
    .sm\:bg-red-200 {
      background-color: var(--color-red-200);
    }
  }
  @media (width >= 48rem) {
    .md\:order-1 {
      order: 1;
    }
    .md\:order-2 {
      order: 2;
    }
    .md\:col-3 {
      grid-column: 3;
    }
    .md\:col-4 {
      grid-column: 4;
    }
    .md\:col-5 {
      grid-column: 5;
    }
    .md\:col-6 {
      grid-column: 6;
    }
    .md\:col-7 {
      grid-column: 7;
    }
    .md\:col-8 {
      grid-column: 8;
    }
    .md\:col-9 {
      grid-column: 9;
    }
    .md\:col-10 {
      grid-column: 10;
    }
    .md\:mb-0 {
      margin-bottom: 0px;
    }
    .md\:block {
      display: block;
    }
    .md\:hidden {
      display: none;
    }
    .md\:col-3 {
      flex: 0 0 auto;
      width: 25%;
    }
    .md\:col-4 {
      flex: 0 0 auto;
      width: 33.333333333333336%;
    }
    .md\:col-5 {
      flex: 0 0 auto;
      width: 41.66666666666667%;
    }
    .md\:col-6 {
      flex: 0 0 auto;
      width: 50%;
    }
    .md\:col-7 {
      flex: 0 0 auto;
      width: 58.333333333333336%;
    }
    .md\:col-8 {
      flex: 0 0 auto;
      width: 66.66666666666667%;
    }
    .md\:col-9 {
      flex: 0 0 auto;
      width: 75%;
    }
    .md\:col-10 {
      flex: 0 0 auto;
      width: 83.33333333333334%;
    }
    .md\:bg-yellow-200 {
      background-color: var(--color-yellow-200);
    }
  }
  @media (width >= 64rem) {
    .lg\:invisible {
      visibility: hidden;
    }
    .lg\:absolute {
      position: absolute;
    }
    .lg\:order-1 {
      order: 1;
    }
    .lg\:col-2 {
      grid-column: 2;
    }
    .lg\:col-3 {
      grid-column: 3;
    }
    .lg\:col-4 {
      grid-column: 4;
    }
    .lg\:col-6 {
      grid-column: 6;
    }
    .lg\:col-7 {
      grid-column: 7;
    }
    .lg\:col-8 {
      grid-column: 8;
    }
    .lg\:col-9 {
      grid-column: 9;
    }
    .lg\:col-10 {
      grid-column: 10;
    }
    .lg\:mt-0 {
      margin-top: 0px;
    }
    .lg\:mb-0 {
      margin-bottom: 0px;
    }
    .lg\:ml-0 {
      margin-left: 0px;
    }
    .lg\:block {
      display: block;
    }
    .lg\:flex {
      display: flex;
    }
    .lg\:hidden {
      display: none;
    }
    .lg\:inline-block {
      display: inline-block;
    }
    .lg\:col-2 {
      flex: 0 0 auto;
      width: 16.666666666666668%;
    }
    .lg\:col-3 {
      flex: 0 0 auto;
      width: 25%;
    }
    .lg\:col-4 {
      flex: 0 0 auto;
      width: 33.333333333333336%;
    }
    .lg\:col-6 {
      flex: 0 0 auto;
      width: 50%;
    }
    .lg\:col-7 {
      flex: 0 0 auto;
      width: 58.333333333333336%;
    }
    .lg\:col-8 {
      flex: 0 0 auto;
      width: 66.66666666666667%;
    }
    .lg\:col-9 {
      flex: 0 0 auto;
      width: 75%;
    }
    .lg\:col-10 {
      flex: 0 0 auto;
      width: 83.33333333333334%;
    }
    .lg\:w-auto {
      width: auto;
    }
    .lg\:\!max-w-\[800px\] {
      max-width: 800px !important;
    }
    .lg\:justify-end {
      justify-content: flex-end;
    }
    :where(.lg\:space-x-2 > :not(:last-child)) {
      --tw-space-x-reverse: 0;
      margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));
      margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)));
    }
    .lg\:border-r-0 {
      border-right-style: var(--tw-border-style);
      border-right-width: 0px;
    }
    .lg\:bg-green-200 {
      background-color: var(--color-green-200);
    }
    .lg\:py-14 {
      padding-block: calc(var(--spacing) * 14);
    }
    .lg\:py-16 {
      padding-block: calc(var(--spacing) * 16);
    }
    .lg\:py-20 {
      padding-block: calc(var(--spacing) * 20);
    }
    .lg\:pr-0 {
      padding-right: 0px;
    }
    .lg\:pb-0 {
      padding-bottom: 0px;
    }
    .lg\:text-left {
      text-align: left;
    }
    .lg\:text-right {
      text-align: right;
    }
    .lg\:text-h1 {
      font-size: var(--text-h1);
    }
    .lg\:text-h2 {
      font-size: var(--text-h2);
    }
    .lg\:opacity-0 {
      opacity: 0%;
    }
    @media (hover: hover) {
      .lg\:group-hover\:visible:is(:where(.group):hover *) {
        visibility: visible;
      }
      .lg\:group-hover\:opacity-100:is(:where(.group):hover *) {
        opacity: 100%;
      }
    }
  }
  @media (width >= 80rem) {
    .xl\:col-6 {
      grid-column: 6;
    }
    .xl\:block {
      display: block;
    }
    .xl\:hidden {
      display: none;
    }
    .xl\:col-6 {
      flex: 0 0 auto;
      width: 50%;
    }
    :where(.xl\:space-x-8 > :not(:last-child)) {
      --tw-space-x-reverse: 0;
      margin-inline-start: calc(calc(var(--spacing) * 8) * var(--tw-space-x-reverse));
      margin-inline-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-x-reverse)));
    }
    .xl\:bg-blue-200 {
      background-color: var(--color-blue-200);
    }
    .xl\:p-20 {
      padding: calc(var(--spacing) * 20);
    }
  }
  @media (width >= 96rem) {
    .\32 xl\:block {
      display: block;
    }
    .\32 xl\:hidden {
      display: none;
    }
    .\32 xl\:bg-pink-200 {
      background-color: var(--color-pink-200);
    }
  }
  .dark\:border-darkmode-border:where(.dark, .dark *) {
    border-color: var(--color-darkmode-border);
  }
  .dark\:bg-darkmode-body:where(.dark, .dark *) {
    background-color: var(--color-darkmode-body);
  }
  .dark\:bg-darkmode-light:where(.dark, .dark *) {
    background-color: var(--color-darkmode-light);
  }
  .dark\:bg-darkmode-primary:where(.dark, .dark *) {
    background-color: var(--color-darkmode-primary);
  }
  .dark\:from-darkmode-body:where(.dark, .dark *) {
    --tw-gradient-from: var(--color-darkmode-body);
    --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));
  }
  .dark\:to-darkmode-light:where(.dark, .dark *) {
    --tw-gradient-to: var(--color-darkmode-light);
    --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));
  }
  .dark\:text-darkmode-primary:where(.dark, .dark *) {
    color: var(--color-darkmode-primary);
  }
  .dark\:text-darkmode-text-dark:where(.dark, .dark *) {
    color: var(--color-darkmode-text-dark);
  }
  .dark\:text-darkmode-text-light:where(.dark, .dark *) {
    color: var(--color-darkmode-text-light);
  }
  .dark\:text-text-dark:where(.dark, .dark *) {
    color: var(--color-text-dark);
  }
  .dark\:text-white:where(.dark, .dark *) {
    color: var(--color-white);
  }
  .dark\:opacity-0:where(.dark, .dark *) {
    opacity: 0%;
  }
  .dark\:opacity-100:where(.dark, .dark *) {
    opacity: 100%;
  }
  @media (hover: hover) {
    .dark\:hover\:bg-darkmode-light:where(.dark, .dark *):hover {
      background-color: var(--color-darkmode-light);
    }
    .dark\:hover\:bg-darkmode-primary:where(.dark, .dark *):hover {
      background-color: var(--color-darkmode-primary);
    }
    .dark\:hover\:text-darkmode-primary:where(.dark, .dark *):hover {
      color: var(--color-darkmode-primary);
    }
    .dark\:hover\:text-text-dark:where(.dark, .dark *):hover {
      color: var(--color-text-dark);
    }
  }
}
input#nav-toggle:checked + label #show-button {
  display: none;
}
input#nav-toggle:checked + label #hide-button {
  display: block;
}
input#nav-toggle:checked ~ #nav-menu {
  display: block;
}
.swiper-pagination-bullet {
  height: calc(var(--spacing) * 2.5) !important;
  width: calc(var(--spacing) * 2.5) !important;
  background-color: var(--color-light) !important;
  opacity: 100% !important;
  &:where(.dark, .dark *) {
    background-color: var(--color-darkmode-light) !important;
  }
}
.swiper-pagination-bullet-active {
  height: calc(var(--spacing) * 4) !important;
  width: calc(var(--spacing) * 4) !important;
  background-color: var(--color-primary) !important;
  &:where(.dark, .dark *) {
    background-color: var(--color-darkmode-primary) !important;
  }
}
@layer base {
  html {
    font-size: var(--text-base-sm);
    @media (width >= 48rem) {
      font-size: var(--text-base);
      line-height: var(--tw-leading, var(--text-base--line-height));
    }
  }
  body {
    background-color: var(--color-body);
    font-family: var(--font-primary);
    font-size: var(--text-base);
    line-height: var(--tw-leading, var(--text-base--line-height));
    --tw-leading: var(--leading-relaxed);
    line-height: var(--leading-relaxed);
    --tw-font-weight: var(--font-weight-normal);
    font-weight: var(--font-weight-normal);
    color: var(--color-text);
    &:where(.dark, .dark *) {
      background-color: var(--color-darkmode-body);
    }
    &:where(.dark, .dark *) {
      color: var(--color-darkmode-text);
    }
  }
  h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-secondary);
    --tw-leading: var(--leading-tight);
    line-height: var(--leading-tight);
    --tw-font-weight: var(--font-weight-bold);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-dark);
    &:where(.dark, .dark *) {
      color: var(--color-darkmode-text-dark);
    }
  }
  h1, .h1 {
    font-size: var(--text-h1-sm);
    @media (width >= 48rem) {
      font-size: var(--text-h1);
    }
  }
  h2, .h2 {
    font-size: var(--text-h2-sm);
    @media (width >= 48rem) {
      font-size: var(--text-h2);
    }
  }
  h3, .h3 {
    font-size: var(--text-h3-sm);
    @media (width >= 48rem) {
      font-size: var(--text-h3);
    }
  }
  h4, .h4 {
    font-size: var(--text-h4);
  }
  h5, .h5 {
    font-size: var(--text-h5);
  }
  h6, .h6 {
    font-size: var(--text-h6);
  }
  b, strong {
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold);
  }
  code::after {
    content: var(--tw-content);
    --tw-border-style: none;
    border-style: none;
  }
  blockquote > p {
    margin-block: 0px !important;
  }
}
@layer components {
  .section {
    padding-block: calc(var(--spacing) * 24);
    @media (width >= 80rem) {
      padding-block: calc(var(--spacing) * 28);
    }
  }
  .section-sm {
    padding-block: calc(var(--spacing) * 16);
    @media (width >= 80rem) {
      padding-block: calc(var(--spacing) * 20);
    }
  }
  .container {
    margin-inline: auto;
    padding-inline: calc(var(--spacing) * 4);
    @media (width >= 80rem) {
      max-width: 1320px !important;
    }
  }
  :where(.social-icons > :not(:last-child)) {
    --tw-space-x-reverse: 0;
    margin-inline-start: calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));
    margin-inline-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)));
  }
  .social-icons li {
    display: inline-block;
  }
  .social-icons li a {
    display: flex;
    height: calc(var(--spacing) * 9);
    width: calc(var(--spacing) * 9);
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-sm);
    background-color: var(--color-primary);
    text-align: center;
    --tw-leading: calc(var(--spacing) * 9);
    line-height: calc(var(--spacing) * 9);
    color: var(--color-white);
    &:where(.dark, .dark *) {
      background-color: var(--color-darkmode-primary);
    }
    &:where(.dark, .dark *) {
      color: var(--color-text-dark);
    }
  }
  .social-icons li a svg {
    height: calc(var(--spacing) * 5);
    width: calc(var(--spacing) * 5);
  }
  .content {
    color: var(--tw-prose-body);
    max-width: 65ch;
    :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 1.25em;
      margin-bottom: 1.25em;
    }
    :where([class~="lead"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-lead);
      font-size: 1.25em;
      line-height: 1.6;
      margin-top: 1.2em;
      margin-bottom: 1.2em;
    }
    :where(a):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-links);
      text-decoration: underline;
      font-weight: 500;
    }
    :where(strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-bold);
      font-weight: 600;
    }
    :where(a strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: inherit;
    }
    :where(blockquote strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: inherit;
    }
    :where(thead th strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: inherit;
    }
    :where(ol):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      list-style-type: decimal;
      margin-top: 1.25em;
      margin-bottom: 1.25em;
      padding-inline-start: 1.625em;
    }
    :where(ol[type="A"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      list-style-type: upper-alpha;
    }
    :where(ol[type="a"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      list-style-type: lower-alpha;
    }
    :where(ol[type="A" s]):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      list-style-type: upper-alpha;
    }
    :where(ol[type="a" s]):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      list-style-type: lower-alpha;
    }
    :where(ol[type="I"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      list-style-type: upper-roman;
    }
    :where(ol[type="i"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      list-style-type: lower-roman;
    }
    :where(ol[type="I" s]):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      list-style-type: upper-roman;
    }
    :where(ol[type="i" s]):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      list-style-type: lower-roman;
    }
    :where(ol[type="1"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      list-style-type: decimal;
    }
    :where(ul):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      list-style-type: disc;
      margin-top: 1.25em;
      margin-bottom: 1.25em;
      padding-inline-start: 1.625em;
    }
    :where(ol > li):not(:where([class~="not-prose"], [class~="not-prose"] *))::marker {
      font-weight: 400;
      color: var(--tw-prose-counters);
    }
    :where(ul > li):not(:where([class~="not-prose"], [class~="not-prose"] *))::marker {
      color: var(--tw-prose-bullets);
    }
    :where(dt):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-headings);
      font-weight: 600;
      margin-top: 1.25em;
    }
    :where(hr):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      border-color: var(--tw-prose-hr);
      border-top-width: 1px;
      margin-top: 3em;
      margin-bottom: 3em;
    }
    :where(blockquote):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      font-weight: 500;
      font-style: italic;
      color: var(--tw-prose-quotes);
      border-inline-start-width: 0.25rem;
      border-inline-start-color: var(--tw-prose-quote-borders);
      quotes: "\201C""\201D""\2018""\2019";
      margin-top: 1.6em;
      margin-bottom: 1.6em;
      padding-inline-start: 1em;
    }
    :where(blockquote p:first-of-type):not(:where([class~="not-prose"], [class~="not-prose"] *))::before {
      content: open-quote;
    }
    :where(blockquote p:last-of-type):not(:where([class~="not-prose"], [class~="not-prose"] *))::after {
      content: close-quote;
    }
    :where(h1):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-headings);
      font-weight: 800;
      font-size: 2.25em;
      margin-top: 0;
      margin-bottom: 0.8888889em;
      line-height: 1.1111111;
    }
    :where(h1 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      font-weight: 900;
      color: inherit;
    }
    :where(h2):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-headings);
      font-weight: 700;
      font-size: 1.5em;
      margin-top: 2em;
      margin-bottom: 1em;
      line-height: 1.3333333;
    }
    :where(h2 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      font-weight: 800;
      color: inherit;
    }
    :where(h3):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-headings);
      font-weight: 600;
      font-size: 1.25em;
      margin-top: 1.6em;
      margin-bottom: 0.6em;
      line-height: 1.6;
    }
    :where(h3 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      font-weight: 700;
      color: inherit;
    }
    :where(h4):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-headings);
      font-weight: 600;
      margin-top: 1.5em;
      margin-bottom: 0.5em;
      line-height: 1.5;
    }
    :where(h4 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      font-weight: 700;
      color: inherit;
    }
    :where(img):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 2em;
      margin-bottom: 2em;
    }
    :where(picture):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      display: block;
      margin-top: 2em;
      margin-bottom: 2em;
    }
    :where(video):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 2em;
      margin-bottom: 2em;
    }
    :where(kbd):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      font-weight: 500;
      font-family: inherit;
      color: var(--tw-prose-kbd);
      box-shadow: 0 0 0 1px var(--tw-prose-kbd-shadows), 0 3px 0 var(--tw-prose-kbd-shadows);
      font-size: 0.875em;
      border-radius: 0.3125rem;
      padding-top: 0.1875em;
      padding-inline-end: 0.375em;
      padding-bottom: 0.1875em;
      padding-inline-start: 0.375em;
    }
    :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-code);
      font-weight: 600;
      font-size: 0.875em;
    }
    :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *))::before {
      content: "`";
    }
    :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *))::after {
      content: "`";
    }
    :where(a code):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: inherit;
    }
    :where(h1 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: inherit;
    }
    :where(h2 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: inherit;
      font-size: 0.875em;
    }
    :where(h3 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: inherit;
      font-size: 0.9em;
    }
    :where(h4 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: inherit;
    }
    :where(blockquote code):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: inherit;
    }
    :where(thead th code):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: inherit;
    }
    :where(pre):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-pre-code);
      background-color: var(--tw-prose-pre-bg);
      overflow-x: auto;
      font-weight: 400;
      font-size: 0.875em;
      line-height: 1.7142857;
      margin-top: 1.7142857em;
      margin-bottom: 1.7142857em;
      border-radius: 0.375rem;
      padding-top: 0.8571429em;
      padding-inline-end: 1.1428571em;
      padding-bottom: 0.8571429em;
      padding-inline-start: 1.1428571em;
    }
    :where(pre code):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      background-color: transparent;
      border-width: 0;
      border-radius: 0;
      padding: 0;
      font-weight: inherit;
      color: inherit;
      font-size: inherit;
      font-family: inherit;
      line-height: inherit;
    }
    :where(pre code):not(:where([class~="not-prose"], [class~="not-prose"] *))::before {
      content: none;
    }
    :where(pre code):not(:where([class~="not-prose"], [class~="not-prose"] *))::after {
      content: none;
    }
    :where(table):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      width: 100%;
      table-layout: auto;
      margin-top: 2em;
      margin-bottom: 2em;
      font-size: 0.875em;
      line-height: 1.7142857;
    }
    :where(thead):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      border-bottom-width: 1px;
      border-bottom-color: var(--tw-prose-th-borders);
    }
    :where(thead th):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-headings);
      font-weight: 600;
      vertical-align: bottom;
      padding-inline-end: 0.5714286em;
      padding-bottom: 0.5714286em;
      padding-inline-start: 0.5714286em;
    }
    :where(tbody tr):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      border-bottom-width: 1px;
      border-bottom-color: var(--tw-prose-td-borders);
    }
    :where(tbody tr:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      border-bottom-width: 0;
    }
    :where(tbody td):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      vertical-align: baseline;
    }
    :where(tfoot):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      border-top-width: 1px;
      border-top-color: var(--tw-prose-th-borders);
    }
    :where(tfoot td):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      vertical-align: top;
    }
    :where(th, td):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      text-align: start;
    }
    :where(figure > *):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 0;
      margin-bottom: 0;
    }
    :where(figcaption):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      color: var(--tw-prose-captions);
      font-size: 0.875em;
      line-height: 1.4285714;
      margin-top: 0.8571429em;
    }
    --tw-prose-body: oklch(37.3% 0.034 259.733);
    --tw-prose-headings: oklch(21% 0.034 264.665);
    --tw-prose-lead: oklch(44.6% 0.03 256.802);
    --tw-prose-links: oklch(21% 0.034 264.665);
    --tw-prose-bold: oklch(21% 0.034 264.665);
    --tw-prose-counters: oklch(55.1% 0.027 264.364);
    --tw-prose-bullets: oklch(87.2% 0.01 258.338);
    --tw-prose-hr: oklch(92.8% 0.006 264.531);
    --tw-prose-quotes: oklch(21% 0.034 264.665);
    --tw-prose-quote-borders: oklch(92.8% 0.006 264.531);
    --tw-prose-captions: oklch(55.1% 0.027 264.364);
    --tw-prose-kbd: oklch(21% 0.034 264.665);
    --tw-prose-kbd-shadows: color-mix(in oklab, oklch(21% 0.034 264.665) 10%, transparent);
    --tw-prose-code: oklch(21% 0.034 264.665);
    --tw-prose-pre-code: oklch(92.8% 0.006 264.531);
    --tw-prose-pre-bg: oklch(27.8% 0.033 256.848);
    --tw-prose-th-borders: oklch(87.2% 0.01 258.338);
    --tw-prose-td-borders: oklch(92.8% 0.006 264.531);
    --tw-prose-invert-body: oklch(87.2% 0.01 258.338);
    --tw-prose-invert-headings: #fff;
    --tw-prose-invert-lead: oklch(70.7% 0.022 261.325);
    --tw-prose-invert-links: #fff;
    --tw-prose-invert-bold: #fff;
    --tw-prose-invert-counters: oklch(70.7% 0.022 261.325);
    --tw-prose-invert-bullets: oklch(44.6% 0.03 256.802);
    --tw-prose-invert-hr: oklch(37.3% 0.034 259.733);
    --tw-prose-invert-quotes: oklch(96.7% 0.003 264.542);
    --tw-prose-invert-quote-borders: oklch(37.3% 0.034 259.733);
    --tw-prose-invert-captions: oklch(70.7% 0.022 261.325);
    --tw-prose-invert-kbd: #fff;
    --tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%);
    --tw-prose-invert-code: #fff;
    --tw-prose-invert-pre-code: oklch(87.2% 0.01 258.338);
    --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);
    --tw-prose-invert-th-borders: oklch(44.6% 0.03 256.802);
    --tw-prose-invert-td-borders: oklch(37.3% 0.034 259.733);
    font-size: 1rem;
    line-height: 1.75;
    :where(picture > img):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 0;
      margin-bottom: 0;
    }
    :where(li):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 0.5em;
      margin-bottom: 0.5em;
    }
    :where(ol > li):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      padding-inline-start: 0.375em;
    }
    :where(ul > li):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      padding-inline-start: 0.375em;
    }
    :where(.prose > ul > li p):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 0.75em;
      margin-bottom: 0.75em;
    }
    :where(.prose > ul > li > p:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 1.25em;
    }
    :where(.prose > ul > li > p:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-bottom: 1.25em;
    }
    :where(.prose > ol > li > p:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 1.25em;
    }
    :where(.prose > ol > li > p:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-bottom: 1.25em;
    }
    :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 0.75em;
      margin-bottom: 0.75em;
    }
    :where(dl):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 1.25em;
      margin-bottom: 1.25em;
    }
    :where(dd):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 0.5em;
      padding-inline-start: 1.625em;
    }
    :where(hr + *):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 0;
    }
    :where(h2 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 0;
    }
    :where(h3 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 0;
    }
    :where(h4 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 0;
    }
    :where(thead th:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      padding-inline-start: 0;
    }
    :where(thead th:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      padding-inline-end: 0;
    }
    :where(tbody td, tfoot td):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      padding-top: 0.5714286em;
      padding-inline-end: 0.5714286em;
      padding-bottom: 0.5714286em;
      padding-inline-start: 0.5714286em;
    }
    :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      padding-inline-start: 0;
    }
    :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      padding-inline-end: 0;
    }
    :where(figure):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 2em;
      margin-bottom: 2em;
    }
    :where(.prose > :first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-top: 0;
    }
    :where(.prose > :last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
      margin-bottom: 0;
    }
    max-width: none;
    & :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      margin-top: .6em;
    }
    & :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      margin-bottom: .3em;
    }
    & :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      color: var(--color-text-dark);
    }
    &:where(.dark, .dark *) {
      & :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
        color: var(--color-darkmode-text-dark);
      }
    }
    & :is(:where(h1):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      font-size: var(--text-h1-sm);
    }
    @media (width >= 48rem) {
      & :is(:where(h1):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
        font-size: var(--text-h1);
      }
    }
    & :is(:where(h2):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      font-size: var(--text-h2-sm);
    }
    @media (width >= 48rem) {
      & :is(:where(h2):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
        font-size: var(--text-h2);
      }
    }
    & :is(:where(h3):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      font-size: var(--text-h3-sm);
    }
    @media (width >= 48rem) {
      & :is(:where(h3):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
        font-size: var(--text-h3);
      }
    }
    & :is(:where(p):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      font-size: var(--text-base);
      line-height: var(--tw-leading, var(--text-base--line-height));
    }
    & :is(:where(p):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      color: var(--color-text);
    }
    &:where(.dark, .dark *) {
      & :is(:where(p):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
        color: var(--color-darkmode-text);
      }
    }
    & :is(:where(a):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      color: var(--color-text);
    }
    &:where(.dark, .dark *) {
      & :is(:where(a):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
        color: var(--color-darkmode-text);
      }
    }
    & :is(:where(a):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      &.btn {
        text-decoration-line: none;
      }
    }
    & :is(:where(img):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      max-width: 100%;
    }
    & :is(:where(img):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      border-radius: 0.25rem;
    }
    & :is(:where(strong):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      color: var(--color-text-dark);
    }
    &:where(.dark, .dark *) {
      & :is(:where(strong):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
        color: var(--color-darkmode-text);
      }
    }
    & :is(:where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      border-color: var(--color-border);
    }
    &:where(.dark, .dark *) {
      & :is(:where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
        border-color: var(--color-darkmode-border);
      }
    }
    & :is(:where(pre):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      border-radius: var(--radius-lg);
    }
    & :is(:where(pre):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      background-color: var(--color-light);
    }
    &:where(.dark, .dark *) {
      & :is(:where(pre):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
        background-color: var(--color-darkmode-light);
      }
    }
    &:where(.dark, .dark *) {
      & :is(:where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
        color: var(--color-darkmode-text-dark);
      }
    }
    & :is(:where(li):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      color: var(--color-text);
    }
    &:where(.dark, .dark *) {
      & :is(:where(li):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
        color: var(--color-darkmode-text);
      }
    }
    & :is(:where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      border-radius: var(--radius-lg);
    }
    & :is(:where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      border-style: var(--tw-border-style);
      border-width: 1px;
    }
    & :is(:where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      border-left-style: var(--tw-border-style);
      border-left-width: 10px;
    }
    & :is(:where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      border-color: var(--color-primary);
    }
    & :is(:where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      background-color: var(--color-light);
    }
    & :is(:where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      padding-inline: calc(var(--spacing) * 8);
    }
    & :is(:where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      padding-block: calc(var(--spacing) * 10);
    }
    & :is(:where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      font-family: var(--font-secondary);
    }
    & :is(:where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      font-size: var(--text-2xl);
      line-height: var(--tw-leading, var(--text-2xl--line-height));
    }
    & :is(:where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      color: var(--color-text-dark);
    }
    & :is(:where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      font-style: normal;
    }
    &:where(.dark, .dark *) {
      & :is(:where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
        border-color: var(--color-darkmode-primary);
      }
    }
    &:where(.dark, .dark *) {
      & :is(:where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
        background-color: var(--color-darkmode-light);
      }
    }
    &:where(.dark, .dark *) {
      & :is(:where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
        color: var(--color-darkmode-text-light);
      }
    }
    & :is(:where(table):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      position: relative;
    }
    & :is(:where(table):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      overflow: hidden;
    }
    & :is(:where(table):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      border-radius: var(--radius-lg);
    }
    & :is(:where(table):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      &::before {
        content: var(--tw-content);
        position: absolute;
      }
    }
    & :is(:where(table):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      &::before {
        content: var(--tw-content);
        top: 0px;
      }
    }
    & :is(:where(table):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      &::before {
        content: var(--tw-content);
        left: 0px;
      }
    }
    & :is(:where(table):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      &::before {
        content: var(--tw-content);
        height: 100%;
      }
    }
    & :is(:where(table):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      &::before {
        content: var(--tw-content);
        width: 100%;
      }
    }
    & :is(:where(table):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      &::before {
        content: var(--tw-content);
        border-radius: inherit;
      }
    }
    & :is(:where(table):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      &::before {
        content: var(--tw-content);
        border-style: var(--tw-border-style);
        border-width: 1px;
      }
    }
    & :is(:where(table):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      &::before {
        content: var(--tw-content);
        border-color: var(--color-border);
      }
    }
    & :is(:where(table):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      &::before {
        content: var(--tw-content);
        --tw-content: "";
        content: var(--tw-content);
      }
    }
    &:where(.dark, .dark *) {
      & :is(:where(table):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
        &::before {
          content: var(--tw-content);
          border-color: var(--color-darkmode-border);
        }
      }
    }
    & :is(:where(thead):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      border-color: var(--color-border);
    }
    & :is(:where(thead):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      background-color: var(--color-light);
    }
    &:where(.dark, .dark *) {
      & :is(:where(thead):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
        border-color: var(--color-darkmode-border);
      }
    }
    &:where(.dark, .dark *) {
      & :is(:where(thead):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
        background-color: var(--color-darkmode-light);
      }
    }
    & :is(:where(th):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      position: relative;
    }
    & :is(:where(th):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      z-index: 10;
    }
    & :is(:where(th):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      padding-inline: calc(var(--spacing) * 4);
    }
    & :is(:where(th):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      padding-block: 18px;
    }
    & :is(:where(th):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      color: var(--color-text-dark);
    }
    &:where(.dark, .dark *) {
      & :is(:where(th):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
        color: var(--color-darkmode-text);
      }
    }
    & :is(:where(tr):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      border-color: var(--color-border);
    }
    &:where(.dark, .dark *) {
      & :is(:where(tr):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
        border-color: var(--color-darkmode-border);
      }
    }
    & :is(:where(td):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      position: relative;
    }
    & :is(:where(td):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      z-index: 10;
    }
    & :is(:where(td):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      padding-inline: calc(var(--spacing) * 3);
    }
    & :is(:where(td):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
      padding-block: 18px;
    }
    &:where(.dark, .dark *) {
      & :is(:where(td):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
        color: var(--color-darkmode-text);
      }
    }
  }
  .header {
    background-color: var(--color-body);
    padding-block: calc(var(--spacing) * 2);
    &:where(.dark, .dark *) {
      background-color: var(--color-darkmode-body);
    }
  }
  .navbar {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
  }
  .navbar-brand {
    font-size: var(--text-xl);
    line-height: var(--tw-leading, var(--text-xl--line-height));
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-dark);
    &:where(.dark, .dark *) {
      color: var(--color-darkmode-text-dark);
    }
    image {
      max-height: 100%;
      max-width: 100%;
    }
  }
  .navbar-nav {
    text-align: center;
    @media (width >= 64rem) {
      text-align: left;
    }
  }
  .nav-link {
    display: block;
    cursor: pointer;
    padding: calc(var(--spacing) * 3);
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-dark);
    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));
    &:hover {
      @media (hover: hover) {
        color: var(--color-primary);
      }
    }
    @media (width >= 64rem) {
      padding-inline: calc(var(--spacing) * 2);
    }
    @media (width >= 64rem) {
      padding-block: calc(var(--spacing) * 3);
    }
    &:where(.dark, .dark *) {
      color: var(--color-darkmode-text-dark);
    }
    &:where(.dark, .dark *) {
      &:hover {
        @media (hover: hover) {
          color: var(--color-darkmode-primary);
        }
      }
    }
  }
  .nav-dropdown {
    margin-right: 0px;
  }
  .nav-dropdown > svg {
    pointer-events: none;
  }
  .nav-dropdown-list {
    z-index: 10;
    min-width: 180px;
    border-radius: 0.25rem;
    background-color: var(--color-body);
    padding: calc(var(--spacing) * 4);
    --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);
    &:where(.dark, .dark *) {
      background-color: var(--color-darkmode-body);
    }
  }
  .nav-dropdown-item:not(:last-child) {
    margin-bottom: calc(var(--spacing) * 2);
  }
  .nav-dropdown-link {
    display: block;
    padding-block: var(--spacing);
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-dark);
    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));
    &:hover {
      @media (hover: hover) {
        color: var(--color-primary);
      }
    }
    &:where(.dark, .dark *) {
      color: var(--color-darkmode-text);
    }
    &:where(.dark, .dark *) {
      &:hover {
        @media (hover: hover) {
          color: var(--color-darkmode-primary);
        }
      }
    }
  }
  .theme-switcher {
    display: inline-flex;
    label {
      position: relative;
      display: inline-block;
      height: calc(var(--spacing) * 4);
      width: calc(var(--spacing) * 6);
      cursor: pointer;
      border-radius: var(--radius-2xl);
      background-color: var(--color-border);
      @media (width >= 64rem) {
        width: calc(var(--spacing) * 10);
      }
    }
    input {
      position: absolute;
      opacity: 0%;
    }
    span {
      position: absolute;
      top: calc(var(--spacing) * -1);
      left: 0px;
      display: flex;
      height: calc(var(--spacing) * 6);
      width: calc(var(--spacing) * 6);
      align-items: center;
      justify-content: center;
      border-radius: calc(infinity * 1px);
      background-color: var(--color-dark);
      transition-property: all;
      transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
      transition-duration: var(--tw-duration, var(--default-transition-duration));
      --tw-duration: 300ms;
      transition-duration: 300ms;
      &:where(.dark, .dark *) {
        background-color: var(--color-white);
      }
    }
    input:checked + label {
      span {
        @media (width >= 64rem) {
          left: calc(var(--spacing) * 4);
        }
      }
    }
  }
  .btn {
    display: inline-block;
    border-radius: 0.25rem;
    border-style: var(--tw-border-style);
    border-width: 1px;
    border-color: transparent;
    padding-inline: calc(var(--spacing) * 5);
    padding-block: calc(var(--spacing) * 2);
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold);
    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));
  }
  .btn-sm {
    border-radius: var(--radius-sm);
    padding-inline: calc(var(--spacing) * 4);
    padding-block: calc(var(--spacing) * 1.5);
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
  }
  .btn-primary {
    border-color: var(--color-primary);
    background-color: var(--color-primary);
    color: var(--color-white);
    &:where(.dark, .dark *) {
      border-color: var(--color-darkmode-primary);
    }
    &:where(.dark, .dark *) {
      background-color: var(--color-darkmode-primary);
    }
    &:where(.dark, .dark *) {
      color: var(--color-text-dark);
    }
  }
  .btn-outline-primary {
    border-color: var(--color-dark);
    background-color: transparent;
    color: var(--color-text-dark);
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-dark);
      }
    }
    &:hover {
      @media (hover: hover) {
        color: var(--color-white);
      }
    }
    &:where(.dark, .dark *) {
      border-color: var(--color-darkmode-primary);
    }
    &:where(.dark, .dark *) {
      color: var(--color-white);
    }
    &:where(.dark, .dark *) {
      &:hover {
        @media (hover: hover) {
          background-color: var(--color-darkmode-primary);
        }
      }
    }
    &:where(.dark, .dark *) {
      &:hover {
        @media (hover: hover) {
          color: var(--color-text-dark);
        }
      }
    }
  }
}
.search-wrapper {
  position: relative;
  z-index: 1;
}
.search-wrapper svg {
  display: inline-block;
  background-color: transparent;
}
.search-wrapper-header {
  padding: 14px;
  position: relative;
}
.search-wrapper-header input {
  border: 1px solid #ddd;
  width: 100%;
  border-radius: 4px;
  height: 52px;
  padding: 0 15px 0 40px;
  transition: 0.25s;
}
.search-wrapper-header input:focus {
  border-color: var(--color-primary);
  box-shadow: none;
  outline: none;
}
.search-wrapper-header label {
  position: absolute;
  left: 28px;
  top: calc(50% - 13px);
}
.search-wrapper-header label .search-reset {
  display: none;
  transition: 0.1s;
}
.search-wrapper-header label .search-reset:hover {
  cursor: pointer;
  color: #fb5c5c;
}
.search-result-empty {
  display: block;
  text-align: center;
  padding: 32px 0;
  cursor: text;
  user-select: none;
}
.search-result mark {
  padding: 0;
  border-radius: 2px;
}
.search-result:not(:empty) + .search-result-empty {
  display: none;
}
.search-not-found {
  text-align: center;
}
.search-not-found svg {
  margin-bottom: 16px;
}
.search-not-found p {
  margin-bottom: 0;
}
.search-result-item {
  position: relative;
  display: block;
  padding: 16px;
  border-radius: 4px;
  border: 1px solid #eee;
  background-color: #fff;
  transition: 0s;
  margin-bottom: 4px;
  display: flex;
  align-items: flex-start;
}
.search-result-item div:empty, .search-result-item .search-result-item-description:empty {
  display: none;
}
.search-result-item-image {
  flex-shrink: 0;
}
.search-result-item-image:empty {
  display: none;
}
.search-result-item-body {
  flex-grow: 1;
}
.search-result-item > div > img {
  border-radius: 4px;
  max-height: 400px;
  width: 100%;
  object-fit: cover;
}
.search-page .search-result-item > div > img {
  object-fit: cover;
  max-height: 250px;
  width: 100%;
}
.search-result-item:focus, .search-result-item.search-item-selected, .search-result-item:hover {
  background-color: var(--color-primary);
}
.search-result-item:focus *, .search-result-item.search-item-selected *, .search-result-item:hover * {
  color: white;
}
.search-result-item:focus mark, .search-result-item.search-item-selected mark, .search-result-item:hover mark {
  background-color: #fef08a;
  color: #060606;
}
.search-result-item [data-result-item] u {
  color: var(--color-primary);
}
.search-result-item .hidden {
  display: none;
}
.search-result-group-title {
  padding: 0 12px;
  display: inline-block;
  margin-bottom: 5px;
  margin-top: 15px;
  font-size: 18px;
}
.search-result-item-title {
  transition: 0s;
  font-size: 18px;
  color: black;
  margin-bottom: 0;
  line-height: 1.35;
  font-weight: bold;
}
.search-result-item-title::before {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  top: 0;
  z-index: 10;
  content: "";
}
.search-result-item-content {
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 6px 0;
}
.search-result-item-description {
  font-size: 90%;
  margin-top: 6px;
  margin-bottom: 4px;
}
.search-result-item-content:empty {
  display: none;
}
.search-result-item-taxonomies {
  display: flex;
  flex-wrap: wrap;
  font-size: 13px;
  align-items: center;
}
.search-result-item-taxonomies > div {
  margin-right: 12px;
  color: #999;
}
.search-result-item-taxonomies > div svg {
  margin-right: 4px;
}
.search-wrapper-footer {
  color: #999;
  font-size: 12px;
  padding: 8px 14px;
  user-select: none;
  line-height: 1;
  display: flex;
  align-items: center;
}
.search-wrapper-footer kbd {
  color: #777;
  background-color: #eee;
  font-size: 12px;
  border-radius: 3px;
  margin-right: 3px;
  padding: 2px 4px;
  line-height: 1;
  text-align: center;
  display: inline-block;
}
.search-wrapper-footer span:not(:last-child) {
  margin-right: 16px;
}
.search-wrapper-footer span:last-child {
  margin-left: auto;
}
.search-wrapper-footer .search-result-info:empty {
  display: none;
}
.search-wrapper-footer .search-result-info {
  margin-left: -3px;
}
.search-wrapper-footer .search-result-info em {
  color: black;
  font-style: normal;
  padding: 0 3px;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}
.search-modal {
  position: fixed;
  height: 100%;
  width: 100%;
  inset: 0;
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
}
.search-modal.show {
  opacity: 1;
  visibility: visible;
}
.search-modal-overlay {
  position: fixed;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.5);
}
.search-modal .search-wrapper {
  width: 660px;
  max-width: 96%;
  margin: 100px auto;
  border-radius: 4px;
  background-color: white;
}
.search-modal .search-wrapper-body {
  max-height: calc(100vh - 350px);
  padding: 14px;
  overflow-y: auto;
  background-color: #f5f6f7;
  box-shadow: inset 0 2px 18px #ddd;
  border-radius: 4px;
}
.search-modal .search-result-group:first-child .search-result-group-title:not(:empty) {
  margin-top: -15px;
}
.search-modal .search-result-item a > div {
  margin-right: 16px;
}
.search-modal .search-result-item-image {
  margin-right: 15px;
}
.search-modal .search-result-item-image img {
  width: 100px;
  height: 100px;
  object-fit: cover;
}
@media (max-width: 576px) {
  .search-modal .search-result-item-image img {
    width: 60px;
    height: 60px;
  }
  .search-wrapper-footer {
    display: none;
  }
}
.dark .search-modal .search-wrapper {
  background-color: #1c1c1c;
}
.dark .search-modal .search-wrapper-header input {
  color: #fff;
  background-color: #222222;
  border-color: #535353;
}
.dark .search-modal .search-wrapper-header input:focus {
  border-color: #fff;
}
.dark .search-modal .search-wrapper-body {
  background-color: #222222;
  box-shadow: none;
}
.dark .search-modal .search-result-item {
  border-color: #3e3e3e;
  background-color: #1c1c1c;
}
.dark .search-modal .search-result-item:focus, .dark .search-modal .search-result-item.search-item-selected, .dark .search-modal .search-result-item:hover {
  background-color: #060606;
}
.dark .search-modal .search-result-item .search-result-item-title {
  color: #fff;
}
.dark .search-wrapper-footer kbd {
  background-color: #3e3e3e;
  color: #ccc;
}
.dark .search-wrapper-footer .search-result-info em {
  color: #fff;
}
.search-page .search-wrapper {
  padding: 100px 0;
}
.search-page .search-wrapper-header, .search-page .search-wrapper-footer {
  width: 660px;
  max-width: 96%;
  margin: 0 auto;
}
.search-page .search-wrapper-footer {
  padding-top: 0;
  padding-bottom: 0;
  margin-bottom: 60px;
}
.search-page .search-wrapper-body {
  padding: 0 16px;
}
.search-page .search-result-group {
  display: flex;
  flex-wrap: wrap;
}
.search-page .search-result-item {
  margin-right: -15px;
  margin-left: -15px;
}
.search-page .search-result-group > p, .search-page .search-result-item {
  padding-right: 15px !important;
  padding-left: 15px !important;
}
.search-page .search-result-group > p {
  width: 100%;
}
.search-page .search-result-item {
  flex: 0 0 auto;
  width: calc(100% - (4 * 4px));
  display: block;
  padding-top: 15px !important;
  padding-bottom: 15px !important;
  margin: 0 8px 16px 8px;
}
.search-page .search-result-item .search-result-item-image {
  margin-bottom: 10px;
}
.search-page .search-result-group-title {
  font-size: 22px;
  font-weight: bold;
}
.search-page .search-result-info {
  display: block;
  text-align: center;
}
.search-page .search-wrapper-header input {
  padding: 0 20px;
}
@media (min-width: 576px) {
  .search-page .search-result-item {
    width: calc(50% - (4 * 4px));
  }
}
@media (max-width: 576px) {
  .search-wrapper .search-wrapper-footer span:not(.search-result-info) {
    display: none;
  }
}
@media (min-width: 768px) {
  .search-page .search-result-item {
    width: calc(33.3333333333% - (4 * 4px));
  }
}
@media (min-width: 992px) {
  .search-page .search-result-item {
    width: calc(25% - (4 * 4px));
  }
}
.dark .search-page .search-wrapper-header input {
  color: #fff;
  background-color: #222222;
  border-color: #535353;
}
.dark .search-page .search-wrapper-header input:focus {
  border-color: #fff;
}
.dark .search-page .search-result-item {
  border-color: #3e3e3e;
  background-color: #1c1c1c;
}
.dark .search-page .search-result-item:focus, .dark .search-page .search-result-item.search-item-selected, .dark .search-page .search-result-item:hover {
  background-color: #060606;
}
.dark .search-page .search-result-item-title {
  color: #fff;
}
.share-link {
  border-radius: 0.25rem;
  transition: 25ms ease-out;
  height: 2.5em;
  width: 2.5em;
  line-height: 2.5em;
  text-align: center;
  font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
  text-decoration: none;
  color: #fff;
  margin: 0.5em;
  display: inline-block;
  vertical-align: middle;
  cursor: pointer;
}
.share-icon {
  fill: #fff;
  stroke: none;
  display: block;
  height: 100%;
}
.share-icon svg {
  width: 1em;
  height: 100%;
  margin: auto;
}
.share-pinterest {
  background-color: #bd081c;
}
.share-pinterest:hover {
  background-color: #8c0615;
}
.share-facebook {
  background-color: #3b5998;
}
.share-facebook:hover {
  background-color: #2d4373;
}
.share-tumblr {
  background-color: #35465c;
}
.share-tumblr:hover {
  background-color: #222d3c;
}
.share-reddit {
  background-color: #5f99cf;
}
.share-reddit:hover {
  background-color: #3a80c1;
}
.share-linkedin {
  background-color: #0077b5;
}
.share-linkedin:hover {
  background-color: #046293;
}
.share-vk {
  background-color: #507299;
}
.share-vk:hover {
  background-color: #43648c;
}
.share-x {
  background-color: #000;
}
.share-x:hover {
  background-color: #000;
}
.share-email {
  background-color: #777777;
}
.share-email:hover {
  background-color: #5e5e5e;
}
.share-whatsapp {
  background-color: #25d366;
}
.share-whatsapp:hover {
  background-color: #1da851;
}
.share-telegram {
  background-color: #54a9eb;
}
.share-telegram:hover {
  background-color: #4b97d1;
}
.share-copy {
  background-color: #28a745;
}
.share-copy:hover {
  background-color: #218838;
}
.share-fediverse {
  background-color: #6364ff;
}
.share-fediverse:hover {
  background-color: #4b4ccf;
}
.fediverse-share {
  position: relative;
  display: inline-block;
}
.fediverse-input-wrapper {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  margin-top: 8px;
  background: #fff;
  border: 1px solid #ccc;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  padding: 8px;
  display: none;
  z-index: 10;
  white-space: nowrap;
}
.dark .fediverse-input-wrapper {
  background: #2d2d2d;
  border-color: #444;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.5);
}
.fediverse-input {
  width: 200px;
  padding: 6px 8px;
  border: 1px solid #ccc;
  font-size: 14px;
  margin-right: 8px;
}
.fediverse-input:focus {
  outline: none;
  border-color: #4b4ccf;
}
.fediverse-check-button {
  padding: 7px 12px;
  background-color: #4b4ccf;
  color: #fff;
  border: none;
  cursor: pointer;
  font-size: 14px;
}
.fediverse-check-button:hover {
  background-color: #4b4ccf;
}
.img {
  max-width: 100%;
  height: auto;
}
.gallery {
  display: flex;
  flex-wrap: wrap;
  margin-left: -10px;
  margin-right: -10px;
}
.gallery .gallery-item {
  margin: 0 10px;
  margin-bottom: 20px;
  overflow: hidden;
  max-width: calc(100% - 20px);
}
.gallery .gallery-item img {
  user-select: none;
  width: 100%;
  vertical-align: middle;
  transition: 0.3s;
}
.gallery.zoomable .gallery-item:hover img {
  transform: scale(1.05);
  cursor: zoom-in;
}
.gallery::after {
  content: "";
  flex-grow: 99999;
  min-width: calc(100vw / 3);
}
@media (max-width: 460px) {
  .gallery {
    flex-direction: column;
  }
  .gallery .gallery-item {
    width: calc(100% - 20px) !important;
  }
}
.gallery-slider .swiper-slide img {
  width: 100%;
}
.gallery-slider .swiper-button-prev, .gallery-slider .swiper-button-next {
  color: white;
  opacity: 0;
  transition: 0.3s;
}
.gallery-slider:hover .swiper-button-prev, .gallery-slider:hover .swiper-button-next {
  opacity: 1;
}
.gallery-slider:hover .swiper-button-prev {
  left: 30px;
}
.gallery-slider:hover .swiper-button-next {
  right: 30px;
}
.img {
  max-width: 100%;
  height: auto;
}
.img-light {
  display: initial;
}
.img-dark {
  display: none;
}
.dark .img-light {
  display: none;
}
.dark .img-dark {
  display: initial;
}
.content img {
  max-width: 100%;
  margin-bottom: 1.5rem;
  height: auto;
  display: inline-block;
}
.content img.glightbox {
  cursor: pointer;
}
.content img.img-center {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.content img.img-left {
  display: block;
  margin-left: 0;
  margin-right: auto;
}
.content img.img-right {
  display: block;
  margin-left: auto;
  margin-right: 0;
}
.content img.img-float-left {
  float: left;
  margin-right: 1.5rem;
}
.content img.img-float-right {
  float: right;
  margin-left: 1.5rem;
}
.content figure {
  display: inline-block;
  margin-bottom: 1.5rem;
}
.content figure img {
  margin-bottom: 0.7rem;
}
.content figure.img-center {
  display: block;
  text-align: center;
}
.content figure.img-left {
  display: block;
  text-align: left;
}
.content figure.img-right {
  display: block;
  text-align: right;
}
.content figure.img-float-left {
  float: left;
  margin-right: 1.5rem;
}
.content figure.img-float-right {
  float: right;
  margin-left: 1.5rem;
}
.table-of-content {
  margin: 1rem 0 1.5rem;
}
.table-of-content summary {
  font-size: 18px;
  color: #fff;
  background-color: #555;
  padding: 5px 20px;
  margin-bottom: 0 !important;
}
.table-of-content ul li:before {
  display: none;
}
#TableOfContents {
  padding: 10px;
  background-color: #f7f7f7;
}
#TableOfContents li, #TableOfContents a {
  color: #333 !important;
}
#TableOfContents a {
  text-decoration: none;
}
#TableOfContents a:hover {
  text-decoration: underline;
}
.content .table-of-content ul li, .content .table-of-content ol li {
  margin-bottom: 6px !important;
}
.dark #TableOfContents {
  background-color: #333;
}
.dark #TableOfContents li, .dark #TableOfContents a {
  color: #fff !important;
}
.tab-nav {
  list-style: none;
  padding: 0;
  margin: 0 !important;
  display: flex;
  border-bottom: 1px solid #aaa;
  overflow-x: auto;
}
.tab-nav::-webkit-scrollbar {
  width: 2px;
}
.tab-nav-item {
  padding: 0.5rem 1rem !important;
  cursor: pointer;
  opacity: 0.8;
  margin: 0 !important;
  white-space: nowrap;
}
.tab-nav-item::before {
  display: none !important;
}
.tab-nav-item.active {
  border-bottom: 3px solid #aaa;
  opacity: 1;
}
.tab-content .tab-content-panel {
  display: none;
  padding: 1rem;
}
.tab-content .tab-content-panel p {
  margin-bottom: 0 !important;
}
.tab-content .tab-content-panel.active {
  display: block;
}
.accordion {
  border: 1px solid #ccc;
}
.accordion-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem;
  font-size: 1.1rem;
  width: 100%;
  font-weight: bold;
  text-align: left;
  cursor: pointer;
}
.accordion-icon {
  width: 0.78em;
  height: 0.78em;
  transform: rotate(-90deg);
  transition: transform 0.2s ease;
}
.accordion-content {
  max-height: 0;
  overflow: hidden;
  padding: 0 1rem;
}
.accordion.active .accordion-icon {
  transform: rotate(0deg);
}
.accordion.active .accordion-content {
  max-height: max-content;
}
.modal {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 40;
  display: none;
  height: 100%;
  width: 100%;
  overflow: auto;
}
.modal-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 40;
  display: none;
  height: 100%;
  width: 100%;
  background-color: rgba(0, 0, 0, 0.4);
}
.modal-content {
  position: relative;
  top: 50%;
  z-index: 50;
  transform: translateY(-50%);
  background-color: #fff;
  border-radius: 0.5rem;
  padding: 2rem;
  max-width: 90%;
  margin: 0 auto;
}
.modal-close {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  height: 2rem;
  width: 2rem;
  background-color: #f2f2f2;
  color: #000;
  border-radius: 50%;
  text-align: center;
  line-height: 2rem;
}
.notice {
  margin-bottom: 1.5rem;
  border: 1px solid;
  padding: 1.5rem;
  border-color: currentColor;
}
.notice-head {
  display: flex;
  align-items: center;
}
.notice-head svg {
  margin-right: 0.75rem;
}
.notice-head p {
  font-size: 1.25rem;
  font-weight: 600;
  color: #1f2937;
  margin: 0;
  line-height: 1;
}
.notice-body {
  margin-top: 0.75rem;
}
.notice-body p {
  margin: 0;
}
.notice.note {
  color: #293df2;
  background-color: rgba(41, 61, 242, 0.15);
}
.notice.abstract {
  color: #0ca68c;
  background-color: rgba(12, 166, 140, 0.15);
}
.notice.info {
  color: #09c3ed;
  background-color: rgba(9, 195, 237, 0.15);
}
.notice.todo {
  color: #8d05a8;
  background-color: rgba(141, 5, 168, 0.15);
}
.notice.tip {
  color: #19cfb0;
  background-color: rgba(25, 207, 176, 0.15);
}
.notice.success {
  color: #04d904;
  background-color: rgba(4, 217, 4, 0.15);
}
.notice.question {
  color: #e38902;
  background-color: rgba(227, 137, 2, 0.15);
}
.notice.warning {
  color: #e38902;
  background-color: rgba(227, 137, 2, 0.15);
}
.notice.failure {
  color: #e31a00;
  background-color: rgba(227, 26, 0, 0.15);
}
.notice.danger {
  color: #e31a00;
  background-color: rgba(227, 26, 0, 0.15);
}
.notice.bug {
  color: #e31a00;
  background-color: rgba(227, 26, 0, 0.15);
}
.notice.example {
  color: #b83acf;
  background-color: rgba(184, 54, 207, 0.15);
}
.notice.quote {
  color: #918e91;
  background-color: rgba(145, 142, 145, 0.15);
}
.dark .notice-head p {
  color: #d1d5db;
}
.table-of-content {
  overflow: hidden;
  border-radius: 0.25rem;
}
.share-icons .share-link {
  height: calc(var(--spacing) * 9);
  width: calc(var(--spacing) * 9);
  border-radius: 0.25rem;
  background-color: var(--color-primary);
  --tw-leading: calc(var(--spacing) * 9);
  line-height: calc(var(--spacing) * 9);
  &:hover {
    @media (hover: hover) {
      background-color: var(--color-primary);
    }
  }
  &:where(.dark, .dark *) {
    background-color: var(--color-darkmode-primary);
  }
  &:where(.dark, .dark *) {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-darkmode-primary);
      }
    }
  }
}
.share-icons .share-icon svg:where(.dark, .dark *) {
  fill: var(--color-darkmode-light);
}
.fediverse-input-wrapper {
  border-radius: 0.25rem;
  background-color: var(--color-body);
  &:where(.dark, .dark *) {
    background-color: var(--color-darkmode-body);
  }
  input {
    border-radius: 0.25rem;
    &:focus {
      border-color: var(--color-primary);
    }
    &:focus {
      --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + 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);
    }
  }
  button {
    border-radius: 0.25rem;
    background-color: var(--color-primary);
    color: var(--color-light);
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-primary);
      }
    }
    &:where(.dark, .dark *) {
      background-color: var(--color-darkmode-primary);
    }
    &:where(.dark, .dark *) {
      color: var(--color-darkmode-light);
    }
    &:where(.dark, .dark *) {
      &:hover {
        @media (hover: hover) {
          background-color: var(--color-darkmode-primary);
        }
      }
    }
  }
}
.notice {
  border-radius: var(--radius-lg);
}
.tab {
  overflow: hidden;
  border-radius: var(--radius-lg);
  border-style: var(--tw-border-style);
  border-width: 1px;
  border-color: var(--color-border);
  &:where(.dark, .dark *) {
    border-color: var(--color-darkmode-border);
  }
}
.tab-nav {
  border-color: var(--color-border);
  background-color: var(--color-light);
  padding-left: calc(var(--spacing) * 4);
  &:where(.dark, .dark *) {
    border-color: var(--color-darkmode-border);
  }
  &:where(.dark, .dark *) {
    background-color: var(--color-darkmode-light);
  }
}
.tab-nav-item {
  padding-inline: calc(var(--spacing) * 8);
  font-size: var(--text-lg) !important;
  line-height: var(--tw-leading, var(--text-lg--line-height)) !important;
  color: var(--color-text-dark);
  &:where(.dark, .dark *) {
    color: var(--color-darkmode-text-dark);
  }
}
.tab-nav-item.active {
  border-color: var(--color-dark);
  &:where(.dark, .dark *) {
    border-color: var(--color-darkmode-primary);
  }
}
.tab-content-panel {
  padding-inline: calc(var(--spacing) * 4);
  padding-top: 0px !important;
}
.accordion {
  margin-bottom: calc(var(--spacing) * 6);
  overflow: hidden;
  border-radius: var(--radius-lg);
  border-style: var(--tw-border-style);
  border-width: 1px;
  border-color: var(--color-border);
  background-color: var(--color-light);
  &:where(.dark, .dark *) {
    border-color: var(--color-darkmode-border);
  }
  &:where(.dark, .dark *) {
    background-color: var(--color-darkmode-light);
  }
}
.accordion-header {
  color: var(--color-text-dark);
  &:where(.dark, .dark *) {
    color: var(--color-darkmode-text-dark);
  }
}
.cookie-box {
  border-radius: var(--radius-lg) !important;
}
.gallery-slider {
  margin-left: 0px !important;
}
@layer components {
  a, .btn, .nav-link, .social-icons li a {
    transition: all 0.2s ease-in-out;
  }
  body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
  .bg-body {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
  }
  .md\:col-6 .bg-body:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 24px -8px var(--gray-a8);
  }
  .card-tags {
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: 0.25rem;
    flex-wrap: wrap;
    font-size: 0.8125rem;
    color: var(--fg-muted);
  }
  .content p {
    margin-bottom: 1.25em;
  }
  .lg\:col-4 a {
    transition: color 0.15s ease, background-color 0.15s ease;
  }
  footer {
    padding-top: 3rem;
    padding-bottom: 2rem;
  }
  .hero-svg, .feature-svg {
    width: 100%;
    height: auto;
    max-width: 100%;
  }
  @keyframes float {
    0%, 100% {
      transform: translateY(0);
    }
    50% {
      transform: translateY(-10px);
    }
  }
  @keyframes pulse-soft {
    0%, 100% {
      opacity: 1;
    }
    50% {
      opacity: 0.6;
    }
  }
  @keyframes draw-line {
    from {
      stroke-dashoffset: 200;
    }
    to {
      stroke-dashoffset: 0;
    }
  }
  @keyframes spin-slow {
    from {
      transform: rotate(0deg);
    }
    to {
      transform: rotate(360deg);
    }
  }
  .animate-float {
    animation: float 4s ease-in-out infinite;
  }
  .animate-float-delayed {
    animation: float 4s ease-in-out 1s infinite;
  }
  .animate-pulse-soft {
    animation: pulse-soft 3s ease-in-out infinite;
  }
  .animate-draw {
    stroke-dasharray: 200;
    animation: draw-line 2s ease-in-out infinite alternate;
  }
  .animate-spin-slow {
    animation: spin-slow 20s linear infinite;
  }
  .content table {
    font-size: 0.9375rem;
  }
  .content th {
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.8125rem;
    letter-spacing: 0.05em;
    color: var(--fg-strong);
  }
  .content :is(th, td) {
    border-color: var(--line) !important;
  }
  .content tbody tr:nth-child(even) {
    background: var(--surface-subtle);
  }
}
@layer base {
  input:where([type='text']),input:where(:not([type])),input:where([type='email']),input:where([type='url']),input:where([type='password']),input:where([type='number']),input:where([type='date']),input:where([type='datetime-local']),input:where([type='month']),input:where([type='search']),input:where([type='tel']),input:where([type='time']),input:where([type='week']),select:where([multiple]),textarea,select {
    appearance: none;
    background-color: #fff;
    border-color: oklch(55.1% 0.027 264.364);
    border-width: 1px;
    border-radius: 0px;
    padding-top: 0.5rem;
    padding-right: 0.75rem;
    padding-bottom: 0.5rem;
    padding-left: 0.75rem;
    font-size: 1rem;
    line-height: 1.5rem;
    --tw-shadow: 0 0 #0000;
    &:focus {
      outline: 2px solid transparent;
      outline-offset: 2px;
      --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-color: #fff;
      --tw-ring-color: oklch(54.6% 0.245 262.881);
      --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
      --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
      box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
      border-color: oklch(54.6% 0.245 262.881);
    }
  }
  input::placeholder,textarea::placeholder {
    color: oklch(55.1% 0.027 264.364);
    opacity: 1;
  }
  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }
  ::-webkit-date-and-time-value {
    min-height: 1.5em;
    text-align: inherit;
  }
  ::-webkit-datetime-edit {
    display: inline-flex;
  }
  ::-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-top: 0;
    padding-bottom: 0;
  }
  select {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
    background-position: right 0.5rem center;
    background-repeat: no-repeat;
    background-size: 1.5em 1.5em;
    padding-right: 2.5rem;
    print-color-adjust: exact;
  }
  select:where([multiple]),select:where([size]:not([size="1"])) {
    background-image: initial;
    background-position: initial;
    background-repeat: unset;
    background-size: initial;
    padding-right: 0.75rem;
    print-color-adjust: unset;
  }
  input:where([type='checkbox']),input:where([type='radio']) {
    appearance: none;
    padding: 0;
    print-color-adjust: exact;
    display: inline-block;
    vertical-align: middle;
    background-origin: border-box;
    user-select: none;
    flex-shrink: 0;
    height: 1rem;
    width: 1rem;
    color: oklch(54.6% 0.245 262.881);
    background-color: #fff;
    border-color: oklch(55.1% 0.027 264.364);
    border-width: 1px;
    --tw-shadow: 0 0 #0000;
  }
  input:where([type='checkbox']) {
    border-radius: 0px;
  }
  input:where([type='radio']) {
    border-radius: 100%;
  }
  input:where([type='checkbox']):focus,input:where([type='radio']):focus {
    outline: 2px solid transparent;
    outline-offset: 2px;
    --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
    --tw-ring-offset-width: 2px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: oklch(54.6% 0.245 262.881);
    --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
    --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
    box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  input:where([type='checkbox']):checked,input:where([type='radio']):checked {
    border-color: transparent;
    background-color: currentColor;
    background-size: 100% 100%;
    background-position: center;
    background-repeat: no-repeat;
  }
  input:where([type='checkbox']):checked {
    background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
    @media (forced-colors: active) {
      appearance: auto;
    }
  }
  input:where([type='radio']):checked {
    background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e");
    @media (forced-colors: active) {
      appearance: auto;
    }
  }
  input:where([type='checkbox']):checked:hover,input:where([type='checkbox']):checked:focus,input:where([type='radio']):checked:hover,input:where([type='radio']):checked:focus {
    border-color: transparent;
    background-color: currentColor;
  }
  input:where([type='checkbox']):indeterminate {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");
    border-color: transparent;
    background-color: currentColor;
    background-size: 100% 100%;
    background-position: center;
    background-repeat: no-repeat;
    @media (forced-colors: active) {
      appearance: auto;
    }
  }
  input:where([type='checkbox']):indeterminate:hover,input:where([type='checkbox']):indeterminate:focus {
    border-color: transparent;
    background-color: currentColor;
  }
  input:where([type='file']) {
    background: unset;
    border-color: inherit;
    border-width: 0;
    border-radius: 0;
    padding: 0;
    font-size: unset;
    line-height: inherit;
  }
  input:where([type='file']):focus {
    outline: 1px solid ButtonText;
    outline: 1px auto -webkit-focus-ring-color;
  }
  @media (min-width: 40rem) {
    :root {
      --container-max-width: 40rem;
    }
  }
  @media (min-width: 48rem) {
    :root {
      --container-max-width: 48rem;
    }
  }
  @media (min-width: 64rem) {
    :root {
      --container-max-width: 64rem;
    }
  }
  @media (min-width: 80rem) {
    :root {
      --container-max-width: 80rem;
    }
  }
  @media (min-width: 96rem) {
    :root {
      --container-max-width: 96rem;
    }
  }
}
@property --tw-font-weight {
  syntax: "*";
  inherits: false;
}
@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-space-x-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-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-duration {
  syntax: "*";
  inherits: false;
}
@property --tw-ease {
  syntax: "*";
  inherits: false;
}
@property --tw-content {
  syntax: "*";
  initial-value: "";
  inherits: false;
}
@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-font-weight: initial;
      --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-space-x-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-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-duration: initial;
      --tw-ease: initial;
      --tw-content: "";
    }
  }
}

/**
 * Auto-generated by scripts/gen_radix_tokens.py from @radix-ui/colors.
 * Do not edit by hand: run `npm run gen:tokens`.
 *
 * Radix step semantics
 *   1  app background          7  element border
 *   2  subtle background       8  hovered border / focus ring
 *   3  element background      9  solid accent
 *   4  hovered element        10  hovered solid accent
 *   5  active element         11  low-contrast text (AA)
 *   6  subtle border          12  high-contrast text
 */

:root {
  color-scheme: light;

  --gray-1: #ffffff;
  --gray-2: #f9f9fb;
  --gray-3: #f0f0f3;
  --gray-4: #e8e8ec;
  --gray-5: #e0e1e6;
  --gray-6: #d9d9e0;
  --gray-7: #cdced6;
  --gray-8: #b9bbc6;
  --gray-9: #8b8d98;
  --gray-10: #80838d;
  --gray-11: #60646c;
  --gray-12: #0a0c10;
  --gray-a1: #00005503;
  --gray-a2: #00005506;
  --gray-a3: #0000330f;
  --gray-a4: #00002d17;
  --gray-a5: #0009321f;
  --gray-a6: #00002f26;
  --gray-a7: #00062e32;
  --gray-a8: #00083046;
  --gray-a9: #00051d74;
  --gray-a10: #00071b7f;
  --gray-a11: #0007149f;
  --gray-a12: #000509e3;

  --accent-1: #fdfdff;
  --accent-2: #f8f8ff;
  --accent-3: #f0f1fe;
  --accent-4: #e6e7ff;
  --accent-5: #dadcff;
  --accent-6: #cbcdff;
  --accent-7: #b8baf8;
  --accent-8: #9b9ef0;
  --accent-9: #4242fa;
  --accent-10: #271ded;
  --accent-11: #4242fa;
  --accent-12: #2c0b8e;
  --accent-a1: #0000ff02;
  --accent-a2: #0000ff07;
  --accent-a3: #0011ee0f;
  --accent-a4: #000bff19;
  --accent-a5: #000eff25;
  --accent-a6: #000aff34;
  --accent-a7: #0008e647;
  --accent-a8: #0008d964;
  --accent-a9: #0000c0a4;
  --accent-a10: #0000b6ae;
  --accent-a11: #0600abac;
  --accent-a12: #000246d8;

  --warm-1: #fffcfe;
  --warm-2: #fef7fb;
  --warm-3: #fee9f5;
  --warm-4: #fbdcef;
  --warm-5: #f6cee7;
  --warm-6: #efbfdd;
  --warm-7: #e7acd0;
  --warm-8: #dd93c2;
  --warm-9: #d6409f;
  --warm-10: #cf3897;
  --warm-11: #c2298a;
  --warm-12: #651249;

  /* Decorative, measured off the reference - see DECORATIVE. */
  --sky-from: #a0d4ee;
  --sky-to: #7dc4e8;
  --sky-subtle: #c5eafc;
  --code-bg: #e8f1fc;

  /* Semantic aliases: change these, not the call sites. */
  --surface: var(--gray-1);
  --surface-subtle: var(--gray-2);
  --surface-raised: var(--gray-3);
  --line: var(--gray-6);
  --line-strong: var(--gray-7);
  --fg-muted: var(--gray-11);
  --fg-strong: var(--gray-12);
  --accent-solid: var(--accent-9);
  --accent-solid-hover: var(--accent-10);
  --accent-text: var(--accent-11);
  --focus-ring: var(--accent-8);
  --on-accent: #ffffff;
}

.dark {
  color-scheme: dark;

  --gray-1: #0d0f12;
  --gray-2: #18191b;
  --gray-3: #212225;
  --gray-4: #272a2d;
  --gray-5: #2e3135;
  --gray-6: #363a3f;
  --gray-7: #43484e;
  --gray-8: #5a6169;
  --gray-9: #696e77;
  --gray-10: #777b84;
  --gray-11: #b0b4ba;
  --gray-12: #e3e6e8;
  --gray-a1: #00000000;
  --gray-a2: #d8f4f609;
  --gray-a3: #ddeaf814;
  --gray-a4: #d3edf81d;
  --gray-a5: #d9edfe25;
  --gray-a6: #d6ebfd30;
  --gray-a7: #d9edff40;
  --gray-a8: #d9edff5d;
  --gray-a9: #dfebfd6d;
  --gray-a10: #e5edfd7b;
  --gray-a11: #f1f7feb5;
  --gray-a12: #fcfdffef;

  --accent-1: #13131e;
  --accent-2: #171625;
  --accent-3: #202248;
  --accent-4: #262a65;
  --accent-5: #303374;
  --accent-6: #3d3e82;
  --accent-7: #4a4a95;
  --accent-8: #5958b1;
  --accent-9: #4242fa;
  --accent-10: #5a5afb;
  --accent-11: #809fff;
  --accent-12: #e6b2ff;
  --accent-a1: #3636fe0e;
  --accent-a2: #564bf916;
  --accent-a3: #525bff3b;
  --accent-a4: #4d58ff5a;
  --accent-a5: #5b62fd6b;
  --accent-a6: #6d6ffd7a;
  --accent-a7: #7777fe8e;
  --accent-a8: #7b7afeac;
  --accent-a9: #6a6afed4;
  --accent-a10: #7d79ffdc;
  --accent-a11: #b1a9ff;
  --accent-a12: #e1e0fffe;

  --warm-1: #191117;
  --warm-2: #21121d;
  --warm-3: #37172f;
  --warm-4: #4b143d;
  --warm-5: #591c47;
  --warm-6: #692955;
  --warm-7: #833869;
  --warm-8: #a84885;
  --warm-9: #d6409f;
  --warm-10: #de51a8;
  --warm-11: #ff8dcc;
  --warm-12: #fdd1ea;

  /* Decorative, measured off the reference - see DECORATIVE. */
  --sky-from: #111b27;
  --sky-to: #265973;
  --sky-subtle: #182939;
  --code-bg: #1a1f23;

  /* Semantic aliases: change these, not the call sites. */
  --surface: var(--gray-1);
  --surface-subtle: var(--gray-2);
  --surface-raised: var(--gray-3);
  --line: var(--gray-6);
  --line-strong: var(--gray-7);
  --fg-muted: var(--gray-11);
  --fg-strong: var(--gray-12);
  --accent-solid: var(--accent-9);
  --accent-solid-hover: var(--accent-10);
  --accent-text: var(--accent-11);
  --focus-ring: var(--accent-8);
  --on-accent: #ffffff;
}
/* ================================================================
   Able-SG visual system
   Palette: Radix Colors (slate grey + iris accent) with the six steps a
   reader actually looks at pinned to values measured off joshwcomeau.com -
   page background, body text, solid accent and section-heading colour. See
   ANCHORS in scripts/gen_radix_tokens.py for the measurements and contrast.
   Every colour below is a token from assets/css/radix-tokens.css, which
   redefines the same names under .dark - so light and dark are one
   stylesheet, not two that drift apart.
   ================================================================ */

/* ========== TYPOGRAPHIC BASE ==========
   Measured off joshwcomeau.com at 1440px on 2026-09-05: one typeface, 18px
   body on a 27px line (1.5), and tracking left alone. hugoplate ships
   letter-spacing: -0.01em on the body, which tightens 18px text that is
   already tight and reads as cramped beside the reference. */
body {
  letter-spacing: normal;
}

/* ========== Smooth scrolling for in-page links ========== */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 70px;
}

/* ========== Focus visibility ==========
   Keyboard focus was whatever the browser defaulted to and disappeared
   entirely on the elements that set outline: none. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
  border-radius: 4px;
}

/* ========== Motion ==========
   Everything here is decoration; readers who ask for less motion get none. */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ========== Draft post badge ========== */
.draft-badge {
  display: inline-block;
  padding: 2px 10px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--on-accent);
  background: var(--accent-9);
  border-radius: 4px;
  vertical-align: middle;
}

/* ========== READING COLUMN ==========
   Body copy was running 1076px wide at 16px - about 135 characters per line,
   nearly double the 45-75 range readers can track. Cap the measure and centre
   it; full-bleed children (images, code, tables) opt back out below. 43rem is
   the reference's measured 686px column, and a fixed rem beats 68ch because
   ch drifts with whatever font actually loads. The root font-size is 18px
   (html { font-size: var(--text-base) }), so 37.5rem is 675px - measured at
   76 characters per line with Figtree at 18px, which is the top of the range
   readers track without losing the return sweep. */

.content {
  max-width: 37.5rem;
  margin-left: auto;
  margin-right: auto;
}

.content > figure,
.content > .my-gallery,
.content > table,
.content > .table-of-content,
.content > details {
  max-width: none;
}

/* Paragraph rhythm: 18px on 27px, the reference's measure of a readable
   block. The theme's 1.8 spread the same words over a third more height. */
.content p,
.content li {
  line-height: 1.5;
}

/* ========== HEADING HIERARCHY - ranked by size, not by hue ==========
   Every level used to get its own colour (h1 indigo, h2 cyan->violet gradient,
   h3 violet, h4 blue, h5 teal, h6 slate) while the sizes sat only 1.2x apart,
   so the page read as noisy rather than structured - and three of those hues
   failed WCAG AA. Size and weight carry the rank now. Violet was kept on h3 for
   a while, but the About page renders h3-class and h2-class headings side by
   side at the same visual rank, and two colours there read as a mistake rather
   than a hierarchy.

   The reference does colour exactly one level - h2, in a deep indigo - and
   nothing else, so section headings are the one place a hue carries rank here
   too. Sizes and line-heights below are its measured values: h1 40/60, h2
   32/48, h3 24/36, each on a 1.5 line. The root font-size here is 18px, not
   16, so the rem numbers are those pixels divided by 18. */

.content h1,
.content .h1 {
  font-size: 2.222rem;
  line-height: 1.5;
  font-weight: 500;
  letter-spacing: normal;
  color: var(--fg-strong);
}

.content h2,
.content .h2 {
  font-size: 1.778rem;
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: normal;
  color: var(--accent-12);
  margin-top: 1.5em;
}

.content h3,
.content .h3 {
  font-size: 1.333rem;
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: normal;
  color: var(--fg-strong);
  margin-top: 1.5em;
}

.content h4,
.content .h4 {
  font-size: 1.111rem;
  line-height: 1.4;
  font-weight: 600;
  color: var(--fg-strong);
}

/* h5/h6 sit at body size, so case and tracking - not another colour - tell
   them apart from the paragraphs around them. */
.content h5,
.content .h5 {
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--fg-strong);
}

.content h6,
.content .h6 {
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--fg-muted);
}

/* Anchor links beside headings, revealed on hover - the "#" affordance that
   makes a long post linkable without cluttering it. */
.content :is(h2, h3, h4) > a[href^="#"]::before {
  content: "#";
  position: absolute;
  margin-left: -1em;
  color: var(--accent-8);
  opacity: 0;
  transition: opacity 0.15s ease;
}

.content :is(h2, h3, h4):hover > a[href^="#"]::before {
  opacity: 1;
}

/* Non-content heading defaults */
.h2[class] {
  color: var(--fg-strong);
}

/* ========== BOLD & ITALIC ==========
   Bold was violet and italic cyan (3.68:1 - below AA), which put two more
   competing colours inside every paragraph. Emphasis is now weight and slant. */

.content strong,
.content b {
  color: var(--fg-strong);
  font-weight: 700;
}

.content em,
.content i {
  color: inherit;
  font-style: italic;
}

/* ========== Modern bullet points ========== */

.content ul {
  list-style: none !important;
  padding-left: 0 !important;
}

.content ul > li {
  position: relative;
  padding-left: 1.5em;
}

.content ul > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.62em;
  width: 7px;
  height: 7px;
  border-radius: 2px;
  background: var(--accent-9);
  transform: rotate(45deg);
}

.content ol > li::marker {
  color: var(--accent-text);
  font-weight: 700;
}

/* ========== Table of Contents ========== */

details.table-of-content {
  background: var(--surface-subtle) !important;
  border: 1px solid var(--line) !important;
  border-radius: 12px !important;
  padding: 1.25rem 1.5rem !important;
  margin-bottom: 2rem;
  position: relative;
}

details.table-of-content summary {
  font-weight: 600;
  color: var(--fg-strong);
  /* The table-of-contents module hard-codes #fff on #555 here and #f7f7f7 /
     #333 on the panel below. Those are the only colours it ships, so they have
     to be answered declaration for declaration. */
  background-color: transparent;
  padding: 0;
  margin-bottom: 0.75rem !important;
  cursor: pointer;
  font-size: 0.95rem;
}

details.table-of-content nav#TableOfContents,
details.table-of-content #TableOfContents {
  background-color: transparent;
  padding: 0;
}

/* Nuke ALL underlines in TOC - target every possible selector */
details.table-of-content a,
details.table-of-content a:link,
details.table-of-content a:visited,
details.table-of-content a:hover,
details.table-of-content a:focus,
details.table-of-content a:active,
details.table-of-content nav a,
#TableOfContents a,
#TableOfContents a:link,
#TableOfContents a:visited,
#TableOfContents a:hover,
#TableOfContents a:active,
.content details.table-of-content a,
.content #TableOfContents a,
.content nav#TableOfContents a,
.prose details.table-of-content a,
.prose #TableOfContents a {
  text-decoration: none !important;
  text-decoration-line: none !important;
  text-underline-offset: unset !important;
  border-bottom: none !important;
  border: none !important;
  box-shadow: none !important;
}

/* h2-level TOC links carry the page's own heading colour. */
#TableOfContents > ol > li > a,
details.table-of-content nav > ol > li > a,
.content #TableOfContents > ol > li > a {
  color: var(--fg-strong) !important;
  font-weight: 600;
  transition: color 0.15s ease;
}

#TableOfContents > ol > li > a:hover,
details.table-of-content nav > ol > li > a:hover,
.content #TableOfContents > ol > li > a:hover {
  color: var(--accent-text) !important;
}

/* h3-level TOC links: the single accent, one step quieter. */
#TableOfContents > ol > li > ol > li > a,
details.table-of-content nav > ol > li > ol > li > a,
.content #TableOfContents > ol > li > ol > li > a {
  color: var(--fg-muted) !important;
  -webkit-text-fill-color: currentColor !important;
  background: none !important;
  font-weight: 400;
  transition: color 0.15s ease;
}

#TableOfContents > ol > li > ol > li > a:hover,
details.table-of-content nav > ol > li > ol > li > a:hover,
.content #TableOfContents > ol > li > ol > li > a:hover {
  color: var(--accent-text) !important;
}

details.table-of-content ol,
details.table-of-content ul {
  padding-left: 1.25rem !important;
}

details.table-of-content li {
  padding: 0.2rem 0;
}

details.table-of-content ul {
  list-style: disc !important;
}

details.table-of-content ul > li::before {
  display: none !important;
}

/* ========== Content links ==========
   Measured on the reference: a prose link is the body text colour at weight
   500 with a solid underline - the accent appears only on hover. Colouring
   every link indigo, as this did, put a second hue in every paragraph and
   left the page reading as a link list; the underline alone is the
   affordance, and it survives being read at a glance. */

.content a:not(.btn):not(.tag-pill) {
  color: var(--fg-strong);
  font-weight: 500;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
  text-decoration-color: var(--accent-a8);
  border-bottom: none;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.content a:not(.btn):not(.tag-pill):hover {
  color: var(--accent-text);
  text-decoration-color: var(--accent-9);
}

/* ========== Code blocks ==========
   Deliberately dark in both themes: the syntax highlighting is tuned for a
   dark ground, and a code block reads as an inset object either way. */
.content pre:not(.mermaid) {
  background: #1e1e2e !important;
  border: 1px solid #313244;
  border-radius: 10px !important;
  padding: 1.25rem !important;
}

.content pre:not(.mermaid) code {
  color: #cdd6f4 !important;
  background: transparent !important;
}

/* ========== Mermaid diagrams ========== */
.content pre.mermaid {
  background: transparent !important;
  border: 1px solid var(--line) !important;
  border-radius: 10px !important;
  padding: 1.25rem !important;
  text-align: center;
}

/* Inline code - the reference's pale blue plate with the body text colour on
   it, not accent-on-accent: an indigo word inside an indigo-tinted box is the
   lowest-contrast thing on the page. --code-bg is measured, see the generator. */
.content :not(pre) > code {
  color: var(--fg-strong) !important;
  background: var(--code-bg) !important;
  padding: 0.15em 0.4em;
  border-radius: 4px;
  font-size: 0.9em;
}

/* ========== Horizontal rules ========== */

.content hr {
  border: none !important;
  border-top: 1px solid var(--line) !important;
  height: 0;
  margin: 3rem 0;
}

/* ========== Selection ========== */

::selection {
  background-color: var(--accent-a5);
  color: inherit;
}

/* ========== Frosted glass navbar - fixed + smart hide (bypasses Tailwind) ========== */

.header {
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  backdrop-filter: blur(14px);
  background: color-mix(in srgb, var(--surface) 88%, transparent) !important;
  border-bottom: 1px solid var(--line);
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s ease;
  z-index: 50;
}

body {
  padding-top: 52px;
}

.header--hidden {
  transform: translateY(-100%);
}

.header--visible {
  transform: translateY(0);
  box-shadow: 0 2px 16px var(--gray-a4);
}

/* ========== Post cards ========== */

.post-card {
  border-radius: 14px;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.post-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px -12px var(--gray-a8);
  border-color: var(--accent-8) !important;
}

/* ========== Tag cloud ========== */

/* Same card as the reading rail: surface, hairline and 14px radius. It used
   Tailwind's `rounded` (4px) next to 14px post cards, which is what made it
   read as a detached box rather than part of the page. */
.tag-cloud {
  background: var(--surface-subtle) !important;
  border: 1px solid var(--line);
  border-radius: 14px;
}

.tag-pill {
  display: inline-block;
  margin: 2px;
  padding: 3px 10px;
  border-radius: 20px;
  font-family: "Outfit", sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.02em;
  text-decoration: none !important;
  border: 1px solid transparent !important;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  cursor: pointer;
}

/* Four popularity bands, separated by colour and weight only. Sizing them up
   by band broke long hyphenated tags across lines in a ~230px rail, so every
   pill keeps the base size and the ramp runs grey -> quiet accent -> solid
   accent instead. */
.tag-pill.tag-t1 {
  background: var(--gray-a2);
  color: var(--fg-muted);
  font-weight: 400;
}

.tag-pill.tag-t2 {
  background: var(--gray-a4);
  color: var(--fg-strong);
  font-weight: 500;
}

.tag-pill.tag-t3 {
  background: var(--accent-a4);
  color: var(--accent-text);
  font-weight: 600;
  border-color: var(--accent-a6) !important;
}

.tag-pill.tag-t4 {
  background: var(--accent-solid);
  color: var(--on-accent);
  font-weight: 700;
  border-color: var(--accent-solid) !important;
}

.tag-pill.tag-detail {
  background: var(--accent-a3);
  color: var(--accent-text);
  font-weight: 500;
}

.tag-pill:hover {
  background: var(--accent-a5);
  color: var(--accent-12);
  border-color: var(--accent-a8) !important;
}

/* The generic hover lightens the pill, which would invert the solid top band
   into something quieter than its resting state. */
.tag-pill.tag-t4:hover {
  background: var(--accent-10);
  color: var(--on-accent);
  border-color: var(--accent-10) !important;
}

.tag-pill.active {
  background: var(--accent-solid) !important;
  color: var(--on-accent) !important;
  font-weight: 600;
  outline: 2px solid var(--accent-a8);
  outline-offset: 2px;
}

.tag-count {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 7px;
  border-radius: 10px;
  font-size: 0.72rem;
  font-weight: 600;
  background: var(--accent-a4);
  color: var(--accent-text);
}

/* ========== Hero ========== */

.hero-gradient {
  background: linear-gradient(to bottom, var(--sky-subtle), var(--surface));
}

/* Page titles are solid --fg-strong. The gradient fill that used to live here
   painted the glyphs with the background (-webkit-text-fill-color:
   transparent), which is two hues of noise on the loudest element and nothing
   at all for forced-colors mode to substitute. */
/* The title is the first line of the article, not a banner over it: same
   left edge as the paragraph it introduces. Below the reading-rail breakpoint
   it also keeps the measure, because there the body is centred in the column. */
.post-header {
  max-width: 37.5rem;
  margin-left: auto;
  margin-right: auto;
}

/* Once the rail appears the title band spans the article and the rail, so a
   long title uses the full width instead of wrapping in a 600px slot with an
   empty column beside it. */
@media (min-width: 1024px) {
  .post-header {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
  }
}

/* The size has to land on the h1 itself: .hero-title is an inline span, and
   an inline box cannot shrink the block line box its parent sets. The h1 was
   still 60px/75px underneath, which is what spread the two title lines. */
.post-header h1,
.hero-title {
  font-size: 2.222rem;
  line-height: 1.25;
  font-weight: 500;
  letter-spacing: normal;
  color: var(--fg-strong);
}

.post-header h1 {
  padding: 0;
  margin-inline: 0;
}

.hero-glow-btn {
  display: inline-block;
  background: var(--accent-solid);
  color: var(--on-accent);
  padding: 0.75rem 2rem;
  border-radius: 8px;
  font-weight: 600;
  transition: background-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
  box-shadow: 0 6px 20px -8px var(--accent-a8);
}

.hero-glow-btn:hover {
  background: var(--accent-solid-hover);
  box-shadow: 0 10px 28px -8px var(--accent-a8);
  transform: translateY(-2px);
}

/* The reference's page is white but never flat: a sky sits behind the reading
   column. Ours has no such margin to show it in, so the hero band carries it -
   a soft sky fading into the page, which is the one place colour belongs
   before the reader reaches the words. */
.hero-band {
  background: linear-gradient(to bottom, var(--sky-subtle), var(--surface));
  border-bottom: none;
}

.hero-subtitle {
  color: var(--fg-muted);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  font-size: 0.85rem;
  font-weight: 600;
}

.profile-ring {
  border: 3px solid transparent;
  background-image: linear-gradient(var(--surface), var(--surface)),
    linear-gradient(135deg, var(--accent-8), var(--accent-10));
  background-origin: border-box;
  background-clip: padding-box, border-box;
  border-radius: 50%;
}

.credential-chip {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 16px;
  font-size: 0.8rem;
  font-weight: 500;
  background: var(--accent-a3);
  color: var(--accent-text);
  border: 1px solid var(--accent-a6);
  transition: background-color 0.2s ease, transform 0.2s ease;
}

.credential-chip:hover {
  background: var(--accent-a5);
  transform: translateY(-1px);
}

/* ========== Buttons ========== */

.btn-primary,
a.btn-primary {
  background: var(--accent-solid) !important;
  border: 1px solid transparent !important;
  color: var(--on-accent) !important;
  transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.btn-primary:hover,
a.btn-primary:hover {
  background: var(--accent-solid-hover) !important;
  box-shadow: 0 8px 24px -10px var(--accent-a8);
  transform: translateY(-2px);
}

.btn-outline-primary {
  border-color: var(--accent-a8) !important;
  color: var(--accent-text) !important;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.btn-outline-primary:hover {
  background: var(--accent-solid) !important;
  color: var(--on-accent) !important;
  border-color: transparent !important;
  transform: translateY(-2px);
}

/* ========== Blockquote ========== */

.content blockquote {
  border-left: 3px solid var(--accent-9) !important;
  background: var(--accent-a2) !important;
  border-radius: 0 8px 8px 0;
  color: var(--fg-strong);
}

/* ========== Card tags ========== */

.card-tags a.tag {
  color: var(--fg-muted) !important;
  text-decoration: none !important;
  border: none !important;
  transition: color 0.15s ease;
  display: inline-block;
  min-height: 24px;
  padding: 2px 4px;
  line-height: 20px;
}

.card-tags a.tag:hover {
  color: var(--accent-text) !important;
}

.card-tags i {
  color: var(--accent-text);
}

.tag-more {
  white-space: nowrap;
}

/* ========== Social icons ========== */

.social-icons li a {
  background: var(--accent-solid) !important;
  color: var(--on-accent) !important;
  transition: background-color 0.2s ease, transform 0.2s ease;
}

.social-icons li a:hover {
  background: var(--accent-solid-hover) !important;
  transform: translateY(-2px);
}

/* ========== Post tags list on single post ========== */

.post-tags {
  list-style: none !important;
  padding-left: 0 !important;
}

.post-tags li::before {
  display: none !important;
}

/* ========== Gallery (My Growth Journey) - compact, preserve ratio ========== */

.gallery {
  display: block !important;
  text-align: center !important;
  font-size: 0 !important;
  padding: 0.5rem 0 !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.gallery::after {
  display: none !important;
}

.gallery .gallery-item,
.gallery.zoomable .gallery-item {
  display: inline-block !important;
  width: fit-content !important;
  margin: 4px !important;
  padding: 0 !important;
  vertical-align: middle !important;
  font-size: 1rem;
  overflow: visible !important;
}

.gallery .gallery-item a {
  display: block !important;
  width: fit-content !important;
  line-height: 0;
}

.gallery .gallery-item img {
  height: 100px !important;
  width: auto !important;
  max-width: calc(50vw - 24px) !important;
  object-fit: contain !important;
  border-radius: 6px;
  border: 1px solid var(--line);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

@media (min-width: 640px) {
  .gallery .gallery-item img {
    height: 120px !important;
    max-width: none !important;
  }
}

@media (min-width: 768px) {
  .gallery .gallery-item img {
    height: 150px !important;
  }
}

@media (min-width: 1024px) {
  .gallery .gallery-item img {
    height: 180px !important;
  }
}

.gallery .gallery-item img:hover {
  transform: scale(1.04);
  box-shadow: 0 6px 20px -8px var(--gray-a8);
}

/* ========== Section headings on list/about pages ==========
   These used to be cyan->violet gradient text, which computed to
   color: rgba(0,0,0,0) and vanished under forced-colors. */

.section-sm h2 {
  color: var(--fg-strong) !important;
  font-weight: 700 !important;
}

.section-sm p {
  color: var(--fg-strong);
}

.section-sm li {
  color: var(--fg-strong);
}

.section-sm .fa-check {
  color: var(--accent-text) !important;
}

.content img {
  margin-top: 0.25rem;
  margin-bottom: 0.25rem;
}

/* ========== Post & card metadata ==========
   Cards carried no date, author or reading time, so a reader could not tell a
   2023 post from a 2026 one - the fastest way to lose trust on AI topics. */

.card-meta,
.post-byline {
  color: var(--fg-muted);
  font-weight: 500;
}

/* ========== Post list ==========
   The homepage is the archive now, so the list itself has to read well:
   a hairline between entries, nothing else. */

.post-list-item + .post-list-item {
  border-top: 1px solid var(--line);
  padding-top: 2rem;
  margin-top: 2rem;
}

/* ========== Theme switcher (light / system / dark) ========== */

.theme-switcher {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface-subtle);
}

.theme-switcher button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  color: var(--fg-muted);
  background: transparent;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.theme-switcher button:hover {
  color: var(--fg-strong);
  background: var(--gray-a3);
}

.theme-switcher button[aria-checked="true"] {
  color: var(--accent-text);
  background: var(--accent-a4);
}

/* ========== Forced-colors fallback ==========
   Nothing paints text with a background any more, so there is no disappearing
   heading to rescue. What still needs help is state carried by colour alone. */

@media (forced-colors: active) {
  .theme-switcher button[aria-checked="true"] {
    outline: 2px solid CanvasText;
  }
}

/* ========== Icon fonts are not italic ==========
   Font Awesome ships in <i>, which the UA styles italic, and the icon fonts
   carry no italic face - so the browser synthesises one and skews the glyph.
   On the About page that turned the LinkedIn mark standing in for the "in" of
   "Exclusive info" into a leaning smudge. */

i[class*="fa-"],
i.fa,
i.fab,
i.fas,
i.far {
  font-style: normal;
}

/* ========== About: prose + rail ==========
   The page used to be three layouts stacked: a hero on one grid, an article
   whose right column ran out after the QR code, a full-bleed gallery cutting
   the reading column in half, and three alternating bands pasted in from the
   old homepage on a fourth grid. One container and two columns now. */

.about-main .content {
  margin-left: 0;
  max-width: none;
}

.about-rail {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

@media (min-width: 1024px) {
  .about-rail {
    position: sticky;
    top: 84px;
    align-self: flex-start;
    max-height: calc(100vh - 100px);
    overflow-y: auto;
  }
}

.rail-card {
  background: var(--surface-subtle);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 1.25rem;
}

.rail-card h3 {
  color: var(--fg-strong);
  font-weight: 600;
}

.rail-qr {
  width: 180px;
  height: auto;
  border-radius: 10px;
  border: 1px solid var(--line);
}

/* The certificates are wide and mismatched; a two-up grid of same-shaped
   boxes reads as one wall of evidence instead of eight ragged strips. */
.journey-rail .gallery {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
  padding: 0 !important;
  text-align: left !important;
}

.journey-rail .gallery .gallery-item,
.journey-rail .gallery.zoomable .gallery-item {
  display: block !important;
  width: auto !important;
  margin: 0 !important;
}

.journey-rail .gallery .gallery-item a {
  width: auto !important;
}

.journey-rail .gallery .gallery-item img {
  width: 100% !important;
  height: auto !important;
  max-width: none !important;
  aspect-ratio: 16 / 10;
  object-fit: contain;
  background: var(--surface);
  padding: 4px;
}

/* ========== About: what I write about ========== */

.topic-card {
  height: 100%;
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 1.5rem;
  transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.topic-card:hover {
  border-color: var(--accent-8);
  box-shadow: 0 12px 28px -12px var(--gray-a8);
  transform: translateY(-4px);
}

.topic-card-art {
  width: 100%;
  max-width: 100%;
  height: 280px;
  object-fit: contain;
  margin-bottom: 1.25rem;
}

.topic-card h3 {
  color: var(--fg-strong);
  font-weight: 700;
}

.topic-points {
  list-style: none;
  padding-left: 0;
  margin-top: auto;
}

.topic-points li {
  position: relative;
  padding-left: 1.6rem;
  margin-bottom: 0.6rem;
  font-size: 0.95rem;
  line-height: 1.5;
}

.topic-points i {
  position: absolute;
  left: 0;
  top: 0.3em;
  color: var(--accent-text);
  font-size: 0.85em;
}

/* The body is the flex column the card used to be, so the bullet list still
   sits at the bottom of the card once the art moves beside it. */
.topic-card-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-width: 0;
}

/* At tablet width three cards across leave each one a ~200px column - too
   narrow for the art and the bullets both. One card per row, art on one half
   and the text on the other, until lg brings back the three-up grid. */
@media (min-width: 768px) and (max-width: 1023px) {
  .topic-col {
    width: 100%;
    max-width: 100%;
  }
  .topic-card {
    flex-direction: row;
    align-items: center;
    gap: 1.5rem;
  }
  /* Half each, minus its share of the gap, so the two halves plus the gap
     still add up to the card's width instead of overflowing it. */
  .topic-card-art {
    flex: 0 0 calc(50% - 0.75rem);
    width: calc(50% - 0.75rem);
    /* Height-constrained, not width-constrained: at 240px the art drew ~230px
       wide inside a 364px half and the column read as mostly empty. */
    height: 340px;
    margin-bottom: 0;
  }
  .topic-card-body {
    flex: 1 1 0;
  }
  .topic-points {
    margin-top: 0;
  }
}

.topics {
  background: var(--surface-subtle);
  border-block: 1px solid var(--line);
}

/* ========== Post reading rail ========== */

/* Below lg the rail is not a column at all: display:contents dissolves it so
   its two blocks become flex items of the same .row as the article, which lets
   the contents sit above the post and the tags and sharing below it without a
   second copy of the table of contents in the DOM. .row > * does not reach
   them - it is a child combinator on the dissolved element - so they carry the
   gutter padding themselves. */
@media (max-width: 1023px) {
  .post-rail {
    display: contents;
  }
  .post-rail > * {
    box-sizing: border-box;
    width: 100%;
    padding-inline: calc(var(--bs-gutter-x) / 2);
  }
  .post-rail-toc {
    order: -1;
  }
  .post-main {
    order: 0;
  }
  .post-rail-meta {
    order: 1;
  }
}

@media (min-width: 1024px) {
  /* No max-height: a capped rail turns the contents into a second scrollbar
     inside the page, which hides its own tail and makes the reader scroll a
     box to find out what the post contains. The rail runs its full length and
     rails.js pulls the sticky offset negative when it is taller than the
     window, so scrolling walks past the whole list once and then pins it. */
  .post-rail {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    position: sticky;
    top: 84px;
    align-self: flex-start;
  }
  /* Two columns, so the prose starts at the column's edge instead of being
     centred in it - otherwise the measure floats away from the hero title. */
  .post-main .content {
    margin-left: 0;
  }
  .post-rail details.table-of-content {
    width: 100%;
    margin-bottom: 0;
  }
}

.rail-card-title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--fg-strong);
  margin-bottom: 0.75rem;
}

.post-rail .post-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding-left: 0;
  margin: 0;
  list-style: none;
}

.post-rail .share-icons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding-left: 0;
  margin: 0;
  list-style: none;
}

/* ========== Page gutters ==========
   The theme gives .container a flat px-4 at every width. Above the lg
   breakpoint the max-width only kicks in at 1280px, so between 1024 and
   1280 the text ran to within 13px of the window edge. Gutters now grow
   with the viewport; above 1280px the centring margins take over. */
@media (min-width: 768px) {
  .container {
    padding-inline: 1.5rem;
  }
}

@media (min-width: 1024px) {
  .container {
    padding-inline: 2.25rem;
  }
}

/* ========== Post card titles ==========
   The card heading inherited the page h4 (35px/44px), which let a long
   title run to four lines and turned the grid into a wall of headlines.
   At 1.2rem every current title fits in two lines, and the clamp holds
   the promise for titles written later. */
.post-card h4 {
  font-size: 1.2rem;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* The card title is the one link in the card that matters, so it carries
   the accent rather than the body colour - the date, tags and summary stay
   quiet underneath it. */
.post-card h4 a,
.post-card h4 a:link,
.post-card h4 a:visited {
  color: var(--accent-text);
  transition: color 0.2s ease;
}

.post-card h4 a:hover,
.post-card:hover h4 a {
  color: var(--accent-12);
}

/* ========== Table of contents as a tree ==========
   Nested headings were only indented, so a three-level post read as one
   ragged list. Every level now hangs off a guide line with an elbow into the
   item, which is the shape readers already know from a file tree. The guide
   starts under the summary, so "Table of Contents" reads as the root the
   top-level headings branch from. */
details.table-of-content nav {
  font-size: 0.85rem;
  line-height: 1.45;
}

details.table-of-content nav ol {
  list-style: none !important;
  margin: 0 0 0 0.4rem;
  padding-left: 0.85rem !important;
  border-left: 1px solid var(--line-strong);
}

/* Pull the trunk up under the summary so the tree visibly hangs off its root
   instead of floating below a gap. */
details.table-of-content nav > ol {
  margin-top: -0.55rem;
  padding-top: 0.55rem;
}

details.table-of-content nav ol ol {
  margin-top: 0.15rem;
}

details.table-of-content nav ol > li {
  position: relative;
  padding: 0.15rem 0;
}

details.table-of-content nav ol > li::before {
  content: "";
  position: absolute;
  left: -0.85rem;
  top: 0.85em;
  width: 0.55rem;
  height: 1px;
  background: var(--line-strong);
}

/* The last child's guide line stops at its own elbow instead of running
   past the final item. */
details.table-of-content nav ol > li:last-child::after {
  content: "";
  position: absolute;
  left: calc(-0.85rem - 1px);
  top: calc(0.85em + 1px);
  bottom: 0;
  width: 1px;
  background: var(--surface-subtle);
}

details.table-of-content nav ol ol ol {
  border-left-style: dashed;
}

/* ========== Listing sidebar rail ========== */
@media (min-width: 1024px) {
  .sidebar-rail {
    position: sticky;
    top: 84px;
    align-self: flex-start;
  }

  /* rails.js pulls this offset negative when the rail is taller than the
     window, so scrolling down walks through the whole list before it pins
     instead of cutting it off at a fixed top offset. */
}

/* ========== Theme-aware images ==========
   Post covers ship as a light original plus a `-dark` variant generated by
   scripts/gen-dark-images.py. Both are in the DOM and both download with the
   page - the inactive one is transparent, not display:none, so it still counts
   as in-viewport for the lazy loader and flipping the theme never waits on a
   fetch. Images with no `-dark` sibling render as a single <img> and skip all
   of this. */

.themed-img {
  position: relative;
  display: block;
}

.themed-img > img {
  display: block;
  width: 100%;
  transition: opacity 0.2s ease;
}

.themed-img > .themed-img-dark {
  position: absolute;
  inset: 0;
  height: 100%;
  /* The light copy keeps whatever margin its context gives it and the wrapper
     collapses to that box; the absolutely positioned copy must not add its own
     on top or it lands a few pixels low. */
  margin: 0;
  opacity: 0;
}

html.dark .themed-img > .themed-img-light {
  opacity: 0;
}

html.dark .themed-img > .themed-img-dark {
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .themed-img > img {
    transition: none;
  }
}
