/* Website palette inspired by Javier Rodríguez's Absolute Martian Manhunter #1.
   https://www.dc.com/comics/absolute-martian-manhunter-2025/absolute-martian-manhunter-1
   One cream canvas; green for actions, orange for projects, cyan for the lab,
   and magenta for writing. Repeated component styling keeps the colors related. */
:root {
  --paper: #f7f0df;
  --ink: #1d2328;
  --muted: #575b52;
  --line: #d0d2bf;
  --accent: #aa351e;
  --forest: #24382e;
  --martian-green: #8dbb3f;
  --martian-orange: #dd4b29;
  --martian-cyan: #08aecb;
  --martian-magenta: #d53978;
  --chart-reference: #3ac4dc;
  --chart-reported: #ff9563;
  --chart-grid: #435448;
}
body::before { content: ""; display: block; height: 4px; background: linear-gradient(90deg, var(--martian-orange) 0 28%, var(--martian-green) 28% 62%, var(--martian-cyan) 62% 84%, var(--martian-magenta) 84% 100%); }
::selection { background: #d0e5a7; color: var(--ink); }
.site-header { border-bottom-color: var(--line); }
.brand-mark span { color: var(--martian-orange); }
.accent-square, .nav-dot { background: var(--martian-green); }
.accent-square { width: 7px; height: 7px; }
.hero { grid-template-columns: 1.1fr 1fr; gap: 100px; }
.hero h1 { font-size: clamp(72px, 8vw, 116px); line-height: .99; margin-top: 0; }
.hero h1 em { color: var(--martian-orange); }
.hero-copy > .eyebrow { margin-top: 24px; }
.hero-introduction { align-self: center; max-width: 510px; padding-top: 30px; }
.hero-intro { margin-top: 0; max-width: none; font-size: 20px; line-height: 1.85; color: var(--ink); }
.bio-focus { color: var(--martian-orange); font-weight: 700; }
.hero-personal-note { margin-top: 20px; font-size: 15px; line-height: 1.8; }
.hero-actions { gap: 25px; }
.hero-actions .text-link { text-decoration: underline; text-decoration-color: var(--martian-cyan); text-decoration-thickness: 2px; text-underline-offset: 6px; }
.expertise-intro, .expertise-layout { max-width: 860px; }
.expertise-layout { padding-block: 20px 90px; }
.expertise-intro h1, .expertise-layout h2 { text-wrap: balance; }
.technical-name { white-space: nowrap; }
.button, .button-light { background: var(--martian-green); color: var(--ink); border-color: var(--martian-green); box-shadow: none; }
.button:hover, .button-light:hover { background: #a3cc61; border-color: #a3cc61; }
.button:active { transform: none; }
.section-heading .eyebrow { color: var(--muted); }
#work-title { color: #aa351e; }
#lab-title { color: #086979; }
#writing-title { color: #a12d62; }
.project-row { grid-template-columns: minmax(0, 1fr) 210px 35px; }
.project-arrow { color: #086979; }
.project-art { background-color: #e4ebd3; background-image: radial-gradient(#b3c499 .65px, transparent .65px); }
.art-boundary { border-color: #7c9860; }
.art-core { background: #3f5c30; border-color: #c6d7af; box-shadow: 0 0 0 7px #d2dfbf; }
.art-line { background: #889e70; }
.art-node { background: var(--martian-orange); }
.art-2 { background-color: #d8ebec; background-image: linear-gradient(#94bcc277 1px, transparent 1px), linear-gradient(90deg, #94bcc277 1px, transparent 1px); }
.art-2 .art-boundary { border-color: #5c96a1; }
.art-2 .art-core { background: #b7dce1; border-color: #5c96a1; }
.art-2 .art-line { background: #6c9ca5; }
.art-3 { background-color: #efdee4; background-image: radial-gradient(#c5a3b3 .65px, transparent .65px); }
.art-3 .art-boundary { background: #f7eaf0; border-color: #a27490; }
.art-3 .art-core { background: repeating-linear-gradient(0deg, transparent 0, transparent 7px, #aa7c98 7px, #aa7c98 8px); }
.art-3 .art-line { background: #af8a9f; }
.tags span { border-color: #c4ccb6; }
.lab-teaser { background: var(--paper); color: var(--ink); border: 0; }
.lab-teaser-inner { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.lab-teaser h2, .lab-teaser h2 em { color: #086979; }
.lab-teaser p { color: var(--muted); }
.eyebrow.light { color: var(--muted); }
.signal-preview { background: #24382e; border: 1px solid #24382e; }
.signal-header { color: #e6eddb; }
.signal-header > span:last-child { color: #c5d6be; }
.status-dot { background: var(--martian-green); }
.signal-legend { color: #dce8d6; }
.legend-true { background: var(--chart-reference); }
.legend-reported { background: var(--chart-reported); }
.signal-preview svg path:nth-child(1) { stroke: var(--chart-grid); }
.signal-preview svg path:nth-child(2) { stroke: var(--chart-reference); }
.signal-preview svg path:nth-child(3) { stroke: var(--chart-reported); }
.signal-preview p { color: #cfddc6; border-top-color: #53694c; }
.post-card, .post-card:nth-child(3n+2), .post-card:nth-child(3n+3) { border-top: 2px solid #c7789b; }
.post-card .eyebrow { color: #a12d62; }
.writing-empty, .about-band { border-top: 1px solid var(--line); }
.small-cross { color: var(--accent); }
.site-footer { border-top: 1px solid var(--line); }
.footer-about { margin-top: 16px; }
.newsletter { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 32px; align-items: center; margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--line); }
.newsletter .eyebrow { color: #a12d62; margin-bottom: 12px; }
.newsletter h2 { font-size: 32px; line-height: 1.15; }
.newsletter p { max-width: 580px; margin-top: 14px; font-size: 15px; line-height: 1.8; }
.newsletter-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.newsletter-wrap { padding-bottom: 80px; }
.publication-kind { background: #e5ead9; color: #445b31; }
.publication-kind.kind-conference, .publication-kind.kind-presentation { background: #dfedef; color: #285d6a; }
.publication-kind.kind-preprint { background: #efdee8; color: #84345d; }
.publication-kind.kind-thesis { background: #f0e1d2; color: #87462b; }
.concept-label { background: #e8eddb; }
.preview-contact { background: #edf0e3; border-color: var(--line); }
.contact-form input:not([type=checkbox]), .contact-form textarea { background: #fff9ed; border-color: #b8bfa9; }
.experiment-chart { background: #24382e; }
.metrics { border-top-color: #53694c; }
.metrics span { color: #ceddc4; }
.metrics strong { color: #f5efd9; }
.experiment-controls { background: #edf0e3; }
.lab-entry-symbol, .lab-featured .lab-entry-symbol { color: var(--accent); }
/* Modestly larger copy and labels throughout the site. */
body { font-size: 17px; }
.eyebrow { font-size: 11px; }
.site-header nav { font-size: 14px; }
.button, .text-link { font-size: 14px; }
.text-link.small { font-size: 13px; }
.section-heading h2 { font-size: clamp(38px, 4.2vw, 54px); }
.project-copy .eyebrow { font-size: 10px; }
.project-copy h3 { font-size: 33px; }
.project-copy p, .post-card p, .lab-teaser p, .lab-entry p,
.publication-summary { font-size: 15px; }
.tags span, .label, .concept-label { font-size: 10px; }
.post-card h3, .post-card h2 { font-size: 30px; }
.post-meta { font-size: 11px; }
.lede { font-size: 18px; }
.prose { font-size: 17px; }
.margin-note { font-size: 14px; }
.publication-meta { font-size: 10px; }
.publication-authors { font-size: 12px; }
.publication-footer > span { font-size: 10px; }
.publication-footer .text-link { font-size: 12px; }
.research-aside .margin-note { font-size: 12px; }
.publication-search .publication-type-label { font-size: 10px; }
.lab-entry { grid-template-columns: minmax(0, 1fr) 100px; }
.signal-header, .signal-legend, .signal-preview p { font-size: 10px; }
.control-note { font-size: 12px; }
.experiment-explanation .prose { font-size: 15px; }
.experiment-explanation .margin-note { font-size: 13px; }
.contact-form label:not(.checkbox-label) { font-size: 13px; }
.contact-form input:not([type=checkbox]), .contact-form textarea { font-size: 15px; }
.contact-form .consent { font-size: 12px; }
.footer-links { font-size: 13px; }
.footer-note { font-size: 11px; }
@media (max-width: 1100px) {
  .hero { gap: 55px; }
  .hero h1 { font-size: 95px; }
  .hero-intro { font-size: 19px; }
  .hero-actions { gap: 20px; }
  .project-row { grid-template-columns: minmax(0, 1fr) 160px 20px; }
  .project-copy h3 { font-size: 30px; }
}
@media (max-width: 760px) {
  .hero { grid-template-columns: 1fr; gap: 24px; }
  .hero h1 { font-size: clamp(73px, 15vw, 102px); }
  .hero-copy > .eyebrow { margin-top: 20px; }
  .hero-introduction { padding-top: 0; max-width: 540px; }
  .hero-intro { font-size: 19px; }
  .hero-personal-note { margin-top: 16px; font-size: 14px; }
  .hero-actions { gap: 24px; }
  .expertise-layout { padding-block: 8px 60px; }
  .newsletter { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .newsletter-wrap { padding-bottom: 60px; }
  .eyebrow { font-size: 10px; }
  .section-heading h2 { font-size: 38px; }
  .section-heading > .text-link { font-size: 12px; }
  .project-row { grid-template-columns: minmax(0, 1fr) 20px; }
  .lab-entry { grid-template-columns: minmax(0, 1fr); }
  .lede { font-size: 17px; }
  .prose { font-size: 16px; }
  .publication-summary { font-size: 14px; }
  .contact-form input:not([type=checkbox]), .contact-form textarea { font-size: 16px; }
  .writing-empty > .text-link { font-size: 13px; }
  .experiment-chart .signal-header, .experiment-chart .signal-legend { font-size: 9px; }
}
@media print {
  body::before { display: none; }
  body { background: white; }
}
