:root{--bg:#0b0b0b;--surface:#141414;--surface2:#1c1c1c;--border:#2a2a2a;--border2:#333;--text:#f0ede8;--text-muted:#888480;--text-faint:#4a4744;--accent:#c8bfb0;--accent-dim:#6b6259;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:2rem;--space-xl:4rem;--space-2xl:8rem;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:2rem;--text-3xl:3rem;--text-4xl:4.5rem;--text-5xl:7rem;--ease:cubic-bezier(.25, .1, .25, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--duration-fast:.15s;--duration-base:.3s;--duration-slow:.6s;--duration-xslow:1s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;font-weight:300;font-size:var(--text-base);-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden}img,video{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none}ul,ol{list-style:none}.font-serif{font-family:Cormorant Garamond,serif}h1,h2,h3,h4,h5{letter-spacing:-.01em;font-family:Cormorant Garamond,serif;font-weight:300;line-height:1.1}.container{width:100%;max-width:1400px;padding:0 var(--space-lg);margin:0 auto}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.navbar{z-index:100;padding:var(--space-lg) var(--space-xl);mix-blend-mode:normal;transition:background var(--duration-base) var(--ease), padding var(--duration-base) var(--ease);justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.navbar.scrolled{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);padding:var(--space-md) var(--space-xl);background:#0b0b0be0}.navbar__logo{font-family:Cormorant Garamond,serif;font-size:var(--text-lg);letter-spacing:.12em;text-transform:uppercase;color:var(--text);transition:opacity var(--duration-fast) var(--ease);font-weight:300}.navbar__logo:hover{opacity:.6}.navbar__links{gap:var(--space-xl);align-items:center;display:flex}.navbar__link{font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);transition:color var(--duration-fast) var(--ease);font-weight:400;position:relative}.navbar__link:after{content:"";background:var(--accent);width:0;height:1px;transition:width var(--duration-base) var(--ease-out);position:absolute;bottom:-2px;left:0}.navbar__link:hover{color:var(--text)}.navbar__link:hover:after{width:100%}.navbar__link.active{color:var(--text)}.navbar__link.active:after{width:100%}.hero{align-items:flex-end;height:100vh;min-height:700px;display:flex;position:relative;overflow:hidden}.hero__bg{background:var(--bg);position:absolute;inset:0}.hero__bg img{object-fit:cover;opacity:.45;width:100%;height:100%;transition:transform var(--duration-xslow) var(--ease-out);transform:scale(1.05)}.hero:hover .hero__bg img{transform:scale(1)}.hero__overlay{background:linear-gradient(#0b0b0b1a 0%,#0b0b0b4d 50%,#0b0b0bf2 100%);position:absolute;inset:0}.hero__content{z-index:1;padding:0 var(--space-xl) var(--space-2xl);width:100%;position:relative}.hero__eyebrow{font-size:var(--text-xs);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-lg);opacity:0;animation:fadeUp .8s var(--ease-out) .2s forwards;transform:translateY(20px)}.hero__title{font-family:Cormorant Garamond,serif;font-size:clamp(var(--text-4xl), 10vw, var(--text-5xl));letter-spacing:-.02em;color:var(--text);margin-bottom:var(--space-lg);opacity:0;animation:fadeUp .9s var(--ease-out) .4s forwards;font-weight:300;line-height:.95;transform:translateY(30px)}.hero__subtitle{font-size:var(--text-sm);letter-spacing:.1em;color:var(--text-muted);opacity:0;max-width:42ch;animation:fadeUp .8s var(--ease-out) .65s forwards;font-weight:300;transform:translateY(20px)}.hero__scroll{bottom:var(--space-xl);right:var(--space-xl);align-items:center;gap:var(--space-sm);opacity:0;animation:fadeUp .8s var(--ease-out) 1s forwards;flex-direction:column;display:flex;position:absolute}.hero__scroll-label{letter-spacing:.22em;text-transform:uppercase;color:var(--text-faint);writing-mode:vertical-rl;font-size:.65rem}.hero__scroll-line{background:linear-gradient(to bottom, var(--border2), transparent);width:1px;height:60px;animation:2s ease-in-out infinite scrollPulse}.section-header{align-items:baseline;gap:var(--space-lg);margin-bottom:var(--space-xl);padding-bottom:var(--space-md);border-bottom:1px solid var(--border);display:flex}.section-title{font-size:var(--text-3xl);font-family:Cormorant Garamond,serif;font-weight:300}.section-count{font-size:var(--text-xs);letter-spacing:.16em;color:var(--text-faint)}.projects-section{padding:var(--space-2xl) 0}.projects-grid{grid-template-columns:repeat(12,1fr);gap:2px;display:grid}.project-card:nth-child(odd){grid-column:span 7}.project-card:nth-child(2n){grid-column:span 5}.project-card:nth-child(3n){grid-column:span 12}.project-card{aspect-ratio:4/3;background:var(--surface);cursor:pointer;display:block;position:relative;overflow:hidden}.project-card:nth-child(3n){aspect-ratio:21/9}.project-card__image{object-fit:cover;width:100%;height:100%;transition:transform var(--duration-slow) var(--ease-out), filter var(--duration-slow) var(--ease);filter:brightness(.75)saturate(.8)}.project-card:hover .project-card__image{filter:brightness(.55)saturate(.7);transform:scale(1.04)}.project-card__overlay{opacity:0;transition:opacity var(--duration-base) var(--ease);background:linear-gradient(#0b0b0b00 50%,#0b0b0bd9 100%);position:absolute;inset:0}.project-card:hover .project-card__overlay{opacity:1}.project-card__info{padding:var(--space-xl) var(--space-lg) var(--space-lg);opacity:0;transition:opacity var(--duration-base) var(--ease), transform var(--duration-base) var(--ease-out);position:absolute;bottom:0;left:0;right:0;transform:translateY(8px)}.project-card:hover .project-card__info{opacity:1;transform:translateY(0)}.project-card__title{font-family:Cormorant Garamond,serif;font-size:var(--text-2xl);margin-bottom:var(--space-xs);font-weight:300;line-height:1.1}.project-card__meta{font-size:var(--text-xs);letter-spacing:.14em;color:var(--text-muted);text-transform:uppercase}.project-card__arrow{top:var(--space-lg);right:var(--space-lg);opacity:0;width:40px;height:40px;transition:opacity var(--duration-base) var(--ease), transform var(--duration-base) var(--ease-out), border-color var(--duration-fast) var(--ease);border:1px solid #f0ede833;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;transform:translate(-6px)}.project-card:hover .project-card__arrow{opacity:1;transform:translate(0)}.project-detail{padding-top:100px}.project-detail__hero{height:70vh;min-height:500px;margin-bottom:var(--space-2xl);position:relative;overflow:hidden}.project-detail__hero img{object-fit:cover;filter:brightness(.6);width:100%;height:100%}.project-detail__hero-content{padding:var(--space-2xl) var(--space-xl) var(--space-xl);background:linear-gradient(#0000 0%,#0b0b0be6 100%);position:absolute;bottom:0;left:0;right:0}.project-detail__title{font-size:clamp(var(--text-3xl), 7vw, var(--text-4xl));margin-bottom:var(--space-md);font-family:Cormorant Garamond,serif;font-weight:300}.project-detail__meta{gap:var(--space-xl);display:flex}.project-detail__meta-item{flex-direction:column;gap:2px;display:flex}.project-detail__meta-label{letter-spacing:.22em;text-transform:uppercase;color:var(--text-faint);font-size:.65rem}.project-detail__meta-value{font-size:var(--text-sm);color:var(--text-muted)}.project-detail__description{max-width:65ch;font-size:var(--text-lg);color:var(--text-muted);margin:0 auto var(--space-2xl);padding:0 var(--space-xl);font-family:Cormorant Garamond,serif;font-weight:300;line-height:1.7}.gallery-section{padding:var(--space-xl) 0}.gallery-section__label{font-size:var(--text-xs);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-lg);padding:0 var(--space-xl);align-items:center;gap:var(--space-md);display:flex}.gallery-section__label:after{content:"";background:var(--border);flex:1;height:1px}.gallery-flow{flex-direction:column;gap:2px;display:flex}.gallery-row{gap:2px;display:grid}.gallery-row--single{grid-template-columns:1fr}.gallery-row--pair{grid-template-columns:1fr 1fr}.gallery-row--trio{grid-template-columns:2fr 1fr 1fr}.gallery-item{background:var(--surface);cursor:zoom-in;position:relative;overflow:hidden}.gallery-item--portrait{aspect-ratio:3/4}.gallery-item--landscape{aspect-ratio:16/9}.gallery-item--square{aspect-ratio:1}.gallery-item--wide{aspect-ratio:21/9}.gallery-item img{object-fit:cover;width:100%;height:100%;transition:transform var(--duration-slow) var(--ease-out), filter var(--duration-slow) var(--ease);filter:brightness(.9)}.gallery-item:hover img{filter:brightness();transform:scale(1.03)}.gallery-item__caption{padding:var(--space-lg) var(--space-md) var(--space-sm);font-size:var(--text-xs);letter-spacing:.1em;color:var(--text-muted);opacity:0;transition:opacity var(--duration-base) var(--ease);background:linear-gradient(#0000 0%,#0b0b0bb3 100%);position:absolute;bottom:0;left:0;right:0}.gallery-item:hover .gallery-item__caption{opacity:1}.lightbox{z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;pointer-events:none;transition:opacity var(--duration-base) var(--ease);background:#0b0b0bf5;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox.open{opacity:1;pointer-events:all}.lightbox__inner{justify-content:center;align-items:center;max-width:90vw;max-height:90vh;display:flex;position:relative}.lightbox__img{object-fit:contain;border:1px solid var(--border);max-width:90vw;max-height:85vh}.lightbox__close{top:var(--space-lg);right:var(--space-xl);border:1px solid var(--border2);width:44px;height:44px;color:var(--text-muted);transition:color var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease);border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed}.lightbox__close:hover{color:var(--text);border-color:var(--text-muted)}.lightbox__nav{border:1px solid var(--border2);width:48px;height:48px;color:var(--text-muted);transition:color var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease);border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;top:50%;transform:translateY(-50%)}.lightbox__nav:hover{color:var(--text);border-color:var(--text-muted)}.lightbox__nav--prev{left:var(--space-xl)}.lightbox__nav--next{right:var(--space-xl)}.lightbox__caption{bottom:var(--space-xl);font-size:var(--text-xs);letter-spacing:.16em;color:var(--text-muted);text-align:center;position:fixed;left:50%;transform:translate(-50%)}.lightbox__counter{top:var(--space-xl);left:var(--space-xl);font-size:var(--text-xs);letter-spacing:.16em;color:var(--text-faint);position:fixed}.about-page{min-height:100vh;padding-top:140px}.about-intro{padding:0 var(--space-xl) var(--space-2xl);gap:var(--space-2xl);grid-template-columns:1fr 1fr;align-items:start;display:grid}.about-intro__heading{font-size:clamp(var(--text-3xl), 6vw, var(--text-4xl));font-family:Cormorant Garamond,serif;font-weight:300;line-height:1.05}.about-intro__body{padding-top:var(--space-sm)}.about-intro__text{font-size:var(--text-lg);color:var(--text-muted);margin-bottom:var(--space-lg);font-family:Cormorant Garamond,serif;font-weight:300;line-height:1.75}.contact-page{min-height:100vh;padding-top:140px;padding-bottom:var(--space-2xl)}.contact-grid{padding:0 var(--space-xl);gap:var(--space-2xl);grid-template-columns:1fr 1fr;display:grid}.contact-heading{font-size:clamp(var(--text-3xl), 6vw, var(--text-4xl));margin-bottom:var(--space-xl);font-family:Cormorant Garamond,serif;font-weight:300}.contact-detail{gap:var(--space-xl);flex-direction:column;display:flex}.contact-item__label{letter-spacing:.22em;text-transform:uppercase;color:var(--text-faint);margin-bottom:var(--space-xs);font-size:.65rem}.contact-item__value{font-size:var(--text-lg);color:var(--text-muted);transition:color var(--duration-fast) var(--ease);font-family:Cormorant Garamond,serif;font-weight:300}.contact-item__value:hover{color:var(--text)}.contact-form{gap:var(--space-lg);flex-direction:column;display:flex}.form-field{gap:var(--space-xs);flex-direction:column;display:flex}.form-label{letter-spacing:.2em;text-transform:uppercase;color:var(--text-faint);font-size:.65rem}.form-input,.form-textarea{background:var(--surface);border:1px solid var(--border);color:var(--text);padding:var(--space-md);font-family:Inter,sans-serif;font-size:var(--text-sm);transition:border-color var(--duration-fast) var(--ease);resize:none;outline:none;font-weight:300}.form-input:focus,.form-textarea:focus{border-color:var(--accent)}.form-submit{align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);border:1px solid var(--border2);font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--text);transition:background var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease);background:0 0;align-self:flex-start;display:inline-flex}.form-submit:hover{background:var(--surface);border-color:var(--accent)}.admin-layout{background:var(--bg);min-height:100vh;padding:var(--space-xl)}.admin-header{padding-bottom:var(--space-lg);border-bottom:1px solid var(--border);margin-bottom:var(--space-xl);justify-content:space-between;align-items:center;display:flex}.admin-title{font-family:Cormorant Garamond,serif;font-size:var(--text-2xl);font-weight:300}.admin-projects-list{flex-direction:column;gap:1px;display:flex}.admin-project-row{gap:var(--space-lg);padding:var(--space-md) var(--space-lg);background:var(--surface);transition:background var(--duration-fast) var(--ease);grid-template-columns:60px 1fr auto auto auto;align-items:center;display:grid}.admin-project-row:hover{background:var(--surface2)}.admin-project-thumb{object-fit:cover;background:var(--surface2);width:60px;height:40px}.admin-project-title{font-size:var(--text-base);font-weight:300}.admin-project-status{font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--border2);color:var(--text-faint);padding:2px 8px}.admin-project-status.published{border-color:var(--accent-dim);color:var(--accent)}.admin-btn{align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);border:1px solid var(--border2);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);transition:color var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease);display:inline-flex}.admin-btn:hover{color:var(--text);border-color:var(--accent-dim)}.admin-btn--danger:hover{color:#e87070;border-color:#8b3333}.admin-btn--primary{background:var(--surface2);border-color:var(--accent-dim);color:var(--accent)}.upload-zone{border:1px dashed var(--border2);padding:var(--space-2xl);text-align:center;cursor:pointer;transition:border-color var(--duration-fast) var(--ease), background var(--duration-fast) var(--ease)}.upload-zone:hover,.upload-zone.dragging{border-color:var(--accent-dim);background:var(--surface)}.upload-zone__icon{color:var(--text-faint);margin-bottom:var(--space-md)}.upload-zone__text{font-size:var(--text-sm);color:var(--text-muted)}.upload-zone__sub{font-size:var(--text-xs);color:var(--text-faint);margin-top:var(--space-xs)}.tab-bar{border-bottom:1px solid var(--border);margin-bottom:var(--space-xl);gap:0;display:flex}.tab-btn{padding:var(--space-sm) var(--space-lg);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);transition:color var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease);border-bottom:2px solid #0000}.tab-btn.active{color:var(--text);border-bottom-color:var(--accent)}.footer{padding:var(--space-xl);border-top:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.footer__name{font-family:Cormorant Garamond,serif;font-size:var(--text-sm);letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);font-weight:300}.footer__copy{font-size:var(--text-xs);letter-spacing:.1em;color:var(--text-faint)}@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}@keyframes scrollPulse{0%,to{opacity:.3;transform:scaleY(1)}50%{opacity:1;transform:scaleY(.6)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{opacity:0;animation:fadeIn var(--duration-slow) var(--ease-out) forwards}.project-card{opacity:0;animation:fadeUp var(--duration-slow) var(--ease-out) forwards;transform:translateY(20px)}.project-card:first-child{animation-delay:.1s}.project-card:nth-child(2){animation-delay:.2s}.project-card:nth-child(3){animation-delay:.3s}.project-card:nth-child(4){animation-delay:.4s}.project-card:nth-child(5){animation-delay:.5s}.project-card:nth-child(6){animation-delay:.6s}.project-card:nth-child(n+7){animation-delay:.7s}@media (max-width:1024px){.navbar{padding:var(--space-md) var(--space-lg)}.navbar.scrolled{padding:var(--space-sm) var(--space-lg)}.hero__content{padding:0 var(--space-lg) var(--space-xl)}.project-card:nth-child(odd),.project-card:nth-child(2n),.project-card:nth-child(3n){grid-column:span 12}.project-card:nth-child(3n){aspect-ratio:16/9}.about-intro,.contact-grid{gap:var(--space-xl);grid-template-columns:1fr}.project-detail__meta{gap:var(--space-lg);flex-wrap:wrap}}@media (max-width:768px){.navbar__links,.hero__scroll{display:none}.gallery-row--pair,.gallery-row--trio{grid-template-columns:1fr}.footer{gap:var(--space-sm);text-align:center;flex-direction:column}.admin-project-row{grid-template-columns:1fr auto}.admin-project-thumb{display:none}}
