/* The dark chapter belongs solely to the Projects index. Detail pages retain their light styles. */
body.projects-index{background:#252724;color:#e9e8e1;min-height:100vh}
.projects-index a:focus-visible{outline-color:#e9e8e1}
.projects-index .site-header{border-bottom-color:#535751}
.projects-index .page-intro{border-bottom-color:#535751}
.projects-index .category{border-bottom-color:#515650}
.projects-index .category__heading span,
.projects-index .category__heading small,
.projects-index .category-index span{color:#aaaFA7}
.projects-index .work__image{background:#41443f}
.projects-index .work__caption{border-top-color:#949a92}
.projects-index .work__location{color:#bbbeb6}
.projects-index .placeholder,
.projects-index .placeholder--mixed-1,
.projects-index .placeholder--mixed-2,
.projects-index .placeholder--mixed-3,
.projects-index .placeholder--retail-1,
.projects-index .placeholder--retail-2,
.projects-index .placeholder--retail-3,
.projects-index .placeholder--retail-4,
.projects-index .placeholder--retail-5,
.projects-index .placeholder--hospitality-1,
.projects-index .placeholder--hospitality-2,
.projects-index .placeholder--hospitality-3{border-top-color:#525750;color:#929990}
.projects-index .page-footer{border-top-color:#555a53;color:#b5b9b0}
.projects-index .placeholder[hidden]{display:none!important}
.projects-index .category--awaiting{padding:clamp(56px,6vw,100px) 0 clamp(34px,4vw,68px)}
.projects-index .category--awaiting .category__heading{margin-bottom:0}
.projects-index .category--awaiting .works{display:none}

/* Equal project modules on the index; detail-page compositions are untouched. */
.projects-index .category{padding:clamp(30px,3.5vw,52px) 0 clamp(68px,7vw,108px)}
.projects-index .category__heading{margin-bottom:clamp(28px,3vw,42px)}
.projects-index .works{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(36px,4vw,64px) clamp(20px,2.4vw,38px);align-items:stretch}
.projects-index .work,.projects-index .work--teda,.projects-index .work--spu,.projects-index .work--feng{display:flex;flex-direction:column;grid-column:auto;min-width:0;margin:0}
.projects-index .work__image,.projects-index .work--teda .work__image,.projects-index .work--spu .work__image,.projects-index .work--feng .work__image{width:100%;aspect-ratio:1.42;flex:none}
.projects-index .work__image img{width:100%;height:100%;object-fit:cover}
.projects-index .work--teda .work__image img{object-position:50% 46%}
.projects-index .work--spu .work__image img{object-position:50% 50%}
.projects-index .work--feng .work__image img{object-position:50% 54%}
.projects-index .work__caption{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(2.6em,auto) auto;gap:9px;align-content:start;flex:1;border:0;padding:0;margin:15px 0 0}
.projects-index .work__title{font-size:clamp(15px,1.18vw,18px);line-height:1.3;letter-spacing:-.02em;max-width:none}
.projects-index .work__location{display:block;text-align:left;white-space:normal;font-size:12px;line-height:1.4;letter-spacing:.04em}
.projects-index .work__view{align-self:flex-start;margin-top:14px;font-size:10px}
.projects-index .category--awaiting{padding:clamp(32px,3.5vw,52px) 0 clamp(32px,3.5vw,52px)}
.projects-index .category--awaiting .category__heading{margin-bottom:0}
@media(max-width:900px){.projects-index .works{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(18px,3vw,30px)}.projects-index .work,.projects-index .work--teda,.projects-index .work--spu,.projects-index .work--feng{margin:0!important}}
@media(max-width:600px){.projects-index .works{grid-template-columns:1fr;row-gap:42px}.projects-index .work__caption{margin-top:13px}.projects-index .work__title{font-size:17px}.projects-index .category{padding:32px 0 65px}.projects-index .category--awaiting{padding:30px 0}.projects-index .page-intro__aside{flex-wrap:wrap;row-gap:5px}}

/* Index thumbnails keep one fixed rectangular frame regardless of source ratio. */
.projects-index .work__image{position:relative;overflow:hidden;aspect-ratio:1.42;height:auto}
.projects-index .work__image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media(max-width:600px){.projects-index .work__image,.projects-index .work--teda .work__image,.projects-index .work--spu .work__image,.projects-index .work--feng .work__image{aspect-ratio:1.42}.projects-index .work__caption{grid-template-rows:auto auto;gap:7px}.projects-index .work__view{margin-top:12px}}
