.project-index{max-width:1120px;margin:auto;padding:32px 24px 40px}.project-intro{color:var(--muted);line-height:1.8;max-width:650px;margin:18px 0 36px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.project-card{display:block;overflow:hidden;border:0;background:transparent}.project-card+.project-card{border-left:1px solid var(--line)}.project-card:hover{background:color-mix(in srgb,var(--fg) 3%,transparent)}.project-card:hover .project-cover{transform:scale(1.025)}.project-card:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.project-cover{height:270px;overflow:hidden;background:transparent;position:relative;transition:transform .7s}.windmill-cover img{width:100%;height:100%;display:block;object-fit:contain}.study-cover{display:flex;align-items:center;justify-content:center;background:transparent;color:#668195}.study-cover>span{position:absolute;top:22px;left:24px;font:12px var(--mono)}.study-cover svg{width:80%;height:70%}.project-copy{padding:26px}.project-copy h2{font-size:clamp(25px,3vw,40px);font-weight:500;display:flex;justify-content:space-between;margin:12px 0}.project-copy p:not(.kicker){font-size:13px;line-height:1.8;color:var(--muted);margin:0 0 20px}.project-copy small{font-size:11px;color:var(--muted)}.library-link,.back-link{display:inline-block;font-size:13px;margin:30px 0;color:var(--accent)}.project-section{padding-top:28px;margin-top:28px;border-top:1px solid var(--line)}.project-section h2{font-size:23px;font-weight:500}.project-section>p{color:var(--muted);font-size:13px}.project-file-list{list-style:none;padding:0;margin:24px 0}.project-file-list li{border-top:1px solid var(--line)}.project-file-list a{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 0;font-size:14px}.project-file-list span{overflow-wrap:anywhere}.project-file-list small{white-space:nowrap;color:var(--muted);font-size:11px}@media(max-width:640px){.project-grid{grid-template-columns:1fr;gap:0}.project-card+.project-card{border-left:0;border-top:1px solid var(--line)}.project-cover{height:230px}.project-copy{padding:22px}.project-file-list a{align-items:start;flex-direction:column;gap:8px}}
.project-grid{margin-top:44px}.project-card{padding:24px}.project-cover{border-radius:0}.windmill-cover img{mix-blend-mode:multiply}@media(prefers-color-scheme:dark){.windmill-cover img{mix-blend-mode:normal}}@media(prefers-reduced-motion:reduce){.project-cover{transition:none}}

.study-cover img{width:100%;height:100%;object-fit:contain}.windmill-cover img{mix-blend-mode:normal}

/* Project index: give the single existing project a full-width, readable feature. */
.project-index:has(.project-grid)>h1{font-size:32px;letter-spacing:-.8px;line-height:1.2}
.project-index .project-grid{display:block;margin-top:32px}
.project-index .project-card{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(220px,1fr);align-items:center;gap:clamp(24px,4vw,56px);padding:clamp(20px,3vw,40px);border:1px solid var(--line);background:var(--paper)}
.project-index .project-card:hover{background:color-mix(in srgb,var(--paper) 96%,var(--fg))}
.project-index .project-cover{height:clamp(250px,48vh,440px);aspect-ratio:auto}
.project-index .project-copy{padding:0}
.project-index .project-copy h2{align-items:center;gap:24px;margin:0;font-size:clamp(25px,2.8vw,36px)}
.project-index .project-copy h2 span{font-size:.75em;color:var(--muted)}
@media(max-width:700px){
 .project-index{padding:24px 20px 40px}.project-index:has(.project-grid)>h1{font-size:28px}.project-index .project-grid{margin-top:24px}
 .project-index .project-card{grid-template-columns:1fr;gap:16px;padding:20px}
 .project-index .project-cover{height:280px;aspect-ratio:auto}
 .project-index .project-copy h2{font-size:25px}
}
