/* Compliance reporting: page-only additions to pages.css */
.hero-kicker { margin-bottom: 18px; font-family: var(--mono); font-size: 13px; color: var(--mint); }
.page-hero .hero-shot { max-width: 820px; }
.page-hero .hero-shot img { -webkit-mask-image: linear-gradient(#000 82%, transparent); mask-image: linear-gradient(#000 82%, transparent); }

/* The two standards marks the hero illustration used to carry, now straddling the live window's edges: half on
   the app, half on the page. Each one is a frosted chip so it reads on both at once, and the window keeps its
   full width — the marks sit over it rather than beside it. */
.hero-shot-marks { position: relative; overflow: visible; }
.hero-mark {
  position: absolute; top: 50%; z-index: 2;
  display: grid; place-items: center;
  width: clamp(56px, 5.8vw, 84px); aspect-ratio: 1; border-radius: 50%;
  background: radial-gradient(120% 120% at 50% 0%, rgba(32, 36, 40, .94), rgba(10, 11, 12, .94));
  border: 1px solid rgb(var(--ink) / .14);
  box-shadow: 0 18px 40px rgb(0 0 0 / calc(.55 * var(--sh))), 0 0 0 7px rgb(8 9 10 / .4), inset 0 1px 0 rgb(var(--ink) / .08);
  -webkit-backdrop-filter: blur(10px) saturate(1.1);
  backdrop-filter: blur(10px) saturate(1.1);
}
.hero-mark img { width: 58%; height: auto; display: block; -webkit-mask-image: none; mask-image: none; }
.hero-mark-l { left: 0; transform: translate(-50%, -62%); }
.hero-mark-r { right: 0; transform: translate(50%, -38%); }

@media (max-width: 760px) {
  .hero-mark { width: 50px; }
  .hero-mark-l { transform: translate(-42%, -70%); }
  .hero-mark-r { transform: translate(42%, -30%); }
}
}

/* the frameworks illustration keeps its green brand backdrop */
.frame-green { background: #13c37a; }

/* blog cards */
.posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.post { display: flex; flex-direction: column; overflow: hidden; padding: 0; }
.post > img { display: block; width: 100%; height: auto; aspect-ratio: 1024 / 536; object-fit: cover; border-bottom: 1px solid var(--line); }
.post-body { flex: 1; display: flex; flex-direction: column; padding: 26px 28px 28px; }
.post-cat { font-family: var(--mono); font-size: 12.5px; color: var(--accent); margin-bottom: 12px; }
.post h3 { font-size: 19px; font-weight: 600; letter-spacing: -0.02em; line-height: 1.3; margin-bottom: 12px; }
.post p { flex: 1; font-size: 14.5px; line-height: 1.6; color: var(--fg-2); }
.post-meta { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 22px; font-size: 13.5px; color: var(--fg-3); }
.post-meta .link { font-size: 14px; }

/* final stats */
.final .fine { text-align: center; }
.facts-stats b { margin-top: 0; font-size: clamp(32px, 3.4vw, 44px); line-height: 1; font-weight: 600; letter-spacing: -0.04em; color: var(--accent); }
.facts-stats span { margin-top: 12px; }

@media (max-width: 960px) {
  .posts { grid-template-columns: minmax(0, 1fr); max-width: 560px; margin: 0 auto; }
}
@media (max-width: 560px) {
  .post-body { padding: 22px; }
}

/* Light skin: small green text uses --mint (≥4.5:1 on the light surfaces); --accent stays for dots, fills,
   borders and large numbers. Light only, so the dark skin is unchanged. */
:root[data-theme="light"] .post-cat { color: var(--mint); }
