/* Project directory and readability refinements; extends the original WAL theme. */
.project-toc { margin:2rem 0; font-size:.875rem; }
.project-toc strong { font-size:1rem; }
.project-toc ul { list-style:none; padding:0; }
.project-toc li { margin:.75rem 0; }
.project-toc a:hover { text-decoration:underline; }
.project-detail .article-content { min-width:0; }
.project-detail .article-content table { display:block; overflow-x:auto; width:100%; border-collapse:collapse; margin:1.5rem 0 2.5rem; font-size:1rem; }
.project-detail th, .project-detail td { padding:1rem; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.project-detail th { background:var(--pine); color:var(--paper); }
.project-detail details { padding:1.25rem; margin:1rem 0; border:1px solid var(--line); }
.project-detail summary { font-weight:600; cursor:pointer; }
.project-detail details p { margin:1rem 0 0; }
.project-detail pre { padding:1.25rem; background:var(--ink); color:var(--paper); overflow:auto; }
.project-detail h2 { scroll-margin-top:110px; }
:focus-visible { outline: 3px solid #527c32; outline-offset: 5px; }
.hero :focus-visible, .site-header :focus-visible, .site-footer :focus-visible { outline-color: var(--signal); }
.hero::after, .page-hero::after { display: none; }
.hero-grid { gap: 4rem; }
.hero h1 { line-height: 1.02; }
.lab-index { border: 1px solid var(--line-light); background: #0c2115; padding: 1.6rem 2rem; }
.lab-index > .eyebrow { color: var(--signal); margin-bottom: 1.5rem; }
.lab-index > a { display: block; padding: 1.25rem 0; border-top: 1px solid var(--line-light); transition: color .2s; }
.lab-index > a:hover strong { color: var(--signal); }
.lab-index span { display: block; font: .75rem/1.5 var(--mono); color: #bacbbd; letter-spacing: .06em; }
.lab-index strong { display: block; font-size: clamp(1.4rem,2.2vw,2rem); letter-spacing: -.035em; line-height: 1.2; padding: .4rem 0; }
.lab-index small { display: flex; justify-content: space-between; gap: 1rem; font-size: .875rem; color: #bacbbd; }
.lab-index small b { color: var(--signal); font-size: 1.1rem; }
.portfolio-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; }
.portfolio-card { display: flex; flex-direction: column; align-items: flex-start; min-height: 350px; padding: 2.2rem; color: var(--paper); background: var(--ink); border-top: 3px solid var(--signal); }
.portfolio-card:nth-child(2), .portfolio-card:nth-child(3) { background: var(--pine); }
.portfolio-meta { display: flex; flex-wrap: wrap; justify-content: space-between; width: 100%; gap: .75rem 1rem; font: .75rem/1.5 var(--mono); text-transform: uppercase; color: #c7d6c8; }
.portfolio-meta span:last-child { color: var(--signal); }
.portfolio-card h2, .portfolio-card h3 { font-size: clamp(1.9rem,3vw,2.6rem); line-height: 1.1; letter-spacing: -.035em; margin: 2.5rem 0 1rem; overflow-wrap: anywhere; }
.portfolio-card p { color: #c3cec5; font-size: 1rem; max-width: 40rem; }
.portfolio-card .text-link { margin-top: auto; color: var(--signal); }
.project-footnote { margin: 2rem 0 0; font-size: 1rem; color: #46564b; }
.project-footnote a { text-decoration: underline; text-underline-offset: .2rem; }
.project-detail .article-header > .text-link { margin-bottom: 2rem; }
.project-detail .article-kicker { flex-wrap: wrap; font-size: .875rem; line-height: 1.6; margin-bottom: 1.5rem; }
.project-detail h1 { overflow-wrap: anywhere; line-height: 1.06; }
.article-content { max-width: 70rem; }
.article-content > h1 { line-height: 1.1; }
.eyebrow, .proof-inner, .article-aside p, .article-nav, .archive-card-meta, .card-top, .tag-row, .program-num, .program-topics span { font-size: .75rem; line-height: 1.6; }
.site-nav, .button, .text-link, .footer-links, .filter-button, .contact-form label, .form-note, .form-success { font-size: .875rem; line-height: 1.5; }
.research-card p, .archive-card p, .program-details dd { font-size: 1rem; }
.program-details dt { font-size: .75rem; line-height: 1.6; }
.footer-grid > div:first-child p, .footer-meta p { font-size: .875rem; color: #adbbb1; }
.training-item small { font-size: .75rem; line-height: 1.6; }
.training-item b { line-height: 1.25; }
.article-aside p, .article-kicker, .program-details dt { color: #53695b; }
.training-page .program-details dt { color: #aabbaf; }
.site-header.header-on-light:not(.scrolled) .brand b { color: var(--pine); }
.archive-card:hover p, .archive-card:hover .archive-card-meta { color: #c7d6c8; }
.article-content h2:first-child { margin-top: 0; }
.form-success { border-left: 3px solid var(--pine); }
@media (max-width:1100px) { .site-nav { gap: 1rem; } .nav-cta { padding: .7rem; gap: .5rem; } }
@media (max-width:980px) { .hero-grid { grid-template-columns: 1fr; } .lab-index { width: 100%; } }
@media (max-width:700px) { .portfolio-grid { grid-template-columns: 1fr; } .portfolio-card { padding: 1.5rem; min-height: 330px; } .lab-index { padding: 1.25rem; } .article-nav { gap: 1.5rem; flex-wrap: wrap; } .article-header h1 { font-size: clamp(2.5rem,10vw,4rem); } .program-details div { grid-template-columns: 1fr; gap: .4rem; } }
