/* Grand Open platform.css — served at https://cdn.grandopen.ai/go/v1/platform.css.
   Everything sits in the `platform` layer, the lowest of `platform, brand, location, page`,
   so brand, location and page CSS override any rule here without specificity fights.
   Token defaults live on :root; a brand overrides them by redefining the same --go-* names. */
@layer platform {
  :root {
    /* Color */
    --go-color-bg: #ffffff;
    --go-color-surface: #f6f4ef;
    --go-color-text: #1c1b19;
    --go-color-text-muted: #5f5b53;
    --go-color-border: #dedad2;
    --go-color-primary: #1f4f46;
    --go-color-primary-contrast: #ffffff;
    --go-color-accent: #c2703d;
    --go-color-focus: #2563eb;

    /* Type */
    --go-font-body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --go-font-heading: var(--go-font-body);
    --go-font-size-sm: 0.875rem;
    --go-font-size-base: 1rem;
    --go-font-size-lg: 1.25rem;
    --go-font-size-xl: clamp(1.5rem, 1.2rem + 1.5vw, 2rem);
    --go-font-size-2xl: clamp(2rem, 1.5rem + 2.5vw, 3rem);
    --go-line-height: 1.6;
    --go-line-height-tight: 1.15;

    /* Space: 4px steps */
    --go-space-1: 0.25rem;
    --go-space-2: 0.5rem;
    --go-space-3: 0.75rem;
    --go-space-4: 1rem;
    --go-space-6: 1.5rem;
    --go-space-8: 2rem;
    --go-space-12: 3rem;
    --go-space-16: 4rem;

    /* Shape */
    --go-radius-sm: 4px;
    --go-radius-md: 8px;
    --go-radius-lg: 16px;
    --go-radius-full: 9999px;
    --go-shadow-md: 0 2px 8px rgb(0 0 0 / 0.08);

    /* Layout */
    --go-container-width: 72rem;
    --go-container-gutter: var(--go-space-4);
  }

  /* Reset */
  *, *::before, *::after { box-sizing: border-box; }
  * { margin: 0; }
  html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
  body {
    min-height: 100vh;
    background: var(--go-color-bg);
    color: var(--go-color-text);
    font-family: var(--go-font-body);
    font-size: var(--go-font-size-base);
    line-height: var(--go-line-height);
    -webkit-font-smoothing: antialiased;
  }
  img, picture, video, canvas, svg { display: block; max-width: 100%; height: auto; }
  input, button, textarea, select { font: inherit; color: inherit; }
  button { cursor: pointer; }
  h1, h2, h3, h4 { font-family: var(--go-font-heading); line-height: var(--go-line-height-tight); text-wrap: balance; }
  h1 { font-size: var(--go-font-size-2xl); }
  h2 { font-size: var(--go-font-size-xl); }
  h3 { font-size: var(--go-font-size-lg); }
  p { text-wrap: pretty; }
  a { color: var(--go-color-primary); }
  [x-cloak] { display: none !important; }

  /* Focus: visible for keyboard users on every interactive element */
  :focus-visible { outline: 2px solid var(--go-color-focus); outline-offset: 2px; }
  :focus:not(:focus-visible) { outline: none; }

  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
  }

  /* Layout primitives */
  .go-container { width: 100%; max-width: var(--go-container-width); margin-inline: auto; padding-inline: var(--go-container-gutter); }
  .go-stack { display: flex; flex-direction: column; gap: var(--go-gap, var(--go-space-4)); }
  .go-cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--go-gap, var(--go-space-4)); }
  .go-grid { display: grid; gap: var(--go-gap, var(--go-space-6)); grid-template-columns: repeat(auto-fit, minmax(min(var(--go-grid-min, 16rem), 100%), 1fr)); }
  .go-section { padding-block: var(--go-space-16); }
  .go-center { text-align: center; margin-inline: auto; }

  .go-button {
    display: inline-flex; align-items: center; justify-content: center; gap: var(--go-space-2);
    padding: var(--go-space-3) var(--go-space-6); border: 0; border-radius: var(--go-radius-md);
    background: var(--go-color-primary); color: var(--go-color-primary-contrast);
    font-weight: 600; text-decoration: none;
  }

  .go-visually-hidden {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
  }
}
