:root{
  --paper:#F2EEE3; --paper-deep:#EAE4D4; --ink:#1B1B18;
  --navy:#1F2E45; --navy-deep:#16212F;
  --bronze:#7C5A32; --bronze-lt:#9C7B4E;
  --slate:#5B6472; --line:#D8D2C2; --line-dark:rgba(242,238,227,0.14);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Public Sans',system-ui,sans-serif;background:var(--paper);color:var(--ink);line-height:1.65;-webkit-font-smoothing:antialiased}
.serif{font-family:'Fraunces',Georgia,serif}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{width:min(1120px,calc(100% - 48px));margin:0 auto}
.narrow{width:min(680px,calc(100% - 48px));margin:0 auto}
a:focus-visible, button:focus-visible{outline:2px solid var(--bronze);outline-offset:3px}

@media (prefers-reduced-motion: no-preference){
  [data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .7s ease, transform .7s ease}
  [data-reveal].vis{opacity:1;transform:none}
}

/* ---------- NAV ---------- */
header{position:sticky;top:0;z-index:50;background:rgba(242,238,227,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;padding:22px 0;position:relative}
.brand{display:flex;align-items:baseline;gap:10px}
.brand-name{font-family:'Fraunces',serif;font-size:20px;font-weight:500;letter-spacing:.01em}
.brand-tag{font-size:11px;color:var(--slate);display:none}
@media(min-width:640px){.brand-tag{display:inline}}
.menu{display:flex;align-items:center;gap:34px}
.menu-links{display:flex;gap:34px}
.menu a{font-size:13.5px;color:var(--ink);opacity:.75;transition:opacity .2s}
.menu a:hover,.menu a.active{opacity:1}
.menu-cta{border:1px solid var(--navy);padding:9px 18px;font-size:13px;opacity:1 !important}
.menu-cta:hover{background:var(--navy);color:var(--paper)}
.menu-toggle{display:none;background:none;border:1px solid var(--line);padding:8px 14px;font-size:13px;font-family:inherit;color:var(--ink);cursor:pointer}
@media(max-width:760px){
  .menu-links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:flex-start;gap:0;background:var(--paper);border-bottom:1px solid var(--line);padding:8px 0}
  .menu-links.open{display:flex}
  .menu-links a{padding:14px 0;width:100%}
  .menu-toggle{display:block}
}

/* ---------- PAGE HERO ---------- */
.page-hero{padding:88px 0 64px;border-bottom:1px solid var(--line)}
.page-hero .hero-note{font-size:12.5px;color:var(--bronze);font-style:italic;font-family:'Fraunces',serif;margin-bottom:22px}
.page-hero h1{font-family:'Fraunces',serif;font-weight:400;font-size:clamp(2.1rem,4.6vw,3.3rem);line-height:1.1;max-width:18ch}
.page-hero p{margin-top:20px;font-size:15.5px;color:var(--slate);max-width:56ch;line-height:1.75}

/* ---------- MARGIN-NOTE SECTION HEADER ---------- */
.sec-head{display:grid;grid-template-columns:200px 1fr;gap:40px;margin-bottom:56px;align-items:start}
.sec-note{font-size:13px;color:var(--bronze);font-style:italic;font-family:'Fraunces',serif;padding-top:6px}
.sec-head h2{font-size:clamp(1.6rem,3.2vw,2.3rem);font-weight:400;line-height:1.16;max-width:20ch}
@media(max-width:720px){.sec-head{grid-template-columns:1fr}}

section{padding:84px 0}
section.alt{background:var(--paper-deep)}
section.dark{background:var(--navy);color:var(--paper)}

/* ---------- TRIAD / DIVIDED LIST ---------- */
.triad{display:grid;grid-template-columns:200px 1fr;gap:40px}
.triad-list{border-top:1px solid var(--line)}
.triad-item{padding:30px 0;border-bottom:1px solid var(--line)}
.triad-item h3{font-family:'Fraunces',serif;font-size:1.25rem;font-weight:500;color:var(--bronze);margin-bottom:8px}
.triad-item p{font-size:14.5px;color:var(--slate);max-width:60ch;margin-top:8px;line-height:1.7}
.triad-item .meta{margin-top:14px;font-size:12.5px;color:var(--slate);opacity:.85}
@media(max-width:720px){.triad{grid-template-columns:1fr}}

/* ---------- PHILOSOPHY / PULLQUOTE ---------- */
.philosophy-lead{font-size:1.3rem;font-weight:400;line-height:1.42;color:var(--navy)}
.philosophy-body{margin-top:16px;font-size:15px;color:var(--slate);line-height:1.75;max-width:60ch}
.pullquote{font-family:'Fraunces',serif;font-style:italic;font-size:1.2rem;line-height:1.5;color:var(--navy);border-left:2px solid var(--bronze);padding-left:22px;margin-top:30px;max-width:52ch}
section.dark .pullquote{color:var(--paper);border-left-color:var(--bronze-lt)}

/* ---------- CONTRAST PAIR (conventional vs this practice) ---------- */
.contrast-pair{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);margin-top:16px}
.contrast-cell{background:var(--paper);padding:22px 24px}
.contrast-cell.to{background:var(--navy);color:var(--paper)}
.contrast-label{font-size:11px;letter-spacing:.04em;color:var(--slate);margin-bottom:10px}
.contrast-cell.to .contrast-label{color:rgba(242,238,227,.55)}
.contrast-text{font-family:'Fraunces',serif;font-style:italic;font-size:1rem;line-height:1.45}
@media(max-width:640px){.contrast-pair{grid-template-columns:1fr}}

/* ---------- ABOUT / PORTRAIT ---------- */
.about-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:center}
.portrait-frame{border:1px solid var(--line);padding:14px;background:var(--paper)}
.portrait-frame img{filter:grayscale(100%) contrast(1.05)}
@media(max-width:760px){.about-grid{grid-template-columns:1fr}}

/* ---------- BUTTONS ---------- */
.btn{display:inline-block;font-size:13.5px;padding:12px 22px;border:1px solid var(--navy)}
.btn-solid{background:var(--navy);color:var(--paper)}
.btn-solid:hover{background:var(--navy-deep)}
.btn-line:hover{background:var(--navy);color:var(--paper)}
section.dark .btn-line{border-color:var(--paper);color:var(--paper)}
section.dark .btn-line:hover{background:var(--paper);color:var(--navy)}

/* ---------- CTA PANEL ---------- */
.cta-panel{background:var(--navy);color:var(--paper);padding:60px 48px;display:grid;grid-template-columns:1.3fr auto;gap:28px;align-items:center}
.cta-panel h2{font-family:'Fraunces',serif;font-weight:400;font-size:clamp(1.5rem,3vw,2.1rem);max-width:20ch}
.cta-panel p{color:rgba(242,238,227,.75);margin-top:10px;font-size:14.5px;max-width:48ch}
.cta-actions{display:flex;gap:12px;flex-wrap:wrap}
@media(max-width:720px){.cta-panel{grid-template-columns:1fr;padding:40px 26px}}

/* ---------- FOOTER ---------- */
footer{padding:48px 0;border-top:1px solid var(--line)}
.foot-grid{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px;font-size:13px;color:var(--slate)}
.foot-grid a:hover{color:var(--navy)}
