@layer zw-reset, zw-tokens, zfb-hi, base, components;
@layer zw-reset {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border-width: 0;
    border-style: solid;
    border-color: currentColor;
  }
  html {
    line-height: 1.5;
    font-family: ui-sans-serif, system-ui, sans-serif;
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
  }
  body {
    line-height: inherit;
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-size: inherit;
    font-weight: inherit;
  }
  a {
    color: inherit;
    text-decoration: inherit;
  }
  b,
  strong {
    font-weight: bolder;
  }
  code,
  kbd,
  samp,
  pre {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 1em;
  }
  ol,
  ul,
  menu {
    list-style: none;
  }
  button,
  input,
  optgroup,
  select,
  textarea {
    font: inherit;
    letter-spacing: inherit;
    color: inherit;
  }
  button,
  input:where([type="button"], [type="reset"], [type="submit"]) {
    background-color: transparent;
    background-image: none;
  }
  textarea {
    resize: vertical;
  }
  img,
  svg,
  video,
  canvas,
  audio,
  iframe,
  embed,
  object {
    display: block;
    vertical-align: middle;
  }
  img,
  video {
    max-width: 100%;
    height: auto;
  }
  table {
    border-collapse: collapse;
    border-color: inherit;
    text-indent: 0;
  }
  summary {
    display: list-item;
  }
  hr {
    height: 0;
    border-top-width: 1px;
  }
}
@layer zw-tokens {
  :root {
    --zw-color-accent: var(--zfbtw-color-accent);
    --zw-color-bg: var(--zfbtw-bg);
    --zw-color-danger: var(--zfbtw-color-danger);
    --zw-color-fg: var(--zfbtw-fg);
    --zw-color-muted: var(--zfbtw-color-muted);
    --zw-color-primary: var(--zfbtw-color-primary);
    --zw-color-success: var(--zfbtw-color-success);
    --zw-color-surface: var(--zfbtw-color-surface);
    --zw-color-warning: var(--zfbtw-color-warning);
    --zw-font-family-mono: var(--zfbtw-font-mono);
    --zw-font-size-annotation: var(--zfbtw-text-annotation);
    --zw-font-size-body: var(--zfbtw-text-body);
    --zw-font-size-helper: var(--zfbtw-text-helper);
    --zw-font-size-page-title: var(--zfbtw-text-page-title);
    --zw-font-size-scale-2xl: var(--zfbtw-scale-2xl);
    --zw-font-size-scale-base: var(--zfbtw-scale-base);
    --zw-font-size-scale-lg: var(--zfbtw-scale-lg);
    --zw-font-size-scale-md: var(--zfbtw-scale-md);
    --zw-font-size-scale-sm: var(--zfbtw-scale-sm);
    --zw-font-size-scale-xl: var(--zfbtw-scale-xl);
    --zw-font-size-scale-xs: var(--zfbtw-scale-xs);
    --zw-font-size-section-title: var(--zfbtw-text-section-title);
    --zw-font-size-subsection-title: var(--zfbtw-text-subsection-title);
    --zw-font-weight-bold: 700;
    --zw-font-weight-semibold: 600;
    --zw-leading-relaxed: var(--zfbtw-leading-relaxed);
    --zw-leading-snug: var(--zfbtw-leading-snug);
    --zw-leading-tight: var(--zfbtw-leading-tight);
    --zw-radius-md: var(--zfbtw-radius);
    --zw-size-size-avatar-md: var(--zfbtw-size-avatar-md);
    --zw-size-size-avatar-sm: var(--zfbtw-size-avatar-sm);
    --zw-size-size-header-h: var(--zfbtw-size-header-h);
    --zw-size-size-icon-md: var(--zfbtw-size-icon-md);
    --zw-size-size-icon-sm: var(--zfbtw-size-icon-sm);
    --zw-size-size-sidenav-w: var(--zfbtw-size-sidenav-w);
    --zw-spacing-hsp-lg: var(--zfbtw-hsp-lg);
    --zw-spacing-hsp-md: var(--zfbtw-hsp-md);
    --zw-spacing-hsp-sm: var(--zfbtw-hsp-sm);
    --zw-spacing-hsp-xl: var(--zfbtw-hsp-xl);
    --zw-spacing-hsp-xs: var(--zfbtw-hsp-xs);
    --zw-spacing-vsp-2xl: var(--zfbtw-vsp-2xl);
    --zw-spacing-vsp-2xs: var(--zfbtw-vsp-2xs);
    --zw-spacing-vsp-lg: var(--zfbtw-vsp-lg);
    --zw-spacing-vsp-md: var(--zfbtw-vsp-md);
    --zw-spacing-vsp-sm: var(--zfbtw-vsp-sm);
    --zw-spacing-vsp-xl: var(--zfbtw-vsp-xl);
    --zw-spacing-vsp-xs: var(--zfbtw-vsp-xs);
    --zw-spacing-unit: .25rem;
  }
}
@property --zw-translate-x {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 0px;
}
@property --zw-translate-y {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 0px;
}
:root {
  --zfbtw-scale-xs: .75rem;
  --zfbtw-scale-sm: .875rem;
  --zfbtw-scale-base: 1rem;
  --zfbtw-scale-md: 1.125rem;
  --zfbtw-scale-lg: 1.25rem;
  --zfbtw-scale-xl: 1.75rem;
  --zfbtw-scale-2xl: 2.5rem;
  --zfbtw-size-sidenav-w: 14rem;
  --zfbtw-size-header-h: 3.5rem;
  --zfbtw-size-avatar-sm: 2rem;
  --zfbtw-size-avatar-md: 2.5rem;
  --zfbtw-size-icon-sm: 1rem;
  --zfbtw-size-icon-md: 1.25rem;
  --zfbtw-radius: .5rem;
  --zfbtw-bg: #1e1e1e;
  --zfbtw-fg: #f8fafc;
  --zfbtw-palette-0: #1e1e1e;
  --zfbtw-palette-1: #2d6cdf;
  --zfbtw-palette-2: #3aa676;
  --zfbtw-palette-3: #d97706;
  --zfbtw-palette-4: #9b5de5;
  --zfbtw-palette-5: #e63946;
  --zfbtw-palette-6: #1d3557;
  --zfbtw-palette-7: #06b6d4;
  --zfbtw-palette-8: #475569;
  --zfbtw-palette-9: #94a3b8;
  --zfbtw-palette-10: #cbd5e1;
  --zfbtw-palette-11: #e2e8f0;
  --zfbtw-palette-12: #f1f5f9;
  --zfbtw-palette-13: #fef3c7;
  --zfbtw-palette-14: #bbf7d0;
  --zfbtw-palette-15: #f8fafc;
  --zfbtw-color-primary: var(--zfbtw-palette-1);
  --zfbtw-color-accent: var(--zfbtw-palette-3);
  --zfbtw-color-surface: var(--zfbtw-palette-0);
  --zfbtw-color-muted: var(--zfbtw-palette-8);
  --zfbtw-color-success: var(--zfbtw-palette-2);
  --zfbtw-color-warning: var(--zfbtw-palette-3);
  --zfbtw-color-danger: var(--zfbtw-palette-5);
  --zfbtw-easing-ease-in: cubic-bezier(.42, 0, 1, 1);
  --zfbtw-easing-ease-out: cubic-bezier(0, 0, .58, 1);
  --zfbtw-easing-ease-inout: cubic-bezier(.42, 0, .58, 1);
  --zfbtw-easing-linear: linear;
  --zfbtw-easing-tab-open: var(--zfbtw-easing-ease-in);
  --zfbtw-easing-tab-close: var(--zfbtw-easing-ease-out);
  --zfbtw-easing-modal: var(--zfbtw-easing-ease-inout);
  --zfbtw-vsp-2xs: .25rem;
  --zfbtw-vsp-xs: .5rem;
  --zfbtw-vsp-sm: .75rem;
  --zfbtw-vsp-md: 1rem;
  --zfbtw-vsp-lg: 1.75rem;
  --zfbtw-vsp-xl: 2.5rem;
  --zfbtw-vsp-2xl: 3.5rem;
  --zfbtw-hsp-xs: .25rem;
  --zfbtw-hsp-sm: .5rem;
  --zfbtw-hsp-md: 1rem;
  --zfbtw-hsp-lg: 1.5rem;
  --zfbtw-hsp-xl: 2rem;
  --zfbtw-text-page-title: var(--zfbtw-scale-xl);
  --zfbtw-text-section-title: var(--zfbtw-scale-lg);
  --zfbtw-text-subsection-title: var(--zfbtw-scale-md);
  --zfbtw-text-body: var(--zfbtw-scale-base);
  --zfbtw-text-helper: var(--zfbtw-scale-sm);
  --zfbtw-text-annotation: var(--zfbtw-scale-xs);
  --zfbtw-leading-tight: 1.2;
  --zfbtw-leading-snug: 1.45;
  --zfbtw-leading-relaxed: 1.75;
  --zfbtw-code-bg: #181b20;
  --zfbtw-code-fg: #d6dae0;
  --zfbtw-font-mono: ui-monospace, "Cascadia Code", "Source Code Pro",
                                  Menlo, Consolas, monospace;
}

@layer base {
  *, :before, :after {
    box-sizing: border-box;
  }

  html {
    -webkit-text-size-adjust: 100%;
    color-scheme: light dark;
  }

  body {
    margin: 0;
    padding: 0;
    font-family: system-ui, -apple-system, Segoe UI, sans-serif;
    line-height: 1.5;
    background: var(--zfbtw-bg);
    color: var(--zfbtw-fg);
    font-size: var(--zfbtw-scale-base);
  }

  img, svg {
    display: block;
    max-width: 100%;
  }

  button, input, select, textarea {
    font: inherit;
    color: inherit;
  }
}

@layer components {
  .zfbtw-prose > * + * {
    margin-block-start: var(--flow-space, var(--zfbtw-vsp-md));
  }

  .zfbtw-prose :where(h2) {
    --flow-space: var(--zfbtw-vsp-xl);
  }

  .zfbtw-prose :where(h3) {
    --flow-space: var(--zfbtw-vsp-lg);
  }

  .zfbtw-prose :where(h4) {
    --flow-space: var(--zfbtw-vsp-md);
  }

  .zfbtw-prose :where(h2, h3, h4) + :where(p, ul, ol, table, pre, blockquote) {
    --flow-space: var(--zfbtw-vsp-sm);
  }

  .zfbtw-prose :where(h2, h3, h4, h5, h6) + :where(h2, h3, h4, h5, h6) {
    --flow-space: var(--zfbtw-vsp-2xs);
  }

  .zfbtw-prose > :first-child {
    margin-block-start: 0;
  }

  .zfbtw-prose > :last-child {
    margin-block-end: 0;
  }

  .zfbtw-prose :where(h2) {
    font-size: var(--zfbtw-text-page-title);
    line-height: var(--zfbtw-leading-tight);
    font-weight: 700;
    color: var(--zfbtw-color-primary);
    padding-bottom: .5rem;
    border-bottom: 1px solid var(--zfbtw-color-muted);
  }

  .zfbtw-prose :where(h3) {
    font-size: var(--zfbtw-text-section-title);
    line-height: var(--zfbtw-leading-tight);
    font-weight: 600;
    color: var(--zfbtw-fg);
  }

  .zfbtw-prose :where(h4) {
    font-size: var(--zfbtw-text-subsection-title);
    line-height: var(--zfbtw-leading-snug);
    font-weight: 600;
    color: var(--zfbtw-fg);
  }

  .zfbtw-prose :where(p) {
    font-size: var(--zfbtw-text-body);
    line-height: var(--zfbtw-leading-relaxed);
  }

  .zfbtw-prose :where(code):not(pre code) {
    font-family: var(--zfbtw-font-mono);
    font-size: var(--zfbtw-text-helper);
    background: var(--zfbtw-code-bg);
    color: var(--zfbtw-code-fg);
    padding: var(--zfbtw-hsp-xs) calc(var(--zfbtw-hsp-xs) * 2);
    border-radius: .25rem;
    border: 1px solid var(--zfbtw-color-accent);
  }

  .zfbtw-prose :where(pre) {
    font-family: var(--zfbtw-font-mono);
    font-size: var(--zfbtw-text-helper);
    background: var(--zfbtw-code-bg);
    color: var(--zfbtw-code-fg);
    padding: var(--zfbtw-vsp-md) var(--zfbtw-hsp-sm);
    border-radius: var(--zfbtw-radius);
    overflow-x: auto;
  }

  .zfbtw-prose :where(pre code) {
    font-family: inherit;
    font-size: inherit;
    background: none;
    color: inherit;
    padding: 0;
    border-radius: 0;
    border: none;
  }

  .zfbtw-prose :where(blockquote) {
    border-left: 4px solid var(--zfbtw-color-accent);
    padding-left: var(--zfbtw-hsp-md);
    color: var(--zfbtw-color-muted);
    font-style: italic;
  }

  .zfbtw-prose :where(ul) {
    padding-left: var(--zfbtw-hsp-lg);
    list-style-type: disc;
  }

  .zfbtw-prose :where(ol) {
    padding-left: var(--zfbtw-hsp-lg);
    list-style-type: decimal;
  }

  .zfbtw-prose :where(li) {
    font-size: var(--zfbtw-text-body);
    line-height: var(--zfbtw-leading-snug);
    margin-block-start: var(--zfbtw-vsp-xs);
  }

  .zfbtw-prose :where(li:first-child) {
    margin-block-start: 0;
  }

  .zfbtw-prose :where(li > ul, li > ol) {
    margin-block-start: var(--zfbtw-vsp-xs);
  }

  .zfbtw-prose :where(table) {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--zfbtw-text-helper);
  }

  .zfbtw-prose :where(th) {
    text-align: left;
    font-weight: 600;
    padding: var(--zfbtw-hsp-sm) var(--zfbtw-hsp-sm);
    border-bottom: 2px solid var(--zfbtw-color-muted);
    color: var(--zfbtw-fg);
  }

  .zfbtw-prose :where(td) {
    padding: var(--zfbtw-hsp-sm) var(--zfbtw-hsp-sm);
    border-bottom: 1px solid var(--zfbtw-color-muted);
    color: var(--zfbtw-fg);
  }

  .zfbtw-prose :where(a) {
    color: var(--zfbtw-color-accent);
    text-decoration: underline;
  }

  .zfbtw-prose :where(a:hover) {
    color: var(--zfbtw-color-primary);
  }

  .zfbtw-prose :where(hr) {
    border: none;
    border-top: 1px solid var(--zfbtw-color-muted);
    margin-block: var(--zfbtw-vsp-lg);
  }

  .zfbtw-prose :where(strong) {
    font-weight: 700;
    color: var(--zfbtw-fg);
  }

  .zfbtw-prose :where(em) {
    font-style: italic;
  }

  .zfbtw-prose :where(del) {
    text-decoration: line-through;
    color: var(--zfbtw-color-muted);
  }

  .zfbtw-easing-card {
    display: block;
    width: 100%;
    padding: var(--zfbtw-hsp-md);
    background: var(--zfbtw-color-surface);
    border: 1px solid var(--zfbtw-color-muted);
    border-radius: var(--zfbtw-radius);
    color: var(--zfbtw-fg);
    cursor: pointer;
    font: inherit;
    text-align: left;
    transform: translateX(0);
    transition: transform .4s var(--zfbtw-easing-tab-open),
                background-color .4s var(--zfbtw-easing-tab-open);
  }

  .zfbtw-easing-card.is-active {
    transform: translateX(4rem);
    background: var(--zfbtw-color-primary);
  }

  .zfbtw-easing-card-label {
    font-size: var(--zfbtw-text-body);
    font-weight: 600;
  }
}

@keyframes zfbtw-content-fade-in {
  from {
    opacity: 0;
    transform: translateY(-.5rem);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes zfbtw-content-fade-out {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

[data-zfb-transition-persist="topbar"] {
  view-transition-name: zfbtw-topbar;
}

[data-zfb-transition-persist="sidenav"] {
  view-transition-name: zfbtw-sidenav;
}

::view-transition-old(zfbtw-topbar), ::view-transition-new(zfbtw-topbar), ::view-transition-group(zfbtw-topbar), ::view-transition-old(zfbtw-sidenav), ::view-transition-new(zfbtw-sidenav), ::view-transition-group(zfbtw-sidenav) {
  animation: none;
}

::view-transition-old(root) {
  animation: .15s ease-in both zfbtw-content-fade-out;
}

::view-transition-new(root) {
  animation: .3s ease-out both zfbtw-content-fade-in;
}

.zfbtw-tooltip-trigger {
  cursor: help;
  text-decoration: underline dotted;
}

.relative:hover > .zfbtw-tooltip-bubble {
  opacity: 1;
}

@layer base {
  :root {
    --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --font-mono: var(--zfbtw-font-mono);
  }

  html {
    font-family: var(--font-sans);
    -webkit-tap-highlight-color: transparent;
  }

  code, kbd, samp, pre {
    font-family: var(--font-mono);
  }

  small {
    font-size: 80%;
  }

  sub, sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }

  sub {
    bottom: -.25em;
  }

  sup {
    top: -.5em;
  }

  hr {
    color: inherit;
  }

  button, input:where([type="button"], [type="reset"], [type="submit"]) {
    appearance: button;
  }

  button, input, select, optgroup, textarea {
    border-radius: 0;
    background-color: #0000;
    opacity: 1;
  }

  ::placeholder {
    opacity: 1;
    color: color-mix(in oklab, currentcolor 50%, transparent);
  }

  ::file-selector-button {
    box-sizing: border-box;
    margin: 0;
    margin-inline-end: 4px;
    padding: 0;
    border: 0 solid;
    border-radius: 0;
    background-color: #0000;
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    appearance: button;
  }

  [hidden]:where(:not([hidden="until-found"])) {
    display: none !important;
  }
}
.flex {
  display: flex;
}
.grid {
  display: grid;
}
.inline-block {
  display: inline-block;
}
.inline-flex {
  display: inline-flex;
}
.absolute {
  position: absolute;
}
.relative {
  position: relative;
}
.bottom-0 {
  bottom: 0;
}
.bottom-full {
  bottom: 100%;
}
.left-\[50\%\] {
  left: 50%;
}
.flex-col {
  flex-direction: column;
}
.flex-wrap {
  flex-wrap: wrap;
}
.flex-1 {
  flex: 1 1 0%;
}
.shrink-0 {
  flex-shrink: 0;
}
.grid-cols-\[var\(--zfbtw-size-sidenav-w\)_1fr\] {
  grid-template-columns: var(--zfbtw-size-sidenav-w) 1fr;
}
.items-center {
  align-items: center;
}
.items-end {
  align-items: flex-end;
}
.justify-between {
  justify-content: space-between;
}
.justify-center {
  justify-content: center;
}
.h-16 {
  height: 4rem;
}
.h-\[2px\] {
  height: 2px;
}
.h-full {
  height: 100%;
}
.h-size-avatar-md {
  height: var(--zw-size-size-avatar-md);
}
.h-size-avatar-sm {
  height: var(--zw-size-size-avatar-sm);
}
.h-size-header-h {
  height: var(--zw-size-size-header-h);
}
.h-size-icon-md {
  height: var(--zw-size-size-icon-md);
}
.max-w-\[24rem\] {
  max-width: 24rem;
}
.max-w-\[32rem\] {
  max-width: 32rem;
}
.max-w-\[40rem\] {
  max-width: 40rem;
}
.max-w-\[48rem\] {
  max-width: 48rem;
}
.max-w-\[56rem\] {
  max-width: 56rem;
}
.min-h-\[6rem\] {
  min-height: 6rem;
}
.min-h-screen {
  min-height: 100vh;
}
.w-16 {
  width: 4rem;
}
.w-full {
  width: 100%;
}
.w-size-avatar-md {
  width: var(--zw-size-size-avatar-md);
}
.w-size-avatar-sm {
  width: var(--zw-size-size-avatar-sm);
}
.w-size-icon-md {
  width: var(--zw-size-size-icon-md);
}
.p-0 {
  padding-top: 0;
  padding-right: 0;
  padding-bottom: 0;
  padding-left: 0;
}
.px-hsp-lg {
  padding-left: var(--zw-spacing-hsp-lg);
  padding-right: var(--zw-spacing-hsp-lg);
}
.px-hsp-md {
  padding-left: var(--zw-spacing-hsp-md);
  padding-right: var(--zw-spacing-hsp-md);
}
.px-hsp-sm {
  padding-left: var(--zw-spacing-hsp-sm);
  padding-right: var(--zw-spacing-hsp-sm);
}
.px-hsp-xs {
  padding-left: var(--zw-spacing-hsp-xs);
  padding-right: var(--zw-spacing-hsp-xs);
}
.py-\[0\.125rem\] {
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}
.py-vsp-lg {
  padding-top: var(--zw-spacing-vsp-lg);
  padding-bottom: var(--zw-spacing-vsp-lg);
}
.py-vsp-md {
  padding-top: var(--zw-spacing-vsp-md);
  padding-bottom: var(--zw-spacing-vsp-md);
}
.py-vsp-sm {
  padding-top: var(--zw-spacing-vsp-sm);
  padding-bottom: var(--zw-spacing-vsp-sm);
}
.py-vsp-xs {
  padding-top: var(--zw-spacing-vsp-xs);
  padding-bottom: var(--zw-spacing-vsp-xs);
}
.m-0 {
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
}
.mx-auto {
  margin-left: auto;
  margin-right: auto;
}
.mb-vsp-md {
  margin-bottom: var(--zw-spacing-vsp-md);
}
.mb-vsp-sm {
  margin-bottom: var(--zw-spacing-vsp-sm);
}
.mb-vsp-xl {
  margin-bottom: var(--zw-spacing-vsp-xl);
}
.mb-vsp-xs {
  margin-bottom: var(--zw-spacing-vsp-xs);
}
.mt-vsp-md {
  margin-top: var(--zw-spacing-vsp-md);
}
.mt-vsp-sm {
  margin-top: var(--zw-spacing-vsp-sm);
}
.mt-vsp-xs {
  margin-top: var(--zw-spacing-vsp-xs);
}
.gap-hsp-md {
  column-gap: var(--zw-spacing-hsp-md);
  row-gap: var(--zw-spacing-hsp-md);
}
.gap-hsp-sm {
  column-gap: var(--zw-spacing-hsp-sm);
  row-gap: var(--zw-spacing-hsp-sm);
}
.gap-hsp-xs {
  column-gap: var(--zw-spacing-hsp-xs);
  row-gap: var(--zw-spacing-hsp-xs);
}
.gap-vsp-lg {
  column-gap: var(--zw-spacing-vsp-lg);
  row-gap: var(--zw-spacing-vsp-lg);
}
.gap-vsp-md {
  column-gap: var(--zw-spacing-vsp-md);
  row-gap: var(--zw-spacing-vsp-md);
}
.gap-vsp-sm {
  column-gap: var(--zw-spacing-vsp-sm);
  row-gap: var(--zw-spacing-vsp-sm);
}
.gap-vsp-xl {
  column-gap: var(--zw-spacing-vsp-xl);
  row-gap: var(--zw-spacing-vsp-xl);
}
.gap-vsp-xs {
  column-gap: var(--zw-spacing-vsp-xs);
  row-gap: var(--zw-spacing-vsp-xs);
}
.gap-x-hsp-lg {
  column-gap: var(--zw-spacing-hsp-lg);
}
.gap-x-hsp-md {
  column-gap: var(--zw-spacing-hsp-md);
}
.gap-x-hsp-sm {
  column-gap: var(--zw-spacing-hsp-sm);
}
.gap-y-vsp-lg {
  row-gap: var(--zw-spacing-vsp-lg);
}
.gap-y-vsp-md {
  row-gap: var(--zw-spacing-vsp-md);
}
.gap-y-vsp-sm {
  row-gap: var(--zw-spacing-vsp-sm);
}
.overflow-hidden {
  overflow: hidden;
}
.overflow-x-auto {
  overflow-x: auto;
}
.font-mono {
  font-family: var(--zw-font-family-mono);
}
.font-bold {
  font-weight: var(--zw-font-weight-bold);
}
.font-semibold {
  font-weight: var(--zw-font-weight-semibold);
}
.text-annotation {
  font-size: var(--zw-font-size-annotation);
}
.text-body {
  font-size: var(--zw-font-size-body);
}
.text-helper {
  font-size: var(--zw-font-size-helper);
}
.text-page-title {
  font-size: var(--zw-font-size-page-title);
}
.text-scale-2xl {
  font-size: var(--zw-font-size-scale-2xl);
}
.text-scale-base {
  font-size: var(--zw-font-size-scale-base);
}
.text-scale-lg {
  font-size: var(--zw-font-size-scale-lg);
}
.text-scale-md {
  font-size: var(--zw-font-size-scale-md);
}
.text-scale-sm {
  font-size: var(--zw-font-size-scale-sm);
}
.text-scale-xl {
  font-size: var(--zw-font-size-scale-xl);
}
.text-scale-xs {
  font-size: var(--zw-font-size-scale-xs);
}
.text-section-title {
  font-size: var(--zw-font-size-section-title);
}
.text-subsection-title {
  font-size: var(--zw-font-size-subsection-title);
}
.leading-none {
  line-height: 1;
}
.leading-relaxed {
  line-height: var(--zw-leading-relaxed);
}
.leading-snug {
  line-height: var(--zw-leading-snug);
}
.leading-tight {
  line-height: var(--zw-leading-tight);
}
.text-left {
  text-align: left;
}
.whitespace-nowrap {
  white-space: nowrap;
}
.text-accent {
  color: var(--zw-color-accent);
}
.text-bg {
  color: var(--zw-color-bg);
}
.text-danger {
  color: var(--zw-color-danger);
}
.text-fg {
  color: var(--zw-color-fg);
}
.text-muted {
  color: var(--zw-color-muted);
}
.text-primary {
  color: var(--zw-color-primary);
}
.bg-accent {
  background-color: var(--zw-color-accent);
}
.bg-bg {
  background-color: var(--zw-color-bg);
}
.bg-danger {
  background-color: var(--zw-color-danger);
}
.bg-muted {
  background-color: var(--zw-color-muted);
}
.bg-primary {
  background-color: var(--zw-color-primary);
}
.bg-success {
  background-color: var(--zw-color-success);
}
.bg-surface {
  background-color: var(--zw-color-surface);
}
.bg-transparent {
  background-color: transparent;
}
.bg-warning {
  background-color: var(--zw-color-warning);
}
.border {
  border-top-width: 1px;
  border-top-style: solid;
  border-right-width: 1px;
  border-right-style: solid;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  border-left-width: 1px;
  border-left-style: solid;
}
.border-b {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.border-accent {
  border-top-color: var(--zw-color-accent);
  border-right-color: var(--zw-color-accent);
  border-bottom-color: var(--zw-color-accent);
  border-left-color: var(--zw-color-accent);
}
.border-danger {
  border-top-color: var(--zw-color-danger);
  border-right-color: var(--zw-color-danger);
  border-bottom-color: var(--zw-color-danger);
  border-left-color: var(--zw-color-danger);
}
.border-muted {
  border-top-color: var(--zw-color-muted);
  border-right-color: var(--zw-color-muted);
  border-bottom-color: var(--zw-color-muted);
  border-left-color: var(--zw-color-muted);
}
.border-success {
  border-top-color: var(--zw-color-success);
  border-right-color: var(--zw-color-success);
  border-bottom-color: var(--zw-color-success);
  border-left-color: var(--zw-color-success);
}
.border-warning {
  border-top-color: var(--zw-color-warning);
  border-right-color: var(--zw-color-warning);
  border-bottom-color: var(--zw-color-warning);
  border-left-color: var(--zw-color-warning);
}
.border-none {
  border-style: none;
}
.border-collapse {
  border-collapse: collapse;
}
.rounded-md {
  border-top-left-radius: var(--zw-radius-md);
  border-top-right-radius: var(--zw-radius-md);
  border-bottom-right-radius: var(--zw-radius-md);
  border-bottom-left-radius: var(--zw-radius-md);
}
.opacity-0 {
  opacity: 0;
}
.transition {
  transition-property: all;
  transition-duration: 150ms;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.-translate-x-1\/2 {
  --zw-translate-x: calc(calc(100% * 1 / 2) * -1);
  translate: var(--zw-translate-x) var(--zw-translate-y);
}
.cursor-not-allowed {
  cursor: not-allowed;
}
.cursor-pointer {
  cursor: pointer;
}
.pointer-events-none {
  pointer-events: none;
}
.resize-y {
  resize: vertical;
}
.select-none {
  user-select: none;
}
.list-none {
  list-style-type: none;
}
.aspect-\[16\/9\] {
  aspect-ratio: 16 / 9;
}
@media (hover: hover) {
  .hover\:text-accent:hover {
    color: var(--zw-color-accent);
  }
}
@media (hover: hover) {
  .hover\:text-danger:hover {
    color: var(--zw-color-danger);
  }
}
@media (hover: hover) {
  .hover\:text-fg:hover {
    color: var(--zw-color-fg);
  }
}
@media (hover: hover) {
  .hover\:bg-accent:hover {
    background-color: var(--zw-color-accent);
  }
}
@media (hover: hover) {
  .hover\:bg-bg:hover {
    background-color: var(--zw-color-bg);
  }
}
@media (hover: hover) {
  .hover\:bg-primary:hover {
    background-color: var(--zw-color-primary);
  }
}
@media (hover: hover) {
  .hover\:bg-surface:hover {
    background-color: var(--zw-color-surface);
  }
}
.focus\:border-accent:focus {
  border-top-color: var(--zw-color-accent);
  border-right-color: var(--zw-color-accent);
  border-bottom-color: var(--zw-color-accent);
  border-left-color: var(--zw-color-accent);
}
.focus\:outline-none:focus {
  outline-style: none;
}
.disabled\:bg-muted:disabled {
  background-color: var(--zw-color-muted);
}

