:root{--cream: #f4f0e8;--cream-dark: #ebe5d8;--ink: #1c2520;--forest: #2a3d33;--forest-dark: #1f2e26;--sage: #8a9d8a;--moss: #4a6b54;--muted: #6b6259}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Inter,sans-serif;color:var(--ink);background:var(--cream);font-weight:300;line-height:1.6;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%;height:auto}a{color:inherit}.serif{font-family:Cormorant Garamond,serif;font-weight:400}.accent{color:var(--moss)}.nav{position:fixed;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:1.5rem 3rem;background:#f4f0e8d9;backdrop-filter:blur(14px);z-index:50;border-bottom:1px solid rgba(28,37,32,.06);transition:all .3s ease}.nav.on-dark{background:#1f2e26d9;border-bottom-color:#ffffff0f}.nav.on-dark .nav-brand,.nav.on-dark .nav-links a{color:var(--cream)}.nav-brand{font-family:Cormorant Garamond,serif;font-size:1.5rem;letter-spacing:.03em;font-weight:400;text-decoration:none;color:var(--ink)}.nav-brand em{font-style:italic;color:var(--moss)}.nav.on-dark .nav-brand em{color:var(--sage)}.nav-links{list-style:none;display:flex;gap:2.5rem}.nav-links a{text-decoration:none;color:var(--ink);font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;transition:color .3s ease;position:relative}.nav-links a:after{content:"";position:absolute;bottom:-6px;left:0;width:0;height:1px;background:var(--moss);transition:width .3s ease}.nav.on-dark .nav-links a:after{background:var(--sage)}.nav-links a:hover{color:var(--moss)}.nav.on-dark .nav-links a:hover{color:var(--sage)}.nav-links a:hover:after{width:100%}.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:.5rem;color:inherit}.nav-toggle span{display:block;width:24px;height:1px;background:currentColor;margin:6px 0;transition:.3s}.hero{height:100vh;min-height:650px;position:relative;overflow:hidden;background:var(--forest-dark)}.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.65) saturate(.85)}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(31,46,38,.45) 0%,transparent 30%,rgba(31,46,38,.85) 100%)}.hero-content{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:0 3rem 7rem;color:var(--cream);max-width:1000px}.hero-kicker{font-size:.75rem;letter-spacing:.35em;text-transform:uppercase;color:var(--sage);margin-bottom:1.5rem;display:flex;align-items:center;gap:1rem}.hero-kicker:before{content:"";width:50px;height:1px;background:var(--sage)}.hero h1{font-family:Cormorant Garamond,serif;font-weight:300;font-size:clamp(2.75rem,7vw,6rem);line-height:1.02;letter-spacing:-.015em}.hero h1 em{font-style:italic;color:var(--sage);font-weight:400}.hero-meta{margin-top:2.5rem;display:flex;gap:3rem;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:#f4f0e8a6}section{padding:8rem 3rem}section.dark{background:var(--forest);color:var(--cream)}section.dark .label{color:var(--sage)}section.dark p{color:#f4f0e8c7}.container{max-width:1300px;margin:0 auto}.label{font-size:.72rem;letter-spacing:.35em;text-transform:uppercase;color:var(--moss);margin-bottom:1.5rem;display:inline-flex;align-items:center;gap:.75rem}.label:before{content:"—"}.section-title{font-family:Cormorant Garamond,serif;font-weight:300;font-size:clamp(2.25rem,4.5vw,3.5rem);line-height:1.1;margin-bottom:4rem;max-width:800px;letter-spacing:-.01em}.section-title em{font-style:italic;color:var(--moss)}section.dark .section-title em{color:var(--sage)}.categories{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.cat{position:relative;overflow:hidden;aspect-ratio:3/4;background:var(--forest-dark);text-decoration:none;color:inherit;display:block}.cat img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s ease,filter .5s ease;filter:brightness(.88) saturate(.95)}.cat:hover img{transform:scale(1.05);filter:brightness(1) saturate(1)}.cat-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(31,46,38,.85) 0%,transparent 55%);display:flex;align-items:flex-end;padding:2rem}.cat-overlay .num{font-size:.7rem;letter-spacing:.3em;color:var(--sage);margin-bottom:.5rem}.cat-overlay h3{font-family:Cormorant Garamond,serif;color:#fff;font-size:2rem;font-weight:400}.cat-overlay .meta{color:#ffffffb3;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;margin-top:.4rem}.about{display:grid;grid-template-columns:1fr 1.1fr;gap:5rem;align-items:center}.about img{aspect-ratio:4/5;object-fit:cover}.about-text h2{font-family:Cormorant Garamond,serif;font-size:clamp(2rem,4vw,3rem);font-weight:300;line-height:1.15;margin-bottom:1.75rem}.about-text h2 em{font-style:italic;color:var(--sage)}.about-text p{margin-bottom:1.1rem;max-width:520px}.signature{font-family:Cormorant Garamond,serif;font-style:italic;font-size:1.5rem;margin-top:2rem;color:var(--sage)}.btn{display:inline-block;margin-top:1.75rem;padding:.95rem 2.25rem;border:1px solid var(--cream);color:var(--cream);text-decoration:none;font-size:.75rem;letter-spacing:.3em;text-transform:uppercase;transition:all .3s ease;background:transparent;cursor:pointer;font-family:inherit}.btn:hover{background:var(--cream);color:var(--forest)}.btn-dark{border-color:var(--ink);color:var(--ink)}.btn-dark:hover{background:var(--ink);color:var(--cream)}.btn-fill{background:var(--moss);border-color:var(--moss);color:var(--cream)}.btn-fill:hover{background:var(--forest);border-color:var(--forest)}.services{display:grid;grid-template-columns:repeat(2,1fr);gap:0;max-width:1100px;margin:0 auto;border-top:1px solid rgba(28,37,32,.15)}.service{padding:3rem 2.25rem;border-bottom:1px solid rgba(28,37,32,.15);transition:background .3s ease;position:relative}.service:nth-child(odd){border-right:1px solid rgba(28,37,32,.15)}.service:hover{background:#4a6b540d}.service .num{font-family:Cormorant Garamond,serif;font-style:italic;font-size:1.2rem;color:var(--moss);margin-bottom:.75rem}.service h3{font-family:Cormorant Garamond,serif;font-size:1.85rem;font-weight:400;margin-bottom:.5rem}.service .price{font-size:.8rem;color:var(--moss);margin-bottom:1.25rem;letter-spacing:.18em;text-transform:uppercase}.service p{color:var(--muted);font-size:.95rem}.quote{background:var(--cream-dark);padding:6rem 3rem;text-align:center}.quote blockquote{font-family:Cormorant Garamond,serif;font-style:italic;font-size:clamp(1.5rem,3vw,2.25rem);font-weight:300;line-height:1.4;max-width:900px;margin:0 auto;color:var(--ink)}.quote .attribution{margin-top:2rem;font-size:.75rem;letter-spacing:.3em;text-transform:uppercase;color:var(--moss)}.contact{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start}.contact-text h2{font-family:Cormorant Garamond,serif;font-size:clamp(2.5rem,5vw,4rem);font-weight:300;line-height:1.1;margin-bottom:1.5rem}.contact-text h2 em{font-style:italic;color:var(--sage)}.contact-info{margin-top:3rem;padding-top:2rem;border-top:1px solid rgba(244,240,232,.15)}.contact-info .row{display:flex;gap:1rem;margin-bottom:.75rem;font-size:.95rem}.contact-info .row span:first-child{color:var(--sage);font-size:.75rem;letter-spacing:.25em;text-transform:uppercase;min-width:100px;padding-top:.2rem}.contact-info a{color:var(--cream);text-decoration:none}.contact-info a:hover{color:var(--sage)}form{display:flex;flex-direction:column;gap:1.25rem}form .field{display:flex;flex-direction:column;gap:.4rem}form label{font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;color:var(--sage)}form input,form select,form textarea{background:transparent;border:none;border-bottom:1px solid rgba(244,240,232,.25);padding:.5rem 0;font-family:inherit;font-size:1rem;color:var(--cream);transition:border-color .3s ease}form input:focus,form select:focus,form textarea:focus{outline:none;border-bottom-color:var(--sage)}form textarea{resize:vertical;min-height:80px}form option{background:var(--forest);color:var(--cream)}.gallery-header{padding:10rem 3rem 4rem;text-align:center}.gallery-header h1{font-family:Cormorant Garamond,serif;font-weight:300;font-size:clamp(2.5rem,6vw,5rem);line-height:1.05;letter-spacing:-.02em}.gallery-header h1 em{font-style:italic;color:var(--moss)}.gallery-header .label{justify-content:center}.gallery-header p{margin-top:1.5rem;max-width:600px;margin-left:auto;margin-right:auto;color:var(--muted)}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:0 3rem 8rem;max-width:1400px;margin:0 auto}.gallery-grid img{width:100%;aspect-ratio:3/4;object-fit:cover;transition:opacity .3s ease,transform .6s ease;cursor:pointer}.gallery-grid img:hover{opacity:.85;transform:scale(1.01)}.gallery-grid .wide{grid-column:span 2;aspect-ratio:3/2}.gallery-grid .tall{grid-row:span 2;aspect-ratio:3/5}.footer{background:var(--forest-dark);color:var(--cream);padding:4rem 3rem 2.5rem;border-top:1px solid rgba(244,240,232,.08)}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:3rem;max-width:1300px;margin:0 auto;padding-bottom:3rem;border-bottom:1px solid rgba(244,240,232,.1)}.footer .brand{font-family:Cormorant Garamond,serif;font-size:2rem;margin-bottom:.5rem}.footer .brand em{font-style:italic;color:var(--sage)}.footer .tag{font-size:.75rem;letter-spacing:.3em;text-transform:uppercase;color:var(--sage)}.footer .col-title{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--sage);margin-bottom:1rem}.footer a{display:block;color:var(--cream);text-decoration:none;margin-bottom:.5rem;font-size:.92rem;opacity:.85;transition:opacity .3s ease,color .3s ease}.footer a:hover{opacity:1;color:var(--sage)}.colophon{max-width:1300px;margin:2rem auto 0;display:flex;justify-content:space-between;font-size:.75rem;color:#f4f0e880}@media (max-width: 900px){.nav{padding:1rem 1.5rem}.nav-links{display:none}.nav-links.open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--cream);padding:2rem 1.5rem;gap:1.5rem;border-bottom:1px solid rgba(28,37,32,.08)}.nav.on-dark .nav-links.open{background:var(--forest)}.nav-toggle{display:block}section{padding:5rem 1.5rem}.hero-content{padding:0 1.5rem 5rem}.hero-meta{gap:1.5rem;flex-wrap:wrap}.categories{grid-template-columns:1fr}.about,.contact{grid-template-columns:1fr;gap:3rem}.services{grid-template-columns:1fr}.service:nth-child(odd){border-right:none}.footer-grid{grid-template-columns:1fr;gap:2rem}.colophon{flex-direction:column;gap:.5rem}.gallery-header{padding:8rem 1.5rem 3rem}.gallery-grid{grid-template-columns:repeat(2,1fr);padding:0 1.5rem 5rem}.gallery-grid .wide,.gallery-grid .tall{grid-column:auto;grid-row:auto;aspect-ratio:3/4}}
