/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
@layer properties;
@layer theme, base, components, utilities;
@layer theme {
  :root, :host {
    --font-sans: ui-sans-serif, system-ui, 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;
    --spacing: 0.25rem;
    --text-sm: 0.875rem;
    --text-sm--line-height: calc(1.25 / 0.875);
    --text-lg: 1.125rem;
    --text-lg--line-height: calc(1.75 / 1.125);
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --ease-in: cubic-bezier(0.4, 0, 1, 1);
    --ease-out: cubic-bezier(0, 0, 0.2, 1);
    --animate-spin: spin 1s linear infinite;
    --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-base-content: #edf1f2;
    --color-error: #ffb9b0;
  }
}
@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, ui-sans-serif, system-ui, 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 {
    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 {
  .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;
  }
  .relative {
    position: relative;
  }
  .static {
    position: static;
  }
  .z-50 {
    z-index: 50;
  }
  .container {
    width: 100%;
    @media (width >= 40rem) {
      max-width: 40rem;
    }
    @media (width >= 48rem) {
      max-width: 48rem;
    }
    @media (width >= 64rem) {
      max-width: 64rem;
    }
    @media (width >= 80rem) {
      max-width: 80rem;
    }
    @media (width >= 96rem) {
      max-width: 96rem;
    }
  }
  .mt-1\.5 {
    margin-top: calc(var(--spacing) * 1.5);
  }
  .mb-1 {
    margin-bottom: calc(var(--spacing) * 1);
  }
  .mb-2 {
    margin-bottom: calc(var(--spacing) * 2);
  }
  .ml-1 {
    margin-left: calc(var(--spacing) * 1);
  }
  .hero-adjustments-horizontal {
    --hero-adjustments-horizontal: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M10.5%206h9.75M10.5%206a1.5%201.5%200%201%201-3%200m3%200a1.5%201.5%200%201%200-3%200M3.75%206H7.5m3%2012h9.75m-9.75%200a1.5%201.5%200%200%201-3%200m3%200a1.5%201.5%200%200%200-3%200m-3.75%200H7.5m9-6h3.75m-3.75%200a1.5%201.5%200%200%201-3%200m3%200a1.5%201.5%200%200%200-3%200m-9.75%200h9.75%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-adjustments-horizontal);
    mask: var(--hero-adjustments-horizontal);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-archive-box {
    --hero-archive-box: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22m20.25%207.5-.625%2010.632a2.25%202.25%200%200%201-2.247%202.118H6.622a2.25%202.25%200%200%201-2.247-2.118L3.75%207.5M10%2011.25h4M3.375%207.5h17.25c.621%200%201.125-.504%201.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621%200-1.125.504-1.125%201.125v1.5c0%20.621.504%201.125%201.125%201.125Z%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-archive-box);
    mask: var(--hero-archive-box);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-arrow-down {
    --hero-arrow-down: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M19.5%2013.5%2012%2021m0%200-7.5-7.5M12%2021V3%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-arrow-down);
    mask: var(--hero-arrow-down);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-arrow-down-right {
    --hero-arrow-down-right: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22m4.5%204.5%2015%2015m0%200V8.25m0%2011.25H8.25%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-arrow-down-right);
    mask: var(--hero-arrow-down-right);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-arrow-down-tray {
    --hero-arrow-down-tray: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M3%2016.5v2.25A2.25%202.25%200%200%200%205.25%2021h13.5A2.25%202.25%200%200%200%2021%2018.75V16.5M16.5%2012%2012%2016.5m0%200L7.5%2012m4.5%204.5V3%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-arrow-down-tray);
    mask: var(--hero-arrow-down-tray);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-arrow-path {
    --hero-arrow-path: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M16.023%209.348h4.992v-.001M2.985%2019.644v-4.992m0%200h4.992m-4.993%200%203.181%203.183a8.25%208.25%200%200%200%2013.803-3.7M4.031%209.865a8.25%208.25%200%200%201%2013.803-3.7l3.181%203.182m0-4.991v4.99%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-arrow-path);
    mask: var(--hero-arrow-path);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-arrow-up {
    --hero-arrow-up: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M4.5%2010.5%2012%203m0%200%207.5%207.5M12%203v18%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-arrow-up);
    mask: var(--hero-arrow-up);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-arrow-up-right {
    --hero-arrow-up-right: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22m4.5%2019.5%2015-15m0%200H8.25m11.25%200v11.25%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-arrow-up-right);
    mask: var(--hero-arrow-up-right);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-bars-2 {
    --hero-bars-2: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M3.75%209h16.5m-16.5%206.75h16.5%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-bars-2);
    mask: var(--hero-bars-2);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-bolt-solid {
    --hero-bolt-solid: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M14.615%201.595a.75.75%200%200%201%20.359.852L12.982%209.75h7.268a.75.75%200%200%201%20.548%201.262l-10.5%2011.25a.75.75%200%200%201-1.272-.71l1.992-7.302H3.75a.75.75%200%200%201-.548-1.262l10.5-11.25a.75.75%200%200%201%20.913-.143Z%22%20clip-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-bolt-solid);
    mask: var(--hero-bolt-solid);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-circle-stack {
    --hero-circle-stack: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M20.25%206.375c0%202.278-3.694%204.125-8.25%204.125S3.75%208.653%203.75%206.375m16.5%200c0-2.278-3.694-4.125-8.25-4.125S3.75%204.097%203.75%206.375m16.5%200v11.25c0%202.278-3.694%204.125-8.25%204.125s-8.25-1.847-8.25-4.125V6.375m16.5%200v3.75m-16.5-3.75v3.75m16.5%200v3.75C20.25%2016.153%2016.556%2018%2012%2018s-8.25-1.847-8.25-4.125v-3.75m16.5%200c0%202.278-3.694%204.125-8.25%204.125s-8.25-1.847-8.25-4.125%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-circle-stack);
    mask: var(--hero-circle-stack);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-code-bracket {
    --hero-code-bracket: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M17.25%206.75%2022.5%2012l-5.25%205.25m-10.5%200L1.5%2012l5.25-5.25m7.5-3-4.5%2016.5%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-code-bracket);
    mask: var(--hero-code-bracket);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-computer-desktop {
    --hero-computer-desktop: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M9%2017.25v1.007a3%203%200%200%201-.879%202.122L7.5%2021h9l-.621-.621A3%203%200%200%201%2015%2018.257V17.25m6-12V15a2.25%202.25%200%200%201-2.25%202.25H5.25A2.25%202.25%200%200%201%203%2015V5.25m18%200A2.25%202.25%200%200%200%2018.75%203H5.25A2.25%202.25%200%200%200%203%205.25m18%200V12a2.25%202.25%200%200%201-2.25%202.25H5.25A2.25%202.25%200%200%201%203%2012V5.25%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-computer-desktop);
    mask: var(--hero-computer-desktop);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-cpu-chip {
    --hero-cpu-chip: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M8.25%203v1.5M4.5%208.25H3m18%200h-1.5M4.5%2012H3m18%200h-1.5m-15%203.75H3m18%200h-1.5M8.25%2019.5V21M12%203v1.5m0%2015V21m3.75-18v1.5m0%2015V21m-9-1.5h10.5a2.25%202.25%200%200%200%202.25-2.25V6.75a2.25%202.25%200%200%200-2.25-2.25H6.75A2.25%202.25%200%200%200%204.5%206.75v10.5a2.25%202.25%200%200%200%202.25%202.25Zm.75-12h9v9h-9v-9Z%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-cpu-chip);
    mask: var(--hero-cpu-chip);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-cube-transparent {
    --hero-cube-transparent: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22m21%207.5-2.25-1.313M21%207.5v2.25m0-2.25-2.25%201.313M3%207.5l2.25-1.313M3%207.5l2.25%201.313M3%207.5v2.25m9%203%202.25-1.313M12%2012.75l-2.25-1.313M12%2012.75V15m0%206.75%202.25-1.313M12%2021.75V19.5m0%202.25-2.25-1.313m0-16.875L12%202.25l2.25%201.313M21%2014.25v2.25l-2.25%201.313m-13.5%200L3%2016.5v-2.25%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-cube-transparent);
    mask: var(--hero-cube-transparent);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-device-phone-mobile {
    --hero-device-phone-mobile: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M10.5%201.5H8.25A2.25%202.25%200%200%200%206%203.75v16.5a2.25%202.25%200%200%200%202.25%202.25h7.5A2.25%202.25%200%200%200%2018%2020.25V3.75a2.25%202.25%200%200%200-2.25-2.25H13.5m-3%200V3h3V1.5m-3%200h3m-3%2018.75h3%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-device-phone-mobile);
    mask: var(--hero-device-phone-mobile);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-document-magnifying-glass {
    --hero-document-magnifying-glass: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M19.5%2014.25v-2.625a3.375%203.375%200%200%200-3.375-3.375h-1.5A1.125%201.125%200%200%201%2013.5%207.125v-1.5a3.375%203.375%200%200%200-3.375-3.375H8.25m5.231%2013.481L15%2017.25m-4.5-15H5.625c-.621%200-1.125.504-1.125%201.125v16.5c0%20.621.504%201.125%201.125%201.125h12.75c.621%200%201.125-.504%201.125-1.125V11.25a9%209%200%200%200-9-9Zm3.75%2011.625a2.625%202.625%200%201%201-5.25%200%202.625%202.625%200%200%201%205.25%200Z%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-document-magnifying-glass);
    mask: var(--hero-document-magnifying-glass);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-exclamation-circle {
    --hero-exclamation-circle: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M12%209v3.75m9-.75a9%209%200%201%201-18%200%209%209%200%200%201%2018%200Zm-9%203.75h.008v.008H12v-.008Z%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-exclamation-circle);
    mask: var(--hero-exclamation-circle);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-information-circle {
    --hero-information-circle: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22m11.25%2011.25.041-.02a.75.75%200%200%201%201.063.852l-.708%202.836a.75.75%200%200%200%201.063.853l.041-.021M21%2012a9%209%200%201%201-18%200%209%209%200%200%201%2018%200Zm-9-3.75h.008v.008H12V8.25Z%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-information-circle);
    mask: var(--hero-information-circle);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-pause-mini {
    --hero-pause-mini: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20d%3D%22M5.75%203a.75.75%200%200%200-.75.75v12.5c0%20.414.336.75.75.75h1.5a.75.75%200%200%200%20.75-.75V3.75A.75.75%200%200%200%207.25%203h-1.5ZM12.75%203a.75.75%200%200%200-.75.75v12.5c0%20.414.336.75.75.75h1.5a.75.75%200%200%200%20.75-.75V3.75a.75.75%200%200%200-.75-.75h-1.5Z%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-pause-mini);
    mask: var(--hero-pause-mini);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.25rem;
    height: 1.25rem;
  }
  .hero-play-mini {
    --hero-play-mini: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20d%3D%22M6.3%202.84A1.5%201.5%200%200%200%204%204.11v11.78a1.5%201.5%200%200%200%202.3%201.27l9.344-5.891a1.5%201.5%200%200%200%200-2.538L6.3%202.841Z%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-play-mini);
    mask: var(--hero-play-mini);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.25rem;
    height: 1.25rem;
  }
  .hero-plus-small {
    --hero-plus-small: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M12%206v12m6-6H6%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-plus-small);
    mask: var(--hero-plus-small);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-server-stack {
    --hero-server-stack: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M5.25%2014.25h13.5m-13.5%200a3%203%200%200%201-3-3m3%203a3%203%200%201%200%200%206h13.5a3%203%200%201%200%200-6m-16.5-3a3%203%200%200%201%203-3h13.5a3%203%200%200%201%203%203m-19.5%200a4.5%204.5%200%200%201%20.9-2.7L5.737%205.1a3.375%203.375%200%200%201%202.7-1.35h7.126c1.062%200%202.062.5%202.7%201.35l2.587%203.45a4.5%204.5%200%200%201%20.9%202.7m0%200a3%203%200%200%201-3%203m0%203h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Zm-3%206h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Z%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-server-stack);
    mask: var(--hero-server-stack);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-sparkles {
    --hero-sparkles: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M9.813%2015.904%209%2018.75l-.813-2.846a4.5%204.5%200%200%200-3.09-3.09L2.25%2012l2.846-.813a4.5%204.5%200%200%200%203.09-3.09L9%205.25l.813%202.846a4.5%204.5%200%200%200%203.09%203.09L15.75%2012l-2.846.813a4.5%204.5%200%200%200-3.09%203.09ZM18.259%208.715%2018%209.75l-.259-1.035a3.375%203.375%200%200%200-2.455-2.456L14.25%206l1.036-.259a3.375%203.375%200%200%200%202.455-2.456L18%202.25l.259%201.035a3.375%203.375%200%200%200%202.456%202.456L21.75%206l-1.035.259a3.375%203.375%200%200%200-2.456%202.456ZM16.894%2020.567%2016.5%2021.75l-.394-1.183a2.25%202.25%200%200%200-1.423-1.423L13.5%2018.75l1.183-.394a2.25%202.25%200%200%200%201.423-1.423l.394-1.183.394%201.183a2.25%202.25%200%200%200%201.423%201.423l1.183.394-1.183.394a2.25%202.25%200%200%200-1.423%201.423Z%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-sparkles);
    mask: var(--hero-sparkles);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-squares-2x2 {
    --hero-squares-2x2: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M3.75%206A2.25%202.25%200%200%201%206%203.75h2.25A2.25%202.25%200%200%201%2010.5%206v2.25a2.25%202.25%200%200%201-2.25%202.25H6a2.25%202.25%200%200%201-2.25-2.25V6ZM3.75%2015.75A2.25%202.25%200%200%201%206%2013.5h2.25a2.25%202.25%200%200%201%202.25%202.25V18a2.25%202.25%200%200%201-2.25%202.25H6A2.25%202.25%200%200%201%203.75%2018v-2.25ZM13.5%206a2.25%202.25%200%200%201%202.25-2.25H18A2.25%202.25%200%200%201%2020.25%206v2.25A2.25%202.25%200%200%201%2018%2010.5h-2.25a2.25%202.25%200%200%201-2.25-2.25V6ZM13.5%2015.75a2.25%202.25%200%200%201%202.25-2.25H18a2.25%202.25%200%200%201%202.25%202.25V18A2.25%202.25%200%200%201%2018%2020.25h-2.25A2.25%202.25%200%200%201%2013.5%2018v-2.25Z%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-squares-2x2);
    mask: var(--hero-squares-2x2);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-window {
    --hero-window: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M3%208.25V18a2.25%202.25%200%200%200%202.25%202.25h13.5A2.25%202.25%200%200%200%2021%2018V8.25m-18%200V6a2.25%202.25%200%200%201%202.25-2.25h13.5A2.25%202.25%200%200%201%2021%206v2.25m-18%200h18M5.25%206h.008v.008H5.25V6ZM7.5%206h.008v.008H7.5V6Zm2.25%200h.008v.008H9.75V6Z%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-window);
    mask: var(--hero-window);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .hero-x-mark {
    --hero-x-mark: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20aria-hidden%3D%22true%22%20data-slot%3D%22icon%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M6%2018%2018%206M6%206l12%2012%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask: var(--hero-x-mark);
    mask: var(--hero-x-mark);
    mask-repeat: no-repeat;
    background-color: currentColor;
    vertical-align: middle;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
  }
  .block {
    display: block;
  }
  .contents {
    display: contents;
  }
  .flex {
    display: flex;
  }
  .hidden {
    display: none;
  }
  .table {
    display: table;
  }
  .size-3 {
    width: calc(var(--spacing) * 3);
    height: calc(var(--spacing) * 3);
  }
  .size-4 {
    width: calc(var(--spacing) * 4);
    height: calc(var(--spacing) * 4);
  }
  .size-5 {
    width: calc(var(--spacing) * 5);
    height: calc(var(--spacing) * 5);
  }
  .size-6 {
    width: calc(var(--spacing) * 6);
    height: calc(var(--spacing) * 6);
  }
  .size-7 {
    width: calc(var(--spacing) * 7);
    height: calc(var(--spacing) * 7);
  }
  .w-0 {
    width: calc(var(--spacing) * 0);
  }
  .w-80 {
    width: calc(var(--spacing) * 80);
  }
  .w-full {
    width: 100%;
  }
  .max-w-80 {
    max-width: calc(var(--spacing) * 80);
  }
  .flex-1 {
    flex: 1;
  }
  .flex-none {
    flex: none;
  }
  .shrink-0 {
    flex-shrink: 0;
  }
  .grow {
    flex-grow: 1;
  }
  .translate-y-0 {
    --tw-translate-y: calc(var(--spacing) * 0);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }
  .translate-y-4 {
    --tw-translate-y: calc(var(--spacing) * 4);
    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;
  }
  .items-center {
    align-items: center;
  }
  .justify-between {
    justify-content: space-between;
  }
  .gap-2 {
    gap: calc(var(--spacing) * 2);
  }
  .gap-4 {
    gap: calc(var(--spacing) * 4);
  }
  .gap-6 {
    gap: calc(var(--spacing) * 6);
  }
  .self-start {
    align-self: flex-start;
  }
  .pb-4 {
    padding-bottom: calc(var(--spacing) * 4);
  }
  .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));
  }
  .leading-8 {
    --tw-leading: calc(var(--spacing) * 8);
    line-height: calc(var(--spacing) * 8);
  }
  .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-wrap {
    text-wrap: wrap;
  }
  .text-base-content\/70 {
    color: color-mix(in srgb, #edf1f2 70%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      color: color-mix(in oklab, var(--color-base-content) 70%, transparent);
    }
  }
  .text-error {
    color: var(--color-error);
  }
  .opacity-0 {
    opacity: 0%;
  }
  .opacity-40 {
    opacity: 40%;
  }
  .opacity-100 {
    opacity: 100%;
  }
  .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;
  }
  .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-200 {
    --tw-duration: 200ms;
    transition-duration: 200ms;
  }
  .duration-300 {
    --tw-duration: 300ms;
    transition-duration: 300ms;
  }
  .ease-in {
    --tw-ease: var(--ease-in);
    transition-timing-function: var(--ease-in);
  }
  .ease-out {
    --tw-ease: var(--ease-out);
    transition-timing-function: var(--ease-out);
  }
  .group-hover\:opacity-70 {
    &:is(:where(.group):hover *) {
      @media (hover: hover) {
        opacity: 70%;
      }
    }
  }
  .hover\:cursor-pointer {
    &:hover {
      @media (hover: hover) {
        cursor: pointer;
      }
    }
  }
  .motion-safe\:animate-spin {
    @media (prefers-reduced-motion: no-preference) {
      animation: var(--animate-spin);
    }
  }
  .sm\:w-96 {
    @media (width >= 40rem) {
      width: calc(var(--spacing) * 96);
    }
  }
  .sm\:max-w-96 {
    @media (width >= 40rem) {
      max-width: calc(var(--spacing) * 96);
    }
  }
  .sm\:translate-y-0 {
    @media (width >= 40rem) {
      --tw-translate-y: calc(var(--spacing) * 0);
      translate: var(--tw-translate-x) var(--tw-translate-y);
    }
  }
  .sm\:scale-95 {
    @media (width >= 40rem) {
      --tw-scale-x: 95%;
      --tw-scale-y: 95%;
      --tw-scale-z: 95%;
      scale: var(--tw-scale-x) var(--tw-scale-y);
    }
  }
  .sm\:scale-100 {
    @media (width >= 40rem) {
      --tw-scale-x: 100%;
      --tw-scale-y: 100%;
      --tw-scale-z: 100%;
      scale: var(--tw-scale-x) var(--tw-scale-y);
    }
  }
}
.header-actions {
  display: flex;
  align-items: center;
  gap: 20px;
}
.site-motion-button {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 40px;
  padding: 7px 11px;
  border: 1px solid var(--line);
  border-radius: 24px;
  color: var(--muted);
  font-size: .7rem;
  transition: color .2s, border-color .2s, background .2s;
}
.site-motion-button:is(:hover, :focus-visible) {
  color: var(--paper);
  border-color: var(--lilac);
  background: #c2b5f50a;
}
.site-motion-button [hidden] {
  display: none;
}
.desktop-nav {
  gap: 26px;
}
.desktop-nav a, .text-link {
  position: relative;
}
.desktop-nav a {
  padding-block: 12px;
}
.desktop-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 4px;
  height: 1px;
  background: var(--mint);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s;
}
.desktop-nav a:is(:hover, :focus-visible)::after {
  transform: scaleX(1);
}
.wordmark {
  display: inline-block;
  transition: letter-spacing .25s;
}
.wordmark:is(:hover, :focus-visible) {
  letter-spacing: -.025em;
}
.text-link > span {
  transition: transform .25s;
}
.text-link:is(:hover, :focus-visible) > span {
  transform: translate(2px, -2px);
}
.button {
  position: relative;
  overflow: hidden;
  transition: transform .25s, box-shadow .25s, background .25s;
}
.button::before {
  content: "";
  position: absolute;
  top: -80%;
  bottom: -80%;
  width: 25%;
  left: -70%;
  transform: rotate(25deg);
  background: #fff6;
  pointer-events: none;
  transition: left .65s;
}
.button:is(:hover, :focus-visible)::before {
  left: 145%;
}
.button:is(:hover, :focus-visible) {
  transform: translateY(-3px);
  box-shadow: 0 10px 32px #c2b5f51c;
}
.button > span {
  transition: transform .25s;
}
.button:is(:hover, :focus-visible) > span {
  transform: translate(3px, 3px);
}
.hero-bottom a {
  transition: background .2s, transform .2s, border-color .2s;
}
.hero-bottom a:is(:hover, :focus-visible) {
  background: #c2b5f512;
  border-color: var(--lilac);
  transform: translateY(3px);
}
.hero-visual {
  width: 100%;
  max-width: 570px;
  justify-self: end;
  min-width: 0;
}
.hero-orbit-stage, .system-story {
  overflow: clip;
  overflow-clip-margin: 12px;
  position: relative;
  container-type: inline-size;
  aspect-ratio: 1;
  width: 100%;
}
.orbit-scene {
  position: absolute;
  inset: 0;
  transform: perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));
  transition: transform .45s ease-out;
}
.orbit-aura {
  position: absolute;
  inset: 19%;
  border-radius: 50%;
  background: radial-gradient(circle, #9b8ada17, transparent 72%);
  box-shadow: 0 0 95px #9b8ada0c;
}
.hero-orbit-stage .portrait {
  position: absolute;
  width: 52%;
  left: 24%;
  top: 24%;
  border: 1px solid #7c83a6;
  background: radial-gradient(ellipse at 65% 30%, #495577, #293c56 65%, #1c2f43);
  box-shadow: inset 0 0 35px #c2b5f50c, 0 0 0 8px #c2b5f506;
}
#hero-portrait img {
  object-position: 50% 18%;
}
#about-portrait img {
  object-position: 50% 12%;
}
.hero-orbit-stage .portrait-monogram > span:first-child {
  font-size: clamp(4.5rem, 25cqw, 9rem);
  padding-bottom: 10px;
}
.hero-orbit-stage .portrait-caption {
  font-size: clamp(.49rem, 1.8cqw, .65rem);
  bottom: 18%;
}
.orbit-rotor {
  position: absolute;
  inset: 0;
  pointer-events: none;
  animation: orbit-turn var(--orbit-duration) linear infinite;
  animation-direction: var(--orbit-direction, normal);
}
.orbit-inner {
  --radius: 32cqw;
  --orbit-duration: 58s;
}
.orbit-outer {
  --radius: 46cqw;
  --orbit-duration: 83s;
  --orbit-direction: reverse;
}
.orbit-path {
  position: absolute;
  width: calc(var(--radius) * 2);
  height: calc(var(--radius) * 2);
  left: calc(50% - var(--radius));
  top: calc(50% - var(--radius));
  border: 1px solid #5e6d876b;
  border-radius: 50%;
}
.orbit-outer .orbit-path {
  border-style: dashed;
  border-color: #7f799553;
}
.orbit-path::after {
  content: "";
  position: absolute;
  inset: -1px;
  border: 2px solid transparent;
  border-top-color: #c2b5f579;
  border-radius: 50%;
  mask-image: conic-gradient(black, transparent 20%);
}
.orbit-path > span {
  position: absolute;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  top: 50%;
  left: -4px;
  background: var(--mint);
  box-shadow: 0 0 10px #a9d8cb6b;
}
.orbit-anchor {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0;
  height: 0;
  transform: rotate(var(--angle)) translateY(calc(-1 * var(--radius)));
}
.orbit-upright {
  position: absolute;
  left: 0;
  top: 0;
  width: 0;
  height: 0;
  transform: rotate(calc(-1 * var(--angle)));
  animation: orbit-counter var(--orbit-duration) linear infinite;
  animation-direction: var(--orbit-direction, normal);
}
.orbit-tech {
  position: absolute;
  display: grid;
  place-items: center;
  width: clamp(32px, 8.7cqw, 50px);
  aspect-ratio: 1;
  border-radius: 50%;
  top: 0;
  left: 0;
  transform: translate(-50%, -50%);
  pointer-events: auto;
  background: #e8edf2;
  border: 1px solid #fff9;
  box-shadow: 0 3px 18px #060e1b40;
  transition: box-shadow .2s, background .2s;
}
.orbit-tech .technology-mark {
  width: 62%;
  height: 62%;
  transition: transform .25s;
}
.orbit-tech:is(:hover, :focus-visible) {
  background: #fff;
  box-shadow: 0 0 0 5px #c2b5f529, 0 5px 20px #0004;
  z-index: 4;
}
.orbit-tech:is(:hover, :focus-visible) .technology-mark {
  transform: scale(1.15) rotate(-8deg);
}
.orbit-tooltip {
  position: absolute;
  top: calc(100% + 8px);
  left: 50%;
  transform: translate(-50%, -4px);
  background: #24354d;
  border: 1px solid #687b96;
  color: var(--paper);
  white-space: nowrap;
  padding: 3px 8px;
  border-radius: 5px;
  opacity: 0;
  pointer-events: none;
  font-size: .68rem;
  transition: opacity .2s, transform .2s;
}
.orbit-tech:is(:hover, :focus-visible) .orbit-tooltip {
  opacity: 1;
  transform: translate(-50%, 0);
}
.hero-orbit-stage:has(.orbit-tech:is(:hover, :focus-visible)) :is(.orbit-rotor, .orbit-upright) {
  animation-play-state: paused;
}
.hero-tech-detail {
  display: flex;
  gap: 13px;
  align-items: flex-start;
  padding: 17px 20px;
  border-left: 2px solid #8e85b8;
  border-radius: 0 8px 8px 0;
  background: #c2b5f505;
  min-height: 107px;
  margin: 12px 4% 0;
}
.hero-tech-detail > .technology-mark {
  flex: 0 0 32px;
  background: #edf1f2;
  padding: 5px;
  border-radius: 8px;
  width: 32px;
  height: 32px;
  margin-top: 3px;
}
.hero-tech-detail strong {
  font-size: .78rem;
  font-weight: 550;
  display: block;
  margin-bottom: 3px;
}
.hero-tech-detail div > span {
  display: block;
  color: var(--muted);
  font-size: .72rem;
  line-height: 1.7;
}
.orbit-explore {
  margin: 15px 4% 0;
  font-size: .73rem;
  color: var(--lilac);
}
.technology-mark {
  position: relative;
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #c2b5f5;
}
.technology-mark img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.liveview-bolt {
  position: absolute;
  bottom: -2px;
  right: -4px;
  display: grid;
  place-items: center;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #38275a;
  color: #f6e489;
  border: 1px solid #f6e489;
}
.technologies-section {
  border-bottom: 1px solid var(--line);
}
.technology-intro {
  max-width: 690px;
  margin-top: -15px;
  margin-bottom: 35px;
  color: var(--muted);
  font-size: .91rem;
}
.technology-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 14px;
}
.technology-tile {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  min-height: 140px;
  padding: 20px 10px;
  border: 1px solid #42516a;
  border-radius: 13px;
  color: #d3dde8;
  background: #182739;
  font-size: .8rem;
  overflow: hidden;
  transition: transform .25s, border-color .25s, box-shadow .25s, background .25s;
}
.technology-tile::before {
  content: "";
  width: 100px;
  height: 100px;
  border-radius: 50%;
  position: absolute;
  top: -80px;
  background: #c2b5f517;
  filter: blur(15px);
  transition: transform .35s;
}
.technology-tile .technology-mark {
  width: 38px;
  height: 38px;
  transition: transform .3s;
}
.technology-tile .technology-arrow {
  position: absolute;
  top: 12px;
  right: 12px;
  opacity: 0;
  transform: translate(-4px, 4px);
  transition: opacity .2s, transform .2s;
  color: var(--mint);
}
.technology-tile:is(:hover, :focus-visible) {
  transform: translateY(-6px);
  border-color: #aaa1dc;
  background: #203049;
  box-shadow: 0 12px 25px #070d1838;
}
.technology-tile:is(:hover, :focus-visible)::before {
  transform: translateY(30px);
}
.technology-tile:is(:hover, :focus-visible) .technology-mark {
  transform: scale(1.12) rotate(-7deg);
}
.technology-tile:is(:hover, :focus-visible) .technology-arrow {
  opacity: 1;
  transform: translate(0, 0);
}
.technology-tile[aria-pressed=true] {
  background: #27364d;
  border-color: var(--lilac);
  box-shadow: inset 0 -3px var(--lilac);
}
.technology-detail {
  margin-top: 26px;
  display: flex;
  align-items: center;
  gap: 27px;
  padding: 25px 30px;
  border: 1px solid #59667e;
  background: #1c2c40;
  border-radius: 12px;
  min-height: 145px;
}
.technology-detail > .technology-mark {
  width: 52px;
  height: 52px;
  padding: 7px;
  border-radius: 12px;
  background: #edf1f2;
}
.technology-category {
  color: var(--mint) !important;
  font-size: .7rem !important;
  margin: 0 !important;
}
.technology-detail h3 {
  font-size: 1.3rem;
  margin: 3px 0 6px;
}
.technology-detail div > p:last-child {
  color: var(--muted);
  font-size: .85rem;
  max-width: 810px;
}
.system-story {
  --system-duration: 112s;
}
.system-grid {
  position: absolute;
  inset: 0;
  opacity: .3;
  background-image: radial-gradient(#7a8ca5 1px, transparent 1px);
  background-size: 24px 24px;
  mask-image: radial-gradient(ellipse, black 30%, transparent 70%);
}
.system-world {
  position: absolute;
  inset: 0;
  transform: perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));
  transition: transform .45s ease-out;
}
.system-rotor {
  position: absolute;
  inset: 0;
  animation: orbit-turn var(--system-duration) linear infinite;
}
.system-connections {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.system-orbit-line {
  stroke: #a49ccc70;
  stroke-width: 1;
  stroke-dasharray: 4 9;
}
.system-inner-line {
  stroke: #687d9780;
  stroke-width: 1;
}
.system-link {
  stroke: #72889e60;
  stroke-width: 1;
}
.system-packet {
  stroke: var(--mint);
  stroke-width: 2;
  stroke-dasharray: 3 33;
  animation: packet-flow 4s linear infinite;
  animation-delay: var(--packet-delay);
  opacity: .75;
}
.system-port {
  fill: var(--lilac);
}
.system-anchor {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0;
  height: 0;
  transform: rotate(var(--angle)) translateY(-35cqw);
}
.system-upright {
  width: 0;
  height: 0;
  transform: rotate(calc(-1 * var(--angle)));
  animation: orbit-counter var(--system-duration) linear infinite;
}
.system-node {
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: clamp(55px, 15cqw, 79px);
  aspect-ratio: 1;
  left: 0;
  top: 0;
  transform: translate(-50%, -50%);
  color: var(--mint);
  background: #24384f;
  border: 1px solid #667c97;
  border-radius: 17px;
  box-shadow: 0 4px 18px #0b172c30;
  transition: background .2s, box-shadow .2s, border-color .2s;
}
.system-node > span:last-child {
  color: #e1e7ef;
  font-size: clamp(.5rem, 1.95cqw, .65rem);
}
.system-node > span:first-child {
  transition: transform .25s;
}
.system-node:is(:hover, :focus-visible) {
  border-color: var(--mint);
  background: #344a65;
  box-shadow: 0 0 0 6px #a9d8cb12, 0 0 30px #a9d8cb19;
  z-index: 4;
}
.system-node:is(:hover, :focus-visible) > span:first-child {
  transform: scale(1.25) rotate(-8deg);
}
.system-story:has(.system-node:is(:hover, :focus-visible)) :is(.system-rotor, .system-upright) {
  animation-play-state: paused;
}
.system-avatar {
  position: absolute;
  top: 36%;
  left: 36%;
  width: 28%;
  border: 1px solid #9b94bb;
  background: #354466;
  box-shadow: 0 0 0 7px #c2b5f507;
}
.system-avatar .portrait-monogram > span:first-child {
  font-size: clamp(2.5rem, 12cqw, 4.5rem);
  padding-bottom: 5px;
}
.system-avatar .portrait-caption {
  font-size: clamp(.35rem, 1.2cqw, .5rem);
  bottom: 18%;
}
.story-terminal {
  position: absolute;
  width: 84%;
  left: 8%;
  top: 30%;
  background: #102033;
  border: 1px solid #61758c;
  border-radius: 10px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
  z-index: 3;
}
.system-story:is(.is-waiting, .is-playing) .system-world {
  pointer-events: none;
}
.system-story.is-waiting .story-terminal {
  opacity: 1;
}
.system-story.is-waiting .system-world {
  opacity: 0;
}
.system-story.is-playing .story-terminal {
  animation: terminal-disperse 1.6s ease both;
}
.system-story.is-playing .system-world {
  animation: system-emerge 1s 1s ease both;
}
.system-caption {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 8px;
  color: var(--muted);
  font-size: .73rem;
}
.system-caption .text-link {
  font-size: .73rem;
  min-height: 40px;
}
.system-detail {
  display: flex;
  gap: 12px;
  padding-top: 16px;
  margin-top: 8px;
  border-top: 1px solid #43536c;
  min-height: 140px;
}
.system-detail-icon {
  color: var(--mint);
  padding-top: 5px;
}
.system-detail h3 {
  font-size: .9rem;
  margin-bottom: 6px;
}
.system-detail p {
  font-size: .78rem;
  color: var(--muted);
  line-height: 1.8;
}
.experience-row {
  position: relative;
  transition: background .3s;
}
.experience-row::before {
  content: "";
  position: absolute;
  width: 2px;
  left: -18px;
  top: 40px;
  bottom: 40px;
  background: var(--lilac);
  transform: scaleY(0);
  transform-origin: top;
  transition: transform .3s;
}
.experience-row:hover {
  background: linear-gradient(90deg, #c2b5f506, transparent);
}
.experience-row:hover::before {
  transform: scaleY(1);
}
.experience-row .experience-company h3 {
  transition: transform .25s, color .25s;
}
.experience-row:hover .experience-company h3 {
  transform: translateX(5px);
  color: #d6cafc;
}
.experience-marker {
  transition: box-shadow .25s, transform .25s;
}
.experience-row:hover .experience-marker {
  box-shadow: 0 0 0 5px #c2b5f513;
  transform: scale(1.15);
}
.inline-tags li {
  transition: color .2s, transform .2s;
}
.inline-tags li:hover {
  color: var(--mint);
  transform: translateY(-2px);
}
.project-visual.pointer-surface {
  position: relative;
  transform: perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));
  transition: transform .35s ease-out, box-shadow .35s;
}
.project-visual.pointer-surface::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(300px circle at var(--pointer-x, 50%) var(--pointer-y, 50%), #fff3, transparent 65%);
  opacity: 0;
  transition: opacity .3s;
}
.project-visual.is-pointer-active::after {
  opacity: 1;
}
.project:hover .project-visual {
  box-shadow: 0 16px 40px #050f2033;
}
.project .abstract-art {
  transition: transform .4s;
}
.project:hover .abstract-art {
  transform: scale(1.035);
}
.project-body h3 {
  transition: color .25s;
}
.project:hover .project-body h3 {
  color: #d7cdf8;
}
.project-details summary {
  transition: padding .2s, color .2s;
}
.project-details summary:is(:hover, :focus-visible) {
  color: var(--mint);
  padding-left: 7px;
}
.project-filters button {
  transition: background .2s, color .2s, box-shadow .2s;
}
.project-filters button:hover {
  box-shadow: inset 0 -2px var(--mint);
}
.achievement-grid article {
  padding: 22px 0 0;
  transition: transform .3s, border-color .3s;
}
.achievement-grid article:hover {
  transform: translateY(-5px);
  border-color: var(--mint);
}
.achievement-spark {
  display: inline-block;
  transition: transform .6s, color .3s;
}
.achievement-grid article:hover .achievement-spark {
  transform: rotate(90deg);
  color: var(--lilac);
}
.site-footer .text-link:is(:hover, :focus-visible) > span {
  transform: translateY(-4px);
}
@keyframes orbit-turn {
  to {
    transform: rotate(360deg);
  }
}
@keyframes orbit-counter {
  from {
    transform: rotate(calc(-1 * var(--angle)));
  }
  to {
    transform: rotate(calc(-1 * var(--angle) - 360deg));
  }
}
@keyframes packet-flow {
  to {
    stroke-dashoffset: -144;
  }
}
@keyframes system-emerge {
  from {
    opacity: 0;
    scale: .8;
  }
  to {
    opacity: 1;
    scale: 1;
  }
}
html[data-motion-paused=true] {
  scroll-behavior: auto;
}
[data-motion-paused=true] *, .pointer-surface[data-in-viewport=false] * {
  animation-play-state: paused !important;
}
[data-motion-paused=true] .system-story .system-world {
  opacity: 1;
}
@media (max-width: 1050px) {
  .desktop-nav {
    gap: 18px;
    font-size: .8rem;
  }
  .header-actions {
    gap: 12px;
  }
  .site-motion-button [data-motion-label] {
    display: none;
  }
  .site-motion-button {
    width: 40px;
    height: 40px;
    justify-content: center;
    padding: 0;
  }
  .hero-visual {
    margin-top: 0;
  }
  .technology-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}
@media (max-width: 760px) {
  .hero-visual {
    max-width: 430px;
    margin: 12px auto 10px;
    justify-self: center;
  }
  .hero-tech-detail {
    min-height: 112px;
    padding: 14px;
    margin: 10px 0 0;
  }
  .hero-tech-detail div > span {
    font-size: .7rem;
  }
  .orbit-explore {
    margin-left: 0;
  }
  .header-actions {
    gap: 14px;
  }
  .system-figure {
    width: 100%;
    max-width: 500px;
    justify-self: center;
  }
  .system-detail {
    min-height: 145px;
  }
  .system-node {
    border-radius: 12px;
  }
  .system-node .size-6 {
    width: 21px;
    height: 21px;
  }
  .technology-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
  }
  .technology-tile {
    min-height: 118px;
    gap: 13px;
    font-size: .72rem;
    border-radius: 10px;
  }
  .technology-tile .technology-mark {
    width: 32px;
    height: 32px;
  }
  .technology-intro {
    margin-top: 0;
    font-size: .83rem;
  }
  .technology-detail {
    padding: 20px;
    gap: 17px;
    align-items: flex-start;
    min-height: 180px;
  }
  .technology-detail > .technology-mark {
    width: 40px;
    height: 40px;
  }
  .technology-detail div > p:last-child {
    font-size: .8rem;
  }
  .technology-detail h3 {
    font-size: 1.1rem;
  }
  .experience-row::before {
    left: -10px;
  }
  .achievement-grid article {
    padding-top: 20px;
  }
}
@media (max-width: 360px) {
  .header-actions {
    gap: 10px;
  }
  .technology-grid {
    gap: 8px;
  }
  .technology-tile {
    min-height: 105px;
    font-size: .65rem;
  }
  .technology-tile .technology-mark {
    width: 29px;
    height: 29px;
  }
  .technology-detail {
    padding: 16px;
    gap: 13px;
  }
  .technology-detail > .technology-mark {
    width: 32px;
    height: 32px;
  }
  .system-avatar .portrait-caption {
    display: none;
  }
  .hero-tech-detail {
    min-height: 130px;
  }
  .system-node > span:last-child {
    font-size: .49rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .orbit-upright, .system-upright {
    transform: rotate(calc(-1 * var(--angle)));
  }
  .system-story .system-world {
    opacity: 1 !important;
    scale: 1 !important;
  }
  .button:is(:hover, :focus-visible), .wordmark:is(:hover, :focus-visible), .technology-tile:is(:hover, :focus-visible), .technology-tile:is(:hover, :focus-visible) .technology-mark, .orbit-tech:is(:hover, :focus-visible) .technology-mark, .system-node:is(:hover, :focus-visible) > span:first-child, .experience-row:hover .experience-company h3, .project:hover .abstract-art, .achievement-grid article:hover, .achievement-grid article:hover .achievement-spark {
    transform: none;
  }
  .orbit-scene, .system-world, .project-visual.pointer-surface {
    transform: none;
  }
}
.architecture-section {
  border-top: 1px solid var(--line);
}
.architecture-section .section-heading {
  align-items: end;
}
.architecture-section .section-heading > p {
  max-width: 340px;
}
.architecture-intro {
  max-width: 720px;
  color: var(--muted);
  margin: -14px 0 30px;
  font-size: .94rem;
}
.architecture-workspace {
  color-scheme: light;
  color: #26354b;
  background: #f6f8fc;
  border: 1px solid #d9dfeb;
  border-radius: 15px;
  box-shadow: 0 26px 70px #0002;
  overflow: hidden;
}
.architecture-toolbar {
  min-height: 66px;
  padding: 16px 24px;
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  border-bottom: 1px solid #dde3ed;
  background: #fff;
}
.board-name, .board-author {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: .8rem;
  font-weight: 550;
}
.board-name > span:first-child {
  color: #7662ad;
}
.board-author {
  font-size: .69rem;
  color: #617086;
}
.board-author > span {
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  border-radius: 50%;
  background: #ede6ff;
  color: #62508b;
  font-size: .81rem;
  letter-spacing: -.07em;
}
.architecture-flow-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 18px 24px 8px;
  background: #fff;
}
.architecture-flow-tabs button {
  padding: 8px 14px;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  color: #526178;
  font-size: .77rem;
  border: 1px solid #dce2ec;
  border-radius: 8px;
  background: #fff;
  transition: background .2s, border-color .2s, transform .2s;
}
.architecture-flow-tabs button:is(:hover, :focus-visible) {
  border-color: #8871ba;
  background: #f2edff;
  transform: translateY(-2px);
}
.architecture-flow-tabs button[aria-pressed=true] {
  color: #563b8e;
  border-color: #b8a2e2;
  background: #eee7fc;
}
.flow-indicator {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #c4ccda;
}
.architecture-flow-tabs [aria-pressed=true] .flow-indicator {
  background: #8062b8;
}
.architecture-board-help {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 3px 24px 16px;
  margin: 0;
  font-size: .7rem;
  color: #657389;
  background: #fff;
}
.architecture-board-help > span {
  display: none;
}
.architecture-scroll {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-color: #ab9acb #e8eaf1;
  scrollbar-width: thin;
  padding-block: 5px;
}
.architecture-scroll:focus-visible {
  outline: 3px solid #8062b8;
  outline-offset: -3px;
  border-radius: 0;
}
.architecture-canvas {
  position: relative;
  width: 1040px;
  height: 760px;
  margin-inline: auto;
  isolation: isolate;
  background-color: #f6f8fc;
  background-image: radial-gradient(#b7c1d1 1px, transparent 1px);
  background-size: 18px 18px;
}
.board-frame {
  position: absolute;
  pointer-events: none;
  border: 1px dashed;
  border-radius: 13px;
  z-index: -1;
}
.board-frame > span {
  position: absolute;
  top: -12px;
  left: 15px;
  font-size: .7rem;
  line-height: 22px;
  padding-inline: 7px;
  color: #64738a;
  background: #f6f8fc;
}
.frame-compute {
  left: 700px;
  top: 105px;
  width: 300px;
  height: 230px;
  border-color: #a7b8d4;
  background: #e8eff961;
}
.frame-async {
  left: 240px;
  top: 355px;
  width: 460px;
  height: 132px;
  border-color: #c5ab95;
  background: #fff3e647;
}
.frame-data {
  left: 480px;
  top: 550px;
  width: 480px;
  height: 142px;
  border-color: #97b8b0;
  background: #e9f4f061;
}
.board-note {
  position: absolute;
  left: 270px;
  top: 47px;
  padding: 12px 18px;
  font-size: .74rem;
  line-height: 1.5;
  background: #fff1b7;
  color: #6d5934;
  box-shadow: 2px 4px 0 #e8dbad55;
  transform: rotate(-3deg);
  border-radius: 1px 4px 9px 2px;
}
.architecture-wires {
  position: absolute;
  inset: 0;
  width: 1040px;
  height: 760px;
  pointer-events: none;
  overflow: visible;
}
.architecture-edge .wire-base {
  stroke: #9aa9bc;
  stroke-width: 1.5;
  stroke-linejoin: round;
  stroke-linecap: round;
  transition: stroke .2s;
}
.architecture-edge.is-active .wire-base {
  stroke: #8160b5;
  stroke-width: 2;
}
.architecture-edge.is-telemetry .wire-base {
  stroke: #a5b1c1;
  stroke-dasharray: 3 5;
}
.architecture-edge text {
  fill: #63738a;
  font-size: 10px;
  font-family: var(--font);
  paint-order: stroke;
  stroke: #f6f8fc;
  stroke-width: 5px;
  stroke-linejoin: round;
}
.architecture-edge.is-active text {
  fill: #6a459c;
}
.architecture-edge .wire-packet {
  stroke: #b29bd3;
  stroke-width: 4;
  stroke-linecap: round;
  stroke-dasharray: 3 21;
  animation: architecture-packet 2.5s linear infinite;
  animation-play-state: paused;
}
.architecture-workspace:is(:hover, :focus-within) .wire-packet {
  animation-play-state: running;
}
@keyframes architecture-packet {
  to {
    stroke-dashoffset: -96;
  }
}
.architecture-node {
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 10px 8px;
  background: #fff;
  color: #2c3b51;
  border: 1px solid #c4cfdf;
  border-radius: 11px;
  box-shadow: 0 3px 0 #d7dfeb70;
  transition: box-shadow .2s, border-color .2s, background .2s, transform .2s;
}
.architecture-node-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 30px;
  margin-bottom: 6px;
  color: #667e9f;
}
.architecture-node-mark img {
  width: 29px;
  height: 29px;
  object-fit: contain;
}
.architecture-node-mark img + .icon {
  width: 22px;
}
.architecture-node strong {
  font-size: .77rem;
  font-weight: 600;
  line-height: 1.3;
}
.architecture-tool {
  line-height: 1.4;
  font-size: .63rem;
  color: #6c788c;
  margin-top: 3px;
}
.architecture-node.is-on-path {
  border-color: #ad94d3;
  background: #fff;
  box-shadow: 0 3px 0 #c8b6e566;
}
.architecture-node.is-selected {
  outline: 2px solid #9676c6;
  outline-offset: 4px;
}
.architecture-node:is(:hover, :focus-visible) {
  z-index: 2;
  border-color: #6a45a2;
  box-shadow: 0 9px 22px #5e3b9724;
  transform: translateY(-3px);
}
.architecture-node:focus-visible {
  outline: 3px solid #6a45a2;
  outline-offset: 4px;
}
.node-edge .architecture-node-mark {
  color: #cb8c45;
}
.node-data .architecture-node-mark {
  color: #4b8f89;
}
.node-async .architecture-node-mark {
  color: #9e7454;
}
.server-instances {
  display: flex;
  gap: 20px;
  margin-top: 12px;
  color: #7b8ea8;
}
.instance-caption {
  font-size: .59rem;
  margin-top: 5px;
  color: #728198;
}
#architecture-node-replicas .architecture-node-mark {
  height: 24px;
}
.replication-caption {
  line-height: 1.2;
  font-size: .55rem;
  margin-top: 4px;
  color: #728198;
}
.board-legend {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 8px;
  left: 40px;
  bottom: 16px;
  color: #6e7c90;
  font-size: .65rem;
}
.board-legend i {
  width: 17px;
  height: 2px;
  background: #8160b5;
}
.board-legend i.legend-rest {
  background: #9aa9bc;
  margin-left: 10px;
}
.architecture-inspector {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 0;
  border-top: 1px solid #dce2ec;
  background: #fff;
}
.architecture-inspector > div {
  padding: 25px 28px;
  min-width: 0;
}
.architecture-node-detail {
  border-left: 1px solid #e3e7ee;
}
.inspector-label {
  color: #7b649d;
  font-size: .7rem;
}
.architecture-inspector h3 {
  color: #2f3d54;
  font-size: 1.12rem;
  margin: 8px 0;
}
.architecture-inspector p {
  font-size: .8rem;
  line-height: 1.75;
  color: #5c6b80;
}
.architecture-inspector .architecture-tradeoff {
  margin-top: 13px;
  color: #748197;
  font-size: .72rem;
}
.architecture-tradeoff > span {
  display: inline-block;
  vertical-align: middle;
  margin-right: 6px;
}
.architecture-footnote {
  color: var(--muted);
  font-size: .74rem;
  margin-top: 18px;
  max-width: 780px;
}
.social-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 28px;
}
.social-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 44px;
  padding: 8px 13px 8px 8px;
  border: 1px solid #526177;
  border-radius: 8px;
  font-size: .81rem;
  color: #dfe5ed;
  transition: transform .2s, border-color .2s, background .2s;
}
.social-link > span {
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  background: #fff;
  border-radius: 5px;
  padding: 5px;
}
.social-link img {
  width: 18px;
  height: 18px;
}
.social-link:is(:hover, :focus-visible) {
  transform: translateY(-3px);
  border-color: var(--lilac);
  background: #c2b5f50c;
}
.social-link > .social-arrow {
  color: var(--muted);
  margin-left: 1px;
}
@media (max-width: 1150px) {
  .architecture-canvas {
    margin-inline: 0;
  }
}
@media (max-width: 760px) {
  .architecture-section .section-heading {
    gap: 20px;
  }
  .architecture-intro {
    margin-top: 0;
  }
  .architecture-toolbar {
    padding: 14px 16px;
    gap: 8px;
  }
  .board-name {
    font-size: .72rem;
  }
  .board-author {
    font-size: .6rem;
  }
  .board-author > span {
    display: none;
  }
  .architecture-flow-tabs {
    padding: 14px 15px 8px;
    gap: 7px;
  }
  .architecture-flow-tabs button {
    padding: 8px 11px;
    font-size: .71rem;
  }
  .architecture-board-help {
    padding: 6px 16px 14px;
    display: block;
    font-size: .66rem;
  }
  .architecture-board-help > span {
    display: block;
    margin-top: 3px;
    color: #7c8799;
  }
  .architecture-inspector {
    grid-template-columns: 1fr;
  }
  .architecture-inspector > div {
    padding: 22px 20px;
  }
  .architecture-node-detail {
    border-left: 0;
    border-top: 1px solid #e3e7ee;
  }
  .architecture-footnote {
    font-size: .7rem;
  }
  .social-links {
    gap: 8px;
  }
  .social-link > .social-arrow {
    display: none;
  }
  .social-link {
    font-size: .74rem;
    padding-right: 9px;
    gap: 7px;
  }
}
@media (max-width: 360px) {
  .board-author {
    display: none;
  }
  .social-link {
    gap: 6px;
    padding: 8px;
    font-size: .69rem;
  }
  .social-link > span {
    width: 24px;
    height: 24px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .architecture-node:is(:hover, :focus-visible), .architecture-flow-tabs button:is(:hover, :focus-visible), .social-link:is(:hover, :focus-visible) {
    transform: none;
  }
  .architecture-edge .wire-packet {
    animation: none;
  }
}
@media (min-width: 761px) and (max-width: 900px) {
  .desktop-nav {
    display: none;
  }
  .mobile-nav {
    display: block;
    position: relative;
    font-size: .84rem;
    z-index: 10;
  }
  .mobile-nav summary {
    display: flex;
    align-items: center;
    gap: 10px;
    list-style: none;
    cursor: pointer;
    min-height: 44px;
  }
  .mobile-nav summary::-webkit-details-marker {
    display: none;
  }
  .mobile-nav nav {
    position: absolute;
    top: 54px;
    right: 0;
    width: 200px;
    padding: 10px;
    background: #21334b;
    border: 1px solid #5b6980;
    border-radius: 9px;
    box-shadow: 0 14px 40px #0004;
  }
  .mobile-nav nav a {
    display: block;
    padding: 12px;
  }
}
:root {
  --ink: #101c2b;
  --surface: #162537;
  --paper: #edf1f2;
  --muted: #b3bfcb;
  --lilac: #c2b5f5;
  --mint: #a9d8cb;
  --line: #354356;
  --font: "Avenir Next", "Avenir", "Segoe UI", sans-serif;
  color-scheme: dark;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 110px;
}
body {
  margin: 0;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
a {
  color: inherit;
  text-decoration: none;
}
button, summary, a {
  -webkit-tap-highlight-color: transparent;
}
button {
  font: inherit;
  cursor: pointer;
}
button:disabled {
  cursor: default;
  opacity: .55;
}
:focus-visible {
  outline: 2px solid var(--mint);
  outline-offset: 6px;
  border-radius: 3px;
}
::selection {
  background: var(--lilac);
  color: var(--ink);
}
h1, h2, h3, h4, p, figure {
  margin: 0;
}
ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.wrap {
  width: min(1240px, calc(100% - 112px));
  margin-inline: auto;
}
.section {
  padding-block: 112px;
}
.section-kicker {
  color: var(--lilac);
  font-size: .94rem;
  font-weight: 500;
  margin-bottom: 16px;
}
h2 {
  font-size: clamp(2.15rem, 3.7vw, 3.4rem);
  line-height: 1.14;
  letter-spacing: -.045em;
  font-weight: 500;
}
h3 {
  font-weight: 550;
  letter-spacing: -.025em;
}
.text-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-size: .94rem;
  font-weight: 500;
}
.text-link:hover {
  color: var(--lilac);
}
.skip-link {
  position: fixed;
  left: 20px;
  top: -80px;
  z-index: 100;
  padding: 14px 24px;
  color: var(--ink);
  background: var(--paper);
}
.skip-link:focus {
  top: 14px;
}
.site-header {
  height: 102px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
}
.wordmark {
  font-size: 1.37rem;
  font-weight: 650;
  letter-spacing: -.065em;
}
.wordmark span {
  color: var(--muted);
  font-weight: 400;
}
.desktop-nav {
  display: flex;
  gap: 36px;
  font-size: .88rem;
  color: var(--muted);
}
.desktop-nav a:hover {
  color: var(--paper);
}
.mobile-nav {
  display: none;
}
.hero {
  position: relative;
  min-height: min(850px, calc(100svh - 102px));
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  align-items: center;
  gap: 24px;
  padding-top: 60px;
  padding-bottom: 115px;
}
.location {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--muted);
  font-size: .77rem;
  white-space: nowrap;
  margin-bottom: 27px;
}
.location-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--mint);
}
.location-line {
  display: inline-block;
  width: 20px;
  height: 1px;
  background: var(--line);
}
.hero-hello {
  color: var(--muted);
  font-size: 1.2rem;
  margin-bottom: 5px;
}
h1 {
  font-size: clamp(5.3rem, 8.3vw, 8rem);
  line-height: .96;
  letter-spacing: -.075em;
  font-weight: 550;
  margin-left: -6px;
}
.name-period {
  color: var(--lilac);
}
.role-line {
  display: flex;
  align-items: center;
  font-size: clamp(1.25rem, 2.2vw, 1.9rem);
  color: var(--lilac);
  height: 60px;
  margin-block: 18px 10px;
  letter-spacing: -.03em;
}
.typing-caret {
  width: 2px;
  height: 1em;
  background: var(--lilac);
  margin-left: 5px;
  animation: caret 1s steps(1) infinite;
}
.motion-toggle {
  width: 40px;
  height: 40px;
  margin-left: 12px;
  border: 1px solid var(--line);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--muted);
  background: transparent;
}
.motion-toggle:hover {
  border-color: var(--lilac);
  color: var(--paper);
}
.motion-toggle[hidden] {
  display: none;
}
.is-paused .typing-caret {
  animation: none;
}
.hero-description {
  max-width: 390px;
  color: var(--muted);
  font-size: 1.02rem;
  line-height: 1.8;
}
.hero-actions {
  display: flex;
  align-items: center;
  gap: 30px;
  margin-top: 32px;
}
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  padding: 15px 24px;
  border-radius: 7px;
  font-size: .9rem;
  font-weight: 600;
}
.button-primary {
  color: var(--ink);
  background: var(--lilac);
}
.button-primary:hover {
  background: #d2c7ff;
}
.hero-actions .text-link {
  border-bottom: 1px solid #697687;
  padding-block: 3px;
}
.portrait {
  border-radius: 50%;
  overflow: hidden;
  aspect-ratio: 1;
  background: #22344b;
}
.portrait img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.portrait-monogram {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
}
.portrait-monogram > span:first-child {
  font-size: clamp(7rem, 14vw, 13rem);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -.12em;
  color: #dfdcf1;
  padding-bottom: 20px;
  margin-left: -5px;
}
.monogram-dot {
  color: var(--mint);
}
.portrait-caption {
  position: absolute;
  bottom: 19%;
  color: #c9d2e0;
  font-size: .72rem;
  letter-spacing: .02em;
}
.hero-bottom {
  position: absolute;
  bottom: 24px;
  left: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--line);
  padding-top: 20px;
  font-size: .78rem;
  color: var(--muted);
}
.hero-bottom a {
  border: 1px solid var(--line);
  border-radius: 50%;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
}
.about-section {
  background: #192a3c;
}
.about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 90px;
  align-items: center;
}
.about-copy h2 {
  margin-bottom: 28px;
}
.about-copy > p:not(.section-kicker) {
  color: #bcc7d2;
  font-size: .95rem;
  margin-top: 18px;
  max-width: 560px;
}
.about-copy > .editorial-note {
  font-size: .78rem !important;
  color: #a3b1c4 !important;
}
.terminal-bar {
  height: 36px;
  display: flex;
  align-items: center;
  gap: 6px;
  padding-inline: 13px;
  border-bottom: 1px solid #35475f;
}
.terminal-bar > span {
  height: 6px;
  width: 6px;
  border-radius: 50%;
  background: #7e8fa5;
}
.terminal-bar > p {
  font-size: .65rem;
  color: #adbed3;
  margin-left: auto;
}
.terminal-code {
  padding: 24px;
  font-family: "SFMono-Regular", Consolas, monospace;
  font-size: .79rem;
  line-height: 2.1;
  color: #a6b7c9;
}
.terminal-code p:first-child {
  color: #e4e3f3;
}
.terminal-code p:first-child span {
  color: var(--lilac);
}
.terminal-code .terminal-result {
  color: var(--mint);
}
.section-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 30px;
  margin-bottom: 42px;
}
.section-heading > p {
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.8;
}
.editorial-note {
  font-size: .76rem;
  color: var(--muted);
}
.career-note {
  padding: 16px 0 26px;
  border-bottom: 1px solid var(--line);
}
.experience-row {
  display: grid;
  grid-template-columns: 1fr 1.7fr;
  gap: 65px;
  padding-block: 40px;
  border-bottom: 1px solid var(--line);
}
.experience-company {
  padding-left: 22px;
  position: relative;
}
.experience-marker {
  position: absolute;
  width: 6px;
  height: 6px;
  background: var(--lilac);
  border-radius: 50%;
  left: 0;
  top: 15px;
}
.experience-company h3 {
  font-size: 1.65rem;
}
.experience-company p {
  color: var(--muted);
  font-size: .72rem;
  margin-top: 5px;
}
.experience-description h4 {
  font-size: 1rem;
  font-weight: 550;
  margin-bottom: 10px;
}
.experience-description > p {
  color: var(--muted);
  font-size: .9rem;
  max-width: 640px;
}
.inline-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  margin-top: 19px;
}
.inline-tags li {
  font-size: .71rem;
  color: #c2b5f5;
}
.projects-section {
  background: #132234;
}
.project-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 28px;
}
.project-filters {
  display: flex;
  gap: 6px;
  padding: 4px;
  border: 1px solid #3b4d63;
  border-radius: 30px;
}
.project-filters button {
  padding: 8px 22px;
  border-radius: 24px;
  font-size: .78rem;
  color: var(--muted);
}
.project-filters button[aria-pressed=true] {
  color: var(--ink);
  background: var(--paper);
}
.project-filters button:hover {
  color: var(--paper);
  background: #364862;
}
.project-filters button[aria-pressed=true]:hover {
  color: var(--ink);
  background: white;
}
#project-count {
  font-size: .73rem;
  color: var(--muted);
}
.project-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 58px 36px;
}
.project {
  min-width: 0;
}
.project-visual {
  aspect-ratio: 1.64;
  overflow: hidden;
  border-radius: 10px;
}
.project-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.project-placeholder {
  position: relative;
  height: 100%;
  background: var(--project-bg);
  color: var(--project-ink);
  overflow: hidden;
}
.project-mint {
  --project-bg: #bbd2c9;
  --project-ink: #234c47;
  --project-shape: #e0eae5;
}
.project-lilac {
  --project-bg: #b9b4d6;
  --project-ink: #383659;
  --project-shape: #d8d4e8;
}
.project-blue {
  --project-bg: #a6c5d6;
  --project-ink: #294d69;
  --project-shape: #cee0e9;
}
.project-peach {
  --project-bg: #d3bfb0;
  --project-ink: #584436;
  --project-shape: #e5d7cc;
}
.placeholder-label {
  position: absolute;
  top: 18px;
  left: 20px;
  font-size: .64rem;
  border: 1px solid currentColor;
  border-radius: 20px;
  padding: 3px 9px;
  z-index: 1;
}
.placeholder-caption {
  position: absolute;
  bottom: 15px;
  left: 20px;
  font-size: .59rem;
}
.abstract-art {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
}
.abstract-art > span {
  font-size: clamp(1.6rem, 2.8vw, 2.7rem);
  font-weight: 600;
  letter-spacing: -.055em;
  z-index: 1;
}
.abstract-art i {
  position: absolute;
  background: var(--project-shape);
  width: 90px;
  height: 124px;
  border: 1px solid var(--project-ink);
  @supports (color: color-mix(in lab, red, red)) {
    border: 1px solid color-mix(in srgb, var(--project-ink) 20%, transparent);
  }
  border-radius: 6px;
}
.motif-documents i:nth-child(1) {
  transform: translate(-120px, -15px) rotate(-18deg);
}
.motif-documents i:nth-child(2) {
  transform: translate(-70px, 0) rotate(-7deg);
}
.motif-documents i:nth-child(3) {
  transform: translate(115px, 15px) rotate(16deg);
}
.motif-documents i:nth-child(4) {
  transform: translate(80px, 2px) rotate(6deg);
}
.motif-layers i {
  width: 190px;
  height: 100px;
  transform: rotate(-24deg) skewX(25deg);
  border-radius: 14px;
}
.motif-layers i:nth-child(1) {
  margin-top: -50px;
}
.motif-layers i:nth-child(2) {
  margin-top: 0;
}
.motif-layers i:nth-child(3) {
  margin-top: 50px;
}
.motif-layers i:nth-child(4) {
  display: none;
}
.motif-signal i {
  height: 140px;
  width: 140px;
  border-radius: 50%;
  background: transparent;
}
.motif-signal i:nth-child(2) {
  width: 210px;
  height: 210px;
}
.motif-signal i:nth-child(3) {
  width: 280px;
  height: 280px;
}
.motif-signal i:nth-child(4) {
  width: 350px;
  height: 350px;
}
.motif-nodes i {
  height: 52px;
  width: 52px;
  border-radius: 15px;
}
.motif-nodes i:nth-child(1) {
  transform: translate(-130px, -35px) rotate(20deg);
}
.motif-nodes i:nth-child(2) {
  transform: translate(120px, -35px) rotate(20deg);
}
.motif-nodes i:nth-child(3) {
  transform: translate(-70px, 65px) rotate(20deg);
}
.motif-nodes i:nth-child(4) {
  transform: translate(70px, 65px) rotate(20deg);
}
.project-body {
  padding: 24px 2px 0;
}
.project-kind {
  color: var(--muted);
  font-size: .7rem;
}
.project-body h3 {
  font-size: 1.7rem;
  margin-top: 4px;
}
.project-body > p:not(.project-kind) {
  color: var(--muted);
  font-size: .89rem;
  margin-top: 6px;
}
.project-details {
  margin-top: 23px;
  border-top: 1px solid #3a4c60;
}
.project-details summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  list-style: none;
  padding-block: 15px;
  font-size: .8rem;
}
.project-details summary::-webkit-details-marker {
  display: none;
}
.project-details[open] summary > span {
  transform: rotate(45deg);
}
.project-details > p {
  color: var(--muted);
  font-size: .84rem;
  padding-bottom: 12px;
  max-width: 540px;
}
.achievement-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 55px;
}
.achievement-grid article {
  padding-top: 18px;
  border-top: 1px solid var(--line);
}
.achievement-spark {
  color: var(--mint);
  font-size: 2.1rem;
  display: block;
  margin-bottom: 20px;
}
.achievement-grid h3 {
  font-size: 1.35rem;
  margin-bottom: 12px;
}
.achievement-grid p {
  color: var(--muted);
  font-size: .87rem;
}
.site-footer {
  min-height: 130px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-top: 1px solid var(--line);
}
.site-footer p {
  color: var(--muted);
  font-size: .74rem;
}
.site-footer .text-link {
  font-size: .75rem;
}
#flash-group {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 50;
}
.alert {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 16px;
}
.alert-error {
  color: #ffb9b0;
}
.alert-info {
  color: var(--mint);
}
@keyframes caret {
  50% {
    opacity: 0;
  }
}
@keyframes terminal-disperse {
  0%, 25% {
    opacity: 1;
    transform: scale(1);
  }
  75%, 100% {
    opacity: 0;
    transform: scale(.4);
  }
}
@keyframes node-arrive {
  from {
    opacity: 0;
    transform: scale(.8);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
@media (min-width: 1500px) {
  .hero {
    min-height: 815px;
  }
}
@media (max-width: 1050px) {
  .wrap {
    width: calc(100% - 64px);
  }
  .desktop-nav {
    gap: 22px;
  }
  .hero {
    min-height: 760px;
  }
  .hero-actions {
    gap: 22px;
  }
  .location {
    font-size: .68rem;
  }
  .about-grid {
    gap: 40px;
  }
  .portrait-caption {
    font-size: .6rem;
  }
  .hero-actions .text-link {
    font-size: .8rem;
  }
}
@media (max-width: 760px) {
  html {
    scroll-padding-top: 25px;
  }
  .wrap {
    width: calc(100% - 40px);
  }
  .section {
    padding-block: 70px;
  }
  .site-header {
    height: 80px;
  }
  .desktop-nav {
    display: none;
  }
  .mobile-nav {
    display: block;
    position: relative;
    font-size: .84rem;
    z-index: 10;
  }
  .mobile-nav summary {
    display: flex;
    align-items: center;
    gap: 10px;
    list-style: none;
    cursor: pointer;
    min-height: 44px;
  }
  .mobile-nav summary::-webkit-details-marker {
    display: none;
  }
  .mobile-nav nav {
    position: absolute;
    top: 54px;
    right: 0;
    width: 200px;
    padding: 10px;
    background: #21334b;
    border: 1px solid #5b6980;
    border-radius: 9px;
    box-shadow: 0 14px 40px #0004;
  }
  .mobile-nav nav a {
    display: block;
    padding: 12px;
  }
  .hero {
    min-height: auto;
    padding-top: 40px;
    padding-bottom: 105px;
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .location {
    font-size: .64rem;
    gap: 8px;
    margin-bottom: 25px;
  }
  .location-line {
    width: 12px;
  }
  h1 {
    font-size: clamp(5rem, 17.5vw, 7rem);
  }
  .hero-hello {
    font-size: 1rem;
  }
  .role-line {
    font-size: 1.35rem;
    height: 44px;
    margin-top: 20px;
  }
  .hero-description {
    max-width: 400px;
    font-size: .96rem;
  }
  .hero-actions {
    gap: 25px;
    margin-top: 25px;
  }
  .button {
    padding: 14px 20px;
    gap: 13px;
    font-size: .8rem;
  }
  .hero-actions .text-link {
    font-size: .8rem;
  }
  .portrait-monogram > span:first-child {
    font-size: clamp(7rem, 32vw, 10rem);
  }
  .portrait-caption {
    font-size: .66rem;
  }
  .hero-bottom {
    bottom: 17px;
    font-size: .7rem;
  }
  .about-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .about-copy > p:not(.section-kicker) {
    font-size: .9rem;
  }
  .section-heading {
    display: block;
    margin-bottom: 27px;
  }
  .section-heading > p {
    margin-top: 20px;
    font-size: .78rem;
  }
  .section-heading > p br {
    display: none;
  }
  .section-heading > p br::after {
    content: " ";
  }
  .career-note {
    font-size: .71rem;
  }
  .experience-row {
    grid-template-columns: 1fr;
    gap: 18px;
    padding-block: 30px;
  }
  .experience-company h3 {
    font-size: 1.5rem;
  }
  .experience-description {
    padding-left: 22px;
  }
  .experience-description > p {
    font-size: .86rem;
  }
  .experience-description h4 {
    font-size: .92rem;
  }
  .project-grid {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  .project-toolbar {
    gap: 10px;
  }
  .project-filters button {
    padding: 8px 15px;
    font-size: .72rem;
  }
  #project-count {
    font-size: .67rem;
  }
  .project-visual {
    aspect-ratio: 1.5;
  }
  .abstract-art > span {
    font-size: 2rem;
  }
  .project-body {
    padding-top: 18px;
  }
  .project-body h3 {
    font-size: 1.5rem;
  }
  .project-details {
    margin-top: 17px;
  }
  .achievement-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .achievement-spark {
    margin-bottom: 9px;
  }
  .achievement-grid h3 {
    font-size: 1.2rem;
  }
  .achievement-grid p {
    max-width: 460px;
  }
  .site-footer {
    flex-wrap: wrap;
    justify-content: space-between;
    padding-block: 30px;
    gap: 18px;
  }
  .site-footer p {
    order: 3;
    width: 100%;
  }
  .site-footer .wordmark {
    font-size: 1.2rem;
  }
}
@media (max-width: 360px) {
  .wrap {
    width: calc(100% - 32px);
  }
  .location {
    font-size: .57rem;
    gap: 6px;
  }
  .hero-actions {
    gap: 15px;
  }
  .button {
    padding: 13px 15px;
  }
  .project-filters button {
    padding: 8px 11px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
  }
  .typing-caret {
    opacity: 1;
  }
}
.about-copy .about-resume {
  margin-top: 23px;
}
.about-copy .social-links {
  margin-top: 22px;
}
.experience-row {
  grid-template-columns: minmax(180px, .85fr) minmax(0, 1.6fr) minmax(200px, 248px);
  gap: clamp(24px, 3vw, 44px);
  align-items: start;
}
.experience-company, .experience-description {
  min-width: 0;
}
.experience-company h3 {
  font-size: clamp(1.3rem, 2vw, 1.65rem);
  line-height: 1.4;
}
.experience-company h3 a {
  border-bottom: 1px solid transparent;
  transition: border-color .2s;
}
.experience-company h3 a:is(:hover, :focus-visible) {
  border-color: var(--lilac);
}
.experience-company .experience-title {
  font-size: .74rem;
  line-height: 1.75;
  max-width: 220px;
  margin-top: 10px;
}
.experience-preview {
  display: block;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 9px;
  overflow: hidden;
  background: var(--surface);
  transition: transform .25s, border-color .25s, box-shadow .25s;
}
.preview-browser {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 30px;
  padding: 7px 10px;
  font-size: .57rem;
  color: var(--muted);
  line-height: 1.2;
}
.preview-browser > .size-3 {
  margin-left: auto;
  flex-shrink: 0;
}
.preview-dots {
  display: inline-flex;
  gap: 3px;
  margin-right: 3px;
  flex-shrink: 0;
}
.preview-dots i {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: #77889c;
}
.experience-preview-screen {
  display: grid;
  place-items: center;
  aspect-ratio: 1.9;
  background: #fafafa;
  overflow: hidden;
}
.experience-preview img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  min-height: 0;
}
.preview-caption {
  display: block;
  color: var(--muted);
  font-size: .59rem;
  padding: 6px 10px;
}
.experience-preview:is(:hover, :focus-visible) {
  transform: translateY(-3px);
  border-color: var(--lilac);
  box-shadow: 0 10px 26px #050f2029;
}
.experience-row:focus-within::before {
  transform: scaleY(1);
}
.project-figure {
  margin: 0;
  min-width: 0;
}
.project-image-dark {
  background: #010300;
}
.project-image-charcoal {
  background: #20201f;
}
.project-image-light {
  background: #f5f5f0;
}
.project-image-warm {
  background: #fdfbf6;
}
.project-visual img {
  display: block;
  object-fit: contain;
}
.project-image-caption {
  color: var(--muted);
  font-size: .64rem;
  line-height: 1.6;
  padding: 10px 2px 0;
}
.project-body {
  padding-top: 17px;
}
@media (min-width: 761px) and (max-width: 1050px) {
  .experience-row {
    grid-template-columns: minmax(155px, .8fr) minmax(0, 1.5fr);
    gap: 20px 35px;
  }
  .experience-company {
    grid-row: span 2;
  }
  .experience-preview {
    grid-column: 2;
    width: 248px;
    max-width: 100%;
  }
}
@media (max-width: 760px) {
  .experience-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }
  .experience-company h3 {
    font-size: 1.5rem;
  }
  .experience-company .experience-title {
    max-width: none;
    margin-top: 5px;
  }
  .experience-preview {
    margin-left: 22px;
    width: calc(100% - 22px);
    max-width: 440px;
  }
  .preview-browser {
    font-size: .65rem;
    padding: 9px 12px;
  }
  .preview-caption {
    font-size: .64rem;
    padding: 7px 12px;
  }
  .project-visual {
    aspect-ratio: 1.64;
  }
}
@media (prefers-reduced-motion: reduce) {
  .experience-preview:is(:hover, :focus-visible) {
    transform: none;
  }
}
@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-leading {
  syntax: "*";
  inherits: false;
}
@property --tw-font-weight {
  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-duration {
  syntax: "*";
  inherits: false;
}
@property --tw-ease {
  syntax: "*";
  inherits: false;
}
@property --tw-scale-x {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@property --tw-scale-y {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@property --tw-scale-z {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
@layer properties {
  @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
    *, ::before, ::after, ::backdrop {
      --tw-translate-x: 0;
      --tw-translate-y: 0;
      --tw-translate-z: 0;
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-leading: initial;
      --tw-font-weight: 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-duration: initial;
      --tw-ease: initial;
      --tw-scale-x: 1;
      --tw-scale-y: 1;
      --tw-scale-z: 1;
    }
  }
}

/* Standalone SVG images keep the About icons crisp during orbital motion. */
.system-node-mark { display: grid; place-items: center; width: 28px; height: 28px; flex-shrink: 0; line-height: 0; }
.system-node-mark img { display: block; width: 100%; height: 100%; border: 0; object-fit: contain; }
.system-detail-icon img { display: block; width: 20px; height: 20px; }
@media (max-width: 760px) { .system-node-mark { width: 24px; height: 24px; } }
