:root {
  --bg:        #FAFAF7;
  --surface:   #FFFFFF;
  --surface2:  #FCFCF9;
  --accent:    #D4B052;
  --accent-ink: #8F7226;
  --accent-dim: rgba(212,176,82,0.16);
  --text:      #0A0E1A;
  --muted:     #5B6472;
  --border:    #E5E3DA;
}
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  background:var(--bg); color:var(--text);
  font-family:'Inter',sans-serif; font-size:16px; line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
h1, h2, .serif { font-family:'Cormorant Garamond',serif; font-weight:400; }

/* ── Nav ── */
nav {
  position:sticky; top:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 40px; background:rgba(250,250,247,.9);
  backdrop-filter:blur(12px); border-bottom:1px solid var(--border);
}
.nav-brand { display:flex; align-items:center; gap:14px; }
.nav-logo { height:34px; width:auto; }
.nav-name { font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:var(--text); }
.nav-links { display:flex; gap:34px; list-style:none; }
.nav-links a {
  font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); text-decoration:none; transition:color .2s;
}
.nav-links a:hover { color:var(--accent-ink); }
.nav-links a.active { color:var(--accent-ink); border-bottom:1px solid var(--accent); padding-bottom:2px; }

/* ── Hero ── */
#hero {
  position:relative; min-height:88vh;
  display:flex; align-items:center; justify-content:center; text-align:center;
  overflow:hidden;
}
    .hero-content { position:relative; z-index:1; padding:40px 24px; }
.hero-content p { margin-left:auto; margin-right:auto; }
.hero-mark { width:62px; height:62px; display:block; margin:0 auto 20px; }
.hero-content { transform: translateY(-5.2vh); }
.hero-kicker {
  font-size:12px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--accent-ink); margin-bottom:22px;
}
h1 { font-size:clamp(52px, 8vw, 96px); line-height:1.05; }
.hero-sub {
  margin-top:26px; font-size:17px; color:var(--muted); max-width:520px;
  margin-left:auto; margin-right:auto;
}
.hero-cta-row { display:flex; gap:18px; justify-content:center; flex-wrap:wrap; margin-top:40px; }
.cta {
  display:inline-block; font-size:13px; letter-spacing:.1em; text-transform:uppercase;
  padding:13px 32px; border-radius:8px; text-decoration:none; transition:all .25s ease;
}
.cta-solid { background:var(--accent); color:#0A0E1A; font-weight:600; }
.cta-solid:hover { background:#C7A140; }
.cta-ghost { border:1px solid var(--border); color:var(--muted);
  background:transparent;
  box-shadow:0 1px 10px rgba(10,14,26,0.12); }
.cta-ghost:hover { border-color:var(--accent); color:var(--text); }

/* ── Sections ── */
section { padding:110px 24px; }
.wrap { max-width:960px; margin:0 auto; }
.section-label {
  font-size:12px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--accent-ink); margin-bottom:18px;
}
h2 { font-size:clamp(34px, 4.5vw, 52px); line-height:1.15; margin-bottom:26px; }
section p { color:var(--muted); max-width:68ch; }
section p + p { margin-top:18px; }
.rule { border:none; height:2px; margin:0 auto; max-width:960px; background:rgba(212,176,82,0.55); clip-path:polygon(0 0.5px, 50% 0, 100% 0.5px, 100% 1.5px, 50% 2px, 0 1.5px); }
.rule.rule-full { max-width:none; margin-top:-1px; position:relative; z-index:2; }
.inline-link { color:var(--accent-ink); text-decoration:none; border-bottom:1px solid var(--accent-dim); }
.inline-link:hover { border-bottom-color:var(--accent); }

/* ── About grid ── */
.about-grid { display:grid; grid-template-columns:260px 1fr; gap:48px; align-items:start; }
.headshot { width:100%; border-radius:2px; border:1px solid var(--border); }
.cred-list { margin-top:26px; display:grid; gap:10px; list-style:none; }
.cred-list li { color:var(--muted); font-size:14.5px; padding-left:20px; position:relative; }
.cred-list li::before { content:"◆"; position:absolute; left:0; top:1px; color:var(--accent); font-size:9px; }
.cred-list b { color:var(--text); font-weight:500; }

/* ── Work cards ── */
.card-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:44px; }
.card {
  background:var(--surface2); border:1px solid var(--border); border-radius:3px;
  padding:34px 32px; transition:border-color .25s;
}
.card:hover { border-color:rgba(212,176,82,.55); }
.card.flagship { grid-column:1 / -1; border-color:rgba(212,176,82,.45); background:linear-gradient(120deg, rgba(212,176,82,.08), var(--surface2) 55%); }
.card h3 { font-size:20px; font-weight:500; margin-bottom:12px; letter-spacing:.01em; }
.card h3 .serif { font-size:26px; }
.card p { font-size:14.5px; }
 .client-logos { display:flex; gap:26px; align-items:center; justify-content:center; margin-top:18px; }
.client-logos img { height:52px; width:auto; opacity:.85; }
.card-tag {
  display:inline-block; font-size:10.5px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--accent-ink); border:1px solid rgba(212,176,82,.45);
  border-radius:100px; padding:2px 12px; margin-bottom:16px;
}
.card-tag.green { color:#2E7D57; border-color:rgba(46,125,87,.45); }
.card-links { margin-top:20px; display:flex; gap:16px; flex-wrap:wrap; }

/* ── Services ── */
.svc-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:22px; margin-top:44px; }
.svc {
  border:1px solid var(--border); border-radius:3px; padding:30px 26px;
  background:var(--surface2);
}
.svc h3 { font-size:17px; font-weight:500; margin-bottom:10px; }
.svc p { font-size:14px; }
.svc-btn {
  display:inline-block; margin-top:16px; padding:10px 22px; border-radius:8px;
  background:var(--accent); color:#0A0E1A; font-size:12px; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; text-decoration:none;
  transition:background .25s;
}
.svc-btn:hover { background:#C7A140; }

/* ── Contact / footer ── */
.contact-links { display:flex; gap:28px; margin-top:30px; flex-wrap:wrap; }
.contact-link {
  font-size:15px; color:var(--accent-ink); text-decoration:none;
  border-bottom:1px solid var(--accent-dim); padding-bottom:2px;
}
.contact-link:hover { border-bottom-color:var(--accent); }
footer {
  display:flex; align-items:center; justify-content:center; gap:14px;
  padding:26px 40px; border-top:1px solid var(--border);
}
footer img { height:36px; }
footer small { color:var(--muted); font-size:12.5px; }
footer a { color:var(--muted); }


  nav { border-bottom:none !important; } nav::after { content:''; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:rgba(212,176,82,0.55); clip-path:polygon(0 0.5px, 50% 0, 100% 0.5px, 100% 1.5px, 50% 2px, 0 1.5px); pointer-events:none; }
footer { position:relative; border-top:none !important; } footer::before { content:''; position:absolute; left:0; right:0; top:0; height:2px; background:rgba(212,176,82,0.55); clip-path:polygon(0 0.5px, 50% 0, 100% 0.5px, 100% 1.5px, 50% 2px, 0 1.5px); pointer-events:none; }
  
.about-hero > img { width: 300px; height: auto; border-radius: 8px; border: 1px solid var(--accent); }
.about-photo-mobile { display:none; }

/* ── Article + writing index ── */
.article { max-width:720px; }
.article h1 { font-size:clamp(32px,4.5vw,46px); line-height:1.2; margin-bottom:10px; }
.article-meta { font-size:13px; color:var(--muted); letter-spacing:.02em; }
.article-body { margin-top:26px; }
.article-body h2 { font-size:clamp(24px,3vw,32px); margin-top:44px; margin-bottom:14px; }
.article-body h3 { font-family:'Inter',sans-serif; font-size:17px; font-weight:600; margin-top:30px; margin-bottom:8px; }
.article-body p { color:var(--muted); margin-bottom:16px; }
.article-body ul, .article-body ol { color:var(--muted); margin:0 0 16px 20px; display:grid; gap:8px; }
.article-body blockquote { border-left:2px solid var(--accent); padding-left:18px; margin:22px 0; }
.article-body blockquote p { color:var(--text); font-style:italic; margin-bottom:0; }
.article-foot { margin-top:48px; padding-top:26px; border-top:1px solid var(--border); }
.writing-list { display:grid; gap:0; margin-top:40px; }
.writing-item { padding:26px 0; border-top:1px solid var(--border); }
.writing-item:last-child { border-bottom:1px solid var(--border); }
.writing-item a { text-decoration:none; color:inherit; display:block; }
.writing-item a:hover h3 { color:var(--accent-ink); }
.writing-item h3 { font-family:'Cormorant Garamond',serif; font-weight:400; font-size:26px; line-height:1.25; margin:8px 0 6px; transition:color .2s; }
.writing-item p { font-size:14.5px; margin:0; }
.writing-kind { font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent-ink); }
.writing-date { font-size:11px; letter-spacing:.08em; color:var(--muted); margin-left:10px; }

/* ── Blog front: featured story, topic shelves, archive ── */
.front .wrap { max-width:960px; }
.front-head { max-width:720px; }
.front-standfirst { font-size:16px; }
.featured { margin-top:48px; padding:44px 0 48px; border-top:2px solid var(--accent); border-bottom:1px solid var(--border); }
.featured a { text-decoration:none; color:inherit; display:block; max-width:820px; }
.featured.has-image a { max-width:none; display:grid; grid-template-columns:1.1fr 1fr; gap:40px; align-items:center; }
.featured-img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:3px; border:1px solid var(--border); }
.featured-by { font-size:13px; color:var(--muted); letter-spacing:.02em; margin-top:14px; }
.shelf-img { width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:2px; margin-bottom:14px; border:1px solid var(--border); }
.article-hero { margin:26px 0 8px; }
.article-hero img { width:100%; height:auto; border-radius:3px; border:1px solid var(--border); }
.article-hero figcaption { font-size:12px; color:var(--muted); margin-top:8px; letter-spacing:.02em; }
.author-title { color:var(--muted); }
.author-title::before { content: ', '; }

.featured-meta { margin-bottom:14px; }
.featured h1 { font-size:clamp(36px,5.2vw,62px); line-height:1.1; margin:0 0 18px; transition:color .2s; }
.featured a:hover h1 { color:var(--accent-ink); }
.featured-dek { font-size:18px; color:var(--muted); max-width:62ch; }
.featured-read { display:inline-block; margin-top:22px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-ink); border-bottom:1px solid var(--accent-dim); padding-bottom:2px; }
.shelf { padding:44px 0 8px; }
.shelf .section-label { margin-bottom:6px; }
.shelf-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:18px; }
.shelf-card { border:1px solid var(--border); border-radius:3px; background:var(--surface2); transition:border-color .25s; }
.shelf-card:hover { border-color:rgba(212,176,82,.55); }
.shelf-card a { display:block; padding:24px 22px; text-decoration:none; color:inherit; height:100%; }
.shelf-card .writing-date { margin-left:0; }
.shelf-card h3 { font-family:'Cormorant Garamond',serif; font-weight:400; font-size:23px; line-height:1.25; margin:8px 0 8px; }
.shelf-card a:hover h3 { color:var(--accent-ink); }
.shelf-card p { font-size:14px; margin:0; }
.archive { padding-top:44px; }
.archive .writing-list { margin-top:18px; }

/* ── Article extras: dek, findings, data, colophon ── */
.article .section-label a { color:inherit; text-decoration:none; }
.article .section-label a:hover { color:var(--accent-ink); }
.crumb-sep { opacity:.45; margin:0 4px; }
.article-dek { font-size:18px; color:var(--muted); margin:6px 0 14px; max-width:62ch; }
.findings { margin:30px 0 8px; padding:24px 26px; border:1px solid rgba(212,176,82,.45); border-left:3px solid var(--accent); border-radius:3px; background:linear-gradient(120deg, rgba(212,176,82,.08), var(--surface2) 60%); }
.findings-label { font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--accent-ink); margin-bottom:10px; }
.findings ul { list-style:none; display:grid; gap:10px; margin:0; }
.findings li { color:var(--text); font-size:15.5px; line-height:1.6; padding-left:20px; position:relative; }
.findings li::before { content:"◆"; position:absolute; left:0; top:2px; color:var(--accent); font-size:9px; }
.article-data { margin-top:40px; padding:22px 26px; border:1px solid var(--border); border-radius:3px; background:var(--surface2); }
.article-data ul { list-style:none; display:grid; gap:8px; margin:0; font-size:14.5px; }
.colophon { margin-top:36px; padding-top:22px; border-top:1px solid var(--border); }
.colophon p:last-child { font-size:13.5px; color:var(--muted); max-width:none; }
.article-body code { font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.9em; background:var(--surface2); border:1px solid var(--border); border-radius:3px; padding:1px 6px; }
.article-body pre { background:var(--surface2); border:1px solid var(--border); border-radius:3px; padding:16px 18px; margin:0 0 16px; overflow-x:auto; font-size:14px; line-height:1.55; }
.article-body pre code { background:none; border:none; padding:0; font-size:inherit; }
.table-wrap { overflow-x:auto; margin:0 0 18px; }
.article-body table { border-collapse:collapse; width:100%; font-size:14px; }
.article-body th, .article-body td { text-align:left; padding:9px 12px; border-bottom:1px solid var(--border); color:var(--muted); vertical-align:top; }
.article-body th { color:var(--text); font-weight:600; font-size:12.5px; letter-spacing:.04em; text-transform:uppercase; }

@media (max-width:760px) {
  .featured { margin-top:32px; padding:30px 0 34px; }
  .featured.has-image a { grid-template-columns:1fr; gap:20px; }
  .featured-dek { font-size:16px; }
  .shelf-grid { grid-template-columns:1fr; gap:14px; }
  .shelf, .archive { padding-top:34px; }
  .findings { padding:18px 18px; }
  .article-data { padding:18px; }
  .article-body h2 { margin-top:34px; }
  .writing-item { padding:22px 0; }
  .about-hero { gap:22px; padding-top:0; }
  .about-hero > img { display:none; }
  .about-hero .about-photo-mobile { display:block; width:132px; border-radius:10px; border:1px solid var(--accent); flex-shrink:0; }
  .about-idrow { display:flex; gap:16px; align-items:center; margin-top:16px; }
  .about-idmeta { min-width:0; }
  .about-idmeta .role { font-size:15px; line-height:1.5; }
  .about-idmeta .role .role-l2 { display:block; }
  .about-idmeta .role-linkedin { display:inline-block; margin-top:12px; }
  .about-hero > div:last-child { min-width:0; }
  nav { padding:14px 20px; }
  .section-label { text-align:center; }
  .nav-links { display:none; }
  .about-grid { grid-template-columns:1fr; }
  .headshot { max-width:260px; }
  .card-grid, .svc-grid { grid-template-columns:1fr; }
  section { padding:56px 20px; }
  h2 { margin-bottom:18px; }
  .card { padding:26px 22px; }
  .svc { padding:24px 20px; }
  .card-grid, .svc-grid { gap:16px; margin-top:32px; }
  .contact-links { gap:18px; margin-top:24px; }
  .hero-cta-row { margin-top:32px; }
  .section-label { margin-bottom:12px; }
  footer { flex-direction:column; gap:12px; text-align:center; }
}

/* agents in public (house style 18-20) + footnotes (21) */
.agent-label { color: var(--accent-ink); text-decoration: none; border-bottom: 1px solid var(--accent); }
.reviewer { color: var(--muted); }
.disclosure { color: var(--muted); font-size: 14px; margin-bottom: 8px; }
.disclosure a { color: var(--accent-ink); }
sup.fn { font-size: .7em; line-height: 0; } sup.fn a { text-decoration: none; color: var(--accent-ink); padding: 0 .1em; }
.sources { margin-top: 44px; padding-top: 18px; border-top: 1px solid var(--border); }
.sources ol { padding-left: 1.4em; font-size: 14px; color: var(--muted); }
.sources li { margin: .45em 0; } .sources li:target { color: var(--text); }
.sources .fn-back { text-decoration: none; color: var(--accent-ink); margin-left: .3em; }
.sources q, .sources .quote { font-style: italic; }

/* charts + data appendix + explorer */
figure.chart { margin: 28px 0 32px; }
figure.chart figcaption { font-size: 14px; color: var(--muted); margin-top: 8px; }
figure.chart svg text { font-family: 'Inter', system-ui, sans-serif; }
.explorer { border: 1px solid var(--border); padding: 16px 18px; margin: 12px 0 24px; }
.explorer-filters { display: flex; flex-wrap: wrap; gap: 12px 18px; margin-bottom: 10px; }
.explorer-filters label { font-size: 13px; color: var(--muted); display: flex; flex-direction: column; gap: 4px; }
.explorer-filters select, .explorer-filters input { font: inherit; font-size: 14px; color: var(--text); background: var(--bg); border: 1px solid var(--border); padding: 5px 8px; min-width: 140px; }
.explorer-summary { font-size: 14px; color: var(--text); margin: 6px 0 10px; font-variant-numeric: tabular-nums; }
#explorer-table td, #explorer-table th { font-size: 13px; }
.table-wrap table { font-variant-numeric: tabular-nums; }
.article-body td { overflow-wrap:anywhere; }
.article-body td:first-child { overflow-wrap:normal; }
.article-body td pre, .article-body td code { white-space:pre-wrap; overflow-wrap:anywhere; }

.updated-note { margin-top: 36px; padding-top: 14px; border-top: 1px solid var(--border); font-size: 14px; color: var(--muted); }
