.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.detail-header { display:flex; align-items:center; flex-wrap:wrap; gap:1rem 2rem; min-height:100px; padding-block:1.2rem; border-bottom:1px solid var(--line); }
.detail-header .brand { margin-right:auto; }
.detail-actions { display:flex; gap:.5rem; align-items:center; }
.detail-nav { display:flex; flex-wrap:wrap; gap:.4rem 1.2rem; }
.detail-nav a { display:flex; align-items:center; min-height:44px; color:var(--muted); font-size:.9rem; }
.detail-nav a:hover,.detail-nav a[aria-current] { color:var(--blue); }
.detail-main { padding-block:clamp(3rem,7vw,7rem); }
.page-intro { max-width:62rem; margin-bottom:2.5rem; }
.page-intro h1 { font:500 clamp(2.2rem,5.7vw,5.3rem)/1.09 var(--display); letter-spacing:-.055em; margin:1rem 0 1.4rem; text-wrap:balance; overflow-wrap:anywhere; }
.page-lead { color:var(--muted); font-size:clamp(1rem,1.7vw,1.25rem); line-height:1.7; max-width:49rem; }
.overview-actions,.quick-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.7rem; }
.quick-actions { margin-top:1.5rem; }
.action-status { flex-basis:100%; min-height:1.5em; color:var(--blue-dark); font-size:.85rem; }
.overview-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:3rem; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.overview-facts>div { padding:1.4rem 1rem 1.4rem 0; }
.overview-facts dt,.career-period { color:var(--muted); font:400 .75rem/1.5 var(--mono); }
.overview-facts dd { margin:.4rem 0 0; font:500 1.1rem/1.5 var(--display); }
.overview-section { margin-top:clamp(3.5rem,7vw,6rem); }
.overview-section h2,.method-note h2,.request-context h2 { font:500 clamp(1.65rem,3vw,2.5rem)/1.2 var(--display); letter-spacing:-.035em; }
.overview-projects { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.overview-projects article,.resource-card { padding:clamp(1.2rem,2.4vw,2rem); border:1px solid var(--line); border-radius:var(--radius); background:var(--white); min-width:0; }
.overview-projects h3 { margin:1rem 0; font:500 1.65rem/1.15 var(--display); letter-spacing:-.035em; }
.overview-projects article>p:not(.eyebrow) { color:var(--muted); line-height:1.7; margin-bottom:1.3rem; }
.overview-projects .text-link { margin-top:1.5rem; }
.career-timeline { list-style:none; margin-top:2rem; padding:0; }
.career-timeline>li { display:grid; grid-template-columns:minmax(8rem,.32fr) 1fr; gap:2rem; padding:0 0 2rem 1.6rem; border-left:1px solid var(--line); position:relative; }
.career-timeline>li::before { position:absolute; content:''; width:9px; height:9px; border-radius:50%; background:var(--blue); left:-5px; top:.35rem; }
.career-timeline h3 { font:500 1.3rem/1.3 var(--display); }
.career-role { color:var(--blue-dark); margin:.45rem 0; }
.career-timeline p:not(.career-role) { color:var(--muted); line-height:1.7; max-width:48rem; }
.resource-links { display:flex; flex-wrap:wrap; gap:.5rem 2rem; margin-top:1.5rem; }
.resource-links a { padding-block:.6rem; color:var(--blue-dark); }
.overview-contact { border-top:1px solid var(--line); padding-top:3rem; }
.overview-contact h2 { margin-top:1rem; }
.lab-teasers { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.8rem; }
.lab a,.lab .sample-button,.lab .copy-button { text-decoration:none; }
.lab-teaser { display:flex; flex-direction:column; align-items:flex-start; gap:1rem; padding:1.5rem; border:1px solid var(--line); border-radius:var(--radius); background:var(--white); min-width:0; transition:border-color .2s ease,transform .2s ease; }
.lab-teaser:hover { border-color:var(--blue); transform:translateY(-3px); }
.lab-teaser>span { color:var(--blue); font:.75rem/1.4 var(--mono); }
.lab-teaser h3 { font:500 1.15rem/1.3 var(--display); }
.lab-teaser p { color:var(--muted); line-height:1.6; font-size:.9rem; }
.lab-teaser .text-link { margin-top:auto; }
.hero-overview { display:inline-flex; min-height:44px; align-items:center; margin-top:1rem; }
.notes-more { margin-top:1.5rem; }
.contact-utilities { display:flex; flex-wrap:wrap; gap:.4rem 1.2rem; margin-top:1.5rem; }
.contact-utilities a { min-height:44px; display:inline-flex; align-items:center; color:var(--blue-dark); }
.contact .quick-actions .button { font-size:.8rem; padding-inline:.9rem; }
.contact-copy .button-outline { color:#fff; border-color:#a4b4f4; }
.contact-copy .button-outline:hover { background:#2946c0; color:#fff; border-color:#fff; }
.contact-utilities a,.contact-copy .action-status { color:#e0e7ff; }
.detail-main>.lab { width:100%; padding:0; }
.detail-main .lab-tabs { align-items:stretch; }
.detail-main .lab-local { flex-basis:100%; margin:0; padding:.6rem .85rem; }
.mini-nlp-form { display:grid; gap:1.2rem; margin-block:1.6rem; }
.mini-nlp-form label { display:grid; gap:.65rem; font-size:.9rem; color:var(--muted); }
.mini-nlp-form textarea { width:100%; resize:vertical; min-height:8rem; border:1px solid var(--line); border-radius:.4rem; padding:1rem; background:var(--field); color:var(--ink); font:400 1rem/1.6 var(--sans); }
.mini-nlp-form .button { justify-self:start; }
.nlp-output,.extraction-output { display:grid; gap:1rem; padding:1.4rem; background:var(--tint); border:1px solid var(--tint-line); border-radius:.5rem; }
.nlp-output strong { color:var(--blue-dark); font:500 1.5rem/1.3 var(--display); }
.extraction-output h4 { font:500 .85rem/1.5 var(--mono); margin-bottom:.5rem; }
.extraction-output li { color:var(--muted); overflow-wrap:anywhere; line-height:1.8; }
.article-index { display:grid; gap:0; border-top:1px solid var(--line); }
.article-index article { padding:2rem 0; border-bottom:1px solid var(--line); max-width:65rem; }
.article-index h2 { font:500 clamp(1.5rem,3vw,2.6rem)/1.2 var(--display); letter-spacing:-.035em; margin:.9rem 0; }
.article-index article>p:not(.eyebrow) { color:var(--muted); line-height:1.7; max-width:48rem; margin-bottom:1rem; }
.article-meta { display:flex; flex-wrap:wrap; gap:.6rem 1.5rem; color:var(--muted); font:.75rem/1.6 var(--mono); padding-bottom:2rem; border-bottom:1px solid var(--line); }
.article-layout { display:grid; grid-template-columns:minmax(10rem,.35fr) minmax(0,1fr); gap:clamp(2rem,6vw,6rem); margin-top:3rem; }
.article-toc { display:flex; flex-direction:column; align-self:start; position:sticky; top:2rem; }
.article-toc a { color:var(--muted); font-size:.88rem; line-height:1.5; padding:.75rem 0; border-bottom:1px solid var(--line); }
.article-toc a:hover { color:var(--blue); }
.article-prose { max-width:48rem; }
.article-prose section { margin-bottom:3rem; scroll-margin-top:2rem; }
.article-prose h2 { font:500 clamp(1.45rem,2.7vw,2rem)/1.25 var(--display); letter-spacing:-.025em; margin-bottom:1rem; }
.article-prose p { font-size:1.06rem; color:var(--muted); line-height:1.9; }
.case-evidence-section { margin-top:4rem; border-top:1px solid var(--line); padding-top:3rem; min-width:0; }
.case-evidence-section h2 { font:500 clamp(1.7rem,3.5vw,3rem)/1.15 var(--display); letter-spacing:-.04em; margin:1rem 0; }
.case-evidence-section>p,.evidence-caption { max-width:60rem; color:var(--muted); font-size:.9rem; line-height:1.7; }
.architecture-frame { border:1px solid var(--line); border-radius:.6rem; background:var(--white); margin:1.5rem 0 .8rem; overflow:auto; }
.architecture-frame svg { display:block; width:100%; min-width:620px; height:auto; }
.architecture-frame rect { fill:var(--tint); stroke:var(--tint-line); }
.architecture-frame text { fill:var(--ink); font:500 15px var(--sans); }
.architecture-edges path { stroke:var(--blue); stroke-width:1.5; fill:none; }
.architecture-frame marker path { fill:var(--blue); }
.code-example { border:1px solid var(--line); border-radius:.6rem; background:var(--white); margin-top:1.6rem; overflow:hidden; }
.code-example .code-header { display:flex; flex-wrap:wrap; gap:.6rem; justify-content:space-between; padding:1rem 1.3rem; border-bottom:1px solid var(--line); color:var(--muted); font:.75rem/1.5 var(--mono); }
.code-example pre { padding:1.5rem; overflow:auto; font:.8rem/1.85 var(--mono); color:var(--ink); tab-size:2; }
.code-example .code-footer { display:flex; flex-wrap:wrap; gap:.6rem; justify-content:space-between; padding:1rem 1.3rem; border-top:1px solid var(--line); }
.code-example [role='status'] { color:var(--blue-dark); font-size:.8rem; }
.change-list { list-style:none; margin-top:1.5rem; padding:0; }
.change-list li { display:grid; grid-template-columns:9rem minmax(0,1fr); gap:1.2rem; padding:1.3rem 0; border-bottom:1px solid var(--line); }
.change-list time { color:var(--muted); font:.75rem/1.7 var(--mono); }
.change-list p { line-height:1.7; }
.change-list code { color:var(--blue-dark); font-size:.75rem; }
.quality-stamp { color:var(--muted); font:.8rem/1.7 var(--mono); margin-bottom:2rem; }
.quality-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.quality-card { padding:clamp(1.2rem,3vw,2.2rem); background:var(--white); border:1px solid var(--line); border-radius:var(--radius); }
.quality-card h2 { font:500 1.35rem/1.3 var(--display); margin-bottom:.6rem; }
.quality-url { display:inline-block; font-size:.8rem; color:var(--blue-dark); overflow-wrap:anywhere; }
.quality-scores { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem 1rem; margin-block:2rem; }
.quality-scores dt { color:var(--muted); font-size:.75rem; }
.quality-scores dd { font:500 2.1rem/1.4 var(--display); letter-spacing:-.035em; }
.method-note { max-width:60rem; margin-top:3rem; border-top:1px solid var(--line); padding-top:2rem; }
.method-note p { color:var(--muted); line-height:1.8; margin-top:1rem; }
.request-layout { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(2rem,6vw,6rem); margin-top:3rem; }
.request-context p { color:var(--muted); line-height:1.8; margin-block:1rem; }
.request-form { display:grid; gap:1.3rem; min-width:0; }
.request-form>label:not(.honeypot) { display:grid; gap:.65rem; font-size:.9rem; color:var(--muted); }
.request-form input:not([type='checkbox']),.request-form select,.request-form textarea { width:100%; min-width:0; min-height:48px; padding:.8rem 1rem; font:400 1rem/1.5 var(--sans); background:var(--white); color:var(--ink); border:1px solid var(--line); border-radius:.35rem; }
.request-form textarea { resize:vertical; }
.request-form .honeypot { display:none; }
.request-form .consent-row { grid-template-columns:24px minmax(0,1fr); gap:.8rem; align-items:start; min-height:44px; line-height:1.65; cursor:pointer; }
.consent-row input { width:20px; height:20px; margin-top:3px; accent-color:var(--blue); }
.form-disclosure,.time-zone-note { color:var(--muted); font-size:.8rem; line-height:1.7; }
.form-disclosure a { text-decoration:underline; text-underline-offset:3px; }
.request-form>.button { justify-self:start; }
.request-status { color:var(--blue-dark); min-height:1.5em; }
.clipboard-fallback { position:fixed; top:0; left:0; width:1px; height:1px; padding:0; border:0; opacity:0; }
.detail-page :is(.overview-projects,.overview-facts,.career-timeline,.article-layout,.quality-grid,.request-layout)>* { min-width:0; }
@media screen and (max-width:1000px) {
  .lab-teasers { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .overview-projects { grid-template-columns:1fr; }
  .detail-header { gap:.6rem; }
  .detail-nav { order:3; flex-basis:100%; justify-content:space-between; gap:.3rem .7rem; }
}
@media screen and (max-width:680px) {
  .detail-header { min-height:0; }
  .detail-nav a { font-size:.8rem; }
  .detail-main { padding-top:2.5rem; }
  .overview-facts,.quality-grid,.request-layout,.article-layout { grid-template-columns:1fr; }
  .overview-facts>div+div { border-top:1px solid var(--line); }
  .career-timeline>li { grid-template-columns:1fr; gap:.6rem; padding-left:1.2rem; }
  .article-toc { position:static; }
  .article-layout { gap:2rem; }
  .change-list li { grid-template-columns:1fr; gap:.4rem; }
  .quick-actions .button { flex-grow:1; justify-content:center; }
  .lab-teaser { padding:1.2rem; }
  .detail-page .footer-links { flex-wrap:wrap; gap:.5rem 1.2rem; }
}
@media screen and (max-width:360px) {
  .lab-teasers { grid-template-columns:1fr; }
  .detail-actions { gap:.1rem; }
  .detail-header .brand { gap:.4rem; font-size:1.15rem; }
  .detail-header .brand img { width:29px; height:29px; }
  .quality-scores { gap:1.2rem .6rem; }
}
@media (prefers-reduced-motion:reduce) { .lab-teaser { transition:none; } .lab-teaser:hover { transform:none; } }
@media print { .detail-header,.detail-page .footer,.quick-actions { display:none; } .detail-main { padding-block:0; } .overview-section { break-inside:avoid; } }
