
@layer gio-dark;
:root {
--color-neutral-25: oklch(99% 0 0);
  --color-neutral-50: oklch(98.5% 0 0);
  --color-neutral-150: oklch(96% 0 0);
  --color-neutral-250: oklch(90% 0 0);
  --color-neutral-750: oklch(31% 0 0);
  --color-neutral-850: oklch(23% 0 0);
  --surface-secondary: light-dark(var(--color-neutral-50, oklch(98.5% 0 0)), #000);
font: 16px/145% var(--sans);
  letter-spacing: 0.18px;
  color-scheme: light;
  color: var(--text);
  background: var(--bg);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
html:not(.dark) {
  color-scheme: light;
}
@media print {
html.dark,
  html.light {
    color-scheme: light;
  }
#theme-toggle {
    display: none;
  }
}
.site-scrim {
  background-color: #0000003d;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}
@media screen {
  html.dark .site-scrim {
    background-color: #00000096;
  }
}
html.no-backdrop #page-content,
html.no-backdrop .site-scrim,
html.no-backdrop .news-year-bar {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
html.no-backdrop #site-header,
html.no-backdrop #site-header-spacer,
html.no-backdrop #mobile-nav-menu,
html.no-backdrop #back-to-top {
  transform: translateZ(0);
}
html.no-backdrop .news-year-bar {
--tw-gradient-from: rgb(255 255 255 / 0.97);
  --tw-gradient-to: rgb(248 250 252 / 0.98);
}
html.no-backdrop.scrim-open #page-content {
  filter: blur(10px);
}
html.no-backdrop.scrim-covers-header #site-header,
html.no-backdrop.scrim-covers-header #site-header-spacer {
  filter: blur(10px);
}
.skip-link {
  position: fixed;
  top: 0;
  left: 12px;
  z-index: 100;
  padding: 10px 16px;
  border-radius: 0 0 6px 6px;
  background: var(--surface-card, #fff);
  color: var(--text, #1f2937);
  box-shadow: 0 4px 16px rgb(0 0 0 / 0.18);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transform: translateY(-120%);
  transition: transform 160ms ease;
}
.skip-link:focus-visible {
  transform: translateY(0);
  outline: 2px solid var(--brand-accent, #0284c7);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .skip-link {
    transition: none;
  }
}
@media print {
  .skip-link {
    display: none;
  }
}
@media screen {
  html.dark {
    color-scheme: dark;
--surface-page: #000;
    --surface-card: #141414;
    --surface-card-90: rgb(20 20 20 / 0.9);
    --surface-card-70: rgb(20 20 20 / 0.7);
--surface-sunken: rgb(255 255 255 / 0.06);
    --surface-glass: rgb(14 14 14 / 0.72);
    --surface-glass-strong: rgb(14 14 14 / 0.92);
--line-hair: #242424;
    --line-hair-strong: #383838;
    --line-rule: #5a5a5a;
--ink-1: #f5f5f5;
--ink-2: #ededed;
--ink-3: #9e9e9e;
--ink-placeholder: #8a8a8a;
--brand-accent: #38bdf8;
--brand-accent-hover: #7dd3fc;
    --brand-accent-solid: #38bdf8;
    --brand-accent-ink: #000;
--brand-wash: rgb(12 74 110 / 0.55);
    --brand-wash-soft: rgb(12 74 110 / 0.35);
    --brand-ring: rgb(56 189 248 / 0.45);
    --hover-wash: rgb(255 255 255 / 0.07);
--amber-accent: #fbbf24;
--amber-solid: #f59e0b;
    --fn-pink: #f472b6;
    --fn-emerald: #34d399;
    --fn-orange: #fbbf24;
    --fn-lime: #a3e635;
    --fn-rose: #fb7185;
--text: var(--ink-2);
    --text-h: var(--ink-1);
    --bg: var(--surface-page);
    --border: var(--line-hair);
    --code-bg: rgb(255 255 255 / 0.07);
    --surface-secondary: var(--surface-page);
--scholar-chart-tick: #d4d4d4;
    --scholar-chart-grid: rgb(255 255 255 / 0.18);
    --scholar-chart-bar: #5c5c5c;
    --scholar-chart-bar-border: #8f8f8f;
    --scholar-chart-value: #d4d4d4;
    --scholar-chart-axis: #6b6b6b;
  }
}
@media (max-width: 1024px) {
  :root {
    font-size: 16px;
  }
}
body {
  margin: 0;
  background-repeat: repeat;
  background-position: top left;
  color: var(--text);
  min-height: 100svh;
}
h1,
h2 {
  font-family: var(--heading);
  color: var(--text-h);
}
h1 {
  font-size: 56px;
  letter-spacing: -1.68px;
  margin: 32px 0;
}
@media (max-width: 1024px) {
  h1 {
    font-size: 36px;
    margin: 20px 0;
  }
}
h2 {
  font-size: 24px;
  line-height: 118%;
  letter-spacing: -0.24px;
  margin: 0 0 8px;
}
@media (max-width: 1024px) {
  h2 {
    font-size: 20px;
  }
}
p {
  margin: 0;
}
code {
  font-family: var(--mono);
  display: inline-flex;
  border-radius: 4px;
  color: var(--text-h);
  font-size: 15px;
  line-height: 135%;
  padding: 4px 8px;
  background: var(--code-bg);
}
.pub-summary-block {
  display: grid;
  grid-template-rows: 0fr;
  margin-top: 0;
  padding-block: 0;
  opacity: 0;
visibility: hidden;
  transition:
    grid-template-rows 0.18s cubic-bezier(0, 0, 0.2, 1),
    padding-block 0.18s cubic-bezier(0, 0, 0.2, 1),
    margin-top 0.18s cubic-bezier(0, 0, 0.2, 1),
    opacity 0.18s cubic-bezier(0, 0, 0.2, 1),
    visibility 0s linear 0.18s;
}
.pub-summary-block[data-open] {
  grid-template-rows: 1fr;
  margin-top: calc(var(--spacing, 0.25rem) * 1);
  padding-block: calc(var(--spacing, 0.25rem) * 2);
  opacity: 1;
  visibility: visible;
  transition:
    grid-template-rows 0.18s cubic-bezier(0, 0, 0.2, 1),
    padding-block 0.18s cubic-bezier(0, 0, 0.2, 1),
    margin-top 0.18s cubic-bezier(0, 0, 0.2, 1),
    opacity 0.18s cubic-bezier(0, 0, 0.2, 1),
    visibility 0s;
}
.pub-summary-body {
  min-height: 0;
  overflow: hidden;
}
@media (prefers-reduced-motion: reduce) {
.pub-summary-block,
  .pub-summary-block[data-open] {
    transition: none;
  }
}
@layer gio-dark {
  @media screen {
.dark .site-body {
      background-color: #000 !important;
      background-image: none !important;
    }
.dark .text-slate-900,
    .dark .text-slate-900\!,
    .dark .text-black,
    .dark .text-gray-800,
    .dark .hover\:text-slate-900:hover {
      color: var(--ink-1) !important;
    }
.dark .text-slate-800,
    .dark .text-slate-700,
    .dark .text-gray-700,
    .dark .hover\:text-slate-700:hover {
      color: var(--ink-2) !important;
    }
.dark .text-slate-600,
    .dark .text-slate-500,
    .dark .text-slate-500\!,
    .dark .text-slate-400,
    .dark .text-slate-400\!,
    .dark .text-gray-600 {
      color: var(--ink-3) !important;
    }
.dark .text-slate-300 {
      color: var(--ink-placeholder) !important;
    }
.dark .text-sky-600,
    .dark .text-sky-700,
    .dark .text-sky-700\!,
    .dark .text-sky-700\/80,
    .dark .text-sky-800,
    .dark .text-sky-800\/90,
    .dark .text-sky-900,
    .dark .text-sky-900\!,
    .dark .\!text-sky-900,
    .dark .text-cyan-900,
    .dark .\[\&_a\]\:text-sky-600 a,
    .dark .\[\&_a\]\:text-sky-700 a,
    .dark .aria-selected\:text-sky-600[aria-selected="true"],
    .dark .aria-selected\:text-sky-700[aria-selected="true"] {
      color: var(--brand-accent) !important;
    }
.dark .hover\:text-sky-600:hover,
    .dark .hover\:text-sky-600\!:hover,
    .dark .hover\:text-sky-700:hover,
    .dark .hover\:text-sky-700\!:hover,
    .dark .hover\:text-sky-800:hover,
    .dark .hover\:text-sky-800\!:hover,
    .dark .hover\:text-sky-900:hover,
    .dark .\[\&_a\:hover\]\:text-sky-700 a:hover,
    .dark .\[\&_a\:hover\]\:text-sky-800 a:hover,
    .dark .group\/card:hover .group-hover\/card\:text-sky-900,
    .dark .group\/past:hover .group-hover\/past\:text-sky-900,
    .dark .group\/topic-card:hover .group-hover\/topic-card\:text-sky-900,
    .dark .group\/more-card:hover .group-hover\/more-card\:text-sky-900,
    .dark .group\/member:hover .group-hover\/member\:text-sky-700 {
      color: var(--brand-accent-hover) !important;
    }
.dark .bg-white {
      background-color: var(--surface-card) !important;
    }
.dark .bg-white\/90 {
      background-color: var(--surface-card-90) !important;
    }
@media (min-width: 64rem) {
      .dark .lg\:bg-white\/90 {
        background-color: var(--surface-card-90) !important;
      }
    }
@media (min-width: 48rem) {
      .dark .md\:bg-white\/90 {
        background-color: var(--surface-card-90) !important;
      }
    }
.dark .bg-white\/70 {
      background-color: var(--surface-card-70) !important;
    }
.dark .bg-white\/40 {
      background-color: var(--surface-glass) !important;
    }
.dark .bg-white\/60,
    .dark .bg-white\/80 {
      background-color: var(--surface-glass-strong) !important;
    }
.dark .bg-slate-100,
    .dark .bg-slate-100\/80,
    .dark .bg-white\/20 {
      background-color: var(--surface-sunken) !important;
    }
.dark .bg-sky-200,
    .dark .bg-sky-200\/80 {
      background-color: var(--brand-wash) !important;
    }
@media (min-width: 64rem) {
      .dark .lg\:bg-sky-200\/80 {
        background-color: var(--brand-wash) !important;
      }
    }
@media (min-width: 48rem) {
      .dark .md\:bg-sky-200\/80 {
        background-color: var(--brand-wash) !important;
      }
    }
.dark .bg-sky-100,
    .dark .bg-sky-100\/30 {
      background-color: var(--brand-wash-soft) !important;
    }
.dark .bg-sky-600,
    .dark .bg-sky-600\!,
    .dark .bg-sky-700,
    .dark .aria-pressed\:bg-sky-600[aria-pressed="true"],
    .dark .aria-pressed\:bg-sky-700[aria-pressed="true"] {
      background-color: var(--brand-accent-solid) !important;
    }
.dark .bg-sky-600.text-white,
    .dark .bg-sky-600\!.text-white,
    .dark .bg-sky-700.text-white,
    .dark .aria-pressed\:text-white[aria-pressed="true"] {
      color: var(--brand-accent-ink) !important;
    }
.dark .bg-sky-600>svg,
    .dark .bg-sky-600\!>svg,
    .dark .bg-sky-700>svg,
    .dark .aria-pressed\:fill-white[aria-pressed="true"] {
      fill: var(--brand-accent-ink) !important;
    }
.dark .aria-pressed\:stroke-white[aria-pressed="true"] {
      stroke: var(--brand-accent-ink) !important;
    }
.dark .hover\:bg-sky-700:hover,
    .dark .hover\:bg-sky-800:hover {
      background-color: var(--brand-accent-hover) !important;
    }
.dark .theme-brand-tile {
      background-color: #0284c7 !important;
    }
.dark .theme-brand-tile>svg {
      fill: #fff !important;
    }
.dark .theme-brand-button {
      background-color: #0369a1 !important;
    }
.dark .theme-brand-button.text-white {
      color: #fff !important;
    }
.dark .theme-brand-button:hover {
      background-color: #075985 !important;
    }
.dark .bg-amber-600,
    .dark .bg-amber-700 {
      background-color: var(--amber-solid) !important;
    }
.dark .bg-amber-600.text-white,
    .dark .bg-amber-700.text-white {
      color: var(--surface-page) !important;
    }
.dark .text-amber-600,
    .dark .text-amber-700 {
      color: var(--amber-accent) !important;
    }
.dark .border-amber-600,
    .dark .border-amber-700 {
      border-color: var(--amber-accent) !important;
    }
.dark .hover\:bg-gray-100:hover,
    .dark .hover\:bg-gray-300\/50:hover,
.dark .hover\:bg-slate-200\/60:hover,
    .dark .hover\:bg-slate-50:hover,
    .dark .hover\:bg-sky-50:hover,
    .dark .hover\:bg-sky-50\/40:hover,
    .dark .hover\:bg-sky-50\/50:hover,
    .dark .hover\:bg-sky-100:hover,
    .dark .hover\:bg-sky-100\/60:hover,
    .dark .hover\:bg-sky-200:hover {
      background-color: var(--hover-wash) !important;
    }
.dark .bg-slate-300 {
      background-color: var(--line-hair-strong) !important;
    }
.dark .border-slate-100,
    .dark .border-slate-200,
    .dark .border-slate-300,
    .dark .border-slate-300\/80,
    .dark .border-gray-300,
    .dark .border-sky-100,
    .dark .border-sky-100\/90,
    .dark .border-sky-200,
    .dark .border-white\/30,
    .dark .border-white\/80 {
      border-color: var(--line-hair) !important;
    }
.dark .border-slate-700 {
      border-color: var(--line-rule) !important;
    }
.dark .theme-rail-rule {
      border-color: var(--brand-ring) !important;
    }
.dark .border-sky-300,
    .dark .border-sky-600,
    .dark .aria-selected\:border-sky-500[aria-selected="true"],
    .dark .hover\:aria-selected\:border-sky-600:hover[aria-selected="true"] {
      border-color: var(--brand-accent) !important;
    }
.dark .divide-slate-100>:not(:last-child),
    .dark .divide-slate-400>:not(:last-child),
    .dark .divide-sky-800\/20>:not(:last-child),
    .dark .divide-sky-800\/30>:not(:last-child) {
      border-color: var(--line-hair) !important;
    }
.dark .ring-slate-900\/5,
    .dark .ring-slate-900\/10,
    .dark .ring-slate-900\/\[0\.06\],
    .dark .ring-slate-900\/\[0\.08\] {
      --tw-ring-color: var(--line-hair) !important;
    }
.dark .hover\:ring-sky-300\/80:hover {
      --tw-ring-color: var(--brand-ring) !important;
    }
.dark .from-white\/75 {
      --tw-gradient-from: rgb(20 20 20 / 0.75) !important;
    }
.dark .to-sky-50\/45 {
      --tw-gradient-to: rgb(20 20 20 / 0.5) !important;
    }
.dark .from-white\/80 {
      --tw-gradient-from: rgb(14 14 14 / 0.9) !important;
    }
.dark .from-white\/60 {
      --tw-gradient-from: rgb(14 14 14 / 0.8) !important;
    }
.dark .to-slate-50\/80 {
      --tw-gradient-to: rgb(14 14 14 / 0.92) !important;
    }
.dark .from-sky-50\/80 {
      --tw-gradient-from: rgb(20 20 20 / 0.95) !important;
    }
.dark .to-white\/80 {
      --tw-gradient-to: rgb(14 14 14 / 0.92) !important;
    }
.dark .shadow-slate-300\/30 {
      --tw-shadow-color: rgb(0 0 0 / 0.6) !important;
    }
.dark .fill-sky-600,
    .dark .fill-sky-700,
    .dark .fill-sky-800,
    .dark .fill-sky-900 {
      fill: var(--brand-accent) !important;
    }
.dark .hover\:fill-sky-700:hover {
      fill: var(--brand-accent-hover) !important;
    }
.dark .hover\:stroke-sky-700:hover {
      stroke: var(--brand-accent-hover) !important;
    }
.dark .fill-slate-600,
    .dark .fill-neutral-500 {
      fill: var(--ink-3) !important;
    }
.dark .stroke-slate-600 {
      stroke: var(--ink-3) !important;
    }
.dark .hover\:fill-neutral-700:hover {
      fill: var(--ink-1) !important;
    }
.dark .accent-sky-600 {
      accent-color: var(--brand-accent) !important;
    }
.dark ::selection {
      background-color: rgb(56 189 248 / 0.3) !important;
    }
.dark .pub-doi-link {
      color: var(--fn-pink) !important;
      fill: var(--fn-pink) !important;
    }
.dark .pub-pdf-link {
      color: var(--fn-emerald) !important;
      fill: var(--fn-emerald) !important;
    }
.dark .pub-bibtex-trigger {
      color: var(--brand-accent) !important;
      fill: var(--brand-accent) !important;
    }
.dark .pub-summary-trigger {
      color: var(--fn-orange) !important;
    }
@media (hover: hover) {
.dark .pub-doi-link:hover,
      .dark .pub-pdf-link:hover,
      .dark .pub-bibtex-trigger:hover,
      .dark .pub-summary-trigger:hover {
        color: var(--surface-page) !important;
        fill: var(--surface-page) !important;
      }
.dark .pub-doi-link:hover {
        background-color: var(--fn-pink) !important;
      }
.dark .pub-pdf-link:hover {
        background-color: var(--fn-emerald) !important;
      }
.dark .pub-bibtex-trigger:hover {
        background-color: var(--brand-accent) !important;
      }
.dark .pub-summary-trigger:hover {
        background-color: var(--fn-orange) !important;
      }
    }
.dark .pub-summary-block {
      background-color: var(--surface-sunken) !important;
      color: var(--ink-2) !important;
    }
.dark .pub-summary-block a {
      color: var(--brand-accent) !important;
    }
.dark .pub-summary-block a:hover {
      color: var(--brand-accent-hover) !important;
    }
.dark .pub-summary-block small {
      color: var(--ink-3) !important;
    }
.dark .text-lime-700 {
      color: var(--fn-lime) !important;
    }
.dark .text-rose-700 {
      color: var(--fn-rose) !important;
    }
.dark .text-emerald-700 {
      color: var(--fn-emerald) !important;
    }
.dark .cv-print-fail-note {
      background: var(--surface-card) !important;
      color: var(--fn-rose) !important;
    }
.dark .theme-invert-mark {
      filter: invert(1);
    }
.dark .theme-chip-mark {
background-color: #f5f5f5 !important;
      border-radius: 6px !important;
      padding: 1px !important;
    }
.dark .dark\:bg-slate-900\/45 {
      background-color: rgb(20 20 20 / 0.55) !important;
    }
.dark .theme-toggle-sheen {
      background-image: radial-gradient(circle at 50% 0%, rgb(255 255 255 / 0.16), transparent 62%) !important;
    }
.dark .research-prose,
    .dark .scyphy-prose {
      color: var(--ink-2) !important;
    }
.dark .research-prose h3,
    .dark .research-prose h4,
    .dark .research-prose strong,
    .dark .scyphy-prose h3,
    .dark .scyphy-prose h4,
    .dark .scyphy-prose strong {
      color: var(--ink-1) !important;
    }
.dark .research-prose a,
    .dark .scyphy-prose a {
      color: var(--brand-accent) !important;
      text-decoration-color: rgb(56 189 248 / 0.4) !important;
    }
.dark .research-prose a:hover,
    .dark .scyphy-prose a:hover {
      color: var(--brand-accent-hover) !important;
      text-decoration-color: currentColor !important;
    }
.dark .research-prose blockquote,
    .dark .scyphy-prose blockquote {
      border-left-color: var(--line-hair-strong) !important;
      color: var(--ink-3) !important;
    }
.dark .research-prose hr,
    .dark .scyphy-prose hr {
      border-top-color: var(--line-hair) !important;
    }
.dark .research-prose img,
    .dark .scyphy-prose img {
      box-shadow: 0 0 0 1px var(--line-hair-strong) !important;
    }
.dark :is(.research-prose, .home-prose) .research-figure__no,
    .dark :is(.research-prose, .home-prose) .research-figure__caption {
      color: #fff !important;
    }
html.dark.no-backdrop .news-year-bar {
      --tw-gradient-from: rgb(14 14 14 / 0.98) !important;
      --tw-gradient-to: rgb(14 14 14 / 0.98) !important;
    }
  }
}
@keyframes hw-img-sweep {
  from { background-position: 100% 0; }
  to   { background-position: -100% 0; }
}
img.hw-img-skel:not(.is-loaded) {
  background-color: #e2e8f0;
  background-image: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 255, 255, 0.7) 50%,
    transparent 100%
  );
  background-repeat: no-repeat;
  background-size: 200% 100%;
  animation: hw-img-sweep 1.45s linear infinite;
}
html.dark img.hw-img-skel:not(.is-loaded) {
  background-color: #1f1f1f;
  background-image: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 255, 255, 0.09) 50%,
    transparent 100%
  );
}
@media (prefers-reduced-motion: reduce) {
  img.hw-img-skel:not(.is-loaded) {
    animation: none;
  }
}
.scholar-chart {
  display: block;
  overflow: visible;
}
.scholar-chart__axis {
  stroke: var(--scholar-chart-axis, #6b7280);
  stroke-width: 1;
}
.scholar-chart__hit {
  fill: transparent;
}
.scholar-chart__bar {
  fill: var(--scholar-chart-bar, #bfbfbf);
  stroke: var(--scholar-chart-bar-border, #8f8f8f);
  stroke-width: 1;
  transform-box: fill-box;
  transform-origin: bottom;
  animation: scholar-chart-grow 0.6s ease-out;
  transition: fill 120ms ease-out;
}
.scholar-chart__col:hover .scholar-chart__bar {
  fill: var(--scholar-chart-bar-border, #8f8f8f);
}
.scholar-chart__value {
  fill: var(--scholar-chart-value, #4b5563);
  font: 600 11px sans-serif;
  text-anchor: middle;
  animation: scholar-chart-fade 0.3s ease-out 0.45s both;
}
.scholar-chart__tick {
  fill: var(--scholar-chart-tick, #111827);
  font: 600 10px sans-serif;
  text-anchor: middle;
  transition: opacity 120ms ease-out;
}
.scholar-chart__tick--alt {
  opacity: 0;
}
.scholar-chart__col:hover .scholar-chart__tick--alt {
  opacity: 1;
}
@keyframes scholar-chart-grow {
  from {
    transform: scaleY(0);
  }
}
@keyframes scholar-chart-fade {
  from {
    opacity: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .scholar-chart__bar,
  .scholar-chart__value {
    animation: none;
  }
}
@media print {
  .scholar-chart {
    --scholar-chart-tick: #111827;
    --scholar-chart-bar: #bfbfbf;
    --scholar-chart-bar-border: #8f8f8f;
    --scholar-chart-value: #4b5563;
    --scholar-chart-axis: #6b7280;
  }
}
