/* Shared signed-out pages for agents.polarity-lab.com.
 * One paper-and-ink system across legal, research, install, and narrative pages.
 */

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

html {
  color-scheme: light;
  background: var(--agents-paper);
}

body.agents-public-page {
  margin: 0;
  min-height: 100dvh;
  overflow-x: clip;
  color: var(--agents-ink);
  background:
    linear-gradient(90deg, transparent 0, transparent calc(50% - 1px), rgba(23, 25, 24, 0.035) 50%, transparent calc(50% + 1px)),
    repeating-linear-gradient(0deg, rgba(23, 25, 24, 0.018) 0 1px, transparent 1px 8px),
    var(--agents-paper);
  font-family: "Sohne", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, system-ui, sans-serif;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.agents-public-page.cosmos-docs.lab-surface {
  background:
    linear-gradient(90deg, transparent 0, transparent calc(50% - 1px), rgba(23, 25, 24, 0.035) 50%, transparent calc(50% + 1px)),
    repeating-linear-gradient(0deg, rgba(23, 25, 24, 0.018) 0 1px, transparent 1px 8px),
    var(--agents-paper);
}

body.agents-public-page .bg-shell,
body.agents-public-page .scanlines {
  display: none;
}

body.agents-public-page.cosmos-docs.lab-surface.nav-gps-chrome nav.site-nav.cosmos-nav,
body.agents-public-page.lab-gps-page.nav-gps-chrome nav.site-nav.cosmos-nav,
body.agents-public-page.landing-docs-page.nav-gps-chrome nav.site-nav.cosmos-nav,
body.agents-public-page.landing-vertical-page.nav-gps-chrome nav.site-nav.cosmos-nav {
  left: 50%;
  right: auto;
  width: min(1180px, calc(100vw - 48px));
  transform: translateX(-50%);
  min-height: 68px;
  padding: max(12px, env(safe-area-inset-top, 0px)) 0 12px;
  color: var(--agents-ink);
  background: color-mix(in srgb, var(--agents-paper) 88%, transparent);
  border-bottom: 1px solid var(--agents-line);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

body.agents-public-page nav.site-nav .word,
body.agents-public-page.lab-gps-page nav.site-nav .word {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding-left: 30px;
  color: var(--agents-ink);
  font-family: "Sohne", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.03em;
  text-decoration: none;
}

body.agents-public-page nav.site-nav .word::before {
  content: "";
  position: absolute;
  left: 0;
  width: 18px;
  height: 18px;
  border: 1.5px solid currentColor;
  border-radius: 50%;
}

body.agents-public-page nav.site-nav .word::after {
  content: "";
  position: absolute;
  left: 13px;
  top: 9px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--agents-accent);
  box-shadow: 0 0 0 2px var(--agents-paper);
}

body.agents-public-page nav.site-nav .nav-right,
body.agents-public-page nav.site-nav .right {
  gap: 8px;
}

body.agents-public-page nav.site-nav .nav-gps-btn,
body.agents-public-page nav.site-nav .nav-right a,
body.agents-public-page nav.site-nav .right a {
  min-height: 44px;
  padding: 0 13px;
  border: 1px solid transparent;
  border-radius: 999px;
  color: var(--agents-muted);
  font-family: "Sohne Mono", ui-monospace, Menlo, monospace;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  touch-action: manipulation;
}

body.agents-public-page nav.site-nav .nav-gps-btn:hover,
body.agents-public-page nav.site-nav .nav-gps-btn:focus-visible,
body.agents-public-page nav.site-nav .nav-right a:hover,
body.agents-public-page nav.site-nav .nav-right a:focus-visible {
  color: var(--agents-ink);
  background: var(--agents-paper-2);
  border-color: var(--agents-line);
}

body.agents-public-page.nav-gps-chrome nav.site-nav .nav-gps-btn.is-signal,
body.agents-public-page.lab-gps-page nav.site-nav .nav-gps-btn.is-signal {
  color: var(--agents-paper-2);
  background: var(--agents-ink);
  border-color: var(--agents-ink);
}

body.agents-public-page.nav-gps-chrome nav.site-nav .nav-gps-btn.is-signal:hover,
body.agents-public-page.nav-gps-chrome nav.site-nav .nav-gps-btn.is-signal:focus-visible,
body.agents-public-page.lab-gps-page nav.site-nav .nav-gps-btn.is-signal:hover,
body.agents-public-page.lab-gps-page nav.site-nav .nav-gps-btn.is-signal:focus-visible {
  color: var(--agents-paper-2);
  background: var(--agents-blue);
  border-color: var(--agents-blue);
}

body.agents-public-page .nav-toggle,
body.agents-public-page .nav-close {
  min-width: 44px;
  min-height: 44px;
  color: var(--agents-ink);
  background: var(--agents-paper-2);
  border-color: var(--agents-line);
}

body.agents-public-page .nav-overlay-root .nav-backdrop,
body.agents-public-page.cosmos-flagship .nav-overlay-root .nav-backdrop,
body.agents-public-page.landing-route-page .nav-overlay-root .nav-backdrop {
  background:
    repeating-linear-gradient(0deg, rgba(23, 25, 24, 0.018) 0 1px, transparent 1px 8px),
    var(--agents-paper);
}

body.agents-public-page .nav-overlay-root .nav-right a,
body.agents-public-page .nav-overlay-root .right a {
  min-height: 44px;
  color: var(--agents-ink);
}

body.agents-public-page .docs-main,
body.agents-public-page.lab-gps-page .docs-main {
  position: relative;
  z-index: 1;
  width: min(780px, calc(100vw - 48px));
  max-width: 780px;
  margin: 0 auto;
  padding: calc(112px + env(safe-area-inset-top, 0px)) 0 88px;
}

body.agents-public-page.lab-research-page .docs-main {
  max-width: 860px;
}

body.agents-public-page .docs-head,
body.agents-public-page.lab-gps-page .docs-head,
body.agents-public-page.docs-changelog .cl-head {
  margin: 0 0 48px;
  padding: 0 0 34px;
  border-bottom: 1px solid var(--agents-line);
}

body.agents-public-page .docs-kicker,
body.agents-public-page .lab-kicker,
body.agents-public-page.docs-changelog .cl-kicker {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 14px;
  color: var(--agents-accent);
  font-family: "Sohne Mono", ui-monospace, Menlo, monospace;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

body.agents-public-page .docs-kicker::before,
body.agents-public-page .lab-kicker::before,
body.agents-public-page.docs-changelog .cl-kicker::before {
  content: "";
  width: 26px;
  height: 1px;
  flex: 0 0 auto;
  background: currentColor;
}

body.agents-public-page .docs-kicker--muted {
  color: var(--agents-muted);
}

body.agents-public-page .docs-title,
body.agents-public-page .lab-title,
body.agents-public-page.docs-changelog h1 {
  margin: 0;
  color: var(--agents-ink);
  font-family: "Sohne", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: clamp(48px, 9vw, 78px);
  font-weight: 500;
  line-height: 0.96;
  letter-spacing: -0.065em;
  text-wrap: balance;
}

body.agents-public-page .docs-lede,
body.agents-public-page .lab-line,
body.agents-public-page.docs-changelog .cl-intro {
  max-width: 62ch;
  margin: 22px 0 0;
  color: var(--agents-muted);
  font-size: clamp(17px, 2.4vw, 20px);
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: -0.018em;
}

body.agents-public-page .docs-meta,
body.agents-public-page.lab-gps-page .docs-meta,
body.agents-public-page .entry-date,
body.agents-public-page .cl-section-label {
  color: var(--agents-muted);
  font-family: "Sohne Mono", ui-monospace, Menlo, monospace;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-transform: uppercase;
}

body.agents-public-page .docs-main > h2,
body.agents-public-page .docs-section h2,
body.agents-public-page.lab-gps-page .docs-section h2 {
  margin: 44px 0 14px;
  color: var(--agents-muted);
  font-family: "Sohne Mono", ui-monospace, Menlo, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.11em;
  line-height: 1.35;
  text-transform: uppercase;
}

body.agents-public-page.lab-surface.cosmos-docs .docs-main > h2,
body.agents-public-page.lab-surface.cosmos-docs .docs-section h2 {
  color: var(--agents-muted);
  font-family: "Sohne Mono", ui-monospace, Menlo, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

body.agents-public-page .docs-section {
  margin: 0 0 46px;
}

body.agents-public-page .docs-section h2 {
  padding-bottom: 12px;
  border-bottom: 1px solid var(--agents-line-soft);
}

body.agents-public-page .docs-main > p,
body.agents-public-page .docs-main > ul,
body.agents-public-page .docs-main > ol,
body.agents-public-page .docs-section p,
body.agents-public-page .docs-section li,
body.agents-public-page.lab-gps-page .docs-section p,
body.agents-public-page.lab-gps-page .docs-section li {
  color: var(--agents-muted);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.72;
  letter-spacing: -0.008em;
}

body.agents-public-page .docs-main > p,
body.agents-public-page .docs-section p {
  margin: 0 0 15px;
}

body.agents-public-page .docs-main > ul,
body.agents-public-page .docs-main > ol,
body.agents-public-page .docs-section ul,
body.agents-public-page .docs-section ol,
body.agents-public-page.lab-gps-page .docs-section ul,
body.agents-public-page.lab-gps-page .docs-section ol {
  margin: 0 0 18px;
  padding-left: 1.25rem;
  list-style: initial;
}

body.agents-public-page .docs-main li,
body.agents-public-page .docs-section li,
body.agents-public-page.lab-gps-page .docs-section li {
  position: static;
  margin: 0 0 10px;
  padding-left: 0;
}

body.agents-public-page.lab-gps-page .docs-section li::before {
  display: none;
}

body.agents-public-page .docs-main strong,
body.agents-public-page .docs-section strong,
body.agents-public-page.lab-gps-page .docs-section strong {
  color: var(--agents-ink);
  font-weight: 600;
}

body.agents-public-page .docs-main a,
body.agents-public-page .docs-section a,
body.agents-public-page.lab-gps-page .docs-section a,
body.agents-public-page .landing-docs-foot a,
body.agents-public-page .landing-vertical-foot a {
  color: var(--agents-blue);
  text-decoration-color: color-mix(in srgb, var(--agents-blue) 42%, transparent);
  text-underline-offset: 3px;
}

body.agents-public-page .docs-main a:hover,
body.agents-public-page .docs-main a:focus-visible,
body.agents-public-page .docs-section a:hover,
body.agents-public-page .docs-section a:focus-visible {
  color: var(--agents-ink);
  text-decoration-color: var(--agents-accent);
}

body.agents-public-page code,
body.agents-public-page .docs-main code,
body.agents-public-page.lab-gps-page .docs-section code {
  color: var(--agents-ink);
  background: rgba(238, 240, 235, 0.75);
  border-radius: 4px;
  font-family: "Sohne Mono", ui-monospace, Menlo, monospace;
}

body.agents-public-page pre,
body.agents-public-page .lab-code-block,
body.agents-public-page.lab-gps-page .lab-code-block,
body.agents-public-page.lab-gps-page .lab-pre-trace {
  color: var(--agents-ink);
  background: var(--agents-paper-2);
  border: 1px solid var(--agents-line);
  border-radius: 10px;
  box-shadow: none;
}

body.agents-public-page .lab-code-head,
body.agents-public-page.lab-gps-page .lab-code-head {
  color: var(--agents-muted);
  border-bottom-color: var(--agents-line);
}

body.agents-public-page .lab-code-block pre,
body.agents-public-page .lab-pre,
body.agents-public-page.lab-gps-page .lab-code-block pre,
body.agents-public-page.lab-gps-page .lab-pre {
  color: var(--agents-ink);
  background: transparent;
  border: 0;
}

body.agents-public-page .lab-copy,
body.agents-public-page.lab-gps-page .lab-copy {
  min-width: 44px;
  min-height: 44px;
  color: var(--agents-blue);
  touch-action: manipulation;
}

body.agents-public-page .docs-chips,
body.agents-public-page.lab-gps-page .docs-chips {
  gap: 8px;
  margin-top: 28px;
}

body.agents-public-page .docs-chip,
body.agents-public-page.lab-gps-page .docs-chip {
  min-height: 44px;
  padding: 0 16px;
  color: var(--agents-ink);
  background: var(--agents-paper-2);
  border: 1px solid var(--agents-line);
  border-radius: 999px;
  box-shadow: none;
  font-family: "Sohne Mono", ui-monospace, Menlo, monospace;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  touch-action: manipulation;
}

body.agents-public-page .docs-chip:first-child,
body.agents-public-page.lab-gps-page .docs-chip:first-child {
  color: var(--agents-paper-2);
  background: var(--agents-ink);
  border-color: var(--agents-ink);
}

body.agents-public-page .docs-chip:hover,
body.agents-public-page .docs-chip:focus-visible {
  color: var(--agents-paper-2);
  background: var(--agents-blue);
  border-color: var(--agents-blue);
}

body.agents-public-page .lab-table {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  border-top: 1px solid var(--agents-line);
  border-collapse: collapse;
  -webkit-overflow-scrolling: touch;
}

body.agents-public-page .lab-table th,
body.agents-public-page .lab-table td {
  min-width: 150px;
  padding: 12px 14px;
  color: var(--agents-muted);
  border-bottom: 1px solid var(--agents-line);
}

body.agents-public-page .lab-table th {
  color: var(--agents-ink);
  font-family: "Sohne Mono", ui-monospace, Menlo, monospace;
  font-size: 10px;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

body.agents-public-page .lab-details,
body.agents-public-page.lab-gps-page .lab-details {
  padding: 4px 18px 18px;
  color: var(--agents-muted);
  background: rgba(238, 240, 235, 0.55);
  border: 1px solid var(--agents-line);
  border-radius: 10px;
}

body.agents-public-page .lab-details summary,
body.agents-public-page.lab-gps-page .lab-details summary {
  min-height: 44px;
  color: var(--agents-ink);
  font-family: "Sohne Mono", ui-monospace, Menlo, monospace;
  touch-action: manipulation;
}

body.agents-public-page .docs-rule,
body.agents-public-page.lab-gps-page .docs-rule {
  width: 100%;
  margin: 44px 0 24px;
  border: 0;
  border-top: 1px solid var(--agents-line);
}

body.agents-public-page .docs-footer,
body.agents-public-page .lab-trail,
body.agents-public-page.lab-gps-page .docs-footer {
  width: min(780px, calc(100vw - 48px));
  max-width: 780px;
  margin: 0 auto;
  padding: 26px 0 calc(48px + env(safe-area-inset-bottom, 0px));
  color: var(--agents-muted);
  border-top: 1px solid var(--agents-line);
  font-family: "Sohne Mono", ui-monospace, Menlo, monospace;
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body.agents-public-page .docs-footer a,
body.agents-public-page .lab-trail a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: var(--agents-blue);
}

/* Changelog */
body.agents-public-page.docs-changelog .cl-head {
  padding-top: 0;
}

body.agents-public-page.docs-changelog .entry {
  padding: 30px 0;
}

body.agents-public-page.docs-changelog .entry + .entry {
  border-top-color: var(--agents-line);
}

body.agents-public-page.docs-changelog .entry-body,
body.agents-public-page.docs-changelog .change-title {
  color: var(--agents-ink);
}

body.agents-public-page.docs-changelog .change-desc,
body.agents-public-page.docs-changelog .entry-changes li {
  color: var(--agents-muted);
}

body.agents-public-page.docs-changelog .change-kind {
  color: var(--agents-muted);
}

/* How it works */
body.agents-public-page .landing-docs-main {
  width: min(860px, calc(100vw - 48px));
  margin: 0 auto;
  padding: calc(120px + env(safe-area-inset-top, 0px)) 0 80px;
}

body.agents-public-page .landing-docs-headline {
  max-width: 10ch;
  margin: 0 0 20px;
  color: var(--agents-ink);
  font-family: "Sohne", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: clamp(56px, 10vw, 92px);
  font-weight: 500;
  line-height: 0.92;
  letter-spacing: -0.07em;
}

body.agents-public-page .landing-docs-lede {
  max-width: 62ch;
  margin: 0 0 42px;
  color: var(--agents-muted);
  font-size: clamp(18px, 2.6vw, 22px);
  line-height: 1.5;
}

body.agents-public-page .landing-docs-example {
  margin: 0 0 52px;
  padding: clamp(16px, 3vw, 28px);
  background: var(--agents-ink);
  border: 1px solid var(--agents-ink);
  border-radius: var(--agents-radius);
  box-shadow: 10px 12px 0 var(--agents-paper-3);
}

body.agents-public-page .landing-docs-section,
body.agents-public-page .landing-docs-faq {
  margin: 0;
  padding: 30px 0;
  border-top: 1px solid var(--agents-line);
}

body.agents-public-page .landing-docs-section h2,
body.agents-public-page .landing-docs-faq h2 {
  margin: 0 0 10px;
  color: var(--agents-ink);
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 500;
  letter-spacing: -0.035em;
}

body.agents-public-page .landing-docs-section p,
body.agents-public-page .landing-docs-section ul,
body.agents-public-page .landing-docs-faq-item p {
  max-width: 66ch;
  color: var(--agents-muted);
  font-size: 16px;
  line-height: 1.65;
}

body.agents-public-page .landing-docs-faq-item {
  margin: 0;
  padding: 20px 0;
  border-bottom-color: var(--agents-line-soft);
}

body.agents-public-page .landing-docs-faq-item h3 {
  color: var(--agents-ink);
  font-size: 16px;
}

body.agents-public-page .landing-docs-cta,
body.agents-public-page .landing-vertical-cta {
  min-height: 48px;
  color: var(--agents-paper-2);
  background: var(--agents-ink);
  border: 1px solid var(--agents-ink);
  border-radius: 999px;
  font-size: 15px;
  font-weight: 600;
  touch-action: manipulation;
}

body.agents-public-page .landing-docs-cta:hover,
body.agents-public-page .landing-vertical-cta:hover {
  color: var(--agents-paper-2);
  background: var(--agents-blue);
  border-color: var(--agents-blue);
}

body.agents-public-page .landing-docs-cta-muted,
body.agents-public-page .landing-vertical-cta-muted {
  color: var(--agents-ink);
  background: transparent;
  border-color: var(--agents-line);
}

body.agents-public-page .landing-docs-foot,
body.agents-public-page .landing-vertical-foot {
  color: var(--agents-muted);
  border-top-color: var(--agents-line);
}

/* Warm texts */
body.agents-public-page .landing-vertical-main {
  width: min(1080px, calc(100vw - 48px));
  padding: calc(112px + env(safe-area-inset-top, 0px)) 0 80px;
}

body.agents-public-page .landing-vertical-hero {
  gap: clamp(40px, 7vw, 88px);
  margin-bottom: 64px;
}

body.agents-public-page .landing-vertical-kicker {
  padding: 0 0 10px;
  color: var(--agents-accent);
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--agents-line);
  border-radius: 0;
  font-family: "Sohne Mono", ui-monospace, Menlo, monospace;
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

body.agents-public-page .landing-vertical-headline {
  color: var(--agents-ink);
  font-family: "Sohne", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: clamp(48px, 7vw, 76px);
  font-weight: 500;
  line-height: 0.98;
  letter-spacing: -0.06em;
}

body.agents-public-page .landing-vertical-lede,
body.agents-public-page .landing-vertical-section p,
body.agents-public-page .landing-vertical-note {
  color: var(--agents-muted);
}

body.agents-public-page .landing-vertical-section {
  padding: 28px 0;
  margin: 0;
  border-top: 1px solid var(--agents-line);
}

body.agents-public-page .landing-vertical-section h2 {
  color: var(--agents-ink);
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 500;
  letter-spacing: -0.035em;
}

body.agents-public-page :focus-visible {
  outline: 2px solid var(--agents-blue);
  outline-offset: 3px;
}

@media (max-width: 720px) {
  body.agents-public-page.cosmos-docs.lab-surface.nav-gps-chrome nav.site-nav.cosmos-nav,
  body.agents-public-page.lab-gps-page.nav-gps-chrome nav.site-nav.cosmos-nav,
  body.agents-public-page.landing-docs-page.nav-gps-chrome nav.site-nav.cosmos-nav,
  body.agents-public-page.landing-vertical-page.nav-gps-chrome nav.site-nav.cosmos-nav {
    width: calc(100vw - 32px);
  }

  body.agents-public-page .docs-main,
  body.agents-public-page.lab-gps-page .docs-main,
  body.agents-public-page .docs-footer,
  body.agents-public-page .lab-trail,
  body.agents-public-page.lab-gps-page .docs-footer,
  body.agents-public-page .landing-docs-main,
  body.agents-public-page .landing-vertical-main {
    width: min(100% - 32px, 780px);
  }

  body.agents-public-page .docs-main,
  body.agents-public-page.lab-gps-page .docs-main,
  body.agents-public-page .landing-docs-main,
  body.agents-public-page .landing-vertical-main {
    padding-top: calc(96px + env(safe-area-inset-top, 0px));
    padding-bottom: 64px;
  }

  body.agents-public-page .docs-title,
  body.agents-public-page .lab-title,
  body.agents-public-page.docs-changelog h1 {
    font-size: clamp(44px, 15vw, 62px);
  }

  body.agents-public-page .docs-footer,
  body.agents-public-page .lab-trail {
    align-items: flex-start;
    text-align: left;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.agents-public-page *,
  body.agents-public-page *::before,
  body.agents-public-page *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
