:root {
    --ink: #0b0d0c;
    --ink-soft: #131714;
    --parchment: #f1ede4;
    --paper: #f8f5ee;
    --paper-deep: #e6dfd2;
    --copper: #bd8750;
    --copper-light: #e2b274;
    --sage: #829186;
    --muted: #79776f;
    --line-dark: rgba(255, 255, 255, .15);
    --line-light: rgba(11, 13, 12, .16);
    --serif: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Baskerville, Georgia, serif;
    --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --shell: min(1240px, calc(100vw - 72px));
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--parchment);
    color: var(--ink);
    font-family: var(--sans);
    -webkit-font-smoothing: antialiased;
}

body.nav-open {
    overflow: hidden;
}

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

a {
    color: inherit;
    text-decoration: none;
}

button,
input {
    font: inherit;
}

.shell {
    margin-inline: auto;
    width: var(--shell);
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.eyebrow {
    color: var(--copper-light);
    display: block;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .2em;
    line-height: 1.3;
    text-transform: uppercase;
}

.eyebrow.dark {
    color: #87613b;
}

.site-header {
    color: #fff;
    height: 82px;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 50;
}

.site-header.scrolled {
    backdrop-filter: blur(18px);
    background: rgba(8, 10, 9, .94);
    border-bottom: 1px solid var(--line-dark);
    position: fixed;
}

.header-inner {
    align-items: center;
    display: flex;
    height: 82px;
    justify-content: space-between;
}

.brand {
    align-items: center;
    display: inline-flex;
    gap: .72rem;
}

.brand-mark {
    color: var(--copper-light);
    font-size: 1.08rem;
}

.brand-name,
.brand-subtitle {
    display: block;
}

.brand-name {
    font-family: var(--serif);
    font-size: 1.12rem;
    letter-spacing: .025em;
}

.brand-subtitle {
    color: rgba(255, 255, 255, .62);
    font-size: .55rem;
    font-weight: 700;
    letter-spacing: .22em;
    margin-top: .2rem;
    text-transform: uppercase;
}

.nav-toggle {
    background: transparent;
    border: 1px solid var(--line-dark);
    cursor: pointer;
    display: grid;
    gap: 4px;
    height: 44px;
    padding: 13px 12px;
    width: 46px;
}

.nav-toggle span:not(.sr-only) {
    background: #fff;
    display: block;
    height: 1px;
    transition: transform .2s ease, opacity .2s ease;
    width: 20px;
}

.nav-open .nav-toggle span:nth-child(1) {
    transform: translateY(5px) rotate(45deg);
}

.nav-open .nav-toggle span:nth-child(2) {
    opacity: 0;
}

.nav-open .nav-toggle span:nth-child(3) {
    transform: translateY(-5px) rotate(-45deg);
}

.primary-nav {
    background: var(--ink);
    border-left: 1px solid var(--line-dark);
    display: flex;
    flex-direction: column;
    height: 100vh;
    overflow-y: auto;
    padding: 112px clamp(28px, 5vw, 72px) 48px;
    position: fixed;
    right: 0;
    top: 0;
    transform: translateX(100%);
    transition: transform .35s cubic-bezier(.77, 0, .18, 1);
    width: min(520px, 100vw);
    z-index: -1;
}

.primary-nav > a {
    border-bottom: 1px solid var(--line-dark);
    font-family: var(--serif);
    font-size: 1.8rem;
    padding: 0 0 1.2rem;
}

.nav-open .primary-nav {
    transform: translateX(0);
}

.nav-chapters {
    display: grid;
    margin: 1rem 0 2rem;
}

.nav-chapters a {
    align-items: center;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    color: rgba(255, 255, 255, .78);
    display: flex;
    font-family: var(--serif);
    font-size: 1.04rem;
    gap: 1rem;
    padding: .72rem 0;
}

.nav-chapters a:hover {
    color: var(--copper-light);
}

.nav-chapters span {
    color: var(--copper);
    font-family: var(--sans);
    font-size: .6rem;
    letter-spacing: .14em;
}

.sign-out {
    background: transparent;
    border: 0;
    color: rgba(255, 255, 255, .58);
    cursor: pointer;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .16em;
    padding: 0;
    text-transform: uppercase;
}

.button {
    align-items: center;
    border: 1px solid currentColor;
    display: inline-flex;
    font-size: .68rem;
    font-weight: 800;
    gap: 1.5rem;
    justify-content: center;
    letter-spacing: .13em;
    min-height: 54px;
    padding: .85rem 1.3rem;
    text-transform: uppercase;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.button-warm,
.button-solid {
    background: var(--copper-light);
    border-color: var(--copper-light);
    color: #17120d;
}

.button-warm:hover,
.button-solid:hover {
    background: #f0c58e;
    border-color: #f0c58e;
}

.button-ghost {
    border-color: rgba(255, 255, 255, .42);
    color: #fff;
}

.button-ghost:hover {
    background: rgba(255, 255, 255, .1);
    border-color: #fff;
}

.home-hero,
.category-hero,
.document-masthead {
    background: var(--ink);
    color: #fff;
    overflow: hidden;
    position: relative;
}

.home-hero {
    height: min(940px, 100vh);
    min-height: 720px;
}

.home-hero > img,
.category-hero > img,
.document-masthead > img {
    height: 100%;
    object-fit: cover;
    position: absolute;
    width: 100%;
}

.hero-shade,
.document-masthead-shade {
    background:
        linear-gradient(90deg, rgba(5, 7, 6, .92) 0%, rgba(5, 7, 6, .66) 48%, rgba(5, 7, 6, .1) 78%),
        linear-gradient(0deg, rgba(5, 7, 6, .5), transparent 45%);
    inset: 0;
    position: absolute;
}

.home-hero-content {
    display: flex;
    flex-direction: column;
    height: 100%;
    justify-content: center;
    padding-top: 80px;
    position: relative;
    z-index: 2;
}

.home-hero h1 {
    font-family: var(--serif);
    font-size: clamp(4rem, 7.4vw, 8.5rem);
    font-weight: 400;
    letter-spacing: -.055em;
    line-height: .83;
    margin: 2rem 0;
    max-width: 990px;
}

.home-hero h1 em,
.archive-hero h1 em,
.research-copy h2 em {
    color: var(--copper-light);
    font-weight: 400;
}

.home-hero-content > p {
    color: rgba(255, 255, 255, .76);
    font-family: var(--serif);
    font-size: clamp(1rem, 1.5vw, 1.3rem);
    line-height: 1.65;
    max-width: 680px;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    margin-top: 1.6rem;
}

.hero-progress {
    align-items: center;
    bottom: 34px;
    display: flex;
    font-size: .58rem;
    gap: .7rem;
    letter-spacing: .12em;
    position: absolute;
    right: calc((100vw - var(--shell)) / 2);
    z-index: 2;
}

.hero-progress i {
    background: rgba(255, 255, 255, .34);
    display: block;
    height: 1px;
    width: 92px;
}

.room-intro {
    background: var(--paper);
    padding: clamp(90px, 11vw, 170px) 0 90px;
}

.intro-grid {
    display: grid;
    gap: 7vw;
    grid-template-columns: 1.35fr .65fr;
}

.intro-grid h2,
.section-heading h2,
.category-toolbar h2,
.prose h2,
.archive-empty h2 {
    font-family: var(--serif);
    font-weight: 400;
    letter-spacing: -.035em;
}

.intro-grid h2 {
    font-size: clamp(2.8rem, 5vw, 5.4rem);
    line-height: .98;
    margin: 1.5rem 0 0;
}

.intro-copy {
    align-self: end;
    color: #494a45;
    font-family: var(--serif);
    font-size: 1.08rem;
    line-height: 1.75;
}

.evidence-stats {
    border-bottom: 1px solid var(--line-light);
    border-top: 1px solid var(--line-light);
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin-top: 90px;
}

.evidence-stats div {
    border-right: 1px solid var(--line-light);
    padding: 2rem;
}

.evidence-stats div:last-child {
    border-right: 0;
}

.evidence-stats strong,
.evidence-stats span {
    display: block;
}

.evidence-stats strong {
    color: #895f36;
    font-family: var(--serif);
    font-size: 3rem;
    font-weight: 400;
}

.evidence-stats span {
    color: var(--muted);
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .14em;
    margin-top: .4rem;
    text-transform: uppercase;
}

.room-directory {
    background: #f8f4eb;
    border-top: 1px solid var(--line-light);
    padding: 96px 0 110px;
}

.directory-heading {
    align-items: end;
    display: grid;
    gap: 7vw;
    grid-template-columns: 1fr .7fr;
}

.directory-heading h2 {
    font-family: var(--serif);
    font-size: clamp(3rem, 5vw, 5.2rem);
    font-weight: 400;
    letter-spacing: -.045em;
    line-height: .95;
    margin: 1.2rem 0 0;
}

.directory-heading > p {
    color: #55564f;
    font-family: var(--serif);
    font-size: 1.02rem;
    line-height: 1.7;
    margin: 0;
}

.room-index ol,
.category-index ol {
    border-top: 1px solid var(--line-light);
    list-style: none;
    margin: 48px 0 0;
    padding: 0;
}

.room-index ol {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
}

.room-index li,
.category-index li {
    border-bottom: 1px solid var(--line-light);
}

.room-index li:nth-child(odd) {
    border-right: 1px solid var(--line-light);
}

.room-index a,
.category-index a {
    align-items: center;
    display: grid;
    gap: 1rem;
    min-height: 66px;
    padding: .8rem 1rem;
    transition: background-color .2s ease, color .2s ease;
}

.room-index a {
    grid-template-columns: 42px minmax(0, 1fr) auto;
}

.room-index a:hover,
.category-index a:hover {
    background: #ece5d8;
    color: #76502f;
}

.room-index a > span,
.category-index a > span {
    color: #9b714b;
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .13em;
}

.room-index strong,
.category-index strong {
    font-family: var(--serif);
    font-size: 1.08rem;
    font-weight: 400;
}

.room-index small,
.category-index small {
    color: var(--muted);
    font-size: .55rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.room-search {
    border-top: 1px solid var(--line-light);
    margin-top: 58px;
    padding-top: 40px;
}

.room-search-control {
    align-items: end;
    display: grid;
    gap: 1rem 2rem;
    grid-template-columns: 190px minmax(260px, 1fr) auto;
}

.room-search-control label,
.document-filter label {
    color: var(--muted);
    display: block;
    font-size: .6rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.room-search-control input,
.document-filter input {
    background: transparent;
    border: 0;
    border-bottom: 1px solid #817b71;
    border-radius: 0;
    color: var(--ink);
    outline: 0;
    padding: .7rem 0;
}

.room-search-control input:focus,
.document-filter input:focus {
    border-color: var(--copper);
}

.room-search-control p,
.document-filter p {
    color: var(--muted);
    font-size: .64rem;
    margin: 0;
}

.room-search-results {
    border-left: 1px solid var(--line-light);
    border-top: 1px solid var(--line-light);
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    margin-top: 32px;
}

.room-search-results a {
    background: var(--paper);
    border-bottom: 1px solid var(--line-light);
    border-right: 1px solid var(--line-light);
    display: grid;
    gap: .4rem;
    min-height: 126px;
    padding: 22px;
}

.room-search-results a:hover {
    background: #ece5d8;
}

.room-search-results span,
.room-search-results small {
    color: var(--muted);
    font-size: .57rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.room-search-results strong {
    font-family: var(--serif);
    font-size: 1.35rem;
    font-weight: 400;
}

[data-search-item][hidden] {
    display: none !important;
}

[data-search-results][hidden] {
    display: none !important;
}

.chapter-section {
    background: var(--ink);
    color: #fff;
    padding: clamp(90px, 10vw, 150px) 0;
}

.section-heading {
    align-items: end;
    display: grid;
    gap: 6vw;
    grid-template-columns: 1fr .45fr;
    margin-bottom: 64px;
}

.section-heading h2 {
    font-size: clamp(3rem, 5.5vw, 6rem);
    line-height: .95;
    margin: 1.3rem 0 0;
}

.section-heading > p {
    color: rgba(255, 255, 255, .58);
    font-family: var(--serif);
    font-size: 1rem;
    line-height: 1.7;
    margin: 0;
}

.chapter-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, 1fr);
}

.chapter-card {
    aspect-ratio: 4 / 3;
    border: 1px solid rgba(255, 255, 255, .16);
    overflow: hidden;
    position: relative;
}

.chapter-card img,
.chapter-shade {
    height: 100%;
    inset: 0;
    position: absolute;
    width: 100%;
}

.chapter-card img {
    filter: saturate(.78);
    object-fit: cover;
    transition: filter .5s ease, transform .7s ease;
}

.chapter-shade {
    background: linear-gradient(0deg, rgba(5, 7, 6, .95), rgba(5, 7, 6, .06) 70%);
}

.chapter-card:hover img {
    filter: saturate(1);
    transform: scale(1.035);
}

.chapter-card-number {
    color: rgba(255, 255, 255, .62);
    font-size: .62rem;
    left: 28px;
    letter-spacing: .18em;
    position: absolute;
    top: 28px;
}

.chapter-card-copy {
    bottom: 30px;
    left: 28px;
    position: absolute;
    right: 28px;
}

.chapter-card-copy small,
.chapter-card-copy strong,
.chapter-card-copy > span {
    display: block;
}

.chapter-card-copy small {
    color: var(--copper-light);
    font-size: .6rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.chapter-card-copy strong {
    font-family: var(--serif);
    font-size: clamp(2rem, 2.6vw, 2.9rem);
    font-weight: 400;
    letter-spacing: -.035em;
    line-height: 1;
    margin: .85rem 0 1.1rem;
}

.chapter-card-copy > span {
    border-top: 1px solid rgba(255, 255, 255, .25);
    color: rgba(255, 255, 255, .66);
    font-size: .62rem;
    letter-spacing: .1em;
    padding-top: 1rem;
    text-transform: uppercase;
}

.chapter-card-copy b {
    float: right;
    font-size: 1rem;
}

.research-callout {
    background: var(--ink);
    color: #fff;
}

.research-grid {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    width: 100%;
}

.research-visual {
    height: 760px;
}

.research-visual img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.research-copy {
    align-items: flex-start;
    background: #181b18;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(48px, 8vw, 120px);
}

.research-copy h2 {
    font-family: var(--serif);
    font-size: clamp(3rem, 5vw, 5.6rem);
    font-weight: 400;
    letter-spacing: -.045em;
    line-height: .96;
    margin: 1.5rem 0;
}

.research-copy p {
    color: rgba(255, 255, 255, .66);
    font-family: var(--serif);
    font-size: 1.08rem;
    line-height: 1.75;
}

.text-link {
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.text-link span {
    color: var(--copper);
    margin-left: .4rem;
}

.text-link.light {
    border-bottom: 1px solid rgba(255, 255, 255, .35);
    color: #fff;
    margin-top: 1rem;
    padding-bottom: .6rem;
}

.category-hero {
    height: 560px;
}

.category-hero-content {
    bottom: 80px;
    left: 0;
    position: absolute;
    right: 0;
    z-index: 2;
}

.category-hero h1 {
    font-family: var(--serif);
    font-size: clamp(4rem, 7vw, 7rem);
    font-weight: 400;
    letter-spacing: -.06em;
    line-height: .8;
    margin: 1.5rem 0 2rem;
    max-width: 980px;
}

.category-hero-content p {
    color: rgba(255, 255, 255, .76);
    font-family: var(--serif);
    font-size: 1.18rem;
    line-height: 1.7;
    max-width: 700px;
}

.category-watermark {
    bottom: -7vw;
    color: rgba(255, 255, 255, .06);
    font-family: var(--serif);
    font-size: 28vw;
    line-height: 1;
    position: absolute;
    right: -1vw;
    z-index: 1;
}

.category-brief {
    background: #e8e2d7;
    padding: 112px 0;
}

.category-brief-grid {
    align-items: start;
    display: grid;
    gap: clamp(48px, 7vw, 112px);
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
}

.category-brief-visual {
    margin: 0;
    position: relative;
}

.category-brief-visual::before {
    border: 1px solid rgba(137, 95, 54, .4);
    content: "";
    inset: -16px 16px 16px -16px;
    pointer-events: none;
    position: absolute;
}

.category-brief-visual img {
    aspect-ratio: 3 / 2;
    display: block;
    filter: saturate(.86) contrast(1.04);
    height: auto;
    object-fit: cover;
    position: relative;
    width: 100%;
    z-index: 1;
}

.category-brief-visual figcaption {
    align-items: center;
    background: var(--ink);
    color: rgba(255, 255, 255, .7);
    display: flex;
    font-size: .58rem;
    font-weight: 800;
    gap: .8rem;
    letter-spacing: .15em;
    padding: 1rem 1.2rem;
    position: relative;
    text-transform: uppercase;
    z-index: 2;
}

.category-brief-visual figcaption span {
    color: var(--copper);
    font-family: var(--serif);
    font-size: 1.2rem;
    font-weight: 400;
    letter-spacing: 0;
}

.category-brief-copy h2 {
    font-family: var(--serif);
    font-size: clamp(2.8rem, 4.5vw, 5rem);
    font-weight: 400;
    letter-spacing: -.05em;
    line-height: .98;
    margin: 1.2rem 0 2rem;
}

.category-brief-copy > p {
    color: #4f4d47;
    font-family: var(--serif);
    font-size: 1.08rem;
    line-height: 1.75;
    margin: 0 0 1.15rem;
}

.investor-lens {
    border-top: 1px solid rgba(11, 13, 12, .2);
    display: grid;
    gap: 1.5rem;
    grid-template-columns: 116px minmax(0, 1fr);
    margin-top: 2.2rem;
    padding-top: 1.5rem;
}

.investor-lens > span {
    color: #895f36;
    font-size: .6rem;
    font-weight: 800;
    letter-spacing: .14em;
    padding-top: .28rem;
    text-transform: uppercase;
}

.investor-lens ul {
    display: grid;
    gap: .8rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.investor-lens li {
    color: #343530;
    font-family: var(--serif);
    line-height: 1.5;
    padding-left: 1.35rem;
    position: relative;
}

.investor-lens li::before {
    color: #a66f3b;
    content: "—";
    left: 0;
    position: absolute;
}

.category-documents {
    background: var(--paper);
    padding: 100px 0 130px;
}

.category-toolbar {
    align-items: end;
    display: flex;
    justify-content: space-between;
    margin-bottom: 52px;
}

.category-toolbar h2 {
    font-size: 3rem;
    margin: .7rem 0 0;
}

.document-filter label {
    margin-bottom: .55rem;
}

.document-filter input {
    min-width: 310px;
}

.document-filter p {
    margin-top: .55rem;
    text-align: right;
}

.category-index {
    margin-bottom: 42px;
}

.category-index ol {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    margin-top: 0;
}

.category-index li:nth-child(odd) {
    border-right: 1px solid var(--line-light);
}

.category-index a {
    grid-template-columns: 38px minmax(0, 1fr) auto;
}

.document-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(3, 1fr);
}

.document-card {
    border: 1px solid var(--line-light);
    display: flex;
    flex-direction: column;
    min-height: 310px;
    padding: 26px;
}

.document-card-top {
    align-items: center;
    display: flex;
    justify-content: space-between;
}

.document-index {
    color: #918d83;
    font-size: .58rem;
    letter-spacing: .15em;
}

.status-pill {
    border: 1px solid currentColor;
    display: inline-flex;
    font-size: .54rem;
    font-weight: 800;
    letter-spacing: .12em;
    padding: .42rem .58rem;
    text-transform: uppercase;
}

.status-pill.available {
    color: #557b62;
}

.status-pill.draft {
    color: #906236;
}

.status-pill.requested {
    color: #86605a;
}

.document-card h3 {
    font-family: var(--serif);
    font-size: 2.15rem;
    font-weight: 400;
    letter-spacing: -.03em;
    line-height: 1.05;
    margin: 2rem 0 1rem;
}

.document-card h3 a:hover {
    color: #895f36;
}

.document-card p {
    color: #585851;
    font-family: var(--serif);
    line-height: 1.65;
    margin: 0;
}

.document-card-actions {
    align-items: center;
    border-top: 1px solid var(--line-light);
    display: flex;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 1rem;
}

.pdf-link {
    color: #895f36;
    font-size: .6rem;
    font-weight: 800;
    letter-spacing: .12em;
}

.no-results {
    color: var(--muted);
    font-family: var(--serif);
    font-size: 1.2rem;
    padding: 2rem 0;
}

.chapter-pagination,
.document-pagination {
    background: var(--ink);
    color: #fff;
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.chapter-pagination a,
.chapter-pagination > span,
.document-pagination a,
.document-pagination > span {
    border-right: 1px solid var(--line-dark);
    min-height: 180px;
    padding: 50px max(36px, calc((100vw - var(--shell)) / 2));
}

.chapter-pagination a:last-child,
.document-pagination a:last-child {
    text-align: right;
}

.chapter-pagination small,
.chapter-pagination strong,
.document-pagination small,
.document-pagination strong {
    display: block;
}

.chapter-pagination small,
.document-pagination small {
    color: var(--copper-light);
    font-size: .58rem;
    letter-spacing: .15em;
    margin-bottom: .9rem;
    text-transform: uppercase;
}

.chapter-pagination strong,
.document-pagination strong {
    font-family: var(--serif);
    font-size: 1.5rem;
    font-weight: 400;
}

.document-masthead {
    min-height: 610px;
}

.document-masthead-shade {
    background:
        linear-gradient(90deg, rgba(6, 8, 7, .95), rgba(6, 8, 7, .68) 58%, rgba(6, 8, 7, .3)),
        linear-gradient(0deg, rgba(6, 8, 7, .5), transparent);
}

.document-masthead-content {
    padding-bottom: 70px;
    padding-top: 145px;
    position: relative;
    z-index: 2;
}

.back-link {
    color: rgba(255, 255, 255, .7);
    display: block;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .13em;
    margin-bottom: 4rem;
    text-transform: uppercase;
}

.document-masthead h1 {
    font-family: var(--serif);
    font-size: clamp(3.5rem, 7vw, 7.5rem);
    font-weight: 400;
    letter-spacing: -.055em;
    line-height: .9;
    margin: 2rem 0;
    max-width: 980px;
}

.document-masthead-content > p {
    color: rgba(255, 255, 255, .74);
    font-family: var(--serif);
    font-size: 1.18rem;
    line-height: 1.7;
    max-width: 700px;
}

.document-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    margin-top: 2rem;
}

.metric-strip {
    background: #171a17;
    color: #fff;
}

.metric-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.metric-grid > div {
    border-right: 1px solid var(--line-dark);
    min-height: 180px;
    padding: 36px 28px;
}

.metric-grid strong,
.metric-grid span,
.metric-grid small {
    display: block;
}

.metric-grid strong {
    color: var(--copper-light);
    font-family: var(--serif);
    font-size: 2rem;
    font-weight: 400;
    line-height: 1.1;
}

.metric-grid span {
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .11em;
    margin: .8rem 0;
    text-transform: uppercase;
}

.metric-grid small {
    color: rgba(255, 255, 255, .54);
    font-family: var(--serif);
    line-height: 1.5;
}

.document-body {
    background: var(--paper);
    padding: 110px 0 140px;
}

.document-layout {
    display: grid;
    gap: 9vw;
    grid-template-columns: 230px minmax(0, 760px);
    justify-content: center;
}

.document-aside {
    align-self: start;
    border-top: 1px solid var(--line-light);
    padding-top: 1.4rem;
    position: sticky;
    top: 110px;
}

.document-aside nav {
    display: grid;
    margin-top: 1.4rem;
}

.document-aside a {
    border-bottom: 1px solid var(--line-light);
    color: #5e5d57;
    font-family: var(--serif);
    font-size: .9rem;
    line-height: 1.35;
    padding: .7rem 0;
}

.document-aside a:hover {
    color: #895f36;
}

.prose section {
    margin-bottom: 76px;
    scroll-margin-top: 110px;
}

.section-rule {
    background: var(--copper);
    display: block;
    height: 2px;
    margin-bottom: 1.5rem;
    width: 46px;
}

.prose h2 {
    font-size: clamp(2.2rem, 4vw, 3.7rem);
    line-height: 1.02;
    margin: 0 0 1.8rem;
}

.prose p,
.prose li {
    color: #3f403b;
    font-family: var(--serif);
    font-size: 1.08rem;
    line-height: 1.8;
}

.prose p {
    margin: 0 0 1.4rem;
}

.prose ul {
    border-bottom: 1px solid var(--line-light);
    border-top: 1px solid var(--line-light);
    list-style: none;
    margin: 2rem 0 0;
    padding: 0;
}

.prose li {
    border-bottom: 1px solid var(--line-light);
    padding: .9rem 0 .9rem 1.6rem;
    position: relative;
}

.prose li:last-child {
    border-bottom: 0;
}

.prose li::before {
    color: var(--copper);
    content: "—";
    left: 0;
    position: absolute;
}

.diligence-note {
    border: 1px solid var(--line-light);
    padding: 32px;
}

.diligence-note.available {
    background: #e5eee6;
}

.diligence-note.draft {
    background: #f4e8d8;
}

.diligence-note.requested {
    background: #eee2df;
}

.diligence-note p {
    margin: 1rem 0 0;
}

.source-list ol {
    list-style: none;
    padding: 0;
}

.source-list li {
    padding-left: 0;
}

.source-list li::before {
    display: none;
}

.source-list a,
.source-list strong,
.source-list span {
    display: block;
}

.source-list a,
.source-list strong {
    color: #704d2d;
    font-family: var(--sans);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .04em;
}

.source-list span {
    color: var(--muted);
    font-family: var(--sans);
    font-size: .68rem;
    line-height: 1.5;
    margin-top: .35rem;
}

.archive-hero {
    background:
        radial-gradient(circle at 72% 32%, rgba(189, 135, 80, .22), transparent 28%),
        linear-gradient(120deg, #0a0d0b, #181c18);
    color: #fff;
    min-height: 700px;
    padding: 170px 0 90px;
    position: relative;
}

.archive-hero::after {
    background-image:
        linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px);
    background-size: 42px 42px;
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
}

.archive-hero .shell {
    position: relative;
    z-index: 1;
}

.archive-hero h1 {
    font-family: var(--serif);
    font-size: clamp(4rem, 9vw, 9rem);
    font-weight: 400;
    letter-spacing: -.06em;
    line-height: .85;
    margin: 1.4rem 0 2rem;
}

.archive-hero > .shell > p {
    color: rgba(255, 255, 255, .66);
    font-family: var(--serif);
    font-size: 1.1rem;
    line-height: 1.7;
    max-width: 680px;
}

.archive-summary {
    border-bottom: 1px solid var(--line-dark);
    border-top: 1px solid var(--line-dark);
    display: flex;
    gap: 3rem;
    margin-top: 3rem;
    padding: 1.4rem 0;
}

.archive-summary span {
    color: rgba(255, 255, 255, .58);
    font-size: .63rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.archive-summary strong {
    color: var(--copper-light);
    font-family: var(--serif);
    font-size: 1.4rem;
    font-weight: 400;
    margin-right: .4rem;
}

.archive-browser {
    background: var(--paper);
    min-height: 600px;
    padding: 70px 0 130px;
}

.breadcrumbs {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    font-size: .66rem;
    font-weight: 800;
    gap: .55rem;
    letter-spacing: .08em;
    margin-bottom: 2.5rem;
    text-transform: uppercase;
}

.breadcrumbs a {
    color: #7d5734;
}

.breadcrumbs span {
    color: #aaa499;
}

.archive-empty {
    border: 1px solid var(--line-light);
    max-width: 760px;
    padding: 48px;
}

.archive-empty h2 {
    font-size: 2.6rem;
    margin: 1rem 0;
}

.archive-empty p {
    color: var(--muted);
    font-family: var(--serif);
    line-height: 1.7;
}

.archive-table {
    border-left: 1px solid var(--line-light);
    border-top: 1px solid var(--line-light);
}

.archive-row {
    border-bottom: 1px solid var(--line-light);
    display: grid;
    grid-template-columns: minmax(0, 1fr) 100px 110px 120px;
}

.archive-row > span {
    border-right: 1px solid var(--line-light);
    font-size: .72rem;
    overflow-wrap: anywhere;
    padding: 1rem;
}

.archive-header {
    background: var(--paper-deep);
    color: var(--muted);
    font-size: .6rem;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.archive-name {
    color: #473422;
    font-family: var(--serif);
    font-size: .9rem;
}

.archive-name:hover {
    color: #96663a;
}

.access-page .site-header {
    left: 0;
    width: 50%;
}

.access-page .header-inner {
    width: calc(100% - 72px);
}

.access-shell {
    background: var(--ink);
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 100vh;
}

.access-visual {
    min-height: 720px;
    overflow: hidden;
    position: relative;
}

.access-visual img {
    height: 100%;
    object-fit: cover;
    position: absolute;
    width: 100%;
}

.access-visual::after {
    background: linear-gradient(0deg, rgba(5, 7, 6, .92), rgba(5, 7, 6, .08) 68%);
    content: "";
    inset: 0;
    position: absolute;
}

.access-visual-overlay {
    bottom: 8vh;
    color: #fff;
    left: clamp(36px, 6vw, 100px);
    max-width: 590px;
    position: absolute;
    right: 36px;
    z-index: 1;
}

.access-visual-overlay h1 {
    font-family: var(--serif);
    font-size: clamp(3rem, 5vw, 6rem);
    font-weight: 400;
    letter-spacing: -.05em;
    line-height: .9;
    margin: 1.4rem 0;
}

.access-visual-overlay p {
    color: rgba(255, 255, 255, .7);
    font-family: var(--serif);
    line-height: 1.65;
}

.access-panel {
    align-items: center;
    background: var(--paper);
    display: flex;
    padding: 110px clamp(36px, 8vw, 130px);
}

.access-panel-inner {
    max-width: 510px;
}

.chapter-number {
    color: #a29d92;
    display: block;
    font-size: .58rem;
    letter-spacing: .18em;
    margin-bottom: 3rem;
}

.access-panel h2 {
    font-family: var(--serif);
    font-size: clamp(3rem, 5vw, 5rem);
    font-weight: 400;
    letter-spacing: -.05em;
    line-height: .94;
    margin: 1.4rem 0;
}

.access-panel p {
    color: #5c5c56;
    font-family: var(--serif);
    line-height: 1.7;
}

.access-form {
    margin: 2.2rem 0 1.2rem;
}

.field label {
    color: #5f5c55;
    display: block;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .13em;
    margin-bottom: .65rem;
    text-transform: uppercase;
}

.field input {
    background: transparent;
    border: 0;
    border-bottom: 1px solid #77736b;
    border-radius: 0;
    font-family: var(--serif);
    font-size: 1.4rem;
    outline: 0;
    padding: .8rem 0;
    width: 100%;
}

.field input:focus {
    border-color: var(--copper);
}

.field span {
    color: #8c4a3d;
    display: block;
    font-size: .68rem;
    margin-top: .5rem;
}

.access-form .button {
    margin-top: 1.8rem;
    width: 100%;
}

.nda-consent {
    border-bottom: 1px solid rgba(119, 115, 107, .35);
    border-top: 1px solid rgba(119, 115, 107, .35);
    margin-top: 1.6rem;
    padding: 1rem 0;
}

.nda-consent label {
    align-items: start;
    color: #3e3c37;
    cursor: pointer;
    display: grid;
    font-family: var(--serif);
    font-size: .88rem;
    gap: .75rem;
    grid-template-columns: 18px minmax(0, 1fr);
    line-height: 1.5;
}

.nda-consent input {
    accent-color: var(--copper);
    height: 18px;
    margin: .1rem 0 0;
    width: 18px;
}

.nda-consent a {
    color: #7c432f;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: .18em;
}

.nda-consent > span {
    color: #8c4a3d;
    display: block;
    font-size: .68rem;
    margin: .55rem 0 0 30px;
}

.form-alert {
    background: #ecdfda;
    border-left: 3px solid #8c4a3d;
    color: #66362e;
    font-family: var(--serif);
    line-height: 1.5;
    padding: 1rem;
}

.access-note {
    font-size: .78rem;
}

.access-page .site-footer {
    display: none;
}

.nda-page {
    background: var(--paper);
}

.nda-hero {
    background:
        linear-gradient(115deg, rgba(5, 7, 6, .96), rgba(5, 7, 6, .68)),
        url("../images/categories/legal.png") center 48% / cover;
    color: #fff;
    padding: 220px 0 110px;
}

.nda-hero h1 {
    font-family: var(--serif);
    font-size: clamp(3.5rem, 7vw, 7rem);
    font-weight: 400;
    letter-spacing: -.055em;
    line-height: .9;
    margin: 1.6rem 0;
}

.nda-hero h1 em {
    color: var(--copper-light);
    font-weight: 400;
}

.nda-hero p {
    color: rgba(255, 255, 255, .7);
    font-family: var(--serif);
    font-size: 1.1rem;
    line-height: 1.7;
    max-width: 650px;
}

.nda-document {
    color: #35342f;
    font-family: var(--serif);
    font-size: 1.02rem;
    line-height: 1.85;
    max-width: 860px;
    padding-bottom: 120px;
    padding-top: 90px;
}

.nda-document h2 {
    border-top: 1px solid #d8d0c2;
    color: #171815;
    font-size: 2rem;
    font-weight: 400;
    letter-spacing: -.025em;
    line-height: 1.2;
    margin: 3rem 0 1rem;
    padding-top: 1.6rem;
}

.nda-document li + li {
    margin-top: .6rem;
}

.nda-template-note {
    background: #efe8dc;
    border-left: 3px solid var(--copper);
    color: #514b43;
    font-family: var(--sans);
    font-size: .78rem;
    line-height: 1.65;
    margin-bottom: 3rem;
    padding: 1.2rem 1.35rem;
}

.nda-template-note strong {
    color: #25241f;
}

.nda-document-footer {
    border-top: 1px solid #bdb5a8;
    display: flex;
    font-family: var(--sans);
    font-size: .65rem;
    font-weight: 700;
    justify-content: space-between;
    letter-spacing: .1em;
    margin-top: 4rem;
    padding-top: 1.4rem;
    text-transform: uppercase;
}

.site-footer {
    background: #070908;
    color: #fff;
    padding: 72px 0 24px;
}

.footer-grid {
    display: grid;
    gap: 5vw;
    grid-template-columns: 1.4fr 1fr 1fr;
}

.footer-grid p {
    color: rgba(255, 255, 255, .5);
    font-family: var(--serif);
    font-size: .86rem;
    line-height: 1.6;
}

.footer-grid strong {
    color: rgba(255, 255, 255, .75);
    font-weight: 400;
}

.footer-label {
    color: var(--copper-light);
    font-size: .58rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.footer-bottom {
    border-top: 1px solid var(--line-dark);
    color: rgba(255, 255, 255, .38);
    display: flex;
    font-size: .57rem;
    justify-content: space-between;
    letter-spacing: .1em;
    margin-top: 52px;
    padding-top: 20px;
    text-transform: uppercase;
}

.error-page {
    align-items: center;
    background: var(--ink);
    color: #fff;
    display: flex;
    min-height: 760px;
    padding-top: 82px;
}

.error-page h1 {
    font-family: var(--serif);
    font-size: clamp(3.5rem, 7vw, 7rem);
    font-weight: 400;
    letter-spacing: -.05em;
    line-height: .92;
    max-width: 800px;
}

.error-page p {
    color: rgba(255, 255, 255, .6);
    font-family: var(--serif);
    font-size: 1.1rem;
    line-height: 1.7;
    max-width: 600px;
}

.error-page small {
    color: rgba(255, 255, 255, .35);
    display: block;
    margin-top: 2rem;
}

.reveal {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .55s ease, transform .55s ease;
}

.reveal.visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 980px) {
    :root {
        --shell: min(100% - 40px, 860px);
    }

    .chapter-grid,
    .document-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .intro-grid,
    .section-heading,
    .directory-heading {
        grid-template-columns: 1fr;
    }

    .room-search-control {
        grid-template-columns: 150px minmax(0, 1fr);
    }

    .room-search-control p {
        grid-column: 2;
    }

    .research-grid {
        grid-template-columns: 1fr;
    }

    .category-brief-grid {
        gap: 64px;
        grid-template-columns: 1fr;
    }

    .category-brief-visual {
        max-width: 760px;
    }

    .research-visual {
        height: 520px;
    }

    .evidence-stats,
    .metric-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .document-layout {
        gap: 5vw;
        grid-template-columns: 190px minmax(0, 1fr);
    }

    .access-page .site-header {
        width: 100%;
    }

    .access-shell {
        grid-template-columns: 1fr;
    }

    .access-visual {
        min-height: 620px;
    }
}

@media (max-width: 680px) {
    :root {
        --shell: calc(100% - 32px);
    }

    .site-header,
    .header-inner {
        height: 72px;
    }

    .brand-name {
        font-size: 1rem;
    }

    .home-hero {
        min-height: 700px;
    }

    .home-hero h1 {
        font-size: clamp(3.5rem, 17vw, 5rem);
        line-height: .88;
    }

    .home-hero-content > p {
        font-size: 1rem;
    }

    .hero-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .hero-progress {
        bottom: 20px;
        right: 16px;
    }

    .room-intro {
        padding-top: 80px;
    }

    .intro-grid h2,
    .section-heading h2 {
        font-size: 3rem;
    }

    .evidence-stats,
    .metric-grid {
        grid-template-columns: 1fr 1fr;
        margin-top: 60px;
    }

    .room-directory {
        padding: 76px 0 86px;
    }

    .directory-heading h2 {
        font-size: 3rem;
    }

    .room-index ol,
    .category-index ol,
    .room-search-results {
        grid-template-columns: 1fr;
    }

    .room-index li:nth-child(odd),
    .category-index li:nth-child(odd) {
        border-right: 0;
    }

    .room-search-control {
        align-items: stretch;
        grid-template-columns: 1fr;
    }

    .room-search-control p {
        grid-column: auto;
    }

    .evidence-stats div {
        padding: 1.4rem;
    }

    .evidence-stats strong {
        font-size: 2.2rem;
    }

    .chapter-grid,
    .document-grid {
        grid-template-columns: 1fr;
    }

    .chapter-card {
        aspect-ratio: 16 / 11;
    }

    .research-visual {
        height: 400px;
    }

    .research-copy {
        padding: 64px 24px;
    }

    .category-hero {
        height: 500px;
    }

    .category-hero h1 {
        font-size: 4rem;
        line-height: .9;
    }

    .category-hero-content {
        bottom: 46px;
    }

    .category-brief {
        padding: 80px 0;
    }

    .category-brief-visual::before {
        inset: -10px 10px 10px -10px;
    }

    .investor-lens {
        grid-template-columns: 1fr;
    }

    .category-toolbar {
        align-items: stretch;
        flex-direction: column;
        gap: 2rem;
    }

    .document-filter input {
        min-width: 0;
        width: 100%;
    }

    .document-card {
        min-height: 300px;
        padding: 24px;
    }

    .chapter-pagination,
    .document-pagination {
        grid-template-columns: 1fr;
    }

    .chapter-pagination a,
    .chapter-pagination > span,
    .document-pagination a,
    .document-pagination > span {
        min-height: 130px;
        padding: 32px 20px;
    }

    .chapter-pagination a:last-child,
    .document-pagination a:last-child {
        text-align: left;
    }

    .document-masthead {
        min-height: 620px;
    }

    .document-masthead-content {
        padding-bottom: 55px;
        padding-top: 130px;
    }

    .back-link {
        margin-bottom: 3rem;
    }

    .document-masthead h1 {
        font-size: 3.5rem;
    }

    .metric-grid {
        margin-top: 0;
    }

    .metric-grid > div {
        min-height: 155px;
        padding: 26px 18px;
    }

    .document-body {
        padding: 80px 0;
    }

    .document-layout {
        grid-template-columns: 1fr;
    }

    .document-aside {
        display: none;
    }

    .prose h2 {
        font-size: 2.5rem;
    }

    .prose p,
    .prose li {
        font-size: 1rem;
    }

    .archive-hero {
        min-height: 680px;
        padding-top: 130px;
    }

    .archive-hero h1 {
        font-size: 4rem;
    }

    .archive-summary {
        align-items: flex-start;
        flex-direction: column;
        gap: .8rem;
    }

    .archive-row {
        grid-template-columns: minmax(0, 1fr) 72px;
    }

    .archive-row > span:nth-child(3),
    .archive-row > span:nth-child(4) {
        display: none;
    }

    .access-page .header-inner {
        width: calc(100% - 32px);
    }

    .access-visual {
        min-height: 580px;
    }

    .access-visual-overlay {
        bottom: 48px;
        left: 24px;
        right: 24px;
    }

    .access-panel {
        padding: 70px 24px;
    }

    .nda-hero {
        padding: 160px 0 78px;
    }

    .nda-hero h1 {
        font-size: 3.35rem;
    }

    .nda-document {
        padding-bottom: 80px;
        padding-top: 58px;
    }

    .nda-document h2 {
        font-size: 1.65rem;
    }

    .nda-document-footer {
        align-items: flex-start;
        flex-direction: column;
        gap: .6rem;
    }

    .footer-grid {
        grid-template-columns: 1fr;
    }

    .footer-bottom {
        align-items: flex-start;
        flex-direction: column;
        gap: .7rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }

    .reveal {
        opacity: 1;
        transform: none;
    }
}
