/* =========================================================
   ERENSEL — Ghost theme stylesheet
   Palette and type carried over from the design prototype.
   ========================================================= */

:root {
    --ink:       #142a43;
    --ink-deep:  #0b1d31;
    --paper:     #f5f2ec;
    --paper-alt: #eee9df;
    --brass:     #98703b;
    --brass-lt:  #d2b37d;
    --body:      #2d3d51;
    --muted:     #526073;
    --quiet:     #667384;
    --label:     #8b96a6;
    --hair:      rgba(22, 39, 63, 0.14);
    --hair-mid:  rgba(22, 39, 63, 0.20);
    --shell:     1180px;
    --pad:       40px;
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: 'Spectral', Georgia, 'Times New Roman', serif;
    font-weight: 300;
    font-size: 17px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

body.nav-open { overflow: hidden; }

img { max-width: 100%; height: auto; display: block; }

a { color: var(--ink); text-decoration: none; }
a:hover { color: var(--brass); }

h1, h2, h3, h4 {
    margin: 0;
    font-weight: 300;
    letter-spacing: -0.012em;
    text-wrap: balance;
}

p { margin: 0 0 1.15em; text-wrap: pretty; }
p:last-child { margin-bottom: 0; }

::selection { background: var(--ink); color: var(--paper); }

.shell {
    max-width: var(--shell);
    margin: 0 auto;
    padding-left: var(--pad);
    padding-right: var(--pad);
}

.section { padding: 78px 0; }
.band { background: var(--paper-alt); border-top: 1px solid var(--hair); }

/* ---------- Shared marks ---------- */

.label {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-size: 10.5px;
    font-weight: 500;
    letter-spacing: 0.19em;
    text-transform: uppercase;
    color: var(--label);
    line-height: 1.6;
}
.label--on-dark { color: rgba(247, 244, 238, 0.6); }

.rule-accent { width: 64px; height: 2px; background: var(--brass); }
.rule-hair { width: 100%; height: 1px; background: var(--hair); }
.rule-hair--strong { background: var(--hair-mid); }

.quiet-link {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--quiet);
    white-space: nowrap;
}
.quiet-link:hover { color: var(--brass); }

.link-underline {
    align-self: flex-start;
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--paper);
    border-bottom: 1px solid rgba(247, 244, 238, 0.4);
    padding-bottom: 5px;
}
.link-underline:hover { color: var(--brass-lt); border-color: var(--brass-lt); }

.btn {
    display: inline-block;
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-size: 10.5px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    padding: 13px 26px;
    border-radius: 0;
    white-space: nowrap;
    transition: background 160ms ease, color 160ms ease, border-color 160ms ease;
}
.btn--outline { border: 1px solid var(--brass); color: var(--brass); background: transparent; }
.btn--outline:hover { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.btn--solid { background: var(--ink); color: var(--paper); border: 1px solid var(--ink); }
.btn--solid:hover { background: var(--ink-deep); color: var(--paper); }

/* ---------- Header ---------- */

.site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(247, 244, 238, 0.94);
    backdrop-filter: blur(6px);
    border-bottom: 1px solid var(--hair);
}

.site-header-inner {
    position: relative;
    height: 92px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
}

.wordmark {
    display: flex;
    flex-direction: column;
    gap: 5px;
    flex: 0 0 auto;
    position: relative;
    z-index: 1;
}
.wordmark-name {
    font-size: 25px;
    font-weight: 400;
    letter-spacing: 0.24em;
    line-height: 1;
    text-transform: uppercase;
}
.wordmark-sub {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-size: 9.5px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #6d7889;
    white-space: nowrap;
}

.site-header-right {
    display: flex;
    align-items: center;
    gap: 30px;
    flex: 0 0 auto;
    position: relative;
    z-index: 2;
}

.nav-list {
    display: flex;
    align-items: center;
    gap: 26px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.nav-item { position:relative; }
.nav-submenu { position:absolute; top:calc(100% + 15px); left:50%; width:190px; padding:10px; background:rgba(247,244,238,.98); border:1px solid var(--hair-mid); box-shadow:0 14px 30px rgba(22,39,63,.09); opacity:0; visibility:hidden; transform:translate(-50%,-4px); transition:opacity 150ms ease,transform 150ms ease,visibility 150ms ease; }
.nav-submenu::before { content:''; position:absolute; left:0; right:0; top:-16px; height:16px; }
.nav-item:hover .nav-submenu,.nav-item:focus-within .nav-submenu { opacity:1; visibility:visible; transform:translate(-50%,0); }
.nav-submenu a { display:block; width:max-content; padding:9px 10px 6px; font-family:'Spectral',Georgia,serif; font-size:16px; font-weight:400; letter-spacing:0; line-height:1.25; text-transform:none; color:var(--muted); }
.nav-submenu a+a { border-top:1px solid var(--hair); }
.nav-submenu a:hover { transform:none; background:transparent; color:var(--ink); }
.nav-submenu a { white-space:nowrap; line-height:1.35; }
.nav-submenu a::after { bottom:5px; }
.nav-submenu--about { top:calc(100% + 7px); left:50%; display:flex; flex-direction:column; align-items:stretch; width:max-content; min-width:132px; padding:5px 10px 7px; border-color:rgba(22,39,63,.14); box-shadow:0 8px 18px rgba(22,39,63,.055); transform:translate(-50%,-3px); }
.nav-submenu--about::before { top:-8px; height:8px; }
.nav-item:hover .nav-submenu--about,.nav-item:focus-within .nav-submenu--about { transform:translate(-50%,0); }
.nav-submenu--about a { display:block !important; width:100%; padding:6px 2px 5px; font-size:15px; line-height:1.2; color:var(--muted); }
.nav-submenu--about a+a { border-top:1px solid rgba(22,39,63,.12); }
.nav-submenu--about a::after { left:2px; right:2px; width:auto; bottom:1px; }
.nav-item a {
    position: relative;
    z-index: 1;
    display: inline-block;
    font-size: 16px;
    color: var(--muted);
    padding-bottom: 4px;
    white-space: nowrap;
}
.nav-item a::after {
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:1px;
    background:var(--brass);
    transform:scaleX(0);
    transform-origin:right;
    transition:transform 220ms ease;
}
.nav-item a:hover::after,.nav-item--active a::after { transform:scaleX(1); transform-origin:left; }
.nav-item a:hover { color: var(--brass); }
.nav-item--active a { color: var(--ink); }

.nav-toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    background: none;
    border: 0;
    padding: 8px 0;
    cursor: pointer;
}
.nav-toggle span { display: block; width: 24px; height: 1px; background: var(--ink); }

.mobile-nav { border-top: 1px solid var(--hair); background: var(--paper); }
.mobile-nav ul { list-style: none; margin: 0; padding: 12px var(--pad) 24px; }
.mobile-nav li { border-bottom: 1px solid var(--hair); }
.mobile-nav a { display: block; padding: 15px 0; font-size: 19px; }

/* ---------- Hero ---------- */

.hero {
    position: relative;
    height: min(74vh, 660px);
    min-height: 470px;
    background: var(--ink);
    overflow: hidden;
}
.hero--plain { height: auto; min-height: 0; padding: 110px 0 96px; }

.hero-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.5;
    filter: saturate(0.55) contrast(1.05);
}
.hero-scrim {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(12,23,39,0.72) 0%, rgba(12,23,39,0.42) 45%, rgba(12,23,39,0.86) 100%);
}
.hero--plain .hero-scrim { background: none; }

.hero-inner {
    position: relative;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 30px;
    animation: riseIn 900ms ease both;
}
@keyframes riseIn {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: none; }
}

.hero-heading {
    max-width: 20ch;
    font-weight: 200;
    font-size: clamp(40px, 5.4vw, 74px);
    line-height: 1.06;
    letter-spacing: -0.015em;
    color: var(--paper);
}
.hero-sub {
    max-width: 52ch;
    margin: 0;
    font-size: 19px;
    line-height: 1.62;
    color: rgba(247, 244, 238, 0.82);
}

/* ---------- Home: the firm ---------- */

.section--firm { padding: 82px 0 78px; }

.firm-grid {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 64px;
    align-items: start;
}
.firm-aside {
    position: sticky;
    top: 132px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.firm-pullquote {
    font-style: italic;
    font-size: 17px;
    line-height: 1.6;
    color: #5c6879;
}
.firm-heading {
    font-size: clamp(32px, 3.6vw, 50px);
    line-height: 1.12;
    max-width: 26ch;
    margin-bottom: 30px;
}
.firm-body { font-size: 18px; }

/* ---------- Home: capabilities ---------- */

.section-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 38px;
}
.section-head--ruled {
    margin-bottom: 0;
    padding-bottom: 26px;
    border-bottom: 1px solid var(--hair-mid);
}
.section-title { font-size: 34px; letter-spacing: -0.01em; }

.capability-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    background: var(--paper-alt);
}
.capability {
    padding: 18px 34px 24px;
    display: flex;
    flex-direction: column;
    gap: 18px;
    border-left: 1px solid var(--hair);
}
.capability:first-child { border-left: 0; }
.capability-num {
    font-family: 'IBM Plex Mono', ui-monospace, monospace;
    font-size: 11px;
    letter-spacing: 0.18em;
    color: var(--brass);
}
.capability-title { font-size: 25px; font-weight: 400; line-height: 1.22; }
.capability-body { margin: 0; font-size: 16px; line-height: 1.74; color: var(--muted); }

/* ---------- Note list ---------- */

.note-list { display: flex; flex-direction: column; }
.note-list > a[href*="bank-stocks-and-the-guns-of-august"] { order:1; }
.note-list > a[href*="follow-the-money-the-panic-of-1873"] { order:2; }
.note-list > a[href*="private-credit-this-time-is-different"] { order:3; }

.note-item {
    display: grid;
    grid-template-columns: 140px minmax(0, 1fr) 150px;
    gap: 32px;
    align-items: baseline;
    padding: 28px 20px;
    border-bottom: 1px solid rgba(22, 39, 63, 0.12);
    transition: background 140ms ease;
}
.note-item:hover { background: rgba(143, 107, 57, 0.05); }

.note-item--archive {
    grid-template-columns: 118px minmax(0, 1fr);
    padding: 30px 22px;
}

.note-item-date {
    font-family: 'IBM Plex Mono', ui-monospace, monospace;
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--label);
}
.note-item--archive .note-item-date { padding-top: 7px; }

.note-item-body { display: flex; flex-direction: column; gap: 10px; }
.note-item-title { font-size: 23px; font-weight: 400; line-height: 1.3; color: var(--ink); }
.note-item--archive .note-item-title { font-size: 25px; line-height: 1.26; }
.note-item-dek { font-size: 16px; line-height: 1.7; color: var(--quiet); max-width: 64ch; }

.note-item-tag {
    font-family: 'IBM Plex Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--brass);
    padding-top: 4px;
}
.note-item-tag--right { color: var(--label); text-align: right; padding-top: 0; }

.empty-state { color: var(--quiet); font-style: italic; padding: 40px 0; }

/* ---------- Archive ---------- */

.page-head { padding: 76px 0 0; }
.page-title {
    font-weight: 200;
    font-size: clamp(38px, 4.6vw, 62px);
    line-height: 1.08;
    letter-spacing: -0.015em;
    max-width: 24ch;
    margin: 22px 0 30px;
}

.archive-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 74px;
    align-items: start;
    padding-top: 50px;
    padding-bottom: 90px;
}
.archive-aside {
    position: sticky;
    top: 132px;
    display: flex;
    flex-direction: column;
    gap: 28px;
    border-left: 1px solid var(--hair-mid);
    padding-left: 30px;
}
.aphorism { font-style: italic; font-size: 19px; line-height: 1.58; color: var(--body); }
.archive-aside .btn { align-self: flex-start; }

/* ---------- Pages ---------- */

.page-body {
    padding-top: 56px;
    padding-bottom: 90px;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 74px;
}
.page-body--split { grid-template-columns: 400px minmax(0, 1fr); }
.page-media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; filter: grayscale(1) contrast(1.04); background: #e6e0d4; }

.page-lead {
    font-weight: 200;
    font-size: 29px;
    line-height: 1.44;
    color: var(--ink);
    max-width: 44ch;
    margin-bottom: 28px;
}

/* ---------- CAMEL ---------- */

.camel-section { display: flex; flex-direction: column; gap: 44px; padding-top: 0; }
.camel-intro { display: flex; flex-direction: column; gap: 18px; max-width: 56ch; }
.camel-intro p { margin: 0; font-size: 16.5px; color: var(--muted); }

.camel-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    border-top: 1px solid var(--hair-mid);
    border-bottom: 1px solid var(--hair-mid);
}
.camel-cell {
    min-width: 0;
    padding: 30px 26px 36px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-height: 218px;
    border-left: 1px solid var(--hair-mid);
}
.camel-cell:first-child { border-left: 0; }
.camel-letter { font-family:Georgia,'Times New Roman',serif; font-weight:400; font-size:43px; line-height:1; letter-spacing:-.025em; color:#8b632b; }
.camel-name {
    font-family:'IBM Plex Mono',Consolas,monospace;
    font-weight:500;
    font-family: 'IBM Plex Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--ink);
}
.camel-cell p { margin: 0; font-size: 14.5px; line-height: 1.62; color: #5c6879; }

/* ---------- Contact ---------- */

.contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 80px;
    align-items: start;
    padding-top: 56px;
    padding-bottom: 100px;
}
.contact-aside {
    display: flex;
    flex-direction: column;
    gap: 0;
    border-left: 1px solid var(--hair-mid);
    padding-left: 32px;
}
.contact-row {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 15px 0;
    border-bottom: 1px solid rgba(22, 39, 63, 0.12);
    font-size: 16px;
    color: var(--body);
}
.contact-row--expect { position:relative; margin-top:14px; padding:20px 20px 22px; border:1px solid rgba(22,39,63,.16); background:rgba(255,255,255,.25); }
.contact-row--expect::before { content:""; position:absolute; left:-1px; top:18px; bottom:18px; width:2px; background:var(--brass); }
.contact-row--expect > span:last-child { font-family:'Spectral',Georgia,serif; font-size:17px; line-height:1.55; color:var(--ink); }
.contact-aside .btn { align-self: flex-start; margin-top: 26px; }

/* Institutional contact form */
.contact-head { padding-bottom: 0; }
.contact-grid--form { padding-top: 48px; }
.contact-form { display: grid; gap: 28px; }
.contact-form-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.contact-form label { display: grid; gap: 10px; }
.contact-form input,
.contact-form select,
.contact-form textarea {
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--hair-mid);
    border-radius: 0;
    padding: 10px 2px 12px;
    background: transparent;
    color: var(--ink);
    font: 400 17px/1.5 'Spectral', Georgia, serif;
    outline: none;
    transition: border-color .25s ease, background .25s ease;
}
.contact-form select { appearance:none; border-radius:0; color:var(--ink); font:inherit; cursor:pointer; }
.contact-form textarea { min-height: 150px; resize: vertical; }
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus { border-color: var(--brass); background: rgba(255,255,255,.22); }
.contact-form .btn { width: max-content; min-width: 170px; margin-top: 4px; }
.contact-intro { margin: 0 0 18px; font-size: 19px; line-height: 1.6; }

/* Analyst profile — intentionally dark, restrained and editorial */
.profile-hero { background: var(--ink); color: var(--paper); }
.profile-grid { display: grid; grid-template-columns: 360px minmax(0,1fr); gap: 76px; align-items: center; padding-top: 82px; padding-bottom: 92px; }
.profile-portrait-wrap { margin: 0; border: 1px solid rgba(247,244,238,.15); overflow: hidden; }
.profile-portrait { display: block; width: 100%; aspect-ratio: 4/5; object-fit: cover; object-position: center 18%; filter: none; transition: transform .6s ease; }
.profile-portrait-wrap:hover .profile-portrait { transform: none; }
.profile-copy h1 { margin: 12px 0 18px; color: var(--paper); font-size: clamp(38px,5vw,62px); font-weight: 300; line-height: 1.08; }
.profile-copy blockquote { margin: 0 0 28px; max-width: 21ch; font-size: clamp(27px,3vw,39px); font-weight: 200; line-height: 1.28; }
.profile-copy p { max-width: 62ch; margin: 0 0 15px; color: rgba(247,244,238,.76); font-size: 16.5px; line-height: 1.72; }
.profile-credentials { display: flex; flex-wrap: wrap; gap: 10px 28px; margin-top: 28px; padding-top: 20px; border-top: 1px solid rgba(247,244,238,.16); color: var(--brass-lt); font: 500 10px/1.4 'IBM Plex Mono', monospace; letter-spacing: .13em; text-transform: uppercase; }

@media (max-width: 800px) {
    .contact-form-pair { grid-template-columns: 1fr; }
    .profile-grid { grid-template-columns: 1fr; gap: 36px; padding-top: 52px; padding-bottom: 60px; }
    .profile-portrait-wrap { max-width: 360px; }
}

/* Light biography composition */
.bio-head { padding-bottom: 0; }
.bio-layout { display:grid; grid-template-columns:400px minmax(0,1fr); gap:74px; align-items:start; padding-top:56px; padding-bottom:90px; }
.bio-portrait { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center 18%; filter:none; }
.bio-facts { margin:24px 0 0; border-top:1px solid var(--hair-mid); }
.bio-facts>div { display:grid; grid-template-columns:135px 1fr; gap:20px; padding:13px 0; border-bottom:1px solid var(--hair); }
.bio-facts dt { color:var(--label); font:500 9px/1.5 'IBM Plex Mono',monospace; letter-spacing:.13em; text-transform:uppercase; }
.bio-facts dd { margin:0; text-align:right; color:var(--ink); font-size:14.5px; line-height:1.55; }
.bio-copy { padding-top:2px; }
.bio-copy p { margin:0 0 28px; max-width:59ch; color:var(--body); font-size:16.5px; line-height:1.72; }
.bio-copy .bio-lead { color:var(--ink); font-size:27px; line-height:1.55; }
.bio-copy blockquote { margin:38px 0 0; padding:8px 0 8px 26px; border-left:2px solid var(--brass); color:var(--ink); font-size:21px; font-style:italic; line-height:1.55; }

/* Products flagship composition */
.products-head { padding-bottom:0; }
.flagship-product { display:grid; grid-template-columns:530px minmax(0,1fr); gap:66px; align-items:center; padding-top:64px; padding-bottom:72px; }
.flagship-product figure { margin:0; overflow:hidden; }
.flagship-product img { display:block; width:100%; height:auto; object-fit:contain; filter:none; }
.label--brass { color:var(--brass); }
.flagship-copy h2 { margin:15px 0 22px; color:var(--ink); font-size:39px; font-weight:300; line-height:1.2; }
.flagship-copy>p { margin:0 0 28px; font-size:17px; line-height:1.72; }
.product-specs { margin:0; border-top:1px solid var(--hair-mid); }
.product-specs>div { display:grid; grid-template-columns:110px 1fr; gap:20px; padding:13px 0; border-bottom:1px solid var(--hair-mid); }
.product-specs dt { color:var(--label); font:500 9px/1.5 'IBM Plex Mono',monospace; letter-spacing:.14em; text-transform:uppercase; }
.product-specs dd { margin:0; text-align:right; font-size:14.5px; }
.product-secondary { background:var(--paper-alt); border-top:1px solid var(--hair); border-bottom:1px solid var(--hair); }
.product-secondary-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:44px; row-gap:52px; padding-top:58px; padding-bottom:62px; }
.product-secondary article { border-top:2px solid var(--ink); padding:20px 26px 28px; min-height:252px; }
.product-secondary h2,.product-method h2 { margin:0 0 14px; font-size:29px; font-weight:300; }
.product-secondary p,.product-method p { margin:0; max-width:55ch; font-size:16px; line-height:1.7; }
.product-method { padding-top:62px; padding-bottom:78px; }
.product-method h2 { margin-top:14px; font-size:36px; }
.product-camel { margin-top:42px; }

/* Institutional research framework */
.institutional-method { border-bottom:1px solid var(--hair); }
.institutional-method .section-head > div { display:grid; gap:12px; }
.method-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--hair-mid); border-bottom:1px solid var(--hair-mid); }
.method-steps article { padding:28px 26px 30px; border-left:1px solid var(--hair-mid); }
.method-steps article:first-child { border-left:0; padding-left:0; }
.method-steps span { display:block; margin-bottom:18px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; font-size:10px; font-weight:500; letter-spacing:.16em; color:var(--brass); }
.method-steps h3 { margin-bottom:11px; font-size:23px; font-weight:400; }
.method-steps p { color:var(--quiet); font-size:15px; line-height:1.66; }
.method-standard { margin:24px 0 0; font-size:14px; font-style:italic; color:var(--quiet); }

/* Report credentials */
.report-card { margin:34px 0 44px auto; width:min(100%,820px); padding:24px 28px; border:1px solid var(--hair-mid); background:var(--paper-alt); }
.report-card dl { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:20px 0 24px; border-top:1px solid var(--hair); border-bottom:1px solid var(--hair); }
.report-card dl div { padding:16px 18px; border-left:1px solid var(--hair); }
.report-card dl div:first-child { padding-left:0; border-left:0; }
.report-card dt { margin-bottom:6px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; font-size:9px; font-weight:500; letter-spacing:.15em; text-transform:uppercase; color:var(--label); }
.report-card dd { margin:0; font-size:14.5px; line-height:1.45; }
.report-card .btn { padding:10px 19px; }
.footer-standards { display:flex; flex-wrap:wrap; gap:6px 12px; margin:10px 0 0; color:rgba(247,244,238,.48); font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; font-size:9px; letter-spacing:.1em; text-transform:uppercase; }
.footer-standards span+span::before { content:'·'; margin-right:12px; color:var(--brass-lt); }
.footer-policy-links { display:flex; gap:14px; margin:8px 0 0; font-size:12px; }
.footer-policy-links a { color:rgba(247,244,238,.62); border-bottom:1px solid rgba(247,244,238,.22); }

/* Research archive */
.archive-intro,.policy-lead { max-width:720px; margin:24px 0 0; font-size:19px; line-height:1.65; color:var(--muted); }
.archive-toolbar { display:flex; justify-content:space-between; padding:0 0 14px; border-bottom:1px solid var(--hair-mid); font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; font-size:10px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--label); }
.archive-access-link { margin-top:6px; align-self:flex-start; }

/* Executive briefs and original PDFs */
.report-brief { width:min(100%,820px); margin:0 0 42px auto; padding:30px 32px; border-left:2px solid var(--brass); background:rgba(242,238,229,.72); }
.report-brief h2 { margin:12px 0 12px; font-size:27px; font-weight:400; }
.report-brief>p { max-width:64ch; font-size:17px; color:var(--body); }
.brief-grid { display:grid; grid-template-columns:1fr 1fr; gap:30px; margin-top:22px; padding-top:20px; border-top:1px solid var(--hair); }
.brief-grid span { font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; font-size:9.5px; font-weight:500; letter-spacing:.15em; text-transform:uppercase; color:var(--brass); }
.brief-grid p { margin:7px 0 0; font-size:15px; line-height:1.62; color:var(--quiet); }
.pdf-download-card { width:min(100%,820px); margin:44px 0 36px auto; padding:24px 28px; display:flex; align-items:center; justify-content:space-between; gap:28px; border:1px solid var(--hair-mid); background:var(--paper-alt); }
.pdf-download-card[hidden] { display:none; }
.pdf-download-card h3 { margin:7px 0 2px; font-size:22px; font-weight:400; }
.pdf-download-card p { margin:0; font-size:14.5px; color:var(--quiet); }

/* Access and disclosure pages */
.policy-head { padding-bottom:36px; }
.access-layout,.disclosure-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:72px; padding-top:20px; padding-bottom:86px; }
.access-layout { grid-template-columns:minmax(0,1fr) 330px; }
.access-grid { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--hair-mid); }
.access-grid article { padding:28px 30px 30px 0; border-bottom:1px solid var(--hair); }
.access-grid article:nth-child(even) { padding-left:30px; border-left:1px solid var(--hair); }
.access-grid span { font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; font-size:10px; letter-spacing:.15em; color:var(--brass); }
.access-grid h2 { margin:12px 0 10px; font-size:25px; font-weight:400; }
.access-grid p { font-size:15.5px; color:var(--quiet); }
.access-aside { grid-column:2; grid-row:1; padding:28px; border:1px solid var(--hair-mid); background:var(--paper-alt); align-self:start; }
.access-aside p { margin:18px 0; font-size:16px; color:var(--muted); }
.access-aside .access-note { margin-top:22px; padding-top:18px; border-top:1px solid var(--hair); font-size:13px; font-style:italic; }
.disclosure-layout { grid-template-columns:230px minmax(0,720px); justify-content:space-between; }
.disclosure-nav { position:sticky; top:130px; align-self:start; display:flex; flex-direction:column; gap:11px; border-top:1px solid var(--hair-mid); padding-top:18px; }
.disclosure-nav a { font-size:14px; color:var(--quiet); }
.disclosure-nav a:hover { color:var(--brass); }
.disclosure-copy section { padding:0 0 30px; margin:0 0 30px; border-bottom:1px solid var(--hair); scroll-margin-top:130px; }
.disclosure-copy h2 { margin-bottom:12px; font-size:28px; font-weight:400; }
.disclosure-copy p { font-size:16.5px; color:var(--body); }
.disclosure-copy a { border-bottom:1px solid var(--brass); }
.disclosure-review { padding:16px 18px; background:var(--paper-alt); font-style:italic; color:var(--quiet)!important; }
.standards-head { padding-bottom:34px; }
.standards-layout { padding-top:18px; padding-bottom:92px; }
.standards-index { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--ink); border-bottom:1px solid var(--hair-mid); }
.standards-index span { padding:12px 18px; border-left:1px solid var(--hair); font-family:Baskerville,'Palatino Linotype','Book Antiqua',Palatino,serif; font-size:14px; font-style:italic; color:var(--quiet); text-align:center; }
.standards-index span:first-child { border-left:0; }
.standards-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:38px; border-top:1px solid var(--hair-mid); border-bottom:1px solid var(--hair-mid); }
.standards-grid article { min-height:235px; padding:27px 28px 31px; border-left:1px solid var(--hair); border-top:1px solid var(--hair); }
.standards-grid article:nth-child(-n+3) { border-top:0; }
.standards-grid article:nth-child(3n+1) { border-left:0; }
.standards-grid article > span { font-family:'IBM Plex Mono',monospace; font-size:9px; letter-spacing:.14em; color:var(--brass); }
.standards-grid h2 { margin:14px 0 11px; font-family:Baskerville,'Palatino Linotype','Book Antiqua',Palatino,serif; font-size:24px; font-weight:400; line-height:1.25; }
.standards-grid p { font-size:15px; line-height:1.68; color:var(--quiet); }
.standards-note { display:grid; grid-template-columns:150px minmax(0,1fr) max-content; gap:30px; align-items:center; margin-top:42px; padding:24px 0; border-top:1px solid var(--ink); border-bottom:1px solid var(--hair-mid); }
.standards-note p { margin:0; max-width:650px; font-size:16px; color:var(--body); }
.bio-subhead { margin:30px 0 12px; font-size:24px; font-weight:400; }
.bio-focus { columns:2; gap:28px; margin:0; padding-left:1.1em; color:var(--muted); }
.bio-focus li { break-inside:avoid; margin-bottom:7px; }

@media(min-width:901px){
  .products-head .page-title { white-space:nowrap; font-size:clamp(43px,4.35vw,58px); letter-spacing:-.015em; }
}

/* Contact reference proportions */
.contact-grid--form { grid-template-columns:minmax(0,680px) 340px; gap:80px; }
.contact-form textarea { min-height:165px; }
.contact-form .btn { margin-top:2px; }

@media(max-width:900px){
  .bio-layout,.flagship-product { grid-template-columns:1fr; gap:38px; }
  .bio-left,.flagship-product figure { max-width:530px; }
  .product-secondary-grid { grid-template-columns:1fr; gap:38px; }
}
@media(max-width:600px){
  .bio-facts>div { grid-template-columns:110px 1fr; }
  .bio-copy .bio-lead { font-size:23px; }
  .flagship-product img { height:auto; aspect-ratio:4/3; }
}

/* ---------- Analyst strip ---------- */

.analyst { background: var(--ink); color: var(--paper); }
.analyst-grid {
    display: grid;
    grid-template-columns: 330px minmax(0, 1fr);
    gap: 76px;
    align-items: center;
    padding-top: 92px;
    padding-bottom: 92px;
}
.analyst-portrait {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    filter: grayscale(1) contrast(1.04);
    opacity: 0.92;
}
.analyst-body { display: flex; flex-direction: column; gap: 24px; }
.analyst-quote {
    margin: 0;
    font-weight: 200;
    font-size: clamp(26px, 2.7vw, 36px);
    line-height: 1.34;
    max-width: 34ch;
}
.analyst-bio {
    margin: 0;
    font-size: 17px;
    line-height: 1.76;
    color: rgba(247, 244, 238, 0.76);
    max-width: 60ch;
}

/* ---------- Single note ---------- */

.note { padding-top: 76px; padding-bottom: 20px; max-width: 900px; }
.note-head { display: flex; flex-direction: column; gap: 20px; }
.note-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    font-family: 'IBM Plex Mono', ui-monospace, monospace;
    font-size: 10.5px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--label);
}
.note-meta a { color: var(--brass); }
.note-meta-sep { opacity: 0.5; }

.note-title {
    font-weight: 200;
    font-size: clamp(34px, 4.2vw, 54px);
    line-height: 1.1;
    letter-spacing: -0.015em;
    max-width: 24ch;
}
.note-dek {
    margin: 0;
    font-size: 21px;
    line-height: 1.6;
    color: var(--quiet);
    max-width: 60ch;
}

.note-figure { margin: 44px 0 0; }
.note-figure img { width: 100%; filter: grayscale(1) contrast(1.04); }
.note-figure figcaption {
    margin-top: 12px;
    font-family: 'IBM Plex Mono', ui-monospace, monospace;
    font-size: 10.5px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--label);
}

.note-body { padding-top: 44px; }
.note-foot { padding: 56px 0 90px; display: flex; flex-direction: column; gap: 32px; }
.note-cta { display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap; }
.note-cta p { margin: 0; font-size: 18px; color: var(--body); max-width: 44ch; }

/* ---------- Editor content (Ghost cards) ---------- */

.post-content { font-size: 17.5px; line-height: 1.8; color: var(--body); }
.post-content > * { max-width: 66ch; }
.post-content > .kg-width-wide,
.post-content > .kg-width-full,
.post-content > figure { max-width: none; }

.post-content h2 {
    font-size: 32px;
    font-weight: 300;
    line-height: 1.16;
    margin: 52px 0 18px;
}
.post-content h3 {
    font-size: 24px;
    font-weight: 400;
    line-height: 1.22;
    margin: 40px 0 14px;
}
.post-content h4 {
    font-family: 'IBM Plex Mono', ui-monospace, monospace;
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--label);
    margin: 40px 0 12px;
}

.post-content a { border-bottom: 1px solid var(--brass); }
.post-content a:hover { color: var(--brass); }

.post-content ul, .post-content ol { padding-left: 1.2em; margin: 0 0 1.2em; }
.post-content li { margin-bottom: 0.5em; }

.post-content blockquote {
    margin: 34px 0;
    padding: 6px 0 6px 26px;
    border-left: 2px solid var(--brass);
    font-style: italic;
    font-weight: 300;
    font-size: clamp(20px, 2.2vw, 27px);
    line-height: 1.5;
    color: var(--ink);
    max-width: 44ch;
}

.post-content hr {
    border: 0;
    height: 1px;
    background: var(--hair);
    margin: 48px 0;
}

.post-content img,
.post-content .kg-image { width: 100%; }
.post-content figcaption {
    margin-top: 12px;
    font-family: 'IBM Plex Mono', ui-monospace, monospace;
    font-size: 10.5px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--label);
    text-align: left;
}

.post-content table { width: 100%; border-collapse: collapse; font-size: 16px; }
.post-content th, .post-content td {
    text-align: left;
    padding: 12px 0;
    border-bottom: 1px solid var(--hair);
}
.post-content th {
    font-family: 'IBM Plex Mono', ui-monospace, monospace;
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--label);
}

.kg-callout-card {
    background: var(--paper-alt);
    border-left: 2px solid var(--brass);
    border-radius: 0;
    padding: 22px 26px;
}

/* ---------- Pagination ---------- */

.pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    max-width: var(--shell);
    margin: 0 auto;
    padding: 40px var(--pad) 90px;
    font-family: 'IBM Plex Mono', ui-monospace, monospace;
    font-size: 10.5px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--label);
}
.pagination a { color: var(--brass); }

/* ---------- Footer ---------- */

.site-footer { background: var(--ink); color: rgba(247, 244, 238, 0.72); }

.footer-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    gap: 60px;
    padding-top: 36px;
    padding-bottom: 22px;
}
.footer-brand { display: flex; flex-direction: column; gap: 6px; }
.footer-brand .wordmark-name { color: var(--paper); font-size: 22px; }
.footer-brand .wordmark-sub { color: rgba(247, 244, 238, 0.5); }
.footer-disclaimer {
    margin-top: 12px;
    font-size: 14.5px;
    line-height: 1.72;
    max-width: 44ch;
    color: rgba(247, 244, 238, 0.6);
}

.footer-col { display: flex; flex-direction: column; gap: 13px; }
.footer-col .label { color: rgba(247, 244, 238, 0.45); font-size: 9.5px; letter-spacing: 0.22em; margin-bottom: 6px; }
.footer-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 13px; }
.footer-col a, .footer-contact { color: rgba(247, 244, 238, 0.78); font-size: 15.5px; line-height: 1.7; }
.footer-col a:hover { color: var(--brass-lt); }
.footer-contact { margin: 0; }
.footer-secondary-link { margin-top: 8px; }

.footer-base {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding-bottom: 16px;
    padding-top: 13px;
    border-top: 1px solid rgba(247, 244, 238, 0.14);
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-size: 9.5px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(247, 244, 238, 0.42);
}

/* ---------- Motion and loading ---------- */
.page-loader {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 18px;
    background:#10263f;
    color:#edf4f8;
    opacity: 1;
    visibility: visible;
    transition: opacity 110ms ease, visibility 110ms ease;
}
.waterfall-loader { position:relative; width:330px; height:210px; overflow:hidden; animation:fieldIn 340ms cubic-bezier(.2,.8,.25,1) both; }
.waterfall-loader::before,.waterfall-loader::after { content:""; position:absolute; top:0; bottom:0; width:1px; background:linear-gradient(180deg,transparent,rgba(222,234,242,.2) 18%,rgba(222,234,242,.2) 82%,transparent); }
.waterfall-loader::before { left:28px; }.waterfall-loader::after { right:28px; }
.waterfall-crest,.waterfall-basin { position:absolute; left:34px; right:34px; height:38px; }
.waterfall-crest { top:13px; }.waterfall-basin { bottom:9px; transform:rotate(180deg); }
.waterfall-crest i,.waterfall-basin i { position:absolute; left:50%; height:1px; border-top:1px solid rgba(225,237,244,.34); border-radius:50%; transform:translateX(-50%); animation:waterRing 520ms cubic-bezier(.2,.75,.2,1) both; }
.waterfall-crest i:nth-child(1),.waterfall-basin i:nth-child(1) { top:0;width:94px; }.waterfall-crest i:nth-child(2),.waterfall-basin i:nth-child(2) { top:11px;width:164px;animation-delay:35ms }.waterfall-crest i:nth-child(3),.waterfall-basin i:nth-child(3) { top:23px;width:244px;animation-delay:70ms }
.waterfall-streams { position:absolute; inset:34px 54px 32px; display:flex; justify-content:center; gap:18px; mask-image:linear-gradient(180deg,transparent 0,#000 12%,#000 88%,transparent 100%); }
.waterfall-streams b { width:1px; height:100%; background:linear-gradient(180deg,transparent 0,rgba(237,244,248,.2) 12%,rgba(237,244,248,.72) 48%,rgba(177,204,221,.2) 88%,transparent 100%); transform-origin:top; animation:waterFall 620ms cubic-bezier(.2,.7,.2,1) infinite; }
.waterfall-streams b:nth-child(2),.waterfall-streams b:nth-child(6){animation-delay:-110ms;height:88%;margin-top:8px}.waterfall-streams b:nth-child(3),.waterfall-streams b:nth-child(5){animation-delay:-220ms;height:96%;}.waterfall-streams b:nth-child(4){animation-delay:-330ms;background:linear-gradient(180deg,transparent,rgba(237,244,248,.88) 45%,transparent)}
.page-loader-caption { font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; font-size:9px; font-weight:400; letter-spacing:.2em; text-transform:uppercase; color:rgba(237,244,248,.64); animation:captionIn 280ms 90ms ease both; }
.page-ready .page-loader { opacity:0; visibility:hidden; pointer-events:none; }
@keyframes waterFall { 0%{transform:translateY(-28%) scaleY(.72);opacity:0} 35%{opacity:1} 100%{transform:translateY(28%) scaleY(1);opacity:0} }
@keyframes waterRing { from{transform:translateX(-50%) scaleX(.18);opacity:0} to{transform:translateX(-50%) scaleX(1);opacity:1} }
@keyframes loaderMark { 0%{opacity:0;transform:translateY(5px) scale(.82) rotate(-4deg)} 70%{opacity:1;transform:translateY(0) scale(1.05) rotate(1deg)} 100%{opacity:1;transform:translateY(0) scale(1) rotate(0)} }
@keyframes eyeReveal { from{opacity:0;transform:scaleX(.18)} to{opacity:1;transform:scaleX(1)} }
@keyframes pupilFocus { from{opacity:0;transform:scale(.55)} to{opacity:1;transform:scale(1)} }
@keyframes captionIn { from{opacity:0;transform:translateY(3px)} to{opacity:1;transform:none} }
@keyframes fieldIn { from{opacity:0;transform:scale(.78)} to{opacity:1;transform:scale(1)} }
@keyframes orbitTurn { from{opacity:0;transform:rotate(-38deg) scale(.75)} to{opacity:1;transform:rotate(0) scale(1)} }
@keyframes logoFocus { from{opacity:0;transform:scale(.58);filter:blur(5px)} to{opacity:1;transform:scale(1);filter:blur(0)} }
@keyframes eyeOpen { from{opacity:0;transform:scaleY(.08) scaleX(.72)} to{opacity:1;transform:scale(1)} }

/* Institutional finishing */
.coverage-scope { display:grid; grid-template-columns:240px minmax(0,1fr); gap:64px; margin-top:8px; padding-top:38px; padding-bottom:52px; border-top:1px solid var(--hair-mid); }
.coverage-scope__label { padding-top:7px; }
.coverage-scope__body>h2 { margin:0 0 16px; font-size:34px; font-weight:400; }
.coverage-scope__body>p { max-width:52em; font-size:17px; line-height:1.7; color:var(--quiet); }
.coverage-scope__details { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:30px; border-top:1px solid var(--hair-mid); border-bottom:1px solid var(--hair-mid); }
.coverage-scope__details>div { min-height:142px; padding:23px 22px 24px; border-left:1px solid var(--hair); }
.coverage-scope__details>div:first-child { padding-left:0; border-left:0; }
.coverage-scope__details p { margin:11px 0 0; font-size:14.5px; line-height:1.6; color:var(--quiet); }
.contact-security { margin:4px 0 0; padding:18px 20px; border-left:2px solid var(--brass); background:rgba(152,112,59,.045); font-size:13px; line-height:1.65; color:var(--quiet); }
.contact-security .label { display:block; margin-bottom:7px; color:var(--ink); }
.report-card dd small { color:var(--quiet); font-size:11px; letter-spacing:.02em; }
.report-record { max-width:62em; margin:24px 0 0; padding:18px 0 2px; font-size:13px; line-height:1.65; color:var(--quiet); }
.report-record .label { display:block; margin-bottom:7px; color:var(--ink); }
.error-page { position:relative; min-height:calc(100vh - 360px); padding-top:118px; padding-bottom:130px; overflow:hidden; }
.error-page__code { position:absolute; right:3%; top:22px; z-index:-1; font-family:Georgia,'Times New Roman',serif; font-size:250px; font-weight:400; line-height:1; letter-spacing:-.08em; color:rgba(20,42,67,.045); }
.error-page h1 { max-width:760px; margin:20px 0 20px; font-size:56px; font-weight:300; line-height:1.08; }
.error-page>p { max-width:610px; font-size:17px; line-height:1.72; color:var(--quiet); }
.error-page__actions { display:flex; align-items:center; gap:16px; margin-top:34px; }
.error-page__actions .quiet-link { margin-left:8px; }

@media (max-width:900px) {
    .coverage-scope { grid-template-columns:1fr; gap:22px; padding-top:32px; padding-bottom:42px; }
    .coverage-scope__details { grid-template-columns:1fr; }
    .coverage-scope__details>div,.coverage-scope__details>div:first-child { min-height:0; padding:20px 0; border-left:0; border-top:1px solid var(--hair); }
    .coverage-scope__details>div:first-child { border-top:0; }
    .error-page { padding-top:86px; padding-bottom:100px; }
    .error-page__code { right:8%; font-size:160px; }
    .error-page h1 { font-size:42px; }
}

@media (max-width:600px) {
    .error-page__actions { align-items:flex-start; flex-direction:column; }
    .error-page__actions .quiet-link { margin:8px 0 0; }
}

/* Values */
.values-layout { padding-top:18px; padding-bottom:86px; }
.values-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--hair-mid); border-bottom:1px solid var(--hair-mid); }
.values-grid article { padding:30px 28px 32px; border-left:1px solid var(--hair); border-top:1px solid var(--hair); }
.values-grid article:nth-child(-n+3) { border-top:0; }
.values-grid article:nth-child(3n+1) { border-left:0; padding-left:0; }
.values-grid span { font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; font-size:10px; letter-spacing:.15em; color:var(--brass); }
.values-grid h2 { margin:13px 0 10px; font-size:26px; font-weight:400; }
.values-grid p { font-size:15.5px; color:var(--quiet); }
.values-monogram { display:grid; grid-template-columns:repeat(7,1fr); margin-bottom:34px; border-top:1px solid var(--ink); border-bottom:1px solid var(--hair-mid); }
.values-monogram span { display:grid; place-items:center; min-height:102px; border-left:1px solid var(--hair); font-family:'Spectral',Georgia,serif; font-size:48px; font-weight:300; color:var(--ink); transition:background 180ms ease,color 180ms ease; }
.values-monogram span:first-child { border-left:0; }
.values-monogram span:hover { background:var(--ink); color:var(--paper); }
.values-grid--acronym { grid-template-columns:repeat(2,minmax(0,1fr)); }
.values-grid--acronym article:nth-child(3n+1) { border-left:1px solid var(--hair); padding-left:28px; }
.values-grid--acronym article:nth-child(odd) { border-left:0; padding-left:0; }
.values-grid--acronym article:nth-child(3) { border-top:1px solid var(--hair); }
.values-grid--acronym article:last-child { grid-column:1 / -1; max-width:50%; border-left:0; padding-left:0; }
.values-grid--acronym article>span { display:block; font-family:'Spectral',Georgia,serif; font-size:34px; line-height:1; color:var(--brass); }
.values-compass { position:relative; width:min(820px,100%); height:500px; margin:-18px auto 54px; border:0; background:radial-gradient(circle at center,rgba(22,39,63,.045) 0,rgba(22,39,63,.018) 32%,transparent 67%); overflow:visible; }
.compass-axis { position:absolute; background:var(--hair-mid); }.compass-axis--vertical { width:1px; top:35px; bottom:35px; left:50%; }.compass-axis--horizontal { height:1px; left:35px; right:35px; top:50%; }
.compass-ring { position:absolute; width:300px; height:300px; left:50%; top:50%; border:1px solid var(--ink); outline:1px solid rgba(20,42,67,.18); outline-offset:12px; border-radius:50%; transform:translate(-50%,-50%) rotate(45deg); background:repeating-conic-gradient(from 0deg,rgba(20,42,67,.12) 0deg 1deg,transparent 1deg 15deg); box-shadow:inset 0 0 0 46px var(--paper),inset 0 0 0 47px rgba(20,42,67,.22),inset 0 0 0 68px var(--paper),0 0 0 24px rgba(20,42,67,.018); }
.compass-ring::before,.compass-ring::after { content:""; position:absolute; left:50%; top:50%; background:var(--ink); transform:translate(-50%,-50%); }.compass-ring::before { width:1px;height:360px; }.compass-ring::after { width:360px;height:1px; }
.compass-core { position:absolute; z-index:2; left:50%; top:50%; width:170px; height:170px; display:flex; flex-direction:column; justify-content:center; align-items:center; border-radius:50%; transform:translate(-50%,-50%); background:var(--ink); color:var(--paper); text-align:center; }
.compass-core span { font-family:Baskerville,'Palatino Linotype','Book Antiqua',Palatino,serif; font-size:10px; font-weight:400; font-style:italic; letter-spacing:.15em; text-transform:uppercase; color:#d6e0e8; }.compass-core strong { margin-top:7px; font-family:Baskerville,'Palatino Linotype','Book Antiqua',Palatino,serif; font-size:25px; font-weight:400; }
.compass-needle { position:absolute; z-index:1; left:50%; top:50%; width:38px; height:346px; transform:translate(-50%,-50%) rotate(28deg); filter:drop-shadow(0 3px 4px rgba(22,39,63,.12)); }
.compass-needle::before,.compass-needle::after { content:""; position:absolute; left:50%; transform:translateX(-50%); border-left:19px solid transparent; border-right:19px solid transparent; }
.compass-needle::before { top:0; border-bottom:173px solid #173d64; }.compass-needle::after { bottom:0; border-top:173px solid #9ba8b3; }
.compass-needle i { position:absolute; z-index:2; left:50%; top:50%; width:18px; height:18px; border:4px solid var(--paper); border-radius:50%; background:var(--ink); transform:translate(-50%,-50%); }
.cardinal { position:absolute; z-index:4; padding:0 7px; background:var(--paper); font-family:Baskerville,'Palatino Linotype','Book Antiqua',Palatino,serif; font-size:15px; font-weight:400; color:#52728d; }.cardinal--n{left:50%;top:78px;transform:translateX(-50%)}.cardinal--e{right:130px;top:50%;transform:translateY(-50%)}.cardinal--s{left:50%;bottom:78px;transform:translateX(-50%)}.cardinal--w{left:130px;top:50%;transform:translateY(-50%)}
.compass-point { position:absolute; z-index:5; padding:1px 13px 3px; background:var(--paper); font-family:Baskerville,'Palatino Linotype','Book Antiqua',Palatino,serif; font-size:20px; font-weight:400; letter-spacing:.01em; line-height:1.2; color:var(--ink); }.compass-point--north { top:25px; left:50%; text-align:center; transform:translateX(-50%); }.compass-point--south { bottom:25px; left:50%; text-align:center; transform:translateX(-50%); }.compass-point--west { left:15px; top:50%; transform:translateY(-50%); }.compass-point--east { right:15px; top:50%; text-align:right; transform:translateY(-50%); }
.values-principles { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--ink); border-bottom:1px solid var(--hair-mid); }.values-principles article { padding:28px 30px 32px; border-top:1px solid var(--hair); border-left:1px solid var(--hair); }.values-principles article:nth-child(-n+2){border-top:0}.values-principles article:nth-child(odd){border-left:0;padding-left:0}.values-principles article span { font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.15em;color:#52728d}.values-principles h2 { margin:12px 0 9px;font-size:25px;font-weight:400}.values-principles p {font-size:15.5px;color:var(--quiet)}
.bio-role { display:flex; align-items:baseline; gap:18px; margin:0 0 18px; padding-bottom:12px; border-bottom:1px solid var(--hair-mid); }.bio-role span { font-family:'IBM Plex Mono',monospace; font-size:9px; letter-spacing:.15em; text-transform:uppercase; color:#52728d; }.bio-role strong { font-family:Georgia,'Times New Roman',serif; font-size:17px; font-weight:400; color:var(--ink); }
.values-layout blockquote { margin:42px 0 0; padding-left:24px; border-left:2px solid var(--brass); font-size:26px; font-style:italic; color:var(--ink); }

/* Ghost Portal logo fit */
#ghost-portal-root iframe { max-width:100%; }

.nav-item a,.quiet-link,.footer-col a,.link-underline,.btn { transition:color 180ms ease, transform 180ms ease, border-color 180ms ease, background 180ms ease; }
.nav-item a:hover,.quiet-link:hover,.footer-col a:hover,.link-underline:hover { transform:translateY(-2px); }
.btn:hover { transform:translateY(-2px); box-shadow:0 8px 22px rgba(22,39,63,.1); }
.capability,.product-secondary article,.camel-cell,.note-item { transition:transform 220ms ease, background 220ms ease, box-shadow 220ms ease; }
.capability:hover,.product-secondary article:hover { transform:translateY(-3px); background:rgba(255,255,255,.72); }
.camel-cell:hover { transform:none; background:rgba(255,255,255,.78); box-shadow:inset 0 0 0 1px rgba(22,39,63,.04); }
.product-secondary article:hover { box-shadow:0 14px 32px rgba(22,39,63,.06); }
.capability:hover { box-shadow:0 14px 32px rgba(22,39,63,.06); }
.note-item:hover { transform:none; background:rgba(255,255,255,.62); box-shadow:inset 0 0 0 1px rgba(22,39,63,.035); }

@media (prefers-reduced-motion: reduce) {
    *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

@media (min-width: 901px) {
    .home-template + * { min-width:0; }
    .page-head .page-title { max-width:none; }
    .commentary-head .page-title { white-space:nowrap; font-size:clamp(42px,4.3vw,60px); }
    body.home-template .capability { min-height:230px; }
    body.home-template .capability:hover { background:rgba(255,255,255,.52); }
    body.home-template .capability:first-child { margin-left:0; }
    body.home-template .capability-grid { overflow:visible; }
}

/* ---------- Responsive ---------- */

@media (max-width: 1080px) {
    .firm-grid { grid-template-columns: 220px minmax(0, 1fr); gap: 48px; }
    .analyst-grid { grid-template-columns: 260px minmax(0, 1fr); gap: 48px; }
    .archive-grid { gap: 48px; }
    .camel-cell { padding: 24px 18px 28px; }
}

@media (max-width: 900px) {
    :root { --pad: 24px; }

    .nav, .site-header-right .btn { display: none; }
    .nav-toggle { display: flex; }

    .section { padding: 64px 0; }
    .section--firm { padding: 64px 0; }

    .firm-grid,
    .analyst-grid,
    .archive-grid,
    .contact-grid,
    .page-body--split { grid-template-columns: minmax(0, 1fr); gap: 40px; }

    .firm-aside, .archive-aside, .contact-aside { position: static; }
    .archive-aside, .contact-aside { border-left: 0; padding-left: 0; border-top: 1px solid var(--hair-mid); padding-top: 28px; }

    .page-media { max-width: 340px; }

    .capability-grid { grid-template-columns: minmax(0, 1fr); }
    .capability { border-left: 0; border-top: 1px solid var(--hair); padding: 26px 0; }
    .capability:first-child { border-top: 0; padding-top: 0; }

    .camel-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .camel-cell { border-left: 1px solid var(--hair-mid); border-top: 1px solid var(--hair-mid); padding:24px 20px 30px; }
    .camel-cell:first-child { border-left:1px solid var(--hair-mid); }
    .camel-cell:nth-child(odd) { border-left:0; }

    .note-item,
    .note-item--archive { grid-template-columns: minmax(0, 1fr); gap: 12px; padding:24px 18px; }
    .note-item-tag--right { text-align: left; }

    .footer-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
    .footer-base { flex-direction: column; gap: 10px; }
    .footer-motto { display: none; }
    .method-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .method-steps article:nth-child(odd) { border-left:0; padding-left:0; }
    .report-card dl { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .access-layout,.disclosure-layout { grid-template-columns:minmax(0,1fr); gap:38px; }
    .access-aside { grid-column:1; grid-row:auto; }
    .disclosure-nav { position:static; display:none; }
    .standards-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .standards-grid article:nth-child(-n+3) { border-top:1px solid var(--hair); }
    .standards-grid article:nth-child(-n+2) { border-top:0; }
    .standards-grid article:nth-child(3n+1) { border-left:1px solid var(--hair); }
    .standards-grid article:nth-child(odd) { border-left:0; }
    .standards-note { grid-template-columns:1fr; gap:12px; }
    .values-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .values-grid article:nth-child(3n+1) { border-left:1px solid var(--hair); padding-left:28px; }
    .values-grid article:nth-child(odd) { border-left:0; padding-left:0; }
    .values-grid article:nth-child(3) { border-top:1px solid var(--hair); }
    .values-monogram span { min-height:78px; font-size:38px; }
    .values-compass { height:390px; }
}

@media (max-width: 600px) {
    body { font-size: 16px; }
    .wordmark-name { font-size: 19px; letter-spacing: 0.2em; }
    .wordmark-sub { font-size: 8.5px; }
    .site-header-inner { height: 76px; }
    .hero { min-height: 400px; }
    .hero-sub { font-size: 17px; }
    .camel-grid { grid-template-columns: minmax(0, 1fr); }
    .camel-cell { border-left:0 !important; padding:24px 18px 30px !important; min-height:0; }
    .post-content { font-size: 16.5px; }
    .page-lead { font-size: 23px; }
    .brief-grid,.access-grid { grid-template-columns:minmax(0,1fr); }
    .access-grid article:nth-child(even) { padding-left:0; border-left:0; }
    .pdf-download-card { align-items:flex-start; flex-direction:column; }
    .bio-focus { columns:1; }
    .values-grid { grid-template-columns:1fr; }
    .values-grid article,.values-grid article:nth-child(3n+1),.values-grid article:nth-child(odd) { border-left:0; padding-left:0; }
    .values-monogram { grid-template-columns:repeat(7,1fr); margin-bottom:24px; }
    .values-monogram span { min-height:55px; font-size:26px; }
    .values-grid--acronym article:last-child { grid-column:auto; max-width:none; }
    .values-compass { height:340px; margin-bottom:38px; }
    .compass-ring { width:170px; height:170px; }
    .compass-ring::before { height:210px; }.compass-ring::after { width:210px; }
    .compass-core { width:116px; height:116px; }.compass-core strong { font-size:20px; }
    .compass-point { font-size:15px; }.compass-point--west { left:14px; }.compass-point--east { right:14px; }
    .values-principles { grid-template-columns:1fr; }.values-principles article,.values-principles article:nth-child(odd) { border-left:0; padding-left:0; }.values-principles article:nth-child(2) { border-top:1px solid var(--hair); }
    .method-steps,.report-card dl { grid-template-columns:minmax(0,1fr); }
    .method-steps article,.method-steps article:nth-child(odd),.report-card dl div { border-left:0; border-top:1px solid var(--hair); padding-left:0; }
    .method-steps article:first-child,.report-card dl div:first-child { border-top:0; }
}

@media print {
    .site-header, .site-footer, .note-foot, .band { display: none; }
    body { background: #fff; }
}
