:root{
  --bg:#0c0a08;
  --bg-2:#2a3723;
  --card:#2a3723;
  --card-2:#3a4732;
  --txt:#e8e5dd;
  --muted:#b9bba8;
  --line:rgba(232,229,221,.22);
  --accent:#dcbc98;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:Inter,system-ui,sans-serif;
  color:var(--txt);
  line-height:1.7;
  background:
    radial-gradient(1100px 600px at 10% -10%, rgba(42,55,35,.55), transparent 60%),
    radial-gradient(900px 500px at 100% 0%, rgba(220,188,152,.18), transparent 60%),
    linear-gradient(180deg,var(--bg),var(--bg-2));
  overflow-x:hidden;
}

/* animated grain */
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:9998;
  opacity:.08;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cg fill='%23ffffff' fill-opacity='1'%3E%3Ccircle cx='7' cy='11' r='1'/%3E%3Ccircle cx='44' cy='28' r='1'/%3E%3Ccircle cx='79' cy='18' r='1'/%3E%3Ccircle cx='120' cy='51' r='1'/%3E%3Ccircle cx='26' cy='83' r='1'/%3E%3Ccircle cx='62' cy='72' r='1'/%3E%3Ccircle cx='97' cy='97' r='1'/%3E%3Ccircle cx='132' cy='122' r='1'/%3E%3C/g%3E%3C/svg%3E");
  animation:grainShift .35s steps(2) infinite;
}
@keyframes grainShift{0%{transform:translate(0,0)}25%{transform:translate(1px,-1px)}50%{transform:translate(-1px,1px)}75%{transform:translate(1px,1px)}100%{transform:translate(0,0)}}

a{text-decoration:none;color:inherit}
h1,h2,h3{font-family:"Playfair Display",serif;line-height:1.12}
.container{max-width:1160px;margin:0 auto;padding:0 22px}

/* page transitions */
.page-transition{opacity:1;transform:translateY(0);transition:opacity .45s ease,transform .45s ease}
.page-transition.is-leaving{opacity:0;transform:translateY(12px)}

.nav{position:sticky;top:0;z-index:100;background:rgba(12,10,8,.72);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav .container{height:64px;display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;height:44px;max-width:180px}
.logo-img{display:block;height:38px;width:auto;max-width:180px;object-fit:contain;filter:drop-shadow(0 2px 8px rgba(42,55,35,.35));}
.nav .container{gap:14px}
@media (max-width:560px){.logo-img{height:32px;max-width:140px}}
.menu{display:flex;gap:18px;color:var(--muted);font-size:.9rem}
.menu a{padding:.35rem .1rem;border-bottom:2px solid transparent;transition:.22s}
.menu a:hover,.menu a.active{color:#fff;border-color:var(--accent)}

.btn{display:inline-flex;gap:.5rem;align-items:center;justify-content:center;padding:.75rem 1.15rem;border-radius:999px;font-weight:600;font-size:.87rem;transition:transform .2s ease,box-shadow .25s ease,border-color .2s}
.btn-primary{background:linear-gradient(90deg,var(--card),var(--accent));color:#fff;box-shadow:0 8px 28px rgba(42,55,35,.45)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(220,188,152,.3)}
.btn-outline{border:1px solid var(--line);color:#eee;background:rgba(255,255,255,.03)}
.btn-outline:hover{border-color:rgba(255,255,255,.45)}

.hero{padding:110px 0 70px;position:relative;overflow:hidden}
.hero-media{position:absolute;inset:0;z-index:-1}
.hero-media img{width:100%;height:100%;object-fit:cover;filter:brightness(.38) saturate(.8)}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg, rgba(12,10,8,.35), rgba(12,10,8,.88));}
.hero .kicker{display:inline-block;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--accent);margin-bottom:.7rem}
.hero h1{font-size:clamp(2.1rem,6.2vw,5.1rem);margin-bottom:.6rem}
.hero p{max-width:760px;color:var(--muted);font-size:1.03rem}
.hero-cta{margin-top:1.3rem;display:flex;gap:.7rem;flex-wrap:wrap}

.section{padding:76px 0}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.card{
  background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  border:1px solid var(--line);
  border-radius:18px;
  padding:22px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06), 0 12px 30px rgba(42,55,35,.32);
  transition:transform .28s ease, border-color .28s ease;
}
.card:hover{transform:translateY(-4px);border-color:rgba(220,188,152,.6)}
.card h3{font-size:1.42rem;margin-bottom:.5rem}
.card p{color:var(--muted)}
.list{margin-top:.6rem;padding-left:18px;color:var(--muted)}

.inline-photo{margin-top:14px;border-radius:14px;overflow:hidden;border:1px solid var(--line)}
.inline-photo img{width:100%;height:200px;object-fit:cover;display:block;transition:transform .5s ease}
.card:hover .inline-photo img{transform:scale(1.04)}

.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.gallery figure{position:relative;overflow:hidden;border-radius:14px;border:1px solid var(--line);background:var(--card-2)}
.gallery img{width:100%;height:250px;object-fit:cover;display:block;transition:.45s}
.gallery figcaption{position:absolute;left:10px;bottom:10px;font-size:.75rem;background:rgba(42,55,35,.72);padding:.3rem .55rem;border-radius:999px}
.gallery figure:hover img{transform:scale(1.06)}

.form .field{margin-bottom:13px}
.form label{display:block;font-size:.72rem;color:#d4cfbf;text-transform:uppercase;letter-spacing:.09em;margin-bottom:5px}
.form input,.form textarea,.form select{width:100%;padding:12px 13px;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid var(--line);color:#fff}
.form textarea{min-height:130px}

.site-footer{margin-top:40px;border-top:1px solid var(--line);background:linear-gradient(180deg, rgba(58,71,50,.45), rgba(12,10,8,.95));}
.footer-grid{padding:42px 22px 26px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:26px}
.footer-logo{margin-bottom:12px}
.footer-text{color:var(--muted);max-width:340px;font-size:.9rem}
.site-footer h4{font-family:"Playfair Display",serif;font-size:1.08rem;margin-bottom:10px;color:var(--txt)}
.site-footer ul{list-style:none;display:flex;flex-direction:column;gap:7px}
.site-footer li,.site-footer a{color:var(--muted);font-size:.88rem}
.site-footer a:hover{color:var(--accent)}
.footer-bottom{border-top:1px solid var(--line);padding:14px 22px 22px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:.8rem}
.footer-mini-links a{color:var(--muted)}
.footer-mini-links a:hover{color:var(--accent)}

.reveal{opacity:0;transform:translateY(24px);transition:.65s}
.reveal.show{opacity:1;transform:none}

/* custom cursor */
.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:10000;mix-blend-mode:screen}
.cursor-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);transform:translate(-50%,-50%)}
.cursor-ring{width:34px;height:34px;border:1px solid rgba(220,188,152,.65);border-radius:50%;transform:translate(-50%,-50%);transition:width .18s,height .18s,border-color .18s}
.cursor-ring.active{width:52px;height:52px;border-color:rgba(232,229,221,.8)}

@media (max-width:940px){
  .menu{font-size:.82rem;gap:11px}
  .grid-2{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .menu{display:none}
  .gallery{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .cursor-dot,.cursor-ring{display:none}
  body{cursor:auto}
}