:root{--bg:#f5f3ef;--paper:#fbfaf7;--text:#171717;--muted:#77736d;--line:#d9d5ce;--accent:#a35d3b;--max:1320px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:"DM Sans",sans-serif;line-height:1.55;overflow-x:hidden}a{color:inherit;text-decoration:none}
.site-header{position:fixed;z-index:20;top:0;left:0;right:0;height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;background:rgba(245,243,239,.82);backdrop-filter:blur(14px);border-bottom:1px solid rgba(217,213,206,.65)}
.logo{font-size:1.15rem;font-weight:600;letter-spacing:-.04em}.logo span{color:var(--accent)}nav{display:flex;gap:34px;font-size:.88rem}nav a{position:relative}nav a::after{content:"";position:absolute;left:0;bottom:-5px;width:100%;height:1px;background:var(--text);transform:scaleX(0);transform-origin:right;transition:.35s}nav a:hover::after{transform:scaleX(1);transform-origin:left}.header-cta{font-size:.83rem;border-bottom:1px solid var(--text);padding-bottom:4px}.header-cta span{color:var(--accent);margin-left:5px}
.hero{min-height:100vh;max-width:var(--max);margin:auto;padding:150px 4vw 90px;display:grid;grid-template-columns:.9fr 1.1fr;gap:7vw;align-items:center}.eyebrow,.section-label{text-transform:uppercase;letter-spacing:.16em;font-size:.68rem;color:var(--muted)}h1,h2,blockquote{font-family:"Playfair Display",serif;font-weight:500}h1{font-size:clamp(3.3rem,6.5vw,6.9rem);line-height:.96;letter-spacing:-.055em;margin:24px 0 30px}h1 em,h2 em{color:var(--accent);font-style:italic}.hero-text{max-width:510px;color:var(--muted);font-size:1rem}.button{display:inline-flex;gap:28px;margin-top:30px;padding:14px 0;border-bottom:1px solid var(--text);font-size:.84rem;transition:.3s}.button:hover{gap:40px;color:var(--accent)}.hero-image img{width:100%;max-height:72vh;object-fit:contain;display:block}
.section{max-width:var(--max);margin:auto;padding:130px 4vw}.intro{display:grid;grid-template-columns:.35fr 1fr;border-top:1px solid var(--line)}.intro-content{max-width:860px;display:grid;grid-template-columns:1.1fr .7fr;gap:7vw}h2{font-size:clamp(2.5rem,5vw,5.2rem);line-height:1;letter-spacing:-.045em;margin:0}.intro-content p{color:var(--muted);max-width:420px;align-self:end}
.section-top{display:flex;justify-content:space-between;align-items:end;margin-bottom:38px}.section-top h2{margin-top:18px;font-size:clamp(2.5rem,4.5vw,4.5rem)}.section-note{color:var(--muted);max-width:310px;font-size:.9rem}.filters{display:flex;gap:9px;margin-bottom:35px;flex-wrap:wrap}.filter{border:1px solid var(--line);background:transparent;border-radius:999px;padding:10px 17px;font:inherit;font-size:.75rem;cursor:pointer;transition:.3s}.filter:hover,.filter.active{background:var(--text);color:var(--paper);border-color:var(--text)}
.gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:18px;align-items:start}.card{grid-column:span 4;position:relative;overflow:hidden;cursor:pointer;background:#ebe8e2}.card img{width:100%;height:auto;display:block;object-fit:contain;transition:transform .8s cubic-bezier(.2,.7,.2,1)}.card::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,rgba(0,0,0,.62),transparent 55%);opacity:0;transition:.4s}.card-info{position:absolute;z-index:2;left:24px;right:24px;bottom:22px;color:white;transform:translateY(15px);opacity:0;transition:.45s}.card-info span{font-size:.65rem;text-transform:uppercase;letter-spacing:.14em;opacity:.75}.card-info h3{margin:7px 0 3px;font-size:1.35rem;font-weight:500}.card-info p{margin:0;font-size:.75rem;opacity:.8}.card:hover img{transform:scale(1.035)}.card:hover::after,.card:hover .card-info{opacity:1}.card.hidden{display:none}
.load-more{display:none;margin:42px auto 0;border:1px solid var(--text);background:transparent;padding:13px 24px;border-radius:999px;font:inherit;font-size:.78rem;cursor:pointer;transition:.3s}.load-more:hover{background:var(--text);color:var(--paper)}.gallery-empty{color:var(--muted);text-align:center}
.logo {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: -.04em;
}

.logo > img {
  width: 42px;
  height: 42px;
  object-fit: contain;
  border-radius: 50%;
  flex-shrink: 0;
}

.logo-name > span {
  color: var(--accent);
}
.quote{max-width:1100px;text-align:center;padding-top:190px;padding-bottom:190px}blockquote{font-size:clamp(2.5rem,5vw,5rem);line-height:1.08;letter-spacing:-.045em;margin:25px auto 0}
.contact{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:8vw}.contact-copy p{color:var(--muted);max-width:420px;margin-top:28px}.contact-details{display:flex;flex-direction:column}.contact-details a{padding:22px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:5px}.contact-details span{text-transform:uppercase;letter-spacing:.14em;font-size:.62rem;color:var(--muted)}
.footer{border-top:1px solid var(--line);max-width:var(--max);margin:auto;padding:28px 4vw 38px;display:flex;justify-content:space-between;align-items:center;font-size:.72rem;color:var(--muted)}.footer .logo{color:var(--text)}.footer a{color:var(--text)}
.reveal{opacity:0;transform:translateY(32px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:none}.delay-1{transition-delay:.12s}.delay-2{transition-delay:.22s}
.cursor-glow{position:fixed;width:250px;height:250px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(163,93,59,.08),transparent 68%);transform:translate(-50%,-50%);z-index:0}
.lightbox{position:fixed;inset:0;z-index:50;background:rgba(15,15,15,.94);display:flex;align-items:center;justify-content:center;padding:5vw;opacity:0;pointer-events:none;transition:.35s}.lightbox.open{opacity:1;pointer-events:auto}.lightbox img{max-width:90vw;max-height:85vh;object-fit:contain}.lightbox p{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);color:white;font-size:.8rem}.lightbox-close{position:absolute;top:20px;right:28px;background:none;border:0;color:white;font-size:2.5rem;cursor:pointer}
@media(max-width:800px){.site-header{height:68px}nav{display:none}.header-cta{font-size:.75rem}.hero{padding-top:120px;grid-template-columns:1fr;min-height:auto;gap:50px}.hero-image img{max-height:62vh}.intro,.contact{grid-template-columns:1fr;gap:45px}.intro-content{grid-template-columns:1fr;gap:20px}.section{padding:90px 5vw}.section-top{display:block}.section-note{margin-top:25px}.gallery{grid-template-columns:1fr 1fr;gap:10px}.card{grid-column:span 1}.card-info{left:15px;right:15px;bottom:15px}}
@media(max-width:480px){h1{font-size:3.2rem}.gallery{grid-template-columns:1fr}.card{grid-column:span 1}.logo{max-width:180px}}
