/* Homepage: an editorial masthead, a light engineering canvas, then the publication. */
.ax-home {
  /* Restrained homepage palette: paper and stone fields, graphite ink, one slate
     technical accent, deep teal for actions, orange as the editorial signal. Borders and type carry the structure. */
  --ax-stone: #ecebe6;
  --ax-stone-warm: #efebe2;
  --ax-card: #fbfaf8;
  --ax-slate: #45545d;
  /* Actions use the Robotics & Automation teal (portfolio.css --pv-teal / --pv-teal-deep). */
  --ax-action: #185f56;
  --ax-action-deep: #0f4740;
  --ax-canvas: var(--ax-stone);
  --ax-field-warm: var(--ax-stone-warm);
  --ax-tile-line: color-mix(in srgb, var(--ax-ink) 14%, transparent);
  --ax-tile-line-hover: color-mix(in srgb, var(--ax-ink) 55%, transparent);
  /* Sharp geometry: panels and media 4px, controls 3px. */
  --ax-r-panel: 4px;
  --ax-r-control: 3px;
  padding-inline: 0;
}
.ax-site-main.ax-home { padding-block: 0; }
/* The return-path band meets the footer directly (the footer sits in a template-part wrapper,
   so a sibling selector on .ax-home cannot reach it). home.css loads on the front page only. */
.ax-home ~ .wp-block-template-part, .ax-home ~ .wp-block-template-part > .ax-site-footer { margin-block-start: 0; }
/* One section rhythm (72px at 1440, 40px on phones). Sections butt edge to edge: no flow gap
   between tinted fields, and a section's first heading adds no margin on top of its padding. */
.ax-home > * + * { margin-block-start: 0; }
.ax-section { padding-block: clamp(2.75rem, 5vw, 4.75rem); }
.ax-section > .ax-page > h2:first-child { margin-block-start: 0; }
.ax-latest, .ax-return-path { border-top: 1px solid var(--ax-rule); }
.ax-return-path { padding-block: clamp(2.25rem, 3.6vw, 3.25rem); }
.ax-section h2 { margin-block-end: clamp(1.5rem, 3vw, 2.5rem); }
.ax-home :where(article, div, a) { min-width: 0; }
.ax-home :where(h1, h2, h3, p, a) { overflow-wrap: break-word; }
.ax-home [id] { scroll-margin-top: calc(var(--ax-header-h, 0px) + .5rem); }

/* Static-first reveal enhancement: without the ready class every target is final and readable. */
.ax-home-motion-ready .ax-home [data-ax-reveal] {
  --ax-reveal-duration: 520ms;
  --ax-reveal-travel: 16px;
  opacity: 0;
  transform: translateY(var(--ax-reveal-travel));
  transition: opacity var(--ax-reveal-duration) cubic-bezier(.22,1,.36,1) var(--ax-reveal-delay, 0ms), transform var(--ax-reveal-duration) cubic-bezier(.22,1,.36,1) var(--ax-reveal-delay, 0ms);
}
.ax-home-motion-ready .ax-home [data-ax-reveal].is-visible { opacity: 1; transform: translateY(0); }
.ax-home-motion-ready .ax-home [data-ax-reveal="hero-text"] { --ax-reveal-duration: 600ms; --ax-reveal-travel: 18px; }
.ax-home-motion-ready .ax-home [data-ax-reveal="hero-media"] { --ax-reveal-duration: 720ms; --ax-reveal-travel: 0; opacity: 0; transform: scale(1.025); }
.ax-home-motion-ready .ax-home [data-ax-reveal="hero-media"].is-visible { transform: scale(1); }

/* Shared actions: rectangular controls with a directional arrow. Primary = deep teal, secondary = teal outline.
   (Class name kept for markup/analytics stability; the shape is no longer a pill.) */
.ax-arrow { block-size: 1.15em; flex: none; inline-size: 1.15em; }
.ax-pill { align-items: center; border: 1px solid var(--ax-ink); border-radius: var(--ax-r-control); box-sizing: border-box; color: var(--ax-ink); display: inline-flex; font-family: var(--ax-sans); font-size: .9375rem; font-weight: 650; gap: .6rem; justify-content: center; letter-spacing: .005em; line-height: 1.2; min-height: 3rem; padding: .65rem 1rem .65rem 1.15rem; text-align: center; text-decoration: none; transition: background-color var(--ax-fast) var(--ax-ease), border-color var(--ax-fast) var(--ax-ease), color var(--ax-fast) var(--ax-ease); }
.ax-pill--primary { background: var(--ax-action); border-color: var(--ax-action); color: var(--ax-paper); }
.ax-pill--primary:hover { background: var(--ax-action-deep); border-color: var(--ax-action-deep); color: var(--ax-paper); }
.ax-pill--secondary { background: transparent; border-color: color-mix(in srgb, var(--ax-action) 55%, transparent); }
.ax-pill--secondary:hover { background: color-mix(in srgb, var(--ax-action) 7%, transparent); border-color: var(--ax-action); color: var(--ax-action-deep); }

/* Hero: a masthead (~45%) beside the featured story (~55%), equal visual weight.
   The identity sits on the paper under a rule, not on a card: one tight stack
   (brand line, H1, dek, controls) from the top, ending with the controls. */
.ax-hero { padding-block: clamp(1.5rem, 3.5vw, 3.5rem) clamp(2.25rem, 4vw, 3.5rem); }
.ax-hero__grid { align-items: stretch; display: grid; gap: clamp(1.5rem, 3vw, 3rem); grid-template-columns: minmax(0, 9fr) minmax(0, 11fr); }
.ax-hero__identity { border-top: 2px solid var(--ax-ink); display: flex; flex-direction: column; padding-block-start: clamp(1rem, 1.6vw, 1.35rem); }
.ax-hero__identity > * { margin-block: 0; }
.ax-hero__eyebrow { align-items: center; color: var(--ax-ink-soft); display: flex; font-size: .9375rem; font-weight: 600; gap: .7rem; margin: 0; padding-block-end: clamp(1.5rem, 3vw, 2.75rem); }
.ax-hero__eyebrow::before { background: var(--ax-signal); content: ""; flex: none; height: 2px; width: 1.6rem; }
.ax-hero__title { font-size: clamp(2.25rem, 4.2vw, 4rem); letter-spacing: -.02em; line-height: 1.02; padding-block-end: clamp(1rem, 1.6vw, 1.35rem); max-inline-size: 19ch; text-wrap: balance; }
.ax-hero__dek { color: var(--ax-ink-soft); font-family: var(--ax-serif); font-size: var(--wp--preset--font-size--lead, 1.2rem); line-height: 1.5; margin: 0; max-inline-size: 30rem; }
.ax-hero__routes { display: flex; flex-wrap: wrap; gap: .6rem; padding-block-start: clamp(1.5rem, 2.6vw, 2rem); }
.ax-hero__note { color: var(--ax-ink-soft); margin: 1.25rem 0 0; }
.ax-hero--empty .ax-hero__grid { grid-template-columns: minmax(0, 1fr); }
.ax-hero--empty .ax-hero__identity { max-inline-size: 52rem; }

.ax-hero__story { display: flex; flex-direction: column; }
.ax-hero__lang-note { align-self: flex-start; background: var(--ax-stone); border-inline-start: 2px solid var(--ax-slate); color: var(--ax-ink); font-size: .875rem; font-weight: 600; line-height: 1.35; margin: 0 0 .85rem; padding: .4rem .8rem; }
.ax-hero__media { aspect-ratio: 16 / 9; background: var(--ax-surface-subtle); border-radius: var(--ax-r-panel); display: block; overflow: hidden; }
.ax-hero__media img, .ax-story-card__media img, .ax-review-card__media img, .ax-find-card__media img { height: 100%; object-fit: cover; width: 100%; }
.ax-hero__feature-body { padding-block-start: 1.1rem; }
.ax-hero__feature-title { font-size: clamp(1.55rem, 2.4vw, 2.3rem); line-height: 1.12; margin: .4rem 0 .6rem; max-inline-size: 30ch; text-wrap: balance; }
.ax-hero__feature--long-title .ax-hero__feature-title { font-size: clamp(1.35rem, 1.9vw, 1.8rem); max-inline-size: 40ch; }
.ax-hero__feature-dek { -webkit-box-orient: vertical; color: var(--ax-ink-soft); display: -webkit-box; font-family: var(--ax-serif); font-size: 1.0625rem; -webkit-line-clamp: 3; line-height: 1.5; margin: 0 0 .6rem; max-inline-size: 44rem; overflow: hidden; }

/* Card and tile titles: no permanent underline; hover/focus brings it back. Prose links keep theirs. */
.ax-hero__feature-title a, .ax-story-card__body h3 a, .ax-review-card h3 a { color: inherit; text-decoration: none; }
.ax-hero__feature-title a:hover, .ax-hero__feature-title a:focus-visible,
.ax-story-card__body h3 a:hover, .ax-story-card__body h3 a:focus-visible,
.ax-review-card h3 a:hover, .ax-review-card h3 a:focus-visible { text-decoration: underline; text-decoration-color: var(--ax-signal); text-decoration-thickness: .07em; }

/* Shared story role: visual media is always reserved, including empty images. */
.ax-story-card__media { aspect-ratio: 4 / 3; background: var(--ax-surface-subtle); border-radius: var(--ax-r-panel); display: block; overflow: hidden; }
.ax-story-card__media--fallback, .ax-media-fallback { block-size: 100%; display: grid; inline-size: 100%; place-items: center; }
.ax-media-fallback { background: linear-gradient(135deg, var(--ax-surface-subtle), var(--ax-rule)); color: var(--ax-ink-soft); font-family: var(--ax-mono); font-size: .85rem; isolation: isolate; position: relative; }
.ax-latest .ax-media-fallback::before, .ax-reviews .ax-media-fallback::before { background: var(--ax-signal); content: ""; height: 2px; inset: .75rem auto auto .75rem; position: absolute; width: 2rem; }
.ax-media-fallback__grid { background-image: linear-gradient(90deg, transparent 49%, color-mix(in srgb, var(--ax-ink-soft) 22%, transparent) 50%, transparent 51%), linear-gradient(transparent 49%, color-mix(in srgb, var(--ax-ink-soft) 22%, transparent) 50%, transparent 51%); background-size: 1.5rem 1.5rem; inset: 0; opacity: .5; position: absolute; }
.ax-media-fallback__mark { border: 1px solid currentColor; padding: .35rem .5rem; z-index: 1; }
.ax-story-card__body h3 { margin-block: .35rem; }
.ax-meta__minutes { white-space: nowrap; }

/* Compact rows (hero support, guide support): title first, square thumbnail beside it. */
.ax-hero__support { border-top: 2px solid var(--ax-ink); column-gap: clamp(1.25rem, 3vw, 2.5rem); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-block-start: clamp(2rem, 4vw, 3.5rem); }
.ax-hero__support .ax-story-card { align-items: start; display: grid; gap: .9rem; grid-template-columns: minmax(0, 1fr) 6.5rem; padding-block: 1.1rem; }
.ax-hero__support .ax-story-card__media, .ax-guides__rows .ax-story-card__media { aspect-ratio: 1 / 1; border-radius: var(--ax-r-panel); grid-column: 2; grid-row: 1; }
.ax-hero__support .ax-story-card__body, .ax-guides__rows .ax-story-card__body { grid-column: 1; grid-row: 1; }
.ax-hero__support .ax-story-card__body h3 { font-size: clamp(1.05rem, 1.4vw, 1.25rem); line-height: 1.25; }
/* Side by side, the three cards share one row height: each body runs the full card and the
   meta line settles at its foot, so dates align whatever the title length. Tablets keep the
   square thumbnail (start-aligned): their narrow cards wrap titles deep, and a full-height
   5rem column would crop covers into tall slivers. Phones keep square compact rows. */
@media (min-width: 48.01rem) {
  .ax-hero__support .ax-story-card { align-items: stretch; }
  .ax-hero__support .ax-story-card__media { align-self: start; }
  .ax-hero__support .ax-story-card__body { display: flex; flex-direction: column; }
  .ax-hero__support .ax-story-card__body .ax-meta { margin-block-start: auto; }
}
/* Wide desktop: the thumbnail keeps its 6.5rem column and fills the card's content height
   (cover-cropped); the image is taken out of flow so it never sets the row height — the
   titles do. */
@media (min-width: 64.01rem) {
  .ax-hero__support .ax-story-card__media { align-self: stretch; aspect-ratio: auto; position: relative; }
  .ax-hero__support .ax-story-card__media img { inset: 0; position: absolute; }
}
.ax-hero__more { align-items: center; border-top: 1px solid var(--ax-rule); display: flex; flex-wrap: wrap; font-weight: 600; gap: .5rem 1.75rem; grid-column: 1 / -1; margin: 0; padding-block-start: 1rem; }

/* Engineering: a stone systems canvas. Slate is the technical accent; deep teal marks actions. */
.ax-desk { background: var(--ax-canvas); border-block: 1px solid var(--ax-tile-line); }
.ax-desk + .ax-section { border-top: 0; }
.ax-desk .ax-kicker, .ax-desk__cred-label { color: var(--ax-slate); }
.ax-desk__head { max-inline-size: 44rem; }
.ax-desk__head h2 { font-size: clamp(1.9rem, 3.6vw, 3.1rem); line-height: 1.06; margin-block: .5rem .75rem; }
.ax-desk__lede { color: var(--ax-ink-soft); font-size: 1.0625rem; margin: 0; text-wrap: pretty; }

/* Intent choice tiles: one neutral surface; icon cell, name, hint, arrow. The whole tile is the link. */
.ax-desk__intents { display: grid; gap: .75rem; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; margin: clamp(1.75rem, 3vw, 2.5rem) 0 0; padding: 0; }
.ax-desk__intents li { display: flex; }
.ax-desk__intent { align-items: center; background: var(--ax-card); border: 1px solid var(--ax-tile-line); border-radius: var(--ax-r-panel); color: var(--ax-ink); display: grid; flex: 1; gap: .9rem; grid-template-columns: auto minmax(0, 1fr) auto; min-height: 4.75rem; padding: .85rem 1rem .85rem .85rem; text-decoration: none; transition: border-color var(--ax-fast) var(--ax-ease), background-color var(--ax-fast) var(--ax-ease); }
.ax-desk__intent-icon { align-items: center; border: 1px solid var(--ax-tile-line); border-radius: var(--ax-r-control); color: var(--ax-slate); display: inline-flex; block-size: 2.75rem; inline-size: 2.75rem; justify-content: center; transition: border-color var(--ax-fast) var(--ax-ease), color var(--ax-fast) var(--ax-ease); }
.ax-desk__intent-icon svg { block-size: 1.5rem; fill: none; inline-size: 1.5rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5; }
.ax-desk__intent-text { display: grid; gap: .15rem; }
.ax-desk__intent-label { font-family: var(--ax-serif); font-size: clamp(1.1rem, 1.5vw, 1.3rem); font-weight: 700; hyphens: auto; line-height: 1.2; overflow-wrap: anywhere; }
.ax-desk__intent-hint { color: var(--ax-ink-soft); font-size: .875rem; line-height: 1.35; }
.ax-desk__intent > .ax-arrow { color: var(--ax-slate); transition: color var(--ax-fast) var(--ax-ease); }
.ax-desk__intent:hover, .ax-desk__intent:focus-visible { background: var(--ax-surface); border-color: var(--ax-tile-line-hover); }
.ax-desk__intent:hover .ax-desk__intent-icon, .ax-desk__intent:focus-visible .ax-desk__intent-icon { border-color: color-mix(in srgb, var(--ax-ink) 35%, transparent); color: var(--ax-ink); }
.ax-desk__intent:hover > .ax-arrow, .ax-desk__intent:focus-visible > .ax-arrow { color: var(--ax-action); }

/* Planning tool cards: engineering-tools.css (shared with the Robotics page). */
.ax-desk__tools { margin-block-start: clamp(2.5rem, 4.5vw, 3.75rem); }

/* Credibility panel: three ruled columns — who (identity), where (company routes), next (actions).
   A 2px ink head rule ties it to the masthead; hairlines separate the groups. */
.ax-desk__cred { background: var(--ax-card); border: 1px solid var(--ax-tile-line); border-top: 2px solid var(--ax-ink); border-radius: 0 0 var(--ax-r-panel) var(--ax-r-panel); display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.3fr) minmax(15rem, .85fr); margin-block-start: clamp(1.75rem, 3vw, 2.5rem); }
.ax-desk__cred > * { margin: 0; padding: clamp(1.15rem, 2vw, 1.5rem) clamp(1.25rem, 2.2vw, 1.75rem); }
.ax-desk__cred > * + * { border-inline-start: 1px solid var(--ax-tile-line); }
.ax-desk__cred-who { align-content: center; display: grid; }
.ax-desk__cred-label { font-family: var(--ax-sans); font-size: .8125rem; font-weight: 700; letter-spacing: .02em; margin: 0 0 .5rem; }
.ax-desk__cred-name { font-family: var(--ax-serif); font-size: clamp(1.35rem, 1.8vw, 1.55rem); font-weight: 700; line-height: 1.15; margin: 0; }
.ax-desk__cred-role { color: var(--ax-ink-soft); font-size: .9375rem; margin: .2rem 0 0; }
.ax-desk__companies { align-content: center; display: grid; list-style: none; }
.ax-desk__companies li { align-items: center; display: grid; gap: .1rem 1rem; grid-template-columns: minmax(0, 1fr) auto; padding-block: .35rem; }
.ax-desk__companies li + li { border-top: 1px solid var(--ax-tile-line); }
.ax-desk__company-scope { color: var(--ax-ink-soft); font-size: .9375rem; }
.ax-desk__companies a { align-items: center; color: var(--ax-ink); display: inline-flex; font-weight: 700; gap: .15rem; min-height: 2.5rem; text-decoration-color: var(--ax-signal); text-decoration-thickness: 2px; text-underline-offset: .2em; }
.ax-arrow--external { block-size: 1em; inline-size: 1em; }
.ax-desk__actions { align-content: center; display: grid; gap: .6rem; }
.ax-desk__actions .ax-pill { justify-content: space-between; text-align: start; }

/* Picks are a numbered reading list, with numbers made by CSS rather than extra chrome. */
.ax-picks__list { border-top: 2px solid var(--ax-ink); counter-reset: ax-pick; list-style: none; margin: 0; padding: 0; }
.ax-pick-row { border-bottom: 1px solid var(--ax-rule); counter-increment: ax-pick; display: grid; gap: 1rem; grid-template-columns: 4.5rem minmax(0, 1fr); padding-block: clamp(1.25rem, 2vw, 1.75rem); }
.ax-pick-row__number { color: var(--ax-ink-soft); font-family: var(--ax-serif); font-size: clamp(1.6rem, 3vw, 2.5rem); line-height: 1; }
.ax-pick-row__body { max-inline-size: 58rem; }
.ax-pick-row__body h3 { font-size: clamp(1.3rem, 2.4vw, 2rem); margin: .25rem 0 0; }

/* Latest uses named editorial roles; every story carries its image so columns stay full. */
.ax-latest__grid { display: grid; gap: clamp(1.5rem, 3vw, 3rem) clamp(1.25rem, 2vw, 2rem); grid-template-columns: repeat(12, minmax(0, 1fr)); }
.ax-latest__item { min-width: 0; }
.ax-latest__item .ax-story-card { border-top: 1px solid var(--ax-rule); display: block; padding-block-start: 1.25rem; }
.ax-latest__item--lead { grid-column: span 7; grid-row: span 2; }
.ax-latest__item--lead .ax-story-card { border-top: 2px solid var(--ax-ink); }
.ax-latest__item--lead .ax-story-card__body { max-inline-size: 42rem; }
.ax-latest__item--lead .ax-story-card__body h3 { font-size: clamp(1.8rem, 3vw, 2.7rem); max-inline-size: 22ch; }
.ax-latest__item--support { grid-column: span 5; }
.ax-latest__item--support .ax-story-card__media { aspect-ratio: 16 / 9; }
.ax-latest__item--support .ax-story-card__body h3 { font-size: clamp(1.3rem, 2vw, 1.75rem); max-inline-size: 28ch; }
.ax-latest__item--standard { grid-column: span 4; }
.ax-latest__item--standard .ax-story-card__media { aspect-ratio: 3 / 2; }
.ax-latest__item .ax-story-card__media { margin-block-end: .75rem; }
.ax-latest__item .ax-story-card__body h3 a { hyphens: none; overflow-wrap: normal; word-break: normal; }
.ax-latest__more { margin-block-start: 2rem; }

/* Reviews: one evidence-led lead beside three stacked support rows, on a warm stone field. */
.ax-reviews { background: var(--ax-field-warm); }
.ax-reviews__grid { align-items: stretch; display: grid; gap: clamp(1.5rem, 3.5vw, 3.5rem); grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.ax-reviews__grid--single { grid-template-columns: minmax(0, 48rem); }
.ax-review-card__media { aspect-ratio: 4 / 3; background: var(--ax-surface-subtle); border-radius: var(--ax-r-panel); display: block; overflow: hidden; }
.ax-review-card h3 { margin: 0 0 .5rem; }
.ax-review-card .ax-meta { margin: 0; }
.ax-review-card--lead { align-content: start; background: var(--ax-card); border: 1px solid var(--ax-tile-line); border-radius: var(--ax-r-panel); display: grid; gap: 1.15rem; padding: clamp(.75rem, 1.4vw, 1rem); }
.ax-review-card--lead .ax-review-card__media { aspect-ratio: 16 / 9; border-radius: var(--ax-r-panel); }
.ax-review-card--lead .ax-review-card__body { padding: 0 clamp(.25rem, 1vw, .75rem) clamp(.5rem, 1vw, .75rem); }
.ax-review-card--lead h3 { font-size: clamp(1.55rem, 2.4vw, 2.2rem); line-height: 1.14; max-inline-size: 28ch; text-wrap: balance; }
.ax-review-card__verdict { -webkit-box-orient: vertical; color: var(--ax-ink-soft); display: -webkit-box; font-family: var(--ax-serif); font-size: 1.0625rem; -webkit-line-clamp: 3; line-height: 1.5; margin: 0 0 .75rem; max-inline-size: 44rem; overflow: hidden; }
.ax-reviews__rows { border-top: 2px solid var(--ax-ink); display: grid; grid-auto-rows: 1fr; }
.ax-review-card--support { align-items: center; border-bottom: 1px solid color-mix(in srgb, var(--ax-ink) 16%, transparent); display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 1fr) 8.5rem; padding-block: 1.15rem; }
.ax-review-card--support .ax-review-card__media { aspect-ratio: 1 / 1; border-radius: var(--ax-r-panel); grid-column: 2; grid-row: 1; }
.ax-review-card--support .ax-review-card__body { grid-column: 1; grid-row: 1; }
.ax-review-card--support h3 { font-size: clamp(1.1rem, 1.4vw, 1.25rem); line-height: 1.25; }
.ax-evidence-label { color: var(--ax-good); font-weight: 700; }

/* Guides: one deep read (image above its body) beside four compact thumbnail rows. */
.ax-guides__grid { align-items: start; display: grid; gap: clamp(1.75rem, 4vw, 4rem); grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
.ax-guides__grid > .ax-story-card { border-top: 0; display: block; padding-block: 0; }
.ax-guides__grid > .ax-story-card .ax-story-card__media { aspect-ratio: 16 / 9; margin-block-end: 1.1rem; }
.ax-guides__grid > .ax-story-card h3 { font-size: clamp(1.7rem, 2.8vw, 2.45rem); line-height: 1.12; max-inline-size: 24ch; text-wrap: balance; }
.ax-guides__grid > .ax-story-card .ax-story-card__body > p:not(.ax-meta):not(.ax-kicker),
.ax-latest__item--lead .ax-story-card__body > p:not(.ax-meta):not(.ax-kicker) { -webkit-box-orient: vertical; color: var(--ax-ink-soft); display: -webkit-box; font-family: var(--ax-serif); font-size: 1.0625rem; -webkit-line-clamp: 3; line-height: 1.5; margin-block: .25rem .75rem; max-inline-size: 42rem; overflow: hidden; }
.ax-guides__rows { border-top: 2px solid var(--ax-ink); margin-block-start: 0; }
.ax-guides__rows .ax-story-card { align-items: start; border-bottom: 1px solid var(--ax-rule); display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr) 6.5rem; padding-block: 1.1rem; }
.ax-guides__rows .ax-story-card__body h3 { font-size: clamp(1.1rem, 1.4vw, 1.25rem); line-height: 1.25; }

/* Finds are deliberately utilitarian: quiet product tiles on a different surface. */
.ax-finds { background: var(--ax-surface-subtle); }
.ax-finds__head { align-items: baseline; display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; justify-content: space-between; margin-block-end: 1.75rem; }
.ax-disclosure-note { color: var(--ax-ink-soft); font-family: var(--ax-mono); font-size: .75rem; max-inline-size: 58ch; }
.ax-finds__grid { display: grid; gap: clamp(1rem, 2vw, 1.75rem); grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ax-find-card { color: var(--ax-ink); display: grid; gap: .65rem; text-decoration: none; }
.ax-find-card__media { aspect-ratio: 1 / 1; background: var(--ax-surface); border: 1px solid var(--ax-rule); border-radius: 4px; display: block; overflow: hidden; }
.ax-find-card__title { font-weight: 700; text-decoration: underline; text-decoration-thickness: .08em; }

/* The person behind the site, on a quiet systems canvas. */
.ax-about-editor { background: color-mix(in srgb, var(--ax-surface-subtle) 55%, var(--ax-paper)); }
.ax-about-editor__grid { display: grid; gap: clamp(2rem, 5vw, 5rem); grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.ax-about-editor__copy { max-inline-size: var(--ax-content); }
.ax-about-editor__copy h2 { margin-block: .5rem .25rem; }
.ax-about-editor__role { color: var(--ax-ink-soft); font-weight: 600; margin: 0 0 1.25rem; }
.ax-about-editor__thesis { font-family: var(--ax-serif); font-size: clamp(1.4rem, 2.2vw, 1.85rem); line-height: 1.2; margin: 0 0 1rem; }
.ax-about-editor__copy p:not([class]) { color: var(--ax-ink-soft); }
.ax-about-editor__cta { font-weight: 700; text-decoration-color: var(--ax-signal); text-decoration-thickness: 2px; }
.ax-about-editor__work-title, .ax-practice__title { color: var(--ax-steel); font-family: var(--ax-mono); font-size: .75rem; font-weight: 700; letter-spacing: .08em; margin: 0 0 .75rem; text-transform: uppercase; }
.ax-about-editor__cases { border-top: 2px solid var(--ax-ink); list-style: none; margin: 0; padding: 0; }
.ax-about-editor__cases li { border-bottom: 1px solid var(--ax-rule); }
.ax-about-editor__cases a { color: var(--ax-ink); display: grid; gap: .35rem; padding-block: 1.1rem; text-decoration: none; }
.ax-about-editor__case { font-family: var(--ax-serif); font-size: clamp(1.2rem, 1.8vw, 1.5rem); line-height: 1.25; }
.ax-about-editor__cases a:hover .ax-about-editor__case, .ax-about-editor__cases a:focus-visible .ax-about-editor__case { text-decoration: underline; text-decoration-thickness: .07em; }

.ax-practice { margin-block-start: clamp(2.5rem, 5vw, 4rem); }
.ax-practice__list { display: grid; gap: clamp(1rem, 2vw, 1.5rem); grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.ax-practice__link { color: var(--ax-ink); display: grid; gap: .6rem; text-decoration: none; }
.ax-practice__media { aspect-ratio: 3 / 2; background: var(--ax-surface-subtle); border-radius: var(--ax-r-panel); display: block; overflow: hidden; }
.ax-practice__media picture, .ax-practice__media img { block-size: 100%; inline-size: 100%; object-fit: cover; }
.ax-practice__name { font-family: var(--ax-serif); font-size: 1.125rem; font-weight: 700; line-height: 1.25; text-decoration: underline; text-decoration-color: var(--ax-rule); text-decoration-thickness: 1px; text-underline-offset: .2em; }
.ax-practice__link:hover .ax-practice__name, .ax-practice__link:focus-visible .ax-practice__name { text-decoration-color: var(--ax-signal); text-decoration-thickness: 2px; }
.ax-practice__credit { color: var(--ax-ink-soft); font-size: .8125rem; margin: .9rem 0 0; }

/* Topics: a calm index of full-surface tiles (count, name, description, arrow) on the paper. */
.ax-topics { background: var(--ax-paper); border-top: 1px solid var(--ax-rule); }
.ax-topics__grid { display: grid; gap: .75rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ax-topic-tile { align-content: start; background: var(--ax-card); border: 1px solid var(--ax-tile-line); border-radius: var(--ax-r-panel); display: grid; gap: .2rem .75rem; grid-template-areas: "count arrow" "title title" "desc desc"; grid-template-columns: minmax(0, 1fr) auto; padding: 1rem 1.1rem 1.2rem; position: relative; transition: border-color var(--ax-fast) var(--ax-ease), background-color var(--ax-fast) var(--ax-ease); }
/* The topic count varies with the data: the last tile takes whatever its row has left,
   so no grid ever ends on an empty cell (4 columns here, 3 on tablet, 2 on phones). */
.ax-topic-tile:last-child:nth-child(4n + 1) { grid-column: 1 / -1; }
.ax-topic-tile:last-child:nth-child(4n + 2) { grid-column: span 3; }
.ax-topic-tile:last-child:nth-child(4n + 3) { grid-column: span 2; }
.ax-topic-tile__count { color: var(--ax-ink-soft); font-family: var(--ax-mono); font-size: .75rem; grid-area: count; margin: 0; }
.ax-topic-tile h3 { font-size: clamp(1.25rem, 1.8vw, 1.55rem); grid-area: title; hyphens: auto; line-height: 1.2; margin: 1.6rem 0 0; }
.ax-topic-tile__link { color: var(--ax-ink); text-decoration: none; }
.ax-topic-tile__link::after { border-radius: inherit; content: ""; inset: 0; position: absolute; }
.ax-topic-tile__desc { color: var(--ax-ink-soft); font-size: .875rem; grid-area: desc; line-height: 1.4; margin: .35rem 0 0; }
.ax-topic-tile__arrow { color: var(--ax-slate); grid-area: arrow; transition: color var(--ax-fast) var(--ax-ease); }
.ax-topic-tile:hover { background: var(--ax-surface); border-color: var(--ax-tile-line-hover); }
.ax-topic-tile:hover .ax-topic-tile__arrow { color: var(--ax-action); }
.ax-topic-tile:hover .ax-topic-tile__link { text-decoration: underline; text-decoration-color: var(--ax-signal); text-decoration-thickness: .07em; }
@supports selector(:has(a)) {
  .ax-topic-tile__link:focus-visible { outline: 0; }
  .ax-topic-tile:has(.ax-topic-tile__link:focus-visible) { outline: 3px solid var(--ax-focus); outline-offset: 3px; }
}

.ax-return-path { background: var(--ax-surface-subtle); }
.ax-return-path h2 { margin-block-end: .75rem; }

/* Desktop composition: paired columns end together. Leads are flex columns whose image takes
   any spare height (cover-cropped, never below its ratio); support rows share the height evenly.
   Content-driven — no fixed heights. Tablet/phone keep their own stacked layouts. */
@media (min-width: 64.01rem) {
  .ax-latest__item--lead, .ax-latest__item--support { display: flex; }
  .ax-latest__item--lead .ax-story-card, .ax-latest__item--support .ax-story-card { display: flex; flex: 1; flex-direction: column; }
  .ax-latest__item--lead .ax-story-card__media, .ax-latest__item--support .ax-story-card__media { flex: 1 0 auto; }
  .ax-guides__grid { align-items: stretch; }
  .ax-guides__grid > .ax-story-card { display: flex; flex-direction: column; }
  .ax-guides__grid > .ax-story-card .ax-story-card__media { flex: 1 0 auto; }
  .ax-guides__rows { display: grid; grid-auto-rows: 1fr; }
}

/* About: copy and Selected work are one two-column composition. The copy's CTA settles at the
   foot; the case rows share the column height. Only while the columns sit side by side. */
@media (min-width: 48.01rem) {
  .ax-about-editor__copy { display: flex; flex-direction: column; }
  .ax-about-editor__copy > :first-child { margin-block-start: 0; }
  /* Flex margins do not collapse: keep the paragraphs' original single-margin rhythm. */
  .ax-about-editor__copy > p:not([class]), .ax-about-editor__copy > h2 { margin-block-start: 0; }
  .ax-about-editor__copy > :last-child { margin-block: auto 0; padding-block-start: 1rem; }
  .ax-about-editor__work { display: flex; flex-direction: column; }
  .ax-about-editor__cases { display: grid; flex: 1; grid-auto-rows: 1fr; }
  .ax-about-editor__cases a { align-content: center; block-size: 100%; }
}

@media (max-width: 64rem) {
  .ax-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .ax-hero__support .ax-story-card { grid-template-columns: minmax(0, 1fr) 5rem; }
  .ax-latest__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ax-latest__item--lead { grid-column: span 2; grid-row: auto; }
  .ax-latest__item--support, .ax-latest__item--standard { grid-column: span 1; }
  .ax-latest__item--lead .ax-story-card { display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 1.15fr) minmax(16rem, .85fr); }
  .ax-latest__item--lead .ax-story-card__body { align-self: end; }

  /* Tablet: leads full width, their support items beneath as a balanced grid. */
  .ax-reviews__grid, .ax-guides__grid { grid-template-columns: minmax(0, 1fr); }
  .ax-review-card--lead { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: center; }
  .ax-review-card--lead .ax-review-card__body { padding: .5rem; }
  .ax-reviews__rows { column-gap: 1.5rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ax-review-card--support { align-content: start; align-items: start; grid-template-columns: minmax(0, 1fr); }
  .ax-reviews__rows { grid-auto-rows: auto; }
  .ax-review-card--support .ax-review-card__media { aspect-ratio: 3 / 2; grid-row: 1; grid-column: 1; }
  .ax-review-card--support .ax-review-card__body { grid-row: 2; }
  .ax-guides__grid > .ax-story-card { display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: center; }
  .ax-guides__grid > .ax-story-card .ax-story-card__media { margin: 0; }
  .ax-guides__rows { column-gap: 1.75rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .ax-desk__cred { grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); }
  .ax-desk__cred > .ax-desk__actions { border-inline-start: 0; border-top: 1px solid var(--ax-tile-line); grid-column: 1 / -1; grid-template-columns: repeat(2, max-content); }
  .ax-topics__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ax-topic-tile:last-child:nth-child(n) { grid-column: auto; }
  .ax-topic-tile:last-child:nth-child(3n + 1) { grid-column: 1 / -1; }
  .ax-topic-tile:last-child:nth-child(3n + 2) { grid-column: span 2; }
  .ax-finds__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ax-practice__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 56rem) {
  /* Tablet: identity panel, then the story at full width; new stories stay one ruled row. */
  .ax-hero__grid { grid-template-columns: minmax(0, 1fr); }
  .ax-hero__title { max-inline-size: 20ch; }
  .ax-hero__support .ax-story-card { grid-template-columns: minmax(0, 1fr) 5rem; }
  .ax-desk__intents { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ax-desk__intents li:last-child:nth-child(odd) { grid-column: 1 / -1; }
}

@media (max-width: 48rem) {
  .ax-section { padding-block: clamp(2.5rem, 9vw, 3.5rem); }
  .ax-return-path { padding-block: 2.25rem; }
  .ax-about-editor__grid { grid-template-columns: 1fr; }
  .ax-hero__support { grid-template-columns: minmax(0, 1fr); }
  .ax-hero__support .ax-story-card + .ax-story-card { border-top: 1px solid var(--ax-rule); }
  .ax-desk__cred { grid-template-columns: minmax(0, 1fr); }
  .ax-desk__cred > * + * { border-inline-start: 0; border-top: 1px solid var(--ax-tile-line); }
  .ax-desk__cred > .ax-desk__actions { grid-template-columns: minmax(0, 1fr); }
  .ax-topics__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ax-topic-tile:last-child:nth-child(n) { grid-column: auto; }
  .ax-topic-tile:last-child:nth-child(2n + 1) { grid-column: 1 / -1; }
  .ax-finds__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ax-home-motion-ready .ax-home [data-ax-reveal] { --ax-reveal-travel: 10px; }
  .ax-home-motion-ready .ax-home [data-ax-reveal="hero-text"] { --ax-reveal-duration: 480ms; --ax-reveal-travel: 10px; }
  .ax-home-motion-ready .ax-home [data-ax-reveal="hero-media"] { transform: scale(1.015); }
}

@media (max-width: 47.99rem) {
  /* Phones: compact editorial rows after each lead, title first, image beside it. */
  .ax-hero { padding-block-start: 1rem; }
  .ax-hero__identity { padding: 1rem 0 0; }
  .ax-hero__eyebrow { font-size: .875rem; margin-block-end: .9rem; }
  .ax-hero__title { font-size: clamp(2rem, 8.6vw, 2.5rem); max-inline-size: none; padding-block-end: .85rem; }
  .ax-hero__dek { font-size: 1.0625rem; }
  .ax-hero__routes { padding-block-start: 1.25rem; }
  .ax-hero__eyebrow { padding-block-end: 1rem; }
  .ax-hero__routes .ax-pill { flex: 1 1 100%; padding-inline: 1rem; }
  .ax-hero__grid { gap: 1.5rem; }
  .ax-hero__support { margin-block-start: 1.75rem; }

  .ax-latest__grid { gap: 0; grid-template-columns: minmax(0, 1fr); }
  .ax-latest__item--lead, .ax-latest__item--support, .ax-latest__item--standard { grid-column: 1; }
  .ax-latest__item--lead .ax-story-card { display: block; padding-block-end: 1.25rem; }
  .ax-latest__item:not(.ax-latest__item--lead) .ax-story-card { align-items: start; display: grid; gap: .9rem; grid-template-columns: minmax(0, 1fr) 5.5rem; padding-block: 1rem; }
  .ax-latest__item:not(.ax-latest__item--lead) .ax-story-card__media { aspect-ratio: 1 / 1; border-radius: var(--ax-r-panel); grid-column: 2; grid-row: 1; margin: 0; }
  .ax-latest__item:not(.ax-latest__item--lead) .ax-story-card__body { grid-column: 1; grid-row: 1; }
  .ax-latest__item:not(.ax-latest__item--lead) .ax-story-card__body h3 { font-size: 1.125rem; line-height: 1.25; }

  .ax-review-card--lead, .ax-guides__grid > .ax-story-card { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr); }
  .ax-review-card--lead .ax-review-card__body { padding: 0 .25rem .35rem; }
  .ax-reviews__rows, .ax-guides__rows { display: block; }
  .ax-review-card--support, .ax-guides__rows .ax-story-card { gap: .9rem; grid-template-columns: minmax(0, 1fr) 5.5rem; padding-block: 1rem; }
  .ax-review-card--support .ax-review-card__media { aspect-ratio: 1 / 1; grid-column: 2; grid-row: 1; }
  .ax-review-card--support .ax-review-card__body { grid-row: 1; }
  .ax-review-card--support h3, .ax-guides__rows .ax-story-card__body h3 { font-size: 1.125rem; }

  .ax-desk__intents { gap: .5rem; }
  .ax-desk__intent { align-content: start; gap: .55rem; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto; min-height: 0; padding: .75rem .75rem .85rem; }
  .ax-desk__intent-icon { block-size: 2.25rem; grid-column: 1; inline-size: 2.25rem; }
  .ax-desk__intent > .ax-arrow { align-self: start; grid-column: 2; grid-row: 1; }
  .ax-desk__intent-text { grid-column: 1 / -1; }
  .ax-desk__intent-label { font-size: 1.05rem; }
  .ax-desk__intent-hint { font-size: .8125rem; }
  .ax-desk__intents li:last-child:nth-child(odd) .ax-desk__intent { grid-template-columns: auto minmax(0, 1fr) auto; grid-template-rows: auto; min-height: 0; }
  .ax-desk__intents li:last-child:nth-child(odd) .ax-desk__intent-icon { grid-column: 1; }
  .ax-desk__intents li:last-child:nth-child(odd) .ax-desk__intent-text { grid-column: 2; grid-row: 1; }
  .ax-desk__intents li:last-child:nth-child(odd) .ax-desk__intent > .ax-arrow { align-self: center; grid-column: 3; }

  .ax-topic-tile { padding: .85rem .9rem 1rem; }
  .ax-topic-tile h3 { font-size: 1.1rem; margin-block-start: .6rem; }
  .ax-topic-tile__desc { display: none; }

  .ax-practice__list { grid-auto-columns: 78%; grid-auto-flow: column; grid-template-columns: none; margin-inline: calc(-1 * var(--ax-gutter)); overflow-x: auto; overscroll-behavior-x: contain; padding-inline: var(--ax-gutter); scroll-padding-inline: var(--ax-gutter); scroll-snap-type: x mandatory; scrollbar-width: thin; }
  .ax-practice__item { scroll-snap-align: start; }
}

@media (max-width: 27rem) {
  .ax-finds__grid { grid-template-columns: 1fr; }
  .ax-pick-row { grid-template-columns: 3rem minmax(0, 1fr); }
}

@media (max-width: 21rem) {
  .ax-topics__grid { grid-template-columns: minmax(0, 1fr); }
  .ax-topic-tile:last-child:nth-child(n) { grid-column: auto; }
}

@media (prefers-reduced-motion: no-preference) {
  .ax-story-card__media img, .ax-review-card__media img, .ax-find-card__media img, .ax-hero__media img, .ax-practice__media img { transition: transform var(--ax-slow) var(--ax-ease-emph); }
  .ax-story-card__media:hover img, .ax-review-card__media:hover img, .ax-find-card:hover .ax-find-card__media img, .ax-practice__link:hover img { transform: scale(1.03); }
  .ax-pill .ax-arrow, .ax-desk__intent > .ax-arrow, .ax-topic-tile__arrow { transition: transform var(--ax-normal) var(--ax-ease); }
  .ax-pill:hover .ax-arrow:not(.ax-arrow--external), .ax-desk__intent:hover > .ax-arrow, .ax-desk__intent:focus-visible > .ax-arrow, .ax-topic-tile:hover .ax-topic-tile__arrow { transform: translateX(3px); }
}

@media (prefers-reduced-motion: reduce) {
  .ax-home-motion-ready .ax-home [data-ax-reveal], .ax-home-motion-ready .ax-home [data-ax-reveal].is-visible {
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    opacity: 1;
    transform: none;
    transition-duration: 1ms !important;
  }
}
