*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--black: #0a0a0a;--white: #ffffff;--gray-100: #f5f5f5;--gray-200: #e8e8e8;--gray-400: #999999;--gray-600: #555555;--font: "Helvetica Neue", Helvetica, Arial, sans-serif;--nav-h: 60px;--ease: cubic-bezier(.25, .46, .45, .94)}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font);background:var(--white);color:var(--black);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}h1{font-size:clamp(2rem,6vw,5rem);font-weight:300;letter-spacing:-.03em;line-height:1.05}h2{font-size:clamp(1.5rem,3vw,2.5rem);font-weight:300;letter-spacing:-.02em;line-height:1.1}h3{font-size:clamp(1.1rem,2vw,1.5rem);font-weight:400;letter-spacing:-.01em}h4{font-size:1rem;font-weight:400;letter-spacing:.02em}p{font-size:1rem;line-height:1.7;color:var(--gray-600)}.nav{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;padding:0 2.5rem;background:var(--white);border-bottom:1px solid var(--gray-200)}.nav__logo{font-size:.9rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--black)}.nav__links{display:flex;list-style:none;gap:2.5rem;flex-shrink:0}.nav__links a{font-size:.8rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--gray-400);transition:color .2s var(--ease)}.nav__links a:hover,.nav__links a.router-link-active{color:var(--black)}.page{padding-top:var(--nav-h);min-height:100vh}.hero{height:calc(100vh - var(--nav-h));display:flex;flex-direction:column;justify-content:flex-end;padding:4rem 2.5rem;background:var(--black);position:relative;overflow:hidden}.hero__bg{position:absolute;top:0;right:0;bottom:0;left:0;object-fit:cover;width:100%;height:100%;opacity:.5}.hero__content{position:relative;z-index:1;color:var(--white);max-width:700px}.hero__content h1{color:var(--white);margin-bottom:1rem}.hero__content p{color:#ffffffa6;font-size:1.05rem;max-width:480px}.hero--text-only{background:var(--white);height:40vh;min-height:280px;justify-content:center}.hero--text-only .hero__content,.hero--text-only h1{color:var(--black)}.section{padding:5rem 2.5rem}.section--tight{padding:3rem 2.5rem}.section__header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:2.5rem}.section__label{font-size:.75rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--gray-400)}.section__link{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gray-400);border-bottom:1px solid transparent;transition:color .2s,border-color .2s}.section__link:hover{color:var(--black);border-color:var(--black)}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px}@media (min-width: 1024px){.project-grid--3{grid-template-columns:repeat(3,1fr)}}@media (max-width: 640px){.project-grid{grid-template-columns:1fr}}.project-card{position:relative;overflow:hidden;aspect-ratio:4/3;cursor:pointer;background:var(--gray-100)}.project-card__img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease),filter .4s var(--ease);filter:grayscale(15%)}.project-card:hover .project-card__img{transform:scale(1.04);filter:grayscale(0%)}.project-card__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(0,0,0,.75) 0%,transparent 55%);opacity:0;transition:opacity .35s var(--ease);display:flex;flex-direction:column;justify-content:flex-end;padding:1.75rem}.project-card:hover .project-card__overlay{opacity:1}.project-card__title{color:var(--white);font-size:1.1rem;font-weight:400;letter-spacing:-.01em;margin-bottom:.25rem}.project-card__meta{color:#ffffffa6;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase}.project-card__placeholder{width:100%;height:100%;background:var(--gray-100);display:flex;align-items:center;justify-content:center}.project-card__placeholder-icon{width:48px;height:48px;opacity:.15}.insta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}@media (max-width: 768px){.insta-grid{grid-template-columns:repeat(2,1fr)}}.insta-cell{position:relative;aspect-ratio:1;overflow:hidden;background:var(--gray-100);cursor:pointer}.insta-cell__img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease),opacity .3s}.insta-cell:hover .insta-cell__img{transform:scale(1.05);opacity:.85}.insta-cell__caption{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.55);color:var(--white);font-size:.78rem;line-height:1.5;display:flex;align-items:center;justify-content:center;padding:1rem;text-align:center;opacity:0;transition:opacity .3s var(--ease)}.insta-cell:hover .insta-cell__caption{opacity:1}.project-hero{width:100%;max-height:85vh;object-fit:cover}.project-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:2rem;padding:3rem 2.5rem;border-bottom:1px solid var(--gray-200)}.project-meta__item label{display:block;font-size:.7rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--gray-400);margin-bottom:.35rem}.project-meta__item span{font-size:.95rem;color:var(--black)}.project-body{max-width:720px;padding:4rem 2.5rem}.project-body h1{font-size:clamp(2rem,5vw,3.5rem);margin-bottom:2rem}.project-body .description{font-size:1.1rem;line-height:1.8;color:var(--gray-600)}.project-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;margin-top:2px}.project-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:start;max-width:1100px;margin:0 auto;padding:6rem 2.5rem}@media (max-width: 768px){.about-grid{grid-template-columns:1fr;gap:3rem;padding:4rem 2.5rem}}.about-grid__image{width:100%;aspect-ratio:3/4;object-fit:cover}.about-grid__text h2{margin-bottom:1.5rem}.about-grid__text p,.about-grid__text .richtext{color:var(--gray-600);font-size:1rem;line-height:1.8;margin-bottom:2rem}.about-section-label{font-size:.72rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--gray-400);display:block;margin-bottom:.75rem}.contact-layout{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - var(--nav-h))}@media (max-width: 768px){.contact-layout{grid-template-columns:1fr}}.contact-left{background:var(--black);color:var(--white);padding:6rem 3rem;display:flex;flex-direction:column;justify-content:flex-end}.contact-left h1{color:var(--white);margin-bottom:2rem}.contact-right{padding:6rem 3rem;display:flex;flex-direction:column;justify-content:center;gap:3rem}.contact-item label{display:block;font-size:.72rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--gray-400);margin-bottom:.5rem}.contact-item a,.contact-item p{font-size:1.1rem;color:var(--black);border-bottom:1px solid transparent;transition:border-color .2s;display:inline-block}.contact-item a:hover{border-color:var(--black)}.badge{display:inline-block;font-size:.65rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;padding:.2rem .55rem;border:1px solid currentColor}.badge--completed{color:#2a7a4b}.badge--in-progress{color:#7a6b1e}.badge--concept{color:#1e5a7a}.btn{display:inline-block;font-size:.75rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;padding:.85rem 2rem;background:var(--black);color:var(--white);border:1px solid var(--black);cursor:pointer;transition:background .2s,color .2s}.btn:hover{background:var(--white);color:var(--black)}.btn--outline{background:transparent;color:var(--black)}.btn--outline:hover{background:var(--black);color:var(--white)}.btn--white{background:var(--white);color:var(--black);border-color:var(--white)}.btn--white:hover{background:transparent;color:var(--white)}.loading-state{display:flex;align-items:center;justify-content:center;min-height:40vh;font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gray-400)}.back-link{display:inline-flex;align-items:center;gap:.5rem;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gray-400);padding:1.5rem 2.5rem;transition:color .2s}.back-link:hover{color:var(--black)}.footer{border-top:1px solid var(--gray-200);padding:2rem 2.5rem;display:flex;justify-content:space-between;align-items:center}.footer__copy{font-size:.75rem;color:var(--gray-400);letter-spacing:.05em}.footer__insta{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gray-400);transition:color .2s}.footer__insta:hover{color:var(--black)}.divider{border:none;border-top:1px solid var(--gray-200)}@media (max-width: 480px){.nav{padding:0 1.5rem}.nav__links{gap:1.5rem}.section,.section--tight{padding-left:1.5rem;padding-right:1.5rem}.hero{padding:2rem 1.5rem}}
