/* Header-only enhancement. Existing content and navigation typography are retained. */
.sidebar.neural-header{--nl-teal:#81c3b9;--nl-blue:#8eafd0;--nl-coral:#d7a495;position:relative;inset:auto;width:100%;height:auto;max-height:none;overflow:visible;display:block;background:#f3f4f0;border:0;padding:0}
.neural-header+.shell{margin-left:0}
.neural-brand-panel{background:#171b1e;color:white;padding:20px max(24px,calc((100% - 1120px)/2)) 27px}
.neural-header .neural-top{display:flex;justify-content:flex-end}
.sidebar.neural-header .brand{display:block;width:min(660px,90%);height:auto;min-height:0;max-width:100%;margin:10px auto 0;padding:0}
.neural-header .brand svg{display:block;width:100%;height:auto;overflow:visible}
.neural-header .neural-caption{margin:0;text-align:center;color:#e7eeea;font-size:14px;letter-spacing:1px;line-height:1.5}
.sidebar.neural-header.nav-ready .menu-toggle{position:static;display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:88px;padding:10px 20px;border:1px solid white;border-radius:3px;background:transparent;color:white;font:inherit;cursor:pointer}
.neural-brand-panel .menu-toggle:hover{background:#ffffff12}
.neural-brand-panel :focus-visible{outline:2px solid white;outline-offset:5px}
.sidebar.neural-header nav{display:flex;flex-direction:column;gap:8px;width:min(810px,100%);margin:0 auto;padding:20px 24px;overflow:visible;max-height:none;border:0}
.sidebar.neural-header.nav-ready nav{display:none}
.sidebar.neural-header.nav-ready.menu-open nav{display:flex}
.sidebar.neural-header nav a{white-space:normal;flex:none}
.sidebar.neural-header nav a span{display:inline-block}
@media(max-width:767px){.neural-brand-panel{padding:16px 22px 23px}.sidebar.neural-header .brand{width:100%;margin:16px auto 6px}.neural-header .neural-caption{font-size:13px}}
/* Consistent link language, preserving the existing font and page structure. */
main a:not(.contact):not(.publication-cover-link),.shell>header a,footer a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;text-decoration-color:#9eaaa0}
main a:hover,.shell>header a:hover,footer a:hover{text-decoration-color:currentColor}
main a.contact{text-decoration:none}
.tw-neural-divider{height:38px;width:100%;margin:24px 0 0;overflow:hidden}
.tw-neural-divider canvas{display:block;width:100%;height:38px}
main .neural-border-replaced{border-top:0!important;margin-top:0!important}
/* Animated section dividers replace both sides of an old horizontal rule. */
main .neural-border-followed,main .project-history.neural-border-replaced,main .lab-extra.neural-border-replaced{border-bottom:0!important}
@media print{.tw-neural-divider{height:1px;background:#ccc}.tw-neural-divider canvas{display:none}}
.shell>footer{flex-wrap:wrap}.neural-pause{border:0;padding:8px 0;min-height:44px;background:transparent;color:inherit;font:inherit;text-decoration:underline;text-underline-offset:4px;cursor:pointer}

/* Home only: halve the header-to-headline gap, including the contact row. */
body:has(main > .welcome) .shell > header{padding-top:13.5px;padding-bottom:13.5px}
main:has(> .welcome){padding-top:16.5px}
main > .welcome h1{margin-top:14px}
@media(min-width:1450px){main:has(> .welcome){padding-top:26px}}
@media(max-width:1050px){main:has(> .welcome){padding-top:8.5px}}
@media(max-width:720px){body:has(main > .welcome) .shell > header{padding-top:10px;padding-bottom:10px}main:has(> .welcome){padding-top:3px}}
