:root{--ink:#23282c;--ink2:#1a1e21;--cream:#f3eee3;--clay:#c98a62;--clay-d:#8b4a2b;--line:rgba(201,138,98,.28)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
img{max-width:100%;height:auto}
body{font-family:'Jost',system-ui,sans-serif;font-size:1.02rem;line-height:1.75;color:var(--ink);background:var(--cream);overflow-x:hidden}
h1,h2,h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;line-height:1.12}
h1{font-size:clamp(2.6rem,5.5vw,4.4rem);color:var(--cream);margin-bottom:1rem}
h2{font-size:clamp(2.1rem,4.2vw,3.2rem);margin-bottom:1.2rem}
h2 em,.lede{font-style:italic;font-weight:300}
a{color:var(--clay-d)}
.eyebrow{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--clay);margin-bottom:1rem}
.eyebrow.dark{color:var(--clay-d)}
/* nav */
.site-nav{position:sticky;top:0;z-index:50;background:rgba(26,30,33,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.site-nav .navbar{padding:.6rem 0}
.brand{display:flex;flex-direction:column;text-decoration:none;color:var(--cream)}
.brand-name{font-family:'Cormorant Garamond',serif;font-size:1.5rem;letter-spacing:.22em;text-transform:uppercase;font-weight:300;line-height:1.1}
.brand-sub{font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--clay)}
.navbar.navbar-expand-lg .container{flex-direction:column}
.navbar.navbar-expand-lg .navbar-collapse{justify-content:center;flex-grow:0}
.navbar .brand{align-items:center;text-align:center}
.navbar .navbar-toggler{position:absolute;right:12px;top:14px;border-color:rgba(243,238,227,.35)}
.navbar .nav-link{font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:rgba(243,238,227,.8);padding:.5rem 1.1rem;transition:color .3s}
.navbar .nav-link:hover{color:var(--clay)}
@media(max-width:991px){.navbar.navbar-expand-lg .container{flex-direction:row;flex-wrap:wrap}.navbar .brand{align-items:flex-start;text-align:left}.brand-name{font-size:1.1rem;letter-spacing:.16em}.navbar .navbar-toggler{position:static}.navbar.navbar-expand-lg .navbar-collapse{width:100%}}
/* hero */
.hero{background:linear-gradient(160deg,var(--ink) 0%,var(--ink2) 100%);padding:48px 0 60px;color:var(--cream)}
.hero .lede{font-size:1.3rem;opacity:.85;max-width:34rem;margin-bottom:1.8rem;font-family:'Cormorant Garamond',serif}
.arch{margin:0;border-radius:999px 999px 0 0;overflow:hidden;border:1px solid var(--line);padding:10px;max-width:420px;margin-inline:auto}
.arch img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 40%;border-radius:999px 999px 0 0}
.caption{text-align:center;font-size:.65rem;letter-spacing:.3em;text-transform:uppercase;color:var(--clay);margin:.8rem 0 0}
@media(max-width:991px){.hero{padding:28px 0 44px}.arch{max-width:230px}}
.btn-solid,.btn-ghost{display:inline-block;font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;text-decoration:none;padding:15px 36px;border:1px solid var(--clay);transition:opacity .3s,background .3s,color .3s}
.btn-solid{background:var(--clay);color:var(--ink2)}
.btn-solid:hover{opacity:.85;color:var(--ink2)}
.btn-ghost{color:var(--cream);border-color:rgba(243,238,227,.35)}
.btn-ghost:hover{background:rgba(243,238,227,.1);color:var(--cream)}
.dark-btn{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.dark-btn:hover{color:var(--cream)}
.dark-ghost{color:var(--ink);border-color:rgba(35,40,44,.4)}
.dark-ghost:hover{background:rgba(35,40,44,.07);color:var(--ink)}
/* signature: running-bond brick course */
.course{height:22px;background-color:var(--ink2);background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:100% 11px,44px 11px,44px 11px;background-position:0 0,0 0,22px 11px;border-top:1px solid var(--line)}
.course.dark-course{margin:4rem 0 3rem;background-color:transparent;opacity:.8;--line:rgba(139,74,43,.35)}
/* sections */
.section{padding:96px 0}
@media(max-width:767px){.section{padding:64px 0}}
.section.cream{background:var(--cream)}
.section.dark{background:var(--ink);color:var(--cream)}
.section.dark h2{color:var(--cream)}
.section.dark a{color:var(--clay)}
.narrow{max-width:820px}
.soft{opacity:.82}
.stats{display:flex;flex-wrap:wrap;gap:2rem 3.5rem;margin-top:2.5rem;padding-top:2rem;border-top:1px solid rgba(139,74,43,.25)}
.stats .n{display:block;font-family:'Cormorant Garamond',serif;font-size:3rem;line-height:1;color:var(--clay-d)}
.stats .l{font-size:.65rem;letter-spacing:.25em;text-transform:uppercase}
.index{list-style:none;padding:0;margin:1.8rem 0;border-top:1px solid var(--line)}
.index li{font-family:'Cormorant Garamond',serif;font-size:1.7rem;font-weight:300;padding:.55rem 0;border-bottom:1px solid var(--line)}
.svc-photos{display:grid;gap:1.4rem}
.frame{margin:0;border:1px solid var(--line);padding:10px}
.frame img{display:block;width:100%}
/* galleries */
.grid{display:grid;gap:14px}
.g-fire{grid-template-columns:repeat(4,1fr)}
.g-hard{grid-template-columns:repeat(3,1fr)}
@media(max-width:991px){.g-fire{grid-template-columns:repeat(3,1fr)}}
@media(max-width:575px){.g-fire,.g-hard{grid-template-columns:repeat(2,1fr);gap:8px}}
.tile{margin:0;overflow:hidden;background:var(--ink)}
.tile img{display:block;width:100%;height:100%;object-fit:cover;transition:opacity .3s}
.tile:hover img{opacity:.88}
.tile.portrait{aspect-ratio:3/4}
.tile.land{aspect-ratio:4/3}
/* reviews */
blockquote{margin:0;padding:1.6rem 0 0;border-top:1px solid var(--line)}
blockquote p{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:300;font-size:1.3rem;line-height:1.5}
cite{font-style:normal;font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--clay)}
/* contact */
.contact-list{display:grid;grid-template-columns:auto 1fr;gap:.6rem 1.5rem;margin:1.8rem 0}
.contact-list dt{font-size:.65rem;letter-spacing:.28em;text-transform:uppercase;color:var(--clay-d);padding-top:.35rem}
.contact-list dd{margin:0;overflow-wrap:anywhere}
.ig{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase}
.map{border:1px solid var(--line);padding:8px;height:100%;min-height:360px}
.map iframe{width:100%;height:100%;min-height:344px;border:0;filter:grayscale(.4)}
/* footer */
.foot{background:var(--ink2);color:rgba(243,238,227,.8);text-align:center;padding:48px 0 40px;border-top:1px solid var(--line)}
.foot .container{display:flex;flex-direction:column;gap:.6rem}
.foot .brand-name{color:var(--cream)}
.foot-meta{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase}
.foot a{color:var(--clay)}
