@import "https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400..900&family=Inter:wght@300;400;500&display=swap";:root{--ink:#191714;--paper:#faf8f5;--line:#dcd6cc;--muted:#8a8378;--accent:#a8543f;--max-w:1180px;--gutter:clamp(24px, 5vw, 72px)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:Inter,sans-serif;font-weight:300;line-height:1.6}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.wrap{max-width:var(--max-w);padding:0 var(--gutter);margin:0 auto}h1,h2,h3{letter-spacing:-.01em;font-family:Playfair Display,serif;font-weight:500;line-height:1.05}.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-size:.72rem}.site-header{z-index:20;backdrop-filter:blur(6px);border-bottom:1px solid var(--line);background:#faf8f5d9;position:sticky;top:0}.site-header .wrap{justify-content:space-between;align-items:center;height:84px;display:flex}.wordmark{letter-spacing:.02em;font-family:Playfair Display,serif;font-size:1.3rem}.nav-links{letter-spacing:.02em;gap:clamp(18px,3vw,40px);font-size:.85rem;list-style:none;display:flex}.nav-links a{padding-bottom:4px;position:relative}.nav-links a:after{content:"";background:var(--ink);width:0;height:1px;transition:width .3s;position:absolute;bottom:0;left:0}.nav-links a:hover:after{width:100%}.hero{color:#f3efe9;background:#171310;padding:clamp(96px,16vw,180px) 0 clamp(72px,11vw,120px);position:relative;overflow:hidden}.hero-video{object-fit:cover;z-index:0;will-change:transform;width:100%;height:120%;position:absolute;top:-10%;left:0}.hero-overlay{z-index:1;background:linear-gradient(#0c0a0859 0%,#0c0a0899 55%,#0c0a08d9 100%);position:absolute;inset:0}.hero .wrap{z-index:2;position:relative}.hero .eyebrow{color:#f3efe9a6}.hero h1{color:#fff;max-width:15ch;margin:18px 0 28px;font-size:clamp(2.6rem,7vw,6rem)}.hero-sub{color:#45403a;max-width:46ch;font-size:clamp(1rem,1.4vw,1.15rem)}.hero .hero-sub{color:#f3efe9d1}.hero-meta{flex-wrap:wrap;gap:clamp(24px,6vw,64px);margin-top:56px;display:flex}.hero-meta div{color:#f3efe9b3;font-size:.85rem}.hero-meta strong{color:#fff;margin-bottom:4px;font-family:Playfair Display,serif;font-size:1.4rem;font-weight:500;display:block}@media (prefers-reduced-motion:reduce){.hero-video{display:none}}.hero .eyebrow,.hero h1,.hero-meta{opacity:0;animation:.9s cubic-bezier(.16,1,.3,1) forwards hero-in;transform:translateY(22px)}.hero .eyebrow{animation-delay:.15s}.hero h1{animation-delay:.3s}.hero-meta{animation-delay:.55s}@keyframes hero-in{to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.hero .eyebrow,.hero h1,.hero-meta{opacity:1;animation:none;transform:none}}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(28px)}.reveal.is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}}section{padding:clamp(56px,10vw,120px) 0}section+section{border-top:1px solid var(--line)}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:clamp(36px,6vw,64px);display:flex}.section-head h2{font-size:clamp(1.8rem,4vw,2.8rem)}.section-head--center{text-align:center;justify-content:center}.about-grid{grid-template-columns:.85fr 1.15fr;align-items:center;gap:clamp(32px,6vw,80px);display:grid}.about-grid img{aspect-ratio:4/5;object-fit:cover;filter:grayscale(15%)}.about-text p{color:#3c3730;margin-bottom:18px;font-size:1.05rem}.about-text p:first-of-type{color:var(--ink);font-family:Playfair Display,serif;font-size:1.5rem;font-style:italic;font-weight:400}@media (width<=760px){.about-grid{grid-template-columns:1fr}}.services{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.service-card{background:var(--paper);flex-direction:column;padding:clamp(28px,4vw,44px) clamp(24px,3vw,36px);display:flex}.service-card h3{margin-bottom:12px;font-size:1.35rem}.service-card p{color:var(--muted);font-size:.92rem}.service-price{border-top:1px solid var(--line);margin-top:28px;padding-top:20px}.service-price .price{color:var(--accent);font-family:Playfair Display,serif;font-size:1.4rem;display:block}.service-price .price-note{color:var(--muted);font-size:.78rem}@media (width<=760px){.services{grid-template-columns:1fr}}.gallery{grid-template-columns:repeat(6,1fr);gap:clamp(12px,2vw,20px);display:grid}.gallery figure{cursor:pointer;position:relative;overflow:hidden}.gallery img{object-fit:cover;filter:grayscale(8%);width:100%;height:100%;transition:transform .6s,filter .6s}.gallery figure:hover img{filter:grayscale(0%);transform:scale(1.04)}.gallery figcaption{letter-spacing:.03em;color:#fff;opacity:0;background:linear-gradient(#0000,#14120fbf);padding:14px 16px;font-size:.78rem;transition:opacity .35s,transform .35s;position:absolute;bottom:0;left:0;right:0;transform:translateY(6px)}.gallery figure:hover figcaption{opacity:1;transform:translateY(0)}.gallery .span-2{grid-column:span 2}.gallery .span-3{grid-column:span 3}.gallery .span-4{grid-column:span 4}.gallery .tall{aspect-ratio:4/5}.gallery .wide{aspect-ratio:16/10}.gallery .square{aspect-ratio:1}@media (width<=900px){.gallery{grid-template-columns:repeat(2,1fr)}.gallery .span-2,.gallery .span-3,.gallery .span-4{grid-column:span 2}}.testimonial{text-align:center}.testimonial blockquote{max-width:24ch;margin:0 auto 28px;font-family:Playfair Display,serif;font-size:clamp(1.4rem,3.2vw,2.3rem);font-style:italic;font-weight:400;line-height:1.35}.testimonial cite{color:var(--muted);font-size:.85rem;font-style:normal}.contact{grid-template-columns:1.2fr .8fr;align-items:end;gap:clamp(32px,6vw,80px);display:grid}.contact h2{max-width:14ch;font-size:clamp(2.2rem,5vw,3.6rem)}.contact-links{flex-direction:column;gap:14px;display:flex}.contact-links a{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding-bottom:10px;font-size:1.1rem;transition:border-color .25s,padding-left .25s;display:flex}.contact-links a:hover{border-color:var(--ink);padding-left:6px}@media (width<=760px){.contact{grid-template-columns:1fr}}.site-footer{border-top:1px solid var(--line);padding:28px 0}.site-footer .wrap{color:var(--muted);justify-content:center;font-size:.78rem;display:flex}
