/* Circuit treatment: slow current along the traces; SVG assets respect reduced motion. */
:root{--circuit-rail:url('assets/circuit-rail-animated.svg');--circuit-divider:url('assets/circuit-divider-animated.svg');--circuit-border:color-mix(in srgb,var(--muted) 45%,var(--bg));--circuit-wash:color-mix(in srgb,var(--blue) 7%,var(--bg))}
main{position:relative;isolation:isolate}
main::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:var(--circuit-rail),var(--circuit-rail);background-repeat:repeat-y;background-size:var(--gutter) 600px;background-position:left top,right 300px}
.capabilities,.site-footer,.research-band{background-image:var(--circuit-rail),var(--circuit-rail);background-repeat:repeat-y;background-size:var(--gutter) 600px;background-position:left top,right 300px}
.section-heading{position:relative;padding-top:28px}
.section-heading::before{content:"";position:absolute;top:-9px;left:0;right:0;height:36px;pointer-events:none;background:var(--circuit-divider) left center/min(440px,100%) 36px no-repeat}
.page-intro{position:relative}
.page-intro::after{content:"";position:absolute;bottom:7px;left:0;width:min(440px,100%);height:36px;background:var(--circuit-divider) left center/100% 36px no-repeat;pointer-events:none}
.project-card{position:relative;border:1px solid var(--circuit-border);border-radius:6px;background:var(--bg);padding-bottom:26px;overflow:hidden;transition:border-color .25s,box-shadow .25s}
.project-card>.project-meta,.project-card>h3,.project-card>p{margin-left:24px;margin-right:24px}
.project-image{border-bottom:1px solid var(--circuit-border)}
.project-card::before,.journal-row::before{content:"";position:absolute;z-index:2;top:0;left:0;width:22px;height:22px;border-top:2px solid var(--blue);border-left:2px solid var(--blue);border-top-left-radius:5px;pointer-events:none;opacity:.75}
.project-card::after,.journal-row::after{content:"";position:absolute;right:14px;bottom:14px;width:5px;height:5px;border:1px solid var(--blue);border-radius:50%;background:var(--bg);pointer-events:none;opacity:.7}
.project-card:hover,.project-card:focus-within,.journal-row:hover,.journal-row:focus-within{border-color:var(--blue);box-shadow:0 0 0 1px #2196f31a,0 8px 24px #2196f30c}
.project-card:hover::after,.project-card:focus-within::after,.journal-row:hover::after,.journal-row:focus-within::after{background:var(--blue);box-shadow:0 0 10px #2196f380;opacity:1}
.journal-list{border-top:0;display:grid;gap:16px}
.journal-row{position:relative;border:1px solid var(--circuit-border);border-radius:6px;padding:28px;gap:32px;background:var(--bg);transition:border-color .25s,box-shadow .25s}
.capability-list{border-top:0}
.capability-list details{border:1px solid var(--circuit-border);border-radius:6px;padding:24px;margin-block:12px;background:var(--bg);transition:border-color .25s}
.capability-list details[open]{border-left:2px solid var(--blue);background:var(--circuit-wash)}
.capability-list details:hover{border-color:var(--blue)}
.publication{border:1px solid #50606c;border-radius:6px;padding:28px;border-top:2px solid var(--blue)}
@media(max-width:760px){
 main::before{opacity:.6}.section-heading{padding-top:25px}.section-heading::before{background-size:min(300px,100%) 36px}.page-intro::after{width:min(300px,100%)}
 .project-card{padding-bottom:22px}.project-card>.project-meta,.project-card>h3,.project-card>p{margin-left:18px;margin-right:18px}
 .journal-row{padding:22px 18px;gap:14px}.capability-list details{padding:20px 15px}.publication{padding:23px 20px}
}
@media(prefers-reduced-motion:reduce){.project-card,.journal-row,.capability-list details{transition:none}}
/* Sparse spatial coordinates sit alongside the original circuit rails. */
main::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('assets/spatial-field.svg') center top/1440px 1100px repeat-y;opacity:.5}
:root[data-theme="light"] main::after{opacity:.36}
@media(max-width:760px){main::after{background-size:900px 850px;opacity:.25}}
