@font-face{font-family:Fraunces;src:url(fonts/fraunces.woff2) format("woff2");font-weight:300 600;font-display:swap}
@font-face{font-family:Inter;src:url(fonts/inter.woff2) format("woff2");font-weight:400 600;font-display:swap}
:root{--ink:#1d1a16;--soft:#5d554b;--cream:#f6f1e9;--sand:#ece3d5;--wood:#a8743f;--gold:#e8c400;--r:28px;--r-lg:44px;--ease:cubic-bezier(.22,.8,.24,1);--shadow:0 30px 80px -30px rgba(60,40,20,.35)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:Inter,system-ui,sans-serif;color:var(--ink);background:var(--cream);line-height:1.65;font-size:1.0625rem;hyphens:none;-webkit-hyphens:none;overflow-wrap:normal;word-break:normal;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:400;line-height:1.05;letter-spacing:-.02em;hyphens:none;text-wrap:balance}
p{text-wrap:pretty}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
.wrap{width:min(1240px,100% - 2.5rem);margin-inline:auto}
.btn{display:inline-flex;align-items:center;gap:.6em;padding:1em 1.7em;border-radius:999px;background:var(--ink);color:var(--cream);text-decoration:none;font-weight:500;transition:transform .8s var(--ease),box-shadow .8s var(--ease),background .6s var(--ease);box-shadow:0 14px 34px -14px rgba(29,26,22,.6)}
.btn:hover{transform:translateY(-3px);box-shadow:0 22px 44px -16px rgba(29,26,22,.55)}
.btn.light{background:rgba(255,255,255,.16);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:#fff;border:1px solid rgba(255,255,255,.35);box-shadow:none}
.btn.light:hover{background:rgba(255,255,255,.28)}
.btn.gold{background:var(--gold);color:var(--ink)}
/* nav */
.nav{position:fixed;inset:1rem 1rem auto;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:.6rem .7rem .6rem 1.4rem;border-radius:999px;transition:background .9s var(--ease),box-shadow .9s var(--ease),color .9s var(--ease);color:#fff}
.nav.solid{background:rgba(246,241,233,.82);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 10px 40px -18px rgba(60,40,20,.35);color:var(--ink)}
.brand{font-family:Fraunces,serif;font-size:1.3rem;text-decoration:none;letter-spacing:-.01em;white-space:nowrap}
.brand b{font-weight:600}
.nav ul{display:flex;gap:.3rem;list-style:none}
.nav ul a{display:block;padding:.55em 1.05em;border-radius:999px;text-decoration:none;font-size:.95rem;transition:background .6s var(--ease)}
.nav ul a:hover{background:rgba(127,110,90,.16)}
.nav .btn{padding:.7em 1.25em;font-size:.95rem}
@media(max-width:860px){.nav ul{display:none}}
/* hero */
.hero{position:relative;min-height:100svh;display:grid;align-items:end;color:#fff;overflow:hidden;border-radius:0 0 var(--r-lg) var(--r-lg)}
.hero picture,.hero img.bg{position:absolute;inset:0;width:100%;height:100%}
.hero img.bg{object-fit:cover;object-position:60% 40%;transform:scale(1.12);animation:kb 2.8s var(--ease) forwards;will-change:transform}
@keyframes kb{to{transform:scale(1)}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,15,10,.35) 0%,rgba(20,15,10,0) 30%,rgba(20,15,10,.25) 55%,rgba(20,15,10,.82) 100%)}
.hero .in{position:relative;z-index:2;padding:0 0 clamp(3rem,9vh,7rem)}
.eyebrow{display:inline-flex;align-items:center;gap:.7em;font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;font-weight:500}
.eyebrow::before{content:"";width:.5em;height:.5em;border-radius:50%;background:var(--gold)}
.hero h1{font-size:clamp(2.9rem,9.5vw,8.6rem);margin:.35em 0 .3em;font-weight:300;max-width:11ch}
.hero h1 em{font-style:italic;color:#f3dfb9}
.hero p.lead{max-width:34rem;font-size:clamp(1.05rem,1.6vw,1.25rem);opacity:.92}
.hero .cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.line{display:block;overflow:hidden;padding-bottom:.08em}
.line>span{display:inline-block;transform:translateY(105%);filter:blur(8px);opacity:0;animation:rise 1.6s var(--ease) forwards}
.line:nth-child(2)>span{animation-delay:.15s}.line:nth-child(3)>span{animation-delay:.3s}
@keyframes rise{to{transform:none;filter:none;opacity:1}}
.fadein{opacity:0;animation:fade 1.6s var(--ease) .7s forwards}
@keyframes fade{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.scrollhint{position:absolute;z-index:2;right:clamp(1.25rem,4vw,3rem);bottom:clamp(3rem,9vh,7rem);width:58px;height:92px;border-radius:999px;border:1px solid rgba(255,255,255,.45);display:grid;place-items:start center;padding-top:14px}
.scrollhint::after{content:"";width:6px;height:6px;border-radius:50%;background:#fff;animation:dot 2.4s var(--ease) infinite}
@keyframes dot{0%{transform:translateY(0);opacity:0}30%{opacity:1}100%{transform:translateY(46px);opacity:0}}
@media(max-width:700px){.scrollhint{display:none}}
/* sections */
section{padding:clamp(5rem,12vw,10rem) 0}
.kicker{font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--wood);font-weight:600;display:flex;align-items:center;gap:.8em;margin-bottom:1.4rem}
.kicker::before{content:"";width:.45em;height:.45em;border-radius:50%;background:currentColor}
h2{font-size:clamp(2.3rem,5.6vw,4.8rem);font-weight:300}
h2 em{font-style:italic;color:var(--wood)}
.intro{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.intro p{color:var(--soft);font-size:1.15rem;margin-top:1.6rem;max-width:36rem}
.feather{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);position:relative}
.feather img{width:100%;height:100%;object-fit:cover}
.feather::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 60px 20px rgba(246,241,233,.18);pointer-events:none}
.intro .feather{aspect-ratio:4/5}
@media(max-width:860px){.intro{grid-template-columns:1fr}}
/* services */
.services{background:var(--ink);color:var(--cream);border-radius:var(--r-lg);margin:0 clamp(.6rem,1.5vw,1.25rem)}
.services h2 em{color:#e2b77f}
.services .kicker{color:#e2b77f}
.svc-head{display:flex;justify-content:space-between;align-items:end;gap:2rem;flex-wrap:wrap;margin-bottom:clamp(3rem,6vw,5rem)}
.svc-head p{max-width:26rem;color:#cfc5b6}
.svc{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem}
.card{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:3/4.4;isolation:isolate;transition:transform 1.1s var(--ease)}
.card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease);z-index:-2}
.card::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(15,12,9,.85))}
.card h3{position:absolute;left:1.3rem;right:1.3rem;bottom:1.2rem;font-size:clamp(1.4rem,2vw,1.9rem)}
.card:hover img{transform:scale(1.06)}
.card:hover{transform:translateY(-6px)}
@media(max-width:1000px){.svc{grid-template-columns:repeat(2,1fr)}.card:first-child{grid-column:span 2;aspect-ratio:16/10}}
/* gallery */
.gal-head{display:flex;justify-content:space-between;align-items:end;gap:2rem;flex-wrap:wrap;margin-bottom:3rem}
.gal{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem;grid-auto-flow:dense}
.gal figure{border-radius:var(--r);overflow:hidden;box-shadow:0 20px 60px -30px rgba(60,40,20,.4);background:var(--sand)}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform 1.8s var(--ease)}
.gal figure:hover img{transform:scale(1.05)}
.g1{grid-column:span 7;aspect-ratio:16/11}.g2{grid-column:span 5;aspect-ratio:4/5}.g3{grid-column:span 4;aspect-ratio:3/4}.g4{grid-column:span 4;aspect-ratio:3/4}.g5{grid-column:span 4;aspect-ratio:3/4}.g6{grid-column:span 5;aspect-ratio:4/5}.g7{grid-column:span 7;aspect-ratio:16/11}
@media(max-width:760px){.gal{grid-template-columns:1fr 1fr}.gal figure{grid-column:span 1!important;aspect-ratio:3/4!important}.gal .g1,.gal .g7{grid-column:span 2!important;aspect-ratio:4/3!important}}
/* history */
.history{background:var(--sand);border-radius:var(--r-lg);margin:0 clamp(.6rem,1.5vw,1.25rem)}
.hist{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,6vw,6rem);align-items:start}
.hist .pics{display:grid;grid-template-columns:1fr 1fr;gap:1rem;position:sticky;top:7rem}
.hist .pics .feather:first-child{grid-column:span 2;aspect-ratio:16/10}
.hist .pics .feather{aspect-ratio:1}
.timeline{list-style:none;margin-top:2.5rem}
.timeline li{position:relative;padding:0 0 2.6rem 2.2rem}
.timeline li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:9px;border-radius:50%;background:var(--wood);box-shadow:0 0 0 6px rgba(168,116,63,.14)}
.timeline li::after{content:"";position:absolute;left:4px;top:1.6em;bottom:.2rem;width:1px;background:linear-gradient(var(--wood),transparent);opacity:.35}
.timeline li:last-child::after{display:none}
.timeline b{font-family:Fraunces,serif;font-weight:400;font-size:1.9rem;display:block;line-height:1.1;margin-bottom:.3rem}
.timeline p{color:var(--soft)}
@media(max-width:860px){.hist{grid-template-columns:1fr}.hist .pics{position:static}}
/* team */
.quote{font-family:Fraunces,serif;font-size:clamp(1.7rem,3.6vw,3rem);line-height:1.2;font-weight:300;max-width:22ch;letter-spacing:-.015em}
.quote em{color:var(--wood)}
.team{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.team p{color:var(--soft);margin-top:1.4rem;max-width:34rem}
@media(max-width:860px){.team{grid-template-columns:1fr}}
/* contact */
.contact{padding-bottom:clamp(3rem,6vw,5rem)}
.cbox{position:relative;overflow:hidden;border-radius:var(--r-lg);background:radial-gradient(120% 140% at 0% 0%,#3a2d20 0%,#1d1a16 55%);color:var(--cream);padding:clamp(2.2rem,6vw,5.5rem);display:grid;grid-template-columns:1.2fr .8fr;gap:3rem}
.cbox::before{content:"";position:absolute;width:520px;height:520px;right:-160px;top:-200px;border-radius:50%;background:radial-gradient(circle,rgba(232,196,0,.22),transparent 65%);filter:blur(10px)}
.cbox h2 em{color:#e2b77f}
.cbox p{color:#d6ccbd;margin-top:1.4rem;max-width:30rem}
.cbox .cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2.2rem}
.facts{list-style:none;display:grid;gap:1.5rem;align-content:center;position:relative}
.facts li{padding-left:1.4rem;position:relative}
.facts li::before{content:"";position:absolute;left:0;top:.65em;width:6px;height:6px;border-radius:50%;background:#e2b77f}
.facts small{display:block;letter-spacing:.16em;text-transform:uppercase;font-size:.72rem;color:#a99d8b;margin-bottom:.2rem}
.facts a{text-decoration:none}
.facts a:hover{text-decoration:underline;text-underline-offset:4px}
.way{margin-top:3rem;display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.way div{background:#fff;border-radius:var(--r);padding:1.8rem 2rem;box-shadow:0 20px 60px -40px rgba(60,40,20,.5)}
.way h3{font-size:1.45rem;margin-bottom:.6rem}
.way p{color:var(--soft);font-size:.98rem}
@media(max-width:860px){.cbox,.way{grid-template-columns:1fr}}
footer{padding:2.5rem 0 3rem;color:var(--soft);font-size:.92rem}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem 2rem}
footer nav{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem}
footer a{text-decoration:none}footer a:hover{color:var(--ink)}
/* reveal */
.rv{opacity:0;transform:translateY(46px);filter:blur(10px);transition:opacity 1.5s var(--ease),transform 1.5s var(--ease),filter 1.5s var(--ease)}
.rv.d1{transition-delay:.12s}.rv.d2{transition-delay:.24s}.rv.d3{transition-delay:.36s}.rv.d4{transition-delay:.48s}
.rv.on{opacity:1;transform:none;filter:none}
.zoom img{transform:scale(1.14);transition:transform 2.4s var(--ease)}
.zoom.on img{transform:scale(1)}

@keyframes pagein{from{opacity:0}to{opacity:1}}
body.leaving{opacity:0;filter:blur(6px);transition:opacity .5s var(--ease),filter .5s var(--ease)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.rv,.line>span{opacity:1!important;transform:none!important;filter:none!important}.hero img.bg{transform:none}}
/* legal */
.legal{padding:9rem 0 4rem}
.legal .wrap{max-width:820px}
.legal h1{font-size:clamp(1.9rem,7vw,4.4rem);font-weight:300;margin-bottom:2rem}
.legal h2{font-size:1.6rem;margin:2.6rem 0 .8rem;font-weight:400}
.legal p,.legal li{color:var(--soft);margin-bottom:.8rem}
.legal ul{list-style:none}
.legal ul li{position:relative;padding-left:1.3rem}
.legal ul li::before{content:"";position:absolute;left:0;top:.7em;width:6px;height:6px;border-radius:50%;background:var(--wood)}
.legal .card-soft{background:#fff;border-radius:var(--r);padding:2rem;box-shadow:0 20px 60px -40px rgba(60,40,20,.5)}
.nav.dark{color:var(--ink)}
.credit{opacity:.75}
@media(max-width:480px){.card h3{font-size:1.25rem;left:1rem;right:1rem}.svc .card:last-child{grid-column:span 2;aspect-ratio:16/10}}
