:root{--green:#1d3a33;--green-2:#26493f;--brass:#b8903a;--brass-lt:#d9b865;--cream:#f6f1e4;--paper:#fffdf7;--ink:#1a1f1d;--muted:#5d625e;
--display:'Libre Caslon Text','Times New Roman',serif;--body:'Public Sans',system-ui,sans-serif}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{font-family:var(--body);color:var(--ink);background:var(--cream);font-size:1.0625rem;line-height:1.7;overflow-x:hidden}
h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.1}
h2{font-size:clamp(2rem,4.5vw,3rem);margin-bottom:1.25rem}
a{color:inherit}
img{max-width:100%;height:auto}
.eyebrow{font-family:var(--body);font-weight:600;letter-spacing:.22em;text-transform:uppercase;font-size:.78rem;color:var(--brass);margin-bottom:.9rem}
.eyebrow.dark{color:#8a6a22}
.btn{font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:.85rem;border-radius:0;padding:.8rem 1.6rem}
.btn-brass{background:var(--brass);border:2px solid var(--brass);color:var(--green)}
.btn-brass:hover{background:var(--brass-lt);border-color:var(--brass-lt);color:var(--green)}
.btn-line{border:2px solid var(--brass);color:#fff}
.btn-line:hover{background:var(--brass);color:var(--green)}
/* nav: centered name stacked above links */
.mainnav{background:var(--green);border-bottom:3px solid var(--brass);padding:.75rem 0}
.mainnav .navbar-brand{display:block;text-align:center;color:#fff;font-family:var(--display);font-weight:700;font-size:1.5rem;line-height:1.1;margin:0}
.mainnav .navbar-brand small{display:block;font-family:var(--body);font-weight:600;font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--brass-lt);margin-top:.25rem}
.navbar.mainnav .navbar-collapse{justify-content:center}
.mainnav .nav-link{color:#e9e4d2;font-weight:600;text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;padding:.6rem 1.1rem}
.mainnav .nav-link:hover{color:var(--brass-lt)}
.mainnav .navbar-toggler{border-color:var(--brass);position:absolute;right:12px;top:14px}
.mainnav .navbar-toggler-icon{filter:invert(1)}
@media(min-width:992px){.navbar.mainnav .container{flex-direction:column}}
/* hero + spines */
.hero{background:var(--green);color:#fff;padding:4.5rem 0 0;text-align:center;position:relative}
.hero h1{font-size:clamp(2.4rem,6vw,4.6rem);max-width:15ch;margin:0 auto 1.25rem}
.hero h1 em{color:var(--brass-lt);font-style:italic}
.hero-sub{max-width:40rem;margin:0 auto 1.75rem;color:#dfe6e0;font-size:1.15rem}
.shelf{display:flex;justify-content:center;align-items:flex-end;gap:6px;margin-top:3.5rem;padding:0 12px}
.spine{flex:0 1 150px;text-decoration:none;color:var(--paper);background:var(--green-2);border:1px solid #0f2520;border-bottom:0;border-radius:6px 6px 0 0;padding:1.1rem .5rem 1rem;display:flex;flex-direction:column;align-items:center;gap:.7rem;position:relative;transition:transform .2s}
.spine:nth-child(1){height:250px}.spine:nth-child(2){height:280px;background:#33241f}.spine:nth-child(3){height:240px;background:#16302a}.spine:nth-child(4){height:265px;background:#2c3a4a}
.spine:hover{transform:translateY(-8px);color:#fff}
.spine::before,.spine::after{content:"";position:absolute;left:0;right:0;height:5px;background:var(--brass);opacity:.85}
.spine::before{top:14px}.spine::after{bottom:14px}
.spine span{font-family:var(--display);font-weight:700;font-size:.95rem;line-height:1.2;white-space:nowrap;writing-mode:vertical-rl;transform:rotate(180deg);margin:auto 0;letter-spacing:.04em;color:var(--brass-lt)}
.spine svg{width:26px;height:26px;fill:none;stroke:var(--brass-lt);stroke-width:1.6;flex:none;margin-top:.7rem}
.shelf-board{height:14px;background:var(--brass);border-top:2px solid var(--brass-lt)}
@media(max-width:575px){.shelf{gap:3px}.spine{padding:1rem .2rem}.spine span{font-size:.82rem}.spine:nth-child(n){height:230px}.spine:nth-child(2){height:255px}}
.strip{background:var(--brass);color:var(--green);padding:1.1rem 0;text-align:center;font-weight:600;letter-spacing:.04em}
.strip span{margin:0 1.1rem;white-space:nowrap}
.section{padding:5.5rem 0}
.practice{background:var(--paper);border-left:6px solid var(--brass);padding:2rem 2rem 1.75rem;height:100%;box-shadow:0 1px 0 rgba(0,0,0,.06)}
.practice h3{font-size:1.6rem;margin-bottom:.75rem;color:var(--green)}
.practice ul{padding-left:1.15rem;margin:.5rem 0 0}
.practice li{margin-bottom:.35rem}
.practice .cta-link{display:inline-block;margin-top:1rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;color:var(--green);border-bottom:2px solid var(--brass);text-decoration:none}
.books{background:var(--green);padding:0}
.books img{display:block;margin:0 auto;border-left:3px solid var(--brass);border-right:3px solid var(--brass)}
.approach{background:var(--paper)}
.pull{background:var(--green);color:#fff;text-align:center;padding:4rem 0;border-top:6px solid var(--brass)}
.pull p{font-family:var(--display);font-style:italic;font-size:clamp(1.5rem,3.6vw,2.4rem);line-height:1.3;max-width:880px;margin:0 auto}
.pull cite{display:block;margin-top:1rem;font-style:normal;font-size:.8rem;letter-spacing:.22em;text-transform:uppercase;color:var(--brass-lt)}
.contact-card{background:var(--green);color:#fff;padding:2.25rem;height:100%}
.contact-card h3{color:var(--brass-lt);font-size:1.5rem}
.contact-card dt{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass-lt);margin-top:1.1rem;font-weight:600}
.contact-card dd{margin:0;font-size:1.1rem}
.contact-card a{text-decoration:none;border-bottom:1px solid var(--brass)}
.map{border:0;width:100%;height:100%;min-height:380px;filter:grayscale(.3)}
.footer{background:#12251f;color:#cfd6d1;padding:2.5rem 0;text-align:center;font-size:.9rem}
.footer a{color:var(--brass-lt);text-decoration:none}
.footer .name{font-family:var(--display);font-size:1.2rem;color:#fff}
.powered{margin-top:.75rem}
