html.page,body.page{overflow-x:hidden}body.page{background:var(--ink);--accent-now: var(--ember)}.site-header:before{content:"";position:absolute;inset:0 0 auto;height:220%;background:linear-gradient(180deg,rgba(8,7,6,.6) 0%,transparent 100%);pointer-events:none;z-index:-1}.page-intro{padding:clamp(8rem,22vh,13rem) var(--edge) clamp(2.5rem,6vw,5rem);max-width:1500px}.page-eyebrow{display:block;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ember)}.page-title{font-family:var(--font-display);font-weight:400;font-size:clamp(3rem,8vw,7.5rem);line-height:.98;letter-spacing:-.01em;color:var(--bone);margin:var(--s-6) 0 var(--s-8)}.page-title em{font-style:italic;color:var(--ember)}.page-lede{max-width:46ch;font-size:var(--fs-body);font-weight:300;line-height:1.75;color:var(--bone-dim)}.project-list{display:flex;flex-direction:column;gap:clamp(4rem,9vw,8rem);padding:clamp(1rem,3vw,3rem) var(--edge) clamp(5rem,10vw,9rem)}.project-row{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(2rem,5vw,5.5rem);align-items:center;color:inherit}.project-row:nth-child(2n) .project-media{order:2}.project-media{position:relative;overflow:hidden;aspect-ratio:4 / 3;background:var(--ink-soft)}.project-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.92) brightness(.86);transition:transform 1s var(--ease-out),filter .6s var(--ease-out)}.project-row:hover .project-media img{transform:scale(1.045);filter:saturate(1) brightness(.98)}.project-media-index{position:absolute;top:var(--s-6);left:var(--s-6);font-family:var(--font-mono);font-size:.74rem;letter-spacing:.1em;color:var(--bone);mix-blend-mode:difference}.project-meta{max-width:40ch}.project-meta .pm-cat{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ash)}.project-meta .pm-name{font-family:var(--font-display);font-weight:400;font-size:clamp(2.2rem,4vw,3.6rem);line-height:1.02;color:var(--bone);margin:var(--s-4) 0 var(--s-3);transition:color var(--dur-fast) var(--ease-out)}.project-row:hover .pm-name{color:var(--ember)}.project-meta .pm-loc{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--bone-dim)}.project-meta .pm-tag{margin-top:var(--s-6);font-size:var(--fs-body);font-weight:300;line-height:1.7;color:var(--bone-dim)}.project-meta .pm-link{display:inline-flex;align-items:center;gap:var(--s-4);margin-top:var(--s-8);font-family:var(--font-mono);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bone)}.pm-link .cta-rule{display:inline-block;width:56px;height:1px;background:var(--bone);transition:width var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.pm-link .cta-arrow{color:var(--ember);transition:transform var(--dur-fast) var(--ease-out)}.project-row:hover .pm-link{color:var(--ember)}.project-row:hover .pm-link .cta-rule{width:84px;background:var(--ember)}.project-row:hover .pm-link .cta-arrow{transform:translate(6px)}.project-hero{position:relative;height:88vh;min-height:520px;overflow:hidden}.project-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.project-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,7,6,.35) 0%,transparent 30%,transparent 55%,rgba(8,7,6,.85) 100%)}.project-hero-inner{position:absolute;left:0;bottom:clamp(2.5rem,6vw,5rem);width:100%;padding:0 var(--edge);z-index:2}.ph-back{display:inline-flex;align-items:center;gap:var(--s-3);margin-bottom:var(--s-8);font-family:var(--font-mono);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bone-dim);transition:color var(--dur-fast) var(--ease-out)}.ph-back:hover{color:var(--ember)}.ph-name{font-family:var(--font-display);font-weight:400;font-size:clamp(3rem,8vw,7rem);line-height:.98;color:var(--bone)}.ph-meta{display:flex;flex-wrap:wrap;gap:var(--s-6);margin-top:var(--s-6);font-family:var(--font-mono);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bone-dim)}.ph-meta .dot{color:var(--ember)}.project-overview{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(2.5rem,6vw,6rem);padding:clamp(4rem,9vw,8rem) var(--edge);align-items:start}.overview-lead{font-family:var(--font-display);font-weight:400;font-size:clamp(1.8rem,3.2vw,2.8rem);line-height:1.25;color:var(--bone);margin-bottom:var(--s-8)}.overview-body p{font-size:var(--fs-body);font-weight:300;line-height:1.8;color:var(--bone-dim);max-width:56ch}.overview-body p+p{margin-top:var(--s-6)}.facts{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line)}.fact{display:flex;justify-content:space-between;gap:var(--s-6);padding:var(--s-4) 0;border-bottom:1px solid var(--line-soft)}.fact dt{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ash)}.fact dd{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.04em;color:var(--bone-dim);text-align:right}.project-gallery{padding:0 var(--edge) clamp(4rem,9vw,8rem)}.gallery-head{display:flex;align-items:baseline;gap:var(--s-6);margin-bottom:clamp(1.5rem,4vw,3rem)}.gallery-head h2{font-family:var(--font-display);font-weight:400;font-size:clamp(1.8rem,3.4vw,3rem);color:var(--bone)}.gallery-head .gh-label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ember)}.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(.8rem,1.6vw,1.4rem)}.gallery-item{position:relative;overflow:hidden;background:var(--ink-soft);aspect-ratio:4 / 3;cursor:zoom-in}.gallery-item.span-2{grid-column:span 2;aspect-ratio:16 / 8}.gallery-item img{width:100%;height:100%;object-fit:cover;filter:saturate(.94) brightness(.9);transition:transform .9s var(--ease-out),filter .6s var(--ease-out)}.gallery-item:hover img{transform:scale(1.04);filter:saturate(1) brightness(1)}.project-next{border-top:1px solid var(--line);padding:clamp(3rem,7vw,6rem) var(--edge)}.project-next a{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-6);flex-wrap:wrap;color:inherit}.project-next .pn-label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ash)}.project-next .pn-name{font-family:var(--font-display);font-weight:400;font-size:clamp(2.2rem,5vw,4.4rem);color:var(--bone);transition:color var(--dur-fast) var(--ease-out)}.project-next a:hover .pn-name{color:var(--ember)}.lightbox{position:fixed;inset:0;z-index:2100;display:flex;align-items:center;justify-content:center;padding:clamp(1rem,4vw,4rem);background:#060504eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:opacity .4s var(--ease-out),visibility .4s}.lightbox.is-open{opacity:1;visibility:visible}.lightbox img{max-width:min(1200px,92vw);max-height:86vh;object-fit:contain;box-shadow:0 30px 100px #0009}.lb-btn{position:absolute;background:none;border:1px solid var(--line);color:var(--bone);width:48px;height:48px;border-radius:50%;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.lb-btn:hover{border-color:var(--ember);color:var(--ember)}.lb-btn:focus-visible{outline:2px solid var(--ember);outline-offset:3px}.lb-close{top:clamp(1rem,3vw,2rem);right:clamp(1rem,3vw,2rem)}.lb-prev{left:clamp(.5rem,2vw,2rem);top:50%;transform:translateY(-50%)}.lb-next{right:clamp(.5rem,2vw,2rem);top:50%;transform:translateY(-50%)}.lb-count{position:absolute;bottom:clamp(1rem,3vw,2rem);left:50%;transform:translate(-50%);font-family:var(--font-mono);font-size:.74rem;letter-spacing:.14em;color:var(--bone-dim)}.reveal{opacity:0;transform:translateY(40px)}.reveal.in{opacity:1;transform:none;transition:opacity 1s var(--ease-out),transform 1s var(--ease-out)}@media (max-width: 900px){.project-row{grid-template-columns:1fr;gap:var(--s-6)}.project-row:nth-child(2n) .project-media{order:0}.project-overview,.gallery-grid{grid-template-columns:1fr}.gallery-item,.gallery-item.span-2{grid-column:auto;aspect-ratio:4 / 3}.lb-prev{left:.4rem}.lb-next{right:.4rem}}.error-main{min-height:100vh;display:flex;align-items:center;padding:clamp(7rem,18vh,12rem) var(--edge) clamp(4rem,10vh,8rem)}.error-wrap{max-width:640px}.error-code{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ember)}.error-title{font-family:var(--font-display);font-weight:400;font-size:clamp(2.6rem,7vw,5.5rem);line-height:1;color:var(--bone);margin:var(--s-6) 0}.error-title em{font-style:italic;color:var(--ember)}.error-lede{font-size:var(--fs-body);font-weight:300;line-height:1.75;color:var(--bone-dim);max-width:48ch;margin-bottom:var(--s-12)}.error-actions{display:flex;flex-wrap:wrap;gap:var(--s-6) var(--s-16)}.error-link{display:inline-flex;align-items:center;gap:var(--s-4);font-family:var(--font-mono);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bone)}.error-link .cta-arrow{color:var(--ember);transition:transform var(--dur-fast) var(--ease-out)}.error-link:hover{color:var(--ember)}.error-link:hover .cta-arrow{transform:translate(6px)}.legal{max-width:760px;padding:clamp(8rem,20vh,12rem) var(--edge) clamp(5rem,10vw,9rem)}.legal-eyebrow{display:block;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ember)}.legal h1{font-family:var(--font-display);font-weight:400;font-size:clamp(2.6rem,6vw,4.6rem);line-height:1.02;color:var(--bone);margin:var(--s-6) 0 var(--s-3)}.legal-updated{display:block;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ash);margin-bottom:var(--s-12)}.legal h2{font-family:var(--font-display);font-weight:500;font-size:clamp(1.5rem,2.6vw,2rem);color:var(--bone);margin:var(--s-16) 0 var(--s-6)}.legal p,.legal li{font-size:var(--fs-body);font-weight:300;line-height:1.8;color:var(--bone-dim)}.legal p+p{margin-top:var(--s-6)}.legal ul{list-style:none;margin:var(--s-6) 0;padding:0}.legal li{position:relative;padding-left:var(--s-8);margin-top:var(--s-4)}.legal li:before{content:"\2014";position:absolute;left:0;color:var(--ember)}.legal a{color:var(--ember);text-decoration:underline;text-underline-offset:3px}.legal-note{margin-top:var(--s-16);padding:var(--s-6) var(--s-8);border-left:2px solid var(--ember);background:var(--ink-soft);font-size:.92rem;line-height:1.7;color:var(--bone-dim)}
