:root {
  --q21-page: #edf0f2;
  --q21-text: #101316;
  --q21-muted: rgba(16,19,22,.60);
  --q21-line: rgba(12,16,20,.14);
  --q21-surface: rgba(255,255,255,.52);
  --q21-reflect-core: rgba(255,255,255,.46);
  --q21-reflect-halo: rgba(255,255,255,.14);
  --q21-radius-control: 14px;
  --q21-radius-menu: 22px;
  --q21-radius-panel: 26px;
  --q21-ease: cubic-bezier(.22,.7,.18,1);
  color-scheme: light;
}

[data-q21-theme="dark"] {
  --q21-page: #050607;
  --q21-text: #f6f7f8;
  --q21-muted: rgba(246,247,248,.64);
  --q21-line: rgba(255,255,255,.14);
  --q21-surface: rgba(10,13,16,.44);
  --q21-reflect-core: rgba(255,255,255,.18);
  --q21-reflect-halo: rgba(255,255,255,.045);
  color-scheme: dark;
}

.q21-v2-surface {
  --q21-reflect-x: 50%;
  --q21-reflect-y: 40%;
  --q21-reflect-radius: 290px;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 1px solid var(--q21-line);
  border-radius: var(--q21-radius-panel);
  background: var(--q21-surface);
  color: var(--q21-text);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 24px 64px rgba(0,0,0,.16);
  -webkit-backdrop-filter: blur(28px) saturate(145%);
  backdrop-filter: blur(28px) saturate(145%);
}

.q21-v2-surface::before,
.q21-v2-control::after {
  content: "";
  position: absolute;
  inset: -1px;
  z-index: 0;
  border-radius: inherit;
  pointer-events: none;
  background: radial-gradient(
    var(--q21-reflect-radius) circle at var(--q21-reflect-x) var(--q21-reflect-y),
    var(--q21-reflect-core),
    var(--q21-reflect-halo) 36%,
    transparent 72%
  );
  opacity: 0;
  transition: opacity 240ms ease;
}

.q21-v2-surface > *,
.q21-v2-control > * {
  position: relative;
  z-index: 1;
}

.q21-v2-surface.is-q21-reflecting::before {
  opacity: .58;
}

.q21-v2-header.is-q21-reflecting::before {
  opacity: .48;
}

.q21-v2-control {
  --q21-reflect-x: 50%;
  --q21-reflect-y: 50%;
  --q21-reflect-radius: 76px;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 44px;
  border: 1px solid var(--q21-line);
  border-radius: var(--q21-radius-control);
  transition: transform 180ms var(--q21-ease), border-color 180ms ease;
}

.q21-v2-control.is-q21-reflecting::after {
  opacity: .58;
}

.q21-v2-control:hover {
  transform: translateY(-1px);
}

.q21-v2-control:active {
  transform: scale(.975);
}

.q21-v2-nav-link {
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--q21-muted);
  transition: color 180ms ease;
}

.q21-v2-nav-link:hover,
.q21-v2-nav-link:focus-visible {
  background: transparent;
  color: var(--q21-text);
}

.q21-v2-nav-link::before,
.q21-v2-nav-link::after {
  display: none;
}

@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  .q21-v2-surface {
    background: color-mix(in srgb, var(--q21-page) 94%, var(--q21-text) 6%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .q21-v2-surface::before,
  .q21-v2-control::after,
  .q21-v2-control,
  .q21-v2-nav-link {
    transition: none;
  }
}
