  /* =========================================================
     ART25 ECP — six movements. Restraint over exposition.
     ========================================================= */
  *, *::before, *::after { box-sizing: border-box; }
  html { -webkit-text-size-adjust: 100%; }
  body {
    margin: 0;
    background: #050706;
    color: #f4f4f4;
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-size: 17px; line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
  }
  a { color: inherit; text-decoration: none; }
  button { font: inherit; color: inherit; }
  img, svg { display: block; max-width: 100%; }

  .a25-skip { position: absolute; left: 12px; top: -80px; background: rgba(3,77,42,0.9); color: #fff; padding: 8px 12px; border-radius: 3px; z-index: 200; transition: top 200ms ease; }
  .a25-skip:focus { top: 12px; }
  :focus-visible { outline: 2px solid rgba(155,200,175,0.85); outline-offset: 3px; border-radius: 2px; }

  /* Shared buttons */
  .a25-btn {
    display: inline-flex; align-items: center; gap: 11px;
    padding: 13px 26px;
    font-family: inherit; font-size: 11.5px; font-weight: 600;
    letter-spacing: 0.14em; line-height: 1; text-transform: uppercase;
    text-decoration: none; border-radius: 2px; white-space: nowrap;
    transition: background 0.4s ease, border-color 0.4s ease, color 0.4s ease, transform 0.4s cubic-bezier(0.22,0.61,0.36,1);
    cursor: pointer;
  }
  .a25-btn--primary { color: #fff; background: rgba(3,77,42,0.32); border: 1px solid #034d2a; }
  .a25-btn--primary:hover, .a25-btn--primary:focus-visible { background: rgba(3,77,42,0.60); border-color: rgba(3,77,42,1); transform: translateY(-1px); outline: none; }
  .a25-btn--outline { color: #f0f4f0; background: transparent; border: 1px solid rgba(220,230,220,0.28); }
  .a25-btn--outline:hover, .a25-btn--outline:focus-visible { color: #fff; border-color: rgba(3,77,42,0.85); transform: translateY(-1px); outline: none; }
  .a25-btn-arrow {
    display: inline-block; width: 6px; height: 6px;
    border-right: 1px solid currentColor; border-bottom: 1px solid currentColor;
    transform: rotate(-45deg);
    transition: transform 0.4s cubic-bezier(0.22,0.61,0.36,1);
  }
  .a25-btn:hover .a25-btn-arrow { transform: rotate(-45deg) translate(2px, 2px); }

  .a25-link {
    display: inline-flex; align-items: center; gap: 10px;
    color: #9DDB9D; font-size: 15px; font-weight: 500;
    border-bottom: 1px solid transparent;
    transition: color 0.3s ease, border-color 0.3s ease;
  }
  .a25-link:hover, .a25-link:focus-visible { color: #fff; border-bottom-color: #5FC98E; outline: none; }

  /* Full-bleed frame */
  .a25-fb {
    position: relative;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
    padding: clamp(72px, 8vw, 128px) clamp(28px, 5vw, 80px);
    overflow: hidden;
  }
  .a25-fb__inner { position: relative; z-index: 3; max-width: 1280px; margin: 0 auto; }

  /* Section atmospheres */
  .a25-atmo {
    background:
      radial-gradient(ellipse 60% 40% at 82% 18%, rgba(3,77,42,0.16), transparent 60%),
      radial-gradient(ellipse 45% 35% at 12% 92%, rgba(3,77,42,0.08), transparent 65%),
      #090D10;
    border-top: 1px solid rgba(3,77,42,0.35);
    border-bottom: 1px solid rgba(3,77,42,0.55);
    isolation: isolate;
  }
  .a25-atmo--flip {
    background:
      radial-gradient(ellipse 60% 40% at 18% 20%, rgba(3,77,42,0.16), transparent 60%),
      radial-gradient(ellipse 45% 35% at 90% 92%, rgba(3,77,42,0.08), transparent 65%),
      linear-gradient(180deg, #081410 0%, #0a1a13 50%, #07140e 100%);
  }
  .a25-atmo--quiet { background: #090D10; border-top: 1px solid rgba(220,230,220,0.06); border-bottom: 1px solid rgba(220,230,220,0.06); }
  .a25-atmo::before {
    content: ''; position: absolute; inset: 0;
    background-image:
      linear-gradient(rgba(220,230,220,0.014) 1px, transparent 1px),
      linear-gradient(90deg, rgba(220,230,220,0.014) 1px, transparent 1px);
    background-size: 128px 128px;
    -webkit-mask-image: radial-gradient(ellipse 80% 70% at 50% 45%, #000 30%, transparent 95%);
    mask-image: radial-gradient(ellipse 80% 70% at 50% 45%, #000 30%, transparent 95%);
    opacity: 0.35; pointer-events: none; z-index: 0;
  }
  @media (max-width: 720px) {
    .a25-atmo::before { display: none; }
    .a25-atmo { isolation: auto; }
    .a25-fb { padding: 48px 22px 56px; }
  }

  /* Section head */
  .a25-sechead { margin-bottom: clamp(40px, 4vw, 64px); }
  .a25-sechead__label {
    display: inline-flex; align-items: center; gap: 14px;
    font-size: 11.5px; font-weight: 600; letter-spacing: 0.30em;
    text-transform: uppercase; color: rgba(155,200,175,0.92);
    margin: 0 0 22px 0;
  }
  .a25-sechead__label::before { content: ''; width: 22px; height: 1px; background: #034d2a; }
  .a25-sechead__title {
    font-size: clamp(32px, 3.6vw, 52px); font-weight: 200;
    line-height: 1.05; letter-spacing: -0.02em;
    color: #f4f4f4; margin: 0 0 20px 0; max-width: 22ch;
  }
  .a25-sechead__title--wide { max-width: 30ch; }
  .a25-sechead__sub {
    font-size: clamp(15.5px, 1.15vw, 18px); font-weight: 400;
    line-height: 1.62; color: rgba(244,244,244,0.82);
    margin: 0; max-width: 64ch;
  }

  /* Reveal */
  /* Reveal on scroll: content fades in while easing up into place */
  .a25-reveal { opacity: 0; transform: translateY(24px); transition: opacity 700ms cubic-bezier(0.16,1,0.3,1) var(--d, 0ms), transform 900ms cubic-bezier(0.16,1,0.3,1) var(--d, 0ms); }
  .a25-reveal.is-in { opacity: 1; transform: none; }
  /* Added by the script: hide at once (no fade-out), then animate only the way in */
  .a25-reveal--auto:not(.is-in) { transition: none; }
  @media (prefers-reduced-motion: reduce) {
    .a25-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
    * { animation: none !important; }
  }

  /* Nav */
  .a25-nav { position: sticky; top: 0; z-index: 60; background: transparent; transition: background 400ms ease, backdrop-filter 400ms ease, border-color 400ms ease; border-bottom: 1px solid transparent; }
  .a25-nav.is-scrolled { background: rgba(5,7,6,0.78); backdrop-filter: blur(18px) saturate(140%); -webkit-backdrop-filter: blur(18px) saturate(140%); border-bottom-color: rgba(3,77,42,0.35); }
  .a25-nav__inner { max-width: 1440px; margin: 0 auto; padding: 20px clamp(20px, 4vw, 64px); display: flex; align-items: center; justify-content: space-between; gap: 32px; }
  .a25-nav__brand { display: flex; align-items: center; flex-shrink: 0; }
  .a25-nav__brand img { display: block; height: 26px; width: auto; }
  .a25-nav__links { display: flex; gap: 30px; margin-left: auto; margin-right: 20px; }
  .a25-nav__links a { font-size: 0.92rem; color: rgba(244,244,244,0.82); padding: 4px 0; border-bottom: 1px solid transparent; transition: color 200ms ease, border-color 200ms ease; }
  .a25-nav__links a:hover, .a25-nav__links a:focus-visible { color: #fff; border-bottom-color: #5FC98E; }
  .a25-nav__cta { padding: 10px 18px; font-size: 10.5px; }
  .a25-nav__toggle { display: none; width: 40px; height: 40px; background: transparent; border: 1px solid rgba(220,230,220,0.16); border-radius: 3px; padding: 10px 8px; flex-direction: column; justify-content: space-between; cursor: pointer; }
  .a25-nav__toggle span { display: block; height: 1px; background: rgba(244,244,244,0.9); transition: transform 220ms ease, opacity 220ms ease; }
  .a25-nav__toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .a25-nav__toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .a25-nav__toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .a25-nav__mobile { display: none; flex-direction: column; padding: 12px clamp(20px, 4vw, 64px) 28px; background: rgba(5,7,6,0.96); border-top: 1px solid rgba(3,77,42,0.35); }
  .a25-nav__mobile a { padding: 14px 0; color: rgba(244,244,244,0.82); border-bottom: 1px solid rgba(220,230,220,0.08); font-size: 15px; }
  .a25-nav__mobile a.a25-btn { margin-top: 20px; border-bottom: none; justify-content: center; }
  @media (max-width: 900px) {
    .a25-nav__links, .a25-nav__cta { display: none; }
    .a25-nav__toggle { display: flex; }
    .a25-nav__mobile[data-open="true"] { display: flex; }
  }

  /* ============ HERO ============ */
  .a25-hero { padding: round(nearest, clamp(56px, min(10vw, 12.5vh), 136px), 8px) clamp(28px, 5vw, 80px) clamp(80px, 9vw, 128px); }
  .a25-hero__text { max-width: 66%; }
  @media (max-width: 900px) { .a25-hero__text { max-width: 100%; } }
  .a25-hero__eyebrow {
    display: inline-flex; align-items: center; gap: 14px;
    font-size: 11.5px; font-weight: 600; letter-spacing: 0.34em;
    text-transform: uppercase; color: rgba(155,200,175,0.92);
    margin: 0 0 34px 0;
  }
  .a25-hero__eyebrow::before { content: ''; width: 26px; height: 1px; background: #034d2a; }
  .a25-hero__title {
    text-wrap: balance;
    font-size: clamp(50px, 8vw, 116px);
    font-weight: 200; line-height: 0.98; letter-spacing: -0.032em;
    color: #f4f4f4; margin: 0 0 40px 0;
  }
  .a25-hero__title-accent { color: #5FC98E; }
  .a25-hero__body { max-width: 54ch; display: flex; flex-direction: column; gap: 14px; margin: 0 0 clamp(28px, 4.5vh, 44px) 0; }
  .a25-hero__body p {
    font-size: clamp(16px, 1.2vw, 19px); font-weight: 300;
    line-height: 1.62; color: rgba(244,244,244,0.80); margin: 0;
  }
  .a25-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 32px; }
  .a25-hero__origin {
    margin-top: 44px; font-size: 12px;
    letter-spacing: 0.22em; text-transform: uppercase;
    color: rgba(155,200,175,0.55);
  }

  .a25-hero__visual { position: relative; width: 100%; aspect-ratio: 1 / 1; max-width: 620px; margin-left: auto; }
  .a25-hero__svg { width: 100%; height: 100%; overflow: visible; }
  .a25-hero__ring { fill: none; stroke: rgba(157,219,157,0.10); stroke-width: 1; stroke-dasharray: 2 4; }
  .a25-hero__ring--soft { stroke: rgba(157,219,157,0.22); stroke-dasharray: none; }
  .a25-hero__spoke { stroke: rgba(157,219,157,0.30); stroke-width: 1; stroke-dasharray: 280; stroke-dashoffset: 280; animation: a25heroDraw 2400ms cubic-bezier(0.22,0.61,0.36,1) forwards; }
  @keyframes a25heroDraw { to { stroke-dashoffset: 0; } }
  .a25-hero__node { opacity: 0; animation: a25heroNode 700ms cubic-bezier(0.22,0.61,0.36,1) forwards; }
  @keyframes a25heroNode { to { opacity: 1; } }
  .a25-hero__node-dot { fill: #061a10; stroke: #7BC488; stroke-width: 1.6; }
  .a25-hero__node-text {
    fill: rgba(220,230,220,0.85); font-family: inherit;
    font-size: 11px; font-weight: 500; letter-spacing: 0.20em;
    text-transform: uppercase; text-anchor: middle;
  }
  .a25-hero__core { fill: #0c2418; stroke: #9DDB9D; stroke-width: 2; }
  .a25-hero__core-text {
    fill: #fff; font-family: inherit;
    font-size: 15px; font-weight: 700; letter-spacing: 0.24em;
    text-anchor: middle; dominant-baseline: central;
  }
  .a25-hero__halo { fill: #9DDB9D; opacity: 0; animation: a25heroHalo 7s ease-in-out infinite; }
  @keyframes a25heroHalo { 0% { r: 40; opacity: 0.22; } 100% { r: 130; opacity: 0; } }

  @media (max-width: 900px) {
    .a25-hero { padding: 40px 22px 72px; }
    .a25-hero__grid { grid-template-columns: 1fr; }
    .a25-hero__visual { max-width: 460px; margin: 12px auto 0; }
    .a25-hero__title { font-size: clamp(44px, 11vw, 68px); }
  }

  /* ============ EVIDENCE (3 stats) ============ */
  .a25-evidence__list {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    grid-template-rows: auto auto; gap: 48px clamp(40px, 6vw, 96px);
  }
  .a25-evidence__item {
    padding: 0;
    display: flex; flex-direction: column; gap: 12px;
  }
  .a25-evidence__figure {
    font-size: clamp(60px, 7vw, 104px); font-weight: 200;
    line-height: 1; letter-spacing: -0.03em;
    color: #fff; margin: 0;
  }
  .a25-evidence__figure-unit { color: #9DDB9D; font-size: 0.5em; margin-left: 4px; font-weight: 300; }
  .a25-evidence__desc {
    font-size: 15.5px; line-height: 1.55; margin: 0;
    color: rgba(244,244,244,0.78); font-weight: 300;
    max-width: 34ch;
  }
  .a25-evidence__src {
    font-size: 10.5px; letter-spacing: 0.22em; text-transform: uppercase;
    color: rgba(155,200,175,0.55); margin: 0;
  }
  /* The lead figure is large and spans both rows; the supporting two sit beside it */
  .a25-evidence__item:not(.a25-evidence__item--lead) { padding-left: 32px; border-left: 1px solid rgba(220,230,220,0.1); }
  .a25-evidence__item:not(.a25-evidence__item--lead) .a25-evidence__figure { font-size: clamp(40px, 4vw, 56px); }
  .a25-evidence__item--lead { grid-row: 1 / span 2; justify-content: center; gap: 16px; }
  .a25-evidence__item--lead .a25-evidence__figure { font-size: clamp(88px, 11vw, 160px); }
  .a25-evidence__item--lead .a25-evidence__desc { font-size: 18px; max-width: 36ch; }
  @media (max-width: 900px) {
    .a25-evidence__list { grid-template-columns: 1fr; gap: 40px; }
    .a25-evidence__item--lead { grid-row: auto; }
    .a25-evidence__item:not(.a25-evidence__item--lead) { padding-left: 0; border-left: 0; padding-top: 32px; border-top: 1px solid rgba(220,230,220,0.1); }
  }

  /* ============ THESIS ============ */
  .a25-thesis__grid {
    display: grid; grid-template-columns: 1.15fr 1fr;
    gap: clamp(44px, 5vw, 96px); align-items: center;
  }
  .a25-thesis__prose p {
    font-size: clamp(16px, 1.18vw, 18.5px); font-weight: 400;
    line-height: 1.65; color: rgba(244,244,244,0.82);
    margin: 0 0 18px 0; max-width: 60ch;
  }
  .a25-thesis__prose p:last-of-type { margin-bottom: 32px; }

  @media (max-width: 900px) {
    .a25-thesis__grid { grid-template-columns: 1fr; }
  }

  /* ============ OPERATING PATTERN (Identify · Govern · Act · Monitor) ============ */
  .a25-steps { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 clamp(24px, 3vw, 48px); counter-reset: none; }
  .a25-steps__item { position: relative; padding-top: 32px; border-top: 1px solid rgba(220,230,220,0.12); }
  .a25-steps__item::before { content: ''; position: absolute; top: -1px; left: 0; width: 40px; height: 2px; background: #5FC98E; }
  .a25-steps__name { display: flex; align-items: baseline; gap: 12px; margin: 0 0 16px; font-size: 20px; font-weight: 300; color: #fff; }
  .a25-steps__name span { font-size: 11px; font-weight: 600; letter-spacing: 0.24em; color: rgba(155,200,175,0.7); }
  .a25-steps__title { margin: 0 0 8px; font-size: 16px; font-weight: 500; line-height: 1.4; color: rgba(244,244,244,0.92); }
  .a25-steps__body { margin: 0; font-size: 15px; font-weight: 300; line-height: 1.6; color: rgba(244,244,244,0.7); }
  @media (max-width: 1000px) { .a25-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px 32px; } }
  @media (max-width: 600px) { .a25-steps { grid-template-columns: 1fr; gap: 40px; } }

  /* ============ AI + ROLES ============ */
  .a25-ai__grid {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: clamp(40px, 5vw, 88px); align-items: flex-start;
  }
  .a25-ai__prose p {
    font-size: clamp(16px, 1.18vw, 18.5px); font-weight: 400;
    line-height: 1.62; color: rgba(244,244,244,0.82);
    margin: 0 0 16px 0; max-width: 56ch;
  }
  .a25-ai__prose p:last-child { margin-bottom: 0; }
  .a25-roles-quiet {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column;
    border-top: 1px solid rgba(220,230,220,0.10);
  }
  .a25-roles-quiet li {
    padding: 20px 0;
    border-bottom: 1px solid rgba(220,230,220,0.10);
    display: grid; grid-template-columns: 160px 1fr;
    gap: 24px; align-items: baseline;
  }
  .a25-roles-quiet li h4 {
    font-size: 15px; font-weight: 500;
    color: #fff; margin: 0; letter-spacing: 0.01em;
  }
  .a25-roles-quiet li p {
    font-size: 14.5px; color: rgba(244,244,244,0.72);
    line-height: 1.55; margin: 0; font-weight: 400;
  }
  @media (max-width: 900px) {
    .a25-ai__grid { grid-template-columns: 1fr; }
    .a25-roles-quiet li { grid-template-columns: 1fr; gap: 4px; }
  }

  /* ============ EUROPEAN + CLOSE ============ */
  .a25-close__grid {
    display: grid; grid-template-columns: 1fr 1.2fr;
    gap: clamp(40px, 5vw, 88px); align-items: flex-start;
    margin-bottom: clamp(56px, 6vw, 96px);
  }
  .a25-close__list {
    list-style: none; padding: 0; margin: 0;
    display: grid; grid-template-columns: 1fr; gap: 0;
    border-top: 1px solid rgba(220,230,220,0.10);
  }
  .a25-close__list li {
    padding: 22px 20px 22px 0;
    border-bottom: 1px solid rgba(220,230,220,0.10);
    display: flex; align-items: baseline; gap: 20px;
    color: rgba(244,244,244,0.92);
    font-size: clamp(15px, 1.05vw, 17px); font-weight: 300;
  }
  .a25-close__list li span {
    color: rgba(155,200,175,0.85);
    font-size: 10.5px; letter-spacing: 0.24em; font-weight: 600;
  }
  .a25-close__note {
    margin-top: 24px; grid-column: 1 / -1;
    font-size: 12.5px; letter-spacing: 0.04em;
    color: rgba(155,200,175,0.60);
  }

  .a25-close__cta {
    padding-top: clamp(40px, 5vw, 72px);
    border-top: 1px solid rgba(220,230,220,0.10);
    display: flex; align-items: baseline; justify-content: space-between;
    gap: 32px; flex-wrap: wrap;
  }
  .a25-close__cta-title {
    font-size: clamp(28px, 3vw, 40px); font-weight: 200;
    line-height: 1.1; letter-spacing: -0.018em;
    color: #f4f4f4; margin: 0;
  }
  .a25-close__cta-actions { display: flex; flex-wrap: wrap; gap: 12px; }
  @media (max-width: 900px) {
    .a25-close__grid { grid-template-columns: 1fr; }
    .a25-close__list { grid-template-columns: 1fr; }
    .a25-close__cta { flex-direction: column; align-items: stretch; }
  }


  /* ============ HERO — editorial / architectural ============ */
  .a25-hero__title {
    font-size: clamp(42px, min(5.4vw, 9.6vh), 84px);
    font-weight: 200; line-height: 1.02; letter-spacing: -0.028em;
    color: #f4f4f4; margin: 0 0 clamp(24px, 4vh, 40px) 0;
    max-width: 20ch;
  }
  .a25-hero__quiet {
    margin: 0 0 32px 0;
    font-size: 13px; letter-spacing: 0.01em;
    color: rgba(244,244,244,0.58);
    max-width: 60ch; font-weight: 300;
  }
  .a25-hero__link {
    display: inline-flex; align-items: center; gap: 10px;
    padding: 8px 2px;
    font-family: inherit;
    font-size: 11.5px; font-weight: 600;
    letter-spacing: 0.22em; text-transform: uppercase;
    color: rgba(244,244,244,0.80);
    border-bottom: 1px solid rgba(220,230,220,0.20);
    transition: color 0.3s ease, border-color 0.3s ease;
    text-decoration: none;
  }
  .a25-hero__link:hover, .a25-hero__link:focus-visible {
    color: #9DDB9D; border-bottom-color: #5FC98E; outline: none;
  }

  .a25-hero__arch {
    margin-top: clamp(56px, 7vw, 96px);
    padding-top: clamp(28px, 3vw, 40px);
    border-top: 1px solid rgba(220,230,220,0.08);
    display: flex; flex-direction: column;
    gap: clamp(22px, 2.6vw, 36px);
  }
  .a25-hero__line {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 28px; align-items: center;
    opacity: 0; transform: translateX(-8px);
    animation: a25heroLineIn 900ms cubic-bezier(0.22,0.61,0.36,1) forwards;
    animation-delay: var(--d, 0ms);
  }
  @keyframes a25heroLineIn { to { opacity: 1; transform: none; } }
  .a25-hero__line-label {
    font-family: inherit;
    font-size: 10.5px; letter-spacing: 0.30em;
    text-transform: uppercase; color: rgba(155,200,175,0.88);
    font-weight: 600;
  }
  .a25-hero__line-rail {
    position: relative; height: 1px;
    background: rgba(220,230,220,0.14);
  }
  .a25-hero__domain {
    position: absolute; top: 50%; transform: translateY(-50%);
    padding: 6px 14px; background: #090D10;
    font-family: inherit;
    font-size: 11px; letter-spacing: 0.24em;
    text-transform: uppercase; color: rgba(244,244,244,0.86);
    font-weight: 500; white-space: nowrap;
    transition: color 0.35s ease;
  }
  .a25-hero__domain:hover { color: #9DDB9D; }

  .a25-hero__pledge {
    margin: clamp(48px, 5vw, 72px) 0 0 0;
    font-family: inherit;
    font-size: 10.5px; font-weight: 500;
    letter-spacing: 0.32em; text-transform: uppercase;
    color: rgba(155,200,175,0.62);
    text-align: left;
  }
  .a25-hero__pledge span {
    color: rgba(155,200,175,0.35); margin: 0 12px;
  }

  @media (max-width: 900px) {
    .a25-hero__line { grid-template-columns: 92px 1fr; gap: 18px; }
    .a25-hero__domain { font-size: 10px; letter-spacing: 0.18em; padding: 5px 10px; }
  }
  @media (max-width: 640px) {
    .a25-hero__arch { gap: 26px; }
    .a25-hero__line { grid-template-columns: 1fr; gap: 10px; }
    .a25-hero__line-rail { height: auto; background: transparent; display: flex; flex-wrap: wrap; gap: 8px; }
    .a25-hero__domain {
      position: static; transform: none;
      background: rgba(10,22,15,0.55);
      border: 1px solid rgba(220,230,220,0.08);
      padding: 6px 10px;
    }
    .a25-hero__pledge { text-align: center; }
    .a25-hero__pledge span { display: block; margin: 4px 0; }
  }

  /* Hero — text left, dotted wave right */
  .a25-hero__top { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 64px); align-items: center; }
  .a25-hero__top .a25-hero__text { max-width: none; }
  .a25-hero__wave { position: relative; margin-right: calc(-1 * clamp(28px, 5vw, 80px)); pointer-events: none; }
  .a25-hero { overflow: hidden; }
  .a25-hero__wave img { width: 150%; max-width: none; height: auto; opacity: 0.9; }
  @media (max-width: 900px) {
    .a25-hero__top { grid-template-columns: 1fr; }
    .a25-hero__wave { margin: 8px -22px 0 0; max-width: 520px; justify-self: end; }
    .a25-hero__wave img { width: 130%; }
  }

  /* Lines of defence — the original rails, drawn as concentric circles (outer = first line) */
  .a25-thesis__viz--lod { display: block; width: 100%; max-width: 600px; justify-self: center; }
  .a25-lod__svg { width: 100%; height: auto; overflow: visible; }
  .a25-lod__ring {
    fill: none; stroke: rgba(220,230,220,0.14); stroke-width: 1;
    stroke-dasharray: 100; stroke-dashoffset: 100;
  }
  .a25-lod.is-in .a25-lod__ring {
    animation: a25lodDraw 1600ms cubic-bezier(0.22,0.61,0.36,1) forwards;
    animation-delay: var(--d, 0ms);
  }
  @keyframes a25lodDraw { to { stroke-dashoffset: 0; } }
  .a25-lod__label, .a25-lod__domain {
    font-family: inherit; text-transform: uppercase; text-anchor: middle;
    opacity: 0;
  }
  .a25-lod.is-in .a25-lod__label, .a25-lod.is-in .a25-lod__domain {
    animation: a25lodFade 900ms cubic-bezier(0.22,0.61,0.36,1) forwards;
    animation-delay: calc(var(--d, 0ms) + 500ms);
  }
  @keyframes a25lodFade { to { opacity: 1; } }
  .a25-lod__label { font-size: 10.5px; letter-spacing: 0.30em; font-weight: 600; fill: rgba(155,200,175,0.88); }
  .a25-lod__domain {
    font-size: 11px; letter-spacing: 0.24em; font-weight: 500;
    fill: rgba(244,244,244,0.86); dominant-baseline: central;
    transition: fill 0.35s ease;
  }
  /* AI Governance stands out — it is the domain the section is about */
  .a25-lod__domain--key { font-size: 13px; font-weight: 700; letter-spacing: 0.2em; fill: #ffffff; }
  /* A dark copy under each word hides the circle line behind it */
  .a25-lod__domain--mask { fill: none; stroke: #090D10; stroke-width: 14px; stroke-linejoin: round; }
  .a25-lod__domain:hover { fill: #9DDB9D; }
  @media (max-width: 640px) {
    .a25-lod__label { font-size: 13px; }
    .a25-lod__domain { font-size: 14px; }
  }
  @media (prefers-reduced-motion: reduce) {
    .a25-lod .a25-lod__ring { animation: none !important; stroke-dashoffset: 0; }
    .a25-lod .a25-lod__label, .a25-lod .a25-lod__domain { animation: none !important; opacity: 1; }
  }

  /* Today vs the future — illustration carried over from art25consulting.com */
  .a25cego {
    position: relative;
    width: 100%;
    background: transparent;
    color: #ffffff;
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    padding: 0;
    margin: clamp(40px, 4vw, 64px) 0 clamp(56px, 5.5vw, 88px);
    overflow: hidden;
    box-sizing: border-box;
  }
  .a25cego *, .a25cego *::before, .a25cego *::after { box-sizing: border-box; }
  .a25cego__top {
    margin-bottom: clamp(28px, 3vw, 52px);
  }
  .a25cego__h {
    margin: 0 0 16px 0;
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-size: clamp(26px, 2.6vw, 34px);
    font-weight: 200;
    letter-spacing: -0.015em;
    line-height: 1.05;
    color: #f4f4f4;
    text-transform: none;
  }
  .a25cego__sub {
    display: inline-block;
    margin: 0;
    font-family: inherit;
    font-size: clamp(13px, 1.05vw, 16px);
    font-weight: 600;
    letter-spacing: 0.26em;
    text-transform: uppercase;
    color: rgba(155, 200, 175, 0.85);
  }
  .a25cego__row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(20px, 2.4vw, 48px);
    align-items: start;
  }
  .a25cego__col {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    min-width: 0;
  }
  .a25cego__tag {
    min-height: 28px;
    margin: 0 0 16px 0;
    font-family: inherit;
    font-size: clamp(12px, 1.05vw, 15px);
    font-weight: 700;
    letter-spacing: 0.34em;
    text-transform: uppercase;
    color: #7BC488;
  }
  /* "Today" labels the old model, in a quieter colour than "With ECP" */
  .a25cego__tag--dated { color: rgba(220,230,220,0.6); }
  .a25cego__viz {
    width: 100%;
    aspect-ratio: 1 / 1;
    max-width: 480px;
    margin: 0 auto;
    position: relative;
  }
  .a25cego__viz svg {
    width: 100%;
    height: 100%;
    display: block;
    overflow: visible;
  }
  .a25cego__cap {
    margin: clamp(18px, 2vw, 34px) auto 0;
    max-width: 340px;
  }
  .a25cego__cap-head {
    margin: 0;
    font-family: inherit;
    font-size: clamp(14px, 1.05vw, 17px);
    font-weight: 400;
    color: rgba(200, 215, 200, 0.78);
    font-style: italic;
    line-height: 1.45;
  }
  .a25cego__cap-sub {
    margin: 6px 0 0;
    font-family: inherit;
    font-size: clamp(13px, 0.95vw, 16px);
    font-weight: 400;
    color: rgba(200, 215, 200, 0.78);
    font-style: italic;
    line-height: 1.5;
  }
  .a25cego__cap--bright .a25cego__cap-head,
  .a25cego__cap--bright .a25cego__cap-sub {
    color: #ffffff;
    font-style: normal;
  }
  /* ----- Shared SVG primitives ----- */
  .a25cego__ring {
    fill: none;
    stroke: rgba(190, 210, 210, 0.32);
    stroke-width: 1;
    stroke-dasharray: 2.4 3.4;
  }
  .a25cego__line-label {
    font-family: inherit;
    font-size: 11px;
    font-weight: 400;
    fill: rgba(220, 230, 220, 0.75);
    font-style: italic;
    text-anchor: middle;
    letter-spacing: 0.01em;
  }
  .a25cego__dept {
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.36em;
    fill: rgba(220, 230, 220, 0.85);
    text-transform: uppercase;
  }
  /* Lightweight node + core: solid strokes only, no drop-shadow filters */
  .a25cego__node-circle {
    fill: #061a10;
    stroke: #7BC488;
    stroke-width: 2;
  }
  .a25cego__node-text {
    font-family: inherit;
    font-size: 14.5px;
    font-weight: 700;
    letter-spacing: 0.03em;
    fill: #ffffff;
    text-anchor: middle;
    dominant-baseline: central;
    pointer-events: none;
  }
  .a25cego__core {
    fill: #0c2418;
    stroke: #9DDB9D;
    stroke-width: 2.4;
  }
  .a25cego__core-text {
    font-family: inherit;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: 0.06em;
    fill: #ffffff;
    text-anchor: middle;
    dominant-baseline: central;
  }
  .a25cego__spoke,
  .a25cego__perim {
    fill: none;
    stroke-width: 1.2;
  }
  .a25cego__spoke { stroke: url(#a25cego-spoke-fade); }
  .a25cego__perim { stroke: rgba(157, 219, 157, 0.16); }
  /* Structured ambient layer behind the ECP network — echoes the first
     two diagrams' ring language without dividing into silos. Reads as
     an enterprise knowledge graph: evenly-spaced nodes, thin connecting
     edges within each line-of-defense layer, and subtle directional
     flows converging into ECP. */
  .a25cego__bg-ring {
    fill: none;
    stroke: rgba(157, 219, 157, 0.10);
    stroke-width: 1;
    stroke-dasharray: 2 4;
  }
  .a25cego__bg-node {
    fill: rgba(157, 219, 157, 0.55);
  }
  /* Thin connecting edges — knowledge-graph mesh within each layer */
  .a25cego__bg-edge {
    fill: none;
    stroke: rgba(157, 219, 157, 0.16);
    stroke-width: 0.55;
  }
  /* Gentle curved flow paths — governed information converging on ECP */
  .a25cego__bg-flow {
    fill: none;
    stroke: rgba(157, 219, 157, 0.14);
    stroke-width: 0.5;
    stroke-linecap: round;
  }
  @keyframes a25cegoBgBreathe {
    0%, 100% { opacity: 0.45; }
    50%      { opacity: 0.85; }
  }
  .a25cego__wedge {
    fill: rgba(95, 165, 115, 0.30);
    stroke: rgba(157, 219, 157, 0.55);
    stroke-width: 1.1;
    stroke-dasharray: 3 3;
  }
  .a25cego__wedge--alt { fill: rgba(75, 145, 100, 0.22); }
  /* Moving dot used in the third panel — flows from each persona toward
     ECP and fades out at the edge. Actual opacity is driven by <animate>. */
  .a25cego__pulse {
    fill: #C8F5C8;
  }
  /* Beating ECP core — gentle CSS scale on the SVG circle.
     transform-box: fill-box pins the origin to the circle's centre. */
  .a25cego__core--beating {
    transform-origin: center;
    transform-box: fill-box;
    animation: a25cegoBeating 6s ease-in-out infinite;
    will-change: transform;
  }
  /* Slow, gentle breathing rhythm — single smooth in-out */
  @keyframes a25cegoBeating {
    0%, 100% { transform: scale(1);    }
    50%      { transform: scale(1.04); }
  }
  /* Radiating halo emanating outward from ECP — soft filled fade
     instead of a hard outline, no filter / drop-shadow. */
  .a25cego__radiate {
    fill: #9DDB9D;
    stroke: none;
  }
  .a25cego__pulse { opacity: 1; }
  /* Light travelling with each dot: a soft glow and a short fading trail */
  .a25cego__glow { fill: url(#a25cego-glow); }
  .a25cego__trail { fill: none; stroke: #C8F5C8; stroke-width: 1.6; stroke-linecap: round; opacity: 0.55; }
  .a25cego__trail--long { stroke-width: 2.4; opacity: 0.14; }
  .a25cego__core { stroke-linejoin: round; }

  /* Node breathing removed — static rendering for performance */
  /* Triptych responsive */
  @media (max-width: 1080px) {
    .a25cego__row { gap: 18px; }
    .a25cego__viz { max-width: 360px; }
    .a25cego__cap { max-width: 280px; }
  }
  @media (max-width: 820px) {
    .a25cego__row { gap: 12px; }
    .a25cego__viz { max-width: 280px; }
    .a25cego__cap-head, .a25cego__cap-sub { font-size: 12.5px; }
    .a25cego__tag { font-size: 10px; letter-spacing: 0.28em; min-height: 22px; }
  }
  @media (max-width: 680px) {
    .a25cego__h { font-size: 24px; line-height: 1.08; margin-bottom: 12px; }
    .a25cego__sub { font-size: 11px; letter-spacing: 0.22em; }
    .a25cego__row { grid-template-columns: 1fr; gap: 44px; }
    .a25cego__viz { max-width: 320px; }
    .a25cego__cap-head, .a25cego__cap-sub { font-size: 13.5px; }
    .a25cego__tag { font-size: 11px; min-height: 0; }
    /* Mobile: hide ambient background nodes/edges/flows for faster render */
    .a25cego__bg-node,
    .a25cego__bg-edge,
    .a25cego__bg-flow { display: none; }
  }
  @media (prefers-reduced-motion: reduce) {
    .a25cego * { animation: none !important; transition: none !important; }
  }

  /* Request a demo */
  .a25-demo__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: clamp(32px, 5vw, 96px); align-items: start; }
  .a25-demo__form { display: flex; flex-direction: column; gap: 20px; }
  .a25-demo__row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
  .a25-demo__field { display: flex; flex-direction: column; gap: 8px; }
  .a25-demo__field > span { font-size: 10.5px; letter-spacing: 0.26em; text-transform: uppercase; font-weight: 600; color: rgba(155,200,175,0.85); }
  .a25-demo__field input, .a25-demo__field select, .a25-demo__field textarea {
    font: inherit; font-size: 16px; font-weight: 300; color: #f4f4f4;
    background: rgba(10,22,15,0.55); border: 1px solid rgba(220,230,220,0.14); border-radius: 3px;
    padding: 13px 14px; width: 100%; transition: border-color 0.25s ease;
  }
  .a25-demo__field select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, rgba(157,219,157,0.8) 50%), linear-gradient(135deg, rgba(157,219,157,0.8) 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 15px) 50%; background-size: 5px 5px; background-repeat: no-repeat; }
  .a25-demo__field select option { background: #0b120e; color: #f4f4f4; }
  .a25-demo__field textarea { resize: vertical; min-height: 110px; }
  .a25-demo__field input:focus, .a25-demo__field select:focus, .a25-demo__field textarea:focus { outline: none; border-color: #5FC98E; }
  .a25-demo__field [aria-invalid="true"] { border-color: #d9826b; }
  .a25-demo__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; }
  .a25-demo__actions .a25-btn { cursor: pointer; }
  .a25-demo__status { margin: 0; font-size: 14px; color: rgba(244,244,244,0.72); }
  @media (max-width: 900px) {
    .a25-demo__grid { grid-template-columns: 1fr; }
  }
  @media (max-width: 560px) {
    .a25-demo__row { grid-template-columns: 1fr; }
  }

  /* Footer */
  .a25-footer { position: relative; overflow: hidden; background: #060907; border-top: 1px solid rgba(3,77,42,0.35); padding: clamp(56px, 6vw, 96px) clamp(20px, 4vw, 64px) 28px; }
  .a25-footer__inner { max-width: 1440px; margin: 0 auto; }
  .a25-footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: clamp(28px, 4vw, 64px); }
  .a25-footer__brand-mark { margin: 0 0 14px 0; }
  .a25-footer__brand-mark img { display: block; height: 26px; width: auto; }
  .a25-footer__brand-tag { font-size: 0.92rem; color: rgba(244,244,244,0.66); margin: 0; max-width: 32ch; line-height: 1.5; }
  .a25-footer__legal { margin-top: 32px; display: flex; flex-direction: column; gap: 2px; }
  .a25-footer__entity { font-size: 0.86rem; color: rgba(244,244,244,0.72); margin: 0; }
  .a25-footer__entity-muted { font-size: 0.82rem; color: rgba(244,244,244,0.44); margin: 0; }
  .a25-footer__transition {
    margin: 8px 0 0 0;
    font-size: 10.5px; letter-spacing: 0.16em;
    text-transform: uppercase; color: rgba(220,230,220,0.42);
    font-weight: 400;
  }
  .a25-footer__transition span { color: rgba(155,200,175,0.85); font-weight: 500; }
  .a25-footer__col { display: flex; flex-direction: column; gap: 10px; }
  .a25-footer__label { font-size: 10.5px; font-weight: 600; letter-spacing: 0.28em; text-transform: uppercase; color: rgba(155,200,175,0.85); margin: 0 0 6px 0; }
  .a25-footer__col a, .a25-footer__col p { color: rgba(244,244,244,0.66); font-size: 0.9rem; margin: 0; transition: color 200ms ease; }
  .a25-footer__col a:hover, .a25-footer__col a:focus-visible { color: #fff; }
  .a25-footer__bottom { margin-top: 56px; padding-top: 22px; border-top: 1px solid rgba(220,230,220,0.08); font-size: 0.8rem; color: rgba(244,244,244,0.4); }
  .a25-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; }
  .a25-footer__bottom p { margin: 0; }
  .a25-footer__social { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
  .a25-footer__phone { display: inline-flex; align-items: center; min-height: 44px; margin-left: 8px; color: rgba(244,244,244,0.6); transition: color 0.3s ease; }
  .a25-footer__phone:hover, .a25-footer__phone:focus-visible { color: #9DDB9D; }
  .a25-footer__icon { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid rgba(220,230,220,0.12); border-radius: 4px; color: rgba(244,244,244,0.6); transition: color 0.3s ease, border-color 0.3s ease, background-color 0.3s ease; }
  .a25-footer__icon:hover, .a25-footer__icon:focus-visible { color: #9DDB9D; border-color: rgba(123,196,136,0.45); background-color: rgba(95,201,142,0.06); }
  .a25-footer__icon svg { width: 16px; height: 16px; fill: currentColor; }
  @media (max-width: 720px) { .a25-footer__icon { width: 44px; height: 44px; } }
  @media (max-width: 900px) { .a25-footer__grid { grid-template-columns: 1fr 1fr; } }
  @media (max-width: 560px) { .a25-footer__grid { grid-template-columns: 1fr; } }

/* ============ INSIGHTS (articles) ============ */
.a25-posts__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: clamp(36px, 4vw, 56px); }
.a25-post__link { display: grid; color: inherit; text-decoration: none; }
.a25-post__media { position: relative; overflow: hidden; border-radius: 3px; background: rgba(10,22,15,0.6); border: 1px solid rgba(220,230,220,0.06); }
.a25-post__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms cubic-bezier(0.22,0.61,0.36,1), opacity 400ms ease; opacity: 0.92; }
.a25-post__link:hover .a25-post__media img, .a25-post__link:focus-visible .a25-post__media img { transform: scale(1.03); opacity: 1; }
.a25-post__meta { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 14px; font-size: 10.5px; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(155,200,175,0.82); }
.a25-post__meta span { color: rgba(155,200,175,0.4); }
/* Titles: the key part in bold, the rest light */
.a25-post__title { margin: 0; font-weight: 300; letter-spacing: -0.01em; line-height: 1.25; color: rgba(244,244,244,0.72); text-wrap: pretty; }
.a25-post__title strong { font-weight: 600; color: #fff; }
.a25-post__link:hover .a25-post__title strong, .a25-post__link:focus-visible .a25-post__title strong { color: #9DDB9D; }
.a25-post__title strong { transition: color 0.3s ease; }

/* Latest article — large */
.a25-post--feature .a25-post__link { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 64px); align-items: center; }
.a25-post--feature .a25-post__media { aspect-ratio: 16 / 10; }
.a25-post--feature .a25-post__title { font-size: clamp(26px, 2.6vw, 38px); margin-bottom: 20px; }
.a25-post__excerpt { margin: 0 0 26px; font-size: clamp(15px, 1.1vw, 17px); font-weight: 300; line-height: 1.65; color: rgba(244,244,244,0.66); display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.a25-post__more { display: inline-flex; gap: 10px; font-size: 11.5px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(244,244,244,0.8); border-bottom: 1px solid rgba(220,230,220,0.2); padding-bottom: 6px; transition: color 0.3s ease, border-color 0.3s ease; }
.a25-post__link:hover .a25-post__more { color: #9DDB9D; border-bottom-color: #5FC98E; }

/* The others — smaller */
.a25-posts__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(28px, 3vw, 44px) clamp(20px, 2.4vw, 36px); margin-top: clamp(44px, 5vw, 72px); padding-top: clamp(36px, 4vw, 56px); border-top: 1px solid rgba(220,230,220,0.08); }
.a25-post--small .a25-post__link { gap: 18px; align-content: start; }
.a25-post--small .a25-post__media { aspect-ratio: 16 / 9; }
.a25-post--small .a25-post__meta { margin-bottom: 10px; font-size: 10px; }
.a25-post--small .a25-post__title { font-size: 17px; line-height: 1.4; }
@media (max-width: 900px) {
  .a25-post--feature .a25-post__link { grid-template-columns: 1fr; }
  .a25-posts__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .a25-posts__grid { grid-template-columns: 1fr; }
}

/* Overview page */
.a25-blog { padding: clamp(120px, 12vw, 168px) clamp(20px, 5vw, 80px) clamp(72px, 8vw, 120px); }
.a25-blog__inner { max-width: 1280px; margin: 0 auto; }

/* Article page */
.a25-article { padding: clamp(120px, 12vw, 160px) clamp(20px, 5vw, 80px) 0; }
.a25-article__inner { max-width: 760px; margin: 0 auto; }
.a25-article__back { display: inline-flex; gap: 10px; margin-bottom: 36px; font-size: 11px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(244,244,244,0.6); transition: color 0.3s ease; }
.a25-article__back:hover { color: #9DDB9D; }
.a25-article__cats { list-style: none; margin: 0 0 20px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.a25-article__cats li { font-size: 10px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(155,200,175,0.9); border: 1px solid rgba(123,196,136,0.3); border-radius: 2px; padding: 5px 9px; }
.a25-article__title { margin: 0 0 24px; font-size: clamp(32px, 4.2vw, 52px); font-weight: 200; line-height: 1.1; letter-spacing: -0.025em; color: rgba(244,244,244,0.78); text-wrap: balance; }
.a25-article__title strong { font-weight: 500; color: #fff; }
.a25-article__byline { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; font-size: 13px; color: rgba(244,244,244,0.55); }
.a25-article__byline span { color: rgba(244,244,244,0.3); }
.a25-prose { margin-top: clamp(36px, 4vw, 56px); font-size: 18px; font-weight: 300; line-height: 1.75; color: rgba(244,244,244,0.82); overflow-wrap: break-word; }
.a25-prose > * + * { margin-top: 1.1em; }
.a25-prose p { margin: 0; }
.a25-prose p + p { margin-top: 1.1em; }
.a25-prose h2, .a25-prose h3, .a25-prose h4 { margin: 2.2em 0 0.6em; color: #fff; font-weight: 500; line-height: 1.3; letter-spacing: -0.01em; }
.a25-prose h2 { font-size: 28px; }
.a25-prose h3 { font-size: 24px; }
.a25-prose h4 { font-size: 21px; }
.a25-prose h2 strong, .a25-prose h3 strong, .a25-prose h4 strong { font-weight: inherit; }
.a25-prose strong { font-weight: 600; color: #fff; }
.a25-prose a { color: #9DDB9D; text-decoration: underline; text-decoration-color: rgba(157,219,157,0.35); text-underline-offset: 3px; transition: text-decoration-color 0.2s ease; }
.a25-prose a:hover { text-decoration-color: #9DDB9D; }
.a25-prose ul, .a25-prose ol { margin: 1.1em 0 0; padding-left: 1.3em; }
.a25-prose li + li { margin-top: 0.45em; }
.a25-prose li::marker { color: #5FC98E; }
.a25-prose li p { margin: 0; }
.a25-prose blockquote { margin: 1.6em 0; padding: 4px 0 4px 22px; border-left: 2px solid #5FC98E; color: rgba(244,244,244,0.9); font-size: 20px; }
.a25-prose figure { margin: 2em 0; }
.a25-prose img { width: 100%; height: auto; border-radius: 3px; }
.a25-prose figcaption { margin-top: 10px; font-size: 13px; line-height: 1.5; color: rgba(244,244,244,0.55); }
.a25-prose figcaption p, .a25-prose figcaption strong { font-weight: 400; color: inherit; }
.a25-prose hr { border: 0; border-top: 1px solid rgba(220,230,220,0.12); margin: 2.4em 0; }
.a25-gallery { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 16px; margin: 2em 0; }
.a25-gallery img { aspect-ratio: 1; object-fit: cover; }
@media (max-width: 720px) { .a25-gallery { grid-auto-flow: row; grid-template-columns: repeat(2, 1fr); gap: 8px; } }
.a25-prose { display: flow-root; }
.a25-prose .a25-fig--side, .a25-prose .a25-fig--side-narrow { float: right; margin: 8px 0 24px 32px; }
.a25-prose .a25-fig--side + p, .a25-prose .a25-fig--side-narrow + p { margin-top: 1.1em; }
.a25-prose .a25-fig--side { width: 48%; }
.a25-prose .a25-fig--side-narrow { width: 36%; }
.a25-prose hr, .a25-prose figure:not([class]), .a25-gallery { clear: both; }
@media (max-width: 720px) { .a25-prose .a25-fig--side, .a25-prose .a25-fig--side-narrow { float: none; width: auto; margin: 2em 0; } }
.a25-prose .a25-lang-note { font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; }
.a25-prose .a25-lang-note a { text-decoration: none; }
.a25-prose .a25-lang-switch { margin: 0 0 1.6em; font-size: 13px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: #5FC98E; scroll-margin-top: 96px; }
.a25-article__more { margin-top: clamp(72px, 8vw, 112px); padding: clamp(56px, 6vw, 88px) 0 clamp(72px, 8vw, 112px); border-top: 1px solid rgba(220,230,220,0.08); }
.a25-article__more-inner { max-width: 1280px; margin: 0 auto; }
.a25-article__more .a25-posts__grid { margin-top: 28px; padding-top: 0; border-top: 0; }

/* Homepage: the other articles in a horizontal carousel */
.a25-carousel { margin-top: clamp(44px, 5vw, 72px); padding-top: clamp(28px, 3vw, 40px); border-top: 1px solid rgba(220,230,220,0.08); }
.a25-carousel__bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 24px; }
.a25-carousel__label { margin: 0; font-size: 10.5px; font-weight: 600; letter-spacing: 0.28em; text-transform: uppercase; color: rgba(155,200,175,0.75); }
.a25-carousel__nav { display: flex; gap: 8px; }
.a25-carousel__btn { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; background: transparent; color: rgba(244,244,244,0.85); border: 1px solid rgba(220,230,220,0.18); border-radius: 50%; cursor: pointer; font-size: 15px; transition: border-color 0.25s ease, color 0.25s ease, background 0.25s ease, opacity 0.25s ease; }
.a25-carousel__btn:hover:not(:disabled), .a25-carousel__btn:focus-visible { border-color: #5FC98E; color: #9DDB9D; background: rgba(3,77,42,0.25); }
.a25-carousel__btn:disabled { opacity: 0.3; cursor: default; }
.a25-carousel__track {
  display: grid; grid-auto-flow: column;
  grid-auto-columns: calc((100% - 2 * clamp(20px, 2.4vw, 36px)) / 3.2);
  gap: clamp(20px, 2.4vw, 36px);
  overflow-x: auto; overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory; scroll-behavior: smooth;
  padding-bottom: 18px;
  scrollbar-width: thin; scrollbar-color: rgba(157,219,157,0.35) transparent;
}
.a25-carousel__track::-webkit-scrollbar { height: 4px; }
.a25-carousel__track::-webkit-scrollbar-thumb { background: rgba(157,219,157,0.35); border-radius: 2px; }
.a25-carousel__track:focus-visible { outline: 2px solid rgba(155,200,175,0.85); outline-offset: 6px; }
.a25-carousel__track > .a25-post { scroll-snap-align: start; }
@media (max-width: 900px) { .a25-carousel__track { grid-auto-columns: 46%; } }
@media (max-width: 600px) { .a25-carousel__track { grid-auto-columns: 82%; } }
@media (prefers-reduced-motion: reduce) { .a25-carousel__track { scroll-behavior: auto; } }

/* ============ REGULATORY RADAR ============ */

.a25-radar__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: clamp(32px, 3.5vw, 48px); }
.a25-radar__window { margin: 0; font-size: 10.5px; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(155,200,175,0.7); }
.a25-radar__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: start; }
.a25-radar__item { border: 1px solid rgba(220,230,220,0.09); border-radius: 3px; background: rgba(10,22,15,0.35); transition: border-color 0.25s ease, background 0.25s ease; }
.a25-radar__item:hover, .a25-radar__item.is-open { border-color: rgba(123,196,136,0.35); background: rgba(10,22,15,0.6); }
.a25-radar__toggle { width: 100%; display: grid; grid-template-columns: 1fr auto; gap: 8px 16px; align-items: start; padding: 18px 20px; background: none; border: 0; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.a25-radar__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(244,244,244,0.5); }
.a25-radar__status { display: inline-flex; align-items: center; gap: 7px; color: var(--st, #9DDB9D); }
.a25-radar__status::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.a25-radar__item[data-status="live"]  { --st: #7BC488; }
.a25-radar__item[data-status="clock"] { --st: #D8B46A; }
.a25-radar__item[data-status="watch"] { --st: #DE8A6E; }
.a25-radar__title { grid-column: 1; margin: 0; font-size: 16px; font-weight: 400; line-height: 1.4; color: #f4f4f4; }
.a25-radar__chev { grid-column: 2; grid-row: 1 / span 2; align-self: center; width: 9px; height: 9px; border-right: 1.5px solid rgba(244,244,244,0.55); border-bottom: 1.5px solid rgba(244,244,244,0.55); transform: rotate(45deg) translate(-2px, -2px); transition: transform 0.3s ease; }
.a25-radar__item.is-open .a25-radar__chev { transform: rotate(225deg) translate(-2px, -2px); }
.a25-radar__body { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.35s cubic-bezier(0.22,0.61,0.36,1); }
.a25-radar__item.is-open .a25-radar__body { grid-template-rows: 1fr; }
.a25-radar__body-inner { overflow: hidden; }
.a25-radar__detail { padding: 0 20px 20px; font-size: 14.5px; font-weight: 300; line-height: 1.65; color: rgba(244,244,244,0.75); }
.a25-radar__detail p { margin: 0 0 12px; }
.a25-radar__date { font-size: 12px; color: rgba(244,244,244,0.5); }
.a25-radar__why { padding-left: 14px; border-left: 2px solid var(--st, #5FC98E); color: rgba(244,244,244,0.88); }
.a25-radar__why strong { display: block; margin-bottom: 4px; font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--st, #9DDB9D); }
.a25-radar__sources { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0; padding: 0; list-style: none; font-size: 13px; }
.a25-radar__sources a { color: #9DDB9D; text-decoration: underline; text-decoration-color: rgba(157,219,157,0.35); text-underline-offset: 3px; }
.a25-radar__empty { grid-column: 1 / -1; font-size: 14px; color: rgba(244,244,244,0.55); }
@media (max-width: 800px) { .a25-radar__list { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .a25-radar__body, .a25-radar__chev { transition: none; } }

/* Privacy notice page */
.a25-privpage { background: #0a0c0d; padding: clamp(64px, 8vw, 120px) 24px 56px; }

/* ============ CONSULTING ============ */
/* Homepage section — kept small, the platform is the focus */
.a25-consult__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(40px, 6vw, 96px); align-items: center; }
.a25-consult__text { margin: 0 0 28px; max-width: 52ch; font-size: clamp(16px, 1.2vw, 18px); font-weight: 300; line-height: 1.65; color: rgba(244,244,244,0.78); }
.a25-consult__label { margin: 0 0 24px; font-size: 10.5px; font-weight: 600; letter-spacing: 0.28em; text-transform: uppercase; color: rgba(155,200,175,0.75); }
/* Selected services as a ruled, numbered list, like the trust list */
.a25-consult__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; border-top: 1px solid rgba(220,230,220,0.1); }
.a25-consult__list li { display: flex; align-items: baseline; gap: 16px; padding: 24px 0; border-bottom: 1px solid rgba(220,230,220,0.1); font-size: clamp(15px, 1.05vw, 17px); font-weight: 300; line-height: 1.4; color: rgba(244,244,244,0.92); }
.a25-consult__list li span { flex-shrink: 0; font-size: 11px; letter-spacing: 0.16em; color: rgba(155,200,175,0.6); }
@media (max-width: 600px) { .a25-consult__list { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .a25-consult__grid { grid-template-columns: 1fr; align-items: start; } }

/* Consulting page */
.a25-consultpage__hero { padding-top: clamp(64px, 8vw, 120px); }
.a25-consultpage__title { margin: 0 0 28px; max-width: 18ch; font-size: clamp(40px, 5.4vw, 76px); font-weight: 200; line-height: 1.04; letter-spacing: -0.028em; color: #f4f4f4; }
.a25-consultpage__lead { margin: 0 0 40px; max-width: 58ch; font-size: clamp(16px, 1.25vw, 19px); font-weight: 300; line-height: 1.65; color: rgba(244,244,244,0.8); }
.a25-svc { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(32px, 4vw, 72px); }
.a25-svc__head { margin: 0 0 8px; font-size: 13px; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: #9DDB9D; }
.a25-svc__list { list-style: none; margin: 0; padding: 0; }
.a25-svc__list a { display: grid; grid-template-columns: 1fr auto; gap: 2px 16px; align-items: center; padding: 16px 0; border-bottom: 1px solid rgba(220,230,220,0.09); color: rgba(244,244,244,0.88); transition: color 0.25s ease, padding 0.3s ease; }
.a25-svc__list a:hover, .a25-svc__list a:focus-visible { color: #fff; padding-left: 6px; }
.a25-svc__name { font-size: 17px; font-weight: 400; }
.a25-svc__tag { margin-left: 8px; padding: 2px 7px; font-size: 9.5px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; vertical-align: 2px; color: #061a10; background: #9DDB9D; border-radius: 2px; }
.a25-svc__note { grid-column: 1; font-size: 13px; color: rgba(244,244,244,0.5); }
.a25-svc__arrow { grid-column: 2; grid-row: 1 / span 2; color: rgba(157,219,157,0.6); transition: transform 0.3s ease, color 0.3s ease; }
.a25-svc__list a:hover .a25-svc__arrow { transform: translateX(4px); color: #9DDB9D; }
.a25-focus { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(28px, 3vw, 48px) clamp(24px, 3vw, 44px); }
.a25-focus__item { padding-top: 22px; border-top: 1px solid rgba(220,230,220,0.12); }
.a25-focus__num { display: block; margin-bottom: 14px; font-size: 11px; letter-spacing: 0.2em; color: rgba(155,200,175,0.6); }
.a25-focus__title { margin: 0 0 14px; font-size: 21px; font-weight: 400; line-height: 1.3; color: #fff; }
.a25-focus__item p { margin: 0 0 10px; font-size: 15px; font-weight: 300; line-height: 1.65; color: rgba(244,244,244,0.7); }
.a25-quotes { grid-auto-columns: calc((100% - clamp(20px, 2.4vw, 36px)) / 2.15); }
.a25-quote { margin: 0; padding: clamp(24px, 2.6vw, 36px); display: flex; flex-direction: column; justify-content: space-between; gap: 28px; border: 1px solid rgba(220,230,220,0.09); border-radius: 3px; background: rgba(10,22,15,0.45); scroll-snap-align: start; }
.a25-quote blockquote { margin: 0; }
.a25-quote blockquote p { margin: 0; font-size: clamp(16px, 1.25vw, 19px); font-weight: 300; line-height: 1.6; color: rgba(244,244,244,0.88); }
.a25-quote blockquote p::before { content: '“'; display: block; margin-bottom: 6px; font-size: 44px; line-height: 0.6; color: #5FC98E; }
.a25-quote figcaption { display: flex; align-items: center; gap: 14px; font-size: 13px; line-height: 1.45; color: rgba(244,244,244,0.55); }
.a25-quote figcaption img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; flex-shrink: 0; filter: grayscale(0.2); }
.a25-quote figcaption strong { display: block; font-weight: 500; color: #fff; }
.a25-consultpage__cta .a25-fb__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; }
@media (max-width: 900px) {
  .a25-svc, .a25-focus { grid-template-columns: 1fr; }
  .a25-quotes { grid-auto-columns: 82%; }
}
@media (min-width: 601px) and (max-width: 900px) { .a25-focus { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Organisation size dropdown — browsers that support customisable selects
   (Chrome, Edge) get an on-brand list; others keep their native menu. */
@supports (appearance: base-select) {
  .a25-demo__field select,
  .a25-demo__field select::picker(select) { appearance: base-select; }
  .a25-demo__field select { display: flex; align-items: center; cursor: pointer; }
  .a25-demo__field select::picker-icon { display: none; }
  .a25-demo__field select:open { border-color: #5FC98E; }
  .a25-demo__field select::picker(select) {
    margin-top: 8px; padding: 8px;
    background: #0b120e; color: #f4f4f4;
    border: 1px solid rgba(123,196,136,0.35); border-radius: 4px;
    box-shadow: 0 16px 40px rgba(0,0,0,0.5);
    opacity: 0; translate: 0 -8px;
    transition: opacity 0.2s ease, translate 0.2s ease, overlay 0.2s allow-discrete, display 0.2s allow-discrete;
  }
  .a25-demo__field select:open::picker(select) { opacity: 1; translate: 0 0; }
  @starting-style { .a25-demo__field select:open::picker(select) { opacity: 0; translate: 0 -8px; } }
  .a25-demo__field select option {
    display: flex; align-items: center; gap: 8px;
    padding: 12px 16px; border-radius: 4px;
    font-size: 15px; font-weight: 300; color: rgba(244,244,244,0.85);
    background: transparent; cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
  }
  .a25-demo__field select option:hover,
  .a25-demo__field select option:focus-visible { background: rgba(3,77,42,0.45); color: #fff; outline: none; }
  .a25-demo__field select option:checked { color: #9DDB9D; font-weight: 400; }
  .a25-demo__field select option::checkmark { order: 1; margin-left: auto; color: #5FC98E; }
  .a25-demo__field select option:disabled { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .a25-demo__field select::picker(select) { transition: none; }
}

/* Request a demo / contact: extra fields, interest chips, confirmation */
.a25-demo__anchor { position: absolute; top: 0; }
#a25-demo { position: relative; }
.a25-demo__field > span em { font-style: normal; font-weight: 400; letter-spacing: 0.08em; text-transform: none; color: rgba(244,244,244,0.4); }
.a25-demo__done { padding: 32px; border: 1px solid rgba(123,196,136,0.35); border-radius: 4px; background: rgba(10,22,15,0.5); }
.a25-demo__done:focus { outline: none; }
.a25-demo__done p { margin: 0 0 16px; font-size: 16px; font-weight: 300; line-height: 1.6; color: rgba(244,244,244,0.82); max-width: 52ch; }
.a25-demo__done .a25-demo__done-title { font-size: 24px; color: #fff; }
.a25-demo__again { background: none; border: 0; border-bottom: 1px solid rgba(220,230,220,0.2); cursor: pointer; }


/* ============ AMBIENT: drifting starfield ============
   Two very faint dot layers drifting slowly in opposite directions,
   with a gentle twinkle. Used sparingly: the ECP illustration section,
   "European by design" and the footer. */
.a25-stars { position: absolute; inset: -64px; z-index: 0; pointer-events: none; }
.a25-stars span { position: absolute; inset: 0; background-repeat: repeat; will-change: transform, opacity; }
.a25-stars span:first-child {
  background-image:
    radial-gradient(1.6px 1.6px at 394px 401px, rgba(200,245,200,0.75), transparent 60%),
    radial-gradient(1.3px 1.3px at 320px 333px, rgba(244,244,244,0.75), transparent 60%),
    radial-gradient(1.3px 1.3px at 43px 164px, rgba(200,245,200,0.48), transparent 60%),
    radial-gradient(1.6px 1.6px at 209px 270px, rgba(244,244,244,0.78), transparent 60%),
    radial-gradient(1.2px 1.2px at 193px 288px, rgba(200,245,200,0.61), transparent 60%),
    radial-gradient(1.3px 1.3px at 108px 315px, rgba(200,245,200,0.6), transparent 60%),
    radial-gradient(1.3px 1.3px at 172px 324px, rgba(157,219,157,0.47), transparent 60%),
    radial-gradient(1.4px 1.4px at 79px 271px, rgba(200,245,200,0.71), transparent 60%),
    radial-gradient(1.5px 1.5px at 184px 47px, rgba(244,244,244,0.53), transparent 60%),
    radial-gradient(1.5px 1.5px at 465px 231px, rgba(157,219,157,0.66), transparent 60%),
    radial-gradient(1.0px 1.0px at 502px 234px, rgba(244,244,244,0.74), transparent 60%),
    radial-gradient(1.6px 1.6px at 181px 32px, rgba(244,244,244,0.74), transparent 60%),
    radial-gradient(1.3px 1.3px at 476px 17px, rgba(157,219,157,0.53), transparent 60%),
    radial-gradient(1.5px 1.5px at 366px 40px, rgba(200,245,200,0.49), transparent 60%);
  background-size: 560px 488px;
  animation: a25StarsA 64s ease-in-out infinite alternate, a25Twinkle 8s ease-in-out infinite;
}
.a25-stars span:last-child {
  background-image:
    radial-gradient(1.2px 1.2px at 708px 199px, rgba(200,245,200,0.53), transparent 60%),
    radial-gradient(0.9px 0.9px at 158px 390px, rgba(157,219,157,0.49), transparent 60%),
    radial-gradient(1.0px 1.0px at 561px 543px, rgba(244,244,244,0.39), transparent 60%),
    radial-gradient(1.0px 1.0px at 516px 476px, rgba(244,244,244,0.43), transparent 60%),
    radial-gradient(1.2px 1.2px at 371px 522px, rgba(244,244,244,0.33), transparent 60%),
    radial-gradient(1.1px 1.1px at 435px 333px, rgba(157,219,157,0.51), transparent 60%),
    radial-gradient(1.0px 1.0px at 632px 243px, rgba(157,219,157,0.35), transparent 60%),
    radial-gradient(0.8px 0.8px at 273px 535px, rgba(157,219,157,0.54), transparent 60%),
    radial-gradient(1.0px 1.0px at 41px 71px, rgba(200,245,200,0.35), transparent 60%),
    radial-gradient(1.0px 1.0px at 285px 186px, rgba(244,244,244,0.32), transparent 60%),
    radial-gradient(1.1px 1.1px at 695px 620px, rgba(244,244,244,0.35), transparent 60%),
    radial-gradient(1.2px 1.2px at 137px 288px, rgba(200,245,200,0.59), transparent 60%);
  background-size: 808px 744px;
  animation: a25StarsB 96s ease-in-out infinite alternate, a25Twinkle 12s ease-in-out infinite reverse;
}
@keyframes a25StarsA { to { transform: translate3d(-40px, -24px, 0); } }
@keyframes a25StarsB { to { transform: translate3d(32px, 16px, 0); } }
@keyframes a25Twinkle { 0%, 100% { opacity: 0.55; } 50% { opacity: 1; } }
.a25-fb__inner, .a25-footer__inner { position: relative; z-index: 3; }
@media (prefers-reduced-motion: reduce) { .a25-stars span { animation: none; } }

/* ============ HOVER GLOW — on clickable things only, never on its own ============ */
.a25-btn--primary { transition: background 0.3s ease, border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease; }
.a25-btn--primary:hover, .a25-btn--primary:focus-visible { border-color: #5FC98E; box-shadow: 0 0 0 4px rgba(123,196,136,0.08), 0 8px 24px -8px rgba(95,201,142,0.45); }
.a25-post__media { transition: border-color 0.3s ease, box-shadow 0.3s ease; }
.a25-post__link:hover .a25-post__media, .a25-post__link:focus-visible .a25-post__media { border-color: rgba(123,196,136,0.5); box-shadow: 0 16px 40px -16px rgba(95,201,142,0.35); }
.a25-radar__item { transition: border-color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease; }
.a25-radar__item:hover { box-shadow: 0 8px 24px -12px rgba(95,201,142,0.3); }
.a25-carousel__btn:hover:not(:disabled), .a25-carousel__btn:focus-visible { box-shadow: 0 0 16px rgba(95,201,142,0.25); }
.a25-quote { transition: border-color 0.3s ease, box-shadow 0.3s ease; }
.a25-quote:hover { border-color: rgba(123,196,136,0.4); box-shadow: 0 16px 40px -16px rgba(95,201,142,0.3); }

/* ============ CONSULTING HERO WITH PHOTO ============ */
.a25-consultpage__heroGrid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(40px, 5vw, 80px); align-items: center; }
.a25-consultpage__photo { position: relative; margin: 0; border-radius: 4px; overflow: hidden; border: 1px solid rgba(220,230,220,0.08); aspect-ratio: 4 / 3; }
.a25-consultpage__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; filter: saturate(0.85); }
.a25-consultpage__photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5,7,6,0) 55%, rgba(5,7,6,0.55) 100%), linear-gradient(90deg, rgba(5,7,6,0.25), rgba(5,7,6,0) 40%); pointer-events: none; }
@media (max-width: 900px) { .a25-consultpage__heroGrid { grid-template-columns: 1fr; } }

/* ============ SERVICE PAGES ============ */
.a25-svcpage__hero { padding-top: clamp(56px, 7vw, 104px); }
.a25-svcpage__heroGrid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
.a25-svcpage__title { margin: 0 0 24px; font-size: clamp(40px, 5vw, 72px); font-weight: 200; line-height: 1.04; letter-spacing: -0.028em; color: #f4f4f4; text-wrap: balance; }
.a25-svcpage__tagline { margin: 0 0 40px; max-width: 48ch; font-size: clamp(16px, 1.3vw, 20px); font-weight: 300; line-height: 1.55; color: rgba(244,244,244,0.78); }
.a25-svcpage__intro { padding-top: 8px; }
.a25-svcpage__question { margin: 0 0 24px; font-size: clamp(18px, 1.5vw, 22px); font-weight: 300; line-height: 1.45; color: #fff; }
.a25-consult__list--single { grid-template-columns: 1fr; }
.a25-svcpage__explainer { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: clamp(32px, 5vw, 96px); align-items: start; }
.a25-svcpage__prose p { margin: 0 0 16px; font-size: clamp(16px, 1.15vw, 18px); font-weight: 300; line-height: 1.7; color: rgba(244,244,244,0.82); max-width: 64ch; }
.a25-svcpage__prose ul { margin: 0 0 16px; padding-left: 20px; color: rgba(244,244,244,0.82); }
.a25-svcpage__prose li::marker { color: #5FC98E; }
.a25-svcpage .a25-steps__body { color: rgba(244,244,244,0.78); }
.a25-svcpage .a25-focus { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) {
  .a25-svcpage__heroGrid, .a25-svcpage__explainer { grid-template-columns: 1fr; }
  .a25-svcpage .a25-focus { grid-template-columns: 1fr; }
}

/* FAQ / modules accordion — native <details>, no script needed */
.a25-faq { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: clamp(32px, 5vw, 96px); align-items: start; }
.a25-faq__list { border-top: 1px solid rgba(220,230,220,0.1); }
.a25-faq__item { border-bottom: 1px solid rgba(220,230,220,0.1); }
.a25-faq__item summary { list-style: none; display: flex; align-items: center; gap: 16px; padding: 24px 0; cursor: pointer; font-size: clamp(16px, 1.2vw, 18px); font-weight: 400; line-height: 1.45; color: rgba(244,244,244,0.92); transition: color 0.2s ease; }
.a25-faq__item summary::-webkit-details-marker { display: none; }
.a25-faq__item summary:hover { color: #fff; }
.a25-faq__item summary:focus-visible { outline: 2px solid rgba(155,200,175,0.85); outline-offset: 4px; }
.a25-faq__chev { flex-shrink: 0; margin-left: auto; width: 8px; height: 8px; border-right: 1.5px solid rgba(157,219,157,0.8); border-bottom: 1.5px solid rgba(157,219,157,0.8); transform: rotate(45deg) translate(-2px, -2px); transition: transform 0.3s ease; }
.a25-faq__item[open] .a25-faq__chev { transform: rotate(225deg) translate(-2px, -2px); }
.a25-faq__answer { padding: 0 40px 24px 0; font-size: 16px; font-weight: 300; line-height: 1.7; color: rgba(244,244,244,0.78); }
.a25-faq__answer p { margin: 0 0 12px; }
.a25-faq__answer ul { margin: 0 0 12px; padding-left: 20px; }
.a25-faq__answer li { margin-bottom: 4px; }
.a25-faq__answer li::marker { color: #5FC98E; }
@media (max-width: 900px) { .a25-faq { grid-template-columns: 1fr; } }

/* Training page */
.a25-train__card { padding: 32px; border: 1px solid rgba(123,196,136,0.3); border-radius: 4px; background: rgba(10,22,15,0.5); }
.a25-train__date { margin: 0 0 8px; font-size: clamp(24px, 2.2vw, 32px); font-weight: 300; color: #fff; }
.a25-train__meta { list-style: none; margin: 0 0 24px; padding: 0; font-size: 14px; line-height: 1.7; color: rgba(244,244,244,0.65); }
.a25-train__price { padding-top: 24px; border-top: 1px solid rgba(220,230,220,0.1); margin-bottom: 8px; font-size: 15px; color: rgba(244,244,244,0.7); }
.a25-train__price strong { font-size: 32px; font-weight: 300; color: #9DDB9D; margin-right: 8px; }
.a25-train__schedule { margin: 0; padding-top: 16px; border-top: 1px solid rgba(220,230,220,0.1); font-size: 14px; color: rgba(244,244,244,0.8); }
.a25-train__schedule span { display: block; margin-bottom: 4px; font-size: 10.5px; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(155,200,175,0.7); }
.a25-train__introGrid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
.a25-train__bullets { margin: 8px 0 0; padding-left: 20px; font-size: 15px; font-weight: 300; line-height: 1.7; color: rgba(244,244,244,0.7); }
.a25-train__bullets li::marker { color: #5FC98E; }
.a25-train__modnum { flex-shrink: 0; width: 32px; font-size: 12px; letter-spacing: 0.16em; color: rgba(155,200,175,0.7); }
.a25-train__creds { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 16px 32px; padding-top: 24px; border-top: 1px solid rgba(220,230,220,0.1); }
.a25-train__creds dt { font-size: 10.5px; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(155,200,175,0.75); padding-top: 4px; }
.a25-train__creds dd { margin: 0; font-size: 16px; font-weight: 300; line-height: 1.6; color: rgba(244,244,244,0.85); }
.a25-train__creds dd span { font-size: 14px; color: rgba(244,244,244,0.55); }
@media (max-width: 900px) { .a25-train__introGrid { grid-template-columns: 1fr; } }

/* Hero wave drawn live: the image is the fallback until the canvas is ready */
/* Count-up figure keeps its width steady while counting */
[data-count-to] { font-variant-numeric: tabular-nums; }

/* Homepage consulting: stage photo beside the text, services below */
.a25-consult__photo { position: relative; margin: 0; aspect-ratio: 3 / 2; border-radius: 4px; overflow: hidden; border: 1px solid rgba(220,230,220,0.08); }
.a25-consult__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; filter: saturate(0.85); }
.a25-consult__photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5,7,6,0) 60%, rgba(5,7,6,0.45) 100%); pointer-events: none; }
.a25-consult__services { margin-top: clamp(48px, 5vw, 72px); }
.a25-consult__list--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { .a25-consult__list--three { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .a25-consult__list--three { grid-template-columns: 1fr; } }

/* Service pages: wide picture band under the title area */
.a25-svcpage__image { position: relative; margin-top: clamp(48px, 5vw, 72px); aspect-ratio: 21 / 8; border-radius: 4px; overflow: hidden; border: 1px solid rgba(220,230,220,0.08); }
.a25-svcpage__image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.85); }
.a25-svcpage__image::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5,7,6,0) 55%, rgba(5,7,6,0.5) 100%); pointer-events: none; }
@media (max-width: 600px) { .a25-svcpage__image { aspect-ratio: 16 / 9; } }


/* Selected engagements (consulting page) */
.a25-cases { display: flex; flex-direction: column; }
.a25-case { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: clamp(32px, 5vw, 80px); padding: clamp(40px, 4vw, 64px) 0; border-top: 1px solid rgba(220,230,220,0.12); }
.a25-case:last-child { border-bottom: 1px solid rgba(220,230,220,0.12); }
.a25-case__num { margin: 0 0 16px; font-size: 10.5px; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(155,200,175,0.75); }
.a25-case__title { margin: 0 0 16px; font-size: clamp(22px, 2vw, 28px); font-weight: 600; line-height: 1.2; letter-spacing: -0.015em; color: #fff; }
.a25-case__summary { margin: 0 0 24px; font-size: 16px; font-weight: 300; line-height: 1.65; color: rgba(244,244,244,0.82); }
.a25-case__purpose { margin: 0; padding-left: 16px; border-left: 2px solid #5FC98E; font-size: 15px; font-weight: 300; line-height: 1.6; color: rgba(244,244,244,0.75); }
.a25-case__purpose span { display: block; margin-bottom: 4px; font-size: 10.5px; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(155,200,175,0.85); }
.a25-case__lists { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.a25-case__label { margin: 0 0 16px; font-size: 10.5px; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(244,244,244,0.55); }
.a25-case__label--result { color: #9DDB9D; }
.a25-case__lists ul { margin: 0; padding: 0; list-style: none; }
.a25-case__lists li { position: relative; padding: 0 0 12px 16px; font-size: 14.5px; font-weight: 300; line-height: 1.55; color: rgba(244,244,244,0.75); }
.a25-case__lists li::before { content: ''; position: absolute; left: 0; top: 8px; width: 6px; height: 1px; background: rgba(157,219,157,0.6); }
.a25-case__results li { color: rgba(244,244,244,0.92); }
.a25-case__results li::before { width: 6px; height: 6px; top: 6px; border-radius: 50%; background: #5FC98E; }
@media (max-width: 900px) { .a25-case, .a25-case__lists { grid-template-columns: 1fr; } }

/* ============ HERO: green faces, blended into the page ============
   Screen blending drops the picture's black background so only the glowing
   faces remain; a soft mask dissolves the edges and a fine scan-line texture
   adds a technical finish. No movement. */
.a25-hero__faces { position: relative; margin-right: calc(-1 * clamp(28px, 5vw, 80px)); pointer-events: none; }
.a25-hero__faces img { display: block; width: 160%; max-width: none; height: auto; margin-left: -12%;
  mix-blend-mode: screen; opacity: 0.85; filter: saturate(0.9) contrast(1.08);
  -webkit-mask-image: radial-gradient(ellipse 58% 62% at 50% 50%, #000 35%, transparent 75%);
          mask-image: radial-gradient(ellipse 58% 62% at 50% 50%, #000 35%, transparent 75%); }
.a25-hero__faces::after { content: ''; position: absolute; inset: 0; width: 160%; margin-left: -12%; pointer-events: none;
  background: repeating-linear-gradient(0deg, rgba(5,7,6,0.45) 0 1px, transparent 1px 4px);
  -webkit-mask-image: radial-gradient(ellipse 58% 62% at 50% 50%, #000 35%, transparent 75%);
          mask-image: radial-gradient(ellipse 58% 62% at 50% 50%, #000 35%, transparent 75%); }
@media (max-width: 900px) {
  .a25-hero__faces { margin: 8px -22px 0 0; }
  .a25-hero__faces img, .a25-hero__faces::after { width: 120%; margin-left: -10%; }
}

/* Second title style: the body font in bold, for variation next to the thin display titles */
.a25-title--bold { font-weight: 600 !important; letter-spacing: -0.02em !important; line-height: 1.08 !important; color: #fff; }
.a25-sechead__title.a25-title--bold { font-size: clamp(30px, 3.4vw, 48px); }
.a25-svcpage__title.a25-title--bold, .a25-consultpage__title.a25-title--bold { font-size: clamp(36px, 4.4vw, 64px); }

/* Service page header: the old page's picture as a darkened background */
.a25-svcpage__hero--image { background:
    linear-gradient(180deg, rgba(5,7,6,0) 60%, #090D10 100%),
    linear-gradient(90deg, rgba(5,7,6,0.92) 0%, rgba(5,7,6,0.78) 50%, rgba(5,7,6,0.6) 100%),
    var(--bg) center / cover no-repeat;
  padding-bottom: clamp(72px, 8vw, 128px); }
.a25-svcpage__hero--image::before { display: none; }
.a25-svcpage__hero--image .a25-svcpage__title, .a25-svcpage__hero--image .a25-svcpage__tagline { text-shadow: 0 2px 24px rgba(0,0,0,0.5); }
.a25-svcpage__hero--image .a25-svcpage__intro { padding: 32px; border: 1px solid rgba(220,230,220,0.1); border-radius: 4px; background: rgba(5,7,6,0.55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }


/* Stage photo spanning the full width, above the consulting section */
.a25-stageband { position: relative; margin: 0; width: 100vw; margin-left: calc(50% - 50vw); height: clamp(320px, 64vh, 720px); overflow: hidden; background: #0a0f0c; }
.a25-stageband img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; filter: saturate(0.85); }
.a25-stageband::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(5,7,6,0.35), rgba(5,7,6,0) 25%, rgba(5,7,6,0) 60%, rgba(9,13,16,0.9)); }
.a25-stageband figcaption { position: absolute; left: clamp(28px, 5vw, 80px); bottom: 24px; z-index: 1; font-size: 10.5px; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(244,244,244,0.75); }
.a25-consult__list--links li { padding: 0; }
.a25-consult__list--links a { display: flex; align-items: baseline; gap: 16px; width: 100%; padding: 24px 0; color: rgba(244,244,244,0.92); transition: color 0.25s ease, padding 0.3s ease; }
.a25-consult__list--links a:hover, .a25-consult__list--links a:focus-visible { color: #9DDB9D; padding-left: 8px; }

/* Silo section: the wave picture */
.a25-thesis__wave img { display: block; width: 100%; height: auto; opacity: 0.9; }

/* Product steps: a moderate glow on hover */
.a25-steps__item { padding: 32px 24px 24px; margin: 0 -24px; border-radius: 4px; transition: background 0.3s ease, box-shadow 0.3s ease; }
.a25-steps__item::before { left: 24px; transition: width 0.3s ease, box-shadow 0.3s ease; }
.a25-steps__item:hover { background: rgba(10,22,15,0.55); box-shadow: 0 0 0 1px rgba(123,196,136,0.25), 0 16px 40px -16px rgba(95,201,142,0.35); }
.a25-steps__item:hover::before { width: 64px; box-shadow: 0 0 12px rgba(95,201,142,0.7); }
.a25-steps__item:hover .a25-steps__name { color: #fff; }
.a25-steps__item:hover .a25-steps__name span { color: #9DDB9D; }

/* About page */
.a25-about__kicker { margin: 0; font-size: 10.5px; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(155,200,175,0.85); }
.a25-about__acc { display: flex; flex-direction: column; gap: 4px; }
.a25-about__acc strong { font-weight: 500; color: #fff; }
.a25-about__acc span { font-size: 14px; font-weight: 300; color: rgba(244,244,244,0.6); }
.a25-about__refs { list-style: none; padding: 0 !important; margin: 16px 0 0 !important; }
.a25-about__refs a { color: #9DDB9D; text-decoration: underline; text-decoration-color: rgba(157,219,157,0.35); text-underline-offset: 3px; }
.a25-about__closing { margin: 24px 0 0; font-size: clamp(22px, 2.2vw, 30px); font-weight: 300; line-height: 1.3; color: #fff; max-width: 22ch; }
.a25-about__mv { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 4vw, 64px); margin-bottom: 48px; }
.a25-about__mv h3 { margin: 0 0 12px; font-size: 10.5px; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: #9DDB9D; }
.a25-about__mv p { margin: 0; font-size: clamp(17px, 1.3vw, 20px); font-weight: 300; line-height: 1.6; color: rgba(244,244,244,0.88); }
.a25-about__quote { margin: 0 0 56px; padding-left: 24px; border-left: 2px solid #5FC98E; }
.a25-about__quote p { margin: 0 0 8px; font-size: clamp(22px, 2.2vw, 32px); font-weight: 300; color: #fff; }
.a25-about__quote footer { font-size: 15px; color: rgba(244,244,244,0.7); }
.a25-about .a25-focus { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.a25-team { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 32px; }
.a25-person img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 4px; margin-bottom: 16px; filter: grayscale(0.2); }
.a25-person h3 { margin: 0 0 4px; font-size: 18px; font-weight: 600; color: #fff; }
.a25-person p { margin: 0 0 12px; font-size: 13px; line-height: 1.5; color: rgba(244,244,244,0.65); }
.a25-person a { font-size: 13px; color: #9DDB9D; }
.a25-about__name { padding-top: clamp(72px, 8vw, 128px); }
@media (max-width: 900px) {
  .a25-about__mv, .a25-about .a25-focus { grid-template-columns: 1fr; }
  .a25-team { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Count-up figure keeps its width steady while counting */
[data-count-to] { font-variant-numeric: tabular-nums; }

/* "With ECP": the outer line (first line of defence) stays clearly visible */
.a25cego__perim { stroke: rgba(157, 219, 157, 0.55) !important; stroke-width: 1.6; }
.a25cego__bg-ring { stroke: rgba(157, 219, 157, 0.22); }

/* Hero faces: larger, cropping is fine */
.a25-hero__faces img, .a25-hero__faces::after { width: 210%; margin-left: -30%; }
.a25-hero__faces img, .a25-hero__faces::after {
  -webkit-mask-image: radial-gradient(ellipse 52% 60% at 52% 50%, #000 40%, transparent 78%);
          mask-image: radial-gradient(ellipse 52% 60% at 52% 50%, #000 40%, transparent 78%); }
@media (max-width: 900px) { .a25-hero__faces img, .a25-hero__faces::after { width: 150%; margin-left: -20%; } }

/* About: round portraits like the old site, plain LinkedIn links, founder photo */
.a25-person img { border-radius: 50%; max-width: 200px; }
.a25-person a { display: inline-block; font-size: 12px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: #9DDB9D; padding-bottom: 4px; border-bottom: 1px solid rgba(157,219,157,0.35); transition: border-color 0.2s ease, color 0.2s ease; }
.a25-person a:hover, .a25-person a:focus-visible { color: #fff; border-bottom-color: #5FC98E; }
.a25-about__founder { display: flex; align-items: center; gap: 32px; }
.a25-about__founder img { width: 160px; height: 160px; flex-shrink: 0; border-radius: 50%; object-fit: cover; border: 1px solid rgba(123,196,136,0.35); }
@media (max-width: 600px) { .a25-about__founder { flex-direction: column; align-items: flex-start; } }
/* The faces float in their column without making the hero taller,
   so the buttons stay above the fold on 13" screens */
@media (min-width: 901px) {
  .a25-hero__faces { align-self: stretch; }
  .a25-hero__faces img, .a25-hero__faces::after { position: absolute; top: 50%; left: 0; transform: translateY(-50%); margin-left: -30%; }
  .a25-hero__faces::after { height: auto; aspect-ratio: 2 / 1; }
}

/* ============ NETWORK BACKGROUND (from the old About page) ============
   Faint dot grid, three clusters of connected points (risk, system, governance)
   with dashed flows between them, and a few pulses that travel along the lines. */
.a25-netbg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.a25-netbg__grid { position: absolute; inset: 0; background-image: radial-gradient(circle, rgba(220,230,220,0.03) 1px, transparent 1.4px); background-size: 42px 42px;
  -webkit-mask-image: radial-gradient(ellipse 80% 72% at 50% 50%, #000 22%, transparent 92%); mask-image: radial-gradient(ellipse 80% 72% at 50% 50%, #000 22%, transparent 92%); }
.a25-net { position: absolute; inset: 0; }
.a25-net__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.a25-net__line { fill: none; transition: stroke 1s ease; }
.a25-net__line[data-cluster="risk"] { stroke: rgba(220,220,215,0.038); }
.a25-net__line[data-cluster="risk"][data-accent="green"] { stroke: rgba(95,165,115,0.062); }
.a25-net__line[data-cluster="system"] { stroke: rgba(245,245,240,0.054); }
.a25-net__line[data-cluster="system"][data-accent="green"] { stroke: rgba(95,165,115,0.072); }
.a25-net__line[data-cluster="gov"] { stroke: rgba(95,165,115,0.11); }
.a25-net__line[data-cluster="flow"] { stroke: rgba(95,165,115,0.095); stroke-dasharray: 1.8 1.8; }
.a25-net__line[data-cluster="flow"][data-accent="strong"] { stroke: rgba(95,165,115,0.14); stroke-dasharray: 2.2 1.8; }
.a25-net__node { position: absolute; width: 3px; height: 3px; border-radius: 50%; transform: translate(-50%, -50%); transition: background 1s ease, box-shadow 1s ease; animation: a25NodePulse 6s ease-in-out infinite; }
.a25-net__node[data-cluster="risk"] { background: rgba(220,220,215,0.2); }
.a25-net__node[data-cluster="risk"][data-accent="green"] { background: rgba(95,165,115,0.3); }
.a25-net__node[data-cluster="system"] { background: rgba(248,248,244,0.32); }
.a25-net__node[data-cluster="system"][data-accent="green"] { background: rgba(115,185,135,0.4); }
.a25-net__node[data-cluster="gov"] { background: rgba(95,165,115,0.38); }
.a25-net__node:nth-child(3n) { animation-delay: -1.2s; animation-duration: 7s; }
.a25-net__node:nth-child(3n+1) { animation-delay: -2.4s; animation-duration: 8s; }
.a25-net__node:nth-child(3n+2) { animation-delay: -3.6s; animation-duration: 6.5s; }
@keyframes a25NodePulse { 0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 1; } 50% { transform: translate(-50%, -50%) scale(1.25); opacity: 0.78; } }
/* A cluster lights up while a matching item is hovered or open (About page) */
.a25-netbg.is-active--risk .a25-net__node[data-cluster="risk"] { background: rgba(225,245,225,0.62); box-shadow: 0 0 4px 1px rgba(95,165,115,0.22); }
.a25-netbg.is-active--risk .a25-net__line[data-cluster="risk"] { stroke: rgba(220,245,220,0.13); }
.a25-netbg.is-active--system .a25-net__node[data-cluster="system"] { background: rgba(235,250,235,0.75); box-shadow: 0 0 5px 1.2px rgba(95,165,115,0.3); }
.a25-netbg.is-active--system .a25-net__line[data-cluster="system"] { stroke: rgba(235,250,235,0.16); }
.a25-netbg.is-active--gov .a25-net__node[data-cluster="gov"] { background: rgba(160,230,180,0.8); box-shadow: 0 0 6px 1.3px rgba(95,165,115,0.4); }
.a25-netbg.is-active--gov .a25-net__line[data-cluster="gov"] { stroke: rgba(95,165,115,0.25); }
.a25-netbg[class*="is-active--"] .a25-net__line[data-cluster="flow"] { stroke: rgba(95,165,115,0.16); }
.a25-net__pulse { position: absolute; width: 4px; height: 4px; border-radius: 50%; background: rgba(180,230,195,0.85);
  box-shadow: 0 0 5px 1px rgba(160,220,180,0.55), 0 0 12px 2px rgba(95,165,115,0.18); opacity: 0; transform: translate(-50%, -50%); will-change: left, top, opacity; }
.a25-net__pulse--p1 { left: 30%; top: 18%; animation: a25NetP1 72s linear 0s infinite; }
@keyframes a25NetP1 { 0%, 100% { left: 30%; top: 18%; opacity: 0; } 3% { left: 30%; top: 18%; opacity: 0.72; } 9% { left: 44%; top: 14%; opacity: 0.72; } 10% { left: 44%; top: 14%; opacity: 0; } 99% { left: 44%; top: 14%; opacity: 0; } }
.a25-net__pulse--p2 { left: 38%; top: 26%; animation: a25NetP2 76s linear 14s infinite; }
@keyframes a25NetP2 { 0%, 100% { left: 38%; top: 26%; opacity: 0; } 3% { left: 38%; top: 26%; opacity: 0.72; } 9% { left: 50%; top: 24%; opacity: 0.72; } 10% { left: 50%; top: 24%; opacity: 0; } 99% { left: 50%; top: 24%; opacity: 0; } }
.a25-net__pulse--p3 { left: 62%; top: 14%; animation: a25NetP3 70s linear 28s infinite; }
@keyframes a25NetP3 { 0%, 100% { left: 62%; top: 14%; opacity: 0; } 3% { left: 62%; top: 14%; opacity: 0.72; } 9% { left: 76%; top: 14%; opacity: 0.72; } 10% { left: 76%; top: 14%; opacity: 0; } 99% { left: 76%; top: 14%; opacity: 0; } }
.a25-net__pulse--p4 { left: 58%; top: 36%; animation: a25NetP4 80s linear 42s infinite; }
@keyframes a25NetP4 { 0%, 100% { left: 58%; top: 36%; opacity: 0; } 3% { left: 58%; top: 36%; opacity: 0.72; } 9% { left: 78%; top: 32%; opacity: 0.72; } 10% { left: 78%; top: 32%; opacity: 0; } 99% { left: 78%; top: 32%; opacity: 0; } }
.a25-net__pulse--p5 { left: 62%; top: 56%; animation: a25NetP5 68s linear 56s infinite; }
@keyframes a25NetP5 { 0%, 100% { left: 62%; top: 56%; opacity: 0; } 3% { left: 62%; top: 56%; opacity: 0.72; } 9% { left: 82%; top: 48%; opacity: 0.72; } 10% { left: 82%; top: 48%; opacity: 0; } 99% { left: 82%; top: 48%; opacity: 0; } }
.a25-net__pulse--p6 { left: 16%; top: 42%; animation: a25NetP6 64s linear 8s infinite; }
@keyframes a25NetP6 { 0%, 100% { left: 16%; top: 42%; opacity: 0; } 3% { left: 16%; top: 42%; opacity: 0.78; } 11% { left: 28%; top: 50%; opacity: 0.78; } 12% { left: 28%; top: 50%; opacity: 0; } 99% { left: 28%; top: 50%; opacity: 0; } }
.a25-net__pulse--p7 { left: 46%; top: 32%; animation: a25NetP7 86s linear 22s infinite; }
@keyframes a25NetP7 { 0%, 100% { left: 46%; top: 32%; opacity: 0; } 3% { left: 46%; top: 32%; opacity: 0.65; } 9% { left: 52%; top: 50%; opacity: 0.65; } 10% { left: 52%; top: 50%; opacity: 0; } 99% { left: 52%; top: 50%; opacity: 0; } }
.a25-net__pulse--p8 { left: 78%; top: 32%; animation: a25NetP8 60s linear 36s infinite; }
@keyframes a25NetP8 { 0%, 100% { left: 78%; top: 32%; opacity: 0; } 3% { left: 78%; top: 32%; opacity: 0.8; } 8% { left: 90%; top: 36%; opacity: 0.8; } 9% { left: 90%; top: 36%; opacity: 0; } 99% { left: 90%; top: 36%; opacity: 0; } }
@media (max-width: 720px) { .a25-net { opacity: 0.7; } .a25-netbg__grid { background-size: 32px 32px; opacity: 0.65; } }
@media (prefers-reduced-motion: reduce) { .a25-net__node, .a25-net__pulse { animation: none; } .a25-net__pulse { opacity: 0; } }

/* Spam trap (Formward honeypot): never shown to people */
.a25-demo__trap { position: absolute !important; left: -10000px; width: 1px; height: 1px; opacity: 0; }
/* Consulting page header: stage photo faded behind the text */
.a25-consultpage__hero--stage { background:
    linear-gradient(180deg, rgba(5,7,6,0) 55%, #090D10 100%),
    linear-gradient(90deg, rgba(5,7,6,0.9) 0%, rgba(5,7,6,0.75) 45%, rgba(5,7,6,0.55) 100%),
    var(--bg) center 40% / cover no-repeat; }

/* Services without their own page: same row, not a link */
.a25-svc__row { display: grid; grid-template-columns: 1fr; gap: 2px; padding: 16px 0; border-bottom: 1px solid rgba(220,230,220,0.09); color: rgba(244,244,244,0.82); }
.a25-consult__list--links li > span:first-child { flex-shrink: 0; font-size: 11px; letter-spacing: 0.16em; color: rgba(155,200,175,0.6); }
.a25-consult__list--links li:not(:has(a)) { display: flex; align-items: baseline; gap: 16px; padding: 24px 0; color: rgba(244,244,244,0.82); }

/* Network background zoomed in, as on the old site: much larger than the
   section and cropped, so only a few points and lines drift past */
.a25-net { inset: auto; left: -70%; top: -60%; width: 240%; height: 260%; opacity: 0.85; }
@media (max-width: 720px) { .a25-net { left: -120%; width: 340%; opacity: 0.6; } }

/* Different crops of the same network per section, so it reads as one
   network running down the page rather than a repeated pattern */
.a25-netbg--b .a25-net { left: -130%; top: -110%; }
.a25-netbg--c .a25-net { left: -20%; top: -140%; transform: scaleX(-1); }
.a25-netbg--d .a25-net { left: -100%; top: -30%; transform: scaleX(-1); }
.a25-netbg--e .a25-net { left: -40%; top: -100%; }

/* About: values get the same moderate hover glow as the homepage steps */
.a25-about .a25-focus__item { position: relative; padding: 24px; margin: 0 -24px; border-radius: 4px; transition: background 0.3s ease, box-shadow 0.3s ease; }
.a25-about .a25-focus__item::before { content: ''; position: absolute; top: -1px; left: 24px; width: 40px; height: 2px; background: #5FC98E; transition: width 0.3s ease, box-shadow 0.3s ease; }
.a25-about .a25-focus__item:hover { background: rgba(10,22,15,0.55); box-shadow: 0 0 0 1px rgba(123,196,136,0.25), 0 16px 40px -16px rgba(95,201,142,0.35); }
.a25-about .a25-focus__item:hover::before { width: 64px; box-shadow: 0 0 12px rgba(95,201,142,0.7); }
.a25-about .a25-focus__item:hover .a25-focus__num { color: #9DDB9D; }

/* ============ COOKIE CHOICES ============ */
.a25-cookies { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 60; max-width: 980px; margin: 0 auto; color: rgba(244,244,244,0.82); background: rgba(8,16,12,0.96); border: 1px solid rgba(220,230,220,0.16); border-radius: 4px; box-shadow: 0 18px 60px rgba(0,0,0,0.55); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.a25-cookies[hidden] { display: none; }
.a25-cookies__inner { display: grid; grid-template-columns: 1fr auto; gap: 18px 28px; align-items: center; padding: 20px 24px; }
.a25-cookies__text p { margin: 0; font-size: 14px; line-height: 1.55; }
.a25-cookies__title { margin: 0 0 6px !important; font-size: 10.5px !important; font-weight: 600; letter-spacing: 0.28em; text-transform: uppercase; color: rgba(155,200,175,0.85); }
.a25-cookies__text a { color: #9DDB9D; text-decoration: underline; text-decoration-color: rgba(157,219,157,0.35); text-underline-offset: 3px; }
.a25-cookies__text a:hover, .a25-cookies__text a:focus-visible { text-decoration-color: #9DDB9D; }
.a25-cookies__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px; }
.a25-cookies .a25-btn { cursor: pointer; padding: 10px 18px; }
.a25-cookies__manage { padding: 10px 6px; font: inherit; font-size: 13px; color: rgba(244,244,244,0.7); background: none; border: 0; border-bottom: 1px solid rgba(220,230,220,0.28); cursor: pointer; }
.a25-cookies__manage:hover, .a25-cookies__manage:focus-visible { color: #fff; border-bottom-color: #5FC98E; outline: none; }
.a25-cookies__panel { grid-column: 1 / -1; display: grid; gap: 12px; padding-top: 16px; border-top: 1px solid rgba(220,230,220,0.1); justify-items: start; }
.a25-cookies__panel[hidden] { display: none; }
.a25-cookies__option { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; line-height: 1.5; cursor: pointer; }
.a25-cookies__option input { margin-top: 3px; width: 16px; height: 16px; accent-color: #5FC98E; flex: none; }
.a25-cookies__option input:disabled { cursor: not-allowed; }
.a25-cookies__option strong { display: block; color: #fff; font-weight: 500; }
.a25-cookies.is-managing .a25-cookies__actions { grid-row: 3; grid-column: 1 / -1; }
@media (max-width: 720px) {
  .a25-cookies__inner { grid-template-columns: 1fr; padding: 18px; }
  .a25-cookies__actions { justify-content: flex-start; }
}
/* Cookie Statement table */
.a25-cookietable { margin-top: 1.2em; overflow-x: auto; }
.a25-cookietable table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 15px; }
.a25-cookietable th, .a25-cookietable td { padding: 12px 14px 12px 0; text-align: left; vertical-align: top; border-bottom: 1px solid rgba(220,230,220,0.12); }
.a25-cookietable th { font-size: 10.5px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(155,200,175,0.85); }
.a25-prose code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.9em; color: #fff; background: rgba(220,230,220,0.08); padding: 2px 6px; border-radius: 3px; }

/* ============ PHONES AND TABLETS: decorative pictures behind the text ============
   Stacked under the text, the hero faces and the silo wave read as content and push
   the next section down. Below 900px they sit behind the text, faded so it stays readable. */
@media (max-width: 900px) {
  .a25-hero__top, .a25-thesis__grid { position: relative; }
  .a25-hero__text, .a25-thesis__grid > :first-child { position: relative; z-index: 1; }
  .a25-hero__faces { position: absolute; top: 0; right: -22px; width: 100%; margin: 0; z-index: 0; }
  .a25-hero__faces img { opacity: 0.32; }
  .a25-thesis__wave { position: absolute; top: 0; bottom: 0; right: -22px; width: 100%; display: flex; align-items: center; z-index: 0; }
  .a25-thesis__wave img { opacity: 0.35; }
}

/* ============ PHONES: comfortable tap targets and readable small text ============
   Links get at least 44px of height to tap; labels below 12px are raised to 12px.
   Desktop keeps its finer sizes. */
@media (max-width: 720px) {
  .a25-radar__sources { gap: 0 24px; }
  .a25-radar__sources a, .a25-about__refs a, .a25-article__back { display: inline-flex; align-items: center; min-height: 44px; }
  .a25-article__back { margin-bottom: 24px; }
  .a25-post__meta, .a25-post--small .a25-post__meta, .a25-article__cats li,
  .a25-hero__pledge, .a25-consult__label, .a25-train__schedule span, .a25-about__kicker,
  .a25-evidence__src, .a25-carousel__label, .a25-radar__window, .a25-radar__meta, .a25-radar__meta span,
  .a25-demo__field > span, .a25-footer__transition, .a25-footer__transition span { font-size: 12px; }
}

/* ============ LANGUAGE SWITCH: EN | SV, top right ============ */
.a25-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.a25-lang { display: flex; align-items: center; margin-left: -8px; font-size: 12px; font-weight: 600; letter-spacing: 0.16em; }
.a25-lang a { position: relative; display: inline-flex; align-items: center; min-height: 40px; padding: 0 12px; color: rgba(244,244,244,0.5); transition: color 0.2s ease; }
.a25-lang a + a::before { content: ''; position: absolute; left: 0; top: 50%; width: 1px; height: 12px; margin-top: -6px; background: rgba(244,244,244,0.35); }
.a25-lang a[aria-current] { color: #fff; }
.a25-lang a:hover, .a25-lang a:focus-visible { color: #9DDB9D; }
@media (max-width: 900px) {
  .a25-lang { margin-left: auto; margin-right: -16px; }
  .a25-lang a { min-height: 44px; }
}

/* ============ EXECUTIVE OUTCOMES: four cards ============ */
.a25-outcomes { list-style: none; margin: 48px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.a25-outcomes__item { padding: 40px 32px; border: 1px solid rgba(123,196,136,0.28); border-radius: 4px; background: rgba(10,22,15,0.45);
  box-shadow: 0 0 24px -8px rgba(95,201,142,0.28), inset 0 0 32px -16px rgba(95,201,142,0.18); transition: border-color 0.3s ease, box-shadow 0.3s ease, background 0.3s ease; }
.a25-outcomes__item:hover { border-color: rgba(123,196,136,0.6); background: rgba(10,22,15,0.6);
  box-shadow: 0 0 0 1px rgba(123,196,136,0.25), 0 0 40px -6px rgba(95,201,142,0.5), inset 0 0 40px -16px rgba(95,201,142,0.28); }
.a25-outcomes__item h3 { margin: 0 0 16px; font-size: clamp(18px, 1.5vw, 22px); font-weight: 500; line-height: 1.3; color: #fff; }
.a25-outcomes__item p { margin: 0; font-size: 16px; font-weight: 300; line-height: 1.65; color: rgba(244,244,244,0.72); }
@media (max-width: 1080px) { .a25-outcomes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .a25-outcomes { grid-template-columns: 1fr; gap: 16px; } .a25-outcomes__item { padding: 32px 24px; } }
