/* ─────────────────────────────────────────────────────────────────
   Atlas & Elm — design tokens + base element styles
   ───────────────────────────────────────────────────────────────── */

:root {
	--ae-cream:       #F4EFE6;
	--ae-cream-deep:  #EBE3D2;
	--ae-ink:         #1A1714;
	--ae-ink-soft:    #3A332C;
	--ae-rule:        #C9BFAF;
	--ae-muted:       #76695A;
	--ae-accent:      #B08968;
	--ae-accent-soft: #E5D5C2;

	--ae-serif:  'Cormorant Garamond', 'Cormorant', Georgia, serif;
	--ae-sans:   'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
	--ae-mono:   'DM Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
}

body, .ae { color: var(--ae-ink); font-family: var(--ae-sans); }

/* ─── Reveal animation (used by useReveal-style elements) ───── */
.ae-reveal { opacity: 0; transform: translateY(14px); transition: opacity .9s ease, transform .9s ease; }
.ae-reveal.ae-in { opacity: 1; transform: none; }

/* ─── Logo ─────────────────────────────────────────────────── */
.ae-logo { display: inline-flex; align-items: center; gap: 10px; color: var(--ae-ink); }
.ae-logo .ae-logo-text { font-family: var(--ae-serif); font-weight: 400; font-size: 18px; letter-spacing: 0.32em; text-transform: uppercase; }
.ae-logo .ae-logo-text em { font-style: italic; font-weight: 300; letter-spacing: 0; }

/* ─── Nav ──────────────────────────────────────────────────── */
.ae-nav { display: flex; align-items: center; justify-content: space-between; padding: 28px 64px; border-bottom: 1px solid var(--ae-rule); background: var(--ae-cream); position: sticky; top: 0; z-index: 10; }
.ae-nav nav { display: flex; gap: 36px; font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; }
.ae-nav a { color: var(--ae-ink); text-decoration: none; padding-bottom: 4px; border-bottom: 1px solid transparent; transition: color .2s, border-color .2s; }
.ae-nav a.is-active, .ae-nav a:hover { color: var(--ae-accent); border-bottom-color: var(--ae-accent); }

/* ─── Footer ───────────────────────────────────────────────── */
.ae-footer { padding: 64px 64px 40px; border-top: 1px solid var(--ae-rule); background: var(--ae-cream-deep); }
.ae-footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 64px; padding-bottom: 48px; border-bottom: 1px solid var(--ae-rule); }
.ae-footer-col h6 { font-family: var(--ae-mono); font-size: 10px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--ae-accent); margin: 0 0 16px; }
.ae-footer-col a, .ae-footer-col span { display: block; font-size: 13px; line-height: 2; color: var(--ae-ink); text-decoration: none; }
.ae-footer-legal { padding-top: 24px; display: flex; justify-content: space-between; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ae-muted); }

/* ─── Num tag ──────────────────────────────────────────────── */
.ae-numtag { display: inline-flex; align-items: center; gap: 12px; font-family: var(--ae-mono); font-size: 10px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--ae-accent); }
.ae-numtag .ae-numtag-rule { width: 24px; height: 1px; background: currentColor; opacity: .5; display: inline-block; }

/* ─── Display heading ──────────────────────────────────────── */
.ae-display { font-family: var(--ae-serif); font-weight: 300; font-size: 108px; line-height: 0.95; letter-spacing: -0.025em; margin: 0; }
.ae-display em, .ae-display .ae-italic { font-style: italic; color: var(--ae-accent); font-weight: 300; }
.ae-h2 { font-family: var(--ae-serif); font-weight: 300; font-size: 56px; line-height: 1.05; letter-spacing: -0.02em; margin: 0; }
.ae-h2 em { font-style: italic; }

/* ─── Pull quote ───────────────────────────────────────────── */
.ae-pullquote { font-family: var(--ae-serif); font-weight: 300; font-style: italic; font-size: 56px; line-height: 1.15; letter-spacing: -0.01em; margin: 0; text-wrap: pretty; }
.ae-pullquote-attrib { margin-top: 36px; font-family: var(--ae-mono); font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ae-muted); }

/* ─── Image plate ──────────────────────────────────────────── */
.ae-image-plate { position: relative; }
.ae-image-plate img, .ae-image-plate .ae-image { width: 100%; display: block; aspect-ratio: 4/5; object-fit: cover; }
.ae-image-plate .ae-plate-caption { position: absolute; bottom: -22px; left: -22px; background: var(--ae-cream); padding: 10px 18px; border: 1px solid var(--ae-ink); font-family: var(--ae-mono); font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; }

/* ─── Pillars ──────────────────────────────────────────────── */
.ae-pillar { margin-bottom: 40px; }
.ae-pillar h3 { font-family: var(--ae-serif); font-weight: 400; font-size: 36px; margin: 0 0 12px; letter-spacing: -0.01em; }
.ae-pillar h3 .ae-pillar-num { font-style: italic; color: var(--ae-accent); margin-right: 12px; font-size: 28px; }
.ae-pillar p { font-size: 14px; line-height: 1.7; color: var(--ae-ink-soft); margin: 0; max-width: 480px; }

/* ─── Triptych ─────────────────────────────────────────────── */
.ae-triptych { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ae-triptych > *:nth-child(2) { margin-top: 60px; }
.ae-triptych img { width: 100%; aspect-ratio: 3/4; object-fit: cover; display: block; }

/* ─── Movements grid ───────────────────────────────────────── */
.ae-movements { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--ae-ink); border-bottom: 1px solid var(--ae-ink); }
.ae-movement { padding: 32px 28px; border-right: 1px solid var(--ae-ink); }
.ae-movement:last-child { border-right: none; }
.ae-movement .ae-movement-num { font-family: var(--ae-serif); font-style: italic; font-size: 28px; color: var(--ae-accent); margin-bottom: 18px; }
.ae-movement h4 { font-family: var(--ae-serif); font-weight: 400; font-size: 24px; margin: 0 0 12px; letter-spacing: -0.01em; }
.ae-movement p  { font-size: 13px; line-height: 1.7; color: var(--ae-ink-soft); margin: 0; }

/* ─── Investment table ─────────────────────────────────────── */
.ae-invest-row { display: grid; grid-template-columns: 2fr 1fr 2.4fr; gap: 32px; padding: 28px 0; border-top: 1px solid var(--ae-rule); }
.ae-invest-row:first-child { border-top: 1px solid var(--ae-ink); }
.ae-invest-row h4 { font-family: var(--ae-serif); font-weight: 400; font-size: 24px; letter-spacing: -0.01em; margin: 0; }
.ae-invest-row .ae-invest-range { font-family: var(--ae-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ae-accent); align-self: center; }
.ae-invest-row p { font-size: 13px; line-height: 1.65; color: var(--ae-ink-soft); margin: 0; }
.ae-invest-foot { border-top: 1px solid var(--ae-ink); }

/* ─── Perks panel ──────────────────────────────────────────── */
.ae-perks { background: var(--ae-cream-deep); padding: 56px 64px; display: grid; grid-template-columns: 1fr 2fr; gap: 64px; align-items: center; }
.ae-perks-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.ae-perks-list li { list-style: none; font-size: 14px; padding: 14px 0; border-bottom: 1px solid var(--ae-rule); display: flex; align-items: center; gap: 12px; }
.ae-perks-list li::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--ae-accent); }

/* ─── Journey card ─────────────────────────────────────────── */
.ae-journey-card .ae-journey-img { position: relative; overflow: hidden; }
.ae-journey-card .ae-journey-img img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.ae-journey-card .ae-journey-idx { position: absolute; top: 16px; left: 16px; font-family: var(--ae-mono); font-size: 10px; letter-spacing: 0.24em; color: var(--ae-cream); mix-blend-mode: difference; }
.ae-journey-card .ae-journey-meta { margin-top: 24px; display: flex; justify-content: space-between; font-family: var(--ae-mono); font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ae-muted); }
.ae-journey-card h3 { font-family: var(--ae-serif); font-weight: 400; font-size: 36px; margin: 14px 0 12px; letter-spacing: -0.01em; }
.ae-journey-card p { font-size: 14px; line-height: 1.7; color: var(--ae-ink-soft); margin: 0; }
.ae-journey-card .ae-journey-cta { display: inline-block; margin-top: 20px; font-family: var(--ae-mono); font-size: 10px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--ae-accent); border-bottom: 1px solid var(--ae-accent); padding-bottom: 3px; text-decoration: none; }

/* ─── Article cards ────────────────────────────────────────── */
.ae-featured-article { display: grid; grid-template-columns: 7fr 5fr; gap: 56px; align-items: center; }
.ae-featured-article img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.ae-featured-article .ae-tag { font-family: var(--ae-mono); font-size: 10px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--ae-accent); }
.ae-featured-article h2 { font-family: var(--ae-serif); font-weight: 300; font-size: 52px; line-height: 1.1; letter-spacing: -0.01em; margin: 20px 0; }
.ae-featured-article p  { font-size: 15px; line-height: 1.8; color: var(--ae-ink-soft); margin: 0 0 28px; }
.ae-featured-article .ae-meta { display: flex; gap: 24px; font-family: var(--ae-mono); font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ae-muted); }

.ae-article-card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.ae-article-card .ae-tag { margin-top: 16px; font-family: var(--ae-mono); font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ae-accent); }
.ae-article-card h3 { font-family: var(--ae-serif); font-weight: 400; font-size: 26px; line-height: 1.2; margin: 10px 0 12px; letter-spacing: -0.005em; }
.ae-article-card .ae-meta { font-family: var(--ae-mono); font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ae-muted); }

/* ─── Filter bar ───────────────────────────────────────────── */
.ae-filter-bar { display: flex; gap: 24px; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ae-muted); flex-wrap: wrap; }
.ae-filter-bar a { color: var(--ae-muted); text-decoration: none; cursor: pointer; padding-bottom: 3px; }
.ae-filter-bar a.is-active { color: var(--ae-ink); border-bottom: 1px solid var(--ae-ink); }

/* ─── Founder letter ───────────────────────────────────────── */
.ae-letter .ae-letter-eyebrow { font-family: var(--ae-mono); font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--ae-accent); margin-bottom: 24px; }
.ae-letter p:first-of-type { font-family: var(--ae-serif); font-weight: 300; font-size: 26px; line-height: 1.45; font-style: italic; margin: 0 0 28px; }
.ae-letter p:first-of-type .ae-dropcap { float: left; font-style: italic; font-size: 64px; line-height: 0.85; padding-right: 10px; padding-top: 4px; color: var(--ae-accent); }
.ae-letter p { font-size: 15px; line-height: 1.85; color: var(--ae-ink-soft); margin: 0 0 20px; }
.ae-letter .ae-letter-sig { margin-top: 36px; font-family: var(--ae-serif); font-style: italic; font-size: 28px; }
.ae-letter .ae-letter-role { margin-top: 6px; font-family: var(--ae-mono); font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ae-muted); }

/* ─── Convictions / movements share styling ───────────────── */
.ae-convictions { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--ae-ink); border-bottom: 1px solid var(--ae-ink); }
.ae-conviction { padding: 32px 28px; border-right: 1px solid var(--ae-ink); }
.ae-conviction:last-child { border-right: none; }
.ae-conviction .ae-c-num { font-family: var(--ae-serif); font-style: italic; font-size: 30px; color: var(--ae-accent); margin-bottom: 18px; }
.ae-conviction h4 { font-family: var(--ae-serif); font-weight: 400; font-size: 24px; margin: 0 0 12px; }
.ae-conviction p  { font-size: 13px; line-height: 1.7; color: var(--ae-ink-soft); margin: 0; }

/* ─── Stat block ───────────────────────────────────────────── */
.ae-stat { padding-top: 24px; border-top: 1px solid var(--ae-accent); }
.ae-stat .ae-stat-k { font-family: var(--ae-serif); font-weight: 300; font-size: 72px; line-height: 1; letter-spacing: -0.02em; }
.ae-stat .ae-stat-v { margin-top: 12px; font-family: var(--ae-mono); font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ae-muted); }

/* ─── Press list ───────────────────────────────────────────── */
.ae-press-list { margin: 0; padding: 0; list-style: none; }
.ae-press-list li { padding: 20px 0; border-top: 1px solid var(--ae-rule); display: flex; justify-content: space-between; align-items: baseline; }
.ae-press-list li:first-child { border-top: 1px solid var(--ae-ink); }
.ae-press-list .ae-press-name { font-family: var(--ae-serif); font-weight: 400; font-size: 26px; letter-spacing: -0.005em; }
.ae-press-list .ae-press-period { font-family: var(--ae-mono); font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ae-muted); }

/* ─── Testimonial ──────────────────────────────────────────── */
.ae-testimonial { background: var(--ae-cream-deep); padding: 88px 80px; display: grid; grid-template-columns: 1fr 2fr; gap: 64px; align-items: center; }
.ae-testimonial img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; }
.ae-testimonial .ae-t-eyebrow { font-family: var(--ae-mono); font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--ae-accent); margin-bottom: 24px; }
.ae-testimonial blockquote { font-family: var(--ae-serif); font-weight: 300; font-style: italic; font-size: 36px; line-height: 1.25; margin: 0; text-wrap: pretty; }
.ae-testimonial .ae-t-attrib { margin-top: 32px; font-family: var(--ae-mono); font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ae-muted); }

/* ─── Inquire sidebar ──────────────────────────────────────── */
.ae-inquire-sidebar img { width: 100%; aspect-ratio: 3/4; object-fit: cover; display: block; }
.ae-inquire-sidebar .ae-side-block { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--ae-rule); }
.ae-inquire-sidebar .ae-side-block:first-of-type { border-top-color: var(--ae-ink); }
.ae-inquire-sidebar h6 { font-family: var(--ae-mono); font-size: 10px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--ae-accent); margin: 0 0 16px; }
.ae-inquire-sidebar p { font-size: 13px; color: var(--ae-ink-soft); line-height: 2; margin: 0; }
.ae-inquire-sidebar ol { list-style: none; margin: 0; padding: 0; font-size: 13px; color: var(--ae-ink-soft); line-height: 1.9; }
.ae-inquire-sidebar ol li { display: flex; gap: 14px; padding: 8px 0; border-bottom: 1px dashed var(--ae-rule); }
.ae-inquire-sidebar ol li:last-child { border-bottom: none; }
.ae-inquire-sidebar ol li span { font-family: var(--ae-mono); color: var(--ae-accent); font-size: 11px; }

/* ─── Form ─────────────────────────────────────────────────── */
.ae-form { background: var(--ae-cream-deep); padding: 56px; border: 1px solid var(--ae-rule); color: var(--ae-ink); }
.ae-form .ae-form-grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 28px; row-gap: 24px; }
.ae-form label { display: block; }
.ae-form .ae-form-label { font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ae-muted); margin-bottom: 4px; display: block; }
.ae-form input, .ae-form textarea { width: 100%; background: transparent; border: none; border-bottom: 1px solid var(--ae-rule); padding: 10px 0; font-size: 14px; font-family: inherit; color: var(--ae-ink); outline: none; transition: border-color .25s; }
.ae-form input:focus, .ae-form textarea:focus { border-bottom-color: var(--ae-accent); }
.ae-form textarea { resize: none; padding-top: 12px; }
.ae-form .ae-form-fullwidth { grid-column: span 2; }
.ae-form-foot { margin-top: 36px; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.ae-form-fineprint { font-size: 11px; color: var(--ae-muted); line-height: 1.6; max-width: 320px; }

/* ─── CTA link button ──────────────────────────────────────── */
.ae-cta { display: inline-block; padding: 14px 36px; border: 1px solid var(--ae-accent); font-family: var(--ae-sans); font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--ae-ink); text-decoration: none; cursor: pointer; transition: all .25s; background: transparent; }
.ae-cta:hover { background: var(--ae-accent); color: var(--ae-cream); }
.ae-cta--solid { background: var(--ae-accent); color: var(--ae-cream); }
.ae-cta--solid:hover { background: transparent; color: var(--ae-ink); }

/* ─── Section wrapper ──────────────────────────────────────── */
.ae-section { padding: 96px 64px; }
.ae-section--cream      { background: var(--ae-cream); }
.ae-section--cream-deep { background: var(--ae-cream-deep); border-top: 1px solid var(--ae-rule); border-bottom: 1px solid var(--ae-rule); }
.ae-section--ink        { background: var(--ae-ink); color: var(--ae-cream); }

/* ─── LIBRARY: hero variants ───────────────────────────────── */
.lib-hero-split { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; padding: 96px 64px; }
.lib-hero-centered { text-align: center; padding: 120px 64px; }
.lib-hero-image-bg { position: relative; min-height: 80vh; display: flex; align-items: flex-end; padding: 64px; color: var(--ae-cream); }
.lib-hero-image-bg::before { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(26,23,20,.7), rgba(26,23,20,0) 50%); z-index: 1; }
.lib-hero-image-bg .lib-hero-bg { position: absolute; inset: 0; object-fit: cover; width: 100%; height: 100%; z-index: 0; }
.lib-hero-image-bg .lib-hero-content { position: relative; z-index: 2; max-width: 720px; }

/* ─── LIBRARY: eyebrow ─────────────────────────────────────── */
.lib-eyebrow { font-family: var(--ae-mono); font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--ae-accent); display: inline-block; }

/* ─── LIBRARY: pull quote ──────────────────────────────────── */
.lib-pullquote { font-family: var(--ae-serif); font-style: italic; font-weight: 300; font-size: 44px; line-height: 1.25; }
.lib-pullquote-attrib { margin-top: 16px; font-family: var(--ae-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ae-muted); }

/* ─── LIBRARY: stat counter ────────────────────────────────── */
.lib-stat { text-align: center; padding: 24px; }
.lib-stat-num { font-family: var(--ae-serif); font-weight: 300; font-size: 64px; color: var(--ae-accent); line-height: 1; }
.lib-stat-lbl { margin-top: 12px; font-family: var(--ae-mono); font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ae-muted); }

/* ─── LIBRARY: feature card ────────────────────────────────── */
.lib-feature { padding: 32px; background: var(--ae-cream); border: 1px solid var(--ae-rule); transition: transform .3s, box-shadow .3s; }
.lib-feature:hover { transform: translateY(-4px); box-shadow: 0 8px 24px rgba(0,0,0,.06); }
.lib-feature .lib-feature-icon { width: 40px; height: 40px; color: var(--ae-accent); margin-bottom: 18px; }
.lib-feature h3 { font-family: var(--ae-serif); font-size: 24px; font-weight: 400; margin: 0 0 12px; }
.lib-feature p { font-size: 14px; line-height: 1.7; color: var(--ae-ink-soft); margin: 0; }
.lib-feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }

/* ─── LIBRARY: pricing ─────────────────────────────────────── */
.lib-pricing { padding: 48px 36px; background: var(--ae-cream); border: 1px solid var(--ae-rule); text-align: center; }
.lib-pricing.is-featured { background: var(--ae-cream-deep); border-color: var(--ae-accent); }
.lib-pricing h3 { font-family: var(--ae-serif); font-size: 28px; font-weight: 400; margin: 0 0 8px; }
.lib-pricing .lib-pricing-amt { font-family: var(--ae-serif); font-size: 56px; font-weight: 300; color: var(--ae-accent); line-height: 1; margin: 24px 0; }
.lib-pricing ul { list-style: none; padding: 0; margin: 24px 0; font-size: 14px; line-height: 2; color: var(--ae-ink-soft); }
.lib-pricing-table { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }

/* ─── LIBRARY: testimonial card ────────────────────────────── */
.lib-testimonial-card { padding: 32px; background: var(--ae-cream); border: 1px solid var(--ae-rule); }
.lib-testimonial-card blockquote { font-family: var(--ae-serif); font-style: italic; font-size: 22px; line-height: 1.4; margin: 0 0 24px; }
.lib-testimonial-card .lib-t-author { display: flex; align-items: center; gap: 16px; }
.lib-testimonial-card .lib-t-avatar { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.lib-testimonial-card .lib-t-name { font-weight: 500; font-size: 14px; }
.lib-testimonial-card .lib-t-role { font-size: 12px; color: var(--ae-muted); }

/* ─── LIBRARY: logo cloud ──────────────────────────────────── */
.lib-logo-cloud { display: flex; gap: 48px; justify-content: center; align-items: center; flex-wrap: wrap; padding: 40px 0; }
.lib-logo-cloud img { height: 32px; width: auto; opacity: .55; filter: grayscale(100%); transition: opacity .3s, filter .3s; }
.lib-logo-cloud img:hover { opacity: 1; filter: none; }

/* ─── LIBRARY: image with caption ──────────────────────────── */
.lib-img-caption figcaption { margin-top: 12px; font-family: var(--ae-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ae-muted); }

/* ─── LIBRARY: image mosaic ────────────────────────────────── */
.lib-mosaic { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.lib-mosaic img { width: 100%; height: 200px; object-fit: cover; display: block; }
.lib-mosaic img:nth-child(3n) { grid-row: span 2; height: 412px; }

/* ─── LIBRARY: card link ───────────────────────────────────── */
.lib-card-link { display: block; text-decoration: none; color: inherit; }
.lib-card-link img { width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block; transition: transform .8s ease; }
.lib-card-link:hover img { transform: scale(1.04); }
.lib-card-link h3 { font-family: var(--ae-serif); font-size: 28px; font-weight: 400; margin: 16px 0 8px; }
.lib-card-link .lib-card-arrow { font-family: var(--ae-mono); font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--ae-accent); }

/* ─── LIBRARY: text+image split ────────────────────────────── */
.lib-split { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.lib-split.is-reversed > :first-child { order: 2; }
.lib-split img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; }

/* ─── LIBRARY: CTA banner ──────────────────────────────────── */
.lib-cta-banner { padding: 96px 64px; text-align: center; background: var(--ae-cream-deep); border-top: 1px solid var(--ae-rule); border-bottom: 1px solid var(--ae-rule); }
.lib-cta-banner h2 { font-family: var(--ae-serif); font-weight: 300; font-size: 56px; margin: 0 0 24px; line-height: 1.1; }

/* ─── LIBRARY: newsletter ──────────────────────────────────── */
.lib-newsletter { display: flex; gap: 12px; max-width: 520px; }
.lib-newsletter input { flex: 1; background: transparent; border: 1px solid var(--ae-rule); padding: 14px 18px; font-size: 14px; font-family: inherit; color: var(--ae-ink); outline: none; transition: border-color .2s; }
.lib-newsletter input:focus { border-color: var(--ae-accent); }
.lib-newsletter button { padding: 14px 28px; background: var(--ae-accent); color: var(--ae-cream); border: none; font-family: var(--ae-sans); font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase; cursor: pointer; transition: opacity .2s; }
.lib-newsletter button:hover { opacity: .85; }

/* ─── LIBRARY: FAQ accordion ───────────────────────────────── */
.lib-faq details { border-top: 1px solid var(--ae-rule); padding: 24px 0; }
.lib-faq details:last-child { border-bottom: 1px solid var(--ae-rule); }
.lib-faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; font-family: var(--ae-serif); font-size: 22px; font-weight: 400; }
.lib-faq summary::-webkit-details-marker { display: none; }
.lib-faq summary::after { content: '+'; font-family: var(--ae-serif); font-size: 32px; color: var(--ae-accent); transition: transform .2s; }
.lib-faq details[open] summary::after { content: '–'; }
.lib-faq .lib-faq-body { margin-top: 16px; font-size: 14px; line-height: 1.7; color: var(--ae-ink-soft); }

/* ─── LIBRARY: tabs ────────────────────────────────────────── */
.lib-tabs { }
.lib-tabs-nav { display: flex; gap: 32px; border-bottom: 1px solid var(--ae-rule); padding-bottom: 16px; margin-bottom: 32px; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; }
.lib-tabs-nav button { background: transparent; border: none; cursor: pointer; padding: 0 0 4px; color: var(--ae-muted); border-bottom: 1px solid transparent; }
.lib-tabs-nav button.is-active { color: var(--ae-ink); border-bottom-color: var(--ae-accent); }
.lib-tab-panel[hidden] { display: none; }

/* ─── LIBRARY: process steps ───────────────────────────────── */
.lib-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; counter-reset: step; }
.lib-step { counter-increment: step; }
.lib-step::before { content: counter(step, decimal-leading-zero); font-family: var(--ae-mono); font-size: 32px; color: var(--ae-accent); display: block; margin-bottom: 16px; }
.lib-step h4 { font-family: var(--ae-serif); font-size: 22px; font-weight: 400; margin: 0 0 8px; }
.lib-step p { font-size: 13px; line-height: 1.7; color: var(--ae-ink-soft); margin: 0; }

/* ─── LIBRARY: team card ───────────────────────────────────── */
.lib-team-card { text-align: center; }
.lib-team-card img { width: 100%; aspect-ratio: 3/4; object-fit: cover; display: block; margin-bottom: 16px; }
.lib-team-card h4 { font-family: var(--ae-serif); font-size: 24px; font-weight: 400; margin: 0 0 4px; }
.lib-team-card .lib-team-role { font-family: var(--ae-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ae-muted); }

/* ─── LIBRARY: social links ────────────────────────────────── */
.lib-social { display: flex; gap: 18px; }
.lib-social a { color: var(--ae-ink); transition: color .2s; }
.lib-social a:hover { color: var(--ae-accent); }
.lib-social svg { width: 18px; height: 18px; }

/* ─── LIBRARY: divider ─────────────────────────────────────── */
.lib-divider { display: flex; align-items: center; gap: 16px; }
.lib-divider::before, .lib-divider::after { content: ''; flex: 1; height: 1px; background: var(--ae-rule); }
.lib-divider .lib-divider-mark { font-family: var(--ae-serif); font-style: italic; color: var(--ae-accent); }

/* ─── LIBRARY: marquee ─────────────────────────────────────── */
.lib-marquee { overflow: hidden; padding: 24px 0; border-top: 1px solid var(--ae-rule); border-bottom: 1px solid var(--ae-rule); }
.lib-marquee-track { display: inline-flex; gap: 64px; animation: ae-marquee 40s linear infinite; white-space: nowrap; font-family: var(--ae-serif); font-size: 56px; font-style: italic; color: var(--ae-accent); }
@keyframes ae-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ─── Responsive ───────────────────────────────────────────── */
@media (max-width: 1100px) {
	.ae-display { font-size: 72px; }
	.ae-h2 { font-size: 40px; }
	.ae-pullquote, .ae-testimonial blockquote { font-size: 32px; }
	.ae-footer-grid, .ae-perks, .ae-testimonial, .ae-featured-article, .ae-movements, .ae-convictions, .ae-triptych { grid-template-columns: 1fr !important; }
	.lib-feature-grid, .lib-pricing-table, .lib-mosaic, .lib-steps { grid-template-columns: repeat(2, 1fr); }
	.lib-hero-split, .lib-split { grid-template-columns: 1fr; gap: 32px; }
	.ae-section, .ae-nav, .ae-footer, .ae-perks, .lib-cta-banner, .lib-hero-split, .lib-hero-centered { padding-left: 28px; padding-right: 28px; }
}
@media (max-width: 700px) {
	.ae-display { font-size: 48px; }
	.ae-form .ae-form-grid { grid-template-columns: 1fr; }
	.ae-form .ae-form-fullwidth { grid-column: span 1; }
	.lib-feature-grid, .lib-pricing-table, .lib-mosaic, .lib-steps { grid-template-columns: 1fr; }
}
