@layer platform-base, authored, platform;
@import url("design.css") layer(authored);
@font-face { font-family: "Syne"; src: url("fonts/syne-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Syne"; src: url("fonts/syne-latin-700-normal.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Syne"; src: url("fonts/syne-latin-800-normal.woff2") format("woff2"); font-weight: 800; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter"; src: url("fonts/inter-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter"; src: url("fonts/inter-latin-600-normal.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "IBM Plex Mono"; src: url("fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@layer platform-base {
  .df-socials[data-df-look] { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: var(--df-socials-gap, .75rem); padding: 0; margin: 0; }
  .df-socials[data-df-look] .df-social { margin: 0; padding: 0; }
  .df-socials[data-df-look] .df-social-link { gap: .55em; padding: .6em 1.1em; border: 2px solid currentColor; border-radius: 999px; color: inherit; background: transparent; font: inherit; font-weight: 700; line-height: 1.1; text-decoration: none; transition: transform .18s ease, background-color .18s ease, color .18s ease, box-shadow .18s ease; }
  .df-socials[data-df-look] .df-social-link:hover, .df-socials[data-df-look] .df-social-link:focus-visible { transform: translateY(-2px); }
  .df-socials[data-df-look] .df-social-icon { width: 1.25em; height: 1.25em; }
  .df-socials[data-df-look="icon"] .df-social-link { padding: .7em; }
}
@layer platform-base {
  .df-chart { margin: 0; align-items: center; gap: .9rem; }
  .df-chart-frame { border-radius: 12px; overflow: hidden; background: transparent; }
  .df-chart-link { padding: .6em 1.2em; border: 2px solid currentColor; border-radius: 999px; color: inherit; background: transparent; font: inherit; font-weight: 700; line-height: 1.1; text-decoration: none; }
}
@layer platform {
  html, body { margin: 0; padding: 0; }
  #site { position: relative; min-height: 100vh; overflow-x: clip; }
  /* #site must never become the containing block of the fixed Back to Top button. */
  #site { transform: none !important; translate: none !important; rotate: none !important; scale: none !important; filter: none !important; backdrop-filter: none !important; perspective: none !important; contain: none !important; container-type: normal !important; will-change: auto !important; content-visibility: visible !important; }
  .df-test-banner { display: block !important; margin: 0 !important; padding: 8px 16px !important; background: #111 !important; color: #fff !important; text-align: center !important; font: 700 12px/1.25 ui-sans-serif, system-ui, sans-serif !important; letter-spacing: .04em !important; opacity: 1 !important; visibility: visible !important; filter: none !important; transform: none !important; translate: none !important; rotate: none !important; scale: none !important; zoom: normal !important; clip-path: none !important; mask: none !important; -webkit-mask: none !important; text-transform: none !important; font-variant: normal !important; font-style: normal !important; text-indent: 0 !important; pointer-events: auto !important; position: relative !important; z-index: 60 !important; box-sizing: border-box !important; text-shadow: none !important; mix-blend-mode: normal !important; content-visibility: visible !important; }
  [data-df-control] *::before, [data-df-control] *::after, [data-df-control]::before, [data-df-control]::after { content: none !important; display: none !important; }
  [data-df-control] * { opacity: 1 !important; visibility: visible !important; filter: none !important; transform: none !important; translate: none !important; rotate: none !important; scale: none !important; zoom: normal !important; clip-path: none !important; mask: none !important; -webkit-mask: none !important; text-transform: none !important; font-variant: normal !important; font-style: normal !important; text-indent: 0 !important; pointer-events: auto !important; position: relative !important; z-index: 60 !important; box-sizing: border-box !important; text-shadow: none !important; mix-blend-mode: normal !important; content-visibility: visible !important; position: static !important; z-index: auto !important; }

  .df-ca { display: inline-grid !important; max-width: 100% !important; opacity: 1 !important; visibility: visible !important; filter: none !important; transform: none !important; translate: none !important; rotate: none !important; scale: none !important; zoom: normal !important; clip-path: none !important; mask: none !important; -webkit-mask: none !important; text-transform: none !important; font-variant: normal !important; font-style: normal !important; text-indent: 0 !important; pointer-events: auto !important; position: relative !important; z-index: 60 !important; box-sizing: border-box !important; text-shadow: none !important; mix-blend-mode: normal !important; content-visibility: visible !important; font-family: var(--df-ca-font, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace) !important; font-size: clamp(12px, var(--df-ca-size, 16px), 28px) !important; font-weight: 500 !important; line-height: 1.35 !important; letter-spacing: 0 !important; word-spacing: 0 !important; color: var(--df-ca-color, inherit) !important; background: var(--df-ca-bg, transparent) !important; padding: .35em .6em !important; border-radius: var(--df-control-radius, 8px) !important; direction: ltr !important; unicode-bidi: isolate !important; white-space: normal !important; overflow-wrap: anywhere !important; text-align: var(--df-ca-align, center) !important; }
  .df-ca > span { grid-area: 1 / 1 !important; display: block !important; }
  .df-ca > .df-ca-sizer { visibility: hidden !important; }

  .df-copy, .df-dest { display: inline-grid !important; place-items: center !important; opacity: 1 !important; visibility: visible !important; filter: none !important; transform: none !important; translate: none !important; rotate: none !important; scale: none !important; zoom: normal !important; clip-path: none !important; mask: none !important; -webkit-mask: none !important; text-transform: none !important; font-variant: normal !important; font-style: normal !important; text-indent: 0 !important; pointer-events: auto !important; position: relative !important; z-index: 60 !important; box-sizing: border-box !important; text-shadow: none !important; mix-blend-mode: normal !important; content-visibility: visible !important; appearance: none !important; margin: 0 !important; min-height: 44px !important; min-width: 44px !important; padding: .65em 1.15em !important; font-family: var(--df-control-font, inherit) !important; font-size: clamp(14px, var(--df-control-size, 16px), 24px) !important; font-weight: 700 !important; line-height: 1.15 !important; letter-spacing: normal !important; color: var(--df-control-color, #ffffff) !important; background: var(--df-control-bg, #111111) !important; border: 2px solid var(--df-control-border, transparent) !important; border-radius: var(--df-control-radius, 999px) !important; text-decoration: none !important; cursor: pointer !important; white-space: nowrap !important; overflow: visible !important; }
  .df-copy[disabled], .df-dest[disabled], .df-dest[aria-disabled="true"] { cursor: not-allowed !important; opacity: .72 !important; }
  .df-copy:focus-visible, .df-dest:focus-visible { outline: 3px solid var(--df-control-color, #ffffff) !important; outline-offset: 3px !important; }
  .df-labels { display: inline-grid !important; }
  .df-labels > .df-l { grid-area: 1 / 1 !important; visibility: hidden !important; }
  .df-copy[data-state="pending"] .df-l-pending, .df-copy[data-state="idle"] .df-l-idle, .df-copy[data-state="copied"] .df-l-copied, .df-copy[data-state="failed"] .df-l-failed { visibility: visible !important; }
  .df-dest { grid-template-rows: auto auto !important; row-gap: .1em !important; }
  .df-dest .df-labels { font-size: .72em !important; font-weight: 600 !important; }
  .df-dest[data-note="pre"] .df-n-pre, .df-dest[data-note="unverified"] .df-n-unverified, .df-dest[data-note="open"] .df-n-open { visibility: visible !important; }
  .df-buy { display: flex !important; flex-wrap: wrap !important; gap: var(--df-buy-gap, .75rem) !important; justify-content: var(--df-buy-justify, flex-start) !important; opacity: 1 !important; visibility: visible !important; filter: none !important; transform: none !important; translate: none !important; rotate: none !important; scale: none !important; zoom: normal !important; clip-path: none !important; mask: none !important; -webkit-mask: none !important; text-transform: none !important; font-variant: normal !important; font-style: normal !important; text-indent: 0 !important; pointer-events: auto !important; position: relative !important; z-index: 60 !important; box-sizing: border-box !important; text-shadow: none !important; mix-blend-mode: normal !important; content-visibility: visible !important; }
  .df-sr { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip-path: inset(50%) !important; white-space: nowrap !important; }

  .df-socials:not([data-df-look]) { list-style: none; display: inline-flex; flex-wrap: wrap; justify-content: center; gap: var(--df-socials-gap, 1rem); padding: 0; margin: 0; }
  .df-socials:not([data-df-look]) a { color: inherit; }
  .df-socials[data-df-look]:not([hidden]) { opacity: 1 !important; visibility: visible !important; filter: none !important; clip-path: none !important; mask: none !important; -webkit-mask: none !important; mix-blend-mode: normal !important; content-visibility: visible !important; display: flex !important; pointer-events: auto !important; }
  .df-socials[data-df-look] .df-social { opacity: 1 !important; visibility: visible !important; filter: none !important; clip-path: none !important; mask: none !important; -webkit-mask: none !important; mix-blend-mode: normal !important; content-visibility: visible !important; display: block !important; list-style: none !important; position: relative !important; }
  .df-socials[data-df-look] .df-social::before, .df-socials[data-df-look] .df-social::after { content: none !important; display: none !important; }
  .df-socials[data-df-look] .df-social-link { opacity: 1 !important; visibility: visible !important; filter: none !important; clip-path: none !important; mask: none !important; -webkit-mask: none !important; mix-blend-mode: normal !important; content-visibility: visible !important; pointer-events: auto !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; position: relative !important; inset: auto !important; z-index: 1 !important; box-sizing: border-box !important; min-width: 44px !important; min-height: 44px !important; max-width: 100% !important; cursor: pointer !important; }
  .df-socials[data-df-look] .df-social-icon { opacity: 1 !important; visibility: visible !important; filter: none !important; clip-path: none !important; mask: none !important; -webkit-mask: none !important; mix-blend-mode: normal !important; content-visibility: visible !important; display: block !important; flex: none !important; min-width: 16px !important; min-height: 16px !important; max-width: 96px !important; max-height: 96px !important; fill: currentColor !important; }
  .df-socials[data-df-look] .df-social-label { opacity: 1 !important; visibility: visible !important; filter: none !important; clip-path: none !important; mask: none !important; -webkit-mask: none !important; mix-blend-mode: normal !important; content-visibility: visible !important; }
  .df-socials[data-df-look="icon"] .df-social-label { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip-path: inset(50%) !important; white-space: nowrap !important; }
  .df-socials[data-df-look="label"] .df-social-icon { display: none !important; }
  .df-socials[data-df-look] .df-social[data-df-pending], .df-socials[data-df-look] .df-social[data-df-pending] * { visibility: hidden !important; pointer-events: none !important; }
  .df-socials[data-df-look] .df-social-link:focus-visible { outline: 3px solid currentColor !important; outline-offset: 3px !important; }
  .df-chart { opacity: 1 !important; visibility: visible !important; filter: none !important; clip-path: none !important; mask: none !important; -webkit-mask: none !important; mix-blend-mode: normal !important; content-visibility: visible !important; transform: none !important; translate: none !important; rotate: none !important; scale: none !important; zoom: normal !important; display: flex !important; flex-direction: column !important; box-sizing: border-box !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; }
  .df-chart::before, .df-chart::after, .df-chart-frame::before, .df-chart-frame::after { content: none !important; display: none !important; }
  .df-chart-frame { opacity: 1 !important; visibility: visible !important; filter: none !important; clip-path: none !important; mask: none !important; -webkit-mask: none !important; mix-blend-mode: normal !important; content-visibility: visible !important; transform: none !important; translate: none !important; rotate: none !important; scale: none !important; zoom: normal !important; display: block !important; position: relative !important; align-self: stretch !important; box-sizing: border-box !important; width: auto !important; max-width: 100% !important; min-width: 0 !important; height: auto !important; max-height: none !important; }
  .df-chart-embed { opacity: 1 !important; visibility: visible !important; filter: none !important; clip-path: none !important; mask: none !important; -webkit-mask: none !important; mix-blend-mode: normal !important; content-visibility: visible !important; transform: none !important; translate: none !important; rotate: none !important; scale: none !important; zoom: normal !important; display: block !important; position: relative !important; z-index: 1 !important; inset: auto !important; box-sizing: border-box !important; width: 100% !important; max-width: 100% !important; height: 650px !important; min-height: 0 !important; max-height: none !important; margin: 0 !important; padding: 0 !important; border: 0 !important; pointer-events: auto !important; }
  @media (max-width: 1024px) { .df-chart-embed { height: 550px !important; } }
  @media (max-width: 600px) { .df-chart-embed { height: 475px !important; } }
  .df-chart-link { opacity: 1 !important; visibility: visible !important; filter: none !important; clip-path: none !important; mask: none !important; -webkit-mask: none !important; mix-blend-mode: normal !important; content-visibility: visible !important; transform: none !important; translate: none !important; rotate: none !important; scale: none !important; zoom: normal !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; position: relative !important; z-index: 1 !important; box-sizing: border-box !important; min-width: 44px !important; min-height: 44px !important; max-width: 100% !important; pointer-events: auto !important; cursor: pointer !important; white-space: normal !important; text-align: center !important; }
  .df-chart-link[aria-disabled="true"] { cursor: not-allowed !important; opacity: .72 !important; }
  .df-chart-link:focus-visible { outline: 3px solid currentColor !important; outline-offset: 3px !important; }
  /* No valid social link: no list and no space (the section's own artwork and text stay). */
  .df-socials[hidden] { display: none !important; }
  [data-df-trusted="thesis"] { white-space: normal; }

  /* Back to Top: the platform owns the control (link, name, position, size box, visibility,
     scrolling); the design owns only the artwork inside #site-top, clipped to the box. The inner
     padding leaves room for the artwork's own shadows and glows inside the clip. */
  .df-top-target { position: absolute !important; top: 0 !important; left: 0 !important; width: 1px !important; height: 1px !important; overflow: hidden !important; outline: none !important; }
  .df-top { position: fixed !important; z-index: 70 !important; top: auto !important; left: auto !important; right: max(16px, env(safe-area-inset-right)) !important; bottom: max(16px, env(safe-area-inset-bottom)) !important; display: block !important; box-sizing: border-box !important; margin: 0 !important; padding: 10px !important; border: 0 !important; background: none !important; width: auto !important; height: auto !important; min-width: 44px !important; min-height: 44px !important; max-width: min(160px, 36vw) !important; max-height: min(160px, 26vh) !important; overflow: hidden !important; text-decoration: none !important; cursor: pointer !important; transform: none !important; translate: none !important; rotate: none !important; scale: none !important; zoom: normal !important; filter: none !important; clip-path: none !important; mask: none !important; -webkit-mask: none !important; mix-blend-mode: normal !important; float: none !important; content-visibility: visible !important; transition: none !important; }
  /* Fades only once the runtime has set the first state, so the page never flashes it on load. */
  .df-top[data-df-ready] { transition: opacity .28s ease, visibility .28s !important; }
  .df-top::before, .df-top::after { content: none !important; display: none !important; }
  .df-top[data-side="left"] { right: auto !important; left: max(16px, env(safe-area-inset-left)) !important; }
  .df-top[data-state="shown"] { opacity: 1 !important; visibility: visible !important; pointer-events: auto !important; }
  .df-top:not([data-state="shown"]) { opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; }
  .df-top:focus-visible { outline: 3px solid #ffffff !important; outline-offset: 2px !important; box-shadow: 0 0 0 6px #111111 !important; }
  .df-top > #site-top { display: block; }
  /* Targets of in-page links the runtime made focusable: focus follows the reader without a ring. */
  [data-df-jump]:focus { outline: none !important; }

  @media (prefers-reduced-motion: reduce) {
    #site *, #site *::before, #site *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; animation-delay: 0s !important; transition-duration: .001ms !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
  }
}
