.projects-section{background:var(--white);color:var(--anthracite);scroll-margin-top:0}
.projects-heading{padding-block:clamp(4rem,8vw,8rem)}
.projects-heading .eyebrow{margin-bottom:2.5rem}
.projects-heading h2{font-family:var(--display);font-size:clamp(3.5rem,8vw,9rem);line-height:1.02;letter-spacing:-.045em;max-width:65rem;margin:0 0 3rem}
.projects-heading-bottom{display:flex;justify-content:space-between;align-items:end;gap:2rem;border-top:1px solid #383e4230;padding-top:1.8rem}
.projects-heading-bottom p{font-size:.95rem;line-height:1.8;max-width:30rem;margin:0}.projects-heading-bottom>span{font-size:.55rem;letter-spacing:.17em;white-space:nowrap}
.projects-gallery{background:var(--black);color:var(--white)}
.project-panel{position:relative;border-top:1px solid #ffffff20;background:var(--black)}
.project-stage{position:relative;padding:2rem var(--gutter) 2.5rem}
.project-topline{display:flex;justify-content:space-between;align-items:center;font-size:.6rem;letter-spacing:.16em;margin-bottom:1.5rem;font-variant-numeric:tabular-nums}.project-total{color:var(--muted);margin-left:.8rem}
.project-visual{position:relative;height:60svh;min-height:22rem;overflow:hidden;margin:0;background:var(--anthracite)}
.project-visual img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(var(--project-scale,1));filter:saturate(.65)}
.project-visual figcaption{position:absolute;right:1rem;bottom:1rem;font-size:.55rem;letter-spacing:.05em;background:#101112b3;padding:.35rem .6rem}
.project-image-line{position:absolute;inset:1rem;border:1px solid #ffffff20;pointer-events:none}
.project-info{display:grid;grid-template-columns:1.3fr 1fr;gap:4rem;padding-top:1.8rem;align-items:start}
.project-location{font-size:.6rem;letter-spacing:.17em;text-transform:uppercase;margin:0 0 .8rem;color:var(--muted)}
.project-info h3{font-family:var(--display);font-size:clamp(2.5rem,4.5vw,5rem);line-height:1.04;letter-spacing:-.035em;font-weight:400;margin:0}
.project-description{max-width:31rem}.project-description p{font-size:.85rem;line-height:1.75;color:var(--muted);margin:0 0 .8rem}.project-description a{display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;min-height:44px;border-bottom:1px solid #ffffff70;font-size:.65rem}
.project-scroll-line{display:block;margin-top:1.5rem;height:1px;background:#ffffff20}.project-scroll-line>span{display:block;height:100%;background:var(--white);transform:scaleX(var(--project-progress,0));transform-origin:left}
@media(min-width:64rem) and (min-height:40rem) and (prefers-reduced-motion:no-preference){.projects-gallery.is-animated .project-panel{height:165svh}.projects-gallery.is-animated .project-stage{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;padding-block:1.5rem}.projects-gallery.is-animated .project-visual{height:auto;min-height:0;flex:1;clip-path:inset(0 var(--project-inset,0%) 0 var(--project-inset,0%))}.projects-gallery.is-animated .project-info{flex-shrink:0}.projects-gallery.is-animated .project-info h3{font-size:clamp(2.5rem,4vw,4.5rem)}.projects-gallery.is-animated .project-description p{font-size:.8rem}.projects-gallery.is-animated .project-visual img{will-change:transform}}
@media(max-width:63.99rem){.project-info{grid-template-columns:1fr;gap:1.5rem}.project-visual{height:50svh;min-height:20rem}.projects-heading-bottom{align-items:start;flex-direction:column}.project-description{max-width:40rem}}
@media(max-width:39.99rem){.projects-heading h2{font-size:3.8rem}.project-stage{padding-block:1.5rem 3rem}.project-visual{height:55svh;min-height:18rem}.project-info h3{font-size:2.9rem}.project-description p{font-size:.9rem}.project-image-line{inset:.65rem}}
@media(prefers-reduced-motion:reduce){.project-visual img{transform:none}.project-scroll-line>span{transform:scaleX(1)}}
.projects-heading{padding-block:clamp(4rem,7vw,7rem)}
.projects-heading h2{max-width:none;margin-bottom:2.5rem}
.projects-heading-bottom p{max-width:38rem}
.projects-explore{display:inline-flex;gap:2rem;align-items:center;min-height:44px;font-size:.6rem;letter-spacing:.12em;border-bottom:1px solid var(--anthracite);white-space:nowrap}
.projects-explore>span{font-size:1.1rem}
.projects-jump-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:3rem}
.projects-jump{position:relative;display:flex;gap:1.25rem;align-items:start;padding:1.7rem 1.4rem;min-height:8rem;border:1px solid #383e4235;overflow:hidden;transition:background-color .45s ease,color .45s ease,border-color .45s ease}
.projects-jump:before{content:'';position:absolute;inset:0;background:linear-gradient(120deg,#383e4210,#383e4204);opacity:0;transform:translateX(-12%);transition:opacity .7s ease,transform .9s cubic-bezier(.22,1,.36,1);pointer-events:none}
.projects-jump>*{position:relative;z-index:1}
.projects-jump-index{font-size:.6rem;font-variant-numeric:tabular-nums;margin-top:.3rem;color:inherit;opacity:.7}
.projects-jump-copy{display:flex;flex-direction:column;gap:.75rem;flex:1}
.projects-jump-title{font-family:var(--display);font-size:clamp(1.4rem,2vw,2rem);line-height:1.15;letter-spacing:-.025em}
.projects-jump-location{font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;line-height:1.6}
.projects-jump-arrow{font-size:1.5rem;transition:transform .8s cubic-bezier(.22,1,.36,1);flex-shrink:0}
.projects-jump{background:transparent;color:inherit;font-family:var(--body);text-align:left;cursor:pointer;width:100%}
.projects-jump[aria-pressed="true"]{background:var(--anthracite);color:var(--white);border-color:var(--anthracite)}
.projects-jump[aria-pressed="true"]:before{background:linear-gradient(120deg,#ffffff0c,#ffffff03)}
.projects-jump:focus-visible{outline:2px solid var(--anthracite);outline-offset:4px}
.projects-filter-result{margin:1rem 0 0;font-size:.7rem;color:var(--anthracite)}
.projects-gallery .project-panel[hidden]{display:none}
.projects-jump:hover,.projects-jump:focus-visible{border-color:var(--anthracite)}
.projects-jump:hover:before,.projects-jump:focus-visible:before{opacity:1;transform:translateX(0)}
.projects-jump:hover .projects-jump-arrow,.projects-jump:focus-visible .projects-jump-arrow{transform:translate(2px,-2px)}
.project-switch{display:flex;justify-content:space-between;gap:2rem;margin-top:.75rem;flex-shrink:0}
.project-switch a{display:flex;align-items:center;gap:1rem;min-height:44px;font-size:.55rem;letter-spacing:.09em;color:var(--muted)}
.project-switch a>span{font-size:1rem;color:var(--white)}
.project-title-word{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.08em;margin-bottom:-.08em}
.project-title-word>span{display:inline-block}
@media(prefers-reduced-motion:no-preference){.projects-heading.is-reveal-ready .project-title-word>span{transform:translateY(110%);transition:transform 1s cubic-bezier(.22,1,.36,1);transition-delay:var(--word-delay,0ms)}.projects-heading.is-reveal-ready .projects-heading-bottom{opacity:0;transform:translateY(24px);transition:opacity .8s,transform .8s cubic-bezier(.22,1,.36,1)}.projects-heading.is-revealed .project-title-word>span{transform:translateY(0)}.projects-heading.is-revealed .projects-heading-bottom{opacity:1;transform:translateY(0);transition-delay:.15s}}
@media(prefers-reduced-motion:reduce){.projects-jump,.projects-jump:before,.projects-jump-arrow{transition:none}.projects-jump:before,.projects-jump:hover .projects-jump-arrow,.projects-jump:focus-visible .projects-jump-arrow{transform:none}}
@media(max-width:63.99rem){.projects-jump-nav{grid-template-columns:1fr}.projects-jump{min-height:6rem;padding:1.25rem}.projects-jump-title{font-size:1.8rem}.projects-jump-copy{gap:.5rem}}
@media(max-width:39.99rem){.projects-heading h2{font-size:3.5rem}}
