.ab .wrap{max-width:1120px;margin:0 auto;padding:0 28px}
/* HERO */
.abhero{position:relative;min-height:94vh;display:flex;align-items:flex-end;overflow:hidden;background:var(--espresso)}
.abhero .bg{position:absolute;inset:0}
.abhero .bg img{width:100%;height:100%;object-fit:cover;object-position:center 30%;opacity:.46;transform:scale(1.05);animation:heroZoom 1.5s var(--e-out) both}
@keyframes heroZoom{from{transform:scale(1.15);opacity:.16}to{transform:scale(1.05);opacity:.46}}
.abhero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,9,4,.4),rgba(18,9,4,.1) 42%,rgba(18,9,4,.9))}
.abhero .inner{position:relative;z-index:2;padding:0 28px 70px;max-width:1120px;margin:0 auto;width:100%}
.abhero .eyebrow{color:var(--mustard)}
.abhero h1{color:#FCEFDD;font-size:clamp(44px,8vw,108px);line-height:.96;letter-spacing:-.045em;max-width:15ch;margin:16px 0 0}
.abhero p{color:#EED2B2;font-size:clamp(18px,2.1vw,26px);margin:22px 0 0;font-weight:500}
/* MANIFESTO */
.abman{padding:110px 0 40px}
.abman .lede{font-size:clamp(26px,3.4vw,44px);line-height:1.24;letter-spacing:-.02em;color:var(--espresso);max-width:20ch;font-family:var(--disp);font-weight:600}
.abman .body{max-width:640px;margin-left:auto;margin-top:-10px}
.abman .body p{font-size:19px;line-height:1.62;color:var(--ink-soft);margin:0 0 18px}
.abman .body p b{color:var(--espresso);font-weight:600}
.abmg{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:start}
@media(max-width:860px){.abmg{grid-template-columns:1fr;gap:26px}.abman .body{margin-left:0}}
.abfig{margin:60px 0 0;border-radius:26px;overflow:hidden;box-shadow:var(--sh-lift);aspect-ratio:16/8}
.abfig img{width:100%;height:100%;object-fit:cover;object-position:center 34%}
/* FUTURE (dark) */
.abfut{position:relative;margin:70px auto;max-width:1240px;border-radius:38px;overflow:hidden;background:var(--espresso);padding:96px 60px}
.abfut .eyebrow{color:var(--mustard)}
.abfut h2{color:#FCEFDD;font-size:clamp(30px,4.4vw,60px);letter-spacing:-.035em;line-height:1.04;max-width:16ch;margin:14px 0 34px}
.abfut .cols{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.abfut p{color:#E7C7A8;font-size:19px;line-height:1.6;margin:0 0 16px}
.abfut p b{color:#FCEFDD;font-weight:600}
@media(max-width:820px){.abfut{padding:60px 26px}.abfut .cols{grid-template-columns:1fr;gap:8px}}
/* MISSION line */
.abmis{text-align:center;padding:96px 0}
.abmis .eyebrow{color:var(--orange-deep)}
.abmis h2{font-size:clamp(38px,6vw,80px);letter-spacing:-.045em;line-height:1.02;max-width:16ch;margin:16px auto 0;color:var(--espresso)}
.abmis .u{color:var(--orange)}
.abmis-sub{max-width:46ch;margin:22px auto 0;color:var(--muted);font-size:clamp(16px,1.9vw,20px);line-height:1.5}
/* VALUES */
.abval{padding:30px 0 50px}
.abval .head h2{font-size:clamp(30px,4.4vw,54px);letter-spacing:-.035em}
.abval .head p{color:var(--muted);font-size:18px;margin-top:12px;max-width:52ch}
.abvg{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:44px}
.abvg.rv{opacity:1;transform:none}
@media(max-width:900px){.abvg{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.abvg{grid-template-columns:1fr}}
.abvc{border-radius:22px;padding:26px 24px;position:relative;color:var(--espresso);align-self:start;opacity:0;transform:translateY(16px);transition:transform .28s var(--e-out),box-shadow .28s var(--e-out)}
.abvg.in .abvc{animation:abrise .6s var(--e-out) forwards;animation-delay:calc(var(--i,0)*70ms)}
@keyframes abrise{to{opacity:1;transform:none}}
.abvc:hover{transform:translateY(-6px);box-shadow:var(--sh-lift)}
.abvc .top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.abvc .n{font-family:var(--disp);font-weight:800;letter-spacing:.1em;text-transform:uppercase;font-size:12px;opacity:.66}
.abvc h3{font-size:21px;letter-spacing:-.02em;margin:9px 0 0;color:var(--espresso)}
.abvc .chev{width:28px;height:28px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(26,13,5,.14);transition:transform .3s var(--e-out),background .3s var(--e-out)}
.abvc:hover .chev{transform:rotate(180deg);background:rgba(26,13,5,.26)}
.abvc .body{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .32s var(--e-out),opacity .3s var(--e-out)}
.abvc .body>div{overflow:hidden}
.abvc .body p{font-size:14.5px;line-height:1.6;color:rgba(34,17,10,.82);padding-top:14px}
.abvc:hover .body{grid-template-rows:1fr;opacity:1}
.abvc.c1{background:#E9C6B2}.abvc.c2{background:#C2CAA8}.abvc.c3{background:#F4D585}.abvc.c4{background:#D89C79}.abvc.c5{background:#E3C083}.abvc.c6{background:#E9AC82}
@media(pointer:coarse){.abvc .body{grid-template-rows:1fr;opacity:1}.abvc .chev{display:none}}
@media (prefers-reduced-motion:reduce){.abvc{opacity:1;transform:none}.abvc .body{grid-template-rows:1fr;opacity:1}.abvc .chev{display:none}}
/* TEAM */
.abteam{padding:80px 0 20px}
.abteam h2{font-size:clamp(30px,4.4vw,54px);letter-spacing:-.035em}
.abteam .sub{color:var(--muted);font-size:18px;margin-top:12px;max-width:56ch}
.abtg{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:42px}
@media(max-width:820px){.abtg{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.abtg{grid-template-columns:1fr 1fr}}
.abp{position:relative;border-radius:22px;overflow:hidden;aspect-ratio:5/6;background:#EAD9C6;cursor:pointer}
.abp.rv{transition-delay:calc(var(--i,0)*55ms)}
.abp img{width:100%;height:100%;object-fit:cover;object-position:center 8%;transition:opacity .5s var(--e-out),transform 1s var(--e-out)}
.abp .ppc{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .55s var(--e-out);pointer-events:none}
.abp.on img{opacity:.1}
.abp.on .ppc{opacity:1}
.abp .cap{position:absolute;left:0;right:0;bottom:0;padding:22px 18px 16px;background:linear-gradient(180deg,transparent,rgba(16,8,3,.9));color:#fff;z-index:2}
.abp .cap b{display:block;font-family:var(--disp);font-weight:700;font-size:19px;letter-spacing:-.01em}
.abp .cap span{font-size:12.5px;color:var(--mustard);text-transform:uppercase;letter-spacing:.1em;font-weight:600}
/* Keep portraits full-width and captions below them on phones and tablets. */
@media(max-width:820px){
 .abteam .abtg{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px}
 .abteam .abp{margin:0;min-width:0;aspect-ratio:auto;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}
 .abteam .abp img{display:block;grid-area:1/1;width:100%;height:auto;aspect-ratio:5/6;object-fit:cover;object-position:center 8%}
 .abteam .abp .ppc{inset:0 auto auto 0;width:100%;height:auto;aspect-ratio:5/6}
 .abteam .abp .cap{position:static;grid-area:2/1;padding:16px 18px 18px;background:var(--espresso);min-width:0}
 .abteam .abp .cap b{font-size:18px;line-height:1.3;overflow-wrap:anywhere}
 .abteam .abp .cap span{display:block;margin-top:5px;font-size:12px;line-height:1.5;letter-spacing:.035em;overflow-wrap:anywhere}
}
@media(max-width:520px){
 .abteam .abtg{grid-template-columns:minmax(0,1fr);gap:24px}
 .abteam .abp .cap{padding:17px 20px 19px}
 .abteam .abp .cap b{font-size:20px}
}
@media(max-width:820px){
 .abteam .abp.on img{opacity:1}
 .abteam .abp .ppc{display:none}
}

/* GALLERY */
.abgal{padding:66px 0 96px}
.abgal h2{font-size:clamp(28px,4vw,50px);letter-spacing:-.03em}
.abms{columns:3;column-gap:16px;margin-top:38px}
@media(max-width:900px){.abms{columns:2}}
@media(max-width:560px){.abms{columns:1}}
.abms figure{margin:0 0 16px;break-inside:avoid;border-radius:18px;overflow:hidden;position:relative;box-shadow:var(--sh-card)}
.abms img{width:100%;display:block;transition:transform .9s var(--e-out)}
.abms figure:hover img{transform:scale(1.05)}
.abms figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 16px 14px;background:linear-gradient(180deg,transparent,rgba(16,8,3,.82));color:#F3E4CE;font-family:var(--disp);font-weight:600;font-size:13.5px;opacity:0;transition:opacity .4s}
.abms figure:hover figcaption{opacity:1}
/* CTA */
.abcta{max-width:1120px;margin:0 auto 70px;background:linear-gradient(135deg,var(--orange-deep),var(--orange));border-radius:32px;padding:70px 44px;text-align:center;color:#fff}
.abcta h2{color:#fff;font-size:clamp(30px,4.6vw,58px);letter-spacing:-.04em;max-width:16ch;margin:0 auto}
.abcta p{color:#FCE9D6;margin:16px auto 28px;max-width:46ch;font-size:19px}
