/*
 * PAELLADOC — The local software factory
 * Home-only narrative and visual system. It deliberately sits after the
 * terminal-paellero stylesheet so editorial/archive pages keep their existing
 * treatment while the front door reflects the current product.
 */

body.home-tp {
  --osm-bg: #0a0907;
  --osm-bg-raised: #12100d;
  --osm-bg-soft: #181510;
  --osm-ink: #f2ebdc;
  --osm-ink-muted: rgba(242, 235, 220, 0.68);
  --osm-ink-faint: rgba(242, 235, 220, 0.58);
  --osm-rule: rgba(242, 235, 220, 0.17);
  --osm-rule-strong: rgba(242, 235, 220, 0.31);
  --osm-orange: #e05a20;
  --osm-on-orange: #17130f;
  --osm-orange-soft: rgba(224, 90, 32, 0.13);
  --osm-green: #4db979;
  --osm-max: 1440px;
  --osm-gutter: clamp(20px, 4vw, 64px);
  --osm-section: clamp(96px, 12vw, 180px);
  background: var(--osm-bg);
  color: var(--osm-ink);
  scroll-behavior: smooth;
}

html[data-theme="light"] body.home-tp,
[data-theme="light"] body.home-tp {
  --osm-bg: #f1eadc;
  --osm-bg-raised: #e9dfcf;
  --osm-bg-soft: #ddd1be;
  --osm-ink: #17130f;
  --osm-ink-muted: rgba(23, 19, 15, 0.68);
  --osm-ink-faint: rgba(23, 19, 15, 0.58);
  --osm-rule: rgba(23, 19, 15, 0.18);
  --osm-rule-strong: rgba(23, 19, 15, 0.32);
  --osm-orange: #a92d06;
  --osm-on-orange: #fff7eb;
  --osm-orange-soft: rgba(169, 45, 6, 0.09);
}

body.home-tp .osm-home,
body.home-tp .osm-home * {
  box-sizing: border-box;
}

body.home-tp .osm-home {
  overflow: clip;
  background:
    radial-gradient(circle at 77% 3%, rgba(224, 90, 32, 0.08), transparent 28%),
    var(--osm-bg);
}

body.home-tp .osm-home section {
  width: min(100%, var(--osm-max));
  margin-inline: auto;
  padding-inline: var(--osm-gutter);
  background: transparent;
  color: var(--osm-ink);
}

body.home-tp .osm-home h1,
body.home-tp .osm-home h2,
body.home-tp .osm-home h3,
body.home-tp .osm-home p,
body.home-tp .osm-home blockquote,
body.home-tp .osm-home dl,
body.home-tp .osm-home dd,
body.home-tp .osm-home ol,
body.home-tp .osm-home ul,
body.home-tp .osm-home figure {
  margin: 0;
}

body.home-tp .osm-home h1,
body.home-tp .osm-home h2,
body.home-tp .osm-home h3 {
  color: var(--osm-ink);
  text-wrap: balance;
}

body.home-tp .osm-home p,
body.home-tp .osm-home dd,
body.home-tp .osm-home li {
  text-wrap: pretty;
}

body.home-tp .osm-kicker {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--osm-orange);
  font-family: var(--tp-font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1.3;
  text-transform: uppercase;
}

body.home-tp .osm-kicker::before {
  width: 28px;
  height: 1px;
  flex: 0 0 auto;
  background: currentColor;
  content: "";
}

body.home-tp .osm-button,
body.home-tp .osm-text-link,
body.home-tp .osm-editorial a,
body.home-tp .osm-download a {
  transition: color 240ms cubic-bezier(.16, 1, .3, 1),
              background-color 240ms cubic-bezier(.16, 1, .3, 1),
              border-color 240ms cubic-bezier(.16, 1, .3, 1),
              transform 240ms cubic-bezier(.16, 1, .3, 1);
}

body.home-tp .osm-home a:focus-visible {
  outline: 2px solid var(--osm-orange);
  outline-offset: 5px;
}

body.home-tp .osm-home a:active {
  transform: translateY(1px);
}

/* Hero */
body.home-tp .osm-hero {
  display: grid;
  grid-template-columns: minmax(0, .86fr) minmax(520px, 1.14fr);
  gap: clamp(52px, 7vw, 112px);
  align-items: center;
  min-height: calc(100dvh - 84px);
  padding-block: clamp(72px, 9vw, 132px) clamp(92px, 11vw, 160px);
  border-bottom: 1px solid var(--osm-rule);
}

body.home-tp .osm-hero-copy {
  position: relative;
  z-index: 1;
  max-width: 700px;
}

body.home-tp .osm-hero h1 {
  display: flex;
  flex-direction: column;
  margin-top: 26px;
  font-family: var(--tp-font-display);
  font-size: clamp(62px, 7.6vw, 126px);
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: .78;
}

body.home-tp .osm-hero h1 strong {
  color: var(--osm-orange);
  font-weight: 400;
  font-style: italic;
}

body.home-tp .osm-lead {
  max-width: 62ch;
  margin-top: 40px !important;
  color: var(--osm-ink-muted);
  font-family: var(--tp-font-mono);
  font-size: clamp(15px, 1.25vw, 19px);
  line-height: 1.72;
}

body.home-tp .osm-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 22px;
  align-items: center;
  margin-top: 38px;
}

body.home-tp .osm-button {
  display: inline-flex;
  gap: 18px;
  align-items: center;
  justify-content: space-between;
  min-height: 54px;
  padding: 15px 18px 15px 20px;
  border: 1px solid var(--osm-orange);
  font-family: var(--tp-font-mono);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
}

body.home-tp .osm-button--primary {
  background: var(--osm-orange);
  color: var(--osm-on-orange);
}

body.home-tp .osm-button--primary:hover {
  background: transparent;
  color: var(--osm-orange);
  transform: translateY(-2px);
}

body.home-tp .osm-text-link {
  color: var(--osm-ink);
  font-family: var(--tp-font-mono);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .05em;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}

body.home-tp .osm-text-link:hover {
  color: var(--osm-orange);
}

body.home-tp .osm-action-note {
  margin-top: 16px !important;
  color: var(--osm-ink-faint);
  font-family: var(--tp-font-mono);
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.home-tp .osm-machine {
  position: relative;
  min-width: 0;
  border: 1px solid var(--osm-rule-strong);
  background: var(--osm-bg-raised);
  box-shadow: inset 0 1px 0 rgba(242, 235, 220, .08), 0 30px 80px rgba(10, 9, 7, .28);
}

body.home-tp .osm-machine-head,
body.home-tp .osm-machine-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 42px;
  padding: 12px 15px;
  color: var(--osm-ink-muted);
  font-family: var(--tp-font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .11em;
  line-height: 1.4;
  text-transform: uppercase;
}

body.home-tp .osm-machine-head {
  border-bottom: 1px solid var(--osm-rule);
}

body.home-tp .osm-machine-foot {
  justify-content: flex-start;
  border-top: 1px solid var(--osm-rule);
}

body.home-tp .osm-live {
  display: inline-flex;
  gap: 8px;
  align-items: center;
}

body.home-tp .osm-live i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--osm-green);
  animation: osm-breathe 2.2s ease-in-out infinite;
}

body.home-tp .osm-machine-art {
  position: relative;
  display: block;
  aspect-ratio: 40 / 21;
  overflow: hidden;
  background: var(--osm-bg);
}

body.home-tp .osm-machine-art::after {
  position: absolute;
  inset: 0;
  border: 1px solid rgba(242, 235, 220, .07);
  box-shadow: inset 0 0 90px rgba(10, 9, 7, .36);
  content: "";
  pointer-events: none;
}

body.home-tp .osm-machine-art img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.home-tp .osm-machine-rail {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--osm-rule);
}

body.home-tp .osm-machine-rail li {
  display: grid;
  gap: 6px;
  min-width: 0;
  padding: 12px 10px 13px;
  color: var(--osm-ink-muted);
  font-family: var(--tp-font-mono);
  font-size: clamp(8px, .68vw, 10px);
  letter-spacing: .06em;
  text-transform: uppercase;
}

body.home-tp .osm-machine-rail li + li {
  border-left: 1px solid var(--osm-rule);
}

body.home-tp .osm-machine-rail span {
  color: var(--osm-orange);
  font-size: 8px;
}

/* Thesis */
body.home-tp .osm-thesis {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(0, 3fr);
  gap: clamp(40px, 8vw, 140px);
  align-items: start;
  padding-block: var(--osm-section);
  border-bottom: 1px solid var(--osm-rule);
}

body.home-tp .osm-thesis > div {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(280px, .72fr);
  gap: clamp(40px, 7vw, 120px);
  align-items: end;
}

body.home-tp .osm-thesis h2 {
  max-width: 17ch;
  font-family: var(--tp-font-display);
  font-size: clamp(44px, 6vw, 88px);
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: .96;
}

body.home-tp .osm-thesis > div > p {
  max-width: 43ch;
  padding-bottom: 7px;
  color: var(--osm-ink-muted);
  font-family: var(--tp-font-mono);
  font-size: 14px;
  line-height: 1.75;
}

/* Shared section heads */
body.home-tp .osm-section-head {
  display: grid;
  grid-template-columns: minmax(160px, .7fr) minmax(0, 1.7fr) minmax(260px, .7fr);
  gap: clamp(32px, 6vw, 96px);
  align-items: start;
}

body.home-tp .osm-section-head h2,
body.home-tp .osm-lifecycle-intro h2,
body.home-tp .osm-graph h2,
body.home-tp .osm-editorial h2,
body.home-tp .osm-faq h2,
body.home-tp .osm-download h2 {
  font-family: var(--tp-font-display);
  font-size: clamp(44px, 6.2vw, 94px);
  font-weight: 400;
  letter-spacing: -.04em;
  line-height: .94;
}

body.home-tp .osm-section-head > p:last-child {
  max-width: 46ch;
  color: var(--osm-ink-muted);
  font-family: var(--tp-font-mono);
  font-size: 13px;
  line-height: 1.72;
}

/* Three real product spaces */
body.home-tp .osm-spaces {
  padding-block: var(--osm-section);
  border-bottom: 1px solid var(--osm-rule);
}

body.home-tp .osm-space-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 18px;
  margin-top: clamp(64px, 8vw, 112px);
}

body.home-tp .osm-space {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 390px;
  padding: clamp(28px, 3vw, 46px);
  overflow: hidden;
  border-top: 1px solid var(--osm-rule-strong);
  border-bottom: 1px solid var(--osm-rule);
  background: var(--osm-bg-raised);
}

body.home-tp .osm-space:nth-child(1) { grid-column: 1 / span 7; }
body.home-tp .osm-space:nth-child(2) { grid-column: 8 / -1; margin-top: 96px; }
body.home-tp .osm-space:nth-child(3) { grid-column: 5 / -1; margin-top: 18px; }

body.home-tp .osm-space--warm {
  background: var(--osm-orange);
}

body.home-tp .osm-space--warm,
body.home-tp .osm-space--warm h3,
body.home-tp .osm-space--warm p,
body.home-tp .osm-space--warm strong,
body.home-tp .osm-space--warm .osm-space-meta {
  color: var(--osm-on-orange);
}

body.home-tp .osm-space--bone {
  background: var(--osm-ink);
}

body.home-tp .osm-space--bone,
body.home-tp .osm-space--bone h3,
body.home-tp .osm-space--bone p,
body.home-tp .osm-space--bone strong,
body.home-tp .osm-space--bone .osm-space-meta {
  color: var(--osm-bg);
}

body.home-tp .osm-space-meta {
  display: flex;
  justify-content: space-between;
  color: var(--osm-ink-faint);
  font-family: var(--tp-font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .13em;
}

body.home-tp .osm-space h3 {
  max-width: 13ch;
  margin-top: auto;
  padding-top: 70px;
  font-family: var(--tp-font-display);
  font-size: clamp(39px, 4.6vw, 68px);
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: .95;
}

body.home-tp .osm-space > p {
  max-width: 53ch;
  margin-top: 24px;
  font-family: var(--tp-font-mono);
  font-size: 13px;
  line-height: 1.7;
  opacity: .76;
}

body.home-tp .osm-space > strong {
  margin-top: 30px;
  font-family: var(--tp-font-mono);
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.home-tp .osm-space-trace {
  display: flex;
  gap: 7px;
  margin-top: 18px;
}

body.home-tp .osm-space-trace i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  opacity: .3;
}

body.home-tp .osm-space-trace i:first-child { opacity: 1; }

/* Lifecycle */
body.home-tp .osm-lifecycle {
  display: grid;
  grid-template-columns: minmax(320px, .8fr) minmax(0, 1.2fr);
  gap: clamp(64px, 10vw, 160px);
  align-items: start;
  padding-block: var(--osm-section);
  border-bottom: 1px solid var(--osm-rule);
}

body.home-tp .osm-lifecycle-intro {
  position: sticky;
  top: 118px;
}

body.home-tp .osm-lifecycle-intro h2 {
  max-width: 10ch;
  margin-top: 28px;
}

body.home-tp .osm-lifecycle-intro > p:last-child {
  max-width: 46ch;
  margin-top: 34px;
  color: var(--osm-ink-muted);
  font-family: var(--tp-font-mono);
  font-size: 13px;
  line-height: 1.75;
}

body.home-tp .osm-cycle {
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--osm-rule-strong);
}

body.home-tp .osm-cycle li {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  gap: 24px;
  align-items: start;
  padding-block: 34px 38px;
  border-bottom: 1px solid var(--osm-rule);
}

body.home-tp .osm-cycle-number {
  color: var(--osm-orange);
  font-family: var(--tp-font-mono);
  font-size: 10px;
}

body.home-tp .osm-cycle h3 {
  font-family: var(--tp-font-display);
  font-size: clamp(29px, 3vw, 43px);
  font-weight: 400;
  line-height: 1;
}

body.home-tp .osm-cycle p {
  max-width: 52ch;
  margin-top: 13px;
  color: var(--osm-ink-muted);
  font-family: var(--tp-font-mono);
  font-size: 12px;
  line-height: 1.65;
}

body.home-tp .osm-cycle li > strong {
  padding: 6px 8px;
  border: 1px solid var(--osm-rule);
  color: var(--osm-ink-faint);
  font-family: var(--tp-font-mono);
  font-size: 8px;
  letter-spacing: .1em;
  text-transform: uppercase;
}

/* Product graph */
body.home-tp .osm-graph {
  display: grid;
  grid-template-columns: minmax(320px, .72fr) minmax(0, 1.28fr);
  gap: clamp(56px, 9vw, 144px);
  align-items: center;
  padding-block: var(--osm-section);
  border-bottom: 1px solid var(--osm-rule);
}

body.home-tp .osm-graph h2 {
  max-width: 10ch;
  margin-top: 28px;
}

body.home-tp .osm-graph-copy > p:not(.osm-kicker) {
  max-width: 50ch;
  margin-top: 34px;
  color: var(--osm-ink-muted);
  font-family: var(--tp-font-mono);
  font-size: 13px;
  line-height: 1.75;
}

body.home-tp .osm-graph blockquote {
  max-width: 40ch;
  margin-top: 38px;
  padding-left: 20px;
  border-left: 2px solid var(--osm-orange);
  color: var(--osm-ink);
  font-family: var(--tp-font-display);
  font-size: clamp(24px, 2.3vw, 34px);
  font-style: italic;
  line-height: 1.22;
}

body.home-tp .osm-graph dl {
  margin-top: 46px;
  border-top: 1px solid var(--osm-rule);
}

body.home-tp .osm-graph dl > div {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 18px;
  padding-block: 14px;
  border-bottom: 1px solid var(--osm-rule);
  font-family: var(--tp-font-mono);
  font-size: 10px;
  line-height: 1.5;
}

body.home-tp .osm-graph dt {
  color: var(--osm-orange);
  font-weight: 700;
}

body.home-tp .osm-graph dd {
  color: var(--osm-ink-muted);
}

body.home-tp .osm-graph-visual {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--osm-rule-strong);
  background: var(--osm-bg-raised);
}

body.home-tp .osm-graph-visual::after {
  position: absolute;
  inset: 0;
  border: 1px solid rgba(242, 235, 220, .07);
  box-shadow: inset 0 1px 0 rgba(242, 235, 220, .08);
  content: "";
  pointer-events: none;
}

body.home-tp .osm-graph-visual img {
  display: block;
  width: 100%;
  height: auto;
}

/* Real app proof */
body.home-tp .osm-proof {
  padding-block: var(--osm-section);
  border-bottom: 1px solid var(--osm-rule);
}

body.home-tp .osm-section-head--proof {
  grid-template-columns: minmax(160px, .55fr) minmax(0, 1.65fr) minmax(280px, .8fr);
}

body.home-tp .osm-proof-media {
  margin-top: clamp(64px, 8vw, 112px);
  border: 1px solid var(--osm-rule-strong);
  background: var(--osm-bg-raised);
}

body.home-tp .osm-proof-media figcaption,
body.home-tp .osm-proof-media > p {
  display: flex;
  justify-content: space-between;
  padding: 13px 16px;
  color: var(--osm-ink-muted);
  font-family: var(--tp-font-mono);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}

body.home-tp .osm-proof-media figcaption { border-bottom: 1px solid var(--osm-rule); }
body.home-tp .osm-proof-media > p { border-top: 1px solid var(--osm-rule); }

body.home-tp .osm-proof-media picture {
  display: block;
  overflow: hidden;
  background: var(--osm-bg);
}

body.home-tp .osm-proof-media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 40 / 21;
  object-fit: cover;
}

body.home-tp .osm-proof-detail {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  align-items: stretch;
  margin-top: 18px;
  overflow: hidden;
  border: 1px solid var(--osm-rule);
  background: var(--osm-bg-raised);
}

body.home-tp .osm-proof-detail figcaption {
  display: flex;
  align-items: flex-end;
  padding: 18px;
  border-right: 1px solid var(--osm-rule);
  color: var(--osm-orange);
  font-family: var(--tp-font-mono);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1.5;
  text-transform: uppercase;
}

body.home-tp .osm-proof-detail picture {
  display: block;
  min-width: 0;
}

body.home-tp .osm-proof-detail img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 170px;
  object-fit: cover;
  object-position: center;
}

body.home-tp .osm-proof-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  padding: 0;
  list-style: none;
  border-bottom: 1px solid var(--osm-rule);
}

body.home-tp .osm-proof-list li {
  display: grid;
  gap: 42px;
  min-height: 180px;
  padding: 25px;
  color: var(--osm-ink-muted);
  font-family: var(--tp-font-mono);
  font-size: 11px;
  line-height: 1.65;
}

body.home-tp .osm-proof-list li + li { border-left: 1px solid var(--osm-rule); }
body.home-tp .osm-proof-list span { color: var(--osm-orange); font-size: 9px; }

/* Open by design */
body.home-tp .osm-principles {
  padding-block: var(--osm-section);
  border-bottom: 1px solid var(--osm-rule);
}

body.home-tp .osm-principle-list {
  margin-top: clamp(64px, 8vw, 112px);
  border-top: 1px solid var(--osm-rule-strong);
}

body.home-tp .osm-principle-list article {
  display: grid;
  grid-template-columns: 72px minmax(220px, .6fr) minmax(0, 1.4fr);
  gap: 28px;
  align-items: baseline;
  padding-block: 26px 31px;
  border-bottom: 1px solid var(--osm-rule);
}

body.home-tp .osm-principle-list article > span {
  color: var(--osm-orange);
  font-family: var(--tp-font-mono);
  font-size: 9px;
}

body.home-tp .osm-principle-list h3 {
  font-family: var(--tp-font-display);
  font-size: clamp(27px, 2.8vw, 41px);
  font-weight: 400;
}

body.home-tp .osm-principle-list p {
  max-width: 62ch;
  color: var(--osm-ink-muted);
  font-family: var(--tp-font-mono);
  font-size: 12px;
  line-height: 1.7;
}

body.home-tp .osm-boundary {
  margin-top: 26px;
  color: var(--osm-ink-faint);
  font-family: var(--tp-font-mono);
  font-size: 9px;
  letter-spacing: .1em;
  text-align: right;
  text-transform: uppercase;
}

/* Editorial proof */
body.home-tp .osm-editorial {
  display: grid;
  grid-template-columns: minmax(310px, .78fr) minmax(0, 1.22fr);
  gap: clamp(64px, 10vw, 160px);
  align-items: start;
  padding-block: var(--osm-section);
  border-bottom: 1px solid var(--osm-rule);
}

body.home-tp .osm-editorial-head {
  position: sticky;
  top: 118px;
}

body.home-tp .osm-editorial h2 {
  max-width: 11ch;
  margin-top: 28px;
}

body.home-tp .osm-editorial-head > p:not(.osm-kicker) {
  max-width: 48ch;
  margin-top: 32px;
  color: var(--osm-ink-muted);
  font-family: var(--tp-font-mono);
  font-size: 12px;
  line-height: 1.72;
}

body.home-tp .osm-editorial nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
  margin-top: 35px;
}

body.home-tp .osm-editorial nav a,
body.home-tp .osm-read {
  color: var(--osm-orange);
  font-family: var(--tp-font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .06em;
  text-decoration: none;
  text-transform: uppercase;
}

body.home-tp .osm-editorial nav a:hover,
body.home-tp .osm-read:hover { color: var(--osm-ink); }

body.home-tp .osm-latest {
  border-top: 1px solid var(--osm-rule-strong);
}

body.home-tp .osm-latest article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  padding-block: 30px 34px;
  border-bottom: 1px solid var(--osm-rule);
}

body.home-tp .osm-latest article > div {
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  color: var(--osm-ink-faint);
  font-family: var(--tp-font-mono);
  font-size: 8px;
  letter-spacing: .1em;
  text-transform: uppercase;
}

body.home-tp .osm-latest h3 {
  max-width: 26ch;
  font-family: var(--tp-font-display);
  font-size: clamp(27px, 3vw, 42px);
  font-weight: 400;
  line-height: 1.05;
}

body.home-tp .osm-latest h3 a {
  color: inherit;
  text-decoration: none;
}

body.home-tp .osm-latest h3 a:hover { color: var(--osm-orange); }

body.home-tp .osm-read { align-self: end; white-space: nowrap; }

/* FAQ */
body.home-tp .osm-faq {
  display: grid;
  grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr);
  gap: clamp(64px, 10vw, 160px);
  align-items: start;
  padding-block: var(--osm-section);
  border-bottom: 1px solid var(--osm-rule);
}

body.home-tp .osm-faq header { position: sticky; top: 118px; }
body.home-tp .osm-faq h2 { max-width: 10ch; margin-top: 28px; }
body.home-tp .osm-faq dl { border-top: 1px solid var(--osm-rule-strong); }

body.home-tp .osm-faq dl > div {
  display: grid;
  grid-template-columns: minmax(170px, .65fr) minmax(0, 1.35fr);
  gap: 34px;
  padding-block: 27px 31px;
  border-bottom: 1px solid var(--osm-rule);
}

body.home-tp .osm-faq dt {
  color: var(--osm-ink);
  font-family: var(--tp-font-display);
  font-size: 23px;
  line-height: 1.15;
}

body.home-tp .osm-faq dd {
  color: var(--osm-ink-muted);
  font-family: var(--tp-font-mono);
  font-size: 11px;
  line-height: 1.75;
}

/* Final CTA */
body.home-tp .osm-download {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(320px, .7fr);
  gap: clamp(64px, 10vw, 160px);
  align-items: end;
  width: 100% !important;
  max-width: none !important;
  padding-block: var(--osm-section);
  padding-inline: max(var(--osm-gutter), calc((100vw - var(--osm-max)) / 2 + var(--osm-gutter))) !important;
  background: var(--osm-orange) !important;
  color: var(--osm-on-orange) !important;
}

body.home-tp .osm-download .osm-kicker,
body.home-tp .osm-download h2,
body.home-tp .osm-download p,
body.home-tp .osm-download a,
body.home-tp .osm-download small { color: var(--osm-on-orange); }

body.home-tp .osm-download .osm-kicker { opacity: .75; }
body.home-tp .osm-download h2 { max-width: 13ch; margin-top: 28px; }

body.home-tp .osm-download > div:first-child > p:last-child {
  max-width: 55ch;
  margin-top: 32px;
  font-family: var(--tp-font-mono);
  font-size: 13px;
  line-height: 1.7;
  opacity: .8;
}

body.home-tp .osm-download-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
}

body.home-tp .osm-button--ink {
  width: 100%;
  border-color: var(--osm-bg);
  background: var(--osm-bg);
  color: var(--osm-ink) !important;
}

body.home-tp .osm-button--ink:hover {
  border-color: var(--osm-on-orange);
  background: transparent;
  color: var(--osm-on-orange) !important;
  transform: translateY(-2px);
}

body.home-tp .osm-download-actions > a:not(.osm-button) {
  font-family: var(--tp-font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  text-transform: uppercase;
}

body.home-tp .osm-download-actions > p,
body.home-tp .osm-download-actions small {
  font-family: var(--tp-font-mono);
  font-size: 9px;
  letter-spacing: .07em;
  line-height: 1.6;
  text-transform: uppercase;
}

body.home-tp .osm-download-actions small { opacity: .76; text-transform: none; }

@keyframes osm-breathe {
  0%, 100% { opacity: .45; transform: scale(.82); }
  50% { opacity: 1; transform: scale(1); }
}

@media (max-width: 1180px) {
  body.home-tp .osm-hero { grid-template-columns: minmax(0, 1fr) minmax(440px, 1fr); gap: 48px; }
  body.home-tp .osm-section-head { grid-template-columns: 150px minmax(0, 1.4fr) minmax(230px, .6fr); gap: 34px; }
  body.home-tp .osm-space:nth-child(1) { grid-column: 1 / span 7; }
  body.home-tp .osm-space:nth-child(2) { grid-column: 8 / -1; }
  body.home-tp .osm-space:nth-child(3) { grid-column: 4 / -1; }
}

@media (max-width: 960px) {
  body.home-tp .osm-hero,
  body.home-tp .osm-thesis,
  body.home-tp .osm-thesis > div,
  body.home-tp .osm-section-head,
  body.home-tp .osm-lifecycle,
  body.home-tp .osm-graph,
  body.home-tp .osm-editorial,
  body.home-tp .osm-faq,
  body.home-tp .osm-download {
    grid-template-columns: 1fr;
  }

  body.home-tp .osm-hero { min-height: 0; }
  body.home-tp .osm-machine { width: min(100%, 760px); margin-left: auto; }
  body.home-tp .osm-thesis > div > p { max-width: 56ch; }
  body.home-tp .osm-section-head h2 { max-width: 15ch; }
  body.home-tp .osm-section-head > p:last-child { max-width: 60ch; }
  body.home-tp .osm-lifecycle-intro,
  body.home-tp .osm-editorial-head,
  body.home-tp .osm-faq header { position: static; }
  body.home-tp .osm-lifecycle-intro h2,
  body.home-tp .osm-graph h2,
  body.home-tp .osm-editorial h2,
  body.home-tp .osm-faq h2 { max-width: 14ch; }
  body.home-tp .osm-lifecycle,
  body.home-tp .osm-graph,
  body.home-tp .osm-editorial,
  body.home-tp .osm-faq { gap: 64px; }
  body.home-tp .osm-proof-list { grid-template-columns: repeat(2, 1fr); }
  body.home-tp .osm-proof-list li:nth-child(3) { border-left: 0; border-top: 1px solid var(--osm-rule); }
  body.home-tp .osm-proof-list li:nth-child(4) { border-top: 1px solid var(--osm-rule); }
}

@media (max-width: 760px) {
  body.home-tp { --osm-gutter: 20px; --osm-section: 92px; }
  body.home-tp .osm-hero { padding-top: 58px; gap: 52px; }
  body.home-tp .osm-hero h1 { font-size: clamp(53px, 17vw, 86px); line-height: .82; }
  body.home-tp .osm-lead { font-size: 14px; }
  body.home-tp .osm-actions { align-items: flex-start; flex-direction: column; }
  body.home-tp .osm-button { width: 100%; }
  body.home-tp .osm-machine { width: 100%; }
  body.home-tp .osm-machine-rail { grid-template-columns: repeat(3, 1fr); }
  body.home-tp .osm-machine-rail li:nth-child(n + 4) { border-top: 1px solid var(--osm-rule); }
  body.home-tp .osm-machine-rail li:nth-child(4) { border-left: 0; }
  body.home-tp .osm-space-grid { grid-template-columns: 1fr; }
  body.home-tp .osm-space:nth-child(n) { grid-column: 1; margin-top: 0; min-height: 360px; }
  body.home-tp .osm-space h3 { font-size: 45px; }
  body.home-tp .osm-cycle li { grid-template-columns: 34px minmax(0, 1fr); gap: 14px; }
  body.home-tp .osm-cycle li > strong { grid-column: 2; justify-self: start; }
  body.home-tp .osm-graph dl > div { grid-template-columns: 1fr; gap: 5px; }
  body.home-tp .osm-proof-list { grid-template-columns: 1fr; }
  body.home-tp .osm-proof-detail { grid-template-columns: 1fr; }
  body.home-tp .osm-proof-detail figcaption { border-right: 0; border-bottom: 1px solid var(--osm-rule); }
  body.home-tp .osm-proof-list li + li { border-left: 0; border-top: 1px solid var(--osm-rule); }
  body.home-tp .osm-principle-list article { grid-template-columns: 40px minmax(0, 1fr); }
  body.home-tp .osm-principle-list article p { grid-column: 2; }
  body.home-tp .osm-faq dl > div { grid-template-columns: 1fr; gap: 16px; }
  body.home-tp .osm-latest article { grid-template-columns: 1fr; }
  body.home-tp .osm-read { justify-self: start; }
  body.home-tp .osm-download { gap: 54px; padding-inline: var(--osm-gutter) !important; }
}

@media (prefers-reduced-motion: reduce) {
  body.home-tp { scroll-behavior: auto; }
  body.home-tp .osm-live i { animation: none; }
  body.home-tp .osm-home *,
  body.home-tp .osm-home *::before,
  body.home-tp .osm-home *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}
