@font-face{font-family:Academic Display;src:url('../optimized/barlow-condensed-black-italic.43c896a01027.woff2') format('woff2');font-weight:900;font-style:italic;font-display:swap}
@font-face{font-family:Academic Sans;src:url('../optimized/inter.6fb3b1cd9436.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:Academic Mono;src:url('../optimized/ibm-plex-mono.c543180f64c6.woff2') format('woff2');font-weight:400;font-display:swap}
:root{font-size:100%;--paper:#f4f3e7;--ink:#171b1d;--muted:#596260;--line:#b8bdb5;--yellow:#f5e900;--identity:#f5e900;--identity-ink:#0d1113;--heading:#0d1113;--accent:#675f00;--display:'Academic Display','Arial Narrow',sans-serif;--body:'Academic Sans',Arial,sans-serif;--mono:'Academic Mono',monospace;--measure:clamp(1100px,62vw,2000px);--cut:.6875rem;color-scheme:light}
:root[data-theme=dark]{--paper:#0e1113;--ink:#eeefe8;--muted:#b1b8b3;--line:#525a52;--identity:#0a0d0e;--identity-ink:#eeefe8;--heading:#f5e900;--accent:#f5e900;color-scheme:dark}
@media(min-width:1000px){:root{font-size:clamp(1rem,calc(.25rem + .833333vw),2rem)}}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height,3.5rem) + 1.5rem);scrollbar-color:var(--muted) var(--paper)}body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.6 var(--body);-webkit-font-smoothing:antialiased}button{font:inherit}a{color:inherit;text-decoration:none;text-underline-offset:.25em}a:hover{text-decoration:underline}::selection{background:var(--ink);color:var(--paper)}:root[data-theme=dark] ::selection{background:var(--yellow);color:#0d1113}:focus-visible{outline:2px solid currentColor;outline-offset:.25rem}button{cursor:pointer}[hidden]{display:none!important}.skip-link{position:fixed;top:-5rem;left:1rem;z-index:100;background:var(--paper);padding:.75rem;border:2px solid currentColor}.skip-link:focus{top:.5rem}
.academic-header{position:sticky;top:0;z-index:20;background:var(--identity);color:var(--identity-ink);border-bottom:1px solid currentColor;padding:0 2rem}.header-inner{max-width:var(--measure);margin:auto;display:flex;align-items:center;min-height:3.5rem;gap:2rem;flex-wrap:wrap}.site-title{display:flex;align-items:center;gap:.625rem;white-space:nowrap;font-size:.875rem;font-weight:700}.site-title>span{display:none}.brand-mark{width:2.125rem;height:2.125rem;fill:currentColor;color:var(--heading)}.site-nav{flex:1;min-width:0}.menu{display:flex;flex-wrap:wrap;gap:1.75rem}.page-link{font-size:.875rem;display:block;padding:1rem 0;white-space:nowrap}.page-link[aria-current]{text-decoration:underline;text-decoration-thickness:2px}.theme-toggle{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;flex-shrink:0;border:1px solid currentColor;background:transparent;color:inherit;border-radius:0;padding:0}.theme-toggle svg{width:1.25rem;height:1.25rem}.theme-toggle:hover{background:var(--identity-ink);color:var(--identity)}.menu-icon{display:none}
.academic-main{max-width:calc(var(--measure) + 4rem);padding:0 2rem;margin:auto}.profile-intro{position:relative;display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);gap:2.5rem;padding:1rem 0 1.125rem;background:var(--identity);color:var(--identity-ink);box-shadow:0 0 0 100vmax var(--identity);clip-path:inset(0 -100vmax)}h1{font:italic 900 4.125rem/.98 var(--display);text-transform:uppercase;letter-spacing:-.015em;color:var(--heading);margin:0 0 .6rem;display:flex;align-items:center;gap:1rem}.native-name{font:400 .875rem/1.5 var(--body);letter-spacing:.15em;writing-mode:vertical-rl;color:var(--identity-ink)}.intro-role{font-size:1.25rem;font-weight:650;line-height:1.35;margin:0 0 .75rem}.intro-description{font-size:1.125rem;line-height:1.4;max-width:68ch;margin:0}.intro-aside{border-left:1px solid currentColor;padding:.25rem 0 .25rem 2rem;align-self:stretch;display:flex;flex-direction:column;justify-content:center;gap:.625rem}.intro-aside p{margin:0;font-size:.9375rem;line-height:1.55}.intro-aside .research-interests{font-weight:650;font-size:1rem}.profile-links{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.125rem}.profile-links a{font-size:.875rem;min-height:2.75rem;display:inline-flex;align-items:center;gap:.5rem;text-decoration:underline}.profile-links .contact-link{padding:.5rem 1.25rem;background:var(--heading);color:var(--identity);clip-path:polygon(0 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%);text-decoration:none;font-weight:650}.profile-links .contact-link:hover{text-decoration:underline}
.featured-research,.cv-section{padding:1.25rem 0 0;min-width:0}.section-heading,.cv-section>h2{font:italic 900 2.375rem/1.1 var(--display);text-transform:uppercase;letter-spacing:-.01em;color:var(--heading);display:flex;align-items:center;gap:.625rem;margin:0 0 1rem;min-width:0}.section-heading:before,.cv-section>h2:before{content:attr(data-number)' /';padding-left:2.4rem;background:linear-gradient(118deg,transparent 18%,var(--yellow) 19%,var(--yellow) 67%,transparent 68%) no-repeat left center/1.875rem 100%;white-space:nowrap}.section-heading:after,.cv-section>h2:after{content:'';height:1px;background:var(--line);flex:1;margin-left:.5rem;min-width:1rem}
.research-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:1rem 1.25rem}.research-card{min-width:0}.research-lead{grid-row:span 2}.research-image{display:block;clip-path:polygon(0 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%)}.research-image:focus-visible{outline-offset:-4px;outline-color:#0d1113}.research-image picture{display:block}.research-image img{display:block;width:100%;height:6rem;object-fit:cover}.research-lead .research-image img{height:16.25rem}.research-caption{padding:.4rem .125rem 0}.research-caption h3{font-size:1.125rem;font-weight:700;line-height:1.25;margin:0 0 .125rem;letter-spacing:-.015em}.research-lead h3{font-size:1.5rem}.research-caption p{font-size:.875rem;line-height:1.35;color:var(--muted);margin:0 0 .125rem}.research-meta{display:flex;align-items:center;justify-content:space-between;gap:.25rem .5rem;flex-wrap:wrap}.research-meta>span{font:400 .75rem/1.5 var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.research-meta a{font-size:.8125rem;white-space:nowrap;text-decoration:underline;min-height:1.375rem;display:inline-flex;align-items:center;gap:.5rem}
.publication-tools{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem}.publication-note{font-size:.8125rem;color:var(--muted);margin:0}.publication-filters{display:flex;gap:.25rem;margin-left:auto}.publication-filters button{padding:.45rem .875rem;min-height:2.75rem;border:0;border-radius:0;background:transparent;color:var(--muted);font-size:.8125rem;clip-path:polygon(0 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%)}.publication-filters button[aria-pressed=true]{background:var(--yellow);color:#0d1113;font-weight:650}.publication-filters button:hover{text-decoration:underline}.publication-filters button:focus-visible{outline-offset:-3px}.filter-count{font:400 .75rem/1.5 var(--mono);min-width:4ch;color:var(--muted)}.publication-list{border-top:1px solid var(--line)}.publication-item{display:grid;grid-template-columns:minmax(0,1fr) 18rem;gap:.4rem 1.5rem;padding:.9375rem 0 .9375rem 1rem;margin:0;border-bottom:1px solid var(--line);position:relative}.publication-item:before{content:'';position:absolute;left:0;top:1.5rem;width:.375rem;height:.375rem;background:var(--accent);border-radius:50%}.publication-title{font-size:1.125rem;font-weight:650;line-height:1.4;margin:0;letter-spacing:-.015em;max-width:70ch}.publication-title a:hover{color:var(--accent)}.publication-authors{grid-column:1;margin:0;color:var(--muted);font-size:.875rem;line-height:1.7;max-width:64ch}.publication-title,.timeline-title{ text-wrap:balance }.publication-authors,.research-caption p{ text-wrap:pretty }.intro-role{ text-wrap:balance }.publication-authors em{font-style:normal;font-weight:650;color:var(--ink)}.publication-meta{grid-column:2;grid-row:1 / span 2;margin:0;align-self:center;display:flex;gap:.5rem;align-items:center;justify-content:flex-end;flex-wrap:wrap}.publication-venue{font-size:.875rem;line-height:1.6;color:var(--muted);text-align:right}.publication-badge{font-size:.875rem;font-weight:650;padding:.1rem .5rem;border:1px solid var(--accent);color:var(--accent)}
.career-grid{display:block}.cv-section{padding-top:1.5rem}.timeline-list{margin:0;padding-left:.3rem}.timeline-item{border-left:1px solid var(--line);padding:0 0 1.5rem 1.5rem;position:relative;margin:0}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:'';position:absolute;top:.5rem;left:-.25rem;width:.4375rem;height:.4375rem;background:var(--accent);border-radius:50%}.timeline-body{display:grid;grid-template-columns:9rem minmax(0,1.1fr) minmax(0,1fr);gap:0 1.5rem;min-height:3.5rem}.timeline-heading{display:contents}.timeline-title{grid-column:2;grid-row:1 / span 4;font-size:1.125rem;line-height:1.4;margin:0;font-weight:650}.timeline-date{grid-column:1;grid-row:1 / span 4;display:flex;flex-direction:column;font:400 .875rem/1.7 var(--mono);color:var(--muted)}.timeline-body p{grid-column:3;font-size:.9375rem;color:var(--muted);margin:0;line-height:1.6}.timeline-body a{text-decoration:underline}.timeline-body em{font-style:normal}.cv-section h4{font-size:1.125rem;margin:1.5rem 0 .75rem}.cv-section li{font-size:1rem;line-height:1.7;margin-bottom:.625rem}.cv-section ul{padding-left:1.25rem}.cv-section li a{text-decoration:underline}.award-groups{display:grid;grid-template-columns:1fr 1.4fr 1.4fr;gap:2rem}.award-group h3,.service-reviewer h3{font-size:1.125rem;line-height:1.4;margin:0 0 .75rem}.award-group li{font-size:.875rem;color:var(--muted)}.award-group strong{font-weight:600;color:var(--ink)}.service-reviewer{display:grid;grid-template-columns:1fr 2fr;gap:2rem}.service-tags{display:flex;gap:.5rem 1rem;flex-wrap:wrap;font-size:.875rem;color:var(--muted)}.service-tags span{border-bottom:1px solid var(--line);padding-bottom:.25rem}.teaching-item{display:grid;grid-template-columns:5rem 1fr;gap:1rem;border-top:1px solid var(--line);padding:.75rem 0}.teaching-year{font:400 .875rem/1.7 var(--mono);color:var(--muted)}.teaching-detail{font-size:.9375rem;margin:0}.academic-content{padding-bottom:2.5rem}.site-footer{padding:1.25rem 2rem;background:var(--identity);color:var(--identity-ink);border-top:1px solid currentColor}.site-footer .wrapper{max-width:var(--measure);margin:auto}.footer-bar{display:flex;gap:1rem;justify-content:space-between;font-size:.8125rem}.footer-bar p{margin:0}
@media(max-width:1100px){.menu{gap:1rem}.header-inner{gap:1.5rem}.profile-intro{gap:1.5rem;grid-template-columns:1.6fr 1fr}.intro-aside{padding-left:1.5rem}h1{font-size:4rem}.research-interests br{display:none}.publication-item{grid-template-columns:minmax(0,1fr) 14rem}.timeline-body{grid-template-columns:8rem minmax(0,1fr) minmax(0,1fr);gap:0 1rem}.award-groups{gap:1.5rem}}
@media(max-width:900px){.header-inner{gap:1rem;min-height:3.5rem}.site-title>span{display:block}.site-nav{flex:0 0 2.75rem;order:3}.theme-toggle{margin-left:auto}.menu-icon{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;border:0;background:transparent;color:inherit;width:2.75rem;height:2.75rem;padding:.5rem}.menu-icon span{display:block;width:1.25rem;height:1px;background:currentColor}.menu{display:none;position:absolute;top:100%;left:0;right:0;background:var(--identity);border-bottom:1px solid currentColor;padding:.75rem 2rem;gap:0 2rem}.menu.is-open{display:grid;grid-template-columns:1fr 1fr}.page-link{padding:.75rem 0}.profile-intro{display:block}.intro-description{max-width:65ch}.intro-aside{border:0;padding:1rem 0 0;gap:.5rem}.intro-aside .research-interests{display:none}.profile-links{gap:.5rem 1.25rem}.intro-aside>p{font-size:.9375rem}.research-grid{grid-template-columns:1.35fr 1fr}.research-image img{height:6rem}.research-lead .research-image img{height:18rem}.research-meta{flex-wrap:wrap;gap:0}.research-caption p{font-size:.8125rem}.research-meta a{min-height:2rem}.timeline-body{grid-template-columns:8rem minmax(0,1fr)}.timeline-title{grid-row:1}.timeline-body p{grid-column:2}.timeline-date{grid-row:1 / span 5}.award-groups{grid-template-columns:1fr 1fr}.award-group:last-child{grid-column:1 / -1}}
@media(max-width:700px){.academic-header,.site-footer{padding-inline:1.25rem}.academic-main{padding-inline:1.25rem}.profile-intro{padding:1.5rem 0}h1{font-size:3.25rem;gap:.75rem}.native-name{font-size:.75rem}.intro-role{font-size:1.0625rem;max-width:28ch}.intro-description{font-size:1rem;line-height:1.6}.intro-aside{padding-top:1rem}.intro-aside>p{font-size:.875rem}.profile-links a{font-size:.875rem}.section-heading,.cv-section>h2{font-size:1.875rem;gap:.375rem;white-space:nowrap}.section-heading:before,.cv-section>h2:before{padding-left:1.9rem;background-size:1.5rem 100%}.section-heading:after,.cv-section>h2:after{margin-left:.125rem;min-width:.25rem}.featured-research{padding-top:1.5rem}.research-grid{display:block}.research-card+.research-card{margin-top:1.5rem}.research-image img{height:auto;aspect-ratio:2.8;object-fit:cover}.research-lead .research-image img{height:auto;aspect-ratio:1.9}.research-caption h3,.research-lead h3{font-size:1.125rem}.research-caption p{font-size:.875rem}.research-meta{flex-wrap:nowrap}.research-meta>span{font-size:.75rem}.research-meta a{font-size:.8125rem;min-height:2.75rem}.cv-section{padding-top:2rem}.publication-tools{gap:.5rem}.publication-filters{margin-left:0}.publication-filters button{padding:.5rem .625rem;font-size:.8125rem}.filter-count{margin-left:auto}.publication-item{display:flex;flex-direction:column;gap:.5rem;padding:1rem 0 1rem .875rem}.publication-title{font-size:1.0625rem;line-height:1.45}.publication-authors,.publication-venue,.publication-badge{font-size:.8125rem}.publication-authors{line-height:1.75}.publication-meta{justify-content:flex-start;align-self:stretch}.publication-venue{text-align:left}.timeline-item{padding-left:1rem}.timeline-body{grid-template-columns:6rem minmax(0,1fr);gap:0 .75rem}.timeline-title{font-size:1rem;line-height:1.5}.timeline-date{font-size:.6875rem}.timeline-body p{font-size:.8125rem}.award-groups,.service-reviewer{display:block}.award-group+.award-group,.service-reviewer-group+.service-reviewer-group{margin-top:1.5rem}.award-group li,.service-tags{font-size:.875rem}.cv-section li{font-size:.9375rem}.teaching-item{grid-template-columns:3rem 1fr;gap:.75rem}.teaching-detail,.teaching-year{font-size:.8125rem}.footer-bar{font-size:.75rem;flex-wrap:wrap}.academic-content{padding-bottom:2rem}}
@media(max-width:360px){h1{font-size:2.75rem}.section-heading,.cv-section>h2{font-size:1.625rem}.header-inner{gap:.5rem}.site-title{gap:.375rem}.research-meta{flex-wrap:wrap}.publication-tools{gap:.25rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{html{scroll-padding-top:0}body{color:#111;background:#fff}.academic-header,.skip-link,.publication-filters,.filter-count,.site-footer{display:none!important}.academic-main{padding:0;max-width:none}.profile-intro{box-shadow:none;clip-path:none}.cv-section,.publication-item,.timeline-item,.research-card{break-inside:avoid}}

/* A usable static document remains available when scripting is disabled. */
.no-js .header-inner .menu{display:grid;position:static;grid-template-columns:1fr 1fr}
.no-js .menu-icon,.no-js .theme-toggle{display:none}
.no-js .header-inner .site-nav{width:100%;flex:1 0 100%;order:3}
@media print{body{zoom:74%}}

.research-interests>span{display:block}

/* Printed interaction feedback: one framing gesture, with quiet supporting marks. */
:root{--motion-quick:130ms;--motion-base:220ms;--motion-ease:cubic-bezier(.16,1,.3,1);--mark:color-mix(in srgb,var(--yellow) 48%,transparent)}
:root[data-theme=dark]{--mark:color-mix(in srgb,var(--yellow) 19%,transparent)}
.academic-content a,.research-meta a{--link-fill:var(--yellow);--link-ink:#0d1113;background-image:linear-gradient(var(--link-fill),var(--link-fill));background-repeat:no-repeat;background-position:0 55%;background-size:0 1.15em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.research-meta a{--link-fill:var(--heading);--link-ink:var(--identity)}
/* A flex item is one box; its inline label supplies one marker per text line. */
.academic-content a.publication-venue{background-image:none}
.publication-venue>.link-label{background-image:linear-gradient(var(--link-fill),var(--link-fill));background-repeat:no-repeat;background-size:0 100%;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.publication-venue:focus-visible>.link-label{background-size:100% 100%}

.academic-content a:focus-visible,.research-meta a:focus-visible{background-size:100% 1.15em;color:var(--link-ink);text-decoration:none;outline-color:var(--ink)}
.page-link{position:relative}
.page-link::after{content:'';position:absolute;left:0;right:0;bottom:.65rem;height:.1875rem;background:var(--heading);transform:scaleX(0) skewX(-20deg);transform-origin:left;transition:transform var(--motion-base) var(--motion-ease);pointer-events:none}
.page-link[aria-current]{text-decoration:none}
.page-link[aria-current]::after,.page-link:focus-visible::after{transform:scaleX(1) skewX(-20deg)}
.research-image{position:relative;overflow:hidden}
.research-image img{transition:transform var(--motion-base) var(--motion-ease)}
.research-image::before{content:'';position:absolute;inset:.75rem;z-index:1;pointer-events:none;opacity:0;transform:scale(.98);transition:opacity var(--motion-quick) ease,transform var(--motion-base) var(--motion-ease);color:var(--yellow);filter:drop-shadow(0 1px 1px #0d1113);background:linear-gradient(currentColor,currentColor) left top/1.125rem 2px no-repeat,linear-gradient(currentColor,currentColor) left top/2px 1.125rem no-repeat,linear-gradient(currentColor,currentColor) right top/1.125rem 2px no-repeat,linear-gradient(currentColor,currentColor) right top/2px 1.125rem no-repeat,linear-gradient(currentColor,currentColor) left bottom/1.125rem 2px no-repeat,linear-gradient(currentColor,currentColor) left bottom/2px 1.125rem no-repeat,linear-gradient(currentColor,currentColor) right bottom/1.125rem 2px no-repeat,linear-gradient(currentColor,currentColor) right bottom/2px 1.125rem no-repeat}
.research-open{position:absolute;right:.75rem;top:.75rem;z-index:2;display:grid;place-items:center;width:2.25rem;height:2.25rem;background:var(--yellow);color:#0d1113;clip-path:polygon(0 0,100% 0,100% calc(100% - .4rem),calc(100% - .4rem) 100%,0 100%);pointer-events:none;opacity:0;transform:translate(-.3rem,.3rem);transition:opacity var(--motion-quick) ease,transform var(--motion-base) var(--motion-ease)}
.research-open svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.75}
.research-image:focus-visible::before,.research-image:focus-visible .research-open{opacity:1;transform:none}
.theme-toggle,.menu-icon,.profile-links .contact-link,.publication-filters button{transition:transform var(--motion-quick) var(--motion-ease),background-color var(--motion-quick) ease,color var(--motion-quick) ease}
.research-meta a span{display:inline-block;transition:transform var(--motion-base) var(--motion-ease)}
.theme-toggle svg{transition:transform var(--motion-base) var(--motion-ease)}
.publication-filters button{position:relative}
.theme-toggle:active,.menu-icon:active,.profile-links .contact-link:active,.publication-filters button:active{transform:translateY(2px)}
.publication-filters button:not([aria-pressed=true]):focus-visible{background:var(--mark);color:var(--ink)}
@media(hover:hover) and (pointer:fine){
 .publication-venue:hover>.link-label{background-size:100% 100%}
 .academic-content a:hover,.research-meta a:hover{background-size:100% 1.15em;color:var(--link-ink);text-decoration:none}
 .page-link:hover{text-decoration:none}.page-link:hover::after{transform:scaleX(1) skewX(-20deg)}
 .research-image:hover::before,.research-image:hover .research-open{opacity:1;transform:none}
 .research-image:hover img{transform:scale(1.025)}
 .theme-toggle:hover svg{transform:rotate(180deg)}
 .research-meta a:hover span{transform:translate(.125rem,-.125rem)}
 .publication-filters button:not([aria-pressed=true]):hover{background:var(--mark);color:var(--ink);text-decoration:none}
 .profile-links .contact-link:hover{background:var(--identity-ink);color:var(--identity);text-decoration:none}
}
@media(prefers-reduced-motion:reduce){
 :root{--motion-quick:0s;--motion-base:0s}
 .research-meta a:hover span,.research-image img,.research-image:hover img,.research-image::before,.research-open,.theme-toggle:hover svg,.theme-toggle:active,.menu-icon:active,.profile-links .contact-link:active,.publication-filters button:active{transform:none}
}
@media print{.research-image::before,.research-open,.page-link::after{display:none!important}.research-image img{transform:none!important}}

/* Cyber terminal controls: one bounded scan on deliberate interaction. */
:root{--cyber-cyan:#49f7e8;--cyber-ink:#0d1113;--cyber-sweep:460ms}
.profile-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;width:100%;max-width:24rem}
.profile-links .profile-link{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:space-between;gap:.375rem;min-width:0;min-height:2.875rem;padding:.625rem .5rem;border:1px solid var(--heading);background:transparent;color:var(--heading);font-size:.875rem;font-weight:650;line-height:1.2;white-space:nowrap;text-decoration:none;overflow:hidden;clip-path:polygon(0 0,100% 0,100% calc(100% - .5rem),calc(100% - .5rem) 100%,0 100%);transition:border-color var(--motion-quick) ease,transform var(--motion-quick) var(--motion-ease)}
.profile-links .profile-link--primary{background:var(--heading);color:var(--identity)}
.publication-filters button{transition:transform var(--motion-quick) var(--motion-ease)}
.profile-link-label,.profile-link svg{position:relative;z-index:2}
.profile-link svg{width:1rem;height:1rem;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;transition:transform var(--motion-base) var(--motion-ease)}
.profile-link::before{content:'';position:absolute;inset:auto 0 0;height:3px;background:var(--cyber-cyan);transform:scaleX(0);transform-origin:left;transition:transform var(--motion-base) var(--motion-ease);pointer-events:none;z-index:1}
.profile-link::after{content:'';position:absolute;inset:-1px;z-index:0;pointer-events:none;background:linear-gradient(105deg,transparent 35%,var(--cyber-cyan) 50%,transparent 65%);opacity:0;transform:translateX(-130%)}
.profile-links .profile-link:focus-visible{background:var(--cyber-ink);color:var(--yellow);border-color:var(--cyber-cyan);outline:2px solid var(--cyber-cyan);outline-offset:-4px}
.profile-link:focus-visible::before{transform:scaleX(1)}
.profile-links .profile-link:active{transform:translateY(2px);background:var(--yellow);color:var(--cyber-ink);border-color:var(--cyber-ink)}
.research-scan{position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(100deg,transparent 38%,#49f7e866 50%,transparent 62%);opacity:0;transform:translateX(-130%)}
@keyframes cyber-sweep{0%{opacity:0;transform:translateX(-130%)}15%{opacity:.45}70%{opacity:.45}100%{opacity:0;transform:translateX(130%)}}
@keyframes cyber-signal{0%,35%{text-shadow:-1.5px 0 var(--cyber-cyan),1.5px 0 var(--cyber-cyan)}18%,55%{text-shadow:1px 0 var(--cyber-cyan)}100%{text-shadow:none}}
@media(hover:hover) and (pointer:fine){
 .profile-links .profile-link:hover{background:var(--cyber-ink);color:var(--yellow);border-color:var(--cyber-cyan);text-decoration:none}
 .profile-links .profile-link:hover:active{background:var(--yellow);color:var(--cyber-ink);border-color:var(--cyber-ink)}
 .profile-link:hover::before{transform:scaleX(1)}
 .profile-link:hover::after,.research-image:hover .research-scan{animation:cyber-sweep var(--cyber-sweep) ease-out 1}
 .profile-link:hover .profile-link-label,.academic-content a:hover{animation:cyber-signal 200ms steps(2,end) 1}
 .profile-link:hover svg{transform:translate(.125rem,-.125rem)}
 .research-image:hover::before{color:var(--cyber-cyan)}
}
@media(prefers-reduced-motion:reduce){
 .profile-links .profile-link:active,.profile-link:hover svg{transform:none}
 .profile-link:hover::after,.research-image:hover .research-scan,.profile-link:hover .profile-link-label,.academic-content a:hover{animation:none}
 .profile-link::before{transition:none}
}
@media print{.profile-link::before,.profile-link::after,.research-scan{display:none!important}}
