@charset "UTF-8";.project{display:flex;flex-direction:column;gap:clamp(2rem,4vh,3rem)}.project__top{display:grid;grid-template-columns:minmax(0,1fr) 20rem;gap:clamp(2rem,4vw,3.5rem)}.project__top--bare{grid-template-columns:minmax(0,28rem)}.project__hero{border-radius:var(--radius);overflow:hidden;border:1px solid var(--color-border);aspect-ratio:16/8.4;align-self:start;background:var(--color-surface)}.project__hero-img{width:100%;height:100%;object-fit:cover;object-position:top center;filter:brightness(.92)}.project__plaque{display:flex;flex-direction:column;gap:1.25rem;padding:1.4rem;border:1px solid var(--color-border);border-radius:var(--radius);background:radial-gradient(120% 100% at 100% 0%,hsl(var(--era-hue),40%,18%,.35),transparent 60%),var(--color-surface)}.project__facts{display:flex;flex-direction:column;gap:.85rem}.project__fact{display:flex;align-items:baseline;gap:.6rem}.project__fact dt{font-size:max(var(--fs-floor),.62rem);flex-shrink:0}.project__value{flex:1;display:flex;align-items:center;gap:.6rem;font-size:.88rem;color:var(--color-text);white-space:nowrap}.project__value:before{content:"";flex:1 0 1.5rem;height:2px;opacity:.45;background-image:radial-gradient(circle,var(--color-border-strong) 1px,transparent 1.5px);background-size:.7rem 2px}.project__value--status{font-family:var(--font-mono);font-size:max(var(--fs-floor),.78rem);color:var(--color-accent)}.project__value--status[data-status=abandoned]{color:var(--color-text-muted)}.project__fact--stack{flex-direction:column;align-items:stretch;gap:.55rem;margin-top:.15rem}.project__stack{display:flex;flex-wrap:wrap;gap:.4rem}.project__chip{font-family:var(--font-mono);font-size:max(var(--fs-floor),.7rem);color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:99px;padding:.14rem .6rem}.project__links{display:flex;flex-direction:column;gap:.55rem;margin-top:auto}.project__btn{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem .9rem;border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);font-size:max(var(--fs-floor),.85rem);font-weight:500;color:var(--color-text);transition:border-color .25s,background-color .25s,color .25s}.project__btn:hover{border-color:hsl(var(--era-hue),40%,45%);background:var(--color-surface-hover)}.project__btn--primary{background:hsl(var(--era-hue),45%,20%,.45);border-color:hsl(var(--era-hue),40%,35%);color:var(--color-text-title)}.project__btn--primary:hover{background:hsl(var(--era-hue),45%,24%,.6);border-color:hsl(var(--era-hue),45%,50%)}.project__draft{font-family:var(--font-mono);font-size:max(var(--fs-floor),.68rem);color:var(--color-text-faint);text-align:center}.project__article{font-size:.98rem;line-height:1.75;max-width:46rem}.project__article p{margin-bottom:1.1rem}.project__article p:last-child{margin-bottom:0}.project__article h2{font:var(--label);font-size:max(var(--fs-floor),.7rem);font-weight:500;text-transform:uppercase;letter-spacing:.22em;color:hsl(var(--era-hue),45%,62%);margin:2.4rem 0 1rem}.project__article strong{color:var(--color-text-title);font-weight:600}.project__article a{color:var(--color-accent);text-decoration:underline;text-underline-offset:3px;text-decoration-color:#58d0a466;transition:text-decoration-color .25s}.project__article a:hover{text-decoration-color:var(--color-accent)}.project__article code{font-family:var(--font-mono);font-size:max(var(--fs-floor),.84em);background:var(--color-surface);border:1px solid var(--color-border);border-radius:.3rem;padding:.1em .35em}.project__article ul,.project__article ol{margin:0 0 1.1rem 1.25rem}.project__article ul li,.project__article ol li{margin-bottom:.35rem}.project__article ul li::marker,.project__article ol li::marker{color:hsl(var(--era-hue),45%,55%)}.project__gallery{display:flex;flex-direction:column;gap:1.25rem}.project__shots{columns:3;column-gap:1rem}.project__shot{display:block;margin-bottom:1rem;break-inside:avoid;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--color-border);cursor:zoom-in;transition:border-color .3s,transform .35s var(--ease-out)}.project__shot img{width:100%;height:auto;filter:brightness(.88);transition:filter .3s}.project__shot:hover{border-color:hsl(var(--era-hue),40%,42%);transform:translateY(-3px)}.project__shot:hover img{filter:brightness(1)}.project__end{display:flex;padding-top:1.5rem;border-top:1px solid var(--color-border)}.project__back{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:max(var(--fs-floor),.8rem);color:var(--color-text-muted);padding-block:.45rem;margin-block:-.45rem;transition:color .25s,gap .25s var(--ease-out)}.project__back:hover{color:var(--color-accent);gap:.75rem}.lightbox{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:clamp(1rem,4vw,3.5rem);border:none;background:transparent}.lightbox[open]{display:grid;place-items:center;animation:fade-in .25s ease}.lightbox::backdrop{background:#060908e6;backdrop-filter:blur(8px)}.lightbox__img{max-width:100%;max-height:calc(100dvh - clamp(2rem,8vw,7rem));width:auto;height:auto;border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);box-shadow:0 30px 90px -20px #040706e6}.lightbox__btn{position:fixed;display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:50%;border:1px solid var(--color-border-strong);background:#121716bf;color:var(--color-text);font-size:1rem;transition:color .25s,border-color .25s,background-color .25s}.lightbox__btn:hover{color:var(--color-accent);border-color:var(--color-accent-soft);background:var(--color-surface-hover)}.lightbox__prev{left:clamp(.75rem,2.5vw,2rem);top:50%;translate:0 -50%}.lightbox__next{right:clamp(.75rem,2.5vw,2rem);top:50%;translate:0 -50%}.lightbox__close{top:clamp(.75rem,2.5vw,2rem);right:clamp(.75rem,2.5vw,2rem)}.lightbox__counter{position:fixed;bottom:clamp(.75rem,2.5vw,1.75rem);left:50%;translate:-50% 0;font-family:var(--font-mono);font-size:max(var(--fs-floor),.75rem);color:var(--color-text-muted)}@media(width<900px){.project__top,.project__top--bare{grid-template-columns:1fr}}@media(width<900px){.project__shots{columns:2}}@media(width<640px){.project__shots{columns:1}}
