 .projects-intro,.projects-browser,.projects-close{width:min(1800px,92%);margin:auto}
*{box-sizing:border-box}html{background:var(--cf-night);color:var(--cf-ink);color-scheme:dark;scroll-padding-top:190px}body{margin:0;font:400 16px/1.6 var(--cf-body);font-synthesis:none}a{color:inherit;text-decoration:none}button,summary{font:inherit;cursor:pointer}button{color:inherit}h1,h2,p,figure{margin:0}img{display:block;max-width:100%}[hidden]{display:none!important}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--cf-light);outline-offset:6px}
.projects-intro{padding:72px 0 20px;position:relative;overflow:hidden}.projects-kicker{font:11px var(--cf-mono);color:var(--cf-label);letter-spacing:.06em;display:flex;justify-content:space-between;gap:20px}.projects-kicker>span:first-child{color:var(--cf-light)}.projects-heading{display:flex;align-items:end;gap:6%;padding:46px 0 42px}.projects-heading h1{font:500 clamp(56px,6.6vw,116px)/1.08 var(--cf-display);text-transform:uppercase;letter-spacing:-.012em;flex:1;min-width:0}.projects-heading h1 span{display:block}.projects-emphasis{color:var(--cf-emphasis)}.projects-heading p{font-size:15px;color:var(--cf-muted);max-width:290px;padding-bottom:8px}.projects-signal{width:100%;height:52px;display:block;fill:none;stroke:var(--cf-line);stroke-width:1;overflow:visible}.projects-signal-light{stroke:var(--cf-blue);stroke-width:1.5;stroke-dasharray:1;animation:project-trace 1.3s var(--cf-ease) both}.projects-heading h1 span{animation:project-enter .85s var(--cf-ease) both}.projects-heading h1 span:nth-child(2){animation-delay:.09s}
.projects-filter-bar{position:sticky;top:96px;z-index:10;background:var(--cf-night);border-bottom:1px solid var(--cf-line);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0}.project-filters{display:flex;flex-wrap:wrap;gap:8px}.project-filters button{border:1px solid var(--cf-line);border-radius:30px;background:transparent;padding:10px 16px;min-height:44px;font-size:13px;white-space:nowrap;transition:background .2s,border-color .2s,color .2s}.project-filters button span{font:10px var(--cf-mono);margin-left:8px;color:var(--cf-label)}.project-filters button:hover{border-color:var(--cf-light)}.project-filters button[aria-pressed=true]{background:var(--cf-ink);color:var(--cf-night);border-color:var(--cf-ink)}.project-filters button[aria-pressed=true] span{color:#365b71}.projects-count{flex:none;font:11px var(--cf-mono);color:var(--cf-muted);min-width:75px;text-align:right}.projects-no-script{margin:20px 0;color:var(--cf-muted)}
.projects-close{padding:90px 0;display:grid;grid-template-columns:1fr 1fr;gap:24px 36px;margin-top:90px;border-top:1px solid var(--cf-line)}.eyebrow{font:11px var(--cf-mono);color:var(--cf-light);grid-column:1/-1}.projects-close h2{font:500 clamp(54px,6vw,108px)/1.1 var(--cf-display);text-transform:uppercase}.projects-close-link{align-self:end;justify-self:start;padding:16px 0;border-bottom:1px solid var(--cf-light);display:flex;gap:48px;font-size:17px}.projects-close-link span{color:var(--cf-light)}
@keyframes project-trace{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes project-enter{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@media(max-width:1100px){.projects-heading{display:block}.projects-heading p{margin-top:26px;max-width:440px}.projects-filter-bar{display:block}.projects-count{text-align:left;margin-top:16px}}
@media(max-width:800px){.projects-intro{padding-top:44px}.projects-filter-bar{top:80px}.projects-heading h1{font-size:clamp(49px,8vw,74px)}.projects-kicker{font-size:9px}.project-filters button{font-size:12px;padding:10px 13px}}
@media(max-width:700px){.projects-heading{padding:30px 0 18px}.projects-intro{padding-top:34px}.projects-kicker span:last-child{display:none}.projects-filter-bar{position:relative;top:auto;padding:16px 0}.projects-count{margin-top:12px}.projects-heading h1{font-size:clamp(42px,8.5vw,59px)}.projects-heading p{font-size:14px;margin-top:22px}.projects-signal{height:30px}.projects-close{grid-template-columns:1fr;margin-top:60px;padding:50px 0;gap:22px}.projects-close h2{font-size:54px}.projects-close-link{font-size:14px;gap:25px}html{scroll-padding-top:100px}}
@media(min-width:801px) and (max-height:800px){.projects-intro{padding-top:36px;padding-bottom:12px}.projects-heading{padding-top:28px;padding-bottom:20px}.projects-heading h1{font-size:clamp(56px,5.6vw,94px)}.projects-signal{height:30px}.projects-filter-bar{padding:18px 0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}html[data-motion=off] *,html[data-motion=off] *:after{animation:none!important;transition:none!important}

.projects-grid{padding-top:28px;scroll-margin-top:190px}
@media(max-width:700px){.projects-grid{padding-top:15px}}

/* A second, independent dimension without another wall of filter buttons. */
.projects-filter-bar{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,280px);gap:12px 28px;padding:18px 0;top:var(--shell-height,96px)}
.project-filters{grid-column:1/-1}
.project-search-control{display:grid;gap:6px;margin:0;min-width:0;max-width:640px}
.project-search-control label{font:10px/1.5 var(--cf-mono);color:var(--cf-muted)}
.project-search-field{display:flex;align-items:center;min-width:0;border:1px solid var(--cf-line);background:var(--cf-night)}
.project-search-field>svg{flex:none;width:18px;height:18px;margin-left:14px;fill:none;stroke:var(--cf-light);stroke-width:1.5}
.project-search-field input{min-width:0;width:100%;height:46px;padding:10px 12px;border:0;border-radius:0;background:transparent;color:var(--cf-ink);font:400 14px/1.5 var(--cf-body)}
.project-search-field input::placeholder{color:var(--cf-muted);opacity:1}
.project-search-field input::-webkit-search-cancel-button{display:none}
.project-search-field:focus-within{border-color:var(--cf-light);outline:2px solid var(--cf-light);outline-offset:3px}
.project-search-field input:focus-visible{outline:none}
.project-search-clear{flex:none;width:44px;height:46px;border:0;background:none;color:var(--cf-muted);font:300 24px/1 var(--cf-body)}
.project-search-clear:hover{color:var(--cf-light)}
.project-filters button{scroll-margin-top:calc(var(--shell-height,96px) + 20px)}
.project-industry-control{display:grid;gap:6px}.project-industry-control label{font:10px/1.5 var(--cf-mono);color:var(--cf-muted)}
.project-industry-control select{font:400 14px/1.5 var(--cf-body);color:var(--cf-ink);background:var(--cf-night);border:1px solid var(--cf-line);border-radius:0;min-height:44px;padding:10px 32px 10px 12px;width:100%}
.project-industry-control select:focus-visible{outline:2px solid var(--cf-light);outline-offset:3px}
.projects-filter-status{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:20px}.projects-count{margin:0;text-align:left;line-height:1.6}
.projects-count{min-width:0;flex:1;overflow-wrap:anywhere}
.projects-filter-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 25px}.project-industry-overview{display:inline-flex;align-items:center;min-height:44px;font-size:13px;color:var(--cf-light);border-bottom:1px solid var(--cf-line)}
.project-filter-reset{background:none;border:0;border-bottom:1px solid var(--cf-line);min-height:44px;padding:8px 0;color:var(--cf-ink);font-size:13px}
.industry-browser{border-bottom:1px solid var(--cf-line);margin-bottom:25px}.industry-browser summary{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 0;min-height:44px;list-style:none;font:500 14px/1.6 var(--cf-body);cursor:pointer;color:var(--cf-ink)}.industry-browser summary::-webkit-details-marker{display:none}.industry-browser summary>span{color:var(--cf-light);font-size:23px}
.industry-index{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 30px;padding-bottom:24px}.industry-index a{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;min-height:44px;border-top:1px solid var(--cf-line);font-size:14px}.industry-index a>span:last-child{font:11px/1.6 var(--cf-mono);color:var(--cf-muted);white-space:nowrap}.industry-index a>span:last-child>span{font:20px var(--cf-body);color:var(--cf-light);padding-left:12px}.projects-empty{padding:45px 0;color:var(--cf-muted);max-width:55ch}
.projects-empty>p:first-child{font:500 clamp(24px,3vw,34px)/1.3 var(--cf-body);color:var(--cf-ink);margin-bottom:12px}
.projects-empty .project-filter-reset{margin-top:18px;display:inline-flex;gap:25px;align-items:center;color:var(--cf-light)}
@media(max-width:1100px){.projects-filter-bar{grid-template-columns:1fr}.project-industry-control{max-width:360px}.industry-index{grid-template-columns:1fr 1fr}}
@media(min-width:701px) and (max-width:1100px){.projects-filter-bar{grid-template-columns:minmax(0,1fr) minmax(190px,34%)}.project-industry-control{max-width:none}}
@media(max-width:700px){.projects-filter-bar{position:relative;top:auto}.industry-index{grid-template-columns:1fr}.projects-filter-status{align-items:flex-start}.projects-count{max-width:65%;line-height:1.8}.project-filter-reset{white-space:nowrap}.industry-browser summary{font-size:13px}}
@media(max-width:700px){.projects-filter-status{flex-wrap:wrap;gap:8px}.projects-count{max-width:100%;width:100%}}
@media(max-width:700px){.project-search-field input{font-size:16px}.projects-count{flex:auto}}
/* A tall toolbar must not trap the reading area in a short landscape viewport. */
@media(max-height:800px){.projects-filter-bar{position:relative;top:auto}}
