:root{--spruce:#1f3a2e;--spruce2:#142720;--kraft:#f3ead8;--paper:#fbf7ee;--pencil:#f2c230;--ink:#1c2420;--muted:#55605a}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{font-family:'Figtree',system-ui,sans-serif;color:var(--ink);background:var(--paper);font-size:1.07rem;line-height:1.65;overflow-x:hidden}
h1,h2,h3,.brand-name{font-family:'Bevan',Georgia,serif;font-weight:400;line-height:1.08;color:var(--spruce)}
.mono,.eyebrow{font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;font-weight:500}
.eyebrow{color:var(--spruce);display:inline-block;background:var(--pencil);padding:.2rem .6rem;margin-bottom:1rem}
/* nav: centered name stacked over links */
.site-nav{background:var(--spruce2);padding:.6rem 0;border-bottom:3px solid var(--pencil)}
.site-nav .navbar-brand{display:block;text-align:center;color:var(--kraft);font-family:'Bevan',serif;font-size:1.55rem;line-height:1;margin:0 auto}
.site-nav .navbar-brand small{display:block;font-family:'DM Mono',monospace;font-size:.62rem;letter-spacing:.2em;color:var(--pencil);margin-top:.35rem;text-transform:uppercase}
.site-nav .nav-link{color:var(--kraft);font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:.14em;font-size:.76rem;padding:.5rem 1rem}
.site-nav .nav-link:hover{color:var(--pencil)}
.navbar.site-nav .navbar-collapse{justify-content:center}
.navbar.site-nav .container{flex-direction:column}
.site-nav .navbar-toggler{border-color:rgba(243,234,216,.5);position:absolute;right:12px;top:14px}
.site-nav .navbar-toggler-icon{filter:invert(1)}
.site-nav .navbar-brand{padding-right:3rem;padding-left:3rem}
/* signature: tape-measure ruler */
.ruler{height:26px;background:var(--pencil);position:relative;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);
background-image:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 16px),repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 96px);
background-size:100% 9px,100% 18px;background-repeat:repeat-x;background-position:0 0,0 0}
.ruler.thin{height:16px;background-size:100% 6px,100% 11px}
.btn-pencil{background:var(--pencil);color:var(--ink);border:2px solid var(--ink);border-radius:2px;font-weight:800;padding:.8rem 1.5rem;box-shadow:4px 4px 0 var(--ink);transition:.15s}
.btn-pencil:hover{background:#ffd54a;color:var(--ink);transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}
.btn-line{border:2px solid var(--spruce);color:var(--spruce);border-radius:2px;font-weight:800;padding:.8rem 1.5rem;background:transparent}
.btn-line:hover{background:var(--spruce);color:var(--kraft)}
/* hero: type on color block + photo */
.hero{background:var(--spruce);color:var(--kraft);padding:2.2rem 0 3rem;position:relative}
.hero h1{color:var(--kraft);font-size:clamp(2.4rem,5.6vw,4.6rem)}
.hero h1 em{font-style:normal;color:var(--pencil)}
.hero .lead{color:#dfe6dc;max-width:34rem}
.hero .licenses{list-style:none;padding:0;margin:1.3rem 0 1.6rem;display:flex;flex-wrap:wrap;gap:.5rem}
.hero .licenses li{border:1px solid rgba(243,234,216,.4);padding:.25rem .6rem;font-family:'DM Mono',monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}
.hero-photo{position:relative;margin:0 auto;max-width:340px}
.hero-photo img{width:100%;aspect-ratio:3/4;max-height:min(66vh,480px);object-fit:cover;object-position:60% 25%;border-radius:4px;border:4px solid var(--pencil);display:block}
.hero-photo figcaption{position:absolute;left:-10px;bottom:18px;background:var(--pencil);color:var(--ink);font-family:'DM Mono',monospace;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;padding:.35rem .7rem;border:2px solid var(--ink)}
section{padding:80px 0}
.sec-head{margin-bottom:2.2rem}
.sec-head h2{font-size:clamp(1.9rem,4vw,3rem)}
/* services: typographic index */
.index{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);column-gap:2.5rem}
.index li{display:flex;flex-direction:column;justify-content:flex-start;gap:.35rem;min-height:6.2rem;padding:1.1rem 0;border-bottom:2px dashed rgba(31,58,46,.3);font-family:'Bevan',serif;font-size:clamp(1.4rem,3vw,2.1rem);color:var(--spruce);line-height:1.1}
.index li small{font-family:'DM Mono',monospace;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.index li:hover{color:#8a6a00}
.about{background:var(--kraft)}
.about .quote{font-family:'Bevan',serif;font-size:clamp(1.4rem,2.6vw,2rem);color:var(--spruce);line-height:1.2}
.facts{display:grid;gap:.8rem;margin:1.5rem 0 0;padding:0;list-style:none}
.facts li{border-left:5px solid var(--pencil);padding:.2rem 0 .2rem .9rem;background:transparent}
.facts li b{display:block;font-family:'DM Mono',monospace;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:500}
.gal{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.gal figure{margin:0;position:relative}
.gal img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;border:3px solid var(--spruce)}
.gal figure:nth-child(even){margin-top:28px}
.gal figcaption{font-family:'DM Mono',monospace;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;margin-top:.5rem;color:var(--muted)}
.band{background:url(img/lumber.webp) center/cover;color:var(--kraft);padding:90px 0;position:relative;text-align:center}
.band::before{content:"";position:absolute;inset:0;background:rgba(20,39,32,.72)}
.band .container{position:relative}
.band h2{color:var(--kraft);font-size:clamp(1.8rem,4vw,2.9rem)}
.band p{max-width:36rem;margin:1rem auto 1.6rem;color:#e8eee4}
.contact{background:var(--spruce);color:var(--kraft)}
.contact h2{color:var(--kraft)}
.contact a.big{display:block;font-family:'Bevan',serif;font-size:clamp(2rem,5vw,3.2rem);color:var(--pencil);text-decoration:none;line-height:1.1;margin:.4rem 0 1rem}
.contact .mono{color:#b9c8bd}
.map{border:3px solid var(--pencil);width:100%;height:340px;display:block}
footer{background:var(--spruce2);color:#b9c8bd;padding:2rem 0;font-size:.95rem}
footer a{color:var(--pencil)}
@media(max-width:991px){.gal{grid-template-columns:repeat(2,1fr)}.hero{padding-top:1.6rem}.index{grid-template-columns:repeat(2,1fr);column-gap:1.5rem}}
@media(max-width:575px){.index{grid-template-columns:1fr}.index li{min-height:0}section{padding:56px 0}.site-nav .navbar-brand{font-size:1.2rem}.gal figure:nth-child(even){margin-top:0}.hero-photo{max-width:260px;margin-top:1rem}.hero-photo figcaption{left:0}}
