@font-face{font-family:"Vulf Mono";font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/vulf-mono.woff2') format('woff2')}@font-face{font-family:"Halvar Breitschrift";font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/halvar-regular.woff2') format('woff2')}@font-face{font-family:"Halvar Breitschrift";font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/halvar-medium.woff2') format('woff2')}:root{--paper:#EEE9DF;--green:#405536;--gutter:10px;--gap:10px;--grid:minmax(0,1fr) minmax(0,1fr) clamp(7.5rem,16vw,10rem);--sans:"Halvar Breitschrift",Arial,sans-serif;--mono:"Vulf Mono",monospace}*{box-sizing:border-box}html{background:var(--paper);scroll-behavior:smooth}body{margin:0;color:var(--green);background:var(--paper);font:400 clamp(1rem,2.15vw,2rem)/1 var(--sans);letter-spacing:-.035em;-webkit-font-smoothing:antialiased}a{color:inherit}::selection{color:var(--paper);background:var(--green)}:focus-visible{outline:2px solid currentColor;outline-offset:4px}.skip{position:fixed;z-index:100;top:-5rem;left:var(--gutter);padding:.7rem 1rem;color:var(--paper);background:var(--green);border-radius:2rem}.skip:focus{top:var(--gutter)}.projects-header{position:fixed;z-index:50;top:0;left:0;padding:10px;pointer-events:none}.projects-header nav{display:flex;gap:2px;pointer-events:auto}.pill{height:50px;padding:0 20px 4.2px;display:inline-flex;align-items:center;justify-content:center;color:var(--paper);background:rgba(64,85,54,.9);border-radius:50px;text-decoration:none;text-transform:lowercase;font:400 21px/.25 var(--mono);letter-spacing:-.05em;white-space:nowrap;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:padding-bottom .15s,background-color .1s}.pill:hover,.pill:focus-visible{padding-bottom:2.2px;background:var(--green)}.pill[aria-current=page]{background:var(--green)}.projects-hero{min-height:100svh;margin:0 var(--gutter);padding:clamp(6rem,12vw,10rem) 0 var(--gutter);display:flex;flex-direction:column}.projects-kicker,.project-heading,.project-detail{display:grid;grid-template-columns:var(--grid);gap:var(--gap);font:400 clamp(.72rem,1.25vw,1.05rem)/1.15 var(--mono);letter-spacing:-.04em}.projects-kicker{text-transform:lowercase}.projects-kicker span:first-child{grid-column:1/3}.projects-kicker span:last-child{grid-column:3;text-align:right}.projects-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap);height:clamp(13rem,25vw,22rem);margin:clamp(3rem,6vw,6rem) 0}.projects-gallery a{position:relative;min-width:0;overflow:hidden;color:var(--paper);background:var(--green);border-radius:clamp(1rem,2vw,2rem);text-decoration:none}.projects-gallery img{width:100%;height:100%;object-fit:cover;filter:saturate(.65) contrast(.9);opacity:.88;transition:filter .25s,opacity .25s,transform .3s cubic-bezier(.03,.71,.31,1.01)}.projects-gallery .gallery-logo img{object-fit:contain;padding:16%;filter:grayscale(1) contrast(.8);mix-blend-mode:screen}.projects-gallery span{position:absolute;left:var(--gutter);bottom:var(--gutter);font:400 clamp(.7rem,1.1vw,.95rem)/1 var(--mono);letter-spacing:-.04em;text-transform:lowercase}.projects-gallery a:hover img,.projects-gallery a:focus-visible img{filter:none;opacity:1;transform:scale(1.025)}.projects-hero h1{margin:0;font:500 clamp(5rem,18vw,17rem)/.72 var(--sans);letter-spacing:-.075em}.projects-intro{max-width:37ch;margin:clamp(2rem,5vw,5rem) 0 0;font-size:clamp(1.65rem,4.2vw,4.4rem);line-height:.98;letter-spacing:-.055em}.project-index{margin:0 var(--gutter);padding:clamp(5rem,10vw,10rem) 0}.section-title{margin:0 0 clamp(2rem,4vw,4rem);font:500 clamp(2rem,5vw,5rem)/.92 var(--sans);letter-spacing:-.06em}.project{border-top:1px solid currentColor}.project:last-child{border-bottom:1px solid currentColor}.project-link{display:block;padding:.55em 0;text-decoration:none;transition:padding .15s cubic-bezier(.03,.71,.31,1.01)}.project-link:hover,.project-link:focus-visible{padding-left:.4em;padding-right:.4em}.project-heading{align-items:baseline}.project-heading>span:first-child{grid-column:1;font-size:.72em;text-transform:lowercase}.project-heading h3{grid-column:2;margin:0;font:400 1em/1 var(--sans);letter-spacing:-.04em}.project-heading>span:last-child{grid-column:3;text-align:right}.project-detail{max-height:0;overflow:hidden;opacity:0;transition:max-height .3s,opacity .2s,padding .3s}.project-link:hover .project-detail,.project-link:focus-visible .project-detail{max-height:10rem;opacity:1;padding-top:1rem}.project-detail>span:first-child{grid-column:1}.project-detail p{grid-column:2;margin:0;max-width:43ch;font:400 clamp(.85rem,1.35vw,1.15rem)/1.15 var(--mono);letter-spacing:-.04em}.project-detail>span:last-child{grid-column:3;text-align:right}.projects-footer{display:flex;justify-content:flex-end;margin:0 var(--gutter);padding:var(--gutter) 0 min(7.5vh,5rem);border-top:1px solid currentColor;font:400 clamp(.8rem,1.3vw,1.1rem)/1 var(--mono);letter-spacing:-.04em}@media(max-width:700px){:root{--gutter:6px;--gap:6px;--grid:minmax(0,1fr) minmax(0,1fr) 6.7rem}.projects-header{padding:6px}.pill{height:40px;padding:0 16px 3.2px;font-size:16px}.projects-hero{min-height:auto;padding-top:6rem;padding-bottom:6rem}.projects-gallery{display:flex;height:min(72vw,19rem);margin:4rem 0 3rem;overflow-x:auto;scroll-snap-type:x mandatory}.projects-gallery a{flex:0 0 min(66vw,16rem);scroll-snap-align:start}.projects-hero h1{margin-top:0}.project-index{padding-top:5rem}.project-heading{grid-template-columns:2.5rem minmax(0,1fr) auto}.project-detail{display:grid;grid-template-columns:1fr}.project-detail>span:first-child,.project-detail p,.project-detail>span:last-child{grid-column:1}.project-detail p{margin-top:.75rem}.project-detail>span:last-child{margin-top:.75rem;text-align:left}.project-link:hover .project-detail,.project-link:focus-visible .project-detail{max-height:18rem}}@media(max-width:430px){.projects-hero h1{font-size:23vw}.projects-header nav{max-width:calc(100vw - 12px);overflow-x:auto}.projects-kicker{grid-template-columns:1fr auto}.projects-kicker span:first-child{grid-column:1}.projects-kicker span:last-child{grid-column:2}.project-heading{grid-template-columns:2rem minmax(0,1fr) auto}.project-heading h3{font-size:clamp(1rem,6vw,1.35rem)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.pill,.project-link,.project-detail{transition:none!important}}
/* About rhythm sync */
body{transition:.1s background-color}.projects-header .pill{color:var(--green);background:rgba(238,233,223,.8)}.projects-header .pill:hover,.projects-header .pill:focus-visible,.projects-header .pill[aria-current=page]{background:rgba(238,233,223,.96)}.projects-hero{min-height:auto;padding-bottom:clamp(4rem,8vw,8rem)}.projects-hero h1{font:500 clamp(2rem,3vw,3.75rem)/1.1 var(--sans);letter-spacing:-.02em}.projects-intro{max-width:62ch;margin:clamp(1.5rem,3vw,3rem) 0 0;font:500 clamp(2rem,3vw,3.75rem)/1.1 var(--sans);letter-spacing:-.02em}.project-index{margin:0 var(--gutter);padding:clamp(2rem,5vw,5rem) 0 clamp(5rem,10vw,10rem)}.section-title{margin:.75em 0 .5em;font:400 clamp(.85rem,1.2vw,1.05rem)/1 var(--mono);letter-spacing:-.04em;text-transform:lowercase}.work-list{margin:0;padding:0;list-style:none}.work-link{display:grid;grid-template-columns:var(--grid);gap:var(--gap);padding:.425em 0;color:inherit;text-decoration:none;font:400 clamp(1.1rem,1.6vw,1.4rem)/1 var(--sans);letter-spacing:-.02em;transition:padding .15s cubic-bezier(.03,.71,.31,1.01)}.work-link span:nth-child(1){grid-column:1}.work-link span:nth-child(2){grid-column:2}.work-link span:nth-child(3){grid-column:3;text-align:right}.work-link:hover,.work-link:focus-visible{padding-left:.4em;padding-right:.4em}.projects-footer{border-top:0}.project{border:0}.project:last-child{border:0}@media(max-width:700px){.projects-hero{padding-bottom:5rem}.projects-hero h1,.projects-intro{font-size:clamp(2rem,8vw,2.65rem)}.project-index{padding-top:2rem}.work-link{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 6.7rem;font-size:1.05rem}.section-title{font-size:.85rem}}@media(max-width:430px){.work-link{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 5.8rem}.work-link span:nth-child(2){text-align:left}}

@media(max-width:360px){.projects-header .pill{padding-left:12px!important;padding-right:12px!important}}

/* Projects rhythm and work cards */
body{background:var(--paper)!important}
.projects-hero{padding-bottom:clamp(2rem,3vw,3rem)}
.project-index{padding-top:clamp(1.25rem,2vw,2rem);padding-bottom:clamp(4rem,7vw,7rem)}
.section-title{margin:0 0 clamp(1rem,1.75vw,1.75rem)}
.work-list{display:grid;gap:clamp(.55rem,1vw,1rem)}
.work-link{min-height:clamp(5.25rem,7.25vw,7rem);align-items:center;padding:clamp(1rem,1.55vw,1.5rem) clamp(1rem,1.7vw,1.7rem);border-radius:clamp(.8rem,1.2vw,1.2rem);font-size:clamp(1.25rem,1.8vw,1.7rem);background:rgba(64,85,54,.055);transition:transform .2s cubic-bezier(.16,1,.3,1),background-color .2s!important}
.work-list li:nth-child(1) .work-link{background:rgba(244,178,116,.22)}
.work-list li:nth-child(2) .work-link{background:rgba(230,208,113,.25)}
.work-list li:nth-child(3) .work-link{background:rgba(169,99,97,.14)}
.work-list li:nth-child(4) .work-link{background:rgba(213,198,210,.45)}
.work-link:hover,.work-link:focus-visible{padding:clamp(1rem,1.55vw,1.5rem) clamp(1rem,1.7vw,1.7rem);transform:translateX(.35rem);background-color:rgba(64,85,54,.11)}
@media(max-width:700px){.projects-hero{padding-bottom:2.25rem}.project-index{padding-top:1.25rem}.work-list{gap:.5rem}.work-link{min-height:5.75rem;padding:1rem;font-size:1.1rem}.work-link:hover,.work-link:focus-visible{padding:1rem;transform:none}.work-list li:nth-child(1) .work-link{background:rgba(244,178,116,.22)}.work-list li:nth-child(2) .work-link{background:rgba(230,208,113,.25)}.work-list li:nth-child(3) .work-link{background:rgba(169,99,97,.14)}.work-list li:nth-child(4) .work-link{background:rgba(213,198,210,.45)}}

.work-link span:nth-child(3){white-space:nowrap}

.work-link{grid-template-columns:minmax(0,1fr) minmax(0,1fr) clamp(10.5rem,18vw,12rem)}
@media(max-width:700px){.work-link{grid-template-columns:minmax(0,1fr) auto;row-gap:.25rem}.work-link span:nth-child(1){grid-column:1;grid-row:1}.work-link span:nth-child(3){grid-column:2;grid-row:1;text-align:right}.work-link span:nth-child(2){grid-column:1/-1;grid-row:2;font-size:.82em;opacity:.68}}

.projects-hero{padding-bottom:clamp(2rem,2.25vw,2.5rem)}
.project-index{padding-top:clamp(.75rem,1.25vw,1.25rem)}
@media(max-width:700px){.projects-hero{padding-bottom:1.5rem}.project-index{padding-top:.75rem}}

/* Selected work: colour only on interaction */
.work-link,.work-list li:nth-child(n) .work-link{background:rgba(64,85,54,.055)!important}
.work-list li:nth-child(1) .work-link:hover,.work-list li:nth-child(1) .work-link:focus-visible{background:rgba(244,178,116,.32)!important}
.work-list li:nth-child(2) .work-link:hover,.work-list li:nth-child(2) .work-link:focus-visible{background:rgba(230,208,113,.36)!important}
.work-list li:nth-child(3) .work-link:hover,.work-list li:nth-child(3) .work-link:focus-visible{background:rgba(169,99,97,.22)!important}
.work-list li:nth-child(4) .work-link:hover,.work-list li:nth-child(4) .work-link:focus-visible{background:rgba(213,198,210,.7)!important}

/* Projects mirrors the About composition */
.projects-hero{min-height:0;display:flex;margin:0 var(--gutter);padding:0 0 clamp(6rem,9vw,9rem)}
.projects-statement{max-width:20.5ch;margin:1.7em 0 .8em;font:500 clamp(2.1rem,5.1vw,5rem)/1 var(--sans)!important;letter-spacing:-.035em}
.projects-particle{position:relative;display:inline-block;white-space:nowrap;color:inherit}
.projects-particle.is-ready{color:transparent}
.projects-particle-canvas{position:absolute;z-index:1;pointer-events:none;overflow:visible}
.projects-intro{max-width:30ch;margin:0 0 0 29%;font:500 clamp(1.65rem,3.35vw,3.4rem)/1.08 var(--sans)!important;letter-spacing:-.025em}
.projects-word{display:inline-block;white-space:nowrap}.projects-char{display:inline-block;will-change:transform;transition:transform .16s cubic-bezier(.16,1,.3,1)}
.project-index{display:flow-root;margin:0 var(--gutter);padding:0 0 clamp(4rem,7vw,7rem)}
.section-title{margin:0 0 .5em;font:400 .85em/1 var(--mono);letter-spacing:normal;text-transform:lowercase}
@media(max-width:700px){.projects-hero{padding-bottom:clamp(4rem,11vw,6rem)}.projects-statement{max-width:20.5ch;margin:1.7em 0 .8em;font-size:clamp(2.1rem,11.5vw,4rem)!important}.projects-intro{max-width:30ch;margin-left:0;font-size:clamp(1.5rem,7vw,1.9rem)!important;line-height:1.12}.project-index{padding-bottom:4rem}}
@media(prefers-reduced-motion:reduce){.projects-char{transition:none}.projects-particle-canvas{pointer-events:none}}

/* Exact alignment with About headline and section rhythm */
.projects-hero{padding-bottom:calc(clamp(6rem,9vw,9rem) + 1.25rem)}
.projects-hero .projects-statement{max-width:20.5ch;margin:1.7em 0 .8em;font:500 clamp(2.1rem,5.1vw,5rem)/1 var(--sans)!important;letter-spacing:-.035em}
.work-link{min-height:clamp(6rem,8vw,8rem)}
@media(max-width:700px){.projects-hero{padding-bottom:clamp(4rem,11vw,6rem)}.projects-hero .projects-statement{margin:1.7em 0 .8em}.work-link{min-height:5.75rem}}
