/* Okto Nexus · use-case page components
   Scoped additions for use-case-schema-migration-handoff.html and
   use-cases.html. Reuses styles.css tokens (--violet/--cyan/--green/--pink/
   --purple/--ink/--hair/--radius/--font-sans/--font-mono/--ease) and the
   existing .section__header/.section__title/.section__lede, .context-icon,
   .btn, .terminal[data-copy], .tag, .footer, .nav conventions rather than
   reinventing them. Nothing here is meant to touch the homepage. */

:root {
  --amber: #f5b843;
}

/* ---------- page scaffold ---------- */
body.uc-page {
  /* .section__title em relies on --local-accent via color-mix(); without a
     wrapper .section this custom property is otherwise unset here, which
     would make the gradient-text heading render invisible. */
  --local-accent: #7765ff;
  /* Fallback paint only — the real background is the fixed .scene canvas
     layer (z-index: 0) added right after <body>; this color just prevents
     a flash of unstyled background before the canvas/scene.js paints, and
     never sits above the canvas since it isn't itself positioned/z-indexed. */
  background-color: var(--bg);
}

.uc-page main {
  padding-top: var(--nav-h);
}

.uc-section {
  position: relative;
  /* Establishes a stacking context so the ::before scrim below (z-index:
     -1) paints between the fixed .scene canvas and this section's content,
     not behind the canvas itself — same reason the homepage's own .section
     rule carries isolation: isolate. */
  isolation: isolate;
  padding: clamp(3.2rem, 7vw, 5.5rem) 0;
}

/* The dark "sheet" between the animated background and readable content —
   every homepage section has this (.section::before); the use-case page's
   sections never got it, so the mesh line-art sat directly behind text at
   full brightness. Same dark rgba(3,3,9,*) tone, edges darker than middle. */
.uc-section::before {
  position: absolute;
  z-index: -1;
  inset: 3% 0;
  content: "";
  pointer-events: none;
  background: linear-gradient(
    180deg,
    rgba(3, 3, 9, 0.88) 0%,
    rgba(3, 3, 9, 0.4) 14%,
    rgba(3, 3, 9, 0.4) 86%,
    rgba(3, 3, 9, 0.88) 100%
  );
}

.uc-section__inner {
  position: relative;
  width: min(100%, calc(var(--max) + 2 * var(--gutter)));
  margin: 0 auto;
  padding: 0 var(--gutter);
}

.uc-section--hero {
  /* Hero fold fills at least the first viewport below the fixed nav —
     same convention as the homepage's .hero { min-height: 110svh }. Uses
     min-height (not a fixed height) so taller content on small viewports
     is never clipped, it just extends past one screen as needed.
     Only used on the individual use-case detail page — the use-cases.html
     listing page's intro uses .uc-section--intro instead, which stays a
     normal short section. */
  min-height: calc(100svh - var(--nav-h));
  padding-top: clamp(2.4rem, 6vw, 4rem);
  padding-bottom: clamp(2rem, 5vw, 3.5rem);
}
.uc-section--intro { padding-top: clamp(2.4rem, 6vw, 4rem); }
.uc-section--tint {
  background: linear-gradient(180deg, transparent, rgba(9, 10, 23, 0.5) 18%, rgba(9, 10, 23, 0.5) 82%, transparent);
}

.uc-page .section__header { margin-bottom: clamp(2rem, 4vw, 3.2rem); }
.uc-page .section__header > .tag + .section__title,
.uc-page .section__header > .hero__meta + .section__title { margin-top: 1.1rem; }
.uc-page .section__title {
  max-width: 22ch;
  font-size: clamp(2.3rem, 4.6vw, 4rem);
  letter-spacing: -0.04em;
  line-height: 1.04;
}
/* Hero title matches the homepage's .hero__title scale (clamp(3.6rem,
   7.6vw, 8.3rem)) — the use case's heading runs longer than "Okto Nexus.",
   so the ceiling is trimmed slightly to avoid overflow/awkward wraps while
   staying the same dramatic size class. */
.uc-page .uc-section--hero .section__title {
  max-width: 15ch;
  font-size: clamp(3.2rem, 7vw, 7.4rem);
  letter-spacing: -0.045em;
  line-height: 0.98;
}
.uc-page .hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.uc-page .section__lede { max-width: 68ch; }
.uc-page .uc-section--hero .section__lede {
  margin-top: clamp(1.4rem, 2.6vw, 2.1rem);
  font-size: clamp(1rem, 1.4vw, 1.22rem);
}

/* ---------- breadcrumb ---------- */
.breadcrumb {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: clamp(1.6rem, 3vw, 2.6rem);
  color: var(--ink-dim);
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: color 200ms ease;
}
.breadcrumb:hover { color: var(--ink); }
.breadcrumb__arrow { transition: transform 200ms var(--ease); }
.breadcrumb:hover .breadcrumb__arrow { transform: translateX(-3px); }

/* ---------- hero actions ---------- */
.uc-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  margin-top: 1.8rem;
}

/* Reuses the real .hero__stats dl/dt/dd pattern from styles.css (data-count
   driven, so the counting-up animation just works) but turns the strip into
   four separated glass cards instead — same translucent-blur treatment the
   rest of the site uses for floating chrome (.nav, .tag, .terminal,
   .topology__agent all combine a soft rgba fill with backdrop-filter blur;
   .hero__stats itself was unused elsewhere so it's free to restyle here). */
.uc-page .hero__stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(0.9rem, 1.6vw, 1.3rem);
  max-width: none;
  margin-top: clamp(2.6rem, 4.5vw, 3.8rem);
  border-top: 0;
  border-bottom: 0;
  background: none;
}

.uc-page .hero__stats div {
  padding: clamp(1.3rem, 2vw, 1.7rem) clamp(1.2rem, 1.8vw, 1.5rem);
  border: 1px solid var(--hair);
  border-radius: var(--radius-sm);
  background: rgba(9, 10, 23, 0.5);
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  transition: border-color 240ms ease, background 240ms ease, transform 300ms var(--ease);
}

.uc-page .hero__stats div:hover {
  border-color: var(--hair-bright);
  background: rgba(13, 14, 30, 0.62);
  transform: translateY(-2px);
}

/* No longer a continuous strip, so the old divider line between cells
   doesn't apply. */
.uc-page .hero__stats div::after { content: none; }

.uc-page .hero__stats dt {
  font-size: clamp(1.6rem, 2.4vw, 2.2rem);
}

.uc-page .hero__stats dd {
  margin-top: 0.55rem;
  font-size: 0.66rem;
  line-height: 1.5;
}

@media (max-width: 720px) {
  .uc-page .hero__stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ---------- 01 problem: risk cards ---------- */
.risk-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin-top: clamp(2rem, 4vw, 3rem);
  overflow: hidden;
  border: 1px solid var(--hair);
  border-radius: var(--radius);
  background: var(--hair);
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.22);
}

.risk-card {
  position: relative;
  min-height: 232px;
  padding: clamp(1.15rem, 1.8vw, 1.6rem);
  overflow: hidden;
  background: linear-gradient(145deg, rgba(12, 12, 27, 0.9), rgba(5, 6, 14, 0.88));
  transition: background 280ms ease, transform 360ms var(--ease), box-shadow 280ms ease;
}

/* pointer-tracked glow — same .glow-track mechanic script.js already runs
   for .provocation-card/.verb-card/.audit-row, keyed to this card's accent */
.risk-card::before {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(320px circle at var(--mx, 50%) var(--my, 50%), rgba(239, 93, 168, 0.16), transparent 58%),
    linear-gradient(115deg, transparent 72%, rgba(239, 93, 168, 0.045));
  content: "";
  opacity: 0;
  transition: opacity 300ms ease;
}

.risk-card:hover {
  z-index: 2;
  background: linear-gradient(145deg, rgba(18, 13, 33, 0.98), rgba(7, 7, 17, 0.96));
  box-shadow: 0 22px 54px rgba(0, 0, 0, 0.3), inset 0 0 0 1px rgba(239, 93, 168, 0.22);
  transform: translateY(-4px);
}

.risk-card:hover::before { opacity: 1; }

.risk-card__top {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.risk-card .context-icon { --icon-a: #ef5da8; --icon-b: #ff9fcb; }

.risk-card__index {
  color: rgba(239, 93, 168, 0.68);
  font-family: var(--font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.1em;
}

.risk-card h3 {
  position: relative;
  z-index: 1;
  max-width: 20ch;
  margin-top: 1.6rem;
  color: var(--ink);
  font-size: 1.02rem;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.24;
}

.risk-card p {
  position: relative;
  z-index: 1;
  margin-top: 0.65rem;
  color: var(--ink-dim);
  font-size: 0.85rem;
  line-height: 1.55;
}

/* ---------- 02 architecture ---------- */
.arch-caption {
  display: inline-block;
  color: var(--ink-dim);
  font-family: var(--font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.arch-flow {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  justify-content: center;
  gap: 0.9rem;
  margin-top: clamp(1.6rem, 3vw, 2.4rem);
}

.flow-node {
  --node-accent: var(--cyan);
  position: relative;
  display: flex;
  flex: 1 1 220px;
  flex-direction: column;
  min-width: 200px;
  max-width: 260px;
  padding: 1.1rem 1.2rem;
  border: 1px solid var(--hair);
  border-radius: var(--radius-sm);
  background: linear-gradient(150deg, rgba(12, 12, 27, 0.92), rgba(5, 6, 14, 0.88));
  transition: border-color 240ms ease, transform 300ms var(--ease);
}

.flow-node:hover {
  border-color: color-mix(in srgb, var(--node-accent) 45%, transparent);
  transform: translateY(-3px);
}

.flow-node--gate { --node-accent: var(--violet-bright); }
.flow-node--deny { --node-accent: var(--pink); }
.flow-node--unblock { --node-accent: var(--green); }
.flow-node--recover { --node-accent: var(--purple); }
.flow-node--final { --node-accent: var(--green); }

.flow-node .context-icon { --icon-a: var(--node-accent); --icon-b: var(--node-accent); margin-bottom: 0.6rem; }

.flow-node__tag {
  align-self: flex-start;
  margin-bottom: 0.5rem;
  padding: 0.16rem 0.5rem;
  border: 1px solid color-mix(in srgb, var(--node-accent) 40%, transparent);
  border-radius: 999px;
  color: color-mix(in srgb, var(--node-accent) 80%, white);
  font-family: var(--font-mono);
  font-size: 0.56rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.flow-node strong {
  color: var(--ink);
  font-size: 0.96rem;
  font-weight: 500;
  letter-spacing: -0.01em;
}

.flow-node p {
  margin-top: 0.4rem;
  color: var(--ink-dim);
  font-size: 0.8rem;
  line-height: 1.5;
}

.arch-connector {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  color: var(--ink-dim);
}
.arch-connector svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; }

.arch-break {
  flex-basis: 100%;
  height: 0;
}

.flow-node__flag {
  display: inline-block;
  margin-top: 0.7rem;
  padding: 0.14rem 0.5rem;
  border: 1px solid rgba(245, 184, 67, 0.4);
  border-radius: 999px;
  background: rgba(245, 184, 67, 0.08);
  color: var(--amber);
  font-family: var(--font-mono);
  font-size: 0.56rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* ---------- 03 walkthrough ---------- */
.walk-steps {
  display: grid;
  gap: 0.85rem;
  margin-top: clamp(2rem, 4vw, 3rem);
  list-style: none;
  padding: 0;
}

.walk-step {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.4rem;
  align-items: start;
  padding: 1.2rem 1.35rem;
  border: 1px solid var(--hair);
  border-radius: var(--radius-sm);
  background: linear-gradient(145deg, rgba(12, 12, 27, 0.86), rgba(5, 6, 14, 0.82));
  transition: border-color 240ms ease, transform 300ms var(--ease), background 240ms ease;
}

.walk-step:hover {
  border-color: rgba(98, 246, 189, 0.28);
  background: linear-gradient(145deg, rgba(11, 23, 20, 0.94), rgba(5, 8, 15, 0.94));
  transform: translateX(4px);
}

.walk-step__num {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--ink-dim);
  font-family: var(--font-mono);
  font-size: 0.56rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.walk-step__num strong {
  margin-top: 0.15rem;
  color: var(--green);
  font-size: 1.3rem;
  font-weight: 400;
}

.walk-step h3 {
  color: var(--ink);
  font-size: 1.02rem;
  font-weight: 500;
  letter-spacing: -0.015em;
}

.walk-step p {
  margin-top: 0.4rem;
  color: var(--ink-dim);
  font-size: 0.88rem;
  line-height: 1.6;
}

.walk-step__moment {
  display: inline-block;
  margin-top: 0.6rem;
  padding: 0.18rem 0.55rem;
  border: 1px solid var(--hair-bright);
  border-radius: 999px;
  color: var(--cyan);
  font-family: var(--font-mono);
  font-size: 0.6rem;
  letter-spacing: 0.02em;
}

/* ---------- 04 reference build: agent cards ---------- */
.agent-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(0.7rem, 1.4vw, 1.1rem);
  margin-top: clamp(2rem, 4vw, 3rem);
}

.agent-card {
  --agent-accent: var(--violet-bright);
  position: relative;
  overflow: hidden;
  padding: clamp(1.3rem, 2vw, 1.7rem);
  border: 1px solid var(--hair);
  border-radius: var(--radius);
  background: linear-gradient(150deg, rgba(12, 12, 27, 0.92), rgba(5, 6, 14, 0.88));
  transition: border-color 260ms ease, transform 340ms var(--ease), box-shadow 280ms ease;
}
.agent-card::before {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(320px circle at var(--mx, 50%) var(--my, 50%), color-mix(in srgb, var(--agent-accent) 18%, transparent), transparent 58%),
    linear-gradient(115deg, transparent 72%, color-mix(in srgb, var(--agent-accent) 6%, transparent));
  content: "";
  opacity: 0;
  transition: opacity 300ms ease;
}
.agent-card:hover {
  z-index: 2;
  border-color: color-mix(in srgb, var(--agent-accent) 40%, transparent);
  box-shadow: 0 22px 54px rgba(0, 0, 0, 0.3), inset 0 0 0 1px color-mix(in srgb, var(--agent-accent) 24%, transparent);
  transform: translateY(-4px);
}
.agent-card:hover::before { opacity: 1; }
.agent-card--schema { --agent-accent: var(--cyan); }
.agent-card--api { --agent-accent: var(--violet-bright); }
.agent-card--operator { --agent-accent: var(--green); }

.agent-card__top {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.agent-card__badge {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid color-mix(in srgb, var(--agent-accent) 40%, transparent);
  border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--agent-accent) 18%, transparent), transparent 70%);
  color: var(--agent-accent);
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 500;
}

.agent-card__name { color: var(--ink); font-size: 1.05rem; font-weight: 500; letter-spacing: -0.01em; }
.agent-card__role {
  margin-top: 0.1rem;
  color: var(--agent-accent);
  font-family: var(--font-mono);
  font-size: 0.6rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.agent-card__section {
  position: relative;
  z-index: 1;
  margin-top: 1.1rem;
  padding-top: 0.9rem;
  border-top: 1px solid var(--hair);
}
.agent-card__label {
  color: var(--ink-dim);
  font-family: var(--font-mono);
  font-size: 0.56rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}
.agent-card ul { margin: 0.55rem 0 0; padding: 0; list-style: none; }
.agent-card li {
  position: relative;
  margin-top: 0.5rem;
  padding-left: 1rem;
  color: var(--ink-soft);
  font-size: 0.83rem;
  line-height: 1.5;
}
.agent-card li::before {
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--agent-accent);
  content: "";
}
.agent-card li.is-cannot { color: var(--ink-dim); }
.agent-card li.is-cannot::before { background: var(--pink); }

/* ---------- 05 quickstart ---------- */
.uc-quickstart {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  gap: clamp(2rem, 5vw, 3.2rem);
  margin-top: clamp(2rem, 4vw, 3rem);
  align-items: start;
}

.uc-install-steps {
  display: grid;
  gap: 0.85rem;
  list-style: none;
  padding: 0;
  margin: 0;
}
.uc-install-step {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem;
  align-items: start;
}
.uc-install-step__num {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  margin-top: 0.15rem;
  border: 1px solid var(--hair-bright);
  border-radius: 50%;
  color: var(--ink-dim);
  font-family: var(--font-mono);
  font-size: 0.62rem;
}
.uc-install-step h3 {
  color: var(--ink);
  font-size: 0.92rem;
  font-weight: 500;
  margin-bottom: 0.5rem;
}
.uc-install-step .terminal { min-height: 50px; }
.uc-install-step__note {
  display: block;
  margin-top: 0.4rem;
  color: var(--ink-dim);
  font-size: 0.76rem;
  line-height: 1.5;
}
/* steps that describe a dashboard click rather than a CLI/curl command —
   no terminal, just plain descriptive text at the same rhythm */
.uc-install-step__body {
  margin: 0;
  color: var(--ink-dim);
  font-size: 0.84rem;
  line-height: 1.6;
}
.uc-install-step__body code {
  padding: 0.05rem 0.32rem;
  border: 1px solid var(--hair);
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.03);
  color: var(--ink-soft);
  font-size: 0.85em;
}

.nexus-code {
  overflow: hidden;
  border: 1px solid var(--hair-bright);
  border-radius: var(--radius-sm);
  background: linear-gradient(110deg, rgba(12, 12, 27, 0.94), rgba(6, 7, 17, 0.9));
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.22);
}
.nexus-code__bar {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.65rem 0.9rem;
  border-bottom: 1px solid var(--hair);
}
.nexus-code__bar .dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--hair-bright);
}
.nexus-code__title {
  margin-left: 0.4rem;
  color: var(--ink-dim);
  font-family: var(--font-mono);
  font-size: 0.66rem;
  letter-spacing: 0.02em;
}
.nexus-code__body {
  margin: 0;
  padding: 1rem 1.1rem 1.2rem;
  overflow-x: auto;
  color: #ddd9ff;
  font-family: var(--font-mono);
  font-size: 0.76rem;
  line-height: 1.65;
}
.nexus-code__body .tk-k { color: var(--violet-bright); }
.nexus-code__body .tk-s { color: var(--green); }
.nexus-code__body .tk-c { color: var(--ink-dim); font-style: italic; }
.nexus-code__body .tk-p { color: var(--ink-dim); }

/* dashboard-form mock — used where the workflow step is a UI click, not a
   REST/curl call, so it reads as "what you'd fill in" rather than code */
.nexus-form {
  display: grid;
  gap: 0.1rem;
  padding: 0.4rem 1.1rem 1rem;
}
.nexus-form__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem;
  padding: 0.65rem 0;
  border-bottom: 1px solid var(--hair);
}
.nexus-form__row:last-child { border-bottom: none; }
.nexus-form__label {
  width: 8.5rem;
  flex-shrink: 0;
  color: var(--ink-dim);
  font-family: var(--font-mono);
  font-size: 0.66rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.nexus-form__row code {
  padding: 0.15rem 0.5rem;
  border: 1px solid var(--hair-bright);
  border-radius: 5px;
  background: rgba(255, 255, 255, 0.03);
  color: var(--ink);
  font-family: var(--font-mono);
  font-size: 0.78rem;
}
.nexus-form__arrow {
  color: var(--ink-dim);
  font-style: normal;
}
.nexus-form__note {
  margin: 0;
  padding: 0.9rem 1.1rem 1.1rem;
  border-top: 1px solid var(--hair);
  color: var(--ink-dim);
  font-size: 0.78rem;
  line-height: 1.6;
}
.nexus-form__note code {
  padding: 0.05rem 0.32rem;
  border: 1px solid var(--hair);
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.03);
  color: var(--ink-soft);
  font-size: 0.85em;
}

.tools-table {
  margin-top: clamp(1.6rem, 3vw, 2.4rem);
  overflow-x: auto;
  border: 1px solid var(--hair);
  border-radius: var(--radius-sm);
}
.tools-table table { width: 100%; border-collapse: collapse; min-width: 560px; }
.tools-table th, .tools-table td {
  padding: 0.8rem 1rem;
  text-align: left;
  border-bottom: 1px solid var(--hair);
  font-size: 0.85rem;
  line-height: 1.5;
}
.tools-table th {
  color: var(--ink-dim);
  font-family: var(--font-mono);
  font-size: 0.6rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: rgba(255, 255, 255, 0.02);
}
.tools-table td { color: var(--ink-soft); }
.tools-table td code {
  color: var(--cyan);
  font-family: var(--font-mono);
  font-size: 0.82em;
  background: rgba(48, 215, 255, 0.08);
  padding: 0.12rem 0.4rem;
  border-radius: 4px;
}
.tools-table tbody tr:last-child th,
.tools-table tbody tr:last-child td { border-bottom: none; }
.tools-table tbody tr:hover { background: rgba(255, 255, 255, 0.02); }

/* ---------- 06 why it matters ---------- */
.integrity-callout {
  position: relative;
  margin-top: clamp(2rem, 4vw, 3rem);
  padding: clamp(1.6rem, 3vw, 2.4rem);
  border: 1px solid rgba(245, 184, 67, 0.4);
  border-radius: var(--radius);
  background:
    radial-gradient(560px circle at 12% 0%, rgba(245, 184, 67, 0.12), transparent 55%),
    linear-gradient(150deg, rgba(28, 22, 8, 0.55), rgba(6, 6, 14, 0.9));
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.28), inset 0 0 0 1px rgba(245, 184, 67, 0.08);
}
.integrity-callout__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--amber);
  font-family: var(--font-mono);
  font-size: 0.64rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.integrity-callout__eyebrow i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--amber);
  box-shadow: 0 0 12px var(--amber);
}
.integrity-callout h3 {
  max-width: 34ch;
  margin-top: 0.9rem;
  color: var(--ink);
  font-size: clamp(1.35rem, 2.4vw, 1.9rem);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1.15;
}
.integrity-callout p {
  max-width: 74ch;
  margin-top: 0.9rem;
  color: var(--ink-soft);
  font-size: 0.95rem;
  line-height: 1.7;
}
.integrity-callout p + p { margin-top: 0.75rem; }
.integrity-callout code {
  color: var(--amber);
  font-family: var(--font-mono);
  font-size: 0.85em;
  background: rgba(245, 184, 67, 0.1);
  padding: 0.1rem 0.35rem;
  border-radius: 4px;
  word-break: break-all;
}
.integrity-callout__tag {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 1.3rem;
  padding: 0.4rem 0.75rem;
  border: 1px solid rgba(245, 184, 67, 0.35);
  border-radius: 999px;
  color: var(--amber);
  font-family: var(--font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.why-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin-top: clamp(2rem, 4vw, 3rem);
  overflow: hidden;
  border: 1px solid var(--hair);
  border-radius: var(--radius);
  background: var(--hair);
}
.why-card {
  position: relative;
  min-height: 210px;
  padding: clamp(1.2rem, 1.8vw, 1.6rem);
  overflow: hidden;
  background: linear-gradient(145deg, rgba(12, 12, 27, 0.9), rgba(5, 6, 14, 0.88));
  transition: background 260ms ease, transform 340ms var(--ease), box-shadow 280ms ease;
}
.why-card::before {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(320px circle at var(--mx, 50%) var(--my, 50%), rgba(98, 246, 189, 0.16), transparent 58%),
    linear-gradient(115deg, transparent 72%, rgba(48, 215, 255, 0.05));
  content: "";
  opacity: 0;
  transition: opacity 300ms ease;
}
.why-card:hover {
  z-index: 2;
  background: linear-gradient(145deg, rgba(11, 20, 27, 0.96), rgba(6, 7, 17, 0.96));
  box-shadow: 0 22px 54px rgba(0, 0, 0, 0.3), inset 0 0 0 1px rgba(98, 246, 189, 0.22);
  transform: translateY(-4px);
}
.why-card:hover::before { opacity: 1; }
.why-card .context-icon { --icon-a: var(--cyan); --icon-b: var(--green); }
.why-card h3 {
  position: relative;
  z-index: 1;
  margin-top: 1.4rem;
  color: var(--ink);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: -0.015em;
}
.why-card p {
  position: relative;
  z-index: 1;
  margin-top: 0.6rem;
  color: var(--ink-dim);
  font-size: 0.83rem;
  line-height: 1.55;
}

/* ---------- final CTA ---------- */
.final-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: clamp(2rem, 4vw, 3rem);
  border: 1px solid var(--hair);
  border-radius: var(--radius);
  background:
    radial-gradient(600px circle at 85% 20%, rgba(98, 246, 189, 0.08), transparent 55%),
    linear-gradient(150deg, rgba(12, 12, 27, 0.9), rgba(5, 6, 14, 0.9));
}
.final-cta h2 {
  max-width: 16ch;
  color: var(--ink);
  font-size: clamp(1.7rem, 3vw, 2.4rem);
  font-weight: 400;
  letter-spacing: -0.03em;
  line-height: 1.08;
}
.final-cta h2 em {
  font-style: normal;
  background: linear-gradient(105deg, #9d8fff, #efecff 45%, #7be8ff 85%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.final-cta p { margin-top: 0.6rem; color: var(--ink-dim); font-size: 0.95rem; }
.final-cta__actions { display: flex; flex-wrap: wrap; gap: 0.7rem; }

/* ---------- use-cases.html listing ---------- */
.usecase-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.4rem);
  margin-top: clamp(2rem, 4vw, 3rem);
}

.usecase-card {
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: clamp(1.5rem, 2.4vw, 2rem);
  border: 1px solid var(--hair);
  border-radius: var(--radius);
  background: linear-gradient(150deg, rgba(12, 12, 27, 0.92), rgba(5, 6, 14, 0.88));
  transition: border-color 260ms ease, transform 340ms var(--ease), box-shadow 280ms ease;
}
.usecase-card::before {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(320px circle at var(--mx, 50%) var(--my, 50%), rgba(119, 101, 255, 0.16), transparent 58%),
    linear-gradient(115deg, transparent 72%, rgba(48, 215, 255, 0.045));
  content: "";
  opacity: 0;
  transition: opacity 300ms ease;
}
.usecase-card:hover {
  z-index: 2;
  border-color: var(--hair-bright);
  box-shadow: 0 22px 54px rgba(0, 0, 0, 0.3), inset 0 0 0 1px rgba(119, 101, 255, 0.2);
  transform: translateY(-4px);
}
.usecase-card:hover::before { opacity: 1; }
.usecase-card > * {
  position: relative;
  z-index: 1;
}

.usecase-card__kicker {
  color: var(--violet-bright);
  font-family: var(--font-mono);
  font-size: 0.6rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.usecase-card__title {
  display: block;
  margin-top: 0.6rem;
  color: var(--ink);
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.15;
}
.usecase-card p { margin-top: 0.9rem; color: var(--ink-soft); font-size: 0.92rem; line-height: 1.65; }

.pill-row { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 1.1rem; }
.pill-row span {
  padding: 0.28rem 0.6rem;
  border: 1px solid var(--hair);
  border-radius: 999px;
  color: var(--ink-dim);
  font-family: var(--font-mono);
  font-size: 0.6rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.usecase-card__meta {
  display: block;
  margin-top: 1.2rem;
  color: var(--ink-dim);
  font-family: var(--font-mono);
  font-size: 0.66rem;
}

.usecase-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1.1rem;
  color: var(--cyan);
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  transition: gap 200ms var(--ease);
}
.usecase-card__cta:hover { gap: 0.75rem; }

.usecase-card--ghost {
  align-items: flex-start;
  justify-content: center;
  border-style: dashed;
  color: var(--ink-dim);
}
.usecase-card--ghost p { color: var(--ink-dim); font-size: 0.9rem; }
.usecase-card--ghost a { color: var(--ink-soft); text-decoration: underline; text-underline-offset: 3px; }
.usecase-card--ghost a:hover { color: var(--ink); }

/* ---------- responsive ---------- */
@media (max-width: 1060px) {
  .risk-grid, .why-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .agent-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .uc-quickstart { grid-template-columns: 1fr; }
  .usecase-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .risk-grid, .why-grid, .agent-grid { grid-template-columns: 1fr; }
  .walk-step { grid-template-columns: 1fr; gap: 0.5rem; }
  .walk-step__num { flex-direction: row; gap: 0.4rem; }
  .final-cta { flex-direction: column; align-items: flex-start; }
  .tools-table { font-size: 0.8rem; }
}

/* ---------- scene-hud on this page: smaller, sits behind the footer ----------
   This is a normal scrolling article (not the homepage's one-screen-per-
   chapter rail experience), so by the time a reader reaches the bottom the
   fixed telemetry readout was landing right on top of the real footer text.
   Shrink it and drop it below the footer's stacking order (z-index: 3) so
   the footer's opaque background naturally covers it instead of overlapping. */
.uc-page .scene-hud {
  z-index: 1;
  bottom: 1rem;
  opacity: 0.65;
  transform: scale(0.82);
  transform-origin: bottom center;
}
.uc-page .scene-hud__status {
  font-size: 0.56rem;
}
.uc-page .scene-hud__telemetry small {
  font-size: 0.48rem;
}
.uc-page .scene-hud__telemetry strong {
  font-size: 0.6rem;
}

/* This page's rail-nav labels are the sections' real eyebrow text
   ("Reference Build", "Why It Matters"...), longer than the homepage's
   single-word chapter names — widen the rail slightly so they don't
   ellipsis-truncate mid-word. */
.uc-page .rail-nav {
  width: 172px;
}
