@import url('/style/content.css');
/* Neutral foundations with one restrained accent per appearance. */
:root, html[data-theme="black"] {
 color-scheme: dark;
 --surface-50:#0c0c0b; --surface-100:#191917; --white:#121211;
 --navy:#f3f0e8; --ink-900:#f3f0e8; --ink-800:#dedbd3; --ink-600:#b9b7af;
 --blue:#d3bc8d; --crimson:#e6d4af; --line-100:#353530; --line-200:#66645b;
 --hero-bg:#000; --hero-ink:#f3f0e8; --hero-muted:#b9b7af; --footer-bg:#080808;
}
html[data-theme='green'] {
 color-scheme:light;
 --surface-50:#f2f5f0; --surface-100:#e6ece4; --white:#fafcf8;
 --navy:#183c30; --ink-900:#253b31; --ink-800:#344d40; --ink-600:#536356;
 --blue:#245442; --crimson:#153b2d; --line-100:#cdd7cc; --line-200:#859b89;
 --hero-bg:#173b32; --hero-ink:#f3f5ed; --hero-muted:#cfdbd0; --footer-bg:#122c25;
}
html[data-theme='light'] {
 color-scheme:light;
 --surface-50:#faf9f6; --surface-100:#efeee8; --white:#fff;
 --navy:#252a28; --ink-900:#252a28; --ink-800:#3b423d; --ink-600:#62655e;
 --blue:#34564a; --crimson:#213d32; --line-100:#deded5; --line-200:#9a9f92;
 --hero-bg:#efeee8; --hero-ink:#252a28; --hero-muted:#62655e; --footer-bg:#232824;
}
html[data-theme='navy'] {
 color-scheme:dark;
 --surface-50:#101925; --surface-100:#172333; --white:#131f2d;
 --navy:#eef0f4; --ink-900:#eef0f4; --ink-800:#d7dfe8; --ink-600:#b1bdca;
 --blue:#b9cadd; --crimson:#dde8f3; --line-100:#354353; --line-200:#62758c;
 --hero-bg:#0c1420; --hero-ink:#eef0f4; --hero-muted:#b1bdca; --footer-bg:#0a111c;
}
:root, html[data-theme] {
 --motion-duration:700ms; --motion-ease:cubic-bezier(.22,1,.36,1); --motion-distance:24px; --anchor-offset:7rem;
 --burgundy:var(--blue); --green:var(--blue); --ink-500:var(--ink-600); --ink-400:var(--ink-600); --ink-300:var(--ink-600); --ink-200:var(--ink-600); --journal-ink:var(--ink-600);
 --bs-body-bg:var(--surface-50); --bs-body-color:var(--ink-900); --bs-secondary-color:var(--ink-600); --bs-border-color:var(--line-100); --bs-tertiary-bg:var(--surface-100); --bs-secondary-bg:var(--white); --bs-link-color:var(--blue); --bs-link-hover-color:var(--crimson);
 --bs-body-font-family:'Roboto',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
html { scroll-behavior: smooth; scroll-padding-top: var(--anchor-offset); }
body { background: var(--surface-50); color: var(--ink-900); font-family: var(--bs-body-font-family); font-size: 1rem; line-height: 1.75; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5, h6, .nav-item, .pub-title, .site-footer-name, .site-footer-heading { font-family: var(--bs-body-font-family); color: var(--navy); letter-spacing: -.035em; font-weight: 500; }
h1 { font-size: clamp(2.5rem, 5vw, 4.5rem); line-height: 1.1; }
h2, .who-heading { font-size: clamp(1.8rem, 3.2vw, 2.65rem); line-height: 1.2; font-weight: 500; }
h3 { line-height: 1.3; }
p { text-wrap: pretty; }
a { color: var(--blue); text-underline-offset: .25em; }
a:hover { color: var(--crimson); }
img { max-width: 100%; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 5px; }
main:focus { outline: none; }
::selection { background: #cfddff; color: #14233e; }
.container { max-width: 1180px; padding-inline: 28px; }
.skip-link { position: fixed; top: .75rem; left: 1rem; z-index: 2000; padding: .6rem 1rem; background: var(--white); transform: translateY(-200%); }
.skip-link:focus { transform: none; }
.site-nav { position: sticky; top: 0; z-index: 100; background: var(--surface-50); border-bottom: 1px solid var(--line-100); transition: box-shadow .25s ease, border-color .25s ease; }
.site-nav.is-scrolled { border-color: var(--line-200); box-shadow: 0 4px 18px rgb(0 0 0 / .07); }
.nav-scroll-marker { position: absolute; inset: 0 auto auto 0; width: 1px; height: 1px; pointer-events: none; }
.site-nav-inner { min-height: 82px; display: flex; justify-content: space-between; align-items: center; gap: 2rem; }
.site-wordmark { color: var(--navy); font-size: 1.25rem; font-weight: 500; letter-spacing: -.05em; white-space: nowrap; }
.site-wordmark span { color: var(--blue); }
.site-nav ul { display: flex; flex-wrap: wrap; gap: 1.25rem; list-style: none; padding: 0; margin: 0; }
.site-nav li a { display: block; padding-block: .35rem; color: var(--ink-600); font-size: .9rem; border-bottom: 1px solid transparent; transition:color .2s ease,border-color .2s ease; }
.site-nav a:hover { text-decoration: none; color: var(--blue); }
.site-nav a[aria-current] { color: var(--navy); border-color: var(--blue); }
.eyebrow { font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .14em; color: var(--blue); margin-bottom: 1.5rem; }
.profile-hero { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(2rem, 5vw, 5rem); padding-block: 85px 95px; align-items: center; }
.profile-hero h1 { font-size: clamp(3rem, 4.6vw, 4.6rem); letter-spacing: -.045em; line-height: 1.06; font-weight: 500; margin-bottom: 1.7rem; }
.name-period { color: var(--blue); }
.profile-lead { font-size: clamp(1.25rem, 2vw, 1.5rem); line-height: 1.45; letter-spacing: -.025em; }
.profile-description { max-width: 53ch; color: var(--ink-600); margin-block: 1.25rem 1.8rem; }
.profile-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem; }
.profile-links { display: flex; flex-wrap: wrap; gap: 1.4rem; margin-top: 2.3rem; }
.profile-links a { color: var(--ink-600); font-size: .8rem; }
.profile-photo { margin: 0; }
.profile-photo img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: center; border-radius: 3px; background: var(--surface-100); }
.profile-photo figcaption { font-size: .73rem; color: var(--ink-600); margin-top: .8rem; letter-spacing: .015em; }
.btn { border-radius: 2px; padding: .75rem 1.1rem; font-size: .88rem; font-weight: 500; box-shadow: none; transition: background-color .2s, color .2s, border-color .2s; }
.btn-primary, .btn-success { --bs-btn-bg: var(--blue); --bs-btn-color: var(--surface-50); --bs-btn-border-color: var(--blue); --bs-btn-hover-bg: var(--crimson); --bs-btn-hover-color: var(--surface-50); --bs-btn-hover-border-color: var(--crimson); }
.btn-outline-primary, .btn-outline-info, .btn-outline-success { --bs-btn-color: var(--blue); --bs-btn-border-color: var(--line-200); --bs-btn-hover-bg: var(--blue); --bs-btn-hover-color: var(--surface-50); --bs-btn-hover-border-color: var(--blue); }
.btn span { margin-left: 1rem; }
.text-link { display: inline-flex; gap: 1.2rem; align-items: center; font-size: .92rem; font-weight: 500; padding-block: .4rem; transition:color .2s ease; }
.text-link span { transition: transform .2s; }
.text-link:hover span { transform: translate(2px, -2px); }
.home-section { padding-block: 3.8rem; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 3rem; margin-bottom: 2.5rem; }
.section-heading .eyebrow { margin-bottom: 1rem; }
.section-heading h2 { margin-bottom: 0; }
.section-heading > p { flex-basis: 42%; color: var(--ink-600); margin: 0; }
.research-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.research-topic { display: flex; flex-direction: column; border: 1px solid var(--line-100); padding: 2rem; background: var(--white); border-radius: 2px; }
.topic-number { color: var(--ink-600); font-size: .75rem; margin-bottom: 2.2rem; }
.research-topic h3 { font-size: 1.35rem; letter-spacing: -.025em; }
.research-topic p { color: var(--ink-600); font-size: .95rem; }
.research-topic .text-link { margin-top: auto; }
.founder-panel { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; background: var(--surface-100); color: var(--ink-600); padding: clamp(2rem, 5vw, 4rem); border-radius: 2px; }
.founder-panel h2 { color: var(--navy); font-size: clamp(2rem, 3.4vw, 3rem); }
.founder-panel .eyebrow, .founder-panel a { color: var(--blue); }
.founder-panel p { font-size: .97rem; }
.story-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(2rem, 7vw, 7rem); align-items: center; }
.story-photo { background: #fff; padding: 1rem; width: 100%; max-height: 440px; object-fit: contain; border-radius: 2px; }
.story-layout p:not(.eyebrow) { color: var(--ink-600); max-width: 60ch; }
.news-scroller { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; overflow: visible; }
.news-card-wrap { width: auto; min-width: 0; }
.news-card-wrap > a, #newsGrid .col > a { display: block; height: 100%; }
.news-image { height: 210px; width: 100%; object-fit: cover; object-position: center; }
.tool-image { height: 230px; width: 100%; object-fit: contain; padding: 1.25rem; background: #fff; }
.card, .research-card { background: var(--white); border: 1px solid var(--line-100); border-radius: 2px; overflow: hidden; box-shadow: none; }
.card.shadow-sm { box-shadow: none !important; }
.card.border-0 { border: 1px solid var(--line-100) !important; }
.card-body { padding: 1.5rem; }
.card-title { font-size: 1.2rem; line-height: 1.4; }
.card-text { color: var(--ink-600); font-size: .92rem; }
.card-body > .d-flex:has(.badge) { flex-direction: column; }
.card .badge { font-size: .7rem; font-weight: 400; white-space: normal; text-align: left; }
.research-card:hover { transform: none; box-shadow: none; border-color: var(--blue); }
.talk-preview { display: block; max-width: 900px; border-radius: 2px; overflow: hidden; background: var(--surface-100); }
.talk-preview img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.talk-preview > span { display: flex; justify-content: space-between; padding: 1rem 1.25rem; font-size: .95rem; }
.contact-section { border-top: 1px solid var(--line-100); margin-top: 4rem; padding-block: 4.5rem 1rem; }
.contact-section .eyebrow { margin-bottom: 1rem; }
.contact-section p:not(.eyebrow) { color: var(--ink-600); }
main > section:first-child:not(.home-section) { padding-top: 4rem !important; }
.who-text { max-width: 75ch; color: var(--ink-600); font-size: 1.05rem; line-height: 1.8; }
.elegant-scroll { overflow: visible; }
.form-control, .input-group-text { border-color: var(--line-200); background: var(--white); color: var(--ink-900); }
.form-control:focus { border-color: var(--blue); box-shadow: 0 0 0 3px color-mix(in srgb, var(--blue) 15%, transparent); }
.pub-filter { border-color: var(--line-200); }
.pub-filter[aria-pressed='true'], .pub-filter:hover { color: var(--surface-50); }
.pub-row { padding-block: 1.5rem; margin: 0; border-bottom: 1px solid var(--line-100); }
.pub-title { font-size: 1.15rem; letter-spacing: -.015em; }
.pub-sort-label, .pub-flags { color: var(--ink-600); }
.pub-toolbar { margin-block: 1.5rem; }
.about-hero { background: var(--surface-100); color: var(--ink-900); padding-block: 4rem; }
.about-hero h1 { color: var(--navy); }
.about-hero .intro { color: var(--ink-600); }
.about-hero .eyebrow { color: var(--blue); }
.about-hero .link-light { color: var(--blue) !important; }
.about-hero img { border-radius: 2px; box-shadow: none; }
.about-aside, .about-stop { border-radius: 2px; }
.about-quote { border-color: var(--blue); }
.about-page p { color: var(--ink-600); }
.about-cta a { border-radius: 2px; border-color: var(--line-200); }
.about-cta a:first-child { background: var(--blue); color: var(--surface-50); }
.blog-flow { max-width: 760px; }
.site-footer { margin-top: 5rem; padding-top: 4rem; }
.site-footer-name, .site-footer-cv, .site-footer-cv:hover, .site-footer-col a:hover, .site-theme-toggle:hover { color: #f4f7ff; }
.site-footer-heading { color: #b8c7e0; letter-spacing: .12em; }
.site-footer-role, .site-footer-facts li, .site-footer-base { color: #b8c7e0; }
.site-footer-col a { color: #e0e9fa; }


.site-nav-inner { gap:1.5rem; }
.site-nav ul { align-items:center; flex-wrap:nowrap; gap:1.3rem; }
.site-nav a { text-decoration:none; }
.site-wordmark { font-size:1.1rem; letter-spacing:-.025em; }
.menu-toggle { display:none; background:none; border:0; color:var(--ink-900); font:inherit; padding:.6rem; }
.theme-picker { display:flex; align-items:center; gap:.6rem; font-size:.78rem; color:var(--ink-600); }
.site-theme-select { font:inherit; padding:.55rem .4rem; border:0; border-bottom:1px solid var(--line-200); border-radius:0; background:var(--surface-50); color:var(--ink-900); cursor:pointer; }
.site-nav .theme-picker > span { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.business-hero { background:var(--hero-bg); color:var(--hero-ink); border-bottom:1px solid var(--line-100); }
.business-hero h1 { color:var(--hero-ink); font-weight:400; font-size:clamp(2.65rem,4.3vw,4.2rem); line-height:1.13; letter-spacing:-.045em; }
.business-hero .eyebrow,.business-hero .profile-description,.business-hero figcaption { color:var(--hero-muted); }
.business-hero .profile-lead { color:var(--hero-ink); font-size:1.08rem; letter-spacing:0; }
.business-hero .text-link { color:var(--hero-ink); }
.business-hero .btn-primary,.consult-hero .btn-primary { --bs-btn-bg:var(--hero-ink); --bs-btn-border-color:var(--hero-ink); --bs-btn-color:var(--hero-bg); --bs-btn-hover-bg:var(--hero-muted); --bs-btn-hover-border-color:var(--hero-muted); --bs-btn-hover-color:var(--hero-bg); }
.profile-hero { padding-block:6rem; grid-template-columns:1.3fr .7fr; gap:4.5rem; }
.profile-photo img { aspect-ratio:4/5; border-radius:0; }
.home-section { padding-block:5rem; }
.section-heading { margin-bottom:2.5rem; }
.work-list { border-top:1px solid var(--line-100); }
.work-list article { display:grid; grid-template-columns:1fr 1.2fr 1.8fr; gap:2rem; align-items:baseline; padding:2rem 0; border-bottom:1px solid var(--line-100); }
.work-kind { font-size:.8rem; color:var(--ink-600); }
.work-list h3 { font-size:1.5rem; font-weight:400; margin:0; }
.work-list h3 a { color:var(--navy); text-decoration:none; }
.work-list h3 a:hover { text-decoration:underline; }
.work-list p { color:var(--ink-600); margin:0; }
.story-talk { display:block; margin-top:1rem; font-size:.9rem; }
.story-photo { border-radius:0; background:#fff; }
.contact-section { background:transparent; border-top:1px solid var(--line-100); border-radius:0; padding-block:4.5rem; margin-top:2rem; }
.contact-email { display:inline-block; font-size:clamp(1.05rem,2.5vw,1.9rem); overflow-wrap:anywhere; max-width:100%; margin-block:.75rem 1.5rem; text-decoration-thickness:1px; }
.contact-options { display:flex; align-items:center; flex-wrap:wrap; gap:1.5rem; }
.copy-link { background:none; border:0; border-bottom:1px solid var(--line-200); color:var(--blue); padding:.3rem 0; font:inherit; font-size:.9rem; }
#contact-status { min-height:1.5em; font-size:.85rem; margin-top:1rem; }
#contact-title:focus { outline:none; }
.about-page.container,.about-hero > .container { padding-inline:28px; }
.site-footer { background:var(--footer-bg); margin-top:2rem; }
.site-footer-heading { color:#bdbfb6; }
.site-footer-role,.site-footer-facts li,.site-footer-base { color:#bdbfb6; }
.site-footer-col a,.site-footer-name,.site-footer-cv { color:#f3f0e8; }
.site-footer .theme-picker { color:#bdbfb6; }
.reveal-pending { opacity:0; transition:opacity var(--motion-duration) var(--motion-ease),transform var(--motion-duration) var(--motion-ease); transition-delay:var(--reveal-delay,0ms); }
.reveal-pending.reveal-up { transform:translateY(var(--motion-distance)); }
.reveal-pending.reveal-scale { transform:scale(1.025); }
.reveal-pending.is-visible { opacity:1; transform:none; }
.reveal-stagger { transition-delay:var(--reveal-delay,0ms); }
@media(max-width:1050px) {
 .site-nav-inner { flex-wrap:wrap; gap:.75rem; padding-block:.7rem; min-height:72px; }
 .site-nav .theme-picker { margin-left:auto; }
 .site-nav ul { order:4; width:100%; flex-wrap:wrap; padding-block:.75rem; }
 .nav-ready .menu-toggle { display:block; margin-left:auto; }
 .nav-ready .theme-picker { margin-left:0; }
 .nav-ready ul { display:none; }
 .nav-ready.menu-open ul { display:flex; }
 .profile-hero { gap:2rem; }
}
@media(max-width:767px) {
 .container { padding-inline:22px; }
 .site-wordmark { font-size:1rem; }
 .site-nav-inner { gap:.35rem; }
 .site-theme-select { max-width:90px; }
 .site-nav ul { flex-direction:column; align-items:stretch; gap:.25rem; }
 .site-nav li a { font-size:1rem; padding:.5rem 0; }
 .profile-hero { grid-template-columns:1fr; padding-block:3.5rem; gap:2.5rem; }
 .profile-hero h1 { font-size:clamp(2.4rem,9vw,3.8rem); }
 .profile-photo { max-width:380px; }
 .profile-photo img { aspect-ratio:1; }
 .home-section { padding-block:3rem; }
 .section-heading { align-items:flex-start; flex-direction:column; gap:1rem; }
 .work-list article { grid-template-columns:1fr; gap:.7rem; padding-block:1.7rem; }
 .story-layout,.news-scroller,.research-grid,.founder-panel { grid-template-columns:1fr; }
 .story-photo { max-width:340px; }
 .contact-section { padding-block:3rem; }
 .site-footer-grid { grid-template-columns:1fr 1fr; gap:2rem; }
 .site-footer-brand { grid-column:1/-1; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { animation:none!important; transition:none!important; }
 .reveal-pending { opacity:1; transform:none; }
 .update-card:hover .update-image img,.pitch-poster:hover img,a.update-card:hover,.talk-preview:hover { transform:none; }
 .text-link:hover span { transform:none; }
}
@media print {
 .site-nav,.site-footer,.skip-link,.profile-actions { display:none; }
 .reveal-pending { opacity:1; transform:none; }
 body { color:#111; background:#fff; }
}

/* Image-led updates share one layout across the homepage and news index. */
.update-card, .news-card-wrap > .update-card, #newsGrid .col > .update-card { display:flex; flex-direction:column; height:100%; color:var(--ink-900); text-decoration:none; border:0; background:transparent; }
.update-image { overflow:hidden; aspect-ratio:16/10; background:var(--surface-100); }
.update-image img { width:100%; height:100%; object-fit:cover; transition:transform .25s var(--motion-ease); }
.update-card:hover .update-image img { transform:scale(1.025); }
.update-copy { padding:1.5rem 0 0; display:flex; flex-direction:column; flex:1; }
.update-date { font-size:.75rem; letter-spacing:.035em; color:var(--ink-600); margin-bottom:.8rem; }
.update-copy h3 { font-size:clamp(1.2rem,1.8vw,1.5rem); font-weight:450; line-height:1.35; margin-bottom:.8rem; }
.update-description { color:var(--ink-600); font-size:.94rem; line-height:1.7; }
.update-read { font-size:.84rem; color:var(--blue); margin-top:auto; padding-top:.7rem; text-decoration:underline; text-underline-offset:.35em; }
.news-scroller { gap:2rem; }
#newsGrid { row-gap:3rem!important; }
.pitch-player { aspect-ratio:16/9; overflow:hidden; position:relative; background:#101010; }
.pitch-poster { position:relative; display:block; width:100%; height:100%; color:#fff; }
.pitch-poster::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.75),transparent 60%); pointer-events:none; }
.pitch-poster img { width:100%; height:100%; object-fit:cover; object-position:center 38%; transition:transform .25s var(--motion-ease); }
.pitch-poster:hover img { transform:scale(1.025); }
.pitch-play { position:absolute; z-index:1; top:50%; left:50%; transform:translate(-50%,-50%); border:1px solid rgba(255,255,255,.65); background:rgba(0,0,0,.7); padding:1rem 1.7rem; color:#fff; font-size:.95rem; white-space:nowrap; transition:background .25s; }
.pitch-poster:hover .pitch-play { background:#fff; color:#111; }
.pitch-caption { position:absolute; z-index:1; left:2rem; right:2rem; bottom:1.8rem; display:flex; justify-content:space-between; font-size:.9rem; color:#fff; }
.pitch-caption span { color:#ddd; }
.pitch-player iframe { width:100%; height:100%; border:0; display:block; }
.pitch-external { margin-top:1rem; text-align:right; font-size:.82rem; }
@media(prefers-reduced-motion:no-preference) {
 .business-hero .profile-copy,.about-hero > .container,.consult-hero-grid > div { animation:hero-arrive .7s var(--motion-ease) both; }
 .business-hero .profile-photo,.about-hero img,.consult-science { animation:hero-arrive .8s .08s var(--motion-ease) both; }
 a.update-card,.talk-preview { transition:transform .25s var(--motion-ease),box-shadow .25s ease; }
 a.update-card:hover,.talk-preview:hover { transform:translateY(-3px); box-shadow:0 8px 24px rgb(0 0 0 / .08); }
 @keyframes hero-arrive { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
}
@media(max-width:767px) {
 :root { --motion-duration:600ms; --motion-distance:18px; }
}
@media(max-width:767px) {
 .news-scroller { gap:2.5rem; }
 .pitch-player { aspect-ratio:4/3; }
 .pitch-caption { left:1rem; right:1rem; bottom:1rem; font-size:.72rem; gap:.5rem; }
 .pitch-play { padding:.8rem 1.2rem; }
}
