.projects-page{max-width:var(--page-max);padding:calc(3.75rem + var(--space-9)) var(--page-margin) 0;margin:0 auto}.projects-intro,.projects-key,.projects-group__band,.project-entry{grid-template-columns:repeat(var(--columns), minmax(0, 1fr));column-gap:var(--gutter);display:grid}.projects-intro{padding-bottom:var(--space-8)}.projects-intro__kicker{color:var(--green-deep);grid-column:1/-1;margin:0}.projects-intro__title{margin:var(--space-5) 0 0;font-family:var(--font-display);font-size:var(--type-section-title);font-stretch:var(--wdth-title);font-weight:var(--weight-medium);letter-spacing:var(--tracking-title);line-height:var(--leading-title);grid-column:1/span 7}.projects-intro__aside{margin-top:var(--space-5);grid-column:9/-1;align-self:end}.projects-intro__lead{max-width:var(--measure-body);font-size:var(--type-body);line-height:var(--leading-body);color:var(--text-on-light-muted);margin:0}.projects-intro__back{align-items:center;gap:var(--space-2);min-height:2.75rem;margin-top:var(--space-3);font-family:var(--font-display);font-size:var(--type-link);font-weight:var(--weight-medium);letter-spacing:var(--tracking-link);color:var(--text-on-light-muted);transition:color var(--duration-micro) var(--ease-soft);display:inline-flex}.projects-intro__back:hover,.projects-intro__back:focus-visible{color:var(--text-on-light)}.role-figure{fill:none;width:auto;stroke:var(--text-on-light-muted);stroke-width:1px;flex:none}.role-figure__node--active{fill:var(--accent);stroke:var(--accent)}.role-figure--key{height:3rem;margin-bottom:var(--space-6);align-self:center}.role-figure--band{height:4rem;margin-bottom:var(--space-5)}.projects-key__cell:hover .role-figure,.projects-key__cell:focus-visible .role-figure{stroke:var(--text-on-light)}.projects-key{row-gap:var(--space-6);border-top:var(--border-light)}.projects-key__cell{padding-block:var(--space-5);text-align:center;flex-direction:column;grid-column:span 4;align-items:center;display:flex;position:relative}.projects-key__cell:before{content:"";background:var(--accent);transform-origin:0;height:1px;transition:transform var(--duration) var(--ease-soft);position:absolute;top:-1px;left:0;right:0;transform:scaleX(0)}.projects-key__cell:hover:before,.projects-key__cell:focus-visible:before{transform:scaleX(1)}.projects-key__name{font-family:var(--font-display);font-size:clamp(1.125rem,1.6vw,1.375rem);font-stretch:var(--wdth-project-title);font-weight:var(--weight-medium);letter-spacing:var(--tracking-title);line-height:1.1}.projects-key__definition{max-width:28ch;margin:var(--space-3) auto 0;font-size:var(--type-body);line-height:1.45}.projects-key__count{padding-top:var(--space-5);font-variant-numeric:tabular-nums;color:var(--text-on-light-muted);margin:auto 0 0}.projects-group{margin-top:var(--space-section)}.projects-group:first-of-type{margin-top:var(--space-9)}.projects-group__band{padding-top:var(--space-7);border-top:var(--border-light)}.projects-group__heading{grid-column:1/span 6}.projects-group__eyebrow{color:var(--green-deep);margin:0}.projects-group__title{margin:var(--space-4) 0 0;font-family:var(--font-display);font-size:var(--type-project-title);font-stretch:var(--wdth-title);font-weight:var(--weight-medium);letter-spacing:var(--tracking-title);line-height:var(--leading-title)}.projects-group__lead{max-width:var(--measure-body);margin:var(--space-5) 0 0;font-size:var(--type-body-sm);color:var(--text-on-light-muted);grid-column:8/-1;align-self:end;line-height:1.55}.projects-list{margin:var(--space-8) 0 0;padding:0;list-style:none}.project-entry{align-items:start;row-gap:var(--space-5);padding-block:var(--space-8);border-top:var(--border-light)}.projects-list>.project-entry:last-child{border-bottom:var(--border-light)}.project-entry__identity{grid-column:1/span 4}.project-entry__account{grid-column:6/span 5}.project-entry__stack{padding-left:var(--space-5);border-left:var(--border-light);flex-direction:column;grid-column:11/-1;align-self:stretch;display:flex}.project-entry__stack-label{gap:var(--space-2);margin:0 0 var(--space-4);color:var(--text-on-light);align-items:center;display:flex}.stack-mark{width:12px;height:12px;stroke:var(--text-on-light-muted);stroke-width:1px;flex:none}.stack-mark__top{stroke:var(--accent)}.project-entry__stack ul{font-family:var(--font-display);font-size:var(--type-nav);font-stretch:var(--wdth-meta);font-weight:var(--weight-medium);letter-spacing:.01em;color:var(--text-on-light-muted);margin:0;padding:0;line-height:2;list-style:none}.project-entry__title{margin:0}.project-entry__title source{display:none}.project-entry__logo{--logo-base:1.6rem;width:auto;max-width:8.5rem;margin:0 0 var(--space-5);object-position:left center}.project-entry__name{font-family:var(--font-display);font-size:clamp(1.375rem,2.2vw,1.75rem);font-stretch:var(--wdth-project-title);font-weight:var(--weight-medium);letter-spacing:var(--tracking-title);line-height:1.15;display:block}.project-entry__role{margin:var(--space-4) 0 0;font-family:var(--font-display);font-size:var(--type-body-sm);font-stretch:var(--wdth-meta);font-weight:var(--weight-medium);letter-spacing:.01em;color:var(--text-on-light);line-height:1.45}.project-entry__frame{font-weight:var(--weight-regular);color:var(--text-on-light-muted);display:block}.project-entry__context{max-width:var(--measure-body);font-size:var(--type-body-sm);color:var(--text-on-light-muted);margin:0;line-height:1.55}.project-entry__contribution{max-width:var(--measure-body);margin:var(--space-5) 0 0;font-size:var(--type-body);line-height:var(--leading-body)}.project-entry__outcome{max-width:var(--measure-body);margin:var(--space-6) 0 0;padding-left:var(--space-5);border-left:3px solid var(--accent)}.project-entry__outcome-label{color:var(--text-on-light-muted);margin:0}.project-entry__outcome-text{margin:var(--space-3) 0 0;font-size:clamp(1.0625rem,1.5vw,1.25rem);line-height:1.45}.project-entry__link{margin:var(--space-6) 0 0;font-family:var(--font-display);font-size:var(--type-link);font-weight:var(--weight-medium);letter-spacing:var(--tracking-link)}.project-entry__link a{border-bottom:var(--border-light);transition:border-color var(--duration-micro) var(--ease-soft);padding-bottom:2px}.project-entry__link a:hover,.project-entry__link a:focus-visible{border-bottom-color:var(--accent)}.projects-page__footer-band{max-width:var(--page-max);padding:var(--space-9) var(--page-margin) var(--space-7);margin:0 auto}.site-footer{justify-content:space-between;align-items:baseline;gap:var(--space-5);border-top:var(--border-light);font-family:var(--font-display);font-size:var(--type-meta);font-stretch:var(--wdth-meta);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-meta);line-height:var(--leading-meta);text-transform:uppercase;color:var(--text-on-light-muted);flex-wrap:wrap;padding-top:1.25rem;display:flex}.site-footer nav{flex-wrap:wrap;gap:1.25rem;display:flex}.site-footer nav a{align-items:center;min-height:2.75rem;margin-block:-.875rem;display:inline-flex}.site-footer a:hover,.site-footer a:focus-visible{color:var(--text-on-light)}@media (width<=1199px){.projects-intro__title{grid-column:1/span 6}.projects-intro__aside{grid-column:8/-1}.project-entry__identity{grid-column:1/span 4}.project-entry__account{grid-column:6/span 4}.project-entry__stack{grid-column:11/-1}}@media (width<=899px){.projects-intro,.projects-key,.projects-group__band,.project-entry{grid-template-columns:minmax(0,1fr)}.projects-intro__title,.projects-intro__aside,.projects-key__cell,.projects-group__heading,.projects-group__lead,.project-entry__identity,.project-entry__account,.project-entry__stack{grid-column:1/-1}.project-entry__stack{padding:var(--space-5) 0 0;border-top:var(--border-light);border-left:0}.project-entry__stack ul{gap:0 var(--space-2);flex-wrap:wrap;line-height:1.6;display:flex}.project-entry__stack li+li:before{content:"· "}.projects-intro__aside{margin-top:var(--space-6)}.projects-key{row-gap:0}.projects-key__cell+.projects-key__cell{border-top:var(--border-light)}.projects-key__cell{padding-bottom:var(--space-5)}.projects-key__count{margin-top:0}.projects-group__lead{align-self:start}.project-entry{row-gap:var(--space-6)}.projects-group{margin-top:var(--space-9)}}@media (width<=719px){.projects-page{padding-top:calc(3.75rem + var(--space-7))}.project-entry{padding-block:var(--space-7)}.project-entry__outcome{padding-left:var(--space-4)}}@media (prefers-reduced-motion:reduce){.projects-intro__back,.projects-key__cell:before,.project-entry__link a{transition:none}}
