.project{background:var(--bg-color);box-sizing:border-box;color:var(--home-text);padding:clamp(6rem,12svh,7.5rem) clamp(1.25rem,3vw,3rem) clamp(4rem,8vw,7rem)}.project-header,.project-chapters{grid-template-columns:minmax(0,1fr);max-width:1760px;margin-inline:auto;display:grid}.project-header{gap:clamp(2rem,6vw,3rem)}.project-hero img,.project-hero video{view-transition-class:project-hero;width:100%;height:auto;display:block}.project-intro{max-width:34rem}.project-chapters{counter-reset:chapter;gap:clamp(3rem,8vw,6rem);margin-top:clamp(3.5rem,9vw,8rem)}.chapter-row{grid-template-columns:minmax(0,1fr);gap:clamp(1.5rem,4vw,2.5rem);display:grid}.chapter-text,.project-end{max-width:34rem}.chapter-text.project-description{margin-top:0}.project-kicker{letter-spacing:.18em;text-transform:uppercase;color:var(--home-muted);flex-wrap:wrap;align-items:center;gap:.4rem 1.25rem;margin:0 0 clamp(1.25rem,2vw,1.75rem);font-size:.7rem;font-weight:600;display:flex}.project-counter{color:var(--home-blue)}.project-title{font-family:var(--heading-font);letter-spacing:-.015em;text-wrap:balance;margin:0;font-size:clamp(3rem,5.4vw,5.5rem);font-weight:400;line-height:.95}.project-subtitle{margin:1rem 0 0}.project-description{margin-top:clamp(1.5rem,2.5vw,2.25rem)}.project-description p{color:var(--home-muted);margin:0 0 1em;font-size:1.3rem;font-weight:400;line-height:1.8}.project-description p strong{color:var(--home-text);font-weight:600}.project-description>p:first-child{color:var(--home-text);font-size:clamp(1.05rem,1.3vw,1.2rem);font-weight:400;line-height:1.6}.project-description>p:last-of-type{margin-bottom:clamp(1.25rem,2vw,1.75rem)}.project-description .chapter{border-top:1px solid var(--border-soft);counter-increment:chapter;position:relative}.project-description .chapter:before{content:"";background:var(--home-accent);width:100%;height:1px;transform:scaleX(var(--chapter-progress,0));transform-origin:0;position:absolute;top:-1px;left:0}.project-description .chapter-title{letter-spacing:.18em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:1rem;margin:0 0 .6rem;padding:.8rem 0 0;font-size:clamp(1rem,1vw,1.2rem);font-weight:600;transition:color .4s;display:flex}.project-description .chapter-title:after{content:counter(chapter, decimal-leading-zero);letter-spacing:.1em;color:var(--home-muted);font-size:.68rem;font-weight:500}.chapter-row.is-active .chapter-title{color:var(--home-accent)}.project-description .chapter-group{font-family:var(--heading-font);color:#0000;background:linear-gradient(var(--home-accent), var(--home-accent)) no-repeat 0 0 / 0% 100%, linear-gradient(var(--home-muted), var(--home-muted));letter-spacing:-.02em;background-clip:text;margin:0 0 clamp(1rem,2vw,1.5rem);font-size:clamp(1.8rem,2.6vw,2.5rem);font-weight:400;line-height:1;transition:background-size .9s cubic-bezier(.65,0,.35,1)}.project-description .chapter-group.is-reached{background-size:100% 100%,auto}@media (prefers-reduced-motion:reduce){.project-description .chapter-group{transition:none}}.project-description .chapter :is(ol,ul){color:var(--home-muted);gap:.6rem;margin:0 0 1.4rem;padding-left:1.3rem;font-size:.95rem;font-weight:400;line-height:1.7;display:grid}.project-description .chapter ol{list-style:decimal}.project-description .chapter ul{list-style:outside}.project-description .chapter li::marker{color:var(--home-accent);font-weight:600}.project-description .chapter li strong{color:var(--home-text);font-weight:600}.project-description .chapter>p:last-child{margin-bottom:1.4rem}.project-meta{margin:0}.project-meta>div{border-top:1px solid var(--border-soft);grid-template-columns:6.5rem minmax(0,1fr);gap:1rem;padding:.6rem 0;display:grid}.project-meta>div:last-child{border-bottom:1px solid var(--border-soft)}.project-meta dt{letter-spacing:.18em;text-transform:uppercase;color:var(--home-muted);font-size:.72rem;font-weight:600;line-height:1.9}.project-meta dd{margin:0;font-size:.85rem;line-height:1.6}.project-actions{flex-wrap:wrap;gap:.75rem;margin-top:clamp(1.5rem,2.5vw,2rem);display:flex}.project-button{border:1px solid var(--home-blue);border-radius:var(--radius-pill);background:var(--home-blue);color:var(--home-bg);padding:.65rem 1.4rem;font-size:.8rem;font-weight:600;text-decoration:none;transition:background .2s,border-color .2s,color .2s;display:inline-block}.project-button:hover{border-color:var(--home-text);background:var(--home-text)}.project-button:focus-visible{outline:2px solid var(--home-accent);outline-offset:3px}.project-tags{margin-top:1rem}.project-next{border-top:1px solid var(--border-soft);color:var(--home-text);margin-top:clamp(1.75rem,3vw,2.5rem);padding-top:1.1rem;text-decoration:none;display:block}.project-next-label{letter-spacing:.18em;text-transform:uppercase;color:var(--home-muted);font-size:.72rem;font-weight:600;display:block}.project-next-title{letter-spacing:0;font-size:clamp(1.6rem,2.4vw,2.1rem);font-weight:400;font-family:var(--heading-font);margin-top:.3rem;transition:color .2s,translate .3s cubic-bezier(.22,1,.36,1);display:inline-block}.project-next:hover .project-next-title{color:var(--home-accent);translate:.3rem}.project-next:focus-visible{outline:2px solid var(--home-blue);outline-offset:4px}.project-back{color:var(--home-muted);align-items:center;gap:.4rem;margin-top:1rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:color .2s;display:inline-flex}.project-back span{transition:translate .3s cubic-bezier(.22,1,.36,1)}.project-back:hover{color:var(--home-text)}.project-back:hover span{translate:-.25rem}.project-back:focus-visible{outline:2px solid var(--home-blue);outline-offset:4px}.project-gallery{grid-template-columns:repeat(6,minmax(0,1fr));align-items:start;gap:clamp(.75rem,1.2vw,1.25rem);display:grid}.project-photo{grid-column:span 6;margin:0}.project-photo img,.project-photo video{width:100%;height:auto;display:block}.project-photo-window{overscroll-behavior:auto;border:1px solid var(--border-soft);scrollbar-width:thin;max-height:min(85vh,60rem);overflow-y:auto}.project-photo-window:focus-visible{outline:2px solid var(--home-blue);outline-offset:3px}.project-photo figcaption{color:var(--home-muted);margin-top:.6rem;font-size:.75rem;line-height:1.5}.project-placeholder{border:1.5px dashed var(--border-soft);box-sizing:border-box;text-align:center;border-radius:.75rem;place-content:center;gap:.5rem;min-height:14rem;padding:1.5rem;display:grid}.project-placeholder--hero{aspect-ratio:4/3}.project-placeholder-label{letter-spacing:.18em;text-transform:uppercase;color:var(--home-accent);font-size:.7rem;font-weight:600}.project-placeholder p{max-width:26rem;color:var(--home-muted);margin:0 auto;font-size:.9rem;line-height:1.5}.project-gallery[data-reveal] .project-photo{opacity:0;transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1);transform:translateY(2.5rem)}.project-gallery[data-reveal] .project-photo.is-visible{opacity:1;transform:none}@media (width>=640px){.project-photo[data-size=half]{grid-column:span 3}.project-photo[data-size=third]{grid-column:span 2}}@media (width>=1024px){.project-header{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;column-gap:clamp(3rem,6vw,7.5rem)}.chapter-row{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;column-gap:clamp(3rem,6vw,7.5rem)}.chapter-text{top:var(--sticky-top,6rem);position:sticky}.chapter-row--wide{grid-template-columns:minmax(0,1fr)}.chapter-row--wide .chapter-text{max-width:none;position:static}.chapter-row--wide .chapter{columns:2;column-gap:clamp(3rem,6vw,7.5rem)}.chapter-row--wide .chapter-title{column-span:all}.chapter-row--wide .chapter :is(p,li){break-inside:avoid}}@media (prefers-reduced-motion:reduce){.project-gallery[data-reveal] .project-photo{opacity:1;transition:none;transform:none}}::view-transition-group(.project-hero){animation-duration:.7s;animation-timing-function:cubic-bezier(.65,0,.35,1);overflow:hidden}::view-transition-old(.project-hero),::view-transition-new(.project-hero){object-fit:cover;width:100%;height:100%}::view-transition-old(.project-hero){animation:.25s ease-out both vt-fade-out}::view-transition-new(.project-hero){animation:.25s ease-out both vt-fade-in}::view-transition-old(root){animation:.3s ease-out both vt-fade-out}::view-transition-new(root){animation:.3s ease-out .1s both vt-fade-in}@keyframes vt-fade-out{to{opacity:0}}@keyframes vt-fade-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}
