/* =================================================================
   K-Well — Conditions hub + condition pages
   Editorial, animated, brand-matched. Loads AFTER styles.css (reuses
   --kw-* tokens, nav, footer, buttons) and site.css.
   ================================================================= */

/* ---------- shared section frame ---------- */
.cx-wrap { background: var(--kw-paper); color: var(--kw-ink); overflow-x: clip; }
.cx-container { width: min(1180px, 92vw); margin: 0 auto; }
.cx-eyebrow {
  font-family: var(--kw-font-display);
  font-size: 13px; letter-spacing: .26em; text-transform: uppercase;
  color: var(--kw-blue); display: inline-flex; align-items: center; gap: 12px;
}
.cx-eyebrow::before { content: ""; width: 26px; height: 1px; background: currentColor; display: inline-block; }
.cx-eyebrow--center { justify-content: center; }

/* ---------- reveal (gated by JS class .cx-armed on <html>) ---------- */
.cx-reveal { opacity: 1; transform: none; }
.cx-armed .cx-reveal { opacity: 0; transform: translateY(26px); transition: opacity .8s cubic-bezier(.2,.7,.18,1), transform .8s cubic-bezier(.2,.7,.18,1); }
.cx-armed .cx-reveal.in { opacity: 1; transform: none; }
.cx-armed .cx-stagger > * { opacity: 0; transform: translateY(22px); transition: opacity .7s cubic-bezier(.2,.7,.18,1), transform .7s cubic-bezier(.2,.7,.18,1); transition-delay: calc(var(--i, 0) * 70ms); }
.cx-armed .cx-stagger.in > * { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .cx-armed .cx-reveal, .cx-armed .cx-stagger > * { transform: none !important; transition: opacity .6s ease; }
}

/* =================================================================
   CONDITION PAGE — hero
   ================================================================= */
.cx-hero {
  position: relative; padding: 168px 0 90px;
  background:
    radial-gradient(120% 80% at 88% -10%, rgba(14,79,142,.10), transparent 60%),
    var(--kw-paper);
  overflow: hidden;
}
.cx-hero__brush {
  position: absolute; top: 40px; right: -2%; font-family: var(--kw-font-brush);
  font-size: clamp(180px, 34vw, 460px); line-height: .8; color: var(--kw-blue);
  opacity: .06; pointer-events: none; user-select: none; white-space: nowrap;
}
.cx-anim .cx-hero__brush, .cx-anim .cx-hubhero__brush { opacity: 0; animation: cxBrushIn 1.5s cubic-bezier(.16,.84,.34,1) .15s both; }
@keyframes cxBrushIn { from { opacity: 0; transform: translateY(-14px) scale(.96); } to { opacity: .12; transform: none; } }
.cx-hero__inner { position: relative; }
.cx-hero__crumb {
  display: inline-flex; gap: 8px; align-items: center; font-family: var(--kw-font-display);
  font-size: 12px; letter-spacing: .22em; text-transform: uppercase; color: var(--kw-stone);
  text-decoration: none; margin-bottom: 30px;
}
.cx-hero__crumb a { color: inherit; text-decoration: none; }
.cx-hero__crumb a:hover { color: var(--kw-blue); }
.cx-hero__cat { display: block; margin-bottom: 16px; }
.cx-hero__title {
  font-family: var(--kw-font-display); font-weight: 400;
  font-size: clamp(40px, 7.2vw, 104px); line-height: .98; letter-spacing: -.01em;
  margin: 0; max-width: 16ch;
}
/* line-by-line mask reveal */
.cx-line { display: block; overflow: hidden; }
.cx-line > span { display: block; transform: translateY(0); }
.cx-anim .cx-line > span { transform: translateY(110%); animation: cxLineUp .9s cubic-bezier(.16,.84,.34,1) both; }
.cx-anim .cx-line:nth-child(2) > span { animation-delay: .12s; }
.cx-anim .cx-line:nth-child(3) > span { animation-delay: .22s; }
@keyframes cxLineUp { from { transform: translateY(110%); } to { transform: translateY(0); } }
.cx-hero__accent { color: var(--kw-blue); font-style: italic; font-family: var(--kw-font-serif); display: inline-block; }
/* hand-drawn brush underline that strokes in under the accent word.
   Painted as the element's own background (not a pseudo) so .cx-line's
   overflow:hidden mask can't clip it. */
.cx-hero__accent, .cx-hubhero__title .em {
  padding-bottom: .12em;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 24' preserveAspectRatio='none'%3E%3Cpath d='M5 15 C 55 6 110 20 158 11 S 248 7 295 14' fill='none' stroke='%236fa8e0' stroke-width='5.5' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: 0 100%; background-size: 100% .3em;
}
.cx-anim .cx-hero__accent, .cx-anim .cx-hubhero__title .em { background-size: 0% .3em; animation: cxUnderline .85s cubic-bezier(.16,.84,.34,1) 1s both; }
@keyframes cxUnderline { from { background-size: 0% .3em; } to { background-size: 100% .3em; } }
.cx-hero__tagline {
  font-family: var(--kw-font-serif); font-size: clamp(18px, 2.2vw, 23px); line-height: 1.55;
  color: var(--kw-stone); max-width: 40ch; margin: 26px 0 0;
}
.cx-anim .cx-hero__tagline { opacity: 0; transform: translateY(14px); animation: cxFadeUp .8s ease .45s both; }
.cx-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }
.cx-anim .cx-hero__cta { opacity: 0; animation: cxFadeUp .8s ease .58s both; }
@keyframes cxFadeUp { from { opacity: 0; } to { opacity: 1; transform: none; } }
.cx-hero__meta {
  display: flex; flex-wrap: wrap; gap: 10px 26px; margin-top: 40px;
  font-family: var(--kw-font-display); font-size: 12.5px; letter-spacing: .12em;
  text-transform: uppercase; color: var(--kw-stone);
}
.cx-anim .cx-hero__meta { opacity: 0; animation: cxFadeUp .8s ease .7s both; }
.cx-hero__meta span { display: inline-flex; align-items: center; gap: 8px; }
.cx-hero__meta span::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--kw-blue); }
@media (prefers-reduced-motion: reduce) {
  .cx-anim .cx-line > span, .cx-anim .cx-hero__tagline, .cx-anim .cx-hero__cta, .cx-anim .cx-hero__meta,
  .cx-anim .cx-hero__brush, .cx-anim .cx-hubhero__brush, .cx-anim .cx-hero__accent,
  .cx-anim .cx-hubhero__title .em, .cx-anim .cx-hubhero .cx-eyebrow, .cx-anim .cx-hubhero__lead {
    transform: none !important; opacity: 1 !important; animation: none !important; background-size: 100% .3em !important;
  }
  .cx-anim .cx-hero__brush, .cx-anim .cx-hubhero__brush { opacity: .12 !important; }
}

/* =================================================================
   CONDITION PAGE — body sections
   ================================================================= */
.cx-sec { padding: 92px 0; border-top: 1px solid rgba(20,17,13,.08); }
.cx-sec--dark { background: var(--kw-ink); color: var(--kw-paper); border-top: none; }
.cx-sec--dark .cx-eyebrow { color: #9cc1e8; }
.cx-sec__head { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: end; margin-bottom: 52px; }
.cx-h2 {
  font-family: var(--kw-font-display); font-weight: 400; font-size: clamp(30px, 4.6vw, 56px);
  line-height: 1.04; letter-spacing: -.01em; margin: 16px 0 0;
}
.cx-h2 .ac { color: var(--kw-blue); }
.cx-sec--dark .cx-h2 .ac { color: #6fa8e0; }
.cx-lead { font-family: var(--kw-font-serif); font-size: clamp(17px,1.9vw,20px); line-height: 1.65; color: var(--kw-stone); }
.cx-sec--dark .cx-lead { color: rgba(243,239,231,.72); }
.cx-prose p { font-family: var(--kw-font-serif); font-size: 18px; line-height: 1.7; color: var(--kw-stone); margin: 0 0 1.1em; max-width: 64ch; }

/* symptoms grid */
.cx-symptoms { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(20,17,13,.1); border: 1px solid rgba(20,17,13,.1); }
.cx-symptom { background: var(--kw-paper); padding: 30px 28px; min-height: 132px; display: flex; flex-direction: column; gap: 10px; transition: background .3s; }
.cx-symptom:hover { background: #fff; }
.cx-symptom__n { font-family: var(--kw-font-display); font-size: 13px; letter-spacing: .2em; color: var(--kw-blue); }
.cx-symptom__t { font-family: var(--kw-font-display); font-size: 20px; line-height: 1.2; }
.cx-symptom__s { font-family: var(--kw-font-serif); font-size: 14.5px; line-height: 1.5; color: var(--kw-stone); }

/* how-it-helps (dark) */
.cx-help { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; }
.cx-help__item { padding-top: 26px; border-top: 2px solid rgba(243,239,231,.25); }
.cx-help__k { font-family: var(--kw-font-brush); font-size: 40px; line-height: 1; color: #6fa8e0; }
.cx-help__t { font-family: var(--kw-font-display); font-size: 22px; margin: 16px 0 10px; }
.cx-help__b { font-family: var(--kw-font-serif); font-size: 16px; line-height: 1.62; color: rgba(243,239,231,.74); }

/* expect steps */
.cx-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; }
.cx-step__n { font-family: var(--kw-font-display); font-size: 56px; line-height: .9; color: rgba(20,17,13,.16); }
.cx-step__t { font-family: var(--kw-font-display); font-size: 19px; margin: 12px 0 8px; }
.cx-step__b { font-family: var(--kw-font-serif); font-size: 15px; line-height: 1.55; color: var(--kw-stone); }

/* related services */
.cx-related { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.cx-rel {
  display: block; text-decoration: none; color: inherit; padding: 26px 24px;
  border: 1px solid rgba(20,17,13,.14); background: var(--kw-paper); transition: all .3s; position: relative;
}
.cx-rel:hover { background: #fff; border-color: var(--kw-blue); transform: translateY(-3px); }
.cx-rel__k { font-family: var(--kw-font-brush); font-size: 28px; color: var(--kw-blue); }
.cx-rel__t { font-family: var(--kw-font-display); font-size: 21px; margin: 10px 0 4px; }
.cx-rel__h { font-family: var(--kw-font-brush); font-size: 14px; color: var(--kw-stone); }
.cx-rel__cta { font-family: var(--kw-font-display); font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--kw-blue); margin-top: 16px; display: inline-flex; gap: 8px; align-items: center; }

/* closing CTA */
.cx-cta { padding: 96px 0; background: var(--kw-ink); color: var(--kw-paper); text-align: center; }
.cx-cta__h { font-family: var(--kw-font-display); font-weight: 400; font-size: clamp(32px, 5.5vw, 64px); line-height: 1.02; margin: 18px 0 0; }
.cx-cta__h .em { color: #6fa8e0; font-style: italic; font-family: var(--kw-font-serif); }
.cx-cta__p { font-family: var(--kw-font-serif); font-size: 18px; line-height: 1.6; color: rgba(243,239,231,.74); max-width: 46ch; margin: 22px auto 34px; }
.cx-cta__row { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.cx-cta__note { font-family: var(--kw-font-display); font-size: 12.5px; letter-spacing: .12em; text-transform: uppercase; color: rgba(243,239,231,.6); margin-top: 22px; }
.cx-cta__note a { color: inherit; }

/* =================================================================
   HUB PAGE
   ================================================================= */
.cx-hubhero { position: relative; padding: 172px 0 70px; overflow: hidden; background: radial-gradient(120% 90% at 85% -10%, rgba(14,79,142,.10), transparent 55%), var(--kw-paper); }
.cx-hubhero__title { font-family: var(--kw-font-display); font-weight: 400; font-size: clamp(44px, 8vw, 120px); line-height: .96; letter-spacing: -.015em; margin: 18px 0 0; }
.cx-hubhero__title .em { color: var(--kw-blue); font-style: italic; font-family: var(--kw-font-serif); display: inline-block; }
.cx-anim .cx-hubhero .cx-eyebrow { opacity: 0; animation: cxFadeUp .8s ease .4s both; }
.cx-anim .cx-hubhero__lead { opacity: 0; transform: translateY(14px); animation: cxFadeUp .8s ease .55s both; }
.cx-hubhero__lead { font-family: var(--kw-font-serif); font-size: clamp(18px,2.1vw,22px); line-height: 1.6; color: var(--kw-stone); max-width: 52ch; margin: 26px 0 0; }
.cx-hubhero__brush { position: absolute; top: 30px; right: -1%; font-family: var(--kw-font-brush); font-size: clamp(160px,30vw,420px); line-height: .8; color: var(--kw-blue); opacity: .06; pointer-events: none; }

/* search/filter bar */
/* Filters (category chips) — sit above the search, scroll away normally */
.cx-chipbar { padding: 26px 0 16px; }
.cx-chipbar__inner { display: flex; }
/* Search bar — static (non-sticky) strip below the filters */
.cx-filter { background: rgba(243,239,231,.9); border-top: 1px solid rgba(20,17,13,.1); border-bottom: 1px solid rgba(20,17,13,.1); }
.cx-filter__inner { display: flex; padding: 16px 0; }
.cx-search {
  flex: 1 1 340px; display: flex; align-items: center; gap: 12px;
  background: #fff; border: 1px solid rgba(20,17,13,.14); padding: 15px 18px;
  box-shadow: 0 6px 22px rgba(20,17,13,.10), 0 0 0 5px rgba(14,79,142,.07);
  transition: box-shadow .26s var(--kw-ease, ease), border-color .26s var(--kw-ease, ease), transform .26s var(--kw-ease, ease);
}
.cx-search:hover {
  border-color: rgba(14,79,142,.34);
  box-shadow: 0 6px 22px rgba(20,17,13,.10), 0 0 0 4px rgba(14,79,142,.08);
}
.cx-search:focus-within {
  border-color: var(--kw-blue);
  box-shadow: 0 10px 30px rgba(14,79,142,.22), 0 0 0 3px rgba(14,79,142,.20);
  transform: translateY(-1px);
}
.cx-search input { flex: 1; border: 0; outline: 0; background: transparent; font-family: var(--kw-font-serif); font-size: 16.5px; color: var(--kw-ink); }
.cx-search input::placeholder { color: var(--kw-stone); }
.cx-search svg { color: var(--kw-stone); flex-shrink: 0; transition: color .26s var(--kw-ease, ease); }
.cx-search:focus-within svg { color: var(--kw-blue); }
.cx-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.cx-chip { font-family: var(--kw-font-display); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; padding: 9px 16px; border: 1px solid rgba(20,17,13,.18); background: transparent; color: var(--kw-stone); cursor: pointer; transition: all .2s; }
.cx-chip:hover { border-color: var(--kw-blue); color: var(--kw-blue); }
.cx-chip.is-active { background: var(--kw-ink); color: var(--kw-paper); border-color: var(--kw-ink); }

.cx-group { padding: 64px 0 8px; }
.cx-group__head { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-bottom: 26px; flex-wrap: wrap; }
.cx-group__title { font-family: var(--kw-font-display); font-weight: 400; font-size: clamp(26px,3.6vw,40px); margin: 10px 0 0; }
.cx-group__count { font-family: var(--kw-font-display); font-size: 13px; letter-spacing: .16em; color: var(--kw-stone); }
.cx-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(258px, 1fr)); gap: 14px; }
.cx-card {
  display: flex; flex-direction: column; gap: 8px; text-decoration: none; color: inherit;
  padding: 26px 24px 22px; border: 1px solid rgba(20,17,13,.13); background: var(--kw-paper);
  position: relative; transition: all .28s; min-height: 150px;
}
.cx-card:hover { background: #fff; border-color: var(--kw-blue); transform: translateY(-3px); box-shadow: 0 16px 40px -24px rgba(14,79,142,.5); }
.cx-card__t { font-family: var(--kw-font-display); font-size: 23px; line-height: 1.12; }
.cx-card__d { font-family: var(--kw-font-serif); font-size: 14.5px; line-height: 1.5; color: var(--kw-stone); flex: 1; }
.cx-card__cta { font-family: var(--kw-font-display); font-size: 11.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--kw-blue); display: inline-flex; gap: 8px; align-items: center; margin-top: 6px; opacity: 0; transform: translateX(-6px); transition: all .28s; }
.cx-card:hover .cx-card__cta { opacity: 1; transform: none; }
.cx-card.is-hidden { display: none; }
.cx-empty { font-family: var(--kw-font-serif); font-size: 18px; color: var(--kw-stone); padding: 30px 0; display: none; }

/* "also treat" — 2×2 grid of category cells */
.cx-also { padding: 40px 0 90px; }
.cx-also__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: rgba(20,17,13,.12); border: 1px solid rgba(20,17,13,.12); }
.cx-also__cell { background: var(--kw-paper); padding: 26px 28px; }
.cx-also__cat { font-family: var(--kw-font-display); font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--kw-ink); margin: 0 0 8px; }
.cx-also__items { font-family: var(--kw-font-serif); font-size: 15.5px; line-height: 1.8; color: var(--kw-stone); margin: 0; }

/* ---------- responsive ---------- */
@media (max-width: 860px) {
  .cx-sec__head { grid-template-columns: 1fr; gap: 16px; }
  .cx-symptoms { grid-template-columns: repeat(2, 1fr); }
  .cx-help { grid-template-columns: 1fr; gap: 28px; }
  .cx-steps { grid-template-columns: repeat(2, 1fr); gap: 24px; }
  .cx-hero { padding: 138px 0 70px; }
  .cx-hubhero { padding: 138px 0 56px; }
}
@media (max-width: 520px) {
  .cx-symptoms { grid-template-columns: 1fr; }
  .cx-steps { grid-template-columns: 1fr; }
  .cx-also__grid { grid-template-columns: 1fr; }
}

/* =================================================================
   DARK HERO — condition hub + detail pages
   Heros render on ink so the transparent white wordmark nav (the same
   one used on the homepage) sits over them legibly, then resolves into
   the solid bar on scroll. Palette matches the existing .cx-sec--dark.
   ================================================================= */
.cx-hero,
.cx-hubhero {
  background:
    radial-gradient(120% 85% at 86% -12%, rgba(36, 110, 186, .42), transparent 58%),
    radial-gradient(90% 70% at 8% 120%, rgba(14, 79, 142, .28), transparent 60%),
    var(--kw-ink);
  color: var(--kw-paper);
}
/* Brush mark: blue, a touch more present on the dark ground */
.cx-hero__brush,
.cx-hubhero__brush { color: #6fa8e0; opacity: .12; }
/* Eyebrows / breadcrumbs */
.cx-hero .cx-eyebrow,
.cx-hubhero .cx-eyebrow { color: #9cc1e8; }
.cx-hero__crumb { color: rgba(243, 239, 231, .58); }
.cx-hero__crumb a:hover { color: #9cc1e8; }
/* Breadcrumb: chevron separators + emphasized current page */
.cx-hero__crumb { gap: 10px; flex-wrap: wrap; }
.cx-hero__crumb a { transition: color var(--kw-dur, .2s) var(--kw-ease, ease); }
.cx-hero__crumb-sep { display: inline-flex; align-items: center; opacity: .42; }
.cx-hero__crumb-sep svg { width: 13px; height: 13px; }
.cx-hero__crumb-now {
  color: var(--kw-paper);
  padding-bottom: 3px;
  box-shadow: inset 0 -2px 0 #6fa8e0;
}
/* Headlines + accents */
.cx-hero__title,
.cx-hubhero__title { color: var(--kw-paper); }
.cx-hero__accent,
.cx-hubhero__title .em { color: #6fa8e0; }
/* Body copy */
.cx-hero__tagline,
.cx-hubhero__lead { color: rgba(243, 239, 231, .74); }
/* Meta row */
.cx-hero__meta { color: rgba(243, 239, 231, .6); }
.cx-hero__meta span::before { background: #6fa8e0; }
/* Buttons adapt to the dark ground (paper-fill primary, light-outline ghost) */
.cx-hero .btn--primary { background: var(--kw-paper); color: var(--kw-ink); }
.cx-hero .btn--primary:hover { background: #fff; }
.cx-hero .btn--ghost { border-color: rgba(255, 255, 255, .45); color: var(--kw-paper); }
.cx-hero .btn--ghost:hover { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .7); }

/* =================================================================
   HUB HERO — fancy landing (conditions.html only; not the subpages)
   Layered ambient: drifting aurora + acupuncture-meridian constellation
   that draws in with pulsing needle-points, ink-bleed brush, parallax.
   ================================================================= */
.cx-hubhero { isolation: isolate; }
.cx-hubhero > .cx-container { position: relative; z-index: 3; }
.cx-hubhero__brush { z-index: 2; }

/* slow-drifting aurora glow */
.cx-hubhero__aura {
  position: absolute; inset: -25% -12%; z-index: 0; pointer-events: none;
  background:
    radial-gradient(36% 48% at 79% 16%, rgba(58, 132, 210, .50), transparent 60%),
    radial-gradient(34% 46% at 12% 96%, rgba(14, 79, 142, .42), transparent 62%),
    radial-gradient(28% 38% at 58% 74%, rgba(92, 158, 224, .22), transparent 60%);
  filter: blur(10px);
  will-change: transform;
}
.cx-anim .cx-hubhero__aura { animation: cxAura 19s ease-in-out infinite alternate; }
@keyframes cxAura {
  0%   { transform: translate3d(0, 0, 0) scale(1); }
  50%  { transform: translate3d(-3.5%, 2.5%, 0) scale(1.09); }
  100% { transform: translate3d(2.5%, -2%, 0) scale(1.05); }
}

/* meridian constellation */
.cx-hubhero__mesh {
  position: absolute; inset: 0; width: 100%; height: 100%;
  z-index: 1; pointer-events: none; overflow: visible;
  -webkit-mask-image: radial-gradient(75% 75% at 80% 35%, #000 35%, transparent 85%);
          mask-image: radial-gradient(75% 75% at 80% 35%, #000 35%, transparent 85%);
}
.cx-hubhero__mesh .ln { stroke-width: 1; opacity: .3; stroke-dasharray: 1; stroke-dashoffset: 1; }
.cx-anim .cx-hubhero__mesh .ln { animation: cxDraw 1.5s cubic-bezier(.45,.05,.3,1) both; }
@keyframes cxDraw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }

.cx-hubhero__mesh .nd { fill: #9cc1e8; transform-box: fill-box; transform-origin: center; filter: drop-shadow(0 0 5px rgba(124,176,228,.8)); }
.cx-anim .cx-hubhero__mesh .nd { opacity: 0; transform: scale(0); animation: cxNode .6s cubic-bezier(.2,1.4,.4,1) both; }
@keyframes cxNode { from { opacity: 0; transform: scale(0); } to { opacity: .95; transform: scale(1); } }

.cx-hubhero__mesh .rg { fill: none; stroke: #6fa8e0; stroke-width: 1.2; transform-box: fill-box; transform-origin: center; opacity: 0; }
.cx-anim .cx-hubhero__mesh .rg { animation: cxRipple 4.2s ease-out infinite; }
@keyframes cxRipple {
  0%   { transform: scale(.35); opacity: .55; }
  70%  { opacity: 0; }
  100% { transform: scale(3.6); opacity: 0; }
}

/* ink-bleed brush entrance — richer than the subpages' brush */
.cx-anim .cx-hubhero__brush { opacity: 0; animation: cxInk 2s cubic-bezier(.16,.84,.34,1) .1s both; }
@keyframes cxInk {
  0%   { opacity: 0; filter: blur(24px); transform: scale(1.2) rotate(-3deg); }
  55%  { opacity: .16; }
  100% { opacity: .12; filter: blur(0); transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .cx-anim .cx-hubhero__aura, .cx-anim .cx-hubhero__mesh .ln,
  .cx-anim .cx-hubhero__mesh .nd, .cx-anim .cx-hubhero__mesh .rg,
  .cx-anim .cx-hubhero__brush {
    animation: none !important; transform: none !important;
  }
  .cx-hubhero__mesh .ln { stroke-dashoffset: 0; }
  .cx-hubhero__mesh .nd { opacity: .9; }
  .cx-hubhero__mesh .rg { opacity: 0; }
}
