/* ============================================================
   EDGEBOUND LABS — About (/about.html)
   Page-specific components: dark hero opener, timeline,
   leadership cards, org grid, values, ISO + partners.
   Tokens & shared components live in styles.css.
   ============================================================ */

/* ---------- shared decorative grid (dark hero) ---------- */
.ab-grid{position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:62px 62px;
  mask-image:radial-gradient(ellipse 80% 70% at 50% 0%,#000 25%,transparent 72%);
  -webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 0%,#000 25%,transparent 72%)}
.ab-glow{position:absolute;top:-180px;left:50%;transform:translateX(-50%);width:900px;height:620px;pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(80,70,229,.20),rgba(80,70,229,.04) 45%,transparent 70%);filter:blur(14px)}

/* ---------- 01 HERO OPENER (dark) ---------- */
.ab-open{padding-top:166px;overflow:hidden}
.ab-open .inner{max-width:920px}
.ab-open h1{font-size:clamp(40px,6.4vw,76px);font-weight:800;letter-spacing:-.04em;line-height:1.02;margin-bottom:22px}
.ab-open h1 .grad{background:linear-gradient(105deg,#fff 20%,var(--blue-bright) 62%,#fff 96%);background-size:220% auto;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shine 6s linear infinite}
@keyframes shine{to{background-position:220% center}}
.ab-osub{font-size:clamp(18px,2.1vw,22px);color:var(--t1);font-weight:600;letter-spacing:-.01em;margin-bottom:22px;max-width:46ch}
.ab-lead-intro{font-size:17px;line-height:1.75;color:var(--t2);max-width:64ch}
.ab-kws{display:flex;flex-wrap:wrap;gap:9px;margin-top:34px}
.ab-kw{font-family:var(--mono);font-size:12.5px;color:var(--t2);border:1px solid var(--line);background:var(--surface);
  border-radius:100px;padding:8px 16px;transition:.25s var(--ease)}
.ab-kw:hover{border-color:var(--blue-bright);color:var(--t1);transform:translateY(-2px)}

/* ---------- generic two-column intro (copy + aside) ---------- */
.ab-split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.ab-prose p{font-size:16px;line-height:1.78;color:var(--t2);margin-bottom:18px;max-width:54ch}
.ab-prose p:last-child{margin-bottom:0}
.ab-prose p b,.ab-prose strong{color:var(--t1);font-weight:600}
.lt .ab-prose p{color:var(--lt-2)}
.lt .ab-prose p b{color:var(--lt-ink)}

/* ---------- 02 TIMELINE ---------- */
.ab-time{margin-top:4px}
.ab-trow{display:grid;grid-template-columns:88px 1fr;gap:30px}
.ab-year{font-family:var(--mono);font-size:18px;font-weight:500;color:var(--blue);text-align:right;padding-top:1px;letter-spacing:-.01em}
.ab-tmile{position:relative;border-left:1px solid var(--lt-line2);padding:0 0 30px 30px}
.ab-trow:last-child .ab-tmile{padding-bottom:0}
.ab-tmile::before{content:"";position:absolute;left:-5px;top:7px;width:9px;height:9px;border-radius:50%;
  background:var(--lt-bg);border:2px solid var(--blue)}
.ab-trow.key .ab-tmile::before{background:var(--blue);box-shadow:0 0 0 5px var(--lt-bluesoft)}
.ab-tmile h4{font-size:16px;font-weight:600;letter-spacing:-.01em;color:var(--lt-ink);line-height:1.45}
.ab-trow.key .ab-tmile h4{color:var(--blue)}
/* dark variant of the timeline, when used in a dark section */
.ab-time.dark .ab-year{color:var(--blue-bright)}
.ab-time.dark .ab-tmile{border-left-color:var(--line-2)}
.ab-time.dark .ab-tmile::before{background:var(--bg);border-color:var(--blue-bright)}
.ab-time.dark .ab-trow.key .ab-tmile::before{background:var(--blue-bright);box-shadow:0 0 0 5px var(--blue-soft)}
.ab-time.dark .ab-tmile h4{color:var(--t1)}
.ab-time.dark .ab-trow.key .ab-tmile h4{color:var(--blue-bright)}

/* ---------- 03 LEADERSHIP ---------- */
.ab-team{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:54px}
.ab-mem{border:1px solid var(--line);border-radius:18px;background:var(--surface);padding:30px;transition:.4s var(--ease)}
.ab-mem:hover{border-color:var(--line-2);transform:translateY(-4px);background:var(--surface-2)}
.ab-ava{width:62px;height:62px;border-radius:16px;display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:20px;font-weight:500;color:#fff;letter-spacing:.02em;margin-bottom:22px;
  background:linear-gradient(150deg,var(--blue),#7a6dff);box-shadow:0 8px 24px rgba(80,70,229,.32)}
.ab-mem h3{font-size:19px;font-weight:700;letter-spacing:-.02em;margin-bottom:4px}
.ab-mem .ab-role{font-family:var(--mono);font-size:12.5px;color:var(--blue-bright);margin-bottom:16px}
.ab-mem p{font-size:14px;line-height:1.7;color:var(--t2)}

/* org structure grid */
.ab-org{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:16px;overflow:hidden}
.ab-ocell{background:var(--surface);padding:24px 24px}
.ab-ocell .ab-oarea{font-size:14.5px;font-weight:700;letter-spacing:-.01em;color:var(--t1);margin-bottom:7px;
  display:flex;align-items:center;gap:9px}
.ab-ocell .ab-oarea::before{content:"";width:6px;height:6px;border-radius:2px;background:var(--blue-bright);flex-shrink:0}
.ab-ocell .ab-odesc{font-size:13px;line-height:1.6;color:var(--t2)}

/* ---------- 04 VALUES ---------- */
.ab-vals{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:46px}
.ab-val{position:relative;padding-top:26px;border-top:2px solid var(--lt-line2)}
.ab-val .vn{position:absolute;top:-2px;left:0;width:46px;height:2px;background:var(--blue)}
.ab-val h3{font-size:20px;font-weight:700;letter-spacing:-.02em;margin-bottom:12px;color:var(--lt-ink)}
.ab-val p{font-size:14.5px;line-height:1.72;color:var(--lt-2)}
/* methodology strip */
.ab-method{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:26px 30px;border-radius:16px;
  background:var(--lt-surface);border:1px solid var(--lt-line)}
.ab-method .ab-mlabel{font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--lt-3)}
.ab-phases{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ab-phase{display:inline-flex;align-items:center;gap:10px;font-size:14.5px;font-weight:600;color:var(--lt-ink)}
.ab-phase .pn{font-family:var(--mono);font-size:12px;color:var(--blue);width:24px;height:24px;border-radius:7px;
  border:1px solid var(--lt-line2);display:flex;align-items:center;justify-content:center}
.ab-phase .arr{color:var(--lt-3);font-size:14px}
.ab-method .ab-mnote{font-size:13px;color:var(--lt-2);margin-left:auto;max-width:32ch;line-height:1.55}

/* ---------- 05 CERTIFICATIONS + PARTNERS ---------- */
.ab-iso{display:flex;align-items:center;gap:26px;padding:28px 30px;border:1px solid var(--line);
  border-radius:18px;background:var(--surface);margin-bottom:56px}
.ab-iso img{height:74px;width:auto;flex-shrink:0}
.ab-iso .ab-iso-k{font-size:17px;font-weight:700;letter-spacing:-.01em;margin-bottom:6px}
.ab-iso .ab-iso-k b{color:var(--blue-bright)}
.ab-iso .ab-iso-d{font-size:14px;line-height:1.7;color:var(--t2);max-width:62ch}
.ab-rate{display:inline-flex;align-items:baseline;gap:8px;margin-left:auto;flex-shrink:0;padding-left:26px;border-left:1px solid var(--line)}
.ab-rate .rv{font-size:34px;font-weight:800;letter-spacing:-.03em;color:var(--t1)}
.ab-rate .rl{font-family:var(--mono);font-size:11.5px;color:var(--t3);line-height:1.4}

/* ---------- responsive ---------- */
@media(max-width:920px){
  .ab-split{grid-template-columns:1fr;gap:38px}
  .ab-team{grid-template-columns:1fr}
  .ab-org{grid-template-columns:1fr 1fr}
  .ab-vals{grid-template-columns:1fr;gap:30px}
  .ab-iso{flex-wrap:wrap;gap:20px}
  .ab-rate{margin-left:0;padding-left:0;border-left:none}
}
@media(max-width:560px){
  .ab-open{padding-top:128px}
  .ab-trow{grid-template-columns:64px 1fr;gap:18px}
  .ab-org{grid-template-columns:1fr}
  .ab-method{flex-direction:column;align-items:flex-start;gap:16px}
  .ab-method .ab-mnote{margin-left:0}
}
