/* ============== ABOUT PAGE ============== */
.page-about{background:var(--cream);color:var(--ink);}

.ab-section{padding:140px 32px;max-width:1400px;margin:0 auto;position:relative;}
.ab-cap{display:flex;gap:18px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--muted);border-bottom:1px solid var(--rule);padding-bottom:18px;margin-bottom:60px;text-transform:uppercase;}

/* ----- HERO ----- */
.ab-hero{
  position:relative;padding:140px 32px 60px;min-height:100vh;
  display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;
}
.ab-hero-grid{position:absolute;inset:0;display:grid;grid-template-columns:repeat(6,1fr);pointer-events:none;}
.ab-hero-grid span{border-right:1px solid var(--rule);}
.ab-hero-grid span:last-child{border-right:0;}
.ab-hero-top{display:flex;justify-content:space-between;align-items:flex-start;font-family:var(--mono);font-size:11px;letter-spacing:.06em;position:relative;z-index:1;}
.ab-eyebrow{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--rule);border-radius:99px;background:rgba(255,255,255,.4);backdrop-filter:blur(8px);}
.ab-eyebrow .dot{width:6px;height:6px;border-radius:50%;background:#3aa66f;box-shadow:0 0 0 4px rgba(58,166,111,.18);}
.ab-loc{color:var(--muted);text-align:right;line-height:1.5;}

.ab-title{
  font-family:var(--sans);font-weight:900;
  font-size:clamp(60px,15vw,260px);
  line-height:.84;letter-spacing:-.04em;
  text-transform:lowercase;margin:auto 0;position:relative;z-index:1;
}
.ab-title .ab-line{display:block;overflow:hidden;line-height:.86;}
.ab-title .ab-line-inner{display:inline-block;}
.ab-title .ch{display:inline-block;will-change:transform,filter,opacity;}
.ab-title em{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.02em;}

.ab-hero-bot{display:grid;grid-template-columns:1.5fr auto;gap:60px;align-items:flex-end;position:relative;z-index:1;}
.ab-lede{font-family:var(--serif);font-size:clamp(18px,1.8vw,26px);line-height:1.35;max-width:48ch;}
.ab-quick{display:flex;gap:30px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-align:right;}
.ab-quick > div{display:flex;flex-direction:column;gap:6px;}
.ab-quick span:first-child{color:var(--muted);font-size:10px;letter-spacing:.18em;}

/* ----- MANIFESTO ----- */
.ab-manifesto{padding:200px 32px;}
.ab-mani{
  font-family:var(--sans);font-weight:500;
  font-size:clamp(34px,5.2vw,88px);line-height:1.05;letter-spacing:-.02em;
  text-wrap:pretty;max-width:24ch;
}
.ab-mani .mw{display:inline-block;opacity:.18;filter:blur(8px);transition:opacity .55s, filter .55s;}
.ab-mani .mw.in{opacity:1;filter:blur(0);}
.ab-mani .italic{font-family:var(--serif);font-style:italic;font-weight:400;}
.ab-mani .underline{position:relative;}
.ab-mani .underline::after{content:"";position:absolute;left:0;right:0;bottom:-.06em;height:1px;background:currentColor;}

/* ----- BIO ----- */
.ab-bio{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:start;}
.ab-portrait{
  position:relative;aspect-ratio:4/5;
  background:linear-gradient(180deg,#1f1d1b,#0b0b0b);
  border-radius:6px;overflow:hidden;
}
.ab-portrait::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg, rgba(244,241,234,.04) 0 2px, transparent 2px 16px);}
.ab-portrait .ab-portrait-shape{
  position:absolute;left:50%;top:55%;transform:translate(-50%,-50%);
  width:50%;aspect-ratio:1/1;border-radius:50%;
  background:linear-gradient(180deg,#cbb89a,#7a6f5f);
}
.ab-portrait .ab-portrait-tag{position:absolute;left:18px;bottom:14px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:rgba(244,241,234,.7);}
.ab-bio-text{display:flex;flex-direction:column;gap:28px;}
.ab-bio-h{font-family:var(--sans);font-weight:900;font-size:clamp(38px,4.4vw,68px);line-height:.95;letter-spacing:-.03em;text-transform:lowercase;}
.ab-bio-h em{font-family:var(--serif);font-style:italic;font-weight:400;}
.ab-bio-text p{font-family:var(--serif);font-size:22px;line-height:1.5;color:var(--ink);max-width:42ch;}
.ab-bio-text p .w{display:inline-block;opacity:.18;filter:blur(8px);transition:opacity .55s, filter .55s;}
.ab-bio-text p .w.in{opacity:1;filter:blur(0);}
.ab-bio-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;font-family:var(--mono);font-size:13px;line-height:1.6;margin-top:30px;}
.ab-bio-meta > div{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--rule);padding-top:14px;}
.ab-bio-meta span:first-child{font-size:10px;letter-spacing:.18em;color:var(--muted);}

/* ----- TIMELINE (sticky scrollytelling) ----- */
.ab-timeline{height:480vh;position:relative;background:var(--ink);color:var(--cream);}
.abt-sticky{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;justify-content:center;padding:0 32px;max-width:1400px;margin:0 auto;overflow:hidden;}
.abt-cap{display:flex;gap:18px;font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:rgba(244,241,234,.55);margin-bottom:40px;}
.abt-stage{position:relative;display:grid;grid-template-columns:1fr 1.5fr;gap:60px;align-items:center;min-height:480px;}
.abt-year{
  font-family:var(--sans);font-weight:900;font-size:clamp(120px,18vw,280px);line-height:.86;letter-spacing:-.05em;
  position:relative;
}
.abt-year .abt-y-chr{display:inline-block;will-change:transform,filter,opacity;}
.abt-year .abt-y-tag{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:rgba(244,241,234,.55);position:absolute;top:0;right:0;}
.abt-step{
  position:absolute;right:0;width:60%;
  opacity:0;transform:translateY(40px);filter:blur(20px);
  transition:opacity .6s, transform .6s cubic-bezier(.7,0,.2,1), filter .6s;
  display:flex;flex-direction:column;gap:14px;
}
.abt-step.active{opacity:1;transform:translateY(0);filter:blur(0);}
.abt-step h3{font-family:var(--sans);font-weight:900;font-size:clamp(32px,3.4vw,52px);line-height:1;letter-spacing:-.03em;text-transform:lowercase;}
.abt-step h3 em{font-family:var(--serif);font-style:italic;font-weight:400;}
.abt-step p{font-family:var(--serif);font-size:22px;line-height:1.45;color:rgba(244,241,234,.78);max-width:42ch;}
.abt-step .abt-tag{font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--accent);}
.abt-progress{position:absolute;left:0;right:0;bottom:24px;display:grid;grid-template-columns:repeat(8,1fr);gap:6px;padding:0 32px;}
.abt-progress > div{height:2px;background:rgba(244,241,234,.18);position:relative;overflow:hidden;}
.abt-progress > div::after{content:"";position:absolute;left:0;top:0;bottom:0;width:0;background:var(--accent);transition:width .6s ease;}
.abt-progress > div.on::after{width:100%;}

/* ----- SERVICES ----- */
.ab-services{background:var(--cream);}
.abs-list{display:flex;flex-direction:column;border-top:1px solid var(--rule);}
.abs-row{
  display:grid;grid-template-columns:90px 1fr auto;gap:30px;align-items:center;
  padding:36px 0;border-bottom:1px solid var(--rule);
  position:relative;isolation:isolate;cursor:none;
  transition:padding-left .55s cubic-bezier(.7,0,.2,1), color .35s;
}
.abs-row::before{
  content:"";position:absolute;left:-32px;right:-32px;top:0;bottom:0;z-index:-1;
  background:var(--ink);transform:scaleY(0);transform-origin:bottom;
  transition:transform .55s cubic-bezier(.7,0,.2,1);
}
.abs-row:hover{padding-left:24px;color:var(--cream);}
.abs-row:hover::before{transform:scaleY(1);transform-origin:top;}
.abs-n{font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--muted);}
.abs-row:hover .abs-n{color:rgba(244,241,234,.6);}
.abs-title{font-family:var(--sans);font-weight:900;font-size:clamp(36px,5vw,80px);line-height:.95;letter-spacing:-.03em;text-transform:lowercase;}
.abs-title em{font-family:var(--serif);font-style:italic;font-weight:400;}
.abs-desc{font-family:var(--serif);font-size:18px;color:var(--muted);max-width:32ch;line-height:1.4;}
.abs-row:hover .abs-desc{color:rgba(244,241,234,.6);}

/* ----- VALUES ----- */
.ab-values{background:var(--cream);}
.abv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--rule);}
.abv-cell{
  padding:36px 24px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);
  display:flex;flex-direction:column;gap:14px;min-height:240px;
  transition:background .45s;
}
.abv-cell:nth-child(4n){border-right:0;}
.abv-cell:hover{background:var(--ink);color:var(--cream);}
.abv-n{font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--accent);}
.abv-h{font-family:var(--sans);font-weight:900;font-size:clamp(22px,2vw,30px);line-height:1;letter-spacing:-.02em;text-transform:lowercase;}
.abv-p{font-family:var(--serif);font-size:16px;line-height:1.45;color:var(--muted);}
.abv-cell:hover .abv-p{color:rgba(244,241,234,.65);}

/* ----- NOW / CURRENTLY ----- */
.ab-now{background:var(--ink);color:var(--cream);padding:140px 32px;}
.abn-wrap{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:1fr 1.2fr;gap:60px;align-items:start;}
.abn-cap{display:flex;gap:18px;font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:rgba(244,241,234,.55);}
.abn-h{font-family:var(--sans);font-weight:900;font-size:clamp(48px,7vw,120px);line-height:.95;letter-spacing:-.03em;text-transform:lowercase;margin-top:24px;}
.abn-h em{font-family:var(--serif);font-style:italic;font-weight:400;}
.abn-list{display:flex;flex-direction:column;gap:14px;}
.abn-row{display:grid;grid-template-columns:100px 1fr auto;gap:20px;align-items:baseline;padding:18px 0;border-bottom:1px solid rgba(244,241,234,.12);font-family:var(--mono);font-size:13px;}
.abn-row .abn-k{font-size:10px;letter-spacing:.18em;color:rgba(244,241,234,.45);}
.abn-row .abn-v{font-size:16px;color:rgba(244,241,234,.92);}
.abn-row .abn-v em{font-family:var(--serif);font-style:italic;}
.abn-row .abn-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#3aa66f;box-shadow:0 0 0 4px rgba(58,166,111,.18);}

/* ----- PRESS / MENTIONS ----- */
.ab-press{padding:140px 32px;max-width:1600px;margin:0 auto;}
.abp-marquee{overflow:hidden;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-top:60px;}
.abp-track{display:flex;gap:60px;padding:30px 0;white-space:nowrap;font-family:var(--sans);font-weight:900;font-size:clamp(36px,5vw,80px);letter-spacing:-.02em;text-transform:lowercase;}
.abp-track > span{flex:0 0 auto;color:var(--ink);}
.abp-track > span:nth-child(odd){font-family:var(--serif);font-style:italic;font-weight:400;}
.abp-track .abp-dot{font-size:.5em;align-self:center;color:var(--accent);}

/* ----- PULL QUOTE ----- */
.ab-quote{padding:200px 32px;background:var(--cream);text-align:center;}
.abq-text{font-family:var(--serif);font-style:italic;font-size:clamp(40px,6vw,100px);line-height:1.1;max-width:18ch;margin:0 auto;letter-spacing:-.01em;text-wrap:balance;}
.abq-text .w{display:inline-block;opacity:.18;filter:blur(10px);transition:opacity .55s, filter .55s;}
.abq-text .w.in{opacity:1;filter:blur(0);}
.abq-cite{margin-top:60px;font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--muted);text-transform:uppercase;}

/* ----- CONTACT CTA ----- */
.ab-cta{background:var(--ink);color:var(--cream);padding:140px 32px;text-align:center;position:relative;overflow:hidden;}
.abc-meta{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:rgba(244,241,234,.55);}
.abc-h{font-family:var(--sans);font-weight:900;font-size:clamp(56px,10vw,180px);line-height:.9;letter-spacing:-.04em;text-transform:lowercase;margin:24px 0 40px;}
.abc-h em{font-family:var(--serif);font-style:italic;font-weight:400;}
.abc-mail{display:inline-block;font-family:var(--serif);font-size:clamp(28px,4vw,60px);font-style:italic;border-bottom:1px solid rgba(244,241,234,.4);padding-bottom:6px;color:inherit;text-decoration:none;cursor:none;}

/* ----- responsive ----- */
@media (max-width:900px){
  .ab-hero-bot{grid-template-columns:1fr;gap:30px;}
  .ab-quick{justify-content:flex-start;text-align:left;}
  .ab-bio{grid-template-columns:1fr;}
  .ab-bio-meta{grid-template-columns:1fr;}
  .abt-stage{grid-template-columns:1fr;gap:20px;}
  .abt-step{position:relative;right:auto;width:100%;}
  .abv-grid{grid-template-columns:repeat(2,1fr);}
  .abv-cell:nth-child(4n){border-right:1px solid var(--rule);}
  .abv-cell:nth-child(2n){border-right:0;}
  .abn-wrap{grid-template-columns:1fr;}
  .abs-row{grid-template-columns:60px 1fr;gap:14px;}
  .abs-desc{display:none;}
}

/* phone tightening */
@media (max-width:700px){
  .ab-hero{ padding:120px 20px 40px; }
  .ab-title{ font-size:clamp(48px,16vw,90px); }
  .ab-hero-bot{ grid-template-columns:1fr; gap:24px; }
  .ab-bio{ grid-template-columns:1fr; gap:30px; padding:60px 20px; }
  .ab-bio-meta{ grid-template-columns:1fr; }
  .abt-stage{ grid-template-columns:1fr; gap:30px; padding:60px 20px; min-height:auto; }
  .abv-grid{ grid-template-columns:repeat(2,1fr); }
  .abn-wrap{ grid-template-columns:1fr; gap:30px; padding:60px 20px; }
  .abn-row{ grid-template-columns:50px 1fr; gap:14px; padding:14px 0; font-size:11px; }
  .abn-row > :last-child{ display:none; }
}
