@layer reset,tokens,base;
@layer tokens {
  :root {
    color-scheme: light;
    --gt-paper: #edf1f3;
    --gt-ink: #111518;
    --gt-muted: #5f6d73;
    --gt-line: #cfd6da;
    --gt-blue: #1478c8;
    --gt-blue-deep: #075995;
    --gt-focus: #1478c8;
    --gt-ease: cubic-bezier(0.2, 0.75, 0.25, 1);
    --gt-gutter: clamp(20px, 4vw, 72px);
    --gt-page: min(1440px, calc(100% - 64px));
    --gt-assistant-bottom: 22px;
    /* Shared scale: metadata, labels, copy, section titles, page titles. */
    --gt-text-micro: 0.6875rem;
    --gt-text-small: 0.75rem;
    --gt-title-page: clamp(3rem, 1.5rem + 4.5vw, 6.5rem);
    --gt-title-section: clamp(2.25rem, 1.5rem + 2.5vw, 4.25rem);
    --gt-title-preview: clamp(2.1rem, 1.35rem + 2.1vw, 3.5rem);
    --gt-title-card: clamp(1.35rem, 1rem + 1vw, 2rem);
    --gt-title-utility: clamp(2rem, 1.4rem + 2vw, 3.5rem);
    --gt-title-leading: 1.04;
    --gt-title-tracking: -0.045em;
    --gt-header-height: 84px;
    --gt-jump-height: 64px;
    --gt-hit-target: 44px;
    font-family:
      system-ui,
      -apple-system,
      BlinkMacSystemFont,
      "Segoe UI",
      Roboto,
      Helvetica,
      Arial,
      sans-serif;
  }
}
@layer reset {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }
  html {
    scroll-behavior: smooth;
    scroll-padding-top: 16px;
    -webkit-text-size-adjust: 100%;
  }
  @supports (scrollbar-gutter: stable) {
    html {
      scrollbar-gutter: stable;
    }
  }
  body {
    margin: 0;
    min-height: 100vh;
  }
  img,
  svg,
  video {
    display: block;
    max-width: 100%;
  }
  button,
  input,
  textarea,
  select {
    font: inherit;
    border-radius: 0;
  }
  button {
    color: inherit;
  }
  a {
    color: inherit;
    text-decoration: none;
  }
  a,
  button,
  [role="button"] {
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }
}
@layer base {
  html,
  body {
    background: var(--gt-paper);
    color: var(--gt-ink);
    text-rendering: optimizeLegibility;
    font-kerning: normal;
    font-synthesis: none;
    font-optical-sizing: auto;
  }
  body {
    overflow-x: hidden;
    accent-color: var(--gt-blue);
  }
  h1,
  h2,
  h3 {
    overflow-wrap: anywhere;
    min-width: 0;
  }
  body.is-locked {
    overflow: hidden;
  }
  ::selection {
    background: var(--gt-ink);
    color: #fff;
  }
  :focus-visible {
    outline: 3px solid var(--gt-focus);
    outline-offset: 3px;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.88);
  }
  [hidden] {
    display: none !important;
  }
  .sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }
  .skip-link {
    position: fixed;
    z-index: 4000;
    top: 10px;
    left: 10px;
    transform: translateY(-180%);
    padding: 12px 16px;
    background: #fff;
    color: #111518;
    border: 2px solid var(--gt-blue);
    font-size: 14px;
    font-weight: 800;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.18);
    transition: transform 0.15s ease;
  }
  .skip-link:focus {
    transform: translateY(0);
  }
  [tabindex="-1"]:focus {
    outline: none;
    box-shadow: none;
  }
  :where(a, button, input, select, textarea, summary, [tabindex]):focus {
    scroll-margin-block: calc(var(--gt-header-height) + 18px) 120px;
  }
  :where(button, input, select, textarea, summary) {
    min-block-size: 44px;
  }
  :where(button, input, select, textarea) {
    transition-property: border-color, background-color, color, box-shadow, opacity;
    transition-duration: 0.16s;
    transition-timing-function: var(--gt-ease);
  }
  :where(button, input, select, textarea):disabled,
  :where([aria-disabled="true"]) {
    cursor: not-allowed;
    opacity: 0.58;
  }
  :where(button, [role="button"])[aria-busy="true"] {
    cursor: progress;
  }
  :where(input, textarea)::placeholder {
    color: color-mix(in srgb, var(--gt-muted) 82%, white);
    opacity: 1;
  }
  summary {
    cursor: pointer;
  }
  @media (forced-colors: active) {
    :focus-visible {
      outline: 3px solid Highlight;
      box-shadow: none;
    }
    .button,
    .mobile-dock__item,
    .core-nav button,
    .gt-assistant-trigger {
      forced-color-adjust: auto;
      border: 1px solid ButtonText;
    }
  }
  @media (prefers-contrast: more) {
    :root {
      --gt-line: #98a6ad;
      --gt-muted: #4f5c62;
    }
    .button,
    .choice-grid button,
    .project-launch {
      border-width: 2px;
    }
    .main-nav a::after {
      height: 2px;
    }
  }
  /* Fixed header and optional sticky subnav share one anchor offset. */
  html:has([data-header]) {
    scroll-padding-top: calc(var(--gt-header-height) + 16px);
  }
  html:has(.editorial-page-jump) {
    scroll-padding-top: calc(var(--gt-header-height) + var(--gt-jump-height) + 16px);
  }
  @media (max-width: 900px) {
    :root {
      --gt-header-height: 72px;
      --gt-jump-height: 56px;
    }
    html {
      scroll-padding-bottom: calc(104px + env(safe-area-inset-bottom));
    }
  }
  @media (prefers-reduced-transparency: reduce) {
    .site-header.is-compact,
    .mobile-dock,
    .core-nav,
    .project-overlay::backdrop {
      backdrop-filter: none !important;
    }
    .site-header.is-compact,
    .mobile-dock,
    .core-nav {
      background: #f8fafb !important;
    }
  }
  @supports (text-wrap: balance) {
    h1,
    h2,
    h3 {
      text-wrap: balance;
    }
  }
  @supports (text-wrap: pretty) {
    p {
      text-wrap: pretty;
    }
  }
  @media (prefers-reduced-motion: reduce) {
    html {
      scroll-behavior: auto;
    }
    *,
    *::before,
    *::after {
      scroll-behavior: auto !important;
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
    }
  }
}
