.project-index-teaser{padding:clamp(68px,8vw,120px) 7vw;display:grid;grid-template-columns:1.2fr .8fr;gap:8vw;align-items:end;border-bottom:1px solid var(--firm-line)}
.project-index-teaser h2{font-size:clamp(38px,5.4vw,76px);line-height:.94;margin:0}
.project-index-teaser p{color:#5c615c;line-height:1.7;max-width:480px}
.project-index-teaser .button{display:inline-block;margin-top:12px;background:#0b0d0c;color:#fff}
.projects-hero{min-height:min(78svh,760px);position:relative;overflow:hidden;background:#0b0d0c;color:#fff;padding:clamp(100px,13vw,180px) 7vw 90px;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start}
.projects-hero>*:not(.projects-orbit){position:relative;z-index:1}
.projects-hero .eyebrow{color:#d8dbd8}
.projects-hero h1{font:500 clamp(64px,10vw,148px)/.84 "Bebas Neue","Arial Narrow",sans-serif;text-transform:uppercase;letter-spacing:.01em;margin:0 0 26px;max-width:1050px}
.projects-hero h1 em{font-style:normal;color:var(--firm-orange)}
.projects-hero>p:not(.eyebrow){font-size:clamp(16px,1.5vw,20px);line-height:1.65;color:#c3c7c3;max-width:640px;margin:0}
.projects-hero .button{display:inline-block;margin-top:26px;background:var(--firm-orange);color:#111;font-weight:700}
.projects-orbit{position:absolute;width:min(57vw,760px);aspect-ratio:1;border:1px solid #4a4d49;border-radius:50%;right:-6%;top:-40%;opacity:.65}
.projects-orbit:before,.projects-orbit:after{content:"";position:absolute;border:1px solid #4a4d49;border-radius:50%;inset:11%}
.projects-orbit:after{inset:23%;border-color:var(--firm-orange)}
.projects-boundary{display:grid;grid-template-columns:140px 1fr 140px 1.4fr;gap:20px;align-items:center;padding:24px 7vw;background:#ef4d20;color:#111}
.projects-boundary span{font:600 9px "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.1em}
.projects-boundary p{margin:0;font-size:13px;line-height:1.5}
.projects-group{padding:clamp(70px,8vw,120px) 7vw;border-bottom:1px solid var(--firm-line)}
.projects-group-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:35px}
.projects-group-heading .eyebrow{margin-bottom:0}
.projects-group-heading h2{font-size:clamp(34px,5vw,68px);line-height:.95;margin:0;text-align:right}
.project-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#c9ccc6;border:1px solid #c9ccc6}
.project-image-item{display:flex;flex-direction:column;min-width:0;background:#f7f7f4;color:#0b0d0c;padding:0 0 20px;transition:background .18s ease,color .18s ease}
.project-image-item:hover{background:#0b0d0c;color:#fff}
.project-image-item img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:#111}
.project-image-item span{font-size:clamp(17px,1.8vw,23px);font-weight:600;line-height:1.2;padding:19px 18px 12px}
.project-image-item b{font:500 9px "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.08em;padding:0 18px;color:#cf3d19}
.project-image-item:hover b{color:#ff7955}
.project-name-list{border-top:1px solid var(--firm-line)}
.project-name-only{display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:25px;padding:30px 0;border-bottom:1px solid var(--firm-line)}
.project-name-only>span,.project-name-only>b{font:500 9px "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.08em}
.project-name-only>span{color:#cf3d19}
.project-name-only h3{font-size:clamp(25px,3vw,40px);margin:0}
.project-name-only>b{color:#cf3d19}
.projects-access-cta{padding:clamp(70px,9vw,125px) 7vw;background:#101f3c;color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:end}
.projects-access-cta h2{font-size:clamp(42px,6vw,82px);line-height:.9;margin:0}
.projects-access-cta p:not(.eyebrow){color:#c9cfdb;line-height:1.7;max-width:600px}
.projects-access-cta .button{display:inline-block;background:var(--firm-orange);color:#111;font-weight:700;margin-top:14px}
.project-page a:focus-visible{outline:3px solid #ef4d20;outline-offset:5px}
@media(max-width:850px){.project-index-teaser,.projects-access-cta{grid-template-columns:1fr;gap:24px}.project-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.projects-boundary{grid-template-columns:110px 1fr}.projects-group-heading{align-items:start;flex-direction:column}.projects-group-heading h2{text-align:left}}
@media(max-width:560px){.project-gallery{grid-template-columns:1fr}.project-name-only{grid-template-columns:34px 1fr;gap:12px}.project-name-only>b{grid-column:2}.projects-boundary{grid-template-columns:1fr;gap:7px}.projects-boundary span:not(:first-child){margin-top:12px}.projects-orbit{width:90vw;right:-35%;top:-8%}}
@media(prefers-reduced-motion:reduce){.project-image-item{transition:none}}
