/*
 * Thought.global — Finishing the edges: search, the Schools pages and the not-found page.
 * Scoped to body.thf-page / main.thf; loaded only on those surfaces. Tokens and components are copied
 * from the homepage family (Living Universe), never its files.
 */

@font-face {
	font-family: "Thought Display";
	src: url("../../home/assets/fonts/fraunces-latin-var.woff2") format("woff2");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

body.thf-page {
	--thf-night-0: #060a15; --thf-night-1: #0b1426; --thf-night-2: #121d36; --thf-line: #2a3a5e;
	--thf-plum: #241a33;
	--thf-gold: #c9a35e; --thf-gold-hi: #e3c58c; --thf-gold-ink: #7a5a20;
	--thf-parch: #f4efe4; --thf-parch-2: #ece4d4; --thf-paper: #fffdf8; --thf-ink: #1d1a26; --thf-ink-2: #4a4453; --thf-ink-3: #676070; --thf-rule: #ddd3c0;
	--thf-bone: #f1ede4; --thf-bone-2: #d2cbbb; --thf-bone-3: #a6aec0; --thf-moon: #f3ead2;
	--thf-display: "Thought Display", "Iowan Old Style", Baskerville, Georgia, "Times New Roman", serif;
	--thf-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--thf-ease: cubic-bezier(.2, .7, .2, 1);
	--thf-gutter: clamp(18px, 4vw, 48px);
	background: var(--thf-parch);
}

/* ---------- the shared nav, in night (same markup, links and behaviour; as on the Universe pages) ---------- */
body.thf-page.flavor-thought .sh-thought-nav { background: rgba(6, 10, 21, .92); color: var(--thf-bone); border-bottom: 1px solid rgba(241, 237, 228, .08); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
body.thf-page.flavor-thought .sh-thought-nav a,
body.thf-page.flavor-thought .sh-thought-nav-links > li > a,
body.thf-page.flavor-thought .sh-thought-nav-group-link,
body.thf-page.flavor-thought .sh-thought-nav-group-toggle,
body.thf-page.flavor-thought .sh-thought-nav-group-label { color: var(--thf-bone) !important; }
body.thf-page.flavor-thought .sh-thought-nav-brand { font-family: var(--thf-display) !important; font-weight: 450; }
body.thf-page.flavor-thought .sh-thought-nav-links a:hover,
body.thf-page.flavor-thought .sh-thought-nav-links a:focus,
body.thf-page.flavor-thought .sh-thought-nav-group-link:hover,
body.thf-page.flavor-thought .sh-thought-nav-group-toggle:hover,
body.thf-page.flavor-thought .sh-thought-nav-group.is-open .sh-thought-nav-group-toggle { background: rgba(241, 237, 228, .09); }
body.thf-page.flavor-thought .sh-thought-nav-links > li > a[aria-current="page"],
body.thf-page.flavor-thought .sh-thought-nav-group.is-current > .sh-thought-nav-split { background: rgba(241, 237, 228, .1); box-shadow: inset 0 -2px 0 var(--thf-gold); }
body.thf-page.flavor-thought .sh-thought-nav-menu a,
body.thf-page.flavor-thought .sh-thought-nav-menu a strong { color: var(--thought-ink, #191918) !important; }
body.thf-page.flavor-thought .sh-thought-nav-search input { background: rgba(241, 237, 228, .06) !important; border-color: rgba(241, 237, 228, .24) !important; color: var(--thf-bone) !important; }
body.thf-page.flavor-thought .sh-thought-nav-search input::placeholder { color: var(--thf-bone-3); }
body.thf-page.flavor-thought .sh-thought-nav-search button { background: var(--thf-gold) !important; border-color: var(--thf-gold) !important; color: var(--thf-night-0) !important; }
body.thf-page.flavor-thought .sh-thought-nav.is-enhanced .sh-thought-nav-toggle { background: rgba(241, 237, 228, .06); border-color: rgba(241, 237, 228, .3); color: var(--thf-bone); }
body.thf-page.flavor-thought .sh-thought-nav :focus-visible { outline: 2px solid var(--thf-gold-hi) !important; outline-offset: 2px; }
@media (max-width: 1023px) {
	body.thf-page.flavor-thought .sh-thought-nav-menu { background: transparent; }
	body.thf-page.flavor-thought .sh-thought-nav-menu a, body.thf-page.flavor-thought .sh-thought-nav-menu a strong { color: var(--thf-bone) !important; }
	body.thf-page.flavor-thought .sh-thought-nav-menu a span { color: var(--thf-bone-3) !important; }
	/* thought-profile.css gives each menu tile a light card at this width; keep it night so bone labels stay readable */
	body.thf-page.flavor-thought .sh-thought-nav-menu a { background: rgba(241, 237, 228, .06) !important; box-shadow: inset 0 0 0 1px rgba(241, 237, 228, .1); }
	body.thf-page.flavor-thought .sh-thought-nav-menu a:hover, body.thf-page.flavor-thought .sh-thought-nav-menu a:focus-visible { background: rgba(241, 237, 228, .11) !important; }
	body.thf-page.flavor-thought .sh-thought-nav-menu a[aria-current="page"] { background: rgba(241, 237, 228, .12) !important; box-shadow: inset 3px 0 0 #c9a35e, inset 0 0 0 1px rgba(241, 237, 228, .12); }
}

/* ---------- foundation ---------- */
/* ai/ai-styles.css caps main#content at 1200px / 92vw site-wide; these pages are full-bleed. */
body.thf-page main#content.thf { width: auto; max-width: none; margin: 0; padding: 0; }
.thf:focus { outline: none; }
.thf { display: block; overflow-x: clip; color: var(--thf-ink); background: var(--thf-parch); font: 400 17px/1.6 var(--thf-sans); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
.thf *, .thf *::before, .thf *::after { box-sizing: border-box; }
.thf img { max-width: 100%; display: block; }
.thf a { color: inherit; }
.thf :focus-visible { outline: 2px solid var(--thf-gold-ink) !important; outline-offset: 3px; border-radius: 6px; }
.thf .thf-hero :focus-visible, .thf .thf-sec--night :focus-visible { outline-color: var(--thf-gold-hi) !important; }
.thf .thf-wrap { width: min(1200px, 100% - 2 * var(--thf-gutter)); margin-inline: auto; }
.thf [id] { scroll-margin-top: 84px; }
.thf h1, .thf h2, .thf h3 { margin: 0; font-family: var(--thf-display); font-weight: 420; font-variation-settings: "SOFT" 50, "WONK" 0, "opsz" 96; letter-spacing: -.012em; text-wrap: balance; color: inherit; text-transform: none; }
.thf h2 { font-size: clamp(1.9rem, 1.2rem + 2.2vw, 3rem); line-height: 1.06; }
.thf h3 { font-size: clamp(1.1rem, 1rem + .4vw, 1.32rem); line-height: 1.25; font-variation-settings: "SOFT" 30, "opsz" 36; }
.thf p { margin: 0; }
.thf ul, .thf ol { margin: 0; padding: 0; list-style: none; }
.thf li { margin: 0; }
.thf .screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.thf .thf-eyebrow { display: inline-flex; align-items: center; gap: .55em; margin: 0 0 14px; font: 700 12.5px/1.25 var(--thf-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--thf-gold-ink); }
.thf .thf-eyebrow .thf-ic, .thf .thf-eyebrow .thf-glyph { width: 1.25em; height: 1.25em; }
.thf .thf-lead { max-width: 64ch; margin-top: 14px; font-size: clamp(1.03rem, .98rem + .28vw, 1.16rem); line-height: 1.62; color: var(--thf-ink-2); }
.thf .thf-meta { color: var(--thf-ink-3); font: 600 12.5px/1.4 var(--thf-sans); letter-spacing: .02em; }
.thf .thf-note { margin-top: 22px; max-width: 70ch; color: var(--thf-ink-3); font: 500 13.5px/1.55 var(--thf-sans); }
.thf .thf-glyph { width: 1.2em; height: 1.2em; flex: none; fill: currentColor; }
.thf .thf-glyph .sh-brain-glyph__ring, .thf .thf-glyph .ring, .thf .thf-glyph .stroke { fill: none; stroke: currentColor; stroke-width: 1.6; }
.thf .thf-glyph .sh-brain-glyph__open { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-dasharray: 4.2 3.6; }
.thf .thf-glyph .sh-brain-glyph__cut { fill: none; stroke: var(--thf-cut, var(--thf-parch)); stroke-width: 1.6; stroke-linecap: round; }
.thf .thf-ic { flex: none; }
.thf .thf-mark { padding: 0 .08em; border-radius: 3px; background: rgba(227, 197, 140, .5); color: inherit; box-shadow: inset 0 -1px 0 rgba(122, 90, 32, .45); }

/* Buttons (prefixed past the Elementor kit's bare button rules) */
.thf .thf-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.thf .thf-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5em; min-height: 50px; margin: 0; padding: 0 24px; border-radius: 999px; border: 1.5px solid transparent; font: 650 15px/1 var(--thf-sans); text-decoration: none; white-space: nowrap; cursor: pointer; transition: transform .18s var(--thf-ease), background-color .18s var(--thf-ease), border-color .18s var(--thf-ease), color .18s var(--thf-ease); }
.thf .thf-btn .thf-ic { width: 18px; height: 18px; }
.thf .thf-btn.thf-btn--sm { min-height: 44px; padding: 0 18px; font-size: 14px; }
.thf .thf-actions .thf-btn:hover, .thf .thf-btn.thf-btn:hover { transform: translateY(-2px); }
.thf .thf-btn.thf-btn--moon, .thf .thf-btn.thf-btn--moon:focus { background: var(--thf-moon); color: var(--thf-night-1); border-color: var(--thf-moon); }
.thf .thf-btn.thf-btn--moon:hover { background: #fff7e2; color: var(--thf-night-1); border-color: #fff7e2; }
.thf .thf-btn.thf-btn--line, .thf .thf-btn.thf-btn--line:focus { border-color: rgba(241, 237, 228, .42); color: var(--thf-bone); background: rgba(241, 237, 228, .04); }
.thf .thf-btn.thf-btn--line:hover { border-color: var(--thf-bone); background: rgba(241, 237, 228, .1); color: var(--thf-bone); }
.thf .thf-btn.thf-btn--ink, .thf .thf-btn.thf-btn--ink:focus { background: var(--thf-ink); color: var(--thf-parch); border-color: var(--thf-ink); }
.thf .thf-btn.thf-btn--ink:hover { background: #2c2838; color: var(--thf-parch); border-color: #2c2838; }
.thf .thf-btn.thf-btn--paper, .thf .thf-btn.thf-btn--paper:focus { border-color: #b4a891; color: var(--thf-ink); background: transparent; }
.thf .thf-btn.thf-btn--paper:hover { border-color: var(--thf-ink); color: var(--thf-ink); background: rgba(29, 26, 38, .05); }
.thf .thf-more { margin-top: 28px; }

/* ---------- hero: the night, its sky and one motif ---------- */
.thf .thf-hero { position: relative; isolation: isolate; overflow: hidden; color: var(--thf-bone); background: radial-gradient(900px 520px at 78% 18%, rgba(161, 137, 207, .16), transparent 60%), radial-gradient(700px 380px at 10% 0%, rgba(111, 155, 214, .12), transparent 62%), linear-gradient(180deg, var(--thf-night-0), var(--thf-night-1) 70%, var(--thf-night-2)); padding: clamp(46px, 6vw, 92px) 0 clamp(120px, 12vw, 168px); }
.thf .thf-sky { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; }
.thf .thf-star { fill: var(--thf-bone); }
.thf .thf-star--1 { opacity: .9; } .thf .thf-star--2 { opacity: .55; } .thf .thf-star--3 { opacity: .28; }
.thf .thf-thread { fill: none; stroke: var(--thf-gold); stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; opacity: .8; }
.thf .thf-node { fill: var(--thf-gold-hi); }
.thf .thf-cons--handle .thf-thread { stroke-width: 2.2; }
.thf .thf-lens-inner circle { fill: var(--thf-bone); opacity: .7; }
.thf .thf-thread--open { stroke-dasharray: .05 .04; opacity: .6; }
.thf .thf-missing { fill: none; stroke: var(--thf-gold-hi); stroke-width: 1.6; stroke-dasharray: 5 4.5; opacity: .9; }
.thf .thf-shelf { fill: none; stroke: rgba(201, 163, 94, .4); stroke-width: 1.2; }
.thf .thf-ridge--far { fill: #101a31; }
.thf .thf-ridge--near { fill: #0c1528; }
.thf .thf-hero-in { position: relative; }
.thf .thf-hero .thf-eyebrow { color: var(--thf-gold); }
/* Hero h1 and its one illuminated word (design language §3) */
.thf .thf-hero h1 { max-width: 16ch; font-size: clamp(2.4rem, 1.15rem + 4.1vw, 4.7rem); line-height: 1.02; font-weight: 380; font-variation-settings: "SOFT" 70, "opsz" 144; letter-spacing: -.02em; color: var(--thf-bone); }
.thf .thf-hero h1 em { font-style: normal; font-weight: 420; font-variation-settings: "SOFT" 100, "WONK" 1, "opsz" 144; color: var(--thf-gold-hi); }
.thf .thf-hero h1 q { quotes: "“" "”" "‘" "’"; overflow-wrap: anywhere; }
.thf .thf-ai-note { display: flex; align-items: flex-start; gap: 10px; max-width: 64ch; margin-top: 16px; color: var(--thf-bone-3); font: 500 14px/1.55 var(--thf-sans); }
.thf .thf-ai-note .thf-glyph { width: 18px; height: 18px; margin-top: 2px; color: var(--thf-gold); }
.thf .thf-hero .thf-h1-pre { display: block; margin-bottom: .2em; color: var(--thf-bone-3); font: 500 .38em/1.2 var(--thf-sans); letter-spacing: .01em; }
.thf .thf-hero .thf-lead { color: var(--thf-bone-2); }
.thf .thf-hero .thf-scope { max-width: 70ch; margin-top: 14px; color: var(--thf-bone-3); font: 500 14px/1.55 var(--thf-sans); }
.thf .thf-hero .thf-scope a { color: var(--thf-bone); text-decoration: underline; text-decoration-color: rgba(201, 163, 94, .6); text-underline-offset: 3px; }
.thf .thf-hero .thf-scope a:hover { text-decoration-color: var(--thf-gold-hi); }
.thf .thf-crumbs { margin-bottom: 26px; }
.thf .thf-crumbs ol { display: flex; flex-wrap: wrap; gap: 6px 10px; font: 600 13px/1.4 var(--thf-sans); color: var(--thf-bone-3); }
.thf .thf-crumbs li { min-width: 0; }
.thf .thf-crumbs li + li::before { content: "/"; margin-right: 10px; color: var(--thf-bone-3); }
.thf .thf-crumbs a { color: var(--thf-bone-2); text-decoration: none; }
.thf .thf-crumbs a:hover { color: var(--thf-gold-hi); text-decoration: underline; text-underline-offset: 3px; }
.thf .thf-crumbs [aria-current] { display: inline-block; max-width: 46ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; color: var(--thf-bone); }
.thf .thf-seam { position: absolute; left: 0; right: 0; bottom: -1px; height: clamp(40px, 6vw, 84px); pointer-events: none; }
.thf .thf-seam svg { display: block; width: 100%; height: 100%; transform: scaleY(-1); }
.thf .thf-seam path { fill: var(--thf-parch); }

/* the motif arrives once (finite), drawn without JS or under reduced motion */
@keyframes thf-draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes thf-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes thf-tw { 0%, 100% { opacity: .9; } 50% { opacity: .2; } }
@media (prefers-reduced-motion: no-preference) {
	html.thf-js .thf .thf-motif .thf-thread:not(.thf-thread--open) { stroke-dasharray: 1 1; animation: thf-draw 2.2s var(--thf-ease) .3s both; }
	html.thf-js .thf .thf-motif .thf-node, html.thf-js .thf .thf-missing, html.thf-js .thf .thf-thread--open, html.thf-js .thf .thf-lens-inner { animation: thf-fade 1.2s var(--thf-ease) 1.4s both; }
	html.thf-js .thf .thf-star.is-tw { animation: thf-tw 3.8s ease-in-out var(--d, 0s) 3; }
	.thf .thf-person, .thf .thf-essay, .thf .thf-school, .thf .thf-door { transition: transform .2s var(--thf-ease), box-shadow .2s var(--thf-ease), border-color .2s var(--thf-ease); }
}

/* ---------- the search field ---------- */
.thf .thf-search { max-width: 720px; margin-top: 30px; }
.thf .thf-search-label { display: block; margin-bottom: 10px; color: var(--thf-bone-2); font: 650 13px/1.3 var(--thf-sans); letter-spacing: .04em; }
.thf .thf-search-row { position: relative; display: flex; align-items: center; gap: 8px; padding: 6px 6px 6px 18px; border: 1.5px solid rgba(201, 163, 94, .5); border-radius: 999px; background: rgba(241, 237, 228, .06); transition: border-color .2s, box-shadow .2s; }
.thf .thf-search-row:focus-within { border-color: var(--thf-gold-hi); box-shadow: 0 0 0 4px rgba(227, 197, 140, .18); }
.thf .thf-search-row > .thf-ic { width: 20px; height: 20px; color: var(--thf-gold); }
.thf .thf-search-row input[type="search"] { flex: 1; min-width: 0; height: 48px; margin: 0; padding: 0 4px; border: 0 !important; border-radius: 0; background: transparent !important; box-shadow: none !important; color: var(--thf-bone) !important; font: 500 17px/1 var(--thf-sans); outline: none !important; }
.thf .thf-search-row input[type="search"]::placeholder { color: var(--thf-bone-3); opacity: 1; }
.thf .thf-search-row input[type="search"]::-webkit-search-cancel-button { filter: invert(.8); }
.thf .thf-search-row .thf-btn { min-height: 48px; }
.thf .thf-search-row .thf-btn.is-pending { cursor: progress; opacity: .85; }
.thf .thf-sec--paper .thf-search-label, .thf .thf-sec--paper2 .thf-search-label { color: var(--thf-ink-2); }

/* ---------- jump nav ---------- */
.thf .thf-jump { position: relative; z-index: 1; margin-top: -10px; padding: 0 0 6px; }
.thf .thf-jump ul { display: flex; flex-wrap: wrap; gap: 8px; }
.thf .thf-jump a, .thf .thf-jump span { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px; border: 1px solid var(--thf-rule); border-radius: 999px; background: var(--thf-paper); color: var(--thf-ink); text-decoration: none; font: 650 14px/1 var(--thf-sans); }
.thf .thf-jump a:hover { border-color: var(--thf-gold-ink); background: #fff; }
.thf .thf-jump b { color: var(--thf-gold-ink); font-weight: 750; }
.thf .thf-jump span { color: var(--thf-ink-3); background: transparent; border-style: dashed; }
.thf .thf-jump span b { color: inherit; }
.thf .thf-jump .thf-note { margin-top: 12px; }

/* ---------- sections ---------- */
.thf .thf-sec { position: relative; padding: clamp(48px, 6vw, 84px) 0; }
.thf .thf-sec--paper { background: var(--thf-parch); }
.thf .thf-sec--paper2 { background: var(--thf-parch-2); }
.thf .thf-sec--night { color: var(--thf-bone); background: radial-gradient(800px 380px at 85% 0%, rgba(161, 137, 207, .14), transparent 62%), linear-gradient(180deg, var(--thf-night-1), var(--thf-night-0)); }
.thf .thf-sec--night .thf-eyebrow { color: var(--thf-gold); }
.thf .thf-sec--night .thf-lead { color: var(--thf-bone-2); }
.thf .thf-sec--night .thf-meta, .thf .thf-sec--night .thf-note { color: var(--thf-bone-3); }
/* Sections on the thread: the knot sits in the left margin at ≥1321px and lights as its section arrives
   (design language §4; .is-lit comes from the shared thread on the knot, or from finish.js on the section). */
.thf .thf-sec-head { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 6px 18px; margin-bottom: clamp(24px, 3vw, 36px); }
.thf .thf-knot { position: absolute; left: -58px; top: -6px; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1.5px solid rgba(201, 163, 94, .45); background: var(--thf-cut, var(--thf-parch)); color: rgba(122, 90, 32, .6); transition: color .5s var(--thf-ease), border-color .5s var(--thf-ease), box-shadow .5s var(--thf-ease); }
.thf .thf-sec--paper2 .thf-knot { --thf-cut: var(--thf-parch-2); }
.thf .thf-sec--night .thf-knot { --thf-cut: var(--thf-night-1); color: rgba(201, 163, 94, .6); }
.thf .thf-knot .thf-glyph { width: 20px; height: 20px; }
.thf .thf-knot.is-lit, .thf .thf-sec.is-lit .thf-knot, html:not(.thf-js) .thf .thf-knot { color: var(--thf-gold-ink); border-color: var(--thf-gold); box-shadow: 0 0 0 5px rgba(201, 163, 94, .12), 0 0 24px rgba(227, 197, 140, .35); }
.thf .thf-sec--night .thf-knot.is-lit, .thf .thf-sec--night.is-lit .thf-knot { color: var(--thf-gold-hi); }
@media (max-width: 1320px) { .thf .thf-knot { position: static; grid-column: 1 / -1; margin-bottom: 6px; width: 36px; height: 36px; } }
.thf .thf-sec-titles .thf-eyebrow { margin-bottom: 8px; }
.thf .thf-sec-count { color: var(--thf-ink-3); font: 650 13px/1.3 var(--thf-sans); white-space: nowrap; }
.thf .thf-sec--night .thf-sec-count { color: var(--thf-bone-3); }

/* ---------- grids and cards ---------- */
.thf .thf-grid { display: grid; gap: clamp(14px, 1.6vw, 20px); }
.thf .thf-grid--people { grid-template-columns: repeat(auto-fill, minmax(min(100%, 268px), 1fr)); }
.thf .thf-grid--essays { grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); }
.thf .thf-grid--schools { grid-template-columns: repeat(auto-fill, minmax(min(100%, 270px), 1fr)); }
.thf .thf-stretch { text-decoration: none; }
.thf .thf-stretch::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.thf .thf-stretch:hover { text-decoration: underline; text-decoration-color: var(--thf-gold); text-underline-offset: 4px; }
.thf .thf-stretch:focus-visible { outline: none !important; }
.thf .thf-stretch:focus-visible::after { outline: 2px solid var(--thf-gold-ink); outline-offset: 2px; }

.thf .thf-face { position: relative; display: block; flex: none; overflow: hidden; border-radius: 50%; background: linear-gradient(145deg, #d5c3a5, #96819d); box-shadow: 0 0 0 1.5px var(--thf-paper), 0 0 0 3px rgba(201, 163, 94, .55); }
.thf .thf-face img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.86); }
.thf .thf-face--md { width: 64px; height: 64px; }
.thf .thf-face--lg { width: clamp(96px, 10vw, 132px); height: clamp(96px, 10vw, 132px); }
.thf .thf-face--xs { width: 30px; height: 30px; box-shadow: 0 0 0 1.5px var(--thf-paper), 0 0 0 2.5px rgba(201, 163, 94, .5); }
.thf .thf-face--mono { display: grid; place-items: center; color: #fff; }
.thf .thf-face--mono span { font: 420 1.4em/1 var(--thf-display); }
.thf .thf-face--xs.thf-face--mono span { font-size: 15px; }

.thf .thf-person { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 16px; padding: 20px; border: 1px solid var(--thf-rule); border-radius: 18px; background: var(--thf-paper); }
.thf .thf-person:hover, .thf .thf-person:focus-within { border-color: #c8b48c; box-shadow: 0 14px 34px rgba(46, 36, 52, .1); transform: translateY(-2px); }
.thf .thf-person h3 { margin: 4px 0 6px; }
.thf .thf-person-role { color: var(--thf-ink-2); font-size: 15px; line-height: 1.5; }
.thf .thf-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.thf .thf-chips a { position: relative; z-index: 2; display: inline-flex; align-items: center; min-height: 32px; padding: 0 11px; border: 1px solid var(--thf-rule); border-radius: 999px; color: var(--thf-ink-2); text-decoration: none; font: 600 12.5px/1 var(--thf-sans); }
.thf .thf-chips a:hover { border-color: var(--thf-gold-ink); color: var(--thf-ink); }
.thf .thf-person-acts { position: relative; z-index: 2; margin-top: 14px; }

.thf .thf-essay { position: relative; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--thf-rule); border-radius: 18px; background: var(--thf-paper); }
.thf .thf-essay:hover, .thf .thf-essay:focus-within { border-color: #c8b48c; box-shadow: 0 14px 34px rgba(46, 36, 52, .1); transform: translateY(-2px); }
.thf .thf-essay-img { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--thf-parch-2); }
.thf .thf-essay-img img { width: 100%; height: 100%; object-fit: cover; }
.thf .thf-essay-img--blank { display: grid; place-items: center; color: var(--thf-gold-ink); background: radial-gradient(circle at 30% 30%, #fbf6ea, #e6dcc7); --thf-cut: #efe6d2; }
.thf .thf-essay-img--blank .thf-glyph { width: 46px; height: 46px; opacity: .7; }
.thf .thf-essay-body { display: flex; flex: 1; flex-direction: column; gap: 8px; padding: 18px 20px 20px; }
.thf .thf-essay-body > p:not(.thf-meta):not(.thf-byline) { color: var(--thf-ink-2); font-size: 15px; line-height: 1.55; }
.thf .thf-byline { margin-top: auto; padding-top: 8px; color: var(--thf-ink-3); font: 500 13px/1.45 var(--thf-sans); }
.thf .thf-byline a { position: relative; z-index: 2; color: var(--thf-ink); font-weight: 650; text-decoration: underline; text-decoration-color: rgba(122, 90, 32, .45); text-underline-offset: 3px; }

.thf .thf-school { position: relative; display: flex; flex-direction: column; gap: 8px; min-height: 100%; padding: 20px 52px 20px 20px; border: 1px solid var(--thf-rule); border-radius: 18px; background: var(--thf-paper); }
.thf .thf-school:hover, .thf .thf-school:focus-within { border-color: #c8b48c; box-shadow: 0 14px 34px rgba(46, 36, 52, .1); transform: translateY(-2px); }
.thf .thf-school-faces { display: flex; min-height: 30px; margin-bottom: 4px; }
.thf .thf-school-faces .thf-face + .thf-face { margin-left: -8px; }
.thf .thf-school > p:not(.thf-meta) { color: var(--thf-ink-2); font-size: 14.5px; line-height: 1.55; }
.thf .thf-school-go { position: absolute; right: 18px; top: 22px; color: var(--thf-gold-ink); }
.thf .thf-school-go .thf-ic { width: 18px; height: 18px; }

.thf .thf-list { display: grid; gap: 0; border-top: 1px solid var(--thf-rule); }
.thf .thf-list > li { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 16px; padding: 20px 4px; border-bottom: 1px solid var(--thf-rule); }
.thf .thf-list > li > .thf-glyph { width: 26px; height: 26px; margin-top: 2px; color: var(--thf-gold-ink); }
.thf .thf-list > li h3 { margin-bottom: 4px; }
.thf .thf-list > li p:not(.thf-meta) { margin-top: 6px; max-width: 75ch; color: var(--thf-ink-2); font-size: 15px; line-height: 1.55; }
.thf .thf-list > li:hover h3 a { text-decoration: underline; text-decoration-color: var(--thf-gold); text-underline-offset: 4px; }
.thf .thf-list--compact { border-top: 0; }
.thf .thf-list--compact > li { display: block; padding: 0; border: 0; }
.thf .thf-list--compact a { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 6px 0; color: var(--thf-ink); text-decoration: none; font: 600 15px/1.35 var(--thf-sans); }
.thf .thf-list--compact a .thf-glyph { width: 18px; height: 18px; color: var(--thf-gold-ink); }
.thf .thf-list--compact a:hover span { text-decoration: underline; text-decoration-color: var(--thf-gold); text-underline-offset: 3px; }

.thf .thf-refs { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 16px; }
.thf .thf-ref { display: flex; flex-direction: column; gap: 10px; padding: 22px; border: 1px solid #d7c9b2; border-radius: 18px; background: linear-gradient(145deg, #fffaf0, #f1e7d4); }
.thf .thf-ref blockquote { margin: 0; padding: 0; border: 0; }
.thf .thf-ref blockquote p { font: 400 1.2rem/1.45 var(--thf-display); font-variation-settings: "SOFT" 100, "WONK" 1, "opsz" 24; color: var(--thf-ink); }
.thf .thf-ref blockquote p::before { content: "“"; } .thf .thf-ref blockquote p::after { content: "”"; }
.thf .thf-ref > p:not(.thf-meta):not(.thf-ref-who) { color: var(--thf-ink-2); font-size: 15px; }
.thf .thf-ref-who { display: flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 6px; font: 650 14px/1.3 var(--thf-sans); }
.thf .thf-ref-who a { color: var(--thf-ink); text-decoration: underline; text-decoration-color: rgba(122, 90, 32, .45); text-underline-offset: 3px; }

.thf .thf-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.thf .thf-tags a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 15px; border: 1px solid var(--thf-rule); border-radius: 999px; background: var(--thf-paper); color: var(--thf-ink); text-decoration: none; font: 600 14px/1.2 var(--thf-sans); }
.thf .thf-tags a:hover { border-color: var(--thf-gold-ink); background: #fff; }
.thf .thf-tags--lg a { min-height: 46px; font-size: 15px; }

/* ---------- closest match ---------- */
.thf .thf-best { padding: clamp(28px, 4vw, 48px) 0 0; }
.thf .thf-best-card { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(20px, 3vw, 40px); align-items: center; padding: clamp(22px, 3vw, 36px); border: 1px solid #d6c7a8; border-radius: 24px; background: radial-gradient(500px 220px at 100% 0%, rgba(227, 197, 140, .3), transparent 70%), var(--thf-paper); box-shadow: 0 18px 44px rgba(46, 36, 52, .08); }
.thf .thf-best-img { display: block; width: clamp(110px, 14vw, 170px); aspect-ratio: 1; overflow: hidden; border-radius: 50%; box-shadow: 0 0 0 2px var(--thf-paper), 0 0 0 4px rgba(201, 163, 94, .6); }
.thf .thf-best-img img { width: 100%; height: 100%; object-fit: cover; }
.thf .thf-best-mark { display: grid; place-items: center; width: clamp(90px, 11vw, 130px); aspect-ratio: 1; border-radius: 50%; color: var(--thf-gold-ink); background: radial-gradient(circle at 35% 30%, #fffaf0, #eadfc9); box-shadow: 0 0 0 1px #d6c7a8; --thf-cut: #f3ead8; }
.thf .thf-best-mark .thf-glyph { width: 46%; height: 46%; }
.thf .thf-best-body h2 { font-size: clamp(1.8rem, 1.2rem + 2vw, 2.7rem); }
.thf .thf-best-body h2 a { text-decoration: none; }
.thf .thf-best-body h2 a:hover { text-decoration: underline; text-decoration-color: var(--thf-gold); text-underline-offset: 5px; }
.thf .thf-best-body > p:not(.thf-eyebrow) { margin-top: 10px; max-width: 64ch; color: var(--thf-ink-2); }
.thf .thf-best-body .thf-actions { margin-top: 18px; }

/* ---------- start state, tips, doors ---------- */
.thf .thf-start { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 44px); }
.thf .thf-start-col h3 { margin-bottom: 14px; font-size: 1.2rem; }
.thf .thf-tips { display: grid; gap: 10px; max-width: 70ch; margin: 0 0 30px; }
.thf .thf-tips li { position: relative; padding-left: 26px; color: var(--thf-bone-2); }
.thf .thf-tips li::before { content: ""; position: absolute; left: 4px; top: .55em; width: 9px; height: 9px; background: var(--thf-gold-hi); clip-path: polygon(50% 0, 61% 39%, 100% 50%, 61% 61%, 50% 100%, 39% 61%, 0 50%, 39% 39%); }
.thf .thf-tips a { color: var(--thf-bone); text-decoration: underline; text-decoration-color: rgba(201, 163, 94, .6); text-underline-offset: 3px; }
.thf .thf-doors { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 12px; }
.thf .thf-door { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; min-height: 72px; padding: 14px 18px; border: 1px solid var(--thf-rule); border-radius: 16px; background: var(--thf-paper); color: var(--thf-ink); text-decoration: none; }
.thf .thf-door .thf-glyph { width: 24px; height: 24px; color: var(--thf-gold-ink); }
.thf .thf-door strong { display: block; font: 420 1.15rem/1.2 var(--thf-display); }
.thf .thf-door small { display: block; margin-top: 3px; color: var(--thf-ink-3); font: 500 13px/1.35 var(--thf-sans); }
.thf .thf-door > .thf-ic { width: 18px; height: 18px; color: var(--thf-gold-ink); transition: transform .2s var(--thf-ease); }
.thf .thf-door:hover { border-color: #c8b48c; box-shadow: 0 12px 30px rgba(46, 36, 52, .1); transform: translateY(-2px); }
.thf .thf-door:hover > .thf-ic { transform: translateX(3px); }
.thf .thf-doors--night .thf-door { border-color: rgba(201, 163, 94, .3); background: rgba(241, 237, 228, .04); color: var(--thf-bone); --thf-cut: var(--thf-night-0); }
.thf .thf-doors--night .thf-door .thf-glyph, .thf .thf-doors--night .thf-door > .thf-ic { color: var(--thf-gold-hi); }
.thf .thf-doors--night .thf-door small { color: var(--thf-bone-3); }
.thf .thf-doors--night .thf-door:hover { border-color: var(--thf-gold-hi); background: rgba(241, 237, 228, .08); box-shadow: 0 0 24px rgba(227, 197, 140, .16); }
.thf .thf-sec--night .thf-search { margin-top: 0; }
.thf .thf-empty { color: var(--thf-ink-3); }

/* ---------- Schools: feature, facts, quote, timeline ---------- */
.thf .thf-feature { padding-bottom: clamp(20px, 3vw, 32px); }
.thf .thf-feature-card { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 60px); align-items: center; padding: clamp(24px, 3.4vw, 44px); border: 1px solid #d6c7a8; border-radius: 26px; background: radial-gradient(520px 260px at 100% 100%, rgba(185, 167, 218, .2), transparent 70%), var(--thf-paper); box-shadow: 0 18px 44px rgba(46, 36, 52, .07); }
.thf .thf-feature-card--voice { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); }
.thf .thf-feature-copy h2 a { text-decoration: none; }
.thf .thf-feature-copy h2 a:hover { text-decoration: underline; text-decoration-color: var(--thf-gold); text-underline-offset: 5px; }
.thf .thf-feature-copy .thf-meta { margin-top: 14px; }
.thf .thf-quote { display: grid; justify-items: start; gap: 14px; margin: 0; padding: clamp(20px, 2.6vw, 30px); border-left: 2px solid var(--thf-gold); border-radius: 0 18px 18px 0; background: linear-gradient(145deg, #fffaf0, #efe4d0); }
.thf .thf-quote blockquote { margin: 0; padding: 0; border: 0; }
.thf .thf-quote blockquote p { font: 400 clamp(1.2rem, 1rem + .7vw, 1.55rem)/1.4 var(--thf-display); font-variation-settings: "SOFT" 100, "WONK" 1, "opsz" 36; color: var(--thf-ink); }
.thf .thf-quote blockquote p::before { content: "“"; } .thf .thf-quote blockquote p::after { content: "”"; }
.thf .thf-quote figcaption { color: var(--thf-ink-3); font: 600 13px/1.4 var(--thf-sans); }
.thf .thf-quote figcaption a { color: var(--thf-ink); text-decoration: underline; text-decoration-color: rgba(122, 90, 32, .45); text-underline-offset: 3px; }
.thf .thf-facts { display: flex; flex-wrap: wrap; gap: 10px 0; margin: 26px 0 0; max-width: 820px; border-top: 1px solid rgba(241, 237, 228, .16); border-bottom: 1px solid rgba(241, 237, 228, .16); }
.thf .thf-facts > div { padding: 14px 28px 14px 0; margin-right: 28px; border-right: 1px solid rgba(241, 237, 228, .12); }
.thf .thf-facts > div:last-child { border-right: 0; margin-right: 0; }
.thf .thf-facts dt { color: var(--thf-bone-3); font: 700 11px/1.3 var(--thf-sans); letter-spacing: .14em; text-transform: uppercase; }
.thf .thf-facts dd { margin: 6px 0 0; color: var(--thf-bone); font: 420 1.45rem/1.15 var(--thf-display); }
.thf .thf-timeline { position: relative; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(150px, 1fr); gap: 18px; overflow-x: auto; padding: 34px 2px 10px; scrollbar-width: thin; scrollbar-color: var(--thf-line) transparent; }
.thf .thf-timeline::before { content: ""; position: absolute; left: 0; right: 0; top: 41px; height: 1px; background: linear-gradient(90deg, transparent, var(--thf-gold) 6%, var(--thf-gold) 94%, transparent); opacity: .7; transform-origin: left; }
.thf .thf-timeline li { position: relative; padding-top: 24px; }
.thf .thf-timeline-star { position: absolute; top: 0; left: 0; width: 15px; height: 15px; background: var(--thf-gold-hi); clip-path: polygon(50% 0, 61% 39%, 100% 50%, 61% 61%, 50% 100%, 39% 61%, 0 50%, 39% 39%); }
.thf .thf-timeline h3 { margin: 6px 0 4px; font-size: 1.12rem; }
.thf .thf-timeline h3 a { color: var(--thf-bone); text-decoration: none; }
.thf .thf-timeline h3 a:hover { color: var(--thf-gold-hi); text-decoration: underline; text-underline-offset: 3px; }
.thf .thf-timeline p:not(.thf-meta) { color: var(--thf-bone-3); font-size: 14px; line-height: 1.45; }
@media (prefers-reduced-motion: no-preference) {
	html.thf-js .thf .thf-timeline[data-thf-reveal]::before { transform: scaleX(0); transition: transform 1.6s var(--thf-ease); }
	html.thf-js .thf .thf-timeline[data-thf-reveal].is-in::before { transform: scaleX(1); }
}
.thf .thf-shelves .thf-jump { margin-top: 0; padding: 26px 0 0; background: var(--thf-parch); }

/* ---------- Follow the thread (the Three Worlds component, copied; shown until the shared ending exists) ---------- */
.thf .thf-follow { position: relative; padding: clamp(80px, 9vw, 120px) 0 clamp(70px, 8vw, 100px); text-align: center; background: radial-gradient(700px 340px at 50% 110%, rgba(243, 234, 210, .12), transparent 70%), linear-gradient(var(--thf-night-0), #0b1324); color: var(--thf-bone); --thf-cut: var(--thf-night-0); }
.thf .thf-follow-in { position: relative; max-width: 760px; margin: 0 auto; }
.thf .thf-follow-thread { position: absolute; left: 50%; top: calc(-1 * clamp(80px, 9vw, 120px)); width: 1.5px; height: clamp(56px, 6vw, 84px); background: linear-gradient(rgba(201, 163, 94, 0), var(--thf-gold)); }
.thf .thf-follow .thf-eyebrow { justify-content: center; color: var(--thf-gold); }
.thf .thf-follow h2 { color: var(--thf-bone); }
.thf .thf-follow-note { max-width: 56ch; margin: 12px auto 0; color: var(--thf-bone-3); font-size: 14px; line-height: 1.5; }
.thf .thf-follow-main { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 18px; align-items: center; margin-top: 30px; padding: 22px 26px; border: 1px solid rgba(201, 163, 94, .45); border-radius: 22px; background: rgba(6, 10, 21, .5); color: var(--thf-bone); text-align: left; text-decoration: none; transition: border-color .2s, transform .2s var(--thf-ease), box-shadow .2s; }
.thf .thf-follow-main:hover { border-color: var(--thf-gold-hi); transform: translateY(-3px); box-shadow: 0 20px 60px -30px rgba(227, 197, 140, .6); }
.thf .thf-follow-mark { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; border: 1.5px solid var(--thf-gold); color: var(--thf-gold-hi); background: radial-gradient(circle, rgba(201, 163, 94, .18), transparent 70%); }
.thf .thf-follow-mark .thf-glyph { width: 26px; height: 26px; }
.thf .thf-follow-copy small { display: block; color: var(--thf-gold); font: 700 11.5px/1.3 var(--thf-sans); letter-spacing: .12em; text-transform: uppercase; }
.thf .thf-follow-copy strong { display: block; margin-top: 4px; font: 450 clamp(1.2rem, 1rem + .8vw, 1.6rem)/1.2 var(--thf-display); }
.thf .thf-follow-go { color: var(--thf-gold-hi); font-size: 1.6rem; }
.thf .thf-follow-more { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 14px 28px; margin-top: 24px; text-align: left; }
.thf .thf-follow-more a { display: flex; align-items: flex-start; gap: 10px; min-height: 44px; color: var(--thf-bone-2); text-align: left; text-decoration: none; line-height: 1.35; }
.thf .thf-follow-more a:hover { color: var(--thf-bone); }
.thf .thf-follow-more .thf-glyph { width: 16px; height: 16px; margin-top: 3px; color: var(--thf-gold); --thf-cut: #0b1324; }
.thf .thf-follow-more small { display: block; color: var(--thf-bone-3); font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; }
.thf .thf-follow :focus-visible { outline-color: var(--thf-gold-hi) !important; }

/* ---------- pager ---------- */
.thf .thf-pager { margin-top: 34px; }
.thf .thf-pager ul { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.thf .thf-pager a, .thf .thf-pager span.thf-pager-n { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; padding: 0 14px; border: 1px solid var(--thf-rule); border-radius: 999px; background: var(--thf-paper); color: var(--thf-ink); text-decoration: none; font: 650 14px/1 var(--thf-sans); }
.thf .thf-pager a:hover { border-color: var(--thf-gold-ink); }
.thf .thf-pager .is-current { border-color: var(--thf-ink) !important; background: var(--thf-ink) !important; color: var(--thf-parch) !important; }
.thf .thf-pager-gap { color: var(--thf-ink-3); padding: 0 4px; }

/* ---------- widths ---------- */
@media (max-width: 1023px) {
	.thf .thf-start { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.thf .thf-feature-card, .thf .thf-feature-card--voice { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
	.thf .thf-hero { padding-top: 34px; }
	.thf .thf-hero h1 { max-width: none; }
	.thf .thf-sec-head { grid-template-columns: minmax(0, 1fr); }
	.thf .thf-start { grid-template-columns: minmax(0, 1fr); }
	.thf .thf-best-card { grid-template-columns: minmax(0, 1fr); }
	.thf .thf-person { padding: 18px; }
	.thf .thf-facts > div { padding-right: 18px; margin-right: 18px; }
	.thf .thf-timeline { grid-auto-flow: row; grid-auto-columns: auto; overflow: visible; padding: 4px 0 0 28px; gap: 22px; }
	.thf .thf-timeline::before { left: 7px; right: auto; top: 0; bottom: 0; width: 1px; height: auto; background: linear-gradient(180deg, transparent, var(--thf-gold) 4%, var(--thf-gold) 96%, transparent); transform-origin: top; }
	.thf .thf-timeline li { padding-top: 0; }
	.thf .thf-timeline-star { left: -28px; top: 2px; }
	@media (prefers-reduced-motion: no-preference) {
		html.thf-js .thf .thf-timeline[data-thf-reveal]::before { transform: scaleY(0); }
		html.thf-js .thf .thf-timeline[data-thf-reveal].is-in::before { transform: scaleY(1); }
	}
}
@media (max-width: 480px) {
	.thf .thf-search-row { flex-wrap: wrap; padding: 6px; border-radius: 26px; }
	.thf .thf-search-row > .thf-ic { margin-left: 10px; }
	.thf .thf-search-row input[type="search"] { flex-basis: calc(100% - 60px); }
	.thf .thf-search-row .thf-btn { flex: 1 1 100%; }
	.thf .thf-person { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
	.thf *, .thf *::before, .thf *::after { animation: none !important; transition: none !important; }
}
@media print {
	.thf .thf-hero, .thf .thf-sec--night { background: none !important; color: #000 !important; }
	.thf .thf-sky, .thf .thf-seam, .thf .thf-search, .thf .thf-jump, .thf .thf-person-acts { display: none !important; }
}
