/* Inner pages A: about, services, contact, thanks, 404.
   AIS vocabulary on top of site.css: chip + two-tone .h2, framed panels (28px),
   cards on #0f1012 (20-22px), pill buttons, mono labels, near-black, mint as accent only.
   Prefixes: pa- (shared by these pages), about-, svc-, ct-. Nothing here restyles [data-sc-*]. */

/* ------------------------------------------------------------ shared --- */
.pa-hero--short { min-height: 560px; padding-bottom: 200px; }
.page-hero__copy .chip { margin-bottom: 4px; }
.page-hero__copy h1 { color: #f7f8fa; }

.pa-s { padding: 110px 0; background: var(--bg); position: relative; }
.pa-s--flush { padding-top: 20px; }
.pa-s .section-head .h2 { margin-top: 18px; }

/* framed grid of cards (the AIS panel with inset cards) */
.pa-grid { display: grid; gap: 10px; padding: 10px; border-radius: var(--r-lg); background: #0a0b0d; border: 1px solid var(--line); box-shadow: var(--ring), 0 50px 100px -50px rgba(0,0,0,.9); }
ul.pa-grid, ol.pa-grid { list-style: none; margin: 0; }
.pa-grid > li > .pa-card { height: 100%; }
.pa-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pa-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pa-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pa-card { position: relative; display: flex; flex-direction: column; gap: 14px; padding: 28px; border-radius: 20px; background: #0f1012; color: inherit; text-decoration: none; }
.pa-card h3 { font-size: 20px; line-height: 1.3; letter-spacing: -.02em; font-weight: 500; }
.pa-card p { font-size: 14.5px; line-height: 22px; color: var(--fg-2); text-wrap: pretty; }
.pa-card p a { color: var(--fg); }
a.pa-card { transition: transform .35s var(--ease), background .3s; }
a.pa-card:hover { transform: translateY(-3px); background: #131417; }
.pa-card__go { margin-top: auto; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--fg-2); transition: color .2s; }
.pa-card__go .icon { width: 16px; height: 16px; transition: transform .3s var(--ease); }
a.pa-card:hover .pa-card__go { color: var(--fg); }
a.pa-card:hover .pa-card__go .icon { transform: translateX(4px); }
.pa-ico { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.06); border: 1px solid var(--line); color: var(--fg); flex: none; }
.pa-ico .icon { width: 18px; height: 18px; }
.pa-ico--lit { background: rgba(71,255,140,.12); border-color: rgba(71,255,140,.22); color: var(--accent); }
.pa-dotlabel { display: inline-flex; align-items: center; gap: 10px; font-size: 14px; color: var(--fg-3); }

/* deck: the AIS two-column card (copy + lit media) */
.pa-deck { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 600px; border-radius: var(--r-lg); overflow: clip; background: #0b0c0e; border: 1px solid var(--line); box-shadow: var(--ring), 0 50px 100px -50px rgba(0,0,0,.9); }
.pa-deck--flip .pa-deck__copy { order: 2; }
.pa-deck__copy { padding: 52px 48px 44px; display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.pa-deck__title { font-size: 32px; line-height: 40px; letter-spacing: -.03em; font-weight: 500; max-width: 16ch; margin-top: 24px; }
.pa-deck__p { font-size: 17px; line-height: 26px; letter-spacing: -.01em; color: var(--fg); max-width: 42ch; text-wrap: pretty; }
.pa-deck__foot { margin-top: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
.pa-deck__media { position: relative; margin: 8px; border-radius: 22px; overflow: clip; background: #0f1012; display: grid; grid-template-columns: minmax(0, 1fr); place-items: center; align-content: center; gap: 12px; padding: 40px; min-height: 420px; }
.pa-deck__media::before { content: ""; position: absolute; inset: 0; background:
  url("/assets/img/ridge-mid.svg") 50% 100% / 180% auto no-repeat,
  radial-gradient(80% 60% at 50% 110%, rgba(29,107,82,.9), rgba(18,26,25,.9) 60%, #0d0f0f 100%); }
.pa-deck__media--warm::before { background: url("/assets/img/ridge-mid.svg") 50% 100% / 180% auto no-repeat, radial-gradient(80% 70% at 30% 0%, rgba(228,84,47,.3), transparent 60%), radial-gradient(80% 60% at 50% 110%, rgba(29,107,82,.8), #0d0f0f 70%); }
.pa-deck__media--blue::before { background: url("/assets/img/ridge-mid.svg") 50% 100% / 180% auto no-repeat, radial-gradient(80% 70% at 70% 0%, rgba(0,92,190,.38), transparent 60%), radial-gradient(80% 60% at 50% 110%, rgba(29,107,82,.8), #0d0f0f 70%); }
.pa-deck__media > * { position: relative; }
.pa-shot { width: 86%; height: auto; border-radius: 14px; box-shadow: 0 40px 80px -30px rgba(0,0,0,.9), 0 0 0 1px rgba(255,255,255,.1); }
.pa-cap { position: absolute; left: 16px; right: 16px; bottom: 16px; padding: 12px 16px; border-radius: 14px; background: rgba(7,9,9,.72); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,.08); font-size: 13px; color: rgba(255,255,255,.82); }

/* check list (plan-style rows) */
.pa-checks { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; font-size: 14px; }
.pa-checks li { display: flex; align-items: center; gap: 12px; min-height: 46px; padding: 7px 0; border-bottom: 1px solid var(--line); color: var(--fg); }
.pa-checks .icon { flex: none; width: 22px; height: 22px; padding: 5px; border-radius: 50%; background: rgba(71,255,140,.14); color: var(--accent); }
.pa-checks--one { grid-template-columns: 1fr; }

/* glass stat card on lit media (results as reported by clients) */
.pa-stat { width: min(100%, 380px); padding: 22px 24px; border-radius: 18px; background: rgba(7,10,10,.82); border: 1px solid rgba(255,255,255,.1); box-shadow: 0 40px 80px -30px rgba(0,0,0,.9); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); display: grid; gap: 4px; }
.pa-stat__who { font-family: var(--sc-font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }
.pa-stat__n { margin-top: 10px; font-size: 44px; line-height: 1; letter-spacing: -.04em; font-weight: 400; color: var(--fg); font-variant-numeric: tabular-nums; }
.pa-stat__l { font-size: 15px; color: var(--fg); }
.pa-stat__what { margin-top: 8px; font-size: 13px; line-height: 19px; color: var(--fg-2); }
.pa-note { font-size: 12.5px; color: var(--fg-3); }
.pa-deck__media .pa-note { color: rgba(255,255,255,.6); }
.pa-stats-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.pa-stats-row .pa-stat { width: auto; background: #111214; box-shadow: none; border-color: var(--line); backdrop-filter: none; -webkit-backdrop-filter: none; }

/* close band: copy left, a card right, ridges and a green glow at the bottom */
.pa-close { position: relative; padding: 150px 0 300px; background: linear-gradient(180deg, var(--bg) 0%, #101615 100%); overflow: clip; isolation: isolate; }
.pa-close__in { position: relative; z-index: 6; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 440px); gap: 40px 80px; align-items: center; }
.pa-close__copy .h2 { margin-top: 18px; font-size: 40px; line-height: 54px; }
.pa-close__copy p { margin-top: 24px; font-size: 16px; line-height: 24px; color: var(--fg-2); max-width: 40ch; }
.pa-close__copy .btn-row { margin-top: 40px; }
.pa-close .btn .icon { width: 18px; height: 18px; }
.pa-close__card { padding: 26px 28px 14px; border-radius: var(--r-lg); background: rgba(10,11,13,.82); border: 1px solid var(--line); box-shadow: var(--ring), 0 50px 100px -40px rgba(0,0,0,.9); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.pa-close__card .mono-label { padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.pa-rows { list-style: none; margin: 0; padding: 0; }
.pa-rows li { border-bottom: 1px solid var(--line); }
.pa-rows li:last-child { border-bottom: 0; }
.pa-rows a, .pa-rows .pa-rows__static { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 14px; align-items: center; min-height: 72px; padding: 12px 0; text-decoration: none; color: inherit; }
.pa-rows__k { display: block; font-size: 12.5px; color: var(--fg-3); line-height: 1.3; }
.pa-rows__v { display: block; font-size: 15px; color: var(--fg); line-height: 1.4; overflow-wrap: anywhere; }
.pa-rows__go { width: 18px; height: 18px; color: var(--fg-3); transition: transform .3s var(--ease), color .2s; }
@media (hover: hover) and (pointer: fine) {
  .pa-rows a:hover .pa-rows__go { transform: translateX(3px); color: var(--fg); }
  .pa-rows a:hover .pa-ico { background: rgba(255,255,255,.1); }
}
.pa-close__glow { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; height: 560px; background: radial-gradient(70% 70% at 50% 100%, rgba(29,107,82,.75), rgba(18,26,25,.4) 55%, transparent 80%); pointer-events: none; }
.pa-close__layer { position: absolute; left: 50%; width: max(1440px, 100%); height: auto; max-width: none; transform: translateX(-50%); pointer-events: none; }
.pa-close__layer--mid { z-index: 2; bottom: -30px; opacity: .9; }
.pa-close__layer--front { z-index: 3; bottom: -140px; }
.pa-close::after { content: ""; position: absolute; z-index: 4; left: 0; right: 0; bottom: 0; height: 240px; background: linear-gradient(180deg, rgba(5,5,6,0) 0%, rgba(5,5,6,.6) 45%, var(--bg) 88%); pointer-events: none; }

/* ------------------------------------------------------------- about --- */
.about-intro { padding: 150px 0 90px; }
.about-intro__in { max-width: 720px; margin: 0 auto; padding-inline: 24px; }
.about-intro .h2 { margin-top: 22px; }
.about-intro__p { margin-top: 30px; font-size: 26px; line-height: 35px; letter-spacing: -.03em; color: var(--fg-2); text-wrap: pretty; }
.about-intro__p:first-of-type { margin-top: 44px; color: var(--fg); }

.about-stats { list-style: none; margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 10px; gap: 10px; border-radius: var(--r-lg); background: #0a0b0d; border: 1px solid var(--line); box-shadow: var(--ring); }
.about-stats li { padding: 30px 28px 26px; border-radius: 20px; background: #0f1012; display: grid; gap: 10px; }
.about-stats__n { font-size: 56px; line-height: 1; letter-spacing: -.05em; font-weight: 400; color: var(--fg); font-variant-numeric: tabular-nums; }
.about-stats__l { font-size: 14px; color: var(--fg-2); }

.about-values .pa-card { min-height: 240px; }
.about-values .pa-card h3 { margin-top: 26px; }
.about-values .about-join { background: linear-gradient(160deg, rgba(29,107,82,.35), rgba(15,16,18,1) 65%); }

.about-deck .pa-deck__media { padding: 0; }
.about-deck__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 40% 50%; }

.about-press .pa-card { min-height: 260px; gap: 18px; }
.pa-pub { font-family: var(--sc-font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }
.about-press h3 { font-size: 19px; line-height: 26px; }


/* ---------------------------------------------------------- services --- */
.svc-index { margin-top: 18px; }
.svc-index ul { list-style: none; margin: 0; padding: 6px; display: flex; flex-wrap: wrap; justify-content: center; gap: 4px; border-radius: 28px; background: rgba(11,12,14,.7); border: 1px solid var(--line); box-shadow: var(--ring); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.svc-index a { display: inline-flex; align-items: center; height: 40px; padding: 0 16px; border-radius: 999px; font-size: 14px; color: var(--fg-2); text-decoration: none; transition: background .25s, color .25s; }
.svc-index a:hover { background: #1a1b1e; color: var(--fg); }

.svc + .svc { padding-top: 40px; }
.svc__who { font-size: 14px; line-height: 21px; color: var(--fg-2); max-width: 48ch; }
.svc__who strong { color: var(--fg); font-weight: 500; }
.svc .pa-deck { min-height: 640px; }
.svc .pa-deck__copy { gap: 26px; }
.svc .pa-deck__p { max-width: 44ch; }
.svc .pa-deck__copy > .pa-dotlabel + .pa-deck__p { margin-top: 6px; }
.svc-sub { font-family: var(--sc-font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--fg-3); font-weight: 400; margin-bottom: 4px; }
.svc-media--tall { min-height: 560px; }
.svc-phones { width: 64%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 48%; }
.svc-collage { width: auto; height: 100%; max-height: 640px; max-width: 72%; aspect-ratio: 1080 / 1920; object-fit: cover; }
.svc-brandcap { display: grid; gap: 10px; }
.svc-brandcap h3 { font-size: 16px; font-weight: 500; letter-spacing: -.01em; color: #fff; }
.svc-brandcap .label-schema { font-size: 13px; }
.svc-brandcap .label-schema dt { color: rgba(255,255,255,.55); }
.svc-brandcap .label-schema dd { color: rgba(255,255,255,.85); }
.svc-brand .pa-deck__media { padding-bottom: 120px; }

/* hosting pointer: a wide panel */
.svc-host { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 48px; align-items: center; padding: 40px 44px; border-radius: var(--r-lg); background: linear-gradient(120deg, rgba(29,107,82,.28), rgba(10,11,13,1) 55%); border: 1px solid var(--line); box-shadow: var(--ring); }
.svc-host h2 { margin-top: 14px; font-size: 28px; line-height: 36px; letter-spacing: -.03em; font-weight: 500; }
.svc-host p { margin-top: 10px; color: var(--fg-2); max-width: 58ch; }

/* process: four phase cards */
.svc-time { list-style: none; margin: 0; }
.svc-time li { min-height: 250px; }
.svc-time__n { display: inline-flex; align-items: center; gap: 10px; font-family: var(--sc-font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--fg-2); }
.svc-time li h3 { margin-top: 30px; }

/* payment cards */
.svc-pay .pa-card { min-height: 220px; }
.pa-card .mono-label { font-size: 11px; line-height: 1.4; color: var(--fg-2); }
.pa-card .svc-pay__big { font-size: 44px; line-height: 1; letter-spacing: -.04em; font-weight: 400; color: var(--fg); margin-top: 18px; font-variant-numeric: tabular-nums; }
.svc-pay__big span { color: var(--fg-3); }

/* FAQ */
.pa-faq { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 48px; align-items: start; }
.pa-faq__side { position: sticky; top: 100px; padding: 32px; border-radius: 22px; background: #0b0c0e; border: 1px solid var(--line); box-shadow: var(--ring); display: grid; gap: 14px; justify-items: start; }
.pa-faq__side h3 { font-size: 22px; font-weight: 500; letter-spacing: -.02em; }
.pa-faq__side p { font-size: 14px; line-height: 21px; color: var(--fg-2); }
.pa-faq__side .btn { margin-top: 8px; }
details.qa > div { display: grid; gap: 12px; }
details.qa > div p { color: var(--fg-2); }

/* ----------------------------------------------------------- contact --- */
.ct { padding-top: 40px; }
.ct-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.ct-form-wrap { padding: 40px 36px 36px; display: grid; gap: 30px; }
.ct-form-wrap .h2 { margin-top: 16px; font-size: 32px; line-height: 40px; }
.ct-form-wrap .lede { margin-top: 14px; font-size: 15px; line-height: 23px; }
.ct-form-wrap .form { gap: 18px; }
.ct-form-wrap .field select { height: 50px; }
.ct-req { font-size: 13px; color: var(--fg-3); }
.ct-form__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 22px; padding-top: 6px; }
.ct-privacy { font-size: 13px; color: var(--fg-2); max-width: 40ch; }
.ct-privacy a { color: var(--fg); }

.ct-aside { display: grid; gap: 20px; position: sticky; top: calc(var(--header-h) + 24px); }
.ct-card { padding: 28px 28px 20px; border-radius: var(--r-lg); background: #0a0b0d; border: 1px solid var(--line); box-shadow: var(--ring); }
.ct-card h2 { font-size: 20px; font-weight: 500; letter-spacing: -.02em; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.ct-card .btn { margin-top: 14px; width: 100%; }
.ct-social { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.ct-social a { display: inline-flex; align-items: center; gap: .5em; height: 40px; padding: 0 16px; border-radius: 999px; background: rgba(255,255,255,.05); border: 1px solid var(--line); color: var(--fg-2); font-size: 13px; text-decoration: none; transition: background .2s, color .2s; }
.ct-social a:hover { background: rgba(255,255,255,.1); color: var(--fg); }
.ct-social .icon { width: 14px; height: 14px; }

.ct-next { list-style: none; margin: 0; padding: 0; }
.ct-next li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.ct-next li:last-child { border-bottom: 0; }
.ct-next__n { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.06); border: 1px solid var(--line); font: 500 12px/1 var(--sc-font-mono); color: var(--fg); font-variant-numeric: tabular-nums; }
.ct-next h3 { font-size: 15px; font-weight: 500; letter-spacing: -.01em; line-height: 1.4; padding-top: 4px; }
.ct-next p { margin-top: 4px; font-size: 13.5px; line-height: 20px; color: var(--fg-2); }
.ct-next li.is-done .ct-next__n { background: rgba(71,255,140,.14); border-color: rgba(71,255,140,.25); color: var(--accent); }
.ct-next li.is-done .ct-next__n .icon { width: 15px; height: 15px; }

/* thanks: the four steps as cards */
.ct-steps { list-style: none; margin: 0; }
.ct-steps li { min-height: 220px; }
.ct-steps .ct-next__n { width: 40px; height: 40px; font-size: 13px; }
.ct-steps li h3 { margin-top: 22px; }
.ct-steps li.is-done { background: linear-gradient(160deg, rgba(29,107,82,.35), #0f1012 65%); }
.ct-steps li.is-done .ct-next__n { background: rgba(71,255,140,.14); border-color: rgba(71,255,140,.25); color: var(--accent); }
.ct-steps li.is-done .ct-next__n .icon { width: 17px; height: 17px; }

/* ------------------------------------------------------ thanks / 404 --- */
.pa-links .pa-card { min-height: 210px; }
.pa-links .pa-card h3 { margin-top: 22px; }
.pa-after { margin-top: 28px; color: var(--fg-2); }

/* ----------------------------------------------------------- responsive -- */
@media (max-width: 1100px) {
  .pa-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pa-faq { grid-template-columns: 1fr; gap: 24px; }
  .pa-faq__side { position: static; order: 2; }
  .pa-close__in { grid-template-columns: 1fr; }
  .pa-close__card { max-width: 520px; }
}
@media (max-width: 960px) {
  .ct-grid { grid-template-columns: 1fr; }
  .ct-aside { position: static; }
}
@media (max-width: 900px) {
  .pa-s { padding: 80px 0; }
  .pa-s--flush { padding-top: 10px; }
  .about-intro { padding: 100px 0 50px; }
  .about-intro__p { font-size: 21px; line-height: 29px; }
  .about-stats__n { font-size: 44px; }
  .pa-grid--3 { grid-template-columns: 1fr; }
  .pa-deck, .svc .pa-deck { grid-template-columns: 1fr; min-height: 0; }
  .pa-deck--flip .pa-deck__copy { order: 0; }
  .pa-deck__copy { padding: 32px 26px 28px; gap: 20px; }
  .pa-deck__title { margin-top: 14px; font-size: 26px; line-height: 32px; }
  .pa-deck__p { font-size: 16px; line-height: 24px; }
  .pa-deck__media { min-height: 340px; padding: 28px 20px; }
  .about-deck .pa-deck__media { min-height: 380px; }
  .svc-media--tall { min-height: 480px; }
  .svc-collage { max-height: 440px; }
  .svc-brand .pa-deck__media { padding-bottom: 130px; }
  .svc-host { grid-template-columns: 1fr; padding: 30px 26px; }
  .svc-host h2 { font-size: 24px; line-height: 31px; }
  .pa-close { padding: 110px 0 230px; }
  .pa-close__copy .h2 { font-size: 32px; line-height: 42px; }
  .pa-close__copy .btn-row { margin-top: 30px; }
  .pa-close__layer { width: 1100px; }
  .pa-close__layer--mid { bottom: 10px; }
  .pa-close__layer--front { bottom: -90px; }
  .pa-close::after { height: 180px; }
  .pa-close__glow { height: 420px; }
  .ct-form-wrap { padding: 28px 20px 24px; }
  .ct-form-wrap .h2 { font-size: 26px; line-height: 33px; }
  .ct-card { padding: 24px 20px 16px; }
}
@media (max-width: 640px) {
  .pa-grid--2, .pa-grid--4 { grid-template-columns: 1fr; }
  .about-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pa-card .svc-pay__big { font-size: 36px; }
  .about-stats li { padding: 22px 18px; }
  .about-stats__n { font-size: 38px; }
  .pa-checks { grid-template-columns: 1fr; }
  .pa-card { padding: 24px 22px; }
  .about-values .pa-card, .about-press .pa-card, .svc-time li, .svc-pay .pa-card, .ct-steps li, .pa-links .pa-card { min-height: 0; }
  .about-values .pa-card h3, .svc-time li h3, .ct-steps li h3, .pa-links .pa-card h3 { margin-top: 14px; }
  .pa-close__card { padding: 22px 20px 10px; }
  .pa-close .btn-row .btn { width: 100%; }
  .ct-form__foot .btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  a.pa-card, a.pa-card .icon, .pa-rows__go { transition: none; }
  a.pa-card:hover { transform: none; }
}

/* ---------------------------------------- about additions (ab-), 2026 profile --- */
/* Where we deliver: dot map in a lit panel */
.ab-map { padding: 10px; border-radius: var(--r-lg); background: #0a0b0d; border: 1px solid var(--line); box-shadow: var(--ring), 0 50px 100px -50px rgba(0,0,0,.9); }
.ab-map__stage { position: relative; overflow: clip; isolation: isolate; padding: 52px 44px 44px; border-radius: 20px; background:
  radial-gradient(40% 60% at 67% 38%, rgba(71,255,140,.09), transparent 70%),
  radial-gradient(90% 70% at 50% 115%, rgba(29,107,82,.6), rgba(15,16,18,1) 72%), #0f1012; }
.ab-map__frame { position: relative; aspect-ratio: 146 / 53; }
.ab-map__svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; overflow: visible; }
.ab-map__svg path { fill: none; stroke: rgba(255,255,255,.2); stroke-width: .58; stroke-linecap: round; }
.ab-pin { position: absolute; width: 0; height: 0; }
.ab-pin i { position: absolute; left: -4px; top: -4px; width: 8px; height: 8px; border-radius: 50%; background: #f4f5f7; box-shadow: 0 0 0 3px rgba(255,255,255,.1), 0 0 10px rgba(255,255,255,.45); }
.ab-pin b { position: absolute; top: -11px; white-space: nowrap; font-size: 12px; font-weight: 500; line-height: 20px; padding: 0 9px; border-radius: 999px; background: rgba(7,9,9,.8); border: 1px solid rgba(255,255,255,.1); color: var(--fg); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.ab-pin--r b { left: 12px; }
.ab-pin--l b { right: 12px; }
.ab-pin--hq i { left: -6px; top: -6px; width: 12px; height: 12px; background: var(--accent); box-shadow: 0 0 0 4px rgba(71,255,140,.18), 0 0 20px 5px rgba(71,255,140,.55); }
.ab-pin--hq i::after { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 1px solid rgba(71,255,140,.65); animation: ab-ping 2.8s var(--ease) infinite; }
.ab-pin--hq b { left: 16px; background: rgba(9,28,18,.85); border-color: rgba(71,255,140,.32); color: var(--accent); }
@keyframes ab-ping { 0% { transform: scale(.5); opacity: 1; } 100% { transform: scale(2.8); opacity: 0; } }
.ab-map__list { list-style: none; margin: 10px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.ab-map__list li { display: flex; align-items: center; gap: 12px; min-height: 58px; padding: 14px 18px; border-radius: 16px; background: #0f1012; font-size: 14.5px; color: var(--fg); }
.ab-map__dot { width: 7px; height: 7px; border-radius: 50%; background: rgba(255,255,255,.75); flex: none; }
.ab-map__list .is-hq .ab-map__dot { background: var(--accent); box-shadow: 0 0 8px rgba(71,255,140,.7); }
.ab-map__list em { margin-left: auto; font-style: normal; font-size: 11px; font-weight: 500; height: 22px; display: inline-flex; align-items: center; padding: 0 9px; border-radius: 999px; background: rgba(71,255,140,.14); color: var(--accent); }

/* Trusted by: client logos on white tiles */
.ab-logos { list-style: none; margin: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; padding: 10px; border-radius: var(--r-lg); background: #0a0b0d; border: 1px solid var(--line); box-shadow: var(--ring), 0 50px 100px -50px rgba(0,0,0,.9); }
.ab-logos li { display: grid; place-items: center; aspect-ratio: 1; padding: 24px; border-radius: 20px; background: #0f1012; }
.ab-logos img { width: 100%; max-width: 112px; height: auto; border-radius: 18px; box-shadow: 0 0 0 1px rgba(255,255,255,.08), 0 24px 40px -24px rgba(0,0,0,.9); }
.ab-logos .ab-logos__more { align-content: center; gap: 6px; text-align: center; font-size: 13px; line-height: 1.35; color: var(--fg-2); background: linear-gradient(160deg, rgba(29,107,82,.38), #0f1012 68%); }
.ab-logos__n { font-size: 40px; line-height: 1; letter-spacing: -.05em; color: var(--fg); font-variant-numeric: tabular-nums; }

/* Press: publication logos on white tiles, four linked */
.ab-press { list-style: none; margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; padding: 10px; border-radius: var(--r-lg); background: #0a0b0d; border: 1px solid var(--line); box-shadow: var(--ring), 0 50px 100px -50px rgba(0,0,0,.9); }
.ab-press__item { height: 100%; display: flex; flex-direction: column; gap: 4px; padding: 10px 10px 18px; border-radius: 20px; background: #0f1012; color: inherit; text-decoration: none; }
a.ab-press__item { transition: transform .35s var(--ease), background .3s; }
a.ab-press__item:hover { transform: translateY(-3px); background: #131417; }
.ab-press__tile { height: 120px; margin-bottom: 12px; border-radius: 14px; background: #fff; display: grid; place-items: center; overflow: hidden; box-shadow: 0 0 0 1px rgba(255,255,255,.08); }
.ab-press__tile img { width: 116px; height: 116px; }
.ab-press__name { padding: 0 8px; font-size: 15px; line-height: 1.3; letter-spacing: -.01em; color: var(--fg); }
.ab-press__go { padding: 0 8px; display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--accent); }
.ab-press__go .icon { width: 14px; height: 14px; transition: transform .3s var(--ease); }
a.ab-press__item:hover .ab-press__go .icon { transform: translate(2px, -2px); }
.ab-press__go--quiet { color: var(--fg-3); }

/* community: two sponsored clubs, each a photo mosaic over its details */
.ab-clubs { list-style: none; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 10px; border-radius: var(--r-lg); background: #0a0b0d; border: 1px solid var(--line); box-shadow: var(--ring), 0 50px 100px -50px rgba(0,0,0,.9); }
.ab-clubs > li { display: flex; min-width: 0; }
.ab-club { flex: 1; display: flex; flex-direction: column; overflow: clip; border-radius: 20px; background: #0f1012; }
.ab-club--gdg { background: linear-gradient(180deg, #0f1012 55%, rgba(66,133,244,.14)); }
.ab-club--canva { background: linear-gradient(180deg, #0f1012 55%, rgba(125,42,232,.16)); }
.ab-club__photos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding: 6px; }
.ab-club__photos img { display: block; width: 100%; height: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 14px; background: #16171a; }
.ab-club__photos .ab-club__main { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
.ab-club--canva .ab-club__main { object-position: 50% 30%; }
.ab-club__body { display: flex; flex-direction: column; gap: 12px; padding: 22px 24px 26px; flex: 1; }
.ab-club__k { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.ab-club__badge { display: inline-flex; align-items: center; height: 22px; padding: 0 9px; border-radius: 999px; background: rgba(71,255,140,.14); color: var(--accent); font-size: 11px; font-weight: 500; }
.ab-club h3 { font-size: 22px; line-height: 1.25; letter-spacing: -.025em; font-weight: 500; }
.ab-club__body > p:not(.ab-club__k) { font-size: 14.5px; line-height: 22px; color: var(--fg-2); text-wrap: pretty; }
.ab-club__tags { list-style: none; margin: auto 0 0; padding: 6px 0 0; display: flex; flex-wrap: wrap; gap: 6px; }
.ab-club__tags li { display: inline-flex; align-items: center; min-height: 28px; padding: 3px 11px; border-radius: 999px; background: rgba(255,255,255,.05); border: 1px solid var(--line); font-size: 12.5px; color: var(--fg); }
@media (max-width: 900px) {
  .ab-clubs { grid-template-columns: 1fr; }
  .ab-club__body { padding: 20px 18px 22px; }
}

@media (max-width: 1100px) {
  .ab-press { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ab-logos { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .ab-map__stage { padding: 30px 18px 26px; }
  .ab-map__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ab-pin b { font-size: 11px; line-height: 18px; top: -10px; padding: 0 7px; }
}
@media (max-width: 640px) {
  .ab-map { padding: 8px; }
  .ab-map__stage { padding: 30px 0 34px; }
  .ab-map__frame { width: 165%; margin-left: -13%; }
  .ab-pin b { font-size: 10px; line-height: 16px; top: -9px; padding: 0 6px; }
  .ab-pin--r b { left: 9px; }
  .ab-pin--l b { right: 9px; }
  .ab-pin i { left: -3px; top: -3px; width: 6px; height: 6px; }
  .ab-pin--hq i { left: -5px; top: -5px; width: 10px; height: 10px; }
  .ab-pin--hq b { left: 0; top: 11px; transform: translateX(calc(-100% + 10px)); }
  .ab-map__list { gap: 8px; margin-top: 8px; }
  .ab-map__list li { padding: 12px 14px; font-size: 13.5px; min-height: 50px; gap: 10px; }
  .ab-logos { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 8px; }
  .ab-logos li { padding: 12px; border-radius: 16px; }
  .ab-logos img { border-radius: 14px; }
  .ab-logos__n { font-size: 30px; }
  .ab-logos .ab-logos__more { font-size: 11.5px; padding: 8px; }
  .ab-press { gap: 8px; padding: 8px; }
  .ab-press__item { padding: 8px 8px 14px; }
  .ab-press__tile { height: 92px; margin-bottom: 8px; border-radius: 12px; }
  .ab-press__tile img { width: 92px; height: 92px; }
  .ab-press__name, .ab-press__go { padding: 0 4px; }
  .ab-press__name { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .ab-pin--hq i::after { animation: none; opacity: .5; transform: scale(1.4); }
  a.ab-press__item, .ab-press__go .icon { transition: none; }
  a.ab-press__item:hover, a.ab-press__item:hover .ab-press__go .icon { transform: none; }
}
.ab-map__svg .ab-map__arcs { fill: none; stroke: rgba(71,255,140,.4); stroke-width: .22; stroke-dasharray: .7 .7; stroke-linecap: butt; }
