/*
  Krummholz type and layout refresh (November 2026, Libre Franklin revision).
  Loaded last on every page. Colors, copy and page structure are unchanged.
  Display face: Libre Franklin for the wordmark, headings, subheadings and buttons.
  Body text stays in DM Sans.
*/
@import url("https://fonts.googleapis.com/css2?family=Libre+Franklin:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&display=swap");

:root {
  --display: "Libre Franklin", "Franklin Gothic Medium", "Helvetica Neue", Arial, sans-serif;
  --line: #344238;
  --radius: 4px;
  --card-shadow: 0 1px 2px rgba(0, 0, 0, 0.28), 0 10px 28px rgba(0, 0, 0, 0.22);
  /* A low, wind-pressed treeline: the krummholz edge, used where sections meet. */
  --treeline: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='22' viewBox='0 0 640 22'%3E%3Cpath d='M0 20.5 L38 20.5 C44 20.5 46 17 52 16.6 C57 16.3 58 19.4 63 19.2 L96 19.4 C102 19.2 104 14.2 111 13.4 C117 12.8 118 15.6 124 15.8 C129 16 131 19.6 138 19.8 L214 20.4 C219 20.2 221 18.1 226 18 C230 17.9 231 19.9 236 20 L300 20.5 C306 20.3 309 12.8 317 11.6 C323 10.8 324 13.9 330 14.4 C335 14.8 337 12.6 342 12.9 C347 13.3 348 18.8 355 19.4 L430 20.2 C436 20 438 16.9 444 16.7 C449 16.6 450 19.3 456 19.5 L522 20.4 C527 20.2 530 15.8 536 15.4 C541 15.1 542 17.5 547 17.7 C551 17.9 553 20 558 20.2 L640 20.5' fill='none' stroke='%23435443' stroke-width='1.1'/%3E%3C/svg%3E");
}

/* ---------- Display face: wordmark, headings, subheadings, buttons ---------- */

.brand,
.site-brand {
  font-family: var(--display);
  font-weight: 700;
  font-size: 27px;
  letter-spacing: -0.02em;
}
.brand .ai,
.site-brand span {
  font-family: var(--display);
  font-style: italic;
  font-weight: 500;
  font-size: 16px;
  margin-top: 2px;
}

h1, h2, h3, h4,
.hero h1,
.catalog-hero h1,
.offering-hero h1,
.app-hero h1,
.category-heading h2,
.offering-section h2,
.offering-model h2,
.llm-page h2,
.llm-page h3,
.app-card h2,
.app-gallery-intro h2,
.app-gallery h3,
.data-card h3,
.home-models h3,
.synthetic-callout h3,
.staff-card h2,
.work-copy h3,
.work-services h3,
.work-service-list h4,
.bristlecone-downloads h4,
.app-detail .bristlecone-downloads h3,
.bristlecone-page .bc-section h2,
.bristlecone-page .bc-section h3 {
  font-family: var(--display);
  font-weight: 500;
  letter-spacing: -0.015em;
}
h1, .hero h1, .catalog-hero h1, .offering-hero h1, .app-hero h1 {
  font-weight: 600;
  line-height: 1.04;
  letter-spacing: -0.03em;
}
h3, h4 {
  font-weight: 600;
  line-height: 1.22;
}

/* Hero headline: sized for the display face, set low and to the left like wind-pressed growth. */
.hero {
  align-items: flex-end;
  padding-bottom: 150px;
}
.hero h1 {
  font-size: clamp(56px, 6.6vw, 98px);
}
.catalog-hero h1,
.offering-hero h1,
.app-hero h1 {
  font-size: clamp(44px, 5.6vw, 78px);
}

/* Emphasis inside headings: a quiet italic lean instead of a color block. */
h1 em, h2 em, h3 em {
  font-style: italic;
  font-weight: inherit;
}

/* Buttons */
.button,
.nav-cta,
.site-nav .nav-cta,
.nav-toggle,
.bristlecone-button strong {
  font-family: var(--display);
}
.button {
  font-size: 17px;
  font-weight: 500;
  letter-spacing: 0.005em;
  padding: 11px 22px 12px;
  border-radius: var(--radius);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.25) inset, 0 2px 6px rgba(0, 0, 0, 0.25);
  transition: background 0.2s, transform 0.15s;
}
.button:hover {
  transform: translateY(-1px);
}
.nav-cta,
.site-nav .nav-cta,
.nav-toggle {
  font-size: 16px;
  border-radius: var(--radius);
}
.bristlecone-button {
  border-radius: var(--radius);
}
.bristlecone-button strong {
  font-size: 17px;
  font-weight: 500;
}

/* Focus-area tabs read as subheadings. */
.focus {
  font-family: var(--display);
  font-size: 23px;
}
.focus .plus {
  font-family: "DM Sans", sans-serif;
}

/* ---------- Labels: sentence case, no tracking, no numbering ---------- */

.mini,
.pill,
.app-shot-number,
.data-source-type,
.offering-status strong,
.work-stage,
.bc-model-label,
.preliminary,
.hero-bottom,
.staff-card .eyebrow {
  font-family: "DM Sans", sans-serif;
  letter-spacing: 0;
  text-transform: none;
}
.mini,
.app-shot-number,
.bc-model-label,
.work-stage {
  font-size: 14px !important;
  font-weight: 500;
}
.pill,
.preliminary {
  font-size: 12px;
  font-weight: 500;
  border-radius: 3px;
}
.hero-bottom {
  font-size: 13px;
  letter-spacing: 0;
}

/* Decorative counters removed; ordered steps keep a plain italic numeral. */
.category-number,
.bc-feature-number {
  display: none !important;
}
.offering-steps li::before {
  content: counter(steps) ".";
  font-family: var(--display);
  font-style: italic;
  font-size: 19px;
  letter-spacing: 0;
  top: -3px;
}

/* Status and date lines that replaced the old uppercase kickers. */
.status-line {
  font-family: var(--display);
  font-style: italic;
  font-size: 18px;
  line-height: 1.4;
  color: #c9d8bf;
  margin: 0 0 14px;
  letter-spacing: 0;
}
.status-line::before {
  content: "";
  display: inline-block;
  width: 22px;
  height: 1px;
  margin-right: 10px;
  vertical-align: middle;
  background: var(--green, #b7ed78);
}

/* Breadcrumbs now sit directly above page titles. */
nav[aria-label="Breadcrumb"] {
  margin-bottom: 26px;
}

/* ---------- Layout: contained, slightly asymmetric, hand-built ---------- */

.section {
  padding-left: max(6%, calc((100vw - 1180px) / 2));
  padding-right: max(6%, calc((100vw - 1180px) / 2));
  border-bottom: 0;
  background-image: var(--treeline);
  background-repeat: repeat-x;
  background-position: left bottom;
  background-size: 640px 22px;
}
@media (min-width: 1600px) {
  .section {
    padding-left: calc((100vw - 1180px) / 2);
    padding-right: calc((100vw - 1180px) / 2);
  }
}

/* Intro sections lost their label column; keep the offset so copy sits off-center. */
.intro {
  display: block;
}
.intro > div {
  max-width: 720px;
  margin-left: clamp(0px, 20%, 260px);
}

/* Cards: plain, softly lifted, small radius. */
.sample-card,
.venture-grid article,
.staff-card,
.data-card,
.app-card,
.bristlecone,
.synthetic-callout,
.offering-model,
.offering-use,
.explorer {
  border-radius: var(--radius);
  box-shadow: var(--card-shadow);
}
.explorer {
  overflow: hidden;
}
/* Alternate cards sit a touch lower, like trees settled into a slope. */
.venture-grid article:nth-child(even),
.principles > div:nth-child(even) {
  margin-top: 28px;
}

/* Body links are underlined, the way links used to be. */
main p a:not(.button),
main li a:not(.button),
main dd a:not(.button) {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-decoration-color: rgba(183, 237, 120, 0.55);
}
main p a:not(.button):hover,
main li a:not(.button):hover {
  text-decoration-color: currentColor;
}

/* Lead copy a little warmer. */
.hero-copy,
.lead,
.large-copy {
  max-width: 34em;
}
.large-copy {
  font-family: var(--display);
  font-weight: 400;
  font-size: 27px;
  line-height: 1.45;
}

@media (max-width: 800px) {
  .hero {
    padding-bottom: 140px;
  }
  .hero h1 {
    letter-spacing: -0.015em;
    font-size: clamp(46px, 11vw, 72px);
  }
  .intro > div {
    margin-left: 0;
  }
  .venture-grid article:nth-child(even),
  .principles > div:nth-child(even) {
    margin-top: 0;
  }
  .large-copy {
    font-size: 24px;
  }
}

